대중 과학: 블록체인 및 분산 시스템
편집자 주: 이 기사의 출처는등련공동체, 승인을 받아 Odaily에서 재인쇄했습니다.
편집자 주: 이 기사의 출처는
등련공동체
, 승인을 받아 Odaily에서 재인쇄했습니다.
블록체인 기술의 인기는 전통적인 분산 기술의 발전을 촉진했습니다. 블록체인 기술의 본질이라는 관점에서 볼 때 기본적으로 기존 분산 시스템 및 암호화의 핵심 기술과 분리할 수 없습니다. 그렇다면 블록체인 기술은 정말 공부할 가치가 있을까요? 블록체인이 우리를 선택했습니까, 아니면 우리가 블록체인을 선택했습니까? 이 기사는 분산 시스템 연구자의 관점에서 블록체인을 이해합니다.
사람들은 종종 블록체인을 분산 데이터베이스 또는 분산 원장으로 생각하는데 이는 부정확하고 혼란스럽습니다. 우리가 자주 보는 분산 데이터베이스와 비교할 때 블록체인에는 합의 알고리즘과 체인 구조라는 두 가지 주요 차이점이 있습니다. 이 둘은 서로를 보완하고 함께 블록체인의 고유성을 구성합니다.
보조 제목
합의 알고리즘
분산 데이터베이스에서 채택한 합의 알고리즘은 일반적으로 Paxos에서 파생된 일련의 알고리즘을 기반으로 합니다. 이러한 알고리즘의 보안은 중앙 집중화, 즉 모든 노드가 신뢰할 수 있는 센터에서 관리된다는 가정에 의존합니다. 이 가정 하에서 모든 노드는 "정직"한 것으로 간주됩니다. 즉, 모든 노드는 메시지를 전달하기 위해 최선을 다하며 메시지는 변조되지 않습니다. 소수의 노드가 다운되거나 연결이 끊어져도 프로토콜의 보안에는 영향을 미치지 않습니다.
그러나 블록체인의 합의 알고리즘은 중앙 집중화를 가정하지 않으며 각 노드는 독립적인 동작을 하는 것으로 간주할 수 있으며 이는 블록체인의 "탈중앙화"의 기원이기도 합니다. 이 프로토콜은 일부 노드(일반적으로 1/3 미만)가 비잔틴 노드가 되도록 허용하며, 원하는 대로 프로토콜을 따르거나 위반하거나 임의의 메시지를 보내거나 다운된 척할 수 있습니다. 비잔틴 노드는 공격자가 완전히 제어하는 노드이거나 자체 소프트웨어에 심각한 버그가 있는 노드일 수 있습니다. 이러한 유형의 알고리즘을 비잔틴 내결함성 알고리즘(Byzantine fault-tolerant algorithm) 또는 줄여서 BFT라고 합니다. 블록체인 합의 알고리즘의 내결함성이 기존 분산 데이터베이스보다 훨씬 높기 때문에 효율성이 떨어지는 경우가 많습니다.
BFT 합의 알고리즘에 대한 연구는 오래전부터 시작되었으며 가장 영향력 있는 것은 1999년 OSDI에서 Turing Award 수상자인 Barbara가 제안한 PBFT(Practical BFT)이다[1]. 그러나 알고리즘의 복잡도가 높아 대규모 배포가 어렵다. 또한 이러한 유형의 알고리즘은 각 노드의 신원을 알아야 합니다. 즉, 프로토콜이 초기화되거나 새 노드가 합류할 때 노드가 서로의 신원을 인증합니다. 위와 같은 이유로 전통적인 BFT 프로토콜에 대한 연구는 2010년까지 큰 진전을 이루지 못했다.
자원 소모가 큽니다. 네트워크에 참여하는 채굴자들은 막대한 하드웨어 및 전기 비용을 지불해야 합니다.
매우 낮은 성능. 비트코인 네트워크는 초당 약 7개의 트랜잭션을 처리할 수 있으며 각 블록의 평균 생성 시간은 약 10분입니다.
거래 불확실성. 비트코인 네트워크에서 블록이 확인되더라도 블록체인의 포크 가능성으로 인해 블록이 다시 작성될 위험이 있습니다. 블록이 확인될 때까지 여러 번(예: 6번) 기다린 후에야 이 블록이 다시 작성되는 위험을 충분히 줄일 수 있습니다. 이것은 또한 거래가 확인되는 대기 시간을 더욱 증가시킵니다.
위의 비용을 줄이기 위해 많은 연구자들이 눈부신 노력을 기울였습니다. 예를 들어, 합의 알고리즘의 성능을 향상시키기 위해 Cornell University의 연구원들은 2016년 NDSI에서 Bitcoin-NG[2]를 제안했습니다. MIT와 Stanford의 연구원들은 비트코인을 더욱 확장하기 위해 2019년 CCS에서 Prism[3]을 제안했습니다. 또한 자원 소모를 줄이기 위해 MIT 연구진은 2017년 SOSP에서 지분증명 기반 알고랜드를 제안해 채굴 소모를 없앴다.
보조 제목
사슬 구조
블록체인이 가져온 또 다른 혁신은 체인 구조입니다. 각 블록은 해시를 통해 이전 블록과 연결되어 초기 블록으로 돌아가 무한 체인을 형성합니다. 이 구조의 장점 중 하나는 노드가 블록을 확인할 때 해당 블록이 위치한 체인의 모든 이전 블록이 동시에 확인된다는 것입니다. 이 체인 구조를 기반으로 블록체인에서 "가장 긴 체인" 원칙을 채택하여 새 블록을 릴리스하기 쉽습니다. 예를 들어 비트코인에서는 네트워크 문제와 악의적인 공격으로 인해 채굴자가 여러 체인을 볼 수 있지만 채굴자는 항상 가장 긴 체인에서 채굴하는 경향이 있습니다.
마이닝 중간에 자신이 있는 체인보다 더 긴 체인을 발견하더라도 더 긴 체인으로 전환해야 합니다. "가장 긴 체인" 원칙은 반드시 의무 사항은 아니며 프로토콜 보안에 심각한 영향을 미치지는 않지만 모든 채굴자가 이 원칙을 준수할 때 각 채굴자는 최대의 이익을 기대할 수 있습니다. 물론 예외도 있는데, 채굴자가 상대적으로 많은 자원(50% 미만)을 점유하는 경우 '가장 긴 체인' 원칙을 위반하고 더 높은 수익을 추구하는 '셀프 마이닝'(selfish mining)[4] 전략을 채택할 수 있다. .
블록체인의 체인 구조는 전통적인 BFT를 연구하는 연구자들에게도 큰 영감을 주었고 블록체인에 맞는 많은 BFT 프로토콜이 등장하기 시작했습니다. 그중 가장 유명한 것은 Facebook이 채택한 LibraBFT[5] 합의 프로토콜입니다. LibraBFT는 VMware의 연구원들이 제안한 HotStuff[6]를 기반으로 합니다. HotSutff는 블록체인의 체인 구조를 채택하여 수백 개의 노드가 있는 네트워크에 프로토콜을 배포할 수 있도록 하여 기존 BFT의 성능을 향상시킵니다. 이 사슬 구조의 마법에 대해 간단히 설명하겠습니다.
HotStuff는 이 문제를 해결하기 위해 PBFT 기반의 체인 구조를 도입합니다. 위에서 언급한 체인 구조의 특성으로 인해 블록에 대한 노드의 투표는 실제로 이 블록이 위치한 체인의 모든 이전 블록에 대한 투표입니다. 따라서 연결된 HotStuff는 다양한 투표 단계를 줄이고 통합된 Propose-Vote 형식만 유지합니다. 이는 아래 그림에 나와 있습니다(출처 [6]).
요약하다
HotStuff는 프로토콜의 보안을 보장하기 위해 체인 구조의 특성을 활용하여 투표 규칙과 블록 확인 규칙(커밋 규칙)을 지정합니다. 체인 구조는 BFT 프로토콜을 간단하고 우아하게 만들고 파이프라인 작업을 잘 수행할 수 있어 프로토콜의 성능을 향상시키고 상태 공간을 크게 줄입니다.







