SW/블록체인

블록체인 : EOS가 DPoS를 합의 알고리즘으로 채택함으로써 발생할 수 있는 여러 이슈들과 EOS 네트워크에서 일어날 수 있는 공격

얇은생각 2022. 2. 11. 07:30
반응형

DPOS Tradeoffs

이번 모듈에서는 EOS에서 사용하는 DPOS의 Tradeoff과 EOS에 일어날 수 있는 공격들에 대해 살펴보겠습니다. 이제 DPOS의 Tradeoff 두 가지에 대해 간단히 살펴보겠습니다. 앞서 말한 대로, DPOS는 지분을 가진 사람이 일부 사람에게 자신의 결정권을 위임하기 때문에, “Controlled semi-centralization”이라고 할 수 있습니다.

여기서 기존의 PoW나 PoS에서 항상 문제가 되어 왔던, “의사 결정의 효율성과 속도”라는, 중앙화의 장점을 잡을 수 있게 되고, 또 지분을 가진 사람으로부터의 선출이라는 점에서 탈중앙화의 장점 또한 잡게 됩니다. 하지만, 그래도 기존의 방식과 비교했을 때 “중앙화된다”는 점에서 일부 사람들은 DPOS를 지지하지 않습니다.

또한, ‘중앙화의 정도’가 결정되는 데 관여하는 문제인 “몇 명의 후보를 블록 생산자로 선출해야 적당히 효율과 탈중앙화를 잡을 수 있는가” 또한 중요한 문제가 될 수 있겠습니다. 

 

 

 

Nothing at Stake

블록체인 : EOS가 DPoS를 합의 알고리즘으로 채택함으로써 발생할 수 있는 여러 이슈들과 EOS 네트워크에서 일어날 수 있는 공격 1

 

At Stake라는 말은 ‘위험에 처하다’라는 뜻입니다. 따라서 nothing-at-stake는 ‘아무것도 위험에 처하지 않는다’라는 뜻입니다. 이는 노드의 입장에서 말하는 것인데, 어떠한 악의적인 개입으로 유효해 보이는 블록체인이 두 개 이상 존재할 때, 노드들은 보상 확률을 높이기 위해 그 두 블록체인 모두에 블록을 생성하는 행위를 하게 된다는 것입니다. 이는 본래 PoS 방식의 문제입니다.

 

블록체인 : EOS가 DPoS를 합의 알고리즘으로 채택함으로써 발생할 수 있는 여러 이슈들과 EOS 네트워크에서 일어날 수 있는 공격 2

 

하지만 DPoS는 이러한 공격에 취약하지 않습니다. 일정 수의 대표가 매 라운드마다 선출되어, 순서대로 블록을 생성하기 때문에 가장 긴 블록을 형성함으로써 체인에 공격을 가하기는 힘듭니다. 또한 다수의 대표들이 악의적으로 몰래 체인을 형성하고 있더라도, 정직한 소수의 대표들이 있다면 체인의 길이에 의해 공격을 성공할 수가 없습니다.

PoS는 자신이 가진 지분에 비례하여, 투표에서의 힘을 가집니다. 매우 적은 지분을 가진 사람들은 투표를 하는 방법에 대해 찾아보며 노력한 것에 상응하는 보상을 받기는 어렵습니다. 이러한 현상으로 인해, 전체 지분의 10퍼센트만이 블록의 투표에 참가하였다면, 5퍼센트의 지분을 가진 ‘고래’가 이를 악용할 수 있는 문제가 생깁니다.

 

블록체인 : EOS가 DPoS를 합의 알고리즘으로 채택함으로써 발생할 수 있는 여러 이슈들과 EOS 네트워크에서 일어날 수 있는 공격 3

 

그러나 DPoS의 경우, 자신의 지분에서 나오는 투표권을 위임할 수 있기 때문에, 간접적으로는 전체 투표율에 기여하게 됩니다. 따라서 단순히 5퍼센트의 소유만으로 블록 형성에 큰 관여를 할 수 있었던, ‘중앙화’의 위험에서 벗어날 수 있게 됩니다.

 

블록체인 : EOS가 DPoS를 합의 알고리즘으로 채택함으로써 발생할 수 있는 여러 이슈들과 EOS 네트워크에서 일어날 수 있는 공격 4

 

DPoS에서는 블록 생성 권한을 토큰 소유자로부터 위임 받기 때문에, 많은 사용자로부터 권한을 위임 받을수록 자신이 블록 생성 노드가 될 확률이 높아지고, 더불어 채굴로 인한 보상을 받을 가능성도 커집니다. 이를 이용해, 일부 노드가 “나에게 투표하면 내 채굴 보상의 일부를 나눠주겠다”라며 접근했고, 일곽에서는 가장 많은 보상을 주는 노드를 알려주는 사이트까지 등장했습니다.

