본문으로 건너뛰기

비잔틴 장애 허용 (Byzantine Fault Tolerance)

이해

컴퓨터 공학에서 부분 시스템의 문제가 발생하여도 잔체 시스템은 정상적으로 운용하도록 설계하는 것. 이러한 시스템은 비잔틴 장애 허용한다 라고 말할 수 있다.

초기 우주 방사선에 의한 반도체 고장 문제 해결 방향의 지침 (비행기 항법 장치 등)

문제 사항

비잔틴 장애를 허용하는 시스템 설계를 위해 고려해야 할 문제는 크게 두 가지가 있음

두 장군의 문제

같은 진영에 속한 장군 A, B 사이에 적군 C가 있다.

이떄, A는 B에게 메제시를 전달하게 위해 A -> C -> B로 전달해야 하지만 적군 C에 의해 변조될 수 있다. (반대 B도 마찬가지)

그렇다면, 두 장군 A, B는 서로 동일한 수준의 합의에 도달하도록 만드는 알고리즘이 있는가? 에 대한 문제.

현재 그러한 알고리즘은 설계 불가능함이 증명됨

비잔틴 장군의 문제

두 장군이 아닌 다수의 장군이 존재하는 상황에서 발생하는 문제.

이떄, 동일한 수준의 합의를 달성하기 위해서는 2/3 이상의 신뢰 가능한 장군을 확보해야 하는데, 어떻게 확보할 수 있을까?

그렇다면 어떻게 이러한 문제를 해결할 수 있는가?

다양한 해결 방법들이 제시됨

비트코인 상에서는 참여자가 수만 명이 될 수 있기 때문에 사토시 나카모토 입장에서는 두 장군의 문제보다 비잔틴 장군 문제가 직접적인 장애물이었다 => 현실적인 비트코인 생태계에서는 두 장군의 문제를 고려할 필요가 없음, 비잔틴 장군 문제를 해결하는 것이 주요 난제라는 말 http://wiki.hash.kr/index.php/%EB%B9%84%EC%9E%94%ED%8B%B4_%EC%9E%A5%EC%95%A0_%ED%97%88%EC%9A%A9

해결 방법

합의 알고리즘

비잔틴 장애 허용 시스템을 위해 고안된 해결 방법 중 하나로 비트코인 작업증명(PoW)가 이 합의 알고리즘에 속함

비트코인 작업증명

특정 값 이하의 해시를 찾는 과정을 통해 해당 작업 참여를 증명하는 방식

Q와 W의 비트코인 네트워크 트랜젝션 발생 -> 채굴 (특정 값 이하의 해시를 찾는 과정을 통해 거래 내역 블록 생성) -> 채굴에 성공한 E는 비트코인을 보상

이떄, 채굴에 성공하는 E는 장비의 계산 성능에 영향을 받고 + 어느 정도 무작위의 범위에서 선정됨 (랜덤한 수학계산으로, 더 낮은 성능의 참여자가 특정 값 이하의 해시를 남들보다 먼저 찾아 보상받을 수도 있음)

이러한 메카니즘에선 악의적인 조직이 비트코인 네트워크 전체의 51%를 차지해야 작업 증명 과정에서 악의적으로 개입 가능

그러나 네트워크 전체의 51%를 장악은 현실적으로 불가능

따라서, 비잔틴 장군의 문제를 어느 정도 해결하였다고 볼 수 있음

PBFT

프랙티컬 비잔틴 장애 허용 알고리즘

참고 자료