관리 메뉴

HAMA 블로그

hyperledger besu vs qourum vs Corda vs Fabric 본문

블록체인

hyperledger besu vs qourum vs Corda vs Fabric

[하마] 이승현 (wowlsh93@gmail.com) 2019. 11. 12. 13:50

엔터프라이즈향 블록체인 비교 


* fabric과 Goquorum등 모든 컨소시엄 블렉체인의 사용예에서 어떻게 거버넌스를 이루어서 어떻게 사용했다라는 구체적인 기술 정보 및 비용감소에 대한 결과 정보가 부족해서 아쉽다. (사용 결과에 대한 효율 증가 분석표같은건 기대도 안함) 

*
컨소시엄 블록체인을 진짜 컨소시엄을 해서 제대로 합의하고 견제하면서 하려면 Fabric을 사용해야 하는게 좋으며 (기능셋이 많다.)  좀 간략히 사용하려면 quorum이나 Besu중 아무것이나 선택해도 된다. Corda는 최근 거의 사용되지 않는 듯하며, CDBC쪽에서나 소식이 들리는 듯 하다.

* 성능의 경우 체감상 예상외로 Fabric이 빠른데.. (Fabric  > GoQuorum > Besu) 전체 구조상으로는 동일 RAFT컨센서스 기준으로 패브릭이 단계가 더 많으므로 (E-O-V) 불리하지만, 이더리움 계열 시스템들은 (besu, quorum) 머클패트리샤트리와 EVM 구조를 그대로 사용하고, Gas가 큰 의미가 없음에도 사용되는 Gas비용계산등 퍼블릭체인의 유산들 때문에 성능 문제가 생겼으리라 생각된다

Hyperledger Besu 성능) 
https://www.hyperledger.org/blog/2020/08/06/hyperledger-besu-1-5-performance-enhancements

Quour
m성능)
https://www.sciencedirect.com/science/article/pii/S209672092100021X

Fabric 성능) 
https://arxiv.org/pdf/1901.00910.pdf
https://medium.com/coinmonks/hyperledger-fabric-blockchain-performance-benchmark-using-hyperleger-capiler-66d9a9af5cce
https://arxiv.org/pdf/1805.11390.pdf


체크1)
Hyperledger Fabric에서는 기본적으로 네트워크에 트랜잭션을 보내는 user 또한 허가받은 사람만 가능하며, 그들의 실체는 X.509로 규정되어진다. 하지만 Qourum , Besu는 그냥 user 는 이더리움과 같은 공개키로 만들어지는 anonymous 이다. Genesis 파일상에서 만들어지는 어카운트들을 이용해서 주로 사용하며, ACL은 스마트컨트랙트에서 관리한다. 

체크2)
Hyperledger Fabric에서는 ZKP 를 Identity Mixer 모듈을 가져다가 사용한다. 패브릭에서 트랜잭션을 보낼 때 보통 X.509 인증서를 포함해서 보내게 되는데, 여기에는 User의 정보가 모두 노출되어 있다. 선택적으로 노출시키고 트랜잭션 마다의 연계성을 끊기 위해 영지식증명이 사용된다. 결론은 패브릭은 용도에 따라서 선택 할 수 있다. 노출 할 건지, 숨길 건지

체크3)
Order → Execute / Validate 모델과 달리 하이퍼레저 패브릭의 EOV(Execute → Order → Validate) 모델은 이는 체인코드 실행시 발생 할 수 있는 다양한 악의적 혹은 비결정적 문제에 대해 Client 와 Validate 시점에 Endorsement Policy에 의해 걸러지게 해 최종적으로 동일한 상태를 보장 할 수 있게 도와준다. 비결정적 문제에 대해 어떻게 제한을 가 할 지는 네트워크 구성원 끼리의 거버넌스에 따라 달라 질 것이다.

3-1) Fabric에서 Endorser로 부터 반환된 R/W Set이 악의적인 결과인지 비결정적인 문제인지는 클라이언트에서 판단 할 수 없다. differentiation 을 auto resolve 할 수 있는 방법도 없다. Avis에서는 Proxy에서 과반이 아닌 Peer에 emergency recovery call 을 보내는 설계를 고려하고 있으나 더 생각을 해 봐야 한다.

3-2) Corda 는 특이하게 피어들끼리 트랜잭션을 먼저 검증한 후에, Notary를 통해 이중지불을 확인 한 후에 최종적으로 양쪽에 커밋된다. (모든 피어들이 커밋정보를 가지고 있는 것과 다르게 관심을 공유하는 피어들 끼리만 공유한다) 

체크4)
hyperledger faric은 비결정적


체크5)

ING에서는 영지식증명을 Corda에 추가해서 프라이버시를 추가했다. https://www.coindeskkorea.com/59656/

체크6)
Hyperledger Besu는 Hyperledger 재단의 첫번째 퍼브릭(가능)제품으로써, 합의 알고리즘에 따라서 캐릭터가 달라질 수 있다. 즉 PoA계열 알고리즘을 통해서 엔터프라이즈향에 적합해 질 수도 있다. IBFT2.0 (이스탄불 BFT 2.0)은 GoQuorum의 IBFT1.0을 개선하여 적용하였다. 

체크7)
성능에 관해서 제일 궁금 하실 텐데, 사실 패브릭 제외하고는 다양한 설정등에 기반한 성능지표에 대한 자료가 너무 부족하다.

체크8)
Besu의 경우 그룹별 프라이빗 원장 공유로 Orion이라는 기술을 이용한다. 패브릭의 채널과 비슷하다고 보면 된다. 사실 Orion은 Qourum에도 적용 될 수 있긴 하다. 

체크9) Qourum의 경우 프라이빗 트랜잭션으로 Tessera 를 이용한다. Orion과 Tessera의 차이점은 따로 블로깅 하려한다. 최근에 Besu도 Tessera를 지원하게 됬다. 


최근 추가 내용 

Hyperledger besu )
- EIP-1559 적용 (가스비 산정 변경, EIP-1559를 포함한 런던하드포크는 8월적용됨)
- EthStat 적용

GoQuorum )
- QBFT 추가
- EIP1559랑 무관. 가스비는 여전히 무의미(0) 하며 가스개념은 존재

Hyperledger Besu ans GoQuorum 상호운용성)
- 동일한 컨센서스하 (QBFT) 에서 상호운용 가능 개선
- Tessera 를 활용한 Privacy 기능이 이제 양쪽 모두에서 가능

툴 개선)
- Web3js-Quorum 새로운(기능보완) web3js 라이브러리로 ConsenSys Quorum node를 좀 더 잘 사용 할 수 있게 한다.







페이스북 :  엔터프라이즈 블록체인 그룹 

Comments