검수요청.png검수요청.png

연합 비잔틴 동의

해시넷
(연합비잔틴동의에서 넘어옴)
이동: 둘러보기, 검색

연합 비잔틴 동의(FBA;federated Byzantine agreement)는 스텔라루멘이 선택한 합의 프로토콜로서, 합의 과정속에서 각 노드들에게 부여하는 투표의 수가 리소스 오너십에 의해서 결정되는 것이 아니라, 연방 혹은 연합을 이루는 독립적 노드 당 정확하게 1표씩을 부여하겠다는 의미가 내포되어있다.[1]

개요[편집]

연합 비잔틴 동의는 리소스 기반의 합의 참여 조건이 없다. 비트코인작업증명(PoW)과 이더리움 캐퍼스지분증명(PoS) 방식은 각각 연산 능력과 담보금이 있어야 된다는 참여 조건이 있다. 연합 비잔틴 동의는 그와 상반된 모습을 보여주며 네트워크에 참여하는 노드라면, 네트워크에 기여할 수 있는 하나의 시민 노드로 인정되어 각 노드는 1표를 받게 된다. 각 노드들은 각자의 성능과 상관없이 스텔라의 합의 과정에 참여하여 하나의 연방을 이루게 된다. [1]

등장 배경[편집]

금융 인프라는 폐쇄적인 모습을 많이 보여준다. 이처럼 폐적인 시스템은 고립적인 성격이 강하기 때문에 높은 처리비용이 발생하게 된다. 이러한 부분이 금융 서비스 성장을 방해하고 있다. 인터넷의 성공처럼 유기적인 성장과 혁신을 지지하면서 안전한 금융 거래가 보장할 수 있는 금융 인프라가 필요하다. 기존의 경우, 높은 진입장벽을 통해 안전성을 확보했다. 이 선택은 독점 상황을 발생시켰고 유기적인 성장에 방해요소로 작동하게 된다. 모두에게 개방된 네트워크를 통해 소외된 사람들 없이 서비스를 이용할 수 있어야한다. 이러한 네트워크를 형성하기 위래 참여자들의 올바른 금융거래 기록이 보장되야 한다. 그 해결책이 연합형 비잔틴 합의(FBA)를 통해 전세계적인 합의 메커니즘을 실현하는 것이다. 연합 비잔틴 동의 합의 방식은 금융 네트워크의 온전함을 보장하며, 블록체인의 탈중앙적인 조정 방식으로 유기적 성장의 원동력이 된다.[2]

사용[편집]

  • 스텔라루멘 : 스텔라루멘(Stellarlumen)은 리플에서 분리된 국제 송금용 암호화폐이다. 간략히 스텔라(Stellar)라고 한다. 리플의 업그레이드 버전이라고도 불리며 국제 송금을 위해 만들어진 블록체인 기반의 오픈 소스 프로토콜이다. 세계 최초의 비트코인 거래소인 마운트곡스 창립자인자 리플을 개발한 제드 맥케일럽(Jed McCaleb)에 의해 2014년에 만들어졌다. C와 C++ 언어를 사용하여 개발된 스텔라루멘은 채굴이 없이 스텔라 합의 프로토콜(SCP, Stellar Consensus Protocol)을 따라 신규 코인이 발행된다. 리플이 프라이빗 블록체인 방식으로 운영되는 것과 달리, 스텔라루멘은 누구나 참여할 수 있는 퍼블릭 블록체인 방식으로 운영된다.

특징[편집]

쿼럼 슬라이드[편집]

