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

**URL:** <https://forum.cardano.org/t/ouroboros-genesis-2023-1-31/113893>\
**Category:** Translations\
**Tags:** korean, cardano, translation, ouroboros, pos\
**Created:** [2 February 2023 10:48 UTC](https://forum.cardano.org/t/ouroboros-genesis-2023-1-31/113893 "2023-02-02T10:48:14Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![CryptoVeri](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.cardano.org/cryptoveri/32/91508_2.png) [@CryptoVeri](https://forum.cardano.org/u/CryptoVeri)\
**Post date:** [2 February 2023 10:48 UTC](https://forum.cardano.org/t/ouroboros-genesis-2023-1-31/113893/1 "2023-02-02T10:48:14Z")

</div>

![image](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/1/3/13d321d2b8168e9e9f33d8670333a749137224f3.jpeg)

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

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

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

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/5/8/5876e18531cafa69a57cb380aacd6d41aeec9df6.png)  
출처: [Proof of work: what is it, and how does it figure into bitcoin halving?](https://forkast.news/proof-of-work-what-is-it-bitcoin-halving/)

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

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

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

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

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

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

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

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/5/4/54e0da19960aefb7f9f3bdd50fc10a3cb7ccface.png)  
출처: [What is Proof-of-Stake (PoS)?](https://www.ledger.com/academy/blockchain/what-is-proof-of-stake)

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

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

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

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

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

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

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

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

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

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

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

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/e/e/ee839a32b78834d6234448872a7d18f26cdb2e0f.png)  
출처: [Longest Chain | The Blockchain that Nodes Adopt](https://learnmeabitcoin.com/technical/longest-chain)

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

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/1/4/14804478faeef2abbe53346113f216c35de26907.png)  
출처: [Longest Chain | The Blockchain that Nodes Adopt](https://learnmeabitcoin.com/technical/longest-chain)

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

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/b/c/bcc99123a71e1817df7d98c1d020766c0c6483fd.jpeg)  
출처: [Longest Chain | The Blockchain that Nodes Adopt](https://learnmeabitcoin.com/technical/longest-chain)

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

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

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

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

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

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

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/b/0/b0c66b02bd26bf4eaa0ebff8fb2cf0807325a624.jpeg)  
출처: [Nothing at Stake / Costless Simulation - Blockchain Academy](https://blockchain-academy.hs-mittweida.de/courses/game-theory-blockchain/lessons/attacks-on-proof-of-stake-pos/topic/nothing-at-stake-costless-simulation/)

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

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

### **장거리 공격** **(Long-Range Attacks)**

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/8/4/84a0bd224276f756975d59d75075043d3300f66e.jpeg)  
출처: [https://ghoststaking.com/nothing-at-stake-long-range-attacks/](https://ghoststaking.com/nothing-at-stake-long-range-attacks/)

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

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

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

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

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

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

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/d/c/dca163eefeb526ce3897359f7708b45117dce6e4.png)  
출처: [https://courses.grainger.illinois.edu/ece598pv/sp2021/lectureslides2021/ECE\_598\_PV\_course\_notes15\_v2.pdf](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://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/3/5/354efef20c2387e15088a4984e9cd743c2c18e5f.png)  
출처: [https://dl.acm.org/doi/10.1145/3243734.3243848](https://dl.acm.org/doi/10.1145/3243734.3243848)

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

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/4/d/4db32512a6a54d130ccdb075b0a644389515a82e.jpeg)  
출처: [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)

### **악의적 행위 방지**

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

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

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/b/5/b517440df4b1e0a1355d043292d4ef20df87f92d.jpeg)

출처: [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)

### **현재 체인 선택 규칙**

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/a/9/a9c7f6ea3c4cc488561d2bd24ec1134134d8a184.png)  
출처: [https://www.youtube.com/watch?app=desktop&v=LCeK\_4o-NCc](https://www.youtube.com/watch?app=desktop&v=LCeK_4o-NCc)

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

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

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

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

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/8/8/88da653e51ed74859a079b43541e1dfce2b29320.png)

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

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/1/f/1f43b232ca4103ff3725d226af84a45e1624b631.png)

출처:[https://twitter.com/eUTxO\_pro/status/1616983286739529730?s=20&t=J7LHpQ3xT2zyDBoUOWxekQ](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://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/4/9/49f54276613d9cb6b95123699aa4ed1e691536a3.png)  
출처: [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)

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

 ![](https://us1.discourse-cdn.com/flex023/uploads/cardano/original/3X/a/c/ace4656a408b308731122251c048d81bc993e31d.png)  
출처: [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](https://adapulse.io/ouroboros-genesis-bringing-cardano-closer-to-bitcoins-level-of-security/)  
\* 번역: 크립토베리 [CryptoVeri@naver.com](mailto:CryptoVeri@naver.com)
