암호화폐에 대한 흥미로운 이야기 (1) — 비잔틴 장군의 문제
안녕하세요. 탈중앙화 계약서 플랫폼 FirmaChain의 커뮤니티 매니저 Robert Han입니다. 많은 분들이 다양한 코인에 대해서는 알고 있지만 정작 기반이 되는 블록체인에 대해서는 잘 모르시는 분들이 많습니다.
좀 더 많은 분들이 블록체인 산업에 관심을 가질 수 있도록 앞으로 FirmaChain 소식 외에도 블록체인에 대한 이야기를 흥미롭게 풀어서 설명드리고자합니다. 그 밖에도 암호화폐 세계에서 일어난 재미있는 사례들도 포스팅하겠습니다.
오늘 첫 번째 이야기는 비잔틴 장군의 문제입니다.
· 비잔틴 장군의 문제 (Bizantine Generals Problem)
비잔틴 장군의 문제는 레슬리 램포트와 쇼스탁, 피스가 공저한 1982년 논문에서 처음 언급된 문제입니다. 완벽한 분산원장[1]을 이루기 위해서 반드시 해결해야했던 문제로 과거 컴퓨터 공학 난제 중 하나였습니다. 비트코인 창시자 나카모토 사토시 역시 위 문제와 마주했고 블록체인 개념을 생각해냄으로써 문제를 해결하였습니다.
비잔틴 장군의 문제에 가정된 규칙은 다음과 같습니다.
- 비잔틴 제국의 장군들은 서로 멀리 떨어져있으며 각각 1,000명의 병력을 가지고 있음
- 적국은 2,000명의 병력을 갖고 있으며 성공적인 공격을 위해서는 적국보다 많은 병력이 같은 시간에 공격해야함(3명 이상의 장군이 필요)
- 사령관 및 장군들은 가장 인접해 있는 장군 한 명에게만 전령을 보내 공격 시간을 전달할 수 있음
- 이 때, 장군들 중 첩자가 있으며 첩자는 받은 정보를 위조해서 전달할 수 있기 때문에 서로 신뢰할 수 없음
서로 신뢰가 불가능한 상황에서 어떤 방법을 사용해야 성공적으로 적국을 공격할 수 있을까요?
나카모토 사토시는 ‘특정한 작업’을 했음이 증명되면 ‘신뢰’와 ‘합의’를 보장하여 거래를 할 수 있게 만듬으로써 위 문제를 해결했습니다.여기서 ‘특정한 작업’이란 거래를 하고자 하는 사람이 가진 노력과 본인의 자원을 소비하는 행위입니다.
이것을 비잔틴 장군의 문제에 대입해보겠습니다.(장군2는 첩자라고 가정)
- 먼저 사령관은 공격 시간을 적고 10분의 노력을 들여 암호화 작업 후(특정한 작업, 시간 소비)장군 1에게 전달
- 장군 1은 암호 해독 후 사령관이 적은 공격 시간과 진행한 암호화 작업 기록을 확인하면서 신뢰하게됨
- 뒤를 이어서 공격 시간을 적고 10분의 노력을 들여 암호화 작업 후 장군 2에게 전달
- 첩자인 장군 2도 암호 해체 작업 진행 후 위조된 시간을 적어 전달
- 장군 3은 나열된 공격 시간들과 과거 암호 작업 기록들을 보면서 위조된 시간을 적은 장군 2가 첩자임을 확인. 위조된 시간이 아닌 정확한 공격 시간을 적은 후 다음 장군에게 전달
이런식으로 위조된 시간을 적더라도 방지할 수 있으며 설사 장군 1이 첩자더라도 그 뒤의 사람들은 모두 위조된 시간에 출전하기 때문에 성공적으로 적국을 공격할 수 있습니다.
이처럼 거래 내역을 담은 블록(Block)들은 특정한 작업으로 생성되며 점점 많은 블록들이 생성되어 연결(chain)되면 데이터 위변조가 방지되기 때문에 보안성이 높아집니다.
재밌게 읽으셨나요? 다음 포스팅에서도 재미있는 암호화폐 이야기를 들고 찾아뵙겠으니 기대해주세요!
감사합니다.
[1] 분산원장 : 분산원장 (공유원장, 또는 분산원장기술) 은 복제, 공유 또는 동기화된 디지털 데이터에 대한 합의 기술이다. 이때 데이터들은 지리적으로 여러 사이트나, 여러 국가 또는 여러 기관에 분산되어 있게 된다. 즉 중앙집중적인 관리자나 중앙집중의 데이터 저장소가 존재하지 않고 기능이 동작하게 된다.
결국 사용자 개인간 직접 접속(peer-to-peer) 네트워크가 필요하며 당연히 노드 간 복제 데이터에 대한 합의 알고리즘이 수행되어야 한다. 이러한 설계의 한가지로 블록체인 시스템이 있는데, 공개적 형태와 사적 형태로 운영할 수 있다. 모든 분산원장 기술이 분산노드간의 안전하고 올바른 합의를 달성하기 위해 블록의 체인을 만들 필요는 없다. 블록체인은 그런 분산원장을 구현하기 위한 하나의 데이터 구조일 뿐이다.
출처 : 위키백과
🔴 채널링크
공식 홈페이지 : http://firmachain.org/
트위터 : https://twitter.com/firmachain
미디엄 : https://medium.com/firmachain
텔레그램(알림채널) : https://t.me/firmachain
텔레그램 커뮤니티 : https://t.me/firmachain_global
카카오 플러스 : http://pf.kakao.com/_FAKgxb