밴드 뽀개기 Part 3

밴드는 탈 중앙 데이터 고버넌스를 추구하는 세컨드 레이어 오라클 솔루션을 추구한다.

밴드 프로토콜의 한국 담당으로 있으면서 많은 사람들에게 받은 컴플레인이 밴드 프로토콜 백서가 매우 어렵다는 것이었다. 물론 백서 번역에도 많은 문제가 있어서 수정을 할 것이지만, 밴드 뽀개기(밴드 프로토콜 뽀개기)세션을 통해서 밴드 프로토콜의 백서를 분해해볼까 한다.

Malicious Actors

악의적인 행위자를 어떻게 방지하고, 악의적인 행위자가 네트워크에 들어왔을 때 어떻게 처벌하고, 악의적 행위가 일어나더라도 네트워크를 보존할 수 있을 정도의 견고한 네트워크를 어떤 식으로 구축할 것인지는 모든 블록체인 프로젝트들이 고민하고 있는 부분이다.

블록체인 프로젝트가 이러한 고민을 해야하는 이유는 블록체인도 결국엔 인간들이 참여하는 생태계이기 때문이다. 애초에 모든 참여자들은 설계자가 의도한 대로 행동하는, 예측 가능한 존재들이 아니기 때문에, 블록체인 프로젝트들은 이러한 예측 불가능성을 사전에 방지하고자 여러가지 페널티를 부과한다.

Possible Attack Scenarios

밴드 프로토콜은 총 5개의 공격 가능 시나리오를 제시하였다.

데이터 제공자의 1/3 미만이 결탁하는 경우: 소수의 데이터 제공자들이 데이터 결과를 조작하기 위해서 공모 할 수 있으나, 1/3 미만의 데이터 제공자가 공격을 할 경우 이는 네트워크에 큰 영향을 미치지 않는다.

이는 다른 말로 하면, 제공자의 2/3은 솔직하게 활동하고 있다는 말이 되므로 비잔틴 장애 허용(BFT) 알고리즘을 통해 나머지 1/3의 악의적인 행위자를 무시하고서 데이터의 무결성을 인정하게 되는 것이다. 뭐, 이에 대한 것은 그렇게 새로운 개념은 아닌 것이, dPos 컨센서스 알고리듬으로 유명한 EOS가 처음 나왔을 때 부터 사용하던 개념이다. 즉, 데이터 제공자의 1/3미만이 결탁하게 되는 경우엔 밴드 프로토콜 운영 자체엔 큰 지장이 없을 것이다.

데이터 제공자의 1/3 이상이 결탁하는 경우: 이 경우엔 밴드 프로토콜은 유저들에게 데이터를 제공하는 것을 중단한다. 이와 관련해서 밴드 프로토콜의 백서를 참조해보자.

If more than one third of the providers provide bad data, the protocol will inevitably serve bad data to dApps. However, If such attack occurs and data becomes less useful, the value of token is essentially destroyed since there will no longer be any dApps willing to pay for such data. The “withdraw delay” mechanic prevents the data providers from converting dataset tokens to BAND prior to ordinary token holders. This ensures that data providers suffer the most from the governance group’s collapse.(Band Protocol White Paper pp. 21)

만약 1/3 이상의 데이터 제공자가 나쁜 데이터를 제공해준다고 하면, 디앱들에겐 굉장히 질 낮은 데이터를 제공해줄 것이 뻔하다. 하지만, 이런 일이 벌어지면서 데이터의 질이 낮아지면 디앱들은 해당 제공자들이 제공해주는 데이터를 사용하지 않을 것이고, 결국 해당 토큰의 가치는 낮아질 것이다. 또, 밴드 자체적으로 지원하는 ‘출금지연’ 메카니즘은 데이터 제공자가 제일 나중에 데이터셋 토큰을 인출하게 함으로써 데이터 제공자가 결탁을 통해 악의적으로 나쁜 데이터를 제공해줬을 때 가장 큰 손해를 보게 만든다.

여기서 말하는 ‘출금지연’ 메카니즘은 간단히 말하면 이렇다.

