합의시스템 BFT
사실 합의시스템에는 블록체인보다 훨씬 이전에
전통적 합의방법이 존재합니다.
BFT(Byzantine Fault tolerant) 라고 불리죠.
단어에 대해서 하나씩 살펴보자면
Fault Tolerant 는 내결함성이라는 용어로 번역됩니다.
물론 이대론 무슨 소린지 알수가 없으니까
풀어쓰자면.. 결함이 생겨도 버틴다는 말입니다
좀더 구체적으로는 뭔가 결함이 생기더라도
성능의 저하는 있을지언정 여전히 기능을 수행합니다.
이 버티기는 노오오오오력이나 근성따위로 실현하는게
아니라 설계 자체가 그렇게 되어있습니다.
예를들어 정전이나도 백업발전기를 준비해뒀다면
정전에 대한 내결함성이 있는거고
컴퓨터 시퓨가 맛이 가더라도 듀얼 시피유 시스템이었다면
남은 하나로 여전히 일을 수행합니다.
앞의 것과 달리 남은 단어
Byzantine 비잔틴은 좀 연결이 안되는데
이는 단순히 누군가가
'비잔틴장군들 중에 배신자가 있을 경우.. 어쩌구 저쩌구'
하는 논문을 발표하는 바람에
그렇게 되어 버렸습니다. -ㅅ-;
즉, BFT란
시스템에 배신자(에러, 결함, 해킹)가 있더라도
남은 구성요소들이 결국 옳은 결론을 도출해내는 시스템을
말합니다.
소수의 잘못된 의견과 다수의 옳은 의견중 후자를
택하는 시스템이라는거니까
결국은 합의시스템이라고 할 수 있죠.
이러한 비잔틴 결함 방지 시스템은
실생활에도 꽤 많이 쓰이고 있습니다.
비행기라던가 원자력등 잘못된 정보하나로 쫄딱 망하는
크리티컬한 시스템에서 하나의 관찰자만 두는 것은
매우 위험하죠.
그래서 다수의 감시시스템을 마련하고 이들의
정보를 취합하는 형태입니다.
또한 BFT는 서로간의 논의를 통해 정보취합에
사전완결성을 부여합니다.
POW처럼 합의가 두개로 갈라져서 경쟁할 일도 없고
그 경쟁때문에 경쟁이 끝날때까지 미완결로 남지도 않습니다
근데 왜 나카모토 사토시는 이걸 안쓰고
POW로 갔으며 왜 사토시전에 블록체인이 나오지 않은걸까요
그 이유는
BFT가 완전한 탈중앙체제가 아니였기 때문입니다.
POW는 그냥 누구나 블록 만들어서 날리면됩니다.
다른이를 알필요도 없으며 서로간에 지속적 통신도
필요없습니다.
하지만
비잔틴 시스템은 올바른 결론의 도출을 위해
모든 이들과 여러번의 통신이 필요합니다.
보낸거 받음? -> 이거 맞냐? -> 맞는듯? -> 전송
이런식이죠.
서로간에 오지게 연락해서 말 맞추기에
여기서 사전합의가 일어납니다.
근데 '모든이들' 입니다.
참가하는 구성요소들 전원에게 메세지를 날리기위해선
전원의 신상명세를 파악하고 있어야합니다.
이미 '아무나' 상황이 아니죠.
많은 양의 메세지를 전원과 통신..
이는 매우 제한적 상황에서만 가능한 것입니다.
즉, 첨부터 BFT는 소규모 혹은 내부에서나
사용하는 시스템이지 대규모 네트웤인
인터넷에서 사용하는 것이 아니였다는거죠.
근데 왜 도로 블록체인으로 돌아왔는가?
이는 POW가 결국 속도의 한계를 극복하지 못하고
여러대안을 찾아 진화를 모색하다가
결국은 '타협'을 했기 때문입니다.
처음의 D는 Decentralize(분산) 였지만
지금에 와서의 D 라고 하면 Delegate(위임)가 떠오르는
현상이 바로 그것이죠.
도저히 전원의 참가에서 속도의 효율을 찾을 수 없었던
블록체인은 결국
참가자를 줄이는 것으로 타협을 시도합니다.
그리고 그 타협의 방법은..
결국은 인간사의 그것
간접민주주의에서의 '대표선출' 입니다.
주민들 1000명의 느린 의사취합 속도 대신
사전 선출한 10명의 의원의 빠른 합의를 선택한겁니다.
Dpos가 바로 그것이죠.
근데 극소수로 할 수 있는거면?
당연히 BFT를 안할 이유가 없죠.
그래서
그동안 프라이빗 체인안에서
위로부터의 임명으로 암암리 돌고 있던 BFT를 개조하여
아래로부터의 선출인 DPOS에 결합을 시도합니다.
그게 바로 텐더민트입니다.
결국
블록체인이 빨라지고, 정확해진 것은
단순히 진화를 통해서 단점을 제거한 것이 아니라
그동안 외치던 완전 분산화, 탈중앙을
일부 버려서 가능해진 것입니다.
이를 완탈만(완전 탈중앙화 만세) 진영에서는
타협 혹은 후퇴라고 볼 수 있겠지만
긍정적으로 보면 그동안 이상에 갇혀서 거부했던
합의를 이제 이룬것일지도 모르죠.
올해의 마지막엔 과연 블록체인이 어떤 모습일지..
기대가 되네요.
역시 완전한 탈중앙화는 어렵죠..
3년 전이나 지금이나 보면 결국 dpos가 합리적이고 효율적이라 굳이 완전 탈중앙화로 가는게 맞는지도 모르겠구요
공산주의 같이 이상입니다.
다만 DPOS도 선출방식이 너무 자본위주라 투표의 분산과 함께 적극적 선택으로 바뀌어야하죠.
SCT에 트윈버드님이 있어서 든든합니다.
캬오오-0-
'그동안 이상에 갇혀서 거부했던 합의를 이제 이룬 것인지도 모른다'는 생각이 재미있습니다. 중앙화에 대한 반발로 탄생한 시스템이 현실적인 제약 때문에 중앙화로 회귀한다면 결국 남는 가치는 무엇일지도 생각해보게 되네요. 포스팅 잘 봤습니다 :)