RChain Blog

RChain 스포트라이트: RCHAIN 네트워크와 CBC Casper의 연동

안녕하세요, 알체인의 한국 담당자 입니다. 이번 에피소드에서는 CBC Casper 프레임워크와 알체인과의 연계(Implementation)를 맡고 계신두 명의 뛰어난 엔지니어, 마이클 버치, 켄트 시카마님과 이야기 나누어 보겠습니다.RCon3의 이 대화에서는, 블록댁(BlockDAG ; 블록체인의 대안적인 네트워크 구조로서, 한번에 한개의 블록을 추가하는 블록체인과 달리 동시에 모두에게 서비스가 가능한 구조)부터 GHOST 포크-선택 규칙(체인이 두갈래로 갈라졌을 때 어떤 체인을 선택해야 하는 지 결정할 수 있는 메커니즘) 까지 모든 것을 다루어 볼 예정인데요,  아래에저희가 다루는 주제들의 개요를 정리해 보았습니다 

 

 

CBC Casper 합의 계획

 

CBC Casper 는 합의 프로토콜 프레임워크로써,  알체인의 지분증명식 블록체인 플랫폼과의 합의를 이루려고 합니다. 캐스퍼는 동시에 존재하지 않거나(asynchronous), 비잔틴 장애 허용(Practical Byzantine Fault Tolerance, BFT)이  해결 가능한 합의 프르토콜로서  다양한 방식으로 적용될 수 있으며,  사용되는 매개변수에 따라 다양한 상황속에서도  응용이 가능합니다. . 사용되는 매개변수는 다음과 같습니다:

 

• 합의 가치(어떤 것에 대해 합의할지)
• 논리/로직(합의된 가치에 대해 사고할 언어)
• 프로토콜의 진화 (정보가 어떻게 업데이트 되는지에 대한 규칙)
• 추정 법칙 (현 상태에 대해 어떤 것들이 사실인지)
• 보호 오라클 (DAG내의 블록의 최종성을 결정하는 것에 대한 규칙)

 

알체인의 맥락과 관점으로 본다면, 합의 가치(Consensus values)는 Rholang(이하 로랭)의 용어인 RhoVM (또는 tuplespace)의 상태에 부합합니다. 이 로직은 blockDAG의 포크-선택 팁 과 부합합니다. 프로토콜의  진화는 메시지 수령과 부합합니다; 저희는 로랭 용어를 기준으로 현재상태로 진화시킵니다. 추정법칙은 GHOST 포크-선택 법칙 (하단에 상세설명)에 부합합니다. 마지막으로, 보호 오라클은 DAG에서 가장 무거운 클리크를 선택하는 (측정된) 클리크 오라클  과 부합합니다.

 

지분증명식 캐스퍼의 장점

 

타 합의 프로토콜과 비교했을 때 지분증명식 캐스퍼의 장점은 여러가지가 있습니다. 지분증명식 캐스퍼 합의는 작업증명 프로토콜로써,  불필요한 연산으로 인한 전기 낭비가 없습니다. 이 프로토콜은 비잔틴 장애 허용(Practical Byzantine Fault Tolerance, BFT)에도 대처 가능합니다. 이것은  프로토콜을 지키지 않는, 해로운 구성원이 있어도 안전한 것을 의미합니다. 캐스퍼는 특히, 어떤 라이브니스 추정 없이도 합의를안전하게 보장합니다.(라이브니스 : 동시성 컴퓨팅에서, 라이브니스란, 시스템에서 동시에 실행되는 구성 요소가 임계 영역으로 “교대로 전환”해야 한다는 사실에도 불구하고 시스템이 진행되도록 하는 동시성 시스템 속성의 한 집합을 나타낸다. 라이브니스 보장은 운영 체제와 분산 시스템에 있어 중요한 속성이다)

 

BlockDAG & GHOST

 

DAG 는 방향성 비순환 그래프(directed acyclic graph)의 줄임말입니다. 전통적인 블록체인에서 각 블록은 하나의 모母 블록이 있습니다. 블록들이 체인에 연속적으로 나열되어 있으며, 블록체인이라 불립니다. BlockDAG에서는 블록들이 다수의 모母 블록이 존재할 수 있습니다. 이것의 장점은 결과적으로 버려질 블록들에 쓰이는 불필요한 자원낭비가 없습니다. 각개의 자식 블록에서 전송들이 충돌하지 않는다면 (이중 지불과 같은 문제가 없다면) 어떠한 자원도 낭비되지 않습니다. 이것은 blockDAG 가 블록 레벨 동시성을 얻게 되고, 소중한 자원을 보존할 수있게 합니다.
 
알체인은 GHOST (Greedy Heaviest Observed SubTree)포크-선택 규칙 fork-choice rule을 사용합니다:

 
• Greedy 욕심 : 현재 액세스 가능한 정보에 기반하여 가장 최적화된 결정을 선택합니다.
• Heaviest 무거운 : 지분에 있어서 가장 무거운(bonding)
• Observed 관찰된: 실제로 본
• Subtree 부수목: 나무 형태인 DAG내의 블록에 대한 부분 그래프
 
GHOST 규칙은 validator 가 어떤 블록을 만들어야할지, 어떤 블록이 모블록으로 사용되어야 할지를 관장합니다.

 

보호와 라이브니스

 

캐스퍼에는 다른 개념의 ‘보호/안전’이 있습니다; 합의와 예측. 합의 안전성 은 blockDAG의 국제적 소유입니다. 그 뜻은, 모든 (정직한) Validator들이 결국 이전의 상태와 충돌하지 않는 유효 상태에 동의한다는 것입니다. 예측 보호 는 지역 자산입니다. Validator의 이전 상태에대한 지식이 절대 미래 상태와 충돌하지 않는다는 뜻입니다.

 

이런 보호 개념들이 있지만, 그것은 미래 상태의 합의가 이루어진다고 보장될 때에만 유용할 것입니다. 이것이 라이브니스의 역할입니다. 라이브니스란 프로토콜 상태가 항상 미래 상태로 진화할 수 있다는 것을 의미합니다. 예를 들면, 살아있는 노드들은 결과를 생산해내는 것입니다.

 

고맙게도 캐스퍼는 라이브니스를 지원하고 우리는 예측 보호와 합의 안전성과의 상호 관계를 원합니다. 블라드 잠피르의 합의 안정성 정리에의하면 정확히; 예측 안정성이(비잔틴 오류가 너무 많지 않다면) 합의 안정성을 암시합니다.
새롭게 더해질 기능들 
 
여러 요소들이 아직 개발중에 있습니다. RCon3 때만 해도, 알체인의 캐스퍼는 고정된 상태의 플랫폼으로 Validator들이 제네시스 이후에 참가/이탈 할 권한이 없었습니다. 앞으로 생길 기능 중 가장 괄목할 만한 것은 본딩과 언본딩입니다. 본딩은 새로운 Validator에게 제네시스 이후 네트워크에 참가할 수 있게 해줍니다. 이런 기능들은 캐스퍼 시스템의 사용성을 매우 향상 시킬 것이고 유동적으로 움직이는 Validator 가있는 실제 블록체인 세팅에서 실행될 수 있을 것입니다.

 

RCon3의 합의에 대해서 더 보고 싶다면 Consensus on the RChain network 을 참고해주십시오. 

 

CBC Casper에 대해 더 알고 싶다면, Vlad Zamfir’s Casper presentation 을 봐주십시오.