암호화폐에 대한 흥미로운 이야기 (1) — 비잔틴 장군의 문제

FIRMACHAIN
FIRMACHAIN
Published in
5 min readAug 28, 2018

안녕하세요. 탈중앙화 계약서 플랫폼 FirmaChain의 커뮤니티 매니저 Robert Han입니다. 많은 분들이 다양한 코인에 대해서는 알고 있지만 정작 기반이 되는 블록체인에 대해서는 잘 모르시는 분들이 많습니다.

좀 더 많은 분들이 블록체인 산업에 관심을 가질 수 있도록 앞으로 FirmaChain 소식 외에도 블록체인에 대한 이야기를 흥미롭게 풀어서 설명드리고자합니다. 그 밖에도 암호화폐 세계에서 일어난 재미있는 사례들도 포스팅하겠습니다.

오늘 첫 번째 이야기는 비잔틴 장군의 문제입니다.

· 비잔틴 장군의 문제 (Bizantine Generals Problem)

비잔틴 장군의 문제는 레슬리 램포트와 쇼스탁, 피스가 공저한 1982년 논문에서 처음 언급된 문제입니다. 완벽한 분산원장[1]을 이루기 위해서 반드시 해결해야했던 문제로 과거 컴퓨터 공학 난제 중 하나였습니다. 비트코인 창시자 나카모토 사토시 역시 위 문제와 마주했고 블록체인 개념을 생각해냄으로써 문제를 해결하였습니다.

비잔틴 장군으로 정한 이유는 논문 발표 시 모든 사람이 불쾌해하지 않을 나라로 선택해야 했기 때문입니다. (출처 : 위키피디아)

비잔틴 장군의 문제에 가정된 규칙은 다음과 같습니다.

  • 비잔틴 제국의 장군들은 서로 멀리 떨어져있으며 각각 1,000명의 병력을 가지고 있음
  • 적국은 2,000명의 병력을 갖고 있으며 성공적인 공격을 위해서는 적국보다 많은 병력이 같은 시간에 공격해야함(3명 이상의 장군이 필요)
  • 사령관 및 장군들은 가장 인접해 있는 장군 한 명에게만 전령을 보내 공격 시간을 전달할 수 있음
  • 이 때, 장군들 중 첩자가 있으며 첩자는 받은 정보를 위조해서 전달할 수 있기 때문에 서로 신뢰할 수 없음

서로 신뢰가 불가능한 상황에서 어떤 방법을 사용해야 성공적으로 적국을 공격할 수 있을까요?

나카모토 사토시는 ‘특정한 작업’을 했음이 증명되면 ‘신뢰’와 ‘합의’를 보장하여 거래를 할 수 있게 만듬으로써 위 문제를 해결했습니다.여기서 ‘특정한 작업’이란 거래를 하고자 하는 사람이 가진 노력과 본인의 자원을 소비하는 행위입니다.

이것을 비잔틴 장군의 문제에 대입해보겠습니다.(장군2는 첩자라고 가정)

  1. 먼저 사령관은 공격 시간을 적고 10분의 노력을 들여 암호화 작업 후(특정한 작업, 시간 소비)장군 1에게 전달
  2. 장군 1은 암호 해독 후 사령관이 적은 공격 시간과 진행한 암호화 작업 기록을 확인하면서 신뢰하게됨
  3. 뒤를 이어서 공격 시간을 적고 10분의 노력을 들여 암호화 작업 후 장군 2에게 전달
  4. 첩자인 장군 2도 암호 해체 작업 진행 후 위조된 시간을 적어 전달
  5. 장군 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

--

--