본문으로 건너뛰기

사이드바

시빌 공격 저항 네트워크

존 두서(John Douceur)는 시빌(Sybil) 공격에 관한 논문에서, BFT(비잔틴 장애 허용) 프로토콜에 참여하는 모든 노드가 해시캐시(Hashcash) 퍼즐을 풀도록 요구해야 한다고 제안했습니다. 만약 한 노드가 N개의 노드로 위장한다면, N개의 퍼즐을 제시간에 풀 수 없게 되어 가짜 신원이 제거될 것입니다. 그러나 악의적인 노드는 여전히 단일 신원을 주장하는 정직한 노드에 비해 어느 정도의 이점을 얻을 수 있습니다. 2005년에 발표된 후속 논문에서는 정직한 노드가 악의적인 노드의 행동을 모방하여 계산적으로 감당할 수 있는 만큼의 가상 신원을 주장해야 한다고 제안했습니다. 이러한 가상 신원들이 BFT 프로토콜을 실행하면서 "노드의 최대 f 비율이 결함이 있음"이라는 가정은 "결함 있는 노드가 통제하는 총 계산 능력의 비율이 최대 f"라는 가정으로 대체될 수 있습니다. 따라서 신원 확인이 더 이상 필요하지 않으며, 개방형 피어 투 피어 네트워크에서도 BFT 프로토콜을 실행할 수 있게 됩니다.

비트코인은 정확히 이 아이디어를 사용합니다. 하지만 나카모토는 한 걸음 더 나아가 질문을 던집니다. "노드들이 계산적으로 비용이 많이 드는 작업 증명을 수행하도록 동기를 부여하는 것은 무엇인가?" 이에 대한 답은 또 다른 도약을 요구합니다. 바로 디지털 화폐입니다.

스마트 계약

스마트 계약은 데이터를 안전한 원장에 기록하는 아이디어를 계산으로 확장한 것입니다. 즉, 이는 공개적으로 명시된 프로그램이 올바르게 실행되도록 보장하는 합의 프로토콜입니다. 사용자는 이 스마트 계약 프로그램의 함수들을 호출할 수 있으며, 프로그램에 명시된 제한 사항이 적용됩니다. 함수 코드는 채굴자들에 의해 동시에 실행되며, 사용자는 계산을 다시 수행할 필요 없이 결과를 신뢰할 수 있습니다. 또한 사용자는 다른 프로그램의 결과를 기반으로 동작하는 자신만의 프로그램을 작성할 수도 있습니다. 스마트 계약은 암호화폐 플랫폼과 결합될 때 특히 강력한 기능을 발휘합니다. 이 프로그램들은 자금을 관리하고(보유, 전송, 소멸) 경우에 따라 새로운 화폐를 발행할 수도 있기 때문입니다.

비트코인은 스마트 계약을 위한 제한적인 프로그래밍 언어를 구현합니다. "표준" 거래(즉, 한 주소에서 다른 주소로 화폐를 이동시키는 거래)는 이 언어로 작성된 짧은 스크립트로 지정됩니다. 이더리움은 보다 허용적이고 강력한 언어를 제공합니다.

스마트 계약이라는 개념은 1994년 닉 자보(Nick Szabo)에 의해 제안되었으며, 그는 이를 법적 계약과 유사하지만 자동으로 집행되는 것으로 보았습니다. (이 관점은 카렌 레비(Karen Levy)와 에드 펠튼(Ed Felten) 등에 의해 비판을 받기도 했습니다.) 자보는 디지털 현금 프로토콜의 확장으로 스마트 계약을 예견적으로 제시했으며, 비잔틴 합의와 디지털 서명 등을 구성 요소로 사용할 수 있음을 인식했습니다. 암호화폐의 성공은 스마트 계약을 실용적으로 만들었고, 이에 대한 연구도 활발히 이루어지고 있습니다. 예를 들어, 프로그래밍 언어 연구자들은 스마트 계약의 버그를 자동으로 발견하거나 검증 가능하게 올바른 계약을 작성할 수 있는 방법과 도구를 개발했습니다.

허가형 블록체인

이 글에서는 비트코인의 혁신 대부분을 생략하는 사설 또는 허가형 블록체인을 강조했지만, 이 분야에서 진행 중인 흥미로운 작업들을 폄하하려는 의도는 아닙니다. 허가형 블록체인은 네트워크에 참여하거나, 거래를 기록하거나, 블록을 채굴할 수 있는 사람을 제한합니다. 특히, 채굴자가 신뢰할 수 있는 참여자로 제한된다면 작업 증명(Proof of Work)을 생략하고 더 전통적인 BFT(비잔틴 장애 허용) 접근 방식을 사용할 수 있습니다. 따라서 많은 연구는 BFT의 재탄생으로, 예를 들어 "해시 트리를 사용해 합의 알고리즘을 단순화할 수 있을까?", "네트워크가 특정 방식으로만 실패할 수 있다면 어떻게 될까?"와 같은 질문을 제기합니다.

또한, 신원 확인 및 공개 키 인프라, 접근 제어, 블록체인에 저장된 데이터의 기밀성과 관련된 중요한 고려사항도 있습니다. 이러한 문제들은 공공 블록체인 환경에서는 크게 나타나지 않으며, 전통적인 BFT 문헌에서도 잘 다뤄지지 않았습니다.

마지막으로, 허가형 블록체인을 높은 처리량에 맞게 확장하고 공급망 관리나 금융 기술과 같은 다양한 응용 프로그램에 맞추기 위해 조정하는 공학적 작업도 포함됩니다.