Ouroboros Genesis: 카르다노를 비트코인의 보안 수준으로 - 수라즈, 2023년 1월 31일

image

우로보로스 제네시스(Ouroboros Genesis)는 매우 기대되는 Cardano의 합의 프로토콜 업그레이드이다. 현재 Ouroboros Praos 프로토콜에 대한 이 업데이트는 무비용 시뮬레이션 문제와 부트스트래핑 문제를 해결하고 탈중앙화된 개방형 환경에서 장거리 공격(long-range attacks)의 위협을 완화하도록 설계되었다. 현재 PoS 블록체인에는 이러한 기능이 없다.

따라서 첫 번째 원칙 관점에서 이 주제를 이해하기 위해 기초부터 시작하겠다!

비트코인은 어떻게 작동하는가?


출처: Proof of work: what is it, and how does it figure into bitcoin halving?

비트코인은 작업 증명(PoW)을 통해 강력한 보안을 보장하는 변경 불가능한 트랜잭션 원장을 사용한다. 작업 증명(PoW)을 사용함으로써 암호화 해시 기능을 통해 높은 수준의 보안을 제공하고, 동적 가용성을 허용하는 탈중앙화 네트워크 구조를 가능하게 한다.

강력한 보안 보장에도 불구하고 비트코인의 광범위한 채택은 특히 에너지 효율성 및 결합성(energy efficiency and composability) 측면에서 몇 가지 심각한 한계를 시사했다.

작업 증명의 비효율성과 결합성의 한계

PoW는 더 많은 당사자가 네트워크에 참여할수록 점점 더 어려워지는 퍼즐 해결 시스템에 의존한다. 이것은 더 많은 사람들이 비트코인에 참여하고자 할수록 네트워크를 보호하기 위해 더 많은 컴퓨팅 성능이 필요하다는 것을 의미한다. 이로 인해 미래 네트워크에 대한 주요 관심사가 된 에너지 수요계속 증가하고 있다.

결합성 이슈는 의도하지 않은 결과를 초래하거나 또는 의도한 기능을 손상시키지 않고, 서로 다른 프로토콜이나 시스템이 원활하게 함께 작동할 수 있는 능력을 말한다. 비트코인과 같은 작업 증명(PoW) 블록체인 시스템의 맥락에서, 다른 프로토콜이나 시스템이 비트코인 ​​채굴 프로세스와 동일한 암호화 퍼즐 해결 절차를 해결하는 데 의존할 때 결합성 이슈가 발생할 수 있다. 이로 인해 채굴자는 다른 프로토콜과 비트코인 ​​모두에 대해 동일한 해시 쿼리를 사용하여 잠재적으로 노력의 가치를 두 배로 높일 수 있다. 이로 인해 전체 시스템의 비효율성과 잠재적 보안 취약성이 발생할 수 있다.

대안으로서의 지분 증명(PoS)

PoW의 이러한 한계로 인해 원장을 보호하고 네트워크의 효율성을 향상시키기 위한 대안 메커니즘을 찾고 있었다. 이로 인해 물리적 자원(해싱 파워) 대신 가상 자원(지분)을 사용하여 네트워크를 보호하는 지분 증명(PoS) 시스템이 도입되었다.


출처: What is Proof of Stake? Learn more about this other consensus algorithm

PoS 시스템은 블록체인을 확장하기 위해 컴퓨팅 성능을 요구하는 대신 당사자가 소유한 코인의 수에 따라 그렇게 할 수 있는 기회가 주어진다는 아이디어에 기반을 두고 있다. 이는 견고한 트랜잭션 원장의 기본 보안 기능을 유지하면서 확장성과 에너지 효율성을 향상시킬 수 있는 잠재력을 가지고 있다.

PoS를 기반으로한 여러 제안들이 시간이 지남에 따라, 필요한 속성들이 잘 정의 되었음을 입증하는 공식적인 보안 증명과 함께 개발되어왔다. PoS는 네트워크의 효율성과 확장성을 개선할 수 있는 잠재력이 있지만 몇 가지 장단점이 있다. 특히 이러한 프로토콜은 PoW 기반 시스템에 비해 참가자의 동적 가용성(dynamic availability)을 제한할 수 있다.

동적 가용성이란 무엇인가?

동적 가용성은 사용자 수가 증가하거나 네트워크 상태가 변경되는 등 조건이 변경되더라도 액세스 및 사용 가능한 상태를 유지하는 시스템의 능력을 의미한다. 동적 가용성 시스템에서는 리소스와 기능을 실시간으로 조정하거나 재구성하여 변화하는 요구 사항을 충족할 수 있다. 이를 통해 시스템을 사용할 수 없거나 신뢰할 수 없게 되는 것이 아니라 조건이 변경되더라도 사용 가능한 상태로 유지할 수 있다.

