경제학과 컴퓨터공학에는 두 개의 서로 다른 불가능성에 대한 정리(Theorem)가 있다.
정리란 수학적이나 논리적으로 증명된 사실을 말한다.
경제학에서 가장 유명한 불가능성의 정리는 애로우( K. Arrow)의 불가능성정리인데
"세개 이상 대안이 있는 경우 개인의 선호를 모두 설명할 수 있는 사회후생함수를 만드는 것은 불가능하다''라는 내용이다.
컴퓨터공학에서는 FLP 불가능성 정리가 있는데, 피셔, 린치, 패터슨이 1985년에
‘Impossibility of Distributed Consensus with One Faulty Process’라는 논문에서 비동기 분산네트워크에서 메세지가 손실되지 않고 지연될 경우, 만약 최소한 하나의 프로세스가 작동되지 않으면 (fail-stop), 모든 초기조건에 대해 모든 과정을 완료시키는 합의알고리즘은 존재하지 않는다'는 것이다.
경제학의 애로우 불가능성 정리는 게임이론의 전략적인 투표(보팅)에서 Gibbard와 Satterwaite가 다음과 같은 정리로 재해석하였다.
"세 개이상의 선택적 대안이 있을 때, 만약 독재자가 있다면, 모든 사람이 투표를 조작하여 이득을 얻을 수 없다."
이들의 선택적 대안이란 좋아하는 순서를 고르는 것인데. Hylland(2005)가 지분(stake)과 같은 일반적인 숫자( cardinal number)가진 그리드에서 모든 투표자가 만장일치로 선택하는 의사결정방법은 확률적인 독재자방식이라는 것을 증명하였다.
(Hylland’s theorem which shows that the only strategy-proof cardinal decision scheme satisfying a weak unanimity property is the random dictatorship)
결론을 말한다면, 지분으로 표시할 수 있는 그리드는 지분이 있는 분산네트워크와 동일하다.
<<<<<<분산네트워크에서 확률적인 독재자가 존재하면 모든노드가 만장일치로 지분을 조작하지 않는다.>>>>>
결론은 독재자란 거부권(veto)을 가진 투표자로서 자신이 원하는 대안을 제일 먼저 적용하는 투표자이다. 독재자가 있다면 모든사람들은 자신의 선택을 조작하여 이득을 취할 수 없다는 이야기이다.
이게 블록체인과 무슨 관계가 있냐고 물어보자. 댄라리머의 DPoS (Delegate Proof of Stake)인증방식이 분산네트워크에서 독재자방식으로 인증을 하고 있는데 이 방식을 사용하면 다른 사람은 자신의 선택을 조작하여 이득을 취할 수 없다는 이야기이다.
DPoS방식이 나쁘다는 이야기가 결코 아니다
분산네트워크에서 하나 이상의 프로세서가 작동하지 않으면 합의에 도달할 수 없는데, DPoS 를 이용하면 합의에 도달할 수 있다. 그러나, 댄라리머의 DPoS에서는 합의에 분산네트워크의 모든 노드가 참가할 수 없으며 일부의 노드가 독재자로서 역할을 하는 서버-클라이언트 (Server-Client)구조로 다른 노드와 연결되었다는 점이다. 이런 문제점을 비탈릭 부테른이 까버렸을 뿐이다.
다음의 경우를 추측(conjecture)으로 상상해보자.
만약 모든 노드가 참여하는 분산네트워크에서 독재자의역할을 하는 서브네트워크가 존재하고 서브네트워크가 합의과정을 관리하고 수수료를 합의과정에 참여하는 노드에게 공정하게 (fair and not equal) 배분한다면, 분산네트워크의 노드들은 합의과정을 조작하여 이득을 얻을 수 없다. 즉 군말없이 만장일치로 합의를 종결할 수 있다.
뭔가 Hylland의 논문의 냄새가 폴폴나지 않는가?
사실 FLP 불가능성은 동등한 계층의 분산네트워크에서의 문제다. 분산네트워크를 인증관리 네트워크와 일반 네트워크 등으로 서브네트워크를 구성하고 모든 노드들의 서브네트워크 간 통신의 노드간의 통신을 자유롭게 한다면 FLP불가능성은 성립하지 않는다.
이건 수학적으로 증명하지 못한 추측(conjecture)이다. 다만 Hylland(2005)의 논문의 결과를 이용하면 쉽게 증명할 수 있으리라고 추측한다.
(1) 다양한 계층으로 구분할 수 있는 분산네트워크에서 합의과정을 관리하는 서브네트워크가 존재하고 합의를 주도하는 노드를 확률적으로 선정한다면, 합의과정에 참가하는 모든 노드는 만장일치로 합의에 도달한다.
(2) 합의과정을 관리하는 서브네트워크가 합의과정의 수수료(통상적으로 채굴이라 부르는)를 노드의 지분 또는 컴퓨터 사용량으로 공정하게 배분한다면, 만장일치로 합의에 도달한다.
이런 추측을 기반으로 블록체인 생성의 합의방식과 수수료 배분방식에 대한 특허를 썼다. 19년만에 써 보았는데 지루한 과정이었다.
사이먼 싱이 쓴 <페르마 정리>를 보면 <타니야마-시무라 추측(Taniyama- Simura Conjecture)> 가 나온다.
<모든 지수함수의 급수는 타원곡선의 모듈라급수로 표현할 수 있다>는 추측이고 이걸 프린스턴대의 앤드류 마일스가 증명함으로써 페르마의 정리가 증명되었다. 이 추측의 증명은 정수론과 기하학의 만남이었다.
분산네트워크이론와 사회선택이론(Social Choice Theory)도 서로 만날 수 있다는 실마리를 보았다.
앗, 오랜만의 포스팅이시네요~. DPOS의 증인 대신 “합의를 주도하는 노드를 확률적으로 선택”하는 방법이 뭔지 궁금하네요. 저는 해석 못하는 복잡한 공식일지도 모른다는 불안불안..ㅋ 앞으로도 좋은 글 계속 부탁드려요~.
감사합니다
마지막 말씀에 격하게 동의합니다. 전 어제 모 방송사의 토론을 보면서도 비슷한 생각을 했습니다.
감사합니다
합의 알고리즘에 학식이 많은 것 같은데 질문 좀 할 수 있을까요?
저는 일단 bitcoin-ng의 키 블록과 마이크로 블록 개녕을 pow가 아닌 pos로 적용할려고 하는데 이미 waves에서 waves-ng라는 이름으로 개발하고 있더라고요. 그래서 생각을 바꿔서 모두 동등한 권한에서 지분소유자들이 노드를 구성하는데 블록 생성자가 되기위해 키 블록을 생성하기 위해 지분을 홀딩하고 리더 자리를 얻고나서 다음 키블록이 나올때까지 마이크로 블록을 생성합니다. 여기까지는 waves-ng랑 동일합니다. 그런데 저는 dpos가 가지는 빠른 합의와 기존 암호화폐들이 갖고 싶어하던 더욱 분권화된 프로토콜을 만들고 싶었습니다. 그래서 리더의 키 블록 보다 더 당첨확률이 높게 잡은 검증자 키 블럭이라는 것을 생각해냈습니다. 그리고 체인을 두 개로 분리합니다. 하나는 트랜젝션을 처리하기 위한 마이크로 블록이 존재하는 체인, 또 다른 체인은 노드들을 위한 합의용 체인으로 키블록과 검증자 키 블록을 만듭니다. 여기서 검증자 키 블록을 생성한 노드는 마이크로 블록을 pbft 방식으로 지분에 상관없이 1표씩 행사해서 검증 하는데 효력은 현재 키 블록이 아닌 다음 키 블록과 효력이 다다음 키 블록까지에 적용이 됩니다.
즉, 리더 뿐만 아니라 검증자들 모두를 스피닝, 돌아가면서 하게 되는데 저는 재미있는 구조를 생각을 하는데 수학적, 논리적 검증을 하지 못해서 그러는데 어떤 문제가 있을 수 있는지 예상 할 수 있을까요?
ps. 구조 참조 목록
bitcoin-ng https://www.usenix.org/system/files/conference/nsdi16/nsdi16-paper-eyal.pdf
waves-ng https://waves-ng.wavesplatform.com
어제 밤에 스팀 댓글을 보았습니다. 늦은 응답 죄송합니다.
비동기 분산네트워크에서 dPoS 의 개념을 쓰게되면 일단 합의를 종결하는 어떤 임계치를 설정하는데 검증자의 지분의 크기와 인증횟수를 조합하여 사용하여 수학적으로 검증에 필요한 어떤 임계치를 초과시키면 인증을 종결하는 방식을 잡아야 할 거 같아요. 저는 그냥 댄라리머의 방식을 전체노드에 확장하는 개념을 만들었습니다. 순전히 속도때문이고 분산시스템의 성격을 유지하려했고요. 특허를 쓰는 도중에 찾은 특허인데 한번 참고해보세요. 그리고 시간내서 waves-ng 문서를 본 후에 다시 연락할게요
Kasper, Lance. Consensus system for tracking peer-to-peer digital records, US patent Number 62111393, Feb 3, 2015