728x90
블록체인의 핵심에는 분산 시스템이 있다고할 수 있다.
노드는 분산 시스템에 대한 개별 참가자로 정의할 수 있으며 모든 노드는 서로 데이터를 주고받을 수 있다. 이러한 노드들은 정상적이거나 악의적인 사용자일 수도 있으며 각각의 노드는 메모리와 프로세스를 갖고 있따. 이때 비합리적인 행동을 보이는 노드를 비잔틴 장군 문제(Byzantine Generals Problem)에서 이름을 따서 비잔틴 노드라고도 한다.
# 비잔틴 장군 문제
1982년 램포트와 그 외 사람들이 '비잔틴 장군 문제(The Byzantine Generals Problem)'이라는 연구 논문에서 사고 실험을 제안했는데 이 문제에서 비잔틴 군은 각기 다른 부대를 이끌고 있는 장군들이 도시를 공격하거나 퇴각하려고 계획을 세우고 있다.
장군들끼리 소통하는 유일한 방법은 전령을 통하는 방법 뿐이며 그들이 이기려면 합의를 해서 동시에 쳐들어가야 한다. 문제는 장군들 중에 메시지를 속여 보낼 수 있는 반역자가 한 명 이상일 수 있다는 점이다. 그러므로 신뢰하지 못하는 장군이 있더라도 동시에 공격할 수 있도록 장군들이 합의에 성공할 수 있는 메커니즘이 필요하다.
# PBFT
이 문제는 카스트로와 리스코프가 실용적인 비잔틴 결함 허용(PBFT, Practical Byzantine Fault Tollerance) 알고리즘을 제시해 해결했는데, BPFT 알고리즘에서는 서명이 동일한 콘텐츠가 포함된 메시지를 특정 수만큼 받으면 합의에 도달한다.
'Blockchain' 카테고리의 다른 글
Livenss & Safety (0) | 2023.10.14 |
---|---|
디지털-서명 (0) | 2023.06.10 |