안녕하세요. 어미새입니다.
오늘은 비잔티움 장군 문제에 대한 개념정리를 하고자합니다!
그 누구도 믿을 수 없다..
A군은 예전부터 참새가 너무나도 작고 귀여웠습니다. 그런데 어느날 참새가 다 성장했을때도 저 크기인것인가? 참새의 새끼는 본적이 없는 것 같은데??
너무나도 궁금한 A군은 인터넷을 통해 참새는 원래 작은가요? 어른 참새도 저렇게 작은건가요?라고 네트워크에 연결된 사용자들에게 물어보기 시작합니다.
B군 : 저는 조류과를 다니고 있습니다. 사실 참새는 비둘기의 새끼입니다. 못 믿으실것 같아서 아래에 인증샷 및 위키 자료 첨부해 드립니다.
A군은 너무나도 큰 충격에 빠졌습니다. 내가 그토록 사랑스럽게 생각하고 아꼈던 참새가 사실 비둘기의 새끼라니..!?
혹시.. 여러분들중에서도 이게 사실이라고 믿는 분은 없으시죠? 비둘기의 새끼는 비둘기입니다...
그럼 왜 이런 이야기로 시작을 했을까요? "비잔티움 장군 문제" 는 분산 처리 시스템에서 발생할 수 있는 오류와 관련된 개념입니다. 그럼 지금부터 자세히 살펴보도록 하겠습니다.
비잔티움 장군문제
위키에 정의된 비잔티움 장군 문제의 정의부터 살펴보도록 하겠습니다.
비잔티움 장군 문제는 레슬리 램포트와 쇼스탁, 피스가 공저한 1982년 논문에서 처음 언급됐다.[1] 이 논문에서 저자들은 적군의 도시를 공격하려는 비잔티움 제국군의 여러 부대가 지리적으로 떨어진 상태에서 각 부대의 지휘관들이 (중간에 잡힐지도 모르는) 전령을 통해 교신하면서 공격 계획을 함께 세우는 상황을 가정하고 있다. 이 부대의 지휘관 중 일부에는 배신자가 섞여있을 수 있고, 배신자는 규칙을 충실히 따르는 충직한 지휘관들과 달리 규칙에 얽매이지 않고 마음대로 행동할 수 있다. 이 때 배신자의 존재에도 불구하고 충직한 지휘관들이 동일한 공격 계획을 세우기 위해서는 충직한 지휘관들의 수가 얼마나 있어야 하며, 이 지휘관들이 어떤 규칙을 따라 교신해야 하는지에 대한 문제가 비잔티움 장군 문제다.
스팀성을 함락하기 위해 공격을 준비하고 있는 스티미언들이 있습니다. 스티미언들을 이끄는 지휘관은 총 5명이고, 각 지휘관이 보유한 병력은 1,000명입니다. 스팀성에는 3,000명의 병사가 성을 지키고 있기 때문에 스팀성 함락을 위해서는 최소 4명의 지휘관이 동시에 공격 명령을 내려야합니다.
각 지휘관들은 지리적으로 떨어져 있는 상황속에서 동시에 공격을 할 수 있도록 전령을 통해서 서로 합의를 하고 있었습니다. 그런데 이때 내부의 배신자가 나타나 공격 시간을 교란한다면 각 지휘관들은 어떻게 정확한 공격시간을 판단할 수 있을까요?
즉 비잔티움 장군의 문제는 분산 처리 시스템(지리적으로 떨어진 부대)에서 어떤 데이터(전령)를 주고 받을때 통신의 문제가 발생하거나, 악의적으로 데이터를 조작하여 가짜 정보를 전달할 경우 시스템은 어떻게 올바른 정보를 가져올 수 있는지에 대한 문제를 제기한 이야기입니다.
자 그럼 오늘 학습한 내용을 정리해보도록 하겠습니다.
- 블록체인 네트워크에 연결된 사용자는 그 누구도 신뢰할 수 없다.
- 비잔티움 장군 문제는 결국 어떤 사용자가 악의적으로 데이터를 변경했을 경우 시스템에 치명적인 오류가 발생할 수 있다는 문제를 제기한 내용이다.
- 블록체인 네트워크에서는 이러한 오류를 방지하기 위해 다양한 합의 알고리즘이 존재한다.
이제 비잔티움 장군 문제가 어떤 내용인지 확실히 이해하셨죠? 다음 시간에는 비트코인에서 비잔티움 장군 문제를 어떻게 해결했는지에 대한 포스팅으로 찾아뵙도록 하겠습니다!
이상입니다! 읽어주셔서 감사합니다!
[참고자료]
블록체인, 암호화폐에 대해 공부하면서 읽었던 책 중에
이와 비슷한 내용이 있었던 것 같아요.
해결방법도 읽었었는데....기억이 안나요.ㅎㅎㅎㅎ
@yahweh87님의 다음 포스팅에서 찾겠네요.ㅋ
힛 다음 포스팅도 꼭 읽어야겠네요:)
즐거운 일요일보내세요~!
알던건데 기억이 안나는군요 ㅠㅠ
다음글을 기다리겠습니다.
넵 감사합니다:) 즐거운 스팀잇 하세요~ ^^
짱짱맨 태그 사용에 감사드립니다^^