요약

  • 비잔티움 장애 허용이란 장애가 있더라도 전체의 3분의 1을 넘지 않는다면 시스템이 정상 작동하도록 허용하는 합의 알고리즘이다.
  • 텐더민트의 합의 알고리즘은 “라운드 시작 - 제안- 블록 검증 - 블록 투표 - 합의 도달” 순서로 진행된다.

내용

비잔티움 장애 허용이란 장애가 있더라도 전체의 3분의 1을 넘지 않는다면 시스템이 정상 작동하도록 허용하는 합의 알고리즘이다.

비잔티움 장애 허용성을 가지려면 다음과 같은 요구사항을 충족해야한다.

  • 합의 알고리즘: 텐더민트는 비잔티움 장애 허용성을 위해서 프랙티컬 비잔틴 장애 허용(PBFT)를 변형한 텐더민트 장애 허용(TBFT) 알고리즘을 사용한다.
  • 장애 감지 및 검증: 텐더민트는 네트워크에서 발생하는 장애와 악의적인 행위를 감지하고 검증하는 메커니즘을 가지고 있다.
  • 합의 과정: 덴터민트의 합의 과정은 블록체인의 블록 생성 및 노드 간의 동기화를 담당한다. 대다수의 노드가 동의하는 합의 결과가 도출되면, 해당 블록이 체인에 추가된다.

텐더민트의 합의 알고리즘은 다음과 같은 절차를 따른다.

  1. 라운드 시작: 합의 과정은 라운드 단위로 진행된다. 각 라운드마다 리더 노드가 선택되어 합의를 주도한다.
  2. 제안: 리더 노드는 블록의 제안을 생성하고 해당 블록에 대한 해시 값을 생성하여 다른 노드에 제공한다.
  3. 블록 검증: 제안된 블록은 다른 노드들에 의해 독립적으로 검증된다. 노드들은 제안된 블록의 유효성을 확인하고, 악의적인 동작이나 장애를 감지할 수 있다.
  4. 블록 투표: 노드들은 제안된 블록에 대해 투표를 진행한다. 이때 다른 노드들의 투표 결과를 수집하고 투표 결과를 계산하여 대다수의 동의를 얻는지 확인한다.
  5. 합의 도달: 대다수의 노드가 동의하는 블록이 존재하면, 해당 블록이 최종적인 합의 결과로 선택되고 체인에 추가된다. 이후 다음 라운드 합의 과정이 시작된다.

참고