얼마전 JP Morgan의 회장인 제이미 다이몬이 "비트코인은 사기다!"라고 주장해서 화제가 되었습니다. 또한 그 이후 약 40억원 가량의 투자가 비트코인에 대해 이루어져 더욱 구설에 오르기도 했었죠.
JP Morgan이 암호화폐에 대해 부정적인 시각을 이야기 하기는 했지만, 한 편으로 블록체인 기술 자체에는 긍정적인 이야기를 해 왔습니다. 그 중에 하나가 Quorum인데, 오늘은 이것을 소개해 보고자 합니다.
Quorum은 Private Blockchain입니다. 즉, 사용자가 임의로 자신의 블록체인 네트워크를 필요한 상대방 (예: 거래처)와 구성할 수 있도록 도와 주는 플랫폼이죠.
Quorum은 Ethereum에 기반하고 있는데, 사실 Ethereum 도 얼마든지 사설 네트워크를 구성할 수 있습니다. 그런데 왜 별도의 플랫폼이 있어야 하는 것일까요? 그리고 기업은 블록체인 기술을 이용해서 무엇을 얻을 수 있을까요?
일단 왜 기업들이 블록체인에 관심을 가지는지부터 생각해 보는 것이 좋겠습니다. 우선 다음과 같은 장점들이 있습니다.
내가 보는 데이터와 상대방이 보는 데이터가 같다: 사실 이 부분이 기업에게는 가장 핵심적인 장점이 될 겁니다. 중개자가 없어도, 그리고 복잡한 데이터 동기화 시스템을 사용하지 않아도 쉽게 데이터에 대한 확신을 가질 수 있다는 것입니다. 이는 블록체인의 Consensus 알고리즘을 통해 확보할 수 있습니다.
보안성이 강화된다: 수 많은 노드가 참여하는 퍼블릭 블록체인만큼은 아니지만, 여러 노드에 데이터가 보관되기 때문에 이를 공격하여 변조하는 것은 쉽지 않습니다. 대부분의 기업 네트워크는 보안을 위해 많은 투자를 하고 있는데, 이 노드들이 여러 회사에 흩어져 있다면 대다수의 노드들을 동시에 바꾸는 것은 한 회사의 시스템을 공격하는 것보다 훨씬 어려운 일이 될 겁니다.
반면에 퍼블릭 블록체인이 제공하는 장점 중 다음의 것들은 필요가 없거나, 고민이 되는 부분입니다.
블록 보상 및 트랜잭션 보상: 기업에 있어 IT 시스템은 비즈니스를 잘 하기 위한 도구에 불과합니다. 마이닝을 전문적으로 하는 업체가 아닌 이상에야, 블록 보상 같은 것은 기본적으로 안중에 없습니다. 예를 들어 물류 시스템에 블록체인을 적용한다고 할 때, 데이터를 어떻게 잘 보관하고 빠르게 반영할 것인가에 대해서는 집중하겠지만, 그 과정에서 비트코인이나 이더를 얻게 될 수도 있다는 것은 전혀 중요한 요소가 아닙니다.
모든 데이터의 투명한 공개: 기업들은 모든 데이터가 공개되는 것을 기본적으로 원하지 않습니다. 우리가 누구와 거래하는지, 그 양이 얼마나 되는지, 각각 얼마씩에 팔고 있는지 모두 공개되는 것을 절대로 원하지 않습니다. 앞서도 이야기 한것처럼 IT는 비즈니스의 도구여야 하는데, IT 시스템을 사용하고 나니 모든 영업 기밀이 공개된다면 그런 시스템을 쓰고자 하는 회사는 없을 겁니다. 앞서 언급한 데이터의 공유는 꼭 공유해야 하는 상대방과 꼭 필요한 만큼 공유하는 것일 뿐입니다.
느린 블록 생성 및 전파 시간: 비트코인의 10분에 비하면 이더리움의 12초 (실제로는 15~20초)는 훨씬 빨라진 시간임에는 분명합니다. 하지만 역시 기업이 업무에 사용하기에는 너무 느립니다. 간단히 생각해서, 모바일 앱에서 버튼을 터치할 때마다 15초 정도 후에나 결과가 나온다고 생각해 보세요. 아마 쓰다가 복장 터져 죽을겁니다.
변동성이 심한 운영 비용: Ethereum은 스마트 컨트랙트를 실행할 때 Gas를 내야 합니다. 사용한 컴퓨팅 자원만큼의 비용을 내야 하는 것이죠. 사실 여기까지는 괜찮습니다. 퍼블릭 블록체인의 경우 자체 서버 구축 비용이 줄어드니, 클라우드 컴퓨팅을 쓰는 것처럼 생각할 수도 있으니까요. 그런데 문제는 이 Gas는 Ether로 지불해야 하는데, Ether의 가격은 시시때때로 변합니다. 이는 기업의 입장에서 운영비용이 매우 불확실해지는 것을 의미합니다. 또한 많은 데이터를 보관하거나 데이터의 변경이 잦은 경우, 매번 Gas를 지불해야 하기 때문에 절대적인 금액 자체도 적지가 않습니다.
이런 이유로 기업들을 위한 Hyperledger나 Corda같은 것들이 나오는 것이며, Quorum역시 이런 문제를 풀기 위해 나온 것입니다.
Quorum은 Ethereum 기반의 go-ethereum 클라이언트를 수정하였는데, 다음과 같은 특징을 가집니다.
기존의 Geth를 최소한으로 수정합니다. 그렇기 때문에 Ethereum JSON-RPC를 사용하는 대부분의 도구들과 호환됩니다.
PoW가 아닌 별도의 컨센서스 알고리즘(QuorumChain, Raft)을 사용합니다. 그렇기 때문에 블록을 매우 빠르게 만들 수 있습니다. Raft의 경우 몇 십 밀리세컨드 단위로 블록이 생성될 수 있습니다.
프라이빗 트랜잭션이 가능합니다. 모든 이에게 공개되는 트랜잭션 외에도, 거래 상대방과만 데이터를 주고 받는 트랜잭션을 만들고 보관할 수 있습니다.
사실 위의 특징들은 Hyperledger나 Corda에게도 있는 특징들입니다만, Quorum에게는 다른 플랫폼이 (아직) 가지지 못 하는 큰 장점이 하나 있습니다. 바로 스마트 컨트랙트가 이미 Ethereum을 통해 2년 정도 사용되었고, 검증되어 왔다라는 점입니다.
이런 이유로 얼마 전 브라질 중앙은행이 시행했던 테스트에서 Quorum이 좋은 평가를 받기도 했습니다. 링크
Quorum의 Consensus Algorithm은 기본인 QuorumChain과 Raft가 있습니다. 이에 대한 상세한 내용은 별도의 포스트로 빼야 할 것 같습니다만, 중요한 부분이니 개념적으로 간략히만 이야기 하자면 다음과 같습니다.
QuorumChain의 경우, 각 노드는 블럭을 생성할 수 있는 Maker와 Voter의 롤을 가질 수 있고, 둘 다 가지거나 아무것도 가지지 않는 것도 가능합니다. 아무 롤이 없을 경우 Observer가 됩니다. 그냥 데이터의 변화를 지켜 보고, 전달된 블록을 보관만 하는 노드인 것이죠.
스마트 컨트랙을 이용하여 각각의 Voter들은 전달받은 블록에 대해 투표를 하게되고, 투표 결과에 따라 블록을 기록하거나 거부하거나 하게 되는 구조입니다. 누가 블록을 만들 것인지는 지정된 최소/최대 시간 사이에 결정이 되고, 이 블럭타임은 초 단위로 지정이 가능합니다.
자세한 내용은 여기서 확인할 수 있습니다.
Raft는 좀 더 다른 알고리즘인데, 최소 50ms마다 누가 블록을 만들 것인지를 결정할 수 있으며, 트랜잭션이 있을 경우에 한해서 블록을 만들 수 있습니다. 즉 트랜잭션이 비어 있는 텅 빈 블록이 생성되지 않는 장점이 있습니다. Raft 알고리즘이 어떻게 작동하는지는 The Secret Lives of Data 사이트에서 시각적으로 볼 수 있습니다. 또한 Quorum의 Raft 알고리즘에 대해서는 여기에 기술되어 있습니다.
간략하게 Quorum을 소개해 드렸습니다.
Quorum은 기업에서 블록체인을 활용한 무언가를 만들려 할 때, 한 번쯤 검토해 볼 만한 가치가 있다고 생각됩니다. Solidity 코드는 Ethereum과 거의 동일하게 호환되기 때문에, 쉽게 네트워크를 이전할 수도 있고요. 두 네트워크 간의 연결도 생각해 볼 수 있을 것입니다.
다음 글에서는 Raft Algorithm에 대해 한번 정리해 보겠습니다.
Quorum은 처음 들어봤네요. 좋은 정보 감사드립니다! :D
Congratulations @andybclee! You have received a personal award!
1 Year on Steemit
Click on the badge to view your Board of Honor.
Do not miss the last post from @steemitboard:
SteemitBoard World Cup Contest - France vs Belgium
Participate in the SteemitBoard World Cup Contest!
Collect World Cup badges and win free SBD
Support the Gold Sponsors of the contest: @good-karma and @lukestokes
Congratulations @andybclee! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!