카르다노는 페이크 스테이크 공격에 대한 보안을 갖춘 플랫폼
논문의 사독을 거친 설계는 우로보로스가 많은 프루프 오브 스테이크 블록체인에 영향을 미치는 결함과는 무관하다는 것을 의미한다.
출처: https://iohk.io/blog/cardano-is-secure-against-fake-stake-attacks/
저자: 필립 칸트 박사
게재일: 2019월 1월 29일
ADA는 지난주 미국의 연구자들이 '가짜 스테이크 "공격에 대한 취약성이 있다고 평가한 26 종류의 암호통화에 들어갈 수 없는 코인이다(각주1). ADA의 기초가 되는 카르다노 블록체인은 프루프 오브 스테이크에 의거한 것이나, 우로보로스 프로토콜은 비트코인의 코드를 사용하지 않고, PoSv3문제(각주2)의 영향을 받지 않는다. 이것은 단순히 운이 좋다는 것이 아니라, 카르다노의 개발 기간 동안 철저하게 공식적인 검증을 받은 데 따른 결과이다.
취약성
취약성에 대해서는 첫 번째 기사에서 자세히 설명하고 있다. 카르다노가 그 영향을 받지 않는 이유를 이해하기 위해 여기서는 취약성의 본질을 요약해 둔다.
PoSv3는 누가 블록을 생성할 자격이 있는 지를 판정할 목적으로 해시 파워를 스테이크로 대체하는 것을 시도하는 비트코인 코드를 개량한 것으로, 앞서 언급한 취약성이 있는 시스템들은 모두 PoSv3을 사용하고 있다. 원래 비트코인 코드으로는 누가 다음 블록 생성에 착수할 지의 결정이 순수하게 해시 파워를 기반으로 이루어지며, 적절한 무작위 숫자를 찾아 가장 먼저 올바른 해시를 획득한 자가 그 자격을 가질 수 있다.
PoS 시스템에서는 블록 생성이 가능한 확률은 사용자가 시스템 내에서 소유하고 있는 스테이크 양에 비례한다. 즉, 사용자가 소유한 스테이크가 많을수록 다음 블록 생성으로 이어질 확률이 높아진다. 이 기능성을 모방하기 위해 PoSv3는 "스테이킹 거래 '라는 형태로 사용자가 후보로 되는 블록에 추가 정보를 추가할 수 있도록 한다. 자신의 스테이킹 거래에서 사용가능한 토큰이 많으면 많을 수록 올바른 해시를 획득할 수 있게 되기 때문에, 다음 블록을 생성하는 권리를 얻기 쉬워진다.
PoSv3는 이렇게 블록 생성 권리와 스테이크를 잘 결합시키기는 하지만, 블록의 검증또한 어려워진다. (비트코인과 같이) 블록 자체의 해시에 대한 검증이 필요할 뿐만 아니라 사용자의 스테이킹 거래에도 검증이 필요하다. 즉, 사용자가 스테이킹 거래에 사용한 토큰은 실제로 사용자가 소유하고 있던 것이 되는 것일까? 이 정보를 검증하기 위해서는 블록체인 노드가 원장을 언급할 수 있어야 또한 블록이 단순히 현재의 체인을 확장하는 것이 아닌 경우에는 원장의 기록까지도 참조할 수 있게 할 필요가 있다. 그것은 저장도 되지않을 뿐만 아니라 계산 비용도 저렴하지 않기 때문에, PoSv3 시스템상의 블록은 바로는 검증되지 않고 약간의 시행 착오를 통과하는 경우, (적어도 일부는) 메모리 또는 디스크에 저장되게 된다.
처음 기사에서 살펴 본 취약성은 여러 가지 방법으로 검토할 수 있지만, 최종적으로는 앞에서 말한 시행착오를 불필요하게 거듭해 많은 무효한 블록을 노드에 제공하게 되며, 그렇게 되면 노드의 메모리와 저장 공간이 없어져 블록이 무효인지 여부를 정확하게 확인할 수 없게 되어 버린다.
왜 카르다노는 다른가
IOHK은 카르다노에 관해서는 다른 방식을 취하고 있다. 비트 코인으로부터의 미미한 변화를 목표로하는 것이 아니라, 세계적인 학자와 연구자들이 새로운 프로토콜이나 데이터베이스를 처음부터 만들어내는 것에 모험을 걸고 있다. 그러한 요구에 따라 비트코인과 동등 이상의 보안을 제공하고 전면적으로 스테이크에 의존해야 한다. 그 결과물이 우로보로스 프로토콜(각주 3)이며, 카르다노가 구축되는 기초가 되는 아마도 최초의 PoS 프로토콜이다.
우로보로스의 기본 설계는 매우 간단하고 시간은 슬롯이라고 불리는 별도의 증분으로 분할 되고, 그러한 슬롯은 그것보다 긴 에포크라고 불리는 기간으로 그룹화 된다. 각각의 에포크 시점에서 추첨에 의해 모든 슬롯에 대한 블록을 생성할 사람을 결정한다. 이 추첨은 내재적인 상태를 대신하여 예를 들면, 누구든지 최초로 올바른 해시를 획득한 사람이 이기고, 추첨은 분명하게 된다. 생성된 랜덤 숫자에 의해 각 슬롯의 슬롯 리더가 결정되고 또한 정해진 슬롯에서 이길 확률은 관리하는 스테이크에 비례한다(각주 4).
이 프로토콜에서는 블록이 올바른 보유자에 서명되어 있는지를 검증하는 것 또한 간단하다. 즉, (일시적인 분기의 경우는 변하지 않음) 현재의 에포크에 관한 리더의 일정만이 요구된다. 이것은 페이크 스테이크 공격에 취약한 PoSv3시스템과는 대조적으로, 블록 헤더를 획득하면 각 노드에 의해 실현된다.
간단히 말해서, 카르다노는 근본적으로 다른 시스템을 기반으로 하기 때문에 페이크 스테이크 공격에 대한 보안성이 강하다. PoSv3 암호통화는 프루프 오브 워크 (PoW) 시스템에서 실행되고 있고, 내재적인 리더 선거에 스테이크를 고려하도록 수정되면, 문제가 되고 있는 취약성은 그 수정의 결과 발생하는 것이고, 복잡한 문제를 안게 된다.
카르다노는 근본적으로 다른 기초가 있을 뿐만 아니라 그 기초는 다양한 사독을 거친 학술 논문들의 산물이며, 연구자와 개발자 간의 전대 미문의 협력의 결과이다. Cardano의 곧 출시 될 Shelley 공개를 만드는 공식적이고 준공식적인 방법을 통해 코드 레벨에서의 구축이 사독을 통한 연구 논문에 설명된 프로토콜과 분명히 일치하며, 설계에 따른 안정성과 보안성을 구축하고 PoSv3의 문제를 피할 수 있다. PoSv3의 문제는 Ouroboros와 같이 철저히 입증된 맞춤형 프로토콜을 만드는 대신 기존 프로토콜을 수정한 결과로 발생하고 있다.
각주
-
‘“Fake Stake” attacks on chain-based Proof-of-Stake cryptocurrencies’ 일리노이대학교 어배너-섐페인 분산시스템 연구실, Sanket Kanjalkar, Yunqi Li, Yuguang Chen, Joseph Kuo와 Andrew Miller.
-
정확하게 말하면, 카르다노는 다가올 Shelley 공개에서는 다음의 고찰을 목표로 한다. 현재 전개되고 있는 Byron 공개 연동 설정에서 실행되고 있기 때문에 어느쪽이든 이런 종류의 공격은 기능상 보호되어 있다.
-
현재 우로보로스 프로토콜에는 몇 가지 변형이 있다. 여기에서 우로보로스 이전 버전에 한정하여 고찰하고 있지만, 일반론으로는 전체 변형에 대해 언급하며, 특히 우로보로스 · 프라오스은 Shelley 공개에 사용되는 프로토콜이 될 것이다.
-
정확히 말하면 정해진 에포크를 위한 리더 선거에서는 에포크가 개시되기 전의 시점에서 스테이크 배분을 사용하며 에포크 경계에서 임시 분기가 있는 경우에 가혹한 공격과 일정의 재계산을 방지한다.
번역: Paul Ko