위 그림과 같이, 밴드 프로토콜은 기본적으로 Dataset Tokens을 들고있는 홀더들이 믿을만한 데이터 제공자에게 토큰을 스테이킹하는 구조이다. 프로토콜에선 일반 홀더들도 Dataset token을 들고있지만, 데이터 제공자들도 Dataset token을 들고 있는데, 다른점은 출금 가능 여부이다. 일반 홀더들은 자신이 원하는 시간에 아무때나 Dataset Token을 인출할 수 있다. 하지만 데이터 제공자들은 자신에게 스테이킹 한 모든 유저들이 인출을 하기 전 까지는 자신들의 토큰을 인출할 수 없다. 이 것이 바로 ‘출금지연’ 메커니즘이다.

만약 데이터 제공자가 악의적으로 나쁜 데이터를 제공해줬다고 가정해보면, 해당 데이터 제공자가 가지고 있는 Dataset Token의 가치도 떨어질 것이다. 디앱들이 질 나쁜 데이터를 사용할리 만무하기 때문이다. 그렇게 되면 해당 제공자가 가지고 있는 토큰의 가치는 점진적으로 떨어지게 될 것인데, 해당 제공자가 가지고 있는 토큰은 자신에게 스테이킹 한 유저들이 다 인출하기 전 까지는 인출을 할 수 없다. 이러한 페널티를 안고서 악의적인 행동을 할 수 있는 데이터 제공자는 굉장히 드물 것이다.

부유한 공격자: 사실 그렇다고 해서 프로토콜이 완벽하게 공격을 막을 수 있는 것은 아니다. 솔직히 말해서 악의적인 공격자를 무결하게 막을 수 있는 페널티는 이 세상에 존재하지 않는다. 예를 들어서 빌 게이츠(Bill Gates)가 죽기 전에 블록체인이 마음에 안들어서 Band를 살 수 있을 만큼 산 다음에 모두 데이터셋 토큰으로 바꾸고 결탁을 한다면 누가 막을 수 있을까? 밴드 프로토콜을 비롯한 모든 블록체인 프로젝트 설계자들은, 인간이 경제적으로 행동할 것이라는 대전제에 기반하여 프로토콜을 설계하지만 안타깝게도 인간은 경제적 동기만으로 움직이는 주체들은 아니다. 밴드 프로토콜 팀의 주장에 따르면 토큰을 발행하면 발행 할 수록 토큰의 가치가 비싸지는 본딩 커브의 특성상 부유한 사람이 밴드 프로토콜에 악의적으로 공격하기엔 너무 비용이 비싸기 때문에 공격이 어려울 것이다. 하지만, 정말로 부유한 공격자에겐 이러한 비용이 상대적일 수 있다. 우리가 간과하는 사실이 하나 있다면, 크립토 전체의 시총이 삼성전자의 시총보다 낮다. 이런 시장에서 진짜로 부유한 공격자가 나타난다면, 과연 감당할 수 있을까. 우리는 항상 실현 가능한 공격 벡터들을 분석하여 대응할 수 있어야 한다. 단순히 비용이 많이 들기 때문에 하지 않을 것이라는 반론은 정말로 터무니 없는 대응책이다.

우리는 오늘 악의적인 행위자와 프로토콜 자체적인 패널티에 대해서 알아보았다. 필자가 보기에 ‘출금지연’ 메커니즘은 dPos 알고리듬을 채택하는 프로젝트들이 참조해도 좋을 정도로 훌륭한 패널티 메커니즘이라고 생각한다. 반면, 부유한 공격자(Wealthy Attacker)를 방지하는 방법에 대해서는 밴드를 포함한 많은 프로젝트들이 좀 더 심도있게 고민해봐야 하는 문제인거 같다.

다음 시간엔, Dataset Token과 본딩 커브 인플레이션에 대해서 이야기 해보고자 한다. 아직 백서에서 업데이트 되어있지 않은 부분이라, 꼭 짚고 넘어가야 할 듯하다.

Telegram: https://t.me/bandprotocolKR

Kakao:https://open.kakao.com/o/gCAX91Cb

--

--