비트코인의 맥락에서 동적 가용성은 네트워크의 전반적인 기능을 중단하지 않고 유연하고 지속적으로 변화하는 방식으로 네트워크에 참여하거나 떠날 수 있는 당사자(노드)의 능력을 의미한다.

이는 참여 노드 수와 컴퓨팅 파워의 변화에도 불구하고 네트워크가 일관되고 안정적인 수준의 보안을 유지하기 위해 컴퓨팅 파워를 동적으로 조정할 수 있기 때문에 가능하다.

더 많은 참여자가 네트워크에 참여하고 계산 능력을 추가함에 따라 이러한 수학 문제의 난이도가 증가하고 그 반대의 경우도 마찬가지이므로, 네트워크가 악의적인 공격자로부터 안전하고 탄력적으로 유지되도록 한다. 결과적으로 비트코인 ​​네트워크는 변화하는 조건에 적응하고 시간이 지남에 따라 보안과 안정성을 유지할 수 있으므로 동적 가용성을 가지고 있다.

현재 PoS 블록체인 시스템에는 동적 가용성을 제공하는 기능이 없다. 이를 이해하려면 PoW의 기능을 더 깊이 파고들 필요가 있다.

작업 증명(PoW)에 대한 기본 이해

PoW는 계산 리소스, 특히 해시 계산 처리과정을 통해 새 블록을 생성한다.

비트코인 블록체인에 블록을 추가하려면 계산 처리 능력을 사용해야 하므로 체인에 추가되는 각 블록에 대한 에너지 소비가 발생한다 .


출처: The Longest Chain - Blockchain Guide

체인 생성의 난이도(difficulty)는 체인의 길이에 따라 증가므로 블록을 생성하는 데 더 많은 계산 비용이 든다.


출처: The Longest Chain - Blockchain Guide

블록체인에 블록을 추가하려면 처리 능력이 필요하다는 뜻이므로, 따라서 더 긴 블록체인은 더 ​​많은 에너지를 사용하고, 노드는 항상 더 짧은 체인 대신 더 긴 체인을 선택한다.


출처: The Longest Chain - Blockchain Guide

전기 비용이라고 할 수 있는 이 비용은 부정직한 노드가 여러 개의 다른 블록을 생성하는 것을 방지한다. 결과적으로 노드는 항상 “가장 긴 체인”, 즉 가장 많은 에너지를 소비한 체인을 채택한다.

이를 통해 시스템에 합류하는 새로운 노드정직한 체인을 선택하는 것더 쉬워지고 , 네트워크(검증자)가 주어진 시간에 네트워크에 합류하거나 떠날 수 있다. 요컨대 이것은 비트코인 ​​네트워크의 동적 가용성을 가능하게 한다.

PoS 프로토콜의 근본적인 단점

지분 증명(PoS) 프로토콜은 작업 증명(PoW)보다 더 에너지 효율적으로 보이지만 특유의 보안 문제가 있다. 그 중에는 무지분 문제 / 무비용 시뮬레이션(nothing-at-stake problem / costless simulation)**이 있다.

PoS에서는 블록을 생성하는 데 물리적 자원이 필요하지 않기 때문에, 경쟁 체인마다 에너지 비용이 발생해야 하는 PoW와 달리, 비용 없이 여러 경쟁 체인을 생성하고 블록체인의 대체 이력을 구축할 수 있다.

무지분 / 무비용 시뮬레이션 (Nothing at Stake / Costless Simulation)


출처: Nothing at Stake / Costless Simulation - Blockchain Academy

무비용 시뮬레이션이라고도 하는 무지분 문제는 블록 생산자(block producer)가 블록체인의 두 브랜치 A와 B의 가능성을 평가하고 하나가 아닌 두 브랜치 모두에서 작업하기로 결정할 때 발생한다.

이로 인해 블록 생산자는 더 높은 기대 보상을 받고 가장 높은 지분을 포함하는 체인이 없어 네트워크가 정식 분기에 대한 합의에 도달하지 못하게 된다.

장거리 공격 (Long-Range Attacks)


출처: Nothing-At-Stake, Long Range Attacks & Dynamic Availability - CSPR Ghost Staking

장거리 공격은 검증자가 악의적 행위자로 인한 손실 위험이 없는공격 유형이다. 공격자는 기본 블록체인의 이전 지점에서 분기하여 긴 체인을 구축하여 이 체인에 블록을 계속 추가 한다. 이로 인해 새로운 참여자가 지원할 체인을 결정하기가 어렵다.

이를 완화하기 위해 블록체인을 따라 체크포인트가 설정된다. 신뢰할 수 있는 블록을 체크포인트로 지정하며 체크포인트 이전에서 시작하는 포크는 유효하지 않은 것으로 간주된다.

