Swirlds 창립자 맨스 해몬이 말하는 해시그래프 기술
- 원본 인터뷰: Epicenter (에피센터) 팟캐스트 #219
- 원본 인터뷰 일자: 01/25/2018
요약: 뭔가 혁신적인 기술을 만들어냈다고 큰 확신을 가지고 있는 것 같습니다. 도대체 가십에 대한 가십이 뭔지 이해하기 쉽지는 않네요. 그리고 당장 투자를 할 이 네트워크상의 코인이 없으며, 해시그래프 기술은 프라이빗 네트워크들에 주로 사용되고 또 제공(판매)될 계획으로 보입니다. 다만 해시그래프 기술을 활용한 퍼블릭 네트워크가 나올 가능성도 끝에 열어놓았네요. Hedera Hashgraph의 공개로 이 부분이 현실화되었습니다.
내용 중간에 기존에 나와있는 합의 알고리즘에 대한 설명이 아주 간결하고 좋았습니다. 번역에서 그 간결함을 잘 살렸나 모르겠습니다.
해시그래프 = "가십에 대한 가십으로 virtual voting을 하여 aBFT를 최초로 구현하는 합의 알고리즘 및 자료구조"
1. 리몬 배어드 박사와 맨스 하몬이 동반 창업을 해온 과거
맨스 하먼의 약력:
미 공군에서 senior scientist로 일했다. 머신러닝이 핫해지기 전인 90년대 중반에 reinforcement learning을 연구했고, 여기서 리몬 배어드 박사(Dr. Leemon Baird, 공동설립자/CTO)를 알게 되었다. 같이 일하는 시니어 연구자였다. 배어드 박사와 탄도 미사일 방어 시뮬레이션 연구를 진행했다.
배어드 박사와 창업이 하고 싶어서 신원관리 관련 창업을 했다. 2000-2004년까지 운영했다. 그 뒤에는 포춘500 회사에 들어가 고위임원이 되었고, 그러다 나와서 6년간 다시 신원관리 관련 창업을 했고, 매각했다. 이후 친구인 Andre Durand가 있는 회사 Ping(Ping Identity) 에서 연구팀장 및 헤드 아키텍트를 했다.
이후 2012년 배어드 박사가 비트코인과는 독립적인 합의 알고리즘에 대한 비전을 구상했고, 2015년에 이르러서 그 비전에 대한 문제를 풀었다고 마음 먹었다. 그래서 3번째 회사 Swirlds를 창업하게 되었다. 이 회사에 Ping Identity가 투자를 하고 있다.
이번에 배어드 박사가 개발한 것은 극도로 뛰어나고, 시장에서의 타이밍도 좋다. 배어드 박사는 평소에도 여러가지 발명을 하며 해시그래프는 그 발명들 중 하나다.
2. 배어드 박사가 2012년 해시그래프 제작을 시작한 동기?
텍사스 주 오스틴, Cedar Park의 한 스타벅스에서 많은 밤들을 고민하며 구상하게 되었다. 기존 블록체인의 작동 방식에 대한 불만에서 비롯된 것이 아닌, 백지 상태("tabula rasa")에서 새로 구상하게 된 것이다. 기존의 블록체인들이 해시그래프의 설계에 영향을 준 것은 없다.
3. 현존하는 합의 알고리즘들의 분류와 각각의 문제들
배어드 박사가 폭넓고 깊은 문헌 조사를 통해 기존 알고리즘들을 조사하였다. 카테고리가 생각보다 많지 않은데 나누자면,
퍼미션 계열에는 하이퍼레저(Hyperledger), R3 Corda, EEA 등이 있으며 블록체인을 사용하는 것이 아니다. PoW 블록체인 대신 '리더 기반 알고리즘'을 사용한다. Paxos, Raft, pBFT 등이 있고 이의 변종들도 수십 가지가 된다. 작동방식은 노드들이 리더를 선출하고, 리더에게 순서를 맞춰 트랜잭션을 보내고, 리더는 이 순서대로 트랜잭션을 다시 노드들에게 뿌리는 것이다. 괜찮기는 한데 수천 개의 리더들로 확장되기 어렵다. 논문에 의하면 100개 가량의 리더가 한계라고 한다. IBM, 하이퍼레저, 마이크로소프트 Coco, Corda 등은 초당 몇천 트랜잭션을 처리할 수 있는 각각 리더 기반 알고리즘들을 광고한다. 이 구조의 문제는 리더가 병목현상을 초래한다는 것이다. 따라서 확장성도 떨어지고 리더들이 DDoS 공격에 취약할 수밖에 없다는 것이다. 리더는 항상 IP주소를 공개하고 노드들과 소통해야 하므로, 내부자든 외부자든 리더를 공격할 수 있다. 마지막으로, 리더가 거래 순서를 정한다는 점에서 신뢰 문제가 근본적으로 있다.
PoW 계열에서는 마이너들이 이 순서를 결정하므로 역시 누구에게나 공정한 시스템이 아니다. DDoS에는 더욱 강하지만 초당 몇 개의 거래만 지원하고 계산비용도 많이 든다.
경제성 기반 계열에서는 스테이커들이 합리적으로 이기적일 것을 가정하고 인센티브 시스템을 설계한다. 이 방식들에서 중요한 것은, 이 근본 가정이 좋지 못하다는 것이다. 만약 규모가 큰 스테이커가 내부자나 바이러스에 의해 공격당한다면 이 가정은 의미가 없어지기 때문이다. 또한 경제 인센티브 모델이 수학적으로 정합성을 증명하기에는 너무나 복잡하다는 문제가 있다. 그렇다면 지금 우리가 모르는 취약점이 없다고 보증할 수 없기에 위험하다.
이 문제에 대해 30년 전에 나온 순수 투표 기반 프로토콜이 있다. 이 계열은 대역폭 요구량은 너무나 크고 확장은 어렵지만 보안적으로 정말 좋은 특성을 가지고 있다.
이중 몇몇 문제들은 저 시스템들 상에서 해결이 가능하다고 볼 수도 있다. 그러나 나의 경험상, 결함이 있는 시스템을 만들고 나서 문제를 고치는 것보다 결함이 없는 탁월한 시스템을 먼저 갖추고 시작하면 이러한 문제들이 발생하지 않아 더 좋다. 샤딩을 하면 밸리데이터의 수를 줄일 수 있으나 시스템 전체의 보안성은 떨어지게 되는 것이다.
4. 해시그래프는 어떻게 투표와 가십 프로토콜을 결합하는가?
참고: 투표 기반 프로토콜들의 역사와 분류(taxonomy)
레즐리 램포트와 쇼스탁이 1982년 논문으로 '비잔틴 장군 문제'를 정의했다.
도시를 포위한 장군들이 한 날 한 시에 공격을 해야 하는데, 몇몇 장군들이 배신자라 공격이 일시에 이뤄지지 않도록 하려고 한다. BFT는 열린 문제로 남아있다가, 여기에 리더 선출과 투표가 제안되었다. 리더를 선출하고, 투표를 해서 일정 수 이상의 투표가 모이면 공격을 하기로 한 것이다. pBFT(practical B.F.T.)에 대한 논문이 미구엘 카스트로가 MIT에서 냈는데, 리더 기반 시스템에서 컴퓨터들로 구현 가능한 알고리즘이 나왔고, 이것은 공격 시간 뿐만 아니라 수천 건의 거래 내용과 같은 다른 데이터에도 적용 가능하다고 밝혀졌다.
Q. pBFT가 과거 논문으로 나왔던 개념들을 실용적으로 만들어낸 개념인데, 해시그래프는 혹시 어떠한 논문을 참고해서 실용화한 것인가?
A. 순수 투표 기반 알고리즘들은 사실 출발점이 1970~80년대로 같다. 여기에서 두 가지 분류가 나오는데, 하나는 이 pBFT 계열의 갈래이다. pBFT는 DDoS와 타이밍 기반 공격에 약하다고 논문에 알려져있다.
그런데 해시그래프는 70년대 이후로 다른 연구가 없고, 배어드 박사가 독자적으로 새로이 만들어낸 접근법이다. 가십에 대한 정보가 있다면 내부 자료구조인 해시그래프를 가지고, 실제 투표를 하지 않아도 순수 투표 기반 알고리즘과 결합하는 특별한 일을 할 수 있다는 영감에서 나온 개념이다.
즉, 트랜잭션들의 가십이 있고, 그리고 여기에서 해시그래프라는 독특한 자료구조가 지어지게 되고, 이것이 투표 기반의 접근법과 결합되게 된다.
Q. 가십(gossip)이란?
A. 가십 프로토콜이란 정보를 다수에게 아주 효율적으로 전파하는, 오랫동안 존재했던 접근법이다. 이것은 사회에서 벌어지는 루머의 전파와 같은데, 모두가 모두에게 소문을 내면 정보가 기하급수적으로 빠르게 전파되는 현상을 말한다. 이것이 가십 프로토콜이다. 그렇다면 무엇을 가십으로 전파할 것인가? 우리는 여기서, 가십을 가십한다(!). 이 가십의 네트워크에서는 내가 트랜잭션을 생성하고 이것을 다른 모든 노드들에게 전파하고자 한다. 여기서 그래프로 저장하는 것은 어떤 노드가 어떤 노드와 언제 대화했는지에 대한 내용이다.
가십 프로토콜은 현재 수많은 종류의 어플리케이션에서 사용중이다. 우리에게 고유한 것은 그 가십의 내용이다. 가십으로 트랜잭션도 전달하지만, 동시에 내가 마지막으로 전달받은 이벤트의 해시와 내가 마지막으로 생성한 이벤트의 해시도 들어가게 된다. 따라서 내가 가십하기 전 2개의 이벤트에 대한 해시가 가십되게 되는 것이다. 따라서 이것들이 해시들의 그래프를 형성하는 것이다. 모든 노드들이 모든 트랜잭션의 순서에 대해 싱크를 맟주게 되고, 하나의 해시그래프에 동의하게 된다. 또한 이것이 된다면, 순수 투표 기반 알고리즘을 이용하지만 실제 전체 네트워크를 대상으로 투표를 하는 것이 아닌, 국소적으로 가상의 투표를 진행할 수 있다.
가상 투표(virtual voting)가 있는 가십에 대한 가십이 핵심이다. 이렇게 하면 순수 투표 기반 알고리즘의 특성인 비동기성 BFT(aBFT)를 얻을 수 있다. 이를 통해 우리는 우선 보안성을 갖췄다. 또한 확장성도 있으며, 전송되는 메세지에 해시 2개를 추가할 뿐이므로 대역폭도 우리보다 적게 쓸 수 없다고 생각한다. 우리는 대역폭에서 효율을 가지면서 동시에 aBFT(asynchronous BFT)를 처음으로 구현한 것이다.
5. 해시그래프의 성능 특성(performance characteristics)
파이널리티(거래를 얼마나 빨리 확정짓는가) - 텐더민트 같은 경우 3초의 파이널리티 시간을 가지고 있다.
모든 노드에게 어떤 정보가 전달되는 시간은 노드 수에 로그로 비례한다. 어떤 트랜잭션이 확정되기까지 8번의 "가십 사이클"이 필요하다. 우리에게 파이널리티란 PoW 블록체인에서의 개념과 다르다. (왜냐하면) PoW에서는 이중결제 문제를 막기 위해 부분적 순서유지만을 하는데, 우리는 전체적 순서유지를 추구한다. 데이터베이스의 ACID 원칙을 모든 노드에서 지키는 것이다. 비트코인처럼 확률적으로 확정짓지 않고, 확정되었다고 단언할 수 있다. 비트코인의 블록체인은 정의상 BFT라고 할 수 없고, BFT라면 모든 트랜잭션의 순서유지가 되어야 한다. 공용 해시그래프 네트워크가 있다면, 100개 이하의 노드로 실제 시험해본 결과 소숫점 ~ 수 초 가량의 파이널리티 시간이 나온다. 전세계적 사용 사례에서는 수십초 까지의 파이널리티 시간이 나올 수 있다.
6. 퍼블릭 해시그래프 네트워크는 어떤 모습일 것인가?
퍼미션 네트워크(허락받은 컴퓨터 1대당 1표) 에서 개방형 네트워크(1코인 1표)로 어떻게 나아갈 것인가라는 질문이라고 생각한다. 해시그래프이든, 리더 기반 합의이든 무엇이든, 퍼블릭 네트워크를 구축하려면 희소한 자원을 제공해야 한다. 투표가 무엇이 되었든 투표에 가중치를 실을 수 있는 것을 해커가 많이 가질 수 없도록 해야 한다. 글로벌하게 탈중앙화된 네트워크를 만드려면 희소한 무언가가 필요하고, 그 역할을 암호화폐가 하는 것이다. 퍼블릭 네트워크라면 따라서 어떤 종류의 화폐가 발행될 수 있다고 생각한다.
해시그래프에서도 당연히 블록 보상이 필요하다. 풀노드를 돌리면 대역폭, 저장용량, CPU 등이 필요하므로 퍼블릭 네트워크를 운영하고자 한다면 위 비용들을 보상하는 경제 시스템이 필요하다.
Q. 단기적으로 해시그래프가 쓰이고 있는 프로젝트는? 해시그래프의 알고리즘이 성공한다면 암호화폐계는 어떻게 바뀔까?
첫 사용 사례는 Ping Identity에서 신원 증명에 관련한 문제인 OIDC를 해결하려 하는 것이다. 또한 크레딧 유니온 업계에서(북미에서 소형 은행과 같은 금융기관들) CU Ledger라는 단체를 설립하였고, 해시그래프상에서 지어진 6000여개의 크레딧 유니온들이 연합한 플랫폼을 선보일 예정이다. 또한 다양한 분야의 고객사들ㅡ헬스케어, SCM, 금융 등ㅡ과 많은 업계들과 협의중에 있다. 또한 지금은 자바로 구현된 합의 관련 SDK라는, 기술스택의 기반 부분만이 있는 것이므로, 그 위에 스마트 컨트랙트, 익명성 등등의 많은 기능들을 지어나갈 수 있을 것이다.
참고해서 볼 만한 웹사이트:
http://leemon.com/ (리몬 배어드 박사 개인 홈페이지)
https://www.swirlds.com/about/ (회사 스월즈 Swirlds 소개 페이지)
https://www.pingidentity.com/en/company/leadership.html (핑 아이덴티티의 소개 페이지)
https://hashgraph.com/faq/ (해시그래프 공식 웹페이지의 FAQ)
http://www.r3cev.com/blog/2016/4/4/introducing-r3-corda-a-distributed-ledger-designed-for-financial-services (R3 Conda)
https://medium.com/@philippsandner/comparison-of-ethereum-hyperledger-fabric-and-corda-21c1bb9442f6 (Ethereum vs. Hyperledger Fabric vs. R3 Conda)
http://bluebrown.net/blog/archives/250 (Paxos 팩소스 알고리즘)