하지만 이는 DPOS 네트워크를 궁극적으로 발전시키지 못하며, 보안 상 큰 문제를 야기할 수 있습니다. 악의적인 의도로 사용자로부터 권한을 위임받아 블록을 생성할 수 있는 것입니다. 이는 실제로 Steemit이나 List 같은 다른 DPOS 기반의 블록체인에서 일어났던 일입니다.

EOS는 하지만 이 문제로부터 안전합니다. EOS 네트워크에 참여하는 모두가 동의해야 하는 “EOS 헌법”에는 “투표권을 사지 말아야 한다”라는 조항이 명시되어 있습니다. 따라서 Bribing Attack을 시도하는 노드는 바로 네트워크에서 퇴출당할 것입니다. 기본적으로 블록 생산자들은 DPOS 네트워크에 자신의 CPU나 네트워크 등의 리소스를 제공합니다.

 

블록체인 : EOS가 DPoS를 합의 알고리즘으로 채택함으로써 발생할 수 있는 여러 이슈들과 EOS 네트워크에서 일어날 수 있는 공격 5

 

여기서 문제가 발생할 수 있는 부분은 이렇게 거대한 리소스를 제공하는 BP가 블록 생산에서의 실수에 의해 쫓겨났을 때입니다. 거대한 리소스가 한 번에 사라지면 네트워크의 능력은 현저히 떨어집니다. 블록 생산 수, EOS 소유량마다 제공하는 리소스 자원이 큰 폭으로 줄어들고, 전체 DPOS 네트워크는 결국 운영에 힘이 부치게 됩니다.

새로 선출된 BP가 기존의 BP와 같은 리소스 능력을 가지고 있으리라는 보장도 없습니다. 아직 실제 사례는 없지만, 전체 네트워크를 손상시킬 수 있는 한 가지의 방법은 이와 같이 거대한 리소스를 가진 BP를 퇴출시키는 것입니다.

 

블록체인 : EOS가 DPoS를 합의 알고리즘으로 채택함으로써 발생할 수 있는 여러 이슈들과 EOS 네트워크에서 일어날 수 있는 공격 6

 

DPoS에서는 블록을 생성하는 대표자의 수가 적기 때문에, 그들이 단합할 수 있습니다. 단합으로 저지를 수 있는 첫 번째 가능성은 Censorship입니다. 이는 블록을 형성하는 대표들이 유효한 transaction을 거부하는 것입니다. 소수의 블록 제작자가 자신의 차례에 이러한 일을 벌인다면, 블록은 거절당할 것이며 단순히 블록이 몇 초 늦게 만들어지는 정도의 타격만 줄 수 있을 것입니다.

그러나 블록 제작자는 그들의 명성, 미래의 수입 등 많은 부분에서 큰 타격을 입게 될 것입니다. 또 가능성 있는 공격은 protocol을 변경하는 것입니다. 악의적인 블록 제작자는 블록 생성 보상 변경, 특정 지분 소유자 추방 등 여러 일을 벌일 수 있습니다.

 

블록체인 : EOS가 DPoS를 합의 알고리즘으로 채택함으로써 발생할 수 있는 여러 이슈들과 EOS 네트워크에서 일어날 수 있는 공격 7

 

그러나 DPoS에서 이를 막기 위해 protocol의 변경을 위해서는 21명 중 17명 이상의 동의를 요구하고 있습니다. 또 다른 가능성 있는 공격은 이중 지불 공격입니다. 이러한 세 가지의 경우 모두 대다수의 대표들이 악의를 가지고, 협동한다면 충분히 벌어질 수 있습니다.

DPoS의 경우, 블록을 형성하는 대표들의 IP 주소 및 순서가 각 라운드마다 무작위로 결정되어 알려져 있기 때문에 충분히 공격의 대상이 될 수 있습니다. 하지만 이러한 DPoS는 블록 생성자가 자신이 블록을 만드는 턴에 공격에 의해 지속적으로 공격을 받아 블록을 생성하지 못하게 되더라도, 예비 블록 생성자가 이를 대신할 수 있도록 준비하고 있습니다.

DDoS 공격을 성공하기 위해서는 한 번에 대다수의 대표들이 블록을 생성할 수 없도록 막아야 하는데, 블록의 생성자가 매 라운드마다 바뀌기 때문에 이 또한 일시적인 타격에 불과하게 됩니다. EOS에서는 21명의 BP 중 한 BP가 제 기능을 못하게 되면 그 다음으로 투표를 많이 받은 22번째 BP(예비 BP)가 진짜배기 BP가 됩니다.

 

 

 

참조

http://www.kmooc.kr/courses/course-v1:POSTECHk+CSED490U1+2021_T1/about

 

블록체인 입문

블록체인과 암호화폐 기술을 깊이 배우기에 앞서, 비 전공자들도 이해를 할 수 있는 수준으로 블록체인과 암화화폐에 대한 high-level 설명 및 응용 예시를 제공하고 실제 상황에 적용할 수 있다.

www.kmooc.kr

 

반응형