**비잔틴 장애 허용(BFT)(Byzantine Fault Tolerance)**은 분산 시스템이 결함이 있거나 악의적인 노드를 허용하면서 나머지 노드 간의 합의를 유지하도록 설계된 알고리즘입니다. 51% 공격이나 일부 노드가 허위 거래에 대한 정보를 전송하는 것에서 비롯된 서비스 거부(DoS) 공격과 같은 공격에 저항하여 시스템이나 네트워크가 계속 작동할 수 있도록 합니다. [1][2][3]
암호화폐는 분산된 노드 네트워크를 활용하여 거래를 독립적으로 검증하고 기록하는 분산 모델로 작동합니다. 이 분산 프레임워크의 무결성을 위해서는 합의가 필수적이며, 비잔틴 장애 허용(BFT, Byzantine Fault Tolerance)이 그 구축에 중요한 역할을 합니다. [1][4]
분산 시스템의 고유한 특징인 BFT는 결함이 있거나 악의적인 노드가 존재하더라도 네트워크의 정상적인 작동을 보장합니다. 노드가 부정확한 정보를 전파할 때 발생하는 비잔틴 장애는 악의적인 공격, 소프트웨어 결함 또는 노드 간 합의 도달의 어려움과 같은 요인으로 인해 발생할 수 있습니다. 분산 시스템에서 비잔틴 장애의 불가피성을 인식하여 비잔틴 장애 허용의 구현이 필수적입니다. 그 기능은 잘못된 정보를 제공하는 노드가 있더라도 시스템이 합의에 도달할 수 있도록 하는 것입니다. [5]
블록체인 기술에서 비잔틴 장애 허용(Byzantine fault tolerance)은 레슬리 램포트(Leslie Lamport), 마셜 피스(Marshall Pease), 로버트 쇼스타크(Robert Shostak)가 처음으로 개념화한 비잔틴 장군 문제(Byzantine generals problem)에서 유래합니다. 그들의 1982년 논문 "The Byzantine Generals Problem"은 비잔틴 군대 장군들이 공격 또는 후퇴에 대한 만장일치의 결정을 조정해야 하는 시나리오를 제시했습니다. 타협적인 장군들은 비잔틴 장애(Byzantine fault)라는 장애를 만들었고, 이 문제를 효과적으로 처리하는 시스템은 비잔틴 장애 허용 시스템으로 간주됩니다. [2]
이 개념은 암호화폐 블록체인 네트워크에 적용되어, 노드가 군대 장군과 유사하게 거래를 검증하고 비잔틴 장애 허용 시스템을 형성하여 노드 오류나 의도적인 속임수에도 기능할 수 있게 되었습니다. [2][4]
2008년, 사토시 나카모토(Satoshi Nakamoto)가 비트코인 백서를 발표하고 작업 증명(proof of work, PoW) 프로토콜을 사용하는 비잔틴 장애에 탄력적인 합의 접근 방식을 소개하면서 비잔틴 장애 허용이 널리 주목받기 시작했습니다. 비트코인(Bitcoin) 출시 이후, 블록체인 연구자들은 이러한 원칙을 발전시켜 지분 증명(proof of stake, PoS)과 같은 다양한 합의 방법을 개발하여 비잔틴 장애 허용을 달성했습니다. [3]
비잔틴 장애 허용(Byzantine Fault Tolerance, BFT) 알고리즘은 네트워크 노드를 그룹으로 나누고 메시지 교환을 통해 통신하도록 함으로써 작동합니다. 이러한 통신을 통해 노드는 다른 노드가 공유하는 정보를 인증하고, 시스템의 현재 상태에 대한 모든 노드 간의 만장일치 합의를 보장합니다. [1]
블록체인은 합의 알고리즘을 통해 BFT 메커니즘을 사용하여 분산 원장의 현재 상태에 대한 집단적 합의를 설정합니다. 이러한 합의 알고리즘은 블록체인에 블록을 추가할 권한이 있는 노드를 규제합니다. 특정 블록체인에서는 복잡한 수학적 문제 해결(PoW)이 포함되는 반면, 다른 블록체인에서는 새로운 블록 추가를 용이하게 하기 위해 특정 양의 블록체인 네이티브 통화를 스테이킹(PoS)해야 합니다. [6]
또한, 블록체인에 포함될 모든 새로운 블록은 네트워크 내의 모든 노드에 배포됩니다. 각 노드는 이러한 블록과 해당 트랜잭션을 검증한 후 로컬 버전의 블록체인에 통합합니다. 블록체인 기술은 일반적으로 실용적인 비잔틴 장애 허용(pBFT), 페더레이티드 비잔틴 합의(FBA), 위임된 비잔틴 장애 허용(dBFT) 등 다양한 BFT 알고리즘을 사용합니다. [6][7]
PoW 합의 알고리즘은 네트워크의 채굴자가 암호화 퍼즐을 풀어 트랜잭션 데이터를 저장하는 블록을 검증하고 생성해야 합니다. 퍼즐을 가장 먼저 성공적으로 푼 채굴자는 트랜잭션을 블록에 추가하고 블록 보상을 받을 수 있는 권한을 얻지만, 블록 추가를 확인하려면 퍼즐을 풀었다는 것을 증명해야 합니다. PoW의 채굴은 고가의 컴퓨터 또는 채굴 장비를 사용하는 것을 포함하며, 다른 참여자가 거부할 것이기 때문에 채굴자가 허위 정보를 유포하는 것을 막습니다. 이는 또한 악의적인 행위자가 시스템의 대부분의 노드를 제어할 위험을 줄입니다. [2]
반면, PoS 합의 메커니즘은 트랜잭션을 검증할 권한을 얻으려면 특정 수량의 암호화폐 토큰을 스테이킹해야 합니다. 네트워크 프로토콜이 개인을 수락하면 트랜잭션을 확장되는 블록에 포함하여 블록 보상을 받을 수 있습니다. [2]
pBFT는 응답이 언제 수신될지에 대한 상한선이 정의되지 않은 비동기 시스템에서 효율적으로 작동하도록 설계된 합의 알고리즘입니다. 이는 네트워크의 모든 노드가 블록체인의 사본을 가지고 있으며 새로운 트랜잭션과 블록이 블록체인에 추가되기 전에 검증할 수 있도록 함으로써 기능합니다. [1][8]
pBFT에서 노드는 세 가지 그룹으로 분류됩니다. 네트워크에 새로운 트랜잭션이나 블록을 제안하고 클라이언트의 요청을 받는 책임을 맡는 리더 노드
; 서로 메시지를 교환하여 제안을 검증하는 데 중요한 역할을 하는 복제 노드
집합; 그리고 트랜잭션 요청을 보내는 책임이 있는 클라이언트 노드
그룹입니다. [1][8][9]
FBA는 기존 BFT 알고리즘에 비해 더 분산되고 유연한 방식으로 BFT를 달성하기 위해 개발된 합의 메커니즘입니다. 사용자 요청 전에 노드는 FBA 네트워크 내에서 사전에 설정되고 검증되어야 합니다. 노드는 다른 노드를 선택하고 신뢰할 수 있는 자율성을 가지므로 정족수가 형성되어 솔루션이 정확하다고 간주되는 데 필요한 최소 노드 수를 나타냅니다. 정족수가 설정되면 해당 블록이 검증되고 블록체인에 통합됩니다. FBA 합의 알고리즘은 다음 단계를 따릅니다: [10][11]
위임된 비잔틴 장애 허용(dBFT, Delegated Byzantine Fault Tolerance) 합의 알고리즘은 블록체인 및 암호화폐 커뮤니티 내에서 합의에 도달하기 위한 목적으로 사용됩니다. 하지만 그 복잡성 때문에 초보자에게는 어려울 수 있습니다. 그 복잡성은 블록체인 상의 신뢰할 수 없는 참여자들을 능숙하게 처리하는 데서 비롯되며, 이 점에서 다른 알고리즘보다 우수합니다. [12]
"중국의 이더리움"으로 불리는 NEO는 자산의 디지털화와 블록체인 상의 스마트 계약 구현을 통한 "스마트 경제" 구축을 강조하며 위임된 비잔틴 장애 허용 합의를 도입했습니다. dBFT 합의 메커니즘은 상태 머신으로 작동하며, 라운드 로빈 방식을 사용하여 주 노드/백업 노드를 정의하고 네트워크 메시지를 관리합니다. 다음은 dBFT 상태입니다. [12][13]
질리카(Zilliqa)는 초당 수천 건의 트랜잭션을 처리할 수 있는 고처리량을 제공하도록 설계된 소프트웨어입니다. 샤딩을 2계층 확장 솔루션으로 사용하여 블록체인 확장성 문제와 속도 문제를 해결하는 것을 목표로 합니다. 이는 인프라를 여러 개의 상호 연결된 블록체인으로 분할하여 더 많은 트랜잭션을 지원합니다. 스테이킹과 이율 농사(yield farming)을 허용하는 플랫폼으로, Zilswap, Avely Finance, LunarCrush를 포함한 많은 탈중앙화 애플리케이션(dApps)이 질리카를 자체 프로토콜에 통합합니다. [14][15][16][17]
질리카 네트워크는 스마트 계약, 트랜잭션 결제 및 토큰 발행을 포함한 다양한 기능을 제공합니다. 그 작동은 네트워크를 여러 조각(shard)으로 나누어 노드가 트랜잭션의 일부만 처리할 수 있도록 하는 샤딩과 네트워크 보안 및 동기화를 보장하는 알고리즘인 pBFT라는 두 가지 주요 원칙에 의존합니다. pBFT를 사용하면 기록이 블록체인에 추가되기 전에 노드의 3분의 2 이상이 기록의 정확성에 동의할 때 합의가 이루어집니다. 이 합의 과정은 특정 조각에 적용되며, 마이크로블록이 최종적으로 트랜잭션 블록에 병합되기 전에 모든 노드가 동의해야 합니다. 또한 질리카는 노드 ID를 할당하고 조각을 생성하는 작업 증명(proof-of-work) 알고리즘을 사용하여 플랫폼 트랜잭션 기록의 보안을 강화합니다. [15][16]
Stellar (XLM) (스텔라 루멘(Stellar Lumens)이라고도 함)은 전 세계 금융 시스템을 연결하고 지불 제공업체 및 금융 기관을 위한 표준화된 프로토콜을 구축하는 것을 목표로 하는 분산형 피어투피어 (P2P) 네트워크입니다. 그 목적은 개인, 은행 및 지불 처리업체를 연결하여 금융 자산의 이동을 용이하게 하는 것입니다. 또한, Stellar는 사용자가 다양한 암호화폐를 생성, 전송 및 거래할 수 있도록 합니다. [20]
Stellar는 분산된 서버 네트워크와 모든 노드에서 2~5초마다 업데이트되는 분산 원장을 사용하며, FBA 알고리즘으로 알려진 합의 프로토콜을 사용합니다. 이 프로토콜은 쿼럼 슬라이스 또는 특정 네트워크 부분을 사용하여 트랜잭션을 검증함으로써 더 빠른 트랜잭션 처리를 달성합니다. Stellar 네트워크의 각 노드는 "신뢰할 수 있는" 노드 집합을 선택하며, 트랜잭션이 이 집합의 모든 노드에서 승인을 받으면 검증된 것으로 간주됩니다. 이 간소화된 프로세스는 Stellar 네트워크의 속도를 크게 향상시켜 초당 최대 1,000개의 네트워크 작업을 처리할 수 있도록 했습니다. [21]
네오는 스마트 계약을 통해 디지털 자산 관리를 자동화하고 분산형 애플리케이션을 사용하여 분산형 스마트 경제 시스템을 구축하도록 설계된 블록체인 네트워크입니다. 이 플랫폼을 통해 분산형 거래소 (DEX), 예측 시장 및 소셜 네트워크와 같은 목적을 위한 dApp 생성이 가능합니다. [18]
이러한 기능 외에도 네오는 사용자에게 분산형 파일 저장 시스템, 신원 시스템 및 가격 데이터와 같은 외부 정보를 통합하기 위한 오라클 시스템과 같은 기능을 제공합니다. [18][19]
네오 블록체인에는 두 가지 기본 암호화폐가 있습니다. 프로토콜 변경에 대한 투표에 사용되는 NEO와 네트워크의 계산 비용을 충당하는 데 사용되는 GAS입니다. 이 플랫폼은 dBFT 합의 메커니즘을 사용하여 분산된 컴퓨터 네트워크 전반에서 블록체인 보안 및 동기화를 보장합니다. [18]
dBFT는 위임 지분 증명(DPoS)과 유사하게 작동하며 실시간 투표 시스템을 사용하여 소프트웨어를 실행하는 컴퓨터 중 어떤 컴퓨터가 다음 블록을 네오 블록체인에 생성할 수 있는지 결정합니다. 즉, NEO를 보유한 모든 사람이 네트워크 운영에 참여할 수 있습니다. 각 NEO 토큰(또는 네오 코인)은 투표를 나타내는 데 스테이킹될 수 있으며, 스테이킹된 NEO가 많을수록 투표력이 커집니다. 토큰을 스테이킹하는 모든 NEO 소유자는 블록 생성을 담당하는 합의 노드에 투표합니다. 이러한 합의 노드는 새로운 블록을 네오 블록체인에 제안하고 추가하는 대가로 GAS 암호화폐로 지불되는 네트워크의 거래 수수료를 받습니다. [18][19]