이 블로그의 저작물은 별도
표시가 없는 한 아래 조건에
따라 사용 가능합니다
- 저작자 명시 필수
- 영리적 사용 불가
- 내용 변경 불가
비트코인을 시작으로 이더리움, 리플, EOS 등 여러 블록체인 플랫폼들이 등장함에 따라 기존 합의 알고리즘의 단점을 보완한 다양한 형태의 합의 알고리즘이 함께 등장하고 있다. 합의 알고리즘은 블록체인의 거래처리 성능, 소요 에너지, 보안, 개방성 등에 직간접적으로 영향을 미치는 만큼 해당 사업이 어느 가치에 중점을 두는지에 따라 합의 알고리즘의 형태도 다르다. 즉, 이제는 단순히 블록체인 백서를 읽는 것을 넘어 해당 프로젝트가 어떤 합의 알고리즘을 사용하는지에 유의할 필요가 있다. 따라서 본 글에서는 블록체인의 핵심 기반인 합의 알고리즘의 개요와 발전 과정에 따른 대표적인 몇가지 합의 종류를 소개해보고자 한다.
합의 알고리즘 개요 블록체인은 데이터베이스의 상태를 유지하기 위해 중앙 관리시스템 없이 신뢰관계가 아닌 개인간에 전체 데이터베이스를 공유하는 분산장부시스템이다. 즉, 블록체인은 트랜잭션 정보를 기록한 일종의 분산 장부로서 각 노드가 자신의 장부를 가지고 있기 때문에, 각 장부의 내용은 동일하게 유지되어야 하는 문제가 있다. 1. 합의 문제(Consensus Problem) 디지털 상에서는 디지털 복사로 인해 원본과 복사본을 구별하지 못하는, 즉 ‘이중 지불 문제’가 발생한다. 예를 들어, 전 재산이 1달러인 A가 1달러를 B에게 송금한다는 트랜잭션을 주변 노드에게 보내면서 C에게 1달러를 송금한다는 트랜잭션을 동시에 보낼 경우 블록체인 시스템에서 어느 것이 유효한 거래인지 합의를 하지 못하면 같은 가치가 이중 지불되는 문제가 발생한다. 기존에는 이러한 이중 지불 문제를 해결하기 위해 은행과 같은 신뢰 있는 제 3자에게 데이터 관리 권한이 위임되었으나, 이 역시 중개 수수료, 거래 지연, 단일 장애 지점(Single Point Of Failure)* 존재 등의 ‘3자 문제’가 존재한다. 반면, 블록체인은 ‘합의 알고리즘’을 통해 P2P네트워크 상에서도 제 3자/중앙 통제 시스템 없이 데이터베이스의 오류와 무결성을 보장한다. 즉, P2P네트워크 상의 다수의 피어(노드)들이 합의를 통해 하나의 DB(블록체인)을 유지하는 것이다. 이때의 합의 알고리즘은 노드가 새 트랜잭션 데이터와 블록을 어떻게 처리할 지를 통제하는 명령어이다. 2. 합의 알고리즘(Consensus Algorithm) 합의 알고리즘은 블록체인 상의 여러 합의 과정에 영향을 끼친다. 이 중 가장 대표적인 것이 1) 블록생성 권한 분배 방법과 2) 포크(fork, 분기) 발생시 하나의 체인을 선택하는 방법 이다. 1) 블록생성 권한 분배 비허가형(permissionless) 블록체인과 같은 경우, 각 노드는 특별한 자격제한 없이 블록을 만들 수 있다. 따라서 각 노드에서 블록을 아무런 노력 없이 쉽게 만들 수 있게 된다면 동시에 수많은 블록이 만들어질 수 있으며, 이는 각 노드가 하나의 블록체인에 합의하는 것을 거의 불가능하게 만들 수 있다. 따라서 블록체인에서는 합의 알고리즘에 따라 즉시 거래 처리를 하는 것이 아닌 각 노드가 일정시간 동안 거래를 모아서 처리하게 하며, 특정 조건을 맞춘 채굴자를 선정하여 블록을 생성하게 한다. 이때, 각 합의 알고리즘이 요구하는 채굴자의 특정 조건은 계산 능력, 토큰 보유 량 등 다양한 합의 조건이 나올 수 있다. 예) 작업증명(Proof of Work, POW)같은 경우에는 계산능력에 따라 채굴확률이 결정된다. 예를 들어, A의 계산능력이 1이고, B가 2이면, 이들의 채굴확률은 1:2로 결정되어, A가 1개 채굴할 때 B는 2개를 채굴할 수 있다는 것을 의미한다. 2) 포크(fork; 분기) 발생시 하나의 체인 선택 노드 간 떨어져 있는 거리와 전송속도에 따라 특정 시점에서 노드 마다 블록체인이 다르게 구성될 수 있다. 예를 들어 A국가에 있던 노드에는 파랑블록 다음에 빨강블록이 자식으로 연결되어 있는 상태*(자식으로 연결되었다는 의미는 바로 앞 블록의 블록해쉬를 포함하고 있음을 의미)였는데, 초록블록이 뒤늦게 전달되어 파랑블록 다음에 자식으로 연결됨으로써 포크(fork)가 발생한다. 이렇듯 한 부모에 대해 자식 블록이 여러 개가 생기는 상황을 포크(fork)라고 하며, 포크가 된 상황은 각 노드가 소유하고 있는 분산장부 간에 일치되지 않는 상태를 유발하게 된다. 따라서 이러한 불일치 문제를 해결하기 위해 각 블록체인은 블록체인 별로 합의 규칙을 정하여 모든 노드가 파란블록에 대해 빨강블록이 자식이 될지, 초록블록이 자식이 될지 동일하게 결정한다. 이것을 해결하는 대표적인 방법이 비트코인에서 쓰이는 가장 긴 체인을 선택하는 방법이다. 한 노드가 초록블록을 부모로 하여 분홍블록을 만들고 분홍 블록을 모든 노드에게 전파를 하면, 초록블록은 자식 블록이 연결됨으로서 빨간블록보다 긴 체인을 형성하게 되어 초록블록이 속한 체인이 메인 체인이 된다. * 참조: 2018 Electronics and Telecommunications Trends_[블록체인과 합의 알고리즘] 3. 비잔틴 장군 문제(Byzantine General Problem) 블록체인 합의 알고리즘은 합의 문제 뿐만 아니라, 비잔틴 장군 문제 즉, 악의적인 노드가 분산 시스템에 참여한 상황에도 신뢰 있는 서비스를 제공할 수 있느냐는 문제를 해결하였다. 비잔틴 장군문제는 1982년 레슬리 램포트의 논문에서 처음 언급된 것으로, 지리적으로 떨어진 상태에서 각 부대의 지휘관들이 배신자의 존재에도 불구하고 충직한 지휘관들의 수가 얼마나 있어야 하며, 이 지휘관들이 어떤 규칙을 따라 교신해야 동일한 공격 계획을 세울 수 있는지에 대한 문제다. 이때, 블록체인이 부정직한 노드를 처리하는 가장 큰 무기는 정직한 다수의 힘과 보상 및 처벌의 효과다. 특정 노드가 위조된 트랜잭션을 보내거나 유효하지 않은 트랜잭션 데이터나 블록을 승인하더라도 채굴을 통한 보상을 향한 다수의 열망이 시스템 무결성을 해치려는 부정직한 노드의 욕망보다 훨씬 크고 강력하기 때문이다(출처: 블록체인 무엇인가?_다니엘 드레셔). 이렇게, 합의 알고리즘은 분산 네트워크 상에 있는 다양한 문제들을 해결하기 위한 방법으로 연구되어 왔다. 합의 알고리즘은 블록생성 권한 분배 방식, 블록생성 및 검증 방식 등에 따라 다양한 형태를 띄는데, 보다 효율적인 합의와 높은 보안, 탈중앙화를 갖춘 블록체인을 만들기 위해 현재까지도 다양한 합의 알고리즘 형태가 개발중에 있다. 4. 합의 알고리즘 vs 프로토콜 알고리즘과 프로토콜은 흔히 바꿔서 사용되기도 하지만, 완전히 같은 것은 아니다. 간단히 말하자면, 프로토콜은 블록체인의 기본 규칙이며, 알고리즘은 이러한 규칙을 따르는 매커니즘으로 정의해볼 수 있다. 이해를 쉽게 하기 위해 (조금의 무리가 있지만) 간단히 설명하자면, 리플의 경우 리플넷은 프로토콜이며 비트코인은 합의 알고리즘으로 볼 수 있다 금융 시스템에서 광범위하게 사용되고 있는 것 외에도, 블록체인 기술은 다양한 사업에 적용될 수 있고, 다른 용도에도 적합할 수 있다. 그러나 어떤 상황에서든지, 블록체인 네트워크는 시스템 작동 방식을 결정하는 프로토콜 위에 구축될 것이며, 따라서 시스템의 모든 요소와 네트워크 참여자들은 기본 프로토콜 규칙을 따라야 한다. 프로토콜이 규칙이 무엇인지 규정한다면, 알고리즘은 이러한 규칙을 준수하고, 원하는 결과물을 도출해내기 위해 어떠한 절차를 거쳐야 하는지 시스템에 지시한다. 예를 들자면, 블록체인 합의 알고리즘은 트랜잭션과 블록의 유효성을 결정하는 것이다. 따라서, 비트코인과 이더리움은 프로토콜이며, 작업 증명과 지분 증명(PoS, Proof of Stake)은 이들의 합의 알고리즘이 되는 것이다. 자세히 설명하자면, 비트코인 프로토콜은 노드가 상호 작용하는 방법과 데이터가 전송되는 방법, 성공적인 블록 검증을 위한 필요 조건들을 정의한다. 반면, 합의 알고리즘은 잔고와 서명을 검증하고, 트랜잭션을 승인하고, 실제로 블록의 유효성 검사를 실시하며, 이 모든 것은 네트워크 합의에 달려있는 것이다. 참고자료 :
블록체인과 합의알고리즘.pdf
파일 다운로드
합의 알고리즘의 대표적 종류와 그 발전 과정 1. 작업증명 (Proof of Work, POW) PoW의 기본 개념은 1993년 Cynthia Dwork 와 Moni Naor에 의해 처음 고안되었으며, 1999년에 이르러 Markus_Jakobsson 과 Ari Juels에 의해 Proof of Work 라는 명칭이 붙게 되었다. 이러한 개념을 비트코인의 창시자, 나카모토 사토시가 비트코인에 적용하며 널리 알려지게 된다. PoW는 '작업증명방식'으로, '컴퓨터 연산을 통해 특정 Nonce 값(블록 헤더의 해시 값이 난이도에 제시된 값보다 작은 값이 나오게 하는 Nonce값)을 먼저 찾는 사람'이 블록을 검증(채굴) 할 권리를 부여 받게되는 구조이다. 심지어, 연결되는 블록이 많아 질 수록 해당 난이도는 점점 올라가게 된다. 이러한 값을 찾기위해서는 무작위 숫자를 넣어보며 대입하여 푸는 방법 밖에는 없기 때문에, 컴퓨팅 파워가 클 수록 연산능력이 높아 결국 채굴을 할 확률이 커진다는 의미이다. Proof of Work 이란 용어의 의미 대로, 작업(값을 찾기위한 연산)을 통해 블록의 유효성을 증명하고 채굴 권리를 얻어내는 방식인 것이다. 이렇게 컴퓨팅 파워에 의존하는 PoW의 구조 덕분에 PoW는 보안성을 가장 큰 장점으로 가지고 있다. 이는 블록체인의 가장 유명한 취약점인 '51% 공격' 을 손쉽게 방어 할 수 있는 구조이기 때문이다. 악의적인 공격자가 51% 공격을 하기 위해서는, 51% 이상의 컴퓨팅 파워를 확보해야 하지만 이는 현실적으로 천문학적인 비용을 필요로 하기에 이를 통해 공격자가 얻을 수 있는 이익은 비용보다 낮을 수 밖에 없다. 그러나 이러한 장점과 동시에 PoW 방식은 엄청난 전력 소비를 감당해내야 하는 비효율적인 문제를 안고 있다. 비트코인 채굴에 소모되는 전력량은 연간 약 48TWh(테라와트시)로 추정되며, 이는 연간 페루나 홍콩을 넘어 포르투갈이나 싱가포르의 연간 전력에 맞먹는 규모라고 한다. 또한 이러한 구조는 자연스럽게 기업형 채굴꾼들이 나타나게되어 특정 소수에게 채굴권이 집중되는 문제를 만들어 냈다. 이는 특히 비트코인을 비롯한 블록체인 기술의 핵심 미션인 '탈중앙화' 에 반대되는 현상이기도 하다. 2. 지분증명(Proof of Stake, PoS) 비트코인을 통해 가상화폐와 블록체인 기술에 대한 관심이 점점 높아지며 PoW 방식이 가지고 있는 문제점들을 해결하고자 하는 논의가 이루어졌고, PoW 방식의 대안으로 등장하게 된 것이 바로 PoS 방식이다. PoS의 개념은 2011년, Bitcointalk 포럼에서 처음 제안되었으며 이후 Peercoin, Nxt, Novacoin 등에 채택되었다. 최근에는 비탈릭 부테린이 PoW 기반의 Etherium을 PoS로 전환하겠다는 선언을 하며 더욱 관심이 높아진 합의 방식이다. PoS는 '지분증명방식' 으로, 해당 코인을 많이 가지고 있는(지분을 많이 보유한) 만큼 블록에 대한 유효성을 검증 할 확률이 높아지는 구조이다. 그러나 단순히 지분이 많은 사람만이 선택되는 것은 아니며, 무작위로 선택되는 'Randomized block selection' 방법과 코인의 보유기간이 코인 지분과 함께 영향을 끼치는 'Coin Age based selection' 방법이 대표적이다. PoW에서는 채굴 행위를 통해 새로운 코인이 탄생하고 이를 채굴자가 취하는 것과 다르게, PoS에서는 해당 거래의 수수료만을 가져가게 된다는 차이점이 있으며 또한 본인의 코인 지갑을 네트워크에 연결시킴으로서 이자를 받을 수도 있다. 이러한 PoS 방식은 무엇보다 PoW 방식의 문제점들을 해결한다는 장점이 있다. 컴퓨팅 파워를 소비하지 않기에 하드웨어 인프라를 필요로 하지 않고 유지비용 또한 굉장히 저렴하며, 지분 및 보유기간에 따른 권한 부여를 통해 채굴 독점 문제에서 일정 부분 벗어날 수 있게되었다. 또한 PoS 방식은 코인보유기간 조건에 따른 코인 장기 보유가 유도되며, 이러한 점은 해당 코인의 시장 가치 유지에 긍정적으로 작용할 수 있다. 그러나 PoS 방식 또한 결코 완전하지는 못하다. PoS 방식의 대표적인 문제점은 바로 'Nothing at Stake' 문제이다. 이는 적은 리소스 비용으로 인해 유효한 블록체인이 두 개 이상 존재하는 포크 상황에서, 참여자들이 보상 확률을 높이기 위해 두 개 이상의 블록체인 모두에 블록을 생성하는 행위를 할 수 있다는 것이다. 이러한 문제는 블록체인이 하나로 수렴되는 것을 어렵게 하며, 이 경우 악의적 공격에 대해 취약해지고 유효한 체인에 대한 합의를 빨리 이루지 못한다는 문제가 발생한다. 3. 위임된 지분증명 (Delegated Proof of Stake, DPoS) PoW 방식의 대안으로 야심차게 등장한 PoS 방식 또한 완전하지 못하다는 점이 드러나며, 이를 해결할 수 있는 대안으로서 EOS의 창시자 '댄 라리머'에 의해 제안 된 합의 방식이 바로 DPoS 이다. 이는 위임된 지분 증명 방식으로. PoS와의 차이점은 권한을 소수의 대표자에게 이양한다는 것이다. PoS가 직접 민주주의라면 DPoS는 간접민주주의이다. 지분 보유자들은 지분에 비례한 투표권을 행사하여 자신들을 대신하여 블록 생성과 검증, 네트워크 유지, 합의에 대한 권한을 소수에게 위임한다. 현재 가장 성공적인 사례인 'Steemit' 은 이러한 DPoS 방식을 채택해 21명의 증인(대표자)를 통해 DPoS 방식과 퍼블릭 블록체인의 가능성을 증명해주고 있다. DPoS의 가장 큰 장점은 투표에 의해 선출 된 소수의 대표자들이 전체를 대신하여 블록을 생성한다는 점이다. 때문에 상대적으로 빠른 합의 속도와 비용이 적게 소요된다는 장점이 있다. 이와 동시에 전체 네트워크 관리와 프로젝트의 발전에 대해 아무런 관심이 없는 일반 이용자들은 오히려 편의성이 증가한다. DPoS는 소수에 의한 효율성을 증명해냈지만, DPoS를 비판하는 많은 사람들은 공통 된 질문을 던진다. 소수에 의해 관리되는 네트워크가 과연 탈중앙화가 맞냐는 것이다. 이 점에 대해서는 각자가 생각이 다르겠지만, 기술적으로만 따지자면 노드의 소수 집중적 구조는 기존 블록체인 기술이 가지고 있는 가장 큰 강점인 '탈중앙화로 인한 보안성'을 잃어버리는 단점이 있다. 모든 네트워크가 소수에 집중되면 그만큼 공격에 취약해 지는 것은 당연한 일인 뿐더러 자신의 정체를 투명하게 공개해야 하는 증인에 대한 공격은 더욱 그렇다. 4. 합의 알고리즘의 진화 본 글에서는 PoW 에서 DPoS 까지, 가장 널리 사용되는 세 가지의 합의 알고리즘을 언급했지만 이 외에도 PoI(Proof of Importance), PoA(Proof of Authority), BFT(Byzantine Fault Tolerance) 등 수 많은 합의 알고리즘이 제안되고 개발되어지고 있다. 어느 블록체인에나 적용가능한 완벽한 합의방식은 아직 존재하지 않기에 블록체인 기술은 아직 보편적 실용기술로 자리잡기까지는 수 많은 문제점이 있지만, 합의 알고리즘은 다양한 방향으로 계속해서 연구되어지고 있으며 이를 통해 빠르게 진화하고 있다는 점 또한 사실이다. 5. 현재까지의 합의 알고리즘 종류 (작동여부는 확인 안됨) 1. 균형작업증명 균형작업증명(ePoW, equilibrium Proof of Work)은 기존 작업증명(PoW) 방식을 기반으로 하되, 한 번 채굴에 성공한 노드는 일정 기간 강제로 휴식을 취하도록 만들어 다른 노드들에게 채굴 기회를 공평하게 나누어 주는 방식의 합의 알고리즘이다. 에이치닥 코인에서 이 방식을 사용하고 있다. 균형작업증명은 평등한 기회와 에너지 절약에 기반하여 누구나 공평하게 작업증명을 진행해 혜택을 받을 수 있도록 한 것이 특징이다. 이미 채굴에 성공한 노드는 다른 참여자에게 기회를 양보하도록 Lyra2Rev2 ASICresistent 알고리즘을 구성해 과도한 에너지 낭비 문제도 해결했다. 균형작업증명 합의 알고리즘은 작업 증명에 참여하는 노드의 개체 수 감소를 방지하고, 다수의 채굴 노드가 참여할 수 있는 동기를 부여할 수 있고, 결과적으로 채굴 경쟁을 위한 과도한 컴퓨팅 파워 투입에 따른 에너지 낭비 방지와 채굴 기회의 공정한 기회 분배를 도모하고자 하는 의도에서 출발하였다. 이는 채굴 환경에 있어 기존의 암호화폐가 지닌 작업증명(PoW) 방식의 문제점인 컴퓨팅 파워에 따른 부익부 빈익빈과 채굴 환경 집중 현상을 해결하기 위한 것이다. 따라서 일반인도 쉽게 가상화폐 채굴에 참여할 수 있도록 한 것이 특징이다. 2. 지연된 작업증명 지연된 작업증명(DPoW, Delayed Proof of Work)은 네트워크 보안을 강화하기 위해 비트코인 블록체인의 해시 파워를 사용하는 작업증명 합의 알고리즘의 수정 버전이다. 슈퍼넷(Supernet)이 설계하였으며 코모도가 유일하게 디포우 방식을 사용하고 있다. 지연된 작업증명 합의 알고리즘은 시스템 장애나 해킹이 발생해도 전체 데이터를 신속하게 복구할 수 있다. 공격자가 해킹을 통해 영구적 손상을 입히려면 비트코인 네트워크 또한 해체하여, 비트코인 블록체인 내에 백업된 모든 스냅샷을 삭제해야 한다. 이러한 시나리오의 가능성은 매우 낮기 때문에 지연된 작업증명 합의 알고리즘을 실행하는 블록체인들은 보다 높은 수준의 보안을 유지할 수 있다. 그러나 지연된 작업증명은 코모도 생태계 내에서만 구현된다는 점에 주목해야 한다. 추가적인 테스트를 통한 다른 시나리오와 대규모 스케일에 대한 효율성과 신뢰성은 아직 검증되지 않았다. 3. 우로보로스 지분증명 찰스 호스킨슨(Charles Hoskinson)에 의해 개발된 우로보로스 지분증명(OPoS, Ouroboros Proof of Stake)은 기존 지분증명 방식의 문제점인 그라인딩 공격(Grinding Attack)을 방어하기 위해 코인토싱(coin tossing) 프로토콜을 사용하여 만든 합의 알고리즘이다. 찰스 호스킨슨(Charles Hoskinson)에 의해 개발되어 에이다가 이 방식을 사용하고 있다. 찰스 호스킨슨은 랜덤 변수 생성 프로토콜인 코인 토싱을 블록체인 노드들의 합의 알고리즘에 도입했다. 이는 블록 생성을 담당할 대표 노드들을 임의로 선정하는 시스템이다. 미리 설정된 변수를 통해 각 노드들이 번갈아 가면서 균일하게 블록 생성에 참여할 수 있는 기회를 가질 수 있도록 했다. 이로 인해 우로보로스 지분증명 방식은 ‘임의성’이라는 독창적인 방법으로 특정 노드들의 지분 독식을 막았다는 평가를 받았다. 하지만 아직 안정성을 증명하는 테스트 단계에 머물러 있어 현실화되기까지는 시간이 걸릴 것으로 보인다. 4. 리스지분증명 리스지분증명(LPoS, Leased Proof of Stake)은 자신이 소유한 암호화폐를 다른 사람에게 리스(lease)로 임대해 주고 그 대가로 보상을 받는 방식이다. 웨이브즈가 이 방식을 사용하고 있다. 리스지분증명은 지분증명(PoS) 합의 알고리즘의 향상된 버전이다. 일반적으로 지분증명 알고리즘에서 일정량의 암호화폐를 보유한 노드는 다음 블록을 생성하여 블록체인에 추가할 수 있지만, 리스지분증명에서는 사용자가 잔액을 다른 풀노드에 임대할 수 있다. 리스지분증명을 사용하면, 사용자는 자신이 소유한 웨이브를 다른 풀노드 사용자에게 임대할 수 있다. 자신이 보유하고 있는 웨이브즈를 풀마이닝 노드에게 임대(리스)해서 그들이 제공하는 추가 채굴에 대한 대가로 수입을 받는 것이다. 풀노드가 받는 금액이 클수록 해당 노드가 다음 블록의 생성자로 선택될 가능성이 높아진다. 풀노드가 다음 블록의 생성자로 선택되면, 임대자는 풀노드가 획득한 트랜잭션 수수료 총액 중 자신이 임대해준 코인 수량에 비례한 액수를 보상으로 받게 된다.
Leased 지분 증명 (Leased Proof of Stake, LPoS) · GitBook
개요 모든 블록체인은 어떤 블록이 유효한 블록인지 결정 가능하거나 이중 지출이 없도록 보장 하는 메커니즘을 필요로합니다. (예 : 동일한 자산을 별도의 체인의 다른 사람에게 보내는 것) 이를 달성하기 위한 몇 가지 처리 방법이 있습니다. Waves는 이른바 지분증명 (Proof-of-Stake, PoS) 컨센서스 알고리즘을 사용합니다. 본 섹션에서는 PoS에 대한 설명과 Bitcoin에서 등의 블록체인에서 널리 사용되는 작업증명 (Proof-of-Work, PoW) 방식의 알고리즘과 비교해 볼 것입니다. 각각의 블록체인은 탈중앙화된... docs.wavesplatform.com 5. 이중위임지분증명 이중위임지분증명(DDPoS, Dual Delegated Proof of Stake)은 기존의 위임지분증명(DPoS) 방식을 사용하면서, 알고리즘에 따라 실시간으로 교체되는 임의의 노드인 시그마노드(sigma node)를 추가하여 검증하도록 함으로써 대표자들 간의 담합에 의한 블록체인 데이터 조작 가능성을 예방한 합의 알고리즘이다. 곽진영이 창시한 시그마체인이 이중위임지분증명 방식을 사용하고 있다. 이중위임지분증명은 이오스나 스팀에서 사용 중인 엔진에 비하여 보안성이 뛰어나고, 개인정보보호를 강화시켰으며 기존의 위임지분증명 방식에 검증 절차를 한 단계 더 추가했다. 자세히 살펴보면, 총 21개의 대표 노드 가운데, 17개는 암호화폐 소유자들의 지분에 비례하여 투표로 선출된 대표자(증인)로 구성되고, 나머지 4개는 전체 노드들 중에서 랜덤하게 선출된 노드(즉, 시그마노드)로 구성된다. 이중위임지분증명 방식에서는 선출된 대표자(마스터노드) 외에도 자체 알고리즘에 따라 랜덤하게 선택되는 임의의 노드인 시그마노드가 교차 검증을 한다. 결국 시그마체인을 사용하면 암호화폐 소유자들이 각자의 지분율에 비례하여 투표권을 행사하여 자신의 대표자를 선정하고, 이 대표자들끼리 합의하여 의사결정을 내리는 위임지분증명 방식의 장점을 그대로 사용하면서, 알고리즘에 따라 랜덤하게 실시간으로 교체되는 임의의 노드인 '시그마노드'(sigma node)를 추가하여 검증하도록 함으로써 대표자들 간의 담합에 의한 블록체인 데이터 조작 가능성을 예방할 수 있다. 이러한 위임지분증명 방식은 기존 작업증명(PoW) 방식의 단점인 트랜잭션 처리 속도와 위임지분증명 방식의 보안 취약성 부분을 해결한 진일보한 알고리즘으로서, 현재 국제특허출원 중에 있다
O2O Chain (2) : 기업이 쓸 수 있는 블록체인을 추구한다
1. 기업이 당장 쓸 수 있는 블록체인을 원한다. 1) Blockchain Trilemma : O2O Chain이 선택해야 할 선택지 앞서 O2O Chain이 구현하고자 하는 O2O 생태계가 어떤 것인지 논의한 바 있다. SODA 테이블이 실생활에서 매순간 활발하게 사용되고, 수요와 공급을 즉각적으로 연결해 낼 수 있으려면 어떤 블록체인 시스템을 적용해야 할까? 이를 위해서 Vitalik의 ‘블록체인 트릴레마’를 떠올려 볼 수 있겠다. 즉 블록체인에서 1) 확장성, 2) 탈중앙화, 그리고 3) 보안성 이슈는 모두 함께 이뤄낼 수 없... trybe.one 6. 하이퍼 위임지분증명 하이퍼 위임지분증명(Hyper-DPoS)은 기존의 위임지분증명(DPoS) 방식을 기반으로 하되, 일정한 시간 안에 빠르게 반응하고 응답할 수 있는 노드만을 선택하여 합의 과정에 참여시키는 합의 알고리즘이다. 하이퍼 디포스라고도 한다. 모파스가 이 방식을 사용하고 있다. 모파스는 기존 블록체인의 근본적 문제인 속도를 개선하기 위해 제한된 퍼블릭 블록체인(Limited Public Blockchain)을 고안했다. 이는 모파스가 구현하고자 하는 시간 내에 반응하고 응답할 수 있어야 노드로써 참여할 수 있는 모델이다. 이 노드로 참여하기 위해서는 고가용성 하드웨어 및 네트워크가 담보되어야 하며 하드웨어와 네트워크의 신뢰 지표인 PRR 조건을 만족해야 한다. 하이퍼 위임지분증명은 이 PRR 조건을 만족하는 노드들로 구성된 퍼블릭 블록체인에 디포스의 지분위임방식을 결합해 모든 구성원의 참여와 견제를 유도하여 네트워크상에서 제3자의 개입 없이 신뢰를 만드는 효율적인 알고리즘이다. 7. 포뮬레이션증명 포뮬레이션증명(PoF, Proof of Formulation)은 포뮬레이션 보상 순서를 바탕으로 채굴자를 선택하는 합의 알고리즘이다. 플레타가 기존의 위임지분증명(DPoS)을 일부분 변형하여 만들었다. 포뮬러 그룹은 네트워크에서 블록 생성 순서를 공유하고 확인하며, 공유되고 동기화된 순서를 통해 블록 생성을 진행한다. 가장 높은 순위의 포뮬러가 블록을 생성하고 다음 블록은 다음 순위가 생성하는 순환 방식을 이용하여 고속 거래 메커니즘을 제공하고 안정적인 블록 생성을 수행한다. 8. 포크능력증명 포크능력증명(PoF, Proof of Forkability)는 정해진 수의 선출된 검증자들이 투표를 통해 3분의 2 이상 찬성으로 의사결정을 하는 합의 알고리즘이다. 기존의 비잔틴 장애 허용(BFT)과 위임지분증명(DPoS) 합의 알고리즘의 장점을 결합하여, 애스톤(Aston)을 만든 ㈜엑스블록시스템즈가 개발했다. 기존의 합의 알고리즘에는 포크에 대한 어떠한 합의 메커니즘도 존재하지 않았다. 포크 자체를 허용하지 않았기 때문이다. ㈜엑스블록시스템즈은 분기 허용이 가능한 엑스블록체인에 대한 이에 대한 이에 대한 특별한 합의 알고리즘의 필요성을 느끼고 포크능력증명을 개발했다. 9. 지분작업증명 지분작업증명(PoSW, Proof of Stake and Work)은 작업증명(PoW) 방식과 지분증명(PoS) 방식을 혼합한 하이브리드 방식의 합의 알고리즘이다. 디크레드, 애터니티, 하이퍼캐시, 해피코인, 쿼크체인 등이 이 방식을 사용하고 있다. 지분작업증명에서 채굴자는 모든 해시파워를 네트워크에 제공하려는 경우(네트워크의 모든 해시 전력의 P%를 가정) 채굴자는 P에 비례하는 토큰 수를 스테이킹 해야 한다. 즉, 이중지불 공격을 수행하려면 공격자가 네트워크의 해시 전력의 51% 이외에 토큰을 보유해야 한다. 또한 풀 소유자가 풀에서 수집한 모든 해시파워의 효율성을 최대화하기 위해 충분한 지분을 확보해야 하므로 채굴 풀에게 더 많은 비용이 소요된다. 10. 트레이딩증명 트레이딩증명(PoT, Proof of Trading)은 암호화폐 거래소에서 사용자가 거래한 양에 비례하여 거래소 수수료 수익의 일부를 거래자에게 되돌려주는 트레이딩 채굴에서 사용하는 합의 알고리즘이다. 코인제스트에서 코즈에 최초로 적용한 채굴방식이다. 거래소에서 암호화폐를 거래하면 그 비율에 따라 블록 보상으로 코인을 준다. 따라서 코인 보상을 받기 위해 거래를 하고 거래가 활성화된다. 트레이드 채굴의 시초는 에프코인(F Coin) 토큰이고 그 이후에도 각종 트레이드 채굴 방식을 채택한 토큰이 발행되었지만 몇 가지 문제점이 발견되어 급격한 가격의 하락 이후 투자자들로부터 외면을 받았다. 그 중 가장 큰 문제점으로 여겨지는 점은 총 발행량은 정해진데 비해 이일 채굴량에 제한이 없었다는 것이다. 코즈는 이 문제를 해결하기 위해 일일 채굴량에 제한을 두었다. 11. 소각증명 소각증명(PoB, Proof of Burn) 방식은 코인을 결코 돌아올 수 없는 지갑에 보내서 소각하면, 소각한 코인량에 비례하여 채굴 성공 가능성이 높아지는 방식이다. 지출증명이라고도 한다. 슬림코인(slimcoin)은 이 방식을 사용하는 유일한 암호화폐이다. 소각증명에서는 값비싼 컴퓨터 기기에 돈을 퍼붓는 대신 다시 반환되지 않는 주소로 코인을 전송해 “태운다.” 코인을 결코 돌아올 수 없는 네버랜드에 맡겨두면, 랜덤 선정 과정에 근거한 시스템에서 채굴할 수 있는 평생의 특권을 부여 받는다. 소각증명이 어떻게 이행되느냐에 따라서 채굴자들은 전통 화폐나 비트코인과 같은 대안적 체인의 화폐를 태울 수도 있다. 더 많은 코인을 태울수록 다음 블록에 채굴하도록 선정될 확률은 더 높다. 시간에 걸쳐, 시스템에서의 지분은 쇠퇴해지며 복권에 선정될 확률을 높이기 위해 더 많은 코인을 태우길 결국엔 희망할 것이다. 이는 해시파워를 유지하고자 더욱 신식의 컴퓨터 기기에 지속적으로 투자하는 비트코인의 채굴과정을 모방하고 있다. 소각증명은 작업증명을 대체하는 흥미로운 대안책이지만, 프로토콜은 아직도 불필요하게 자원을 낭비한다. 또 다른 비판은 채굴권이 더 많은 돈을 태울 용의가 있는 사람에게만 간다는 것이다. 12. 두뇌증명 두뇌증명(PoB; Proof of Brain)방식은 암호화폐의 발행을 채굴자나 지분 소유자에게 맡기지 않고, 지적 두뇌 활동을 통해 콘텐츠를 생산하는 사용자와 해당 서비스를 이용하는 참여자들에게 맡기는 합의 알고리즘이다. 돈 버는 SNS로 알려진 스팀잇의 자체 토큰인 스팀(Steem)이 두뇌증명을 사용하고 있다. 스팀잇은 기본적으로 위임지분증명과 더불어 콘텐츠 생산자들에게 더 많은 보상이 돌아갈 수 있도록 한 두뇌증명 방식도 함께 운영하고 있따. 콘텐츠를 작성하고 추천하는 행위에 따라 스팀으로 보상을 해주는 이 방식은 사실상 채굴보다는 보상 알고리즘에 가깝다. 13.중요도증명 중요도증명(PoI, Proof of Importance)은 블록체인 네트워크에서 더 많은 지분을 가지고 더 많이 거래를 함으로써 더 많은 활동량을 보인 사람에게 더 큰 의사결정 권한을 주는 방식이다. 넴이 이 방식을 사용하고 있다. 넴에서는 각각의 계정에 넴 경제에 대한 중요도에 관계되는 ‘중요도 점수’를 할당한다. 더 높은 중요도 점수를 가지고 있는 계정이 블록을 채굴할 가능성이 더 높아진다. 때문에 다른 시스템에서 블록을 형성하기 위해서는 매우 비싼 하드웨어나 아주 많은 코인을 필요로 하지만 넴에서는 거래량과 신용이 중요한 요소가 된다. 중요도증명이 설계된 이유는 넴을 사용하는 유저들이 XEM(넴 블록체인의 자산)을 보유하는 것에 그치지 않고 실제로 사용하도록 장려하기 위해서이다. 14. 신뢰성증명 신뢰성증명(PoB, Proof of Believability)은 커뮤니티에 대한 기여도를 고려하여 신뢰성이 높은 그룹을 찾아내고 이를 묶어서 증명에 사용하는 방식이다.이오스트가 이 방식을 사용하고 있다. 신뢰성증명은 블록체인 생태계에 가장 활발하게 참여한 사람에게 보상을 주는 것이다. 예를 들어 해당 블록체인 기술로 앱을 열심히 개발했거나, 그 암호화폐 기술로 결제를 많이 한 사람 중 일부를 골라 추첨한다. 뽑힌 검증자는 시스템에 문제가 있는지(해킹, 개인정보 유출 등의 문제) 검증한 후 이오스트의 암호화폐를 받는다. 이를테면 암호화폐, 복권, 청문회를 모두 거쳐야 하는 엄격한 방식이다. 이 네트워크에는 평판개념이 도입돼 있다. 평판과 토큰을 합해서 블록을 생성할 권한을 줄지 결정한다. 평판에는 사용, 거래, 기부 등의 여러 요소가 포함된다. 이 평판이 0으로 돌아가면 처음부터 좋은 일을 다시 해야 한다. 15. 흐름증명 흐름증명(PoF, Proof of Flow)은 더 많은 사용자 트래픽을 가져온 기여자에게 더 큰 보상을 해주는 합의 알고리즘이다. 이는 중국의 요요우(YoYow)가 만들었다. 모든 종류의 미디어 플랫폼, 웹사이트의 가치는 항상 웹사이트의 트래픽과 관련이 있다. 플랫폼은 사용자가 필요로 하는 정보를 전송하고 트래픽은 광고를 가져오며 결국 플랫폼에 이익을 가져다준다. 요요우 플랫폼에서 사용자의 가치는 사용자가 얼마나 효과적인 트래픽을 요요우 플랫폼으로 가져오는지를 토대로 평가할 수 있다. 동시에 요요우는 더 많은 트래픽을 자신들에게 이끄는 유용한 콘텐츠를 제작한 사용자에게 보상을 준다. 또한 글쓴이는 요요우에 액세스한 미디어 플랫폼에 포스팅을 해도 설정된 규정과 독자의 평가를 반영하여 보상을 획득할 수 있다. 포스팅 내용 선별 인원과 포스팅이 진행된 플랫폼도 보상을 획득한다. 즉, 레딧, 트위터 등과 같은 기타 미디어들과 연동하여 요요우에 플러그-인 액세스가 가능하다.[19] 16. 권위증명 권위증명(PoA, Proof of Authority) 방식은 권위 있는 기관에서 조건에 맞는 노드를 증명해 이들 간 합의를 이루는 방식이다. 두나무 블록체인 서비스(DBS)는 권위증명 방식을 사용한다.[20] 권위증명에서는 블록체인에 참여한 멤버 전원에게 네트워크 운영에 참여할 권리를 주고 전원이 해당 권한 위임에 투표를 진행한다. 참여자들이 다른 참여자의 권한 위임에 투표함으로써 모든 멤버가 지속적으로 합의 알고리즘에 참여할 수 있다. 네트워크 관리자는 순차적이고 투명한 투표 진행으로 네트워크에 대한 권한을 바꿔주기만 하면 된다. 17. 저장증명 저장증명(PoS; Proof of Storage)이란 증명자(prover)가 자신의 하드디스크 여유 공간에 데이터를 저장하고, 검증자(verifier)가 그것을 승인 또는 거절하는 방식으로 작동하는 합의 알고리즘이다. 공간증명(Proof of Space)이라고도 한다. 유토큰(YOU token)이 저장증명 방식을 사용하고 있다. 저장증명은 두 가지 단계로 구성된 프로토콜이다. 초기화 단계에서 증명자 A는 데이터의 크기가 N인 데이터 D를 자신의 하드디스크에 저장하고, 검증자 B는 아주 작은 조각의 정보만 가지고 있게 된다. 이후 증명 실행 단계에서 검증자 B는 해당 데이터에 대해 승인 또는 거절할 수 있다.[22] 검증자 B가 해당 데이터에 대해 승인하는 경우, 그 대가로 유토큰이 보상으로 지급된다. 데이터의 소유권을 등록하려면 먼저 해당 디지털 자산이 유효하다는 것을 입증해야 한다. 다음으로 소유권이 소유자의 신원과 함께 확인되어야 한다. 그리고 자산은 의심의 여지가 없어야 한다. 18. 용량증명 용량증명은 블록체인 노드가 가진 데이터 스토리지 공간의 크기에 비례하여 투표 효력을 계산하는 방식이다. 용량증명의 변형된 형태가 저장증명(Proof of Storage) 또는 공간증명(Proof of Space)이다. 버스트코인(Burstcoin)은 용량증명 방식을 사용하는 유일한 암호화폐이다. 용량증명과 같은 대안적 프로토콜은 대부분 페이-투-플레이 형식을 사용한다. 용량증명도 이와 같은 맥락이다. 하지만 여기선 하드드라이브 공간으로 “페이”한다. 드라이브 용량이 많으면 많을수록 다음 블록을 채굴하고 블록 보상을 받을 수 있는 확률이 높아진다. 용량증명 시스템에서 채굴하기 전까지는, 알고리즘이 하드드라이브에 저장하는 “plot” 이라 일컫는 대규모 데이터 세트를 생성한다. 더 많은 plot 을 가질수록, 체인의 다음 블록을 찾을 확률이 더 높다. 테라바이트 용량의 하드드라이브 공간에 투자함으로써, 모방된 블록을 만들고 시스템을 포크 할 수 있는 더 높은 확률을 자신에게 부여한다. 하지만 용량증명으로는 악한 사용자를 막을 수 없고 아무런 지분이 없는 문제점을 여전히 가지고 있다. 저장증명과 공간증명이 요량증명의 변형된 형태이다. 19. 경과시간증명 경과시간증명(PoET, Proof of Elapsed Time) 방식은 미국 인텔(Intel)이 개발한 합의 알고리즘이다. 한국의 이든체인(EdenChain)이 경과시간증명 방식을 사용하고 있다. 이 시스템은 작업증명과 유사하게 작동하지만 전기를 훨씬 적게 소모한다. 나아가, 참여자들이 암호화된 퍼즐을 풀게 하는 대신, 알고리즘이 SGX와 같은 TEE를 사용하여 요구되는 작업 없이 블록들이 랜덤으로 당첨되는 형태를 보장한다. 인텔의 접근방식은 TEE를 통해 제공되는 보장된 대기시간에 근거한다. 인텔에 따르면, 경과시간 증명 알고리즘은 수천 개의 노드로 확장되고 SGX를 지원하는 어떠한 인텔 프로세서에도 효율적으로 운영된다. 프로토콜의 한 가지 문제는 인텔을 신뢰하도록 요구하는 것인데 이는 퍼블릭 블록체인으로 인해 제3자에게 신의를 표명하는 것을 피하려고 했던 것에 반하는 것이다. 20. 비잔틴 장애 허용 비잔틴 장애 허용(BFT, Byzantine Fault Tolerance)은 블록체인 합의 알고리즘의 기본이 되는 것으로 PBFT, DBFT 등 여러 가지 변형된 형태를 띠고 있다. 블록체인은 여러 사람들에 의해 네트워크가 관리되고 유지되는데, 이 중에서는 분명히 악의적인 의도를 가지고 네트워크를 파괴하려는 사람도 존재한다. 비잔틴 장애 허용은 이러한 악의적인 노드가 네트워크를 장악하는 것을 방지한다. 비잔틴 장애 허용은 레슬리 램포트와 쇼스틱, 피스가 공저한 1982년 논문에서 언급된 것으로 비잔틴 제국의 여러 부대가 멀리 떨어진 상태에서 성공적으로 공격 계획을 세우는 상황을 가정하고 있다. 비잔틴 장군이 적을 섬멸하려 할 때 사방을 둘러싸 한 번에 덮치는 전략을 세웠다. 이 때, 옆에 있는 부대에게 공격하라는 명령을 전달 시켜야만 성공적으로 작전이 수행될 수 있다. 하지만 만약 세 번째 부대에 배신자가 있어 다음 부대에 명령을 전달하지 않는다면 작전은 물거품으로 돌아가며 실패로 끝나게 된다. 이러한 가정을 블록체인에 적용해보면, 데이터를 올바르게 검증해야 하는 사람이 그렇지 않는다면 가정과 같은 상황이 발생될 수 있다. 이렇듯 악의적인 노드가 네트워크를 장악하는 것을 방지하는 것이 비잔틴 장애 허용 합의 알고리즘의 핵심이다. 21. 프랙티컬 비잔틴 장애 허용 프랙티컬 비잔틴 장애 허용(PBFT, Practical Byzantine Fault Tolerance) 기술은 여러 노드로 구성된 네트워크에서 악의적 공격을 방어하기 위해 만들어졌다. 프랙티컬 비잔틴 장해 허용 합의 알고리즘을 채택한 암호화폐로는 네오, 질리카, 하이퍼레저, R3, ICT, 텐더민트 등이 있다. 프랙티컬 비잔틴 장애 허용은 비잔틴 장애 허용의 동기식 시스템에서만 구현되어 느린 문제점을 해결한 것으로 (n-1)/3개 이하의 노드가 악의적인 노드라면 분산된 네트워크를 보호할 수 있다. 예를 들면, 100개의 노드가 있다고 가정하면 (100-1)/3개의 노드인 33개의 악의적인 노드가 있다고 하더라도 네트워크에 대한 공격을 막아낼 수 있다. 노드의 수가 많아질수록 네트워크 공격으로부터 방어를 잘할 수 있지만, 블록 생성에 필요한 시간이 증가한다 22. 시공간증명 시공간 증명(Proof of Space and Time)은 스페이스메시(Spacemesh)를 비롯한 몇몇 퍼블릭 블록체인이 채택한 증명 방식. 작업 증명(PoW), 지분 증명(PoS)을 대체할 수 있는 새로운 합의 방식이다. 비트코인은 블록 생성 권한을 부여하고 보안성을 유지하기 위해 사용하는 ‘채굴’ 과정에서 과도한 전력을 낭비한다는 지적을 받고 있다. 반면 시공간증명은 이와 달리 기기의 잉여 저장 공간을 블록체인에 임대해 주는 방식으로 블록을 생성할 수 있게 한다. 저장 공간을 얼마나 오래 임대했느냐에 따라 블록생성 권한이 주어진다. 저장의 증명은 현재 스페이스메시와 치아 네트워크, 파일코인 등이 사용하고 있다.
키워드로 본 ‘샌프란시스코 블록체인 위크 2018’
해시드가 샌프란시스코 블록체인 위크(SFBW)에서 나온 주요 블록체인 키워드를 정리해 발표했다. 해시드는 2018년에 설립된 블록체인 기업투자 분야의 한국 액셀러레이터다. 샌프란시스코 블록체인 위크는 전세계 주요 도시에서 열리는 블록체인 프로젝트, 개발자, 투자자들의 포럼으로 지난 10월5일부터 12일까지 진행됐다. 해시드는 이번 블록체인 위크에 참여해 샌프란시스코에서 이슈가 되고 있는 새로운 블록체인 기술, 인물 및 각종 트랜드에 대해 들었다. 올해 블록체인 위크에서는… www.bloter.net |
작성하신 에 이용자들의 신고가 많은 표현이 포함되어 있습니다.
다른 표현을 사용해주시기 바랍니다.
건전한 인터넷 문화 조성을 위해 회원님의 적극적인 협조를 부탁드립니다.
더 궁금하신 사항은 고객센터로 문의하시면 자세히 알려드리겠습니다.