아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
WINTERFELL
WINTERFELL 19.08.08

블록체인 노드들의 합의 과정에서 BFT(Byzantine Fault Tolerance)란 무엇인가요?

안녕하세요. 아하의 블록체인 전문가님들의 지식 나눔에 깊이 감사드립니다.

블록 형성에 참여하는 노드들의 합의 과정에서 발생할 수 있는 문제점을 해결하기 위한 BFT(Byzantine Fault Tolerance -비잔틴 장애 허용)란 무엇인지 알고싶습니다.

55글자 더 채워주세요.
답변의 개수
2개의 답변이 있어요!
  • 비잔틴 장군 문제의 해결 방법으로 일반적으로 알려져 있는 '비잔틴 장애 허용(BFT)'이라는 합의 알고리즘은 합의에 참여하는 노드들 중 3분의 2가 합의할 경우 3분의 1에 문제가 있더라도(비잔틴 노드) 나머지 3분의 2에 의해 결과적으로 합의에 도달하는 것이 가능한 것을 의미합니다.

    이것이 블록체인에 도입되게 되면 노드들이 블록을 생성하기 위한 합의에 도달하려 할 때 정보의 위, 변조를 시도하는 노드가 있거나 노드가 정상적으로 작동하지 않을 경우에도, 또 완전한 합의에 도달하지 못하더라도 3분의 2이상의 정상적인 노드들이 합의를 도출할 수 있다는 전제가 있다면 그러한 비잔틴 노드들의 영향을 받지 않고 합의에 도달할 수 있게 됩니다.

    또한 블록체인에 따라서는 이러한 작업을 빠르게 두 번 진행하는 경우도 있는데 첫 번째 합의에서 3분의 2 이상의 합의가 도출되지 못하면 해당 블록은 확정 상태에 이르지 못하게 되며 첫 번째 합의에서 3분의 2 이상의 합의가 도출되면 다시 두 번째 합의를 다시 시작하여 빠르게 합의 한 뒤 불변하는 블록을 생성하고 확정지을 수 있습니다. 이렇게 먼저 합의에 도달한 후에 블록을 생성하는 방식을 택하게 되면 새로운 블록 생성의 이전 블록이 확정성을 부여 받은 상태이기 때문에 블록체인의 분기(Fork)를 방지할 수 있게 되어 안정성과 보안성이 높아지게 됩니다.

    결론적으로 비잔틴 장군 문제에 대해 100% 합의를 이끌어 내는 방법에는 아직 도달하지 못했지만 비잔틴 장애 허용을 통해 도출된 결과의 확정성을 확보함으로써 블록체인은 '결과적으로' 비잔틴 장군 문제에 대한 해법을 찾았다고 할 수 있습니다.

    답변이 도움이 되길 바랍니다.


  • 안녕하세요. BTF합의 알고리즘에 대하여 답변드립니다.

    • 비잔티 장애(BFT)란?

      • 부대안에 첩자가 있을 것으로 예상하고 있으나 누구인지 모르는 상태에서 적진에 나가 싸워야하는 상황에서 과연 부대를 신뢰할 수 있는가? 라는 실제 비잔티움 제국에서 일어난 사건을 바탕으로 만들어진 용어입니다.

      • 비잔티 장군의 딜레마라고도 불립니다.

    • 비잔티 장군의 딜레마가 블록체인 상에서 급부상한 이유는 블록체인 네트워크에서 블록을 생산하는 블록생산자(BP노드)들간에 합의를 도출할 때 과연 신뢰있는 BP노드와 신뢰하지 않는 BP노드를 구분하고 어느정도 선에서 합의를 이룰 것인가에 대한 논재입니다.

    • 따라서 각 노드간 합의를 도출 할 때 허용한계 값을 이용하여 합의를 이루는 여러 방식들이 존재합니다.

    • BTF합의는 구성원의 2/3이상 찬성하게 되면 합의가 이루어지는 방식입니다.

    • BFT의 여러가지 개선 방법

      • PBFT(Practical Byzantine Fault Tolerance)

        • 4개의 노드 중 3N+1개 이상일 경우 합의는 신뢰할 수 있다는 수학적인 알고리즘을 이용한 방식(* N〓신뢰 할 수 없는 노드)

        • 2번의 합의를 거처 최종 합의 합니다.

      • BBFT(Baystack Byzantine Fault Tolerance)

        • 신뢰할 수 있는 노드가 전체노드의 (2/3)이상 합의가 된 상황일 경우 최종적으로 합의가 된것으로 간주하는 방식입니다.

    • BFT방식을 사용하는 블록체인 : 이오스(EOS), 트론(TRX)

    • PBFT방슥을 사용하는 블록체인 : 테더민트, 하이퍼렛저, R3, 네오, ICT

    감사합니다.