DBFT(Delegated Byzantine Fault Tolerance)는 어떤 합의알고리즘인가요?
블록체인 연구개발 회사인 온체인(OnChain) 멤버들이 설립하고 분산앱(dApp)의 확장성을 지원한다는 네오(Neo)의 DBFT(Delegated Byzantine Fault Tolerance) 알고리즘은 어떤 합의알고리즘인지 알고 싶습니다.
안녕하세요 질문자님
DBFT 합의 알고리즘에 대해 설명드리겠습니다. DBFT 알고리즘은 비잔틴 장애 허용 방식의 알고리즘입니다.
알기쉽게 그림으로 표현된 것이 있어서 설명드리면, 먼저 지분을 소유하고 있으면 대표자 투표 권한을 가지게 됩니다. 대표자로서의 투표는 전체의 3분의 2 이상의 합의 결과를 도출하는 방식입니다. 즉 , 다수결 동의에 의한 알고리즘이며, 3분의 2이상의 득표를 받아낸다면 다음으로의 블록 연결이 성공되는 방식입니다.
이러한 방식의 합의알고리즘의
장점 : 빠른 처리 속도, 포크3가 일어나지 않고 완료성이 좋음
단점 : 특정 노드에 권력 집중, 노드들 간의 단합 위험
과 같이 요약할 수 있습니다.
Delegated Byzantine Fault Tolerance(DBFT)는 '위임된 비잔틴 장애 허용' 합의 알고리즘이라고 할 수 있습니다. 이것은 네오 블록체인이 처음부터 이용하고 있었던 합의 알고리즘이며 작년에 DBFT 2.0으로 개선된 바가 있습니다.
이 DBFT는 투표를 통해 대표 합의 노드를 선정하고 이러한 합의 노드들이 함께 블록을 생성하고 검증하게 된다는 특징이 있습니다. 즉, 일반적인 BFT 합의에서 합의 노드의 수가 증가할 수록 합의에 도달하는 속도가 느려지는 확장성 문제를 대표 합의 노드의 선정을 통해 해결하고 있다는 점에서 장점이 있습니다.
또한 DBFT 2.0에서는 합의 과정에서 최종적으로 Commit이라는 '확정' 단계를 추가하여 블록이 생성되면 빠르게 '확정성(Finality)'를 부여함으로써 블록체인의 분기(Fork)를 방지하고 거래 내역을 바꾸거나 되돌릴 수 없도록 하고 있습니다.
끝으로 DBFT 2.0에서 네오는 합의 알고리즘의 안정성을 향상시키기 위한 복구 메커니즘을 추가했다고 할 수 있습니다. 따라서 네트워크 장애나 노드 장애가 발생하더라도, 장애가 발생하기 직전의 대표 합의 노드의 합의 상태로 빠르게 되돌릴 수 있게 됨으로써 합의 과정의 빠른 복구를 기대할 수 있습니다.
답변이 도움이 되길 바랍니다.
안녕하세요 정답은 없지만 해답은 있습니다.
최초 블록체인이 등장했을 때 알고리즘은 오로지 PoW뿐이었습니다.
그러나 PoW의 단점을 꼬집으며 PoS 등 다른 형태의 알고리즘이 탄생했고 그 PoS 방식의 변종 형태로 수많은 알고리즘 방식이 파생되었는데 그중에 나온 것 중에 DBFT도 하나의 파생 알고리즘인 상황인 거죠 근본적으로 DBFT 역시 PoS와 장단점이 다를 바 없이 똑같은 지분 증명 형태입니다.
DBFT 방식을 아주 간략하게 설명하자면 전체 지분 자들 중에 위임된 자들끼리 일부가 악용을 하더라도 다수의 위임자분 참여자들로부터 인정을 받는다면 그것은 옳은 결정이고 올바른 목표점을 향해 갈 수 있다는 믿음에 의해 유지되는 알고리즘 방식의 형태입니다.
다만 결국 그 문제의 근간은 여전히 지분 증명방식이라는 점입니다.
그것이 위임이던 고정이던 특정 집단이던 다 근본적인 카르텔 문제를 해결하지 못하는 것에는 다르지 않습니다.
결론적으로 PoS의 근본적인 문제가 바로 소수의 독점 형태로써 그들끼리의 카르텔을 어떻게 타파할 것인가에 대한 문제인데 결국 미꾸라지 한 마리가 흙탕물을 만드는 법이죠....
미꾸라지를 아예 없애는 법은 철저하게 실력제 형태인 PoW밖에 없습니다.
현재도 말이죠 과 연 PoS 같은 알고리즘 하에서 누가 진정한 지분증명자로써의 지위를 모두가 인정할 수준으로 가질 수 있을까요? 저는 PoS는 애초부터 PoW 비해서 공정성부터가 상대적으로 매우 뒤떨어지는 알고리즘 구조 방식이라고 지금도 생각합니다.