그러나 일정 기간 동안 오프라인 상태였던 검증자나 새로운 참여자의 경우 가장 긴 체인을 결정하기가 어려워 악의적인 체인에 참여할 가능성이 있다. 이로 인해 "부트스트래핑 문제"가 발생 한다.

기본적으로 부트스트래핑 문제는 새로운 검증자가 네트워크에 참여하여 잠재적으로 악의적인 체인에 참여하게 되고 장거리 공격에 대한 네트워크 취약성을 증가시키는 문제를 말한다.

PoS-BFT(Ethereum, Algorand 등) 프로토콜이 무비용 시뮬레이션 문제를 해결하는 방법

PoS BFT 프로토콜에서는, 프로토콜을 실행하는 노드 간에 모든 블록에서 합의에 도달하여, 생성된 각 블록이 충분한 동의를 받기 때문에 포크가 발생하지 않는다. 이렇게 하면 불일치를 해결할 필요가 없다.


출처: https://courses.grainger.illinois.edu/ece598pv/sp2021/lectureslides2021/ECE_598_PV_course_notes15_v2.pdf

그러나 프로토콜이 효과적으로 작동하기 위해서는 주어진 시간에 노드의 네트워크 참여 수준을 알아야 한다. 이것은 PBFT로서, 동적 가용성을 포기한다는 의미이다. 네트워크를 동적으로 사용할 수 있게 하고 동시에 참여 수준도 아는 것은 불가능하기 때문이다.

더욱이, 이더리움은 스테이킹된 코인을 동결하고 코인 슬래싱을 통해 페널티를 부과하는 등의 방법을 구현하여 네트워크 내에서 악의적인 행동을 해결하려 한다. 이 접근 방식은 악의적인 활동을 억제할 수는 있지만, 정직한 참가자의 코인 사용 능력을 제한하고 페널티 위험에 노출시켜, 네트워크에서 더 적은 지분을 가진 정직한 당사자의 참여를 저해하고, 그래서 네트워크의 탈중앙성를 감소시킨다.

무비용 시뮬레이션: Cardano가 이를 해결하는 방법

Ouroboros Praos는 Cardano에서 사용되는 현재 합의 메커니즘이며, 작업 증명(PoW) 또는 PoS-BFT 프로토콜과 같은 기존 합의 메커니즘과 비교하여 네트워크의 보안 및 무결성 보장을 위해 다른 접근 방식을 취한다.

보안의 핵심: VRF(Verifiable Random Function)

Ouroboros Praos는 **VRF(Verifiable Random Function)**를 사용하여 노드를 각 블록의 슬롯 리더로 선출한다.

각 에포크 이전에, 지분 분배 스냅샷이 생성되며, 이는 선거 내내 사용된다. 이전 에포크의 임의성 시드(randomness seed)는 의사 난수를 생성하기 위해 각 노드의 VRF에 대한 입력으로 사용된다. 번호가 가장 높은 노드가 슬롯 리더가 되어 블록을 생성하고, 그 번호를 블록 헤더에 암호화한다.


출처: https://dl.acm.org/doi/10.1145/3243734.3243848

다른 모든 노드는 자체 VRF를 이용하여 선거 결과를 검증한다. 슬롯 리더 선출의 결과블록이 서명되거나 노드가 선출될 때까지 공개되지 않는다.


출처: https://aft.acm.org/wp-content/uploads/2019/10/Ouroboros_AFT19_Tutorial.pdf

악의적 행위 방지

어떤 노드가 블록 생성 예정인데 오프라인 상태라면 기회는 그냥 넘어가고 다른 노드들은 이를 인지하지 못한다. 다른 노드(예: 공격자)가 블록을 생성하려는 시도는 네트워크에서 유효하지 않은 것으로 인식된다. 이것은 단기적인 관점에서 정직한 행동을 보장하는 데 도움이 된다.

각 에포크가 끝나면 블록 헤더에 암호화된 모든 숫자가 결합되어 다음 에포크의 임의성 시드를 계산하는 데 사용된다. 이것은 각 에포크에 걸쳐 반복되는 지분 분배 스냅샷, VRF, 그리고 임의성 시드 계산이란 끝없는 주기를 반복한다.

출처: https://aft.acm.org/wp-content/uploads/2019/10/Ouroboros_AFT19_Tutorial.pdf

현재 체인 선택 규칙


출처: IOHK | Ouroboros Genesis: A Provably Secure Proof-of-Stake Blockchain Protocol - YouTube

블록체인은 최장 체인 규칙(longest chain rule)을 통해 유지된다. 즉, 리더가 관찰한 가장 긴 체인의 끝에 블록을 추가한 후, 네트워크에 브로드캐스팅한다.

