소위 "비잔틴 장군" 문제란 무엇입니까?

EKT多链技术
本文约1790字,阅读全文需要约7分钟
EKT 멀티 체인 기술 토크 | 사람들이 자주 말하는 "비잔틴 장군"문제는 무엇입니까?


"비잔틴 장군의 문제"란 무엇입니까?

비잔틴 장군 문제는 비잔틴 장군 문제 또는 비잔틴 실패로 알려진 1982년 Leslie Lamport 등에 의해 처음 제안되었습니다. 문제는 다음과 같이 설명됩니다.

비잔틴 제국은 강력한 적국을 공격하기 위해 10명의 군대를 보내 제국을 포위했습니다. 이 적은 비잔틴 제국만큼 강하지는 않지만 5개 정규 비잔틴 군대의 동시 공격을 충분히 버틸 수 있다. 어떤 이유에서인지 이 10개 군대는 모여서 공격할 수 없었고, 흩어졌다가 통일된 명령에 따라 함께 공격하거나 후퇴해야 했습니다. 최소한 6개 군대가 적의 나라를 점령하기 위해 동시에 공격하지 않는 한, 그들의 군대 중 어느 하나가 단독으로 공격하면 승리할 기회가 없습니다. 그들은 적국 곳곳에 흩어져 있으며 신호병에 의존하여 서로 통신하여 공격 의도와 공격 시간을 협상합니다.

군대에는 다른 장군에게 잘못된 명령을 내릴 수 있는 반역자가 있을 수 있습니다. 이 경우 어떻게 전쟁 지시의 통일성을 유지하고 승리를 거둘 것인지가 문제가 되었다.

또한 비잔틴 장군 문제는 다음과 같이 설명할 수 있습니다.

명령을 보내는 장군은 남은 n-1장군들에게 명령을 보내서 모든 충성받는 장군들이 같은 명령을 따르도록 명령을 보내는 장군이 충성한다면 모든 충성받는 장군들은 받은 명령에 복종한다 이 문제를 컴퓨터 분야로 발전시키는 것은 비잔틴 내결함성 문제. 블록체인이 해결해야 할 핵심 문제는 분산 환경에서 각 노드의 데이터(악성 노드가 있더라도)가 최종 일관성과 정확성을 달성할 수 있도록 하는 방법입니다.

EKT의 합의 알고리즘은 DPoS이며, DPoS 합의를 기반으로 라우팅 전략에 기반한 Byzantine 내결함성 체계도 도입합니다.

"비잔틴 내결함성" 체계를 구현하는 방법은 무엇입니까?

EKT에서는 비잔틴 내결함성을 달성하기 위해 공개-개인 키 암호화 및 라우팅 전략 메커니즘을 사용합니다. 이것이 어떻게 달성됩니까?

EKT 메인 체인에 있는 각 DPoS 노드의 공개 키는 공개이며 구체적인 라우팅 전략은 다음과 같습니다.

1. 방송 차단

노드가 패키징을 완료하면 블록에 서명합니다. 서명 후 노드는 블록과 서명을 네트워크의 다른 노드에 브로드캐스트합니다. 다른 노드가 블록과 서명을 받으면 서명 정보를 확인하여 블록이 패키징 노드에서 브로드캐스트되었음을 ​​확인합니다. 다른 노드가 확인된 후 조건이 충족되면 현재 라운드에서 자신의 노드와 패키징 노드 사이의 거리를 판단합니다. (currentIndex - miningIndex + len(DPoSNodes)) % len(DPoSNodes)

2. 블록 검증 및 투표

각 블록 헤더에는 블록 본문의 해시 검사 값이 있습니다. 노드는 다른 노드에서 블록 바디를 얻을 수 있습니다. len(DPoS노드)

3. 노드 다운타임

노드가 일정 시간 동안 블록을 생성하지 않으면 현재 라운드의 다음 노드는 3*interval/2 시점에서 다음 블록 패키징을 시작하고 다음 블록의 패키징 프로세스에 들어갑니다. 마찬가지로 노드가 지속적으로 다운되는 경우 현재 노드를 패키징해야 하는지 판단하는 조건은 currentTime - lastBlockTime > (2*(currentIndex -LastIndex)+1)*interval/2입니다. 현재 조건이 충족되면 해당 노드는 현재 노드가 패키징을 시작합니다. 마지막 n개의 블록이 연속적으로 다운되면 현재 라운드의 마지막 블록의 해시 값에 따라 다음 라운드의 순서를 판단하고 각 블록을 더한 블록 간격을 증가시키는 알고리즘에 따라 계산이 수행됩니다. 현재 패키징된 노드를 판단하고 패키징합니다. n/2개 이상의 노드가 다운되면 모든 노드는 노드의 1/2 이상이 살아남을 때까지 자동으로 블록 생성을 중지합니다.

이 체계의 복잡도는 최상의 경우입니다: 메시지 복잡도 O(n^2), 시간 복잡도 O(1). 최악의 경우 메시지 복잡도 O(n^2), 시간 복잡도 O(n)에서도 달성할 수 있습니다. 이 라우팅 전략의 비잔틴 내결함성 메커니즘을 기반으로 시스템은 n/2 미만의 노드가 다운되거나 결함이 있는 경우 시스템이 분기되지 않도록 보장할 수 있으며, 이는 내결함성을 위해 컴퓨팅 리소스를 교환하는 솔루션입니다.