블록체인의 비잔틴 장군 문제(Byzantine Fault Tolerance)

블록체인의 비잔틴 장군 문제(Byzantine Fault Tolerance)는 “비잔틴 장애 허용”으로 번역하면 개념에 혼란이 생기게 된다.

“비잔틴 결함 극복”으로 명명하는 것이 좋다.

Byzantine Fault Tolerance를 번역하면서  “허용” 이란 표현을 사용하면 원어를 찾아 보고 두번 생각해야 무슨 말인지 이해할 수 있다.

비트코인이나 블록체인에 대해 공부하다 보면 꼭 부딪히게 되는 문제가 있다.

그중 하나가 비잔틴 장군 문제(Byzantine generals problem)이다.

 

비잔틴 장군 상황

1. 비잔틴 장군들은 여러 방향에서 적군을 둘러싸고 있다.

2. 장군들은 적을 공격할 지, 후퇴할 지 결정해야 한다. 

3. 각 장군들은 멀리 떨어져 있기 때문에 전령을 통해 소통한다.

비잔티움 장군 문제 

1. 공격을 원하는 장군과 후퇴를 원하는 장군들이 있다.

→ 공격 또는 후퇴라는 일치된 합의가 필요하다. 합의 후 모든 장군들은 동시에 같은 행동을 해야 한다.

2. 장군의 전령에 포함된 내용이 여러 이유로 왜곡 된다. (먼 거리, 적군의 공격 등)

→ 왜곡된 메시지를 받은 장군들이 있기 때문에 일치된 의견을 도출할 수 없다.

3. 장군들 중에 배신자가 있어 전령의 내용을  의도적으로 바꾼다.

장군들은 어느 장군이 배신자인지 알 수 없다

 

수신된 정보를 믿을 수도 없고 믿지 않을 수도 없기 때문에 이와 같은 상황을 비잔티움 장군의 문제라고 부른다.

블록체인에서 비잔틴 장군 문제가 나오는 이유는 탈중앙화된 P2P 분산처리 시스템에서 어떠한 방법으로 보안성을 유지하는 지를 설명하기 위해서다. 그 문제를 해결해야만 시스템의 안전성을 확보할 수 있기 때문이다.

다시 말해 탈중앙화된 분산처리 시스템은 본질적으로 위와 같은 결함을 갖고 있기 때문에 그것을 해결하는 것이 핵심 과제가 된다.

비트코인의 경우는 그것을 작업증명 방식으로 해결한 것이다.

Byzantine Fault Tolerance란 것은 위와 같은 문제가 상존함에도 불구하고, 시스템이 악의적 공격에도 충분히 강해서 다수결에 기초한 합의를 도출할 수 있는 성질을 가진다는 것을 뜻한다.

그런데 이것을 비잔틴 장애 허용이라고 번역한다면 직역한 것인데, 우리말로는 언뜻 이해하기 어렵다. Tolerance란 이겨낸다는 뜻이지 허용한다는 뜻이 아님에도 불구하고 어찌해서 그러한 번역이 나오게 되었는지는 알 수 없다.

 

블록체인은 비잔틴 장애를 허용하는 시스템이다.

블록체인은 비잔틴 장군 문제를 이겨내는 시스템(비잔틴 결함의 극복)이다.

어느것이 의미가 잘 통하는가?

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다