Ouroboros praos에서 노드는 새 체인이, 더 길뿐만 아니라, 로컬 체인에서 “k” 블록 이상 분기되지 않은 경우에만 로컬 체인을 업데이트한다[제한된 깊이 규칙].

PoS 환경에서 단순 최장 체인 규칙의 문제점

Ouroboros Praos와 같은 지분 증명(PoS) 프로토콜에서 가장 긴 체인 규칙이 작동하는 방식은 작업 증명(PoW) 블록체인에서와 동일하지 않다. PoS 프로토콜은 정직한 행동을 유지하고 신뢰할 수 있는 노드에서 오프라인 노드로 정보를 제공하는 데 도움이 되지만 여전히 장거리 공격에 취약하다.

시스템 충돌이나 네트워크 중단과 같은 예기치 않은 상황으로 온라인 노드 수가 감소하는 일이 발생하면, PoS 블록체인은 보안을 조정거나 블록을 생성할 수 없어, 결국 중단 된다.

출처:https://twitter.com/eUTxO_pro/status/1616983286739529730?s=20&t=J7LHpQ3xT2zyDBoUOWxekQ

이를 위해서는 시스템의 안전한 운영을 위해 추가적인 신뢰 계층이 필요하며 이는 탈중항화된 퍼미션리스 네트워크(permissionless network)에는 적합하지 않다. 결과적으로, 이 프로토콜은 실행을 위해 당사자를 임의로 호출할 수 있는 환경에서는 작동할 수 없다.

Ouroboros Genesis의 부트스트래핑 문제 해결: Plenitude Rule 소개

플레니튜드 룰(Plenitude Rule)은 Ouroboros Genesis와 함께 도입된 새로운 체인 선택 규칙이다. 체인이 서로 갈라지는 지점 이후 블록 분포가 가장 조밀한 체인 버전을 선택하여 부트스트래핑 문제를 해결한다.

Plenitude Rule의 작동 방식

Plenitude Rule: 연구원들은 대부분의 당사자가 프로토콜을 따르는 경우, 충분히 긴 시간 세그먼트에서, 해당 체인이 특히 포크 이후에 더 조밀해짐을 관찰했다. 그들은 분기 지점 직후의 대립 블록체인이 덜 밀집된 블록 분포를 보인다는 것을 증명할 수 있었다. 이 규칙을 사용하여 연결할 올바른 블록체인이 무엇인지 결정할 수 있다.

Plenitude Rule은 단일 노드가 가짜 체인을 생성하는 것을 불가능하게 만들고 장거리 공격을 방지하는 데 도움이 된다. 비슷한 길이의 여러 체인을 사용할 수 있는 경우 Plenitude Rule은 블록 분포와 관련하여 체인이 갈라지는 지점을 찾는다.


출처: https://aft.acm.org/wp-content/uploads/2019/10/Ouroboros_AFT19_Tutorial.pdf

그런 다음 체인의 이력에서 가장 최근의 과거를 기간으로 나누고 분기점 이후의 블록 분포가 가장 밀집된 버전, 즉 선택될 체인을 결정한다.


출처: https://aft.acm.org/wp-content/uploads/2019/10/Ouroboros_AFT19_Tutorial.pdf

Plenitude Rule의 이점

Plenitude Rule 덕분에, 네트워크에 새로 가입했거나 한동안 오프라인 상태 였던 노드는 정직한 당사자가 충분하다면 (재)가입하고 올바른 버전의 체인을 다운로드할 수 있다.

이는 부트스트래핑 문제를 해결하고 장거리 공격을 방지하는 데 도움이 된다. 또한 Plenitude Rule은 누구도 다른 사람의 슬롯 동안 블록을 생성하는 방법을 위조할 수 없도록 보장하여, 단일 노드가 가짜 체인을 생성하는 것을 불가능하게 만든다.

Ouroboros Genesis가 다른 PoS 프로토콜보다 Cardano를 더 안전하게 만드는 이유

Ouroborus 프로토콜의 향후 업데이트인 "제네시스 버전"은, 비트코인과 마찬가지로 정직한 다수가 참여한다는 가정하에 동기식 및 반동기식 환경 모두에서 지속성과 활성성(persistence and liveness)을 보장한다는 것이 수학적으로 입증된 최초의 PoS 프로토콜이다.

결론적으로, Ouroboros Genesis는 적어도 2/3의 정직한 참여자를 필요로 하는 다른 PoS 프로토콜(예: Ethereum Casper, Algorand)보다 Cardano를 더 안전하게 만들고 비트코인만큼 안전 하지만 훨씬 더 낮은 에너지 소비와 더 나은 성능을 제공한다.


* Source: Ouroboros Genesis: Bringing Cardano Closer to Bitcoin's Level of Security | AdaPulse
* 번역: 크립토베리 CryptoVeri@naver.com