쿼럼 슬라이드는 각 노드들이 믿기로 한 노드들과 자기 자신을 의미한다.[1] 연합 비잔틴 동의 시스템은 합의 프로토콜을 실행하는데 이 합의 프로토콜은 슬롯 내용에 대해서 노드들의 합의를 보장한다. 합의 프로토콜에서 노드는 슬롯에 대한 의견을 주장하며 메시지를 교환한다. 이 주장들은 공개키에 의해 명명 되고 디지털로 메시지에 사인을 하여 위조가 불가능할 뿐만 아니라 안정성이 보장된다.[3] 충분히 많은 수의 그룹을 쿼럼 슬라이스, 또는 슬라이스라고 하는데, 노드 오류가 발생하더라도 진행을 계속하기 위해서 노드는 여러 개의 슬라이스를 가지고 있을 수 있으며, 이들 중 어느 하나만 있어도 의견에 대해 노드를 납득시킬 수 있다. 형식적으로는, FBA 시스템은 노드들의 연합체들로 구성되며, 이들 노드 각각은 한 개 또는 그 이상의 슬라이스를 선택한다. 쿼럼은 합의에 도달하는데 충분한 노드 집합을 의미하며, 쿼럼의 부분집합이 쿼럼 슬라이스가 된다. 쿼럼 슬라이스는 특정 노드에게 합의를 하도록 납득 및 설득시킨다.[2]

안전성과 활동성[편집]

  • 안전성 : 안전성은 노드 두개 중 어느 쪽에서도 동일한 슬롯에 대해 상이한 값을 외부화하지 않는다면 연합 비잔틴 동의의 하나의 노드집합은 안전성을 누릴 수 있다.[2]
  • 활동성 : 활동성은 악의적인 행동과 같은 장애가 있는 노드들의 참여를 배제한 상태에서 새로운 값을 외부화할 수 있다면 연합 비잔틴 동의의 그 노드는 활동성을 누릴 수 있다.[2]

노드는 선의로 행동하는 쪽과 악의로 행동하는 쪽으로 분류된다. 선의로 행동하는 노드는 적합하고 합리적인 쿼럼 슬라이스를 선택하고, 프로토콜을 따른다. 최종적으로 모든 요청에도 응답한다. 악의로 행동하는 노드는 이와 대조적인 모습을 보여준다. 악의로 행동하는 노드는 비잔틴 장애 문제를 유발하고, 비협조적인 모습을 보인다. 비잔틴 합의의 목적은 악의로 행동하는 노드가 존재하더라도 선의로 행동하는 노드가 동일한 값을 표면화하는 것을 보장하는 것이다. 이 목표에는 두 가지 목적이 있다. 첫째로, 노드가 동일 슬롯에 대해 상이한 값을 표면화하고 나뉘는 것을 방지하려 한다. 두 번째는 노드가 실제로 값을 확실하게 표면화할 수 있도록 보장하려 한다. 더 이상 합의가 불가능한 꽉 막히 상태로 인한 차단을 발생하지 않아야 한다. 이와 같은 특징을 위해 안전성과 활동성을 가지고 선의로 행동하는 노드가 가장 이상적인 노드이다. 그러나 장애가 악의적인 행동을 하는 노드에게만 발생하는 것은 아니다. 선의로 행동하는 노드도 장애가 있을 수 있다. 이는 악의로 행동하는 노드로부터 메시지를 끝없이 기다린 것이 원인이거나, 더 나쁜 예시로는, 악의로 행동하는 노드의 잘못된 메시지가 상태에 악영향을 미친 경우이다. 안전성을 위반하는 공격이 활동성만 위반하는 공격보다 한층 더 위험한 형태이다. 네트워크는 중요 메시지를 지연하거나 재요청해서 합의를 지속적으로 방해한다. 순수 비동기, 결정론적 시스템에서는 노드 장애를 이겨내기 위해 영구적인 선점이 불가피하다. 다행이도, 선점 현상은 일시적이다. 이 경우에 시스템은 언제라도 보구 될 있으므로 노드 장애를 의미하지는 않는다.[2]

각주[편집]

  1. 1.0 1.1 1.2 야옹메롱, 〈[XLM스텔라루멘(Stellar lumens)소개, 설립배경, 백서의 이해]〉, 《네이버 블로그》, 2018-10-23
  2. 2.0 2.1 2.2 2.3 2.4 leejames00, 〈스텔라 합의 프로토콜: 인터넷 레벨 합의를 위한 연합형 모델〉, 《깃허브》, 2018-05-24
  3. 유병국, 〈(Whitepaper)스텔라(XLM)백서 탐구〉, 《브런치》, 2018-09-08

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 연합 비잔틴 동의 문서는 합의 알고리즘에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.