비잔틴 장군 문제란 무엇이며 비잔틴 장애 허용 시스템은 어떻게 작동할까요? 이번 포스팅에서는 비잔틴 장군 문제가 발생하는 상황과 이를 시스템적으로 해결하는 방법인 비잔틴 장애 허용에 대해 알아보겠습니다.
비잔틴 장군의 문제란 무엇인가요?
비잔틴 장애 허용이라는 개념은 다음과 같은 비잔틴 장군 문제를 해결하기 위해 고안되었습니다. 비잔틴 장군 문제란 무엇일까요? 비잔틴 장군 문제는 1982년에 제시된 논리적 딜레마를 의미합니다.이는 비잔틴이라는 곳의 장군들이 합의를 달성해야 하는 데 문제가 있을 수 있다는 것인데요.
비잔틴 장군의 딜레마는 각 장군들이 개별적인 군대를 보유하고 있는 상황에서 서로 다른 도시에 떨어져 있는 상황에서 소통을 해야 한다는 전제를 가정하고 있습니다. 각 장군들은 공격 또는 후퇴를 결정해야 하는데요. 모든 장군이 공통된 하나의 결정을 내려 합의하기만 한다면 공격 또는 후퇴 여부는 중요하지 않은 상황입니다.
- 각 장군들은 서로 다른 도시에 주둔하고 있습니다.
- 각 장군들은 공격 또는 후퇴(예 또는 아니오)를 결정해야 합니다.
- 결정 후에는 변경할 수 없습니다.
- 모든 장군이 동일한 결정에 동의하고 동시에 이를 실행해야 합니다.
이러한 상황에서 각 장군들은 서신을 전달하는 병사에 의해서만 다른 장군와 소통할 수 있는 상황입니다. 문제는 이 과정에서 메시지가 늦게 전달되거나 유실될 수도 있다는 것이죠. 또한 메시지가 정확하게 전달되더라도 한 명 이상의 장군이 다른 장군을 배신하고 다른 메시지를 다음 장군에게 전달할 수 있습니다. 이렇게 되면 장군들은 합의에 도달할 수 없게 됩니다.
비잔틴 장군의 문제에 대해 이해가 되셨나요? 이제 이러한 딜레마를 시스템적으로 해결하는 시도인 비잔틴 장애 허용에 대해 알아볼 차례입니다.
비잔틴 장애 허용
비잔틴 장애 허용(Byzantine Fault Tolerance)이란 앞서 살펴본 비잔틴 장애 허용 문제에 대응할 수 있는 시스템 속성을 의미합니다. 즉, 일부 장군이 소통에 실패하거나 악의적이로 행동하더라도 정직한 장군이 ⅔이라면 시스템이 계속 작동하게 하는 것을 의미합니다.
정리하자면 비잔틴 장애 허용이란 모든 장군(100%)이 동일하게 합의하지 않더라도 ⅔ 이상이 동의한다면 시스템이 안전한 것으로 간주하고 운영되도록 하는 것입니다. 비잔틴 문제는 다양한 방법으로 해결할 수 있으며 따라서 해당 비율은 75%가 아닌 51%가 될 수도 있습니다.
비잔틴 장애 허용은 항공 분야에서 처음 사용되었는데요. 항공기는 위치를 제공하기 위해 항법 장치라는 것을 사용합니다. 항공 사고를 방지하기 위해 각 센서들은 언제나 정확하고 올바를 정보를 전송해야 하는데요. 만약, 한 센서라도 다른 정보를 준다면 이를 다른 센서와 비교해 어떤 값을 수용할 지 결정해야 하는 비잔틴 장군의 문제가 발생하게 됩니다. 여기에 비잔틴 장애 허용 시스템을 적용하면 항법 장치의 센서가 3개일 때 2개가 정상 작동한다면 나머지 1개의 잘못된 신호를 무시할 수 있게 됩니다.
비잔틴 장군 문제와 블록체인 합의 알고리즘
이제 비잔틴 문제와 허용 시스템을 블록체인에 적용해보겠습니다. 각 장군은 네트워크 노드를 의미하며, 노드는 시스템 합의에 도달해야 합니다. 즉, 탈중앙 네트워크에서 참여자는 동일한 사항에 합의하고 이를 실행해야 합니다.
그러나 분산화된 네트워크에서 안전하고 효율적인 방식으로 합의에 도달하는 것은 결코 쉬운 일은 아니죠. 누군가는 정직하지 않게 행동하며 개별적인 이익을 추구할 수도 있기 때문입니다. 가장 극단적인 공격 형태가 바로 51% 공격인데요. 51% 공격이 발생하면 네트워크가 무너질 수 있습니다.
그렇다면 비트코인과 같은 블록체인은 어떻게 전세계의 컴퓨터 노드들로 구성된 분산화된 네트워크에서 원만한 합의를 이끌어낼 수 있을까요? 이러한 탈중앙 시스템에서 합의를 달성하는 방법은 최소 ⅔ 이상의 신뢰할 수 있고 정직한 네트워크 노드를 보유하는 것입니다.
비잔틴 장군 문제를 해결하는 방법은 여러가지이며 따라서 비잔틴 장애 허용 시스템을 구축하는 방법도 여러가지가 있습니다. 블록체인에서는 이러한 해결 방법을 합의 알고리즘이라고 합니다.
블록체인에서 합의 알고리즘은 합의에 도달하는 방법을 의미합니다. 가장 일반적인 합의 알고리즘은 작업 증명(Pow)과 지분 증명(PoS)인데요. 비트코인은 작업 증명을, 이더리움은 지분 증명을 사용합니다.
블록체인 네트워크는 합의 알고리즘을 따라 트랜잭션을 검증하고 유효성을 검사하는데요. 예를 들어, 작업 증명은 정직하게 행동한 채굴자에게 비트코인을 보상으로 지급하여 각 노드가 정지하게 행동하도록 인센티브를 제공합니다. 만약, 악의적으로 행동하게 된다면 채굴 비용을 잃게 됩니다. 즉, 열심히 일을 하고 오히려 돈을 잃게 되는 것이죠.
이를 이전의 비잔틴 장애 허용에 대입해 보자면 각 장군(노드)이 정직하게 행동할 때 비트코인을 보상으로 받도록 설계되어 있는 것이 바로 작업 증명 합의 알고리즘입니다. 즉, 메시지를 조작하지 않고 다른 장군에게 제때 정확하게 전파하는 작업을 진행하는 것이 각 장군에게 이득이 되도록 설계 되어 있는 비잔틴 장애 허용 시스템인 것이죠.
사토시 나카모토가 설계한 작업 증명 합의 알고리즘은 현재까지 블록체인 네트워크에서 가장 신뢰할 수 있는 것으로 증명되었습니다.
최종 정리
비잔틴 장군 문제는 서로를 신뢰할 수 없는 상황에서 신뢰를 달성해야 하는 딜레마를 의미합니다. 이러한 상황에서 비잔틴 장애 허용 시스템은 각 장군이 정직하게 행동하도록 인센티브를 제공하며, 예를 들어 ⅔ 이상의 구성원들의 합의가 있다면 시스템이 계속해서 작동하도록 하는 것을 의미합니다. 블록체인에서는 비잔틴 장애 허용 시스템을 합의 알고리즘이라고 하며 이를 통해 각 노드는 탈중앙화된 방식으로 네트워크 합의를 달성할 수 있습니다.
'🧑🌾 아카데미 > 🧐 크립토 블록체인 101' 카테고리의 다른 글
코인 에어드랍이란? 🪂 (0) | 2023.09.06 |
---|---|
블록체인 주소와 가상자산 지갑의 이해: 쉽게 살펴보기 👾 (0) | 2023.09.05 |
하드포크와 소프트포크 설명 (0) | 2023.07.15 |
블록체인과 비트코인의 차이점 정리 (0) | 2023.07.05 |
더스팅 공격이란 무엇인가요? (0) | 2023.07.04 |