지난 주 네덜란드의 첫 카르다노 밋업이 로테르담에서 열렸습니다. 아름다운 이벤트 공간과 놀라운 연사진에 네덜란드 커뮤니티에서 참석한 청중까지 압도적이어서 밋업이 성공적이었다는 말만으로는 부족할 따름입니다. 장소를 제공한 Blocklab과 커뮤니티 회원이신 @Ilhan, @bullish, @Andy_Hendrikx 님을 비롯해 밋업을 주관한 모든 분들께 특별히 감사를 전합니다!
이번 후기는2 부 중 1 부입니다. 본 요약에는 Bernardo David의 연설이 포함되며, 2부에는 Edsko de Vries의 발표도 이어집니다.
카르다노 재단의 Tom과 Jon이 프로젝트와 재단의 역할, 카르다노 커뮤니티를 간략히 소개하면서 밋업을 시작했습니다.
그 다음에는 Bernardo David가 연단에 올랐습니다. 베르나르도는 IOHK 연구원이자 도쿄 공업 대학의 조교수입니다. 그는 카르다노에서 사용되는 주요 합의 프로토콜인 우로보로스가 비트코인을 비롯한 다른 블록체인과 어떻게 다른지에 대해 발표했습니다.
소개 및 배경
베르나르도는 작업 증명(Proof-of-Work) 시스템에서 나타난 현안을 제시하며 시작했습니다.
- 작업 증명(PoW) 기반 시스템에서는 블록을 만드는 사람과 돈을 투자하는 사람이 같을 필요는 없습니다.
- 즉, 코인 보유자(토큰을 구입하여 시스템에 투자한 사람)와 전문 채굴자(채굴장을 운영하며 새로운 블록을 생성하고 수익을 얻는 사람) 사이에 구별이 있음을 의미합니다.
- 시스템 작동 방식을 제어하는 사람이 채굴자입니다.
- 제어하는 사람들이 블록체인을 파괴하고 성장시키며, 정책을 변경하고, 하드 포크를 발생시키는 등 여러 가지 작업을 할 수 있습니다.
- 채굴에 대한 보상도 줄어들고 있습니다.
- 비트코인에서 블록을 채굴하면 21만개 블록마다 그 절반을 보상합니다.
- 채굴 투자에 대한 인센티브도 감소한다는 의미이기 때문에 시스템이 채굴 작업에 의존할 때 문제가 됩니다.
- 보상이 제로일 때 해당 시스템에는 어떤 변화가 일어납니까?
- 셋째, PoW 시스템에서 네트워크 제어가 매우 중앙 집중화되어 있습니다.
- 비트코인 네트워크 전체가 소수의 중국 채굴장에서 처리되는 것으로 알려져 있습니다.
- 중국에서 규정이 변경될 경우 비트코인이 몰락 위기에 처할 수 있으며, 일반적으로 몇몇 큰 손들이 시스템을 관리하는 것은 바람직하지 않습니다.
- 게다가 한 사용자가 50 % 이상을 채굴할 수 있는 에너지를 가지고 있다면 이론적으로 전체를 좌우할 수 있습니다.
- PoW 시스템은 매우 에너지 집약적이어서 막대한 에너지 낭비가 발생합니다.
- 전체 비트코인 채굴 단지가 하루에 네덜란드보다 더 많은 에너지를 소비합니다.
- 지속 가능한 시스템을 만들려면 천연 자원 사용량을 줄이고 오염을 방지해야 합니다.
그렇다면 이러한 문제를 해결하기 위해 무엇을 할 수 있을까요?
- 한 가지 선택은 PoW에서 벗어나 다른 방법으로 옮기는 것입니다.
- 예컨대, 지분 증명(Proof-of-Stake)과 공간 증명(Proof-of-Space) 방식을 들 수 있습니다.
- Proof of Space (공간 증명)은 계산 대신에 저장 공간을 사용한다는 점을 제외하고는 작업 증명과 매우 유사합니다.
- 카르다노는 연구자와 IOHK가 에너지 낭비가 없는 모델로 이동하여 선택한 리소스를 사용해 시스템과 커뮤니티에 유익한 일을 하기를 원했습니다.
- 지분 증명은 시스템에 더 많이 투자하면 더 많이 통제할 수 있다는 개념에 근거합니다.
- 그리고 사용자는 프로젝트 진행 방식을 (투표 권한으로) 관리할 수 있습니다.
- 또한 지분 증명(PoS) 방식은 에너지 효율적입니다.
- 블록 생성에 필요한 것은 에너지나 데이터를 소비하지 않는 몇 가지 암호화 연산과 서명뿐입니다.
- 리소스 낭비가 없고, 사용자가 시스템을 제어하여 블록체인을 성장시킬 수 있습니다.
기본 구조: PoS는 어떻게 작동합니까?
지분 증명(PoS)이 어떻게 작동하는지 설명하고자 베르나르도는 토토로, 포르코, 로쏘, 치히로(그림의 왼쪽에서 오른쪽 순) 같은 지브리 캐릭터가 나오는 슬라이드를 사용했습니다.
- 슬라이드에서 보듯이, 토토로는 9 개, 포르코 로쏘는 6 개, 치히로는 15 개의 코인을 가지고 있습니다.
- 누구든지 더 많은 코인을 보유하고 있으면 (따라서 더 많이 투자할 수 있으므로) PoS 기반 시스템에서 더 많은 블록을 생성할 수 있어야 합니다.
- 누가 다음 블록을 만들 수 있는지 알아내기 위해 추첨이 진행됩니다.
- 동전을 많이 가질수록 추첨에서 당첨될 확률이 더 높습니다. 이 사례에서는 치히로가 그렇습니다.
- PoW 퍼즐을 해결해야 하는 비트코인 네트워크와 비교하여, 이 추첨 방식은 블록체인을 성장시키고 블록을 생성해야 할 때마다 실행됩니다.
- PoS의 첫 번째 가정과 기본 메커니즘은 치히로가 더 많이 투자하기 때문에 추첨에서 더 자주 당첨된다는 것입니다.
- 카르다노에서 블록을 생성하는 사람을 슬롯 리더라고 부릅니다.
- 모든 블록에는 시간 슬롯이 있습니다. 그 시간 동안 누군가 블록을 생성할 수 있습니다.
- 블록의 길이는 20초이며, 각 20 초 블록마다 해당하는 추첨이 있습니다.
- 카르다노에서 사용되는 프로토콜의 추첨 방식을 _슬롯 리더 선택 프로세스_라고 합니다.
이 분야에서 연구를 통해 기여한 바는 무엇입니까?
- IOHK 연구소에서 작성한 보고서 이전에는 아무도 이 시스템이 수학적으로 안전하다는 것을 증명하지 못했습니다.
- 매우 복잡한 증명이며, 3 년에 걸쳐 연구자들은 안전하고 공간의 다른 사람들이 수학적으로 입증하고 검증할 수 있다고 주장하는 시스템을 고안했습니다.
- PoS 기반 합의 프로토콜에 대한 공식 모델이 처음 등장했습니다.
- 그 다음에, 안전을 보장할 수 있는 최초의 PoS 기반 블록체인 프로토콜인 우로보로스가 처음 출시되었습니다.
- 우로보로스(Ouroboros)는 그리스 신화에 나오는 자신의 꼬리를 먹는 뱀을 뜻합니다. 블록체인은 스스로 자체에서 임의로 생성되기 때문에 기본적으로 이러한 맥락에서 사용되는 말입니다.
- 이 프로토콜에는 몇 가지 유의점이 있지만, 올해 우로보로스 프라오스가 이러한 문제를 해소하여 이전에 제안된 프로토콜의 보안과 효율성을 향상했습니다.
- 프라오스(Praos)는 고대 그리스 말로 휴식을 뜻합니다.
- 원래 프로토콜은 사용자가 항상 온라인 상태에 있고 메시지를 게시하며 신속하게 행동해야 하는 것으로 가정합니다. 하지만 프라오스는 새로운 제안을 통해 사용자가 보다 현실적인 환경에서 온라인과 오프라인을 오가며 더 편하게 이용할 수 있습니다.
- 프라오스는 실제 시나리오를 구현하면서 보안을 유지하는 방법을 찾은 성과였습니다.
우로보로스
- 첫 번째 제안은 동시성에 대한 가정을 세웠습니다. 모두가 (세계 어디서든 상관없이) 서로 동기화된 클록을 가지는데, 그래야 (추첨과 블록 생성 같은) 메시지를 언제 보낼지 알 수 있습니다.
- 이 가정을 감안할 때 상대가 시스템에서 지분의 50 % 이상을 통제하지 않는 한 비트코인만큼 안전하다는 것을 증명합니다.
- 또 다른 가정은 상대가 자동으로 사람들을 통제할 수 없다는 것입니다. 즉, 상대가 사용자를 해킹하거나 속이면 잠시 기다린 후에야 다음 계산이나 오염 지연을 해킹할 수 있습니다.
- 이러한 가정이 실제 가능할 것 같지는 않지만 먼저 간단한 시스템을 만들어야 한다는 것을 압니다.
프라오스가 이러한 가정을 어떻게 해결했는지 살펴보기 전에 먼저 베르나르도는 추첨하는 방식과 프로토콜의 일반적인 메커니즘을 설명했습니다.
추첨은 어떻게 이루어집니까?
- ‘사토시 프로토콜 준수’ 원칙에 따릅니다.
- 이 절차를 통해 사용자가 가지고 있는 코인의 수에 비례하는 확률로 모든 사용자 중에서 한 명을 선택할 수 있습니다.
- 기본적으로 임의값(달리 씨드값으로 명칭)을 취하는 암호 해시 함수(H)로 시작합니다.
- 그러면 ‘i’ 수가 출력됩니다.
- 이 i 값은 블록체인의 전체 사토시 수와 0 사이에 있습니다.
- 사토시는 암호화폐에서 (센트와 같은) 가장 작은 화폐 단위입니다.
- 카르다노의 경우, 해시 함수의 출력값은 블록체인에 있는 전체 에이다 코인의 수와 1 사이에 해당합니다.
- H(씨드값)는 에이다 코인 수 i값을 출력합니다.
- 이 '사용자’가 코인 i개를 소유하고 있음을 보여주는 트랜잭션이 블록체인에 나타납니다.
- 선택된 숫자는 임의값이므로 각 코인은 동일한 확률을 가집니다.
- 하지만 코인이 많으면 더 자주 선택될 수 있습니다.
- 이러한 무작위 씨드값을 어떻게 생성합니까?
- 어떻게 분산된 방식으로 생성할 수 있습니까?
프로토콜: 단일 에포크
- 에포크마다 여러 개의 슬롯이 있고, 각 슬롯에서 블록이 생성됩니다.
- 제네시스 블록 B0(시간이 시작되기 전에 있던 블록)에서 시작합니다.
- 여기에 사용자의 설명과 소유한 코인의 수가 나옵니다. s와 임의값을 가지고 있습니다.
- 그림의 첫 번째 슬롯에서 보다시피, 아무도 온라인 상태가 아니므로 블록이 생성되지 않았음을 알 수 있습니다.
- 그 다음 2번째 슬롯에서 블록이 생성되고 블록체인이 진행됩니다.
- 여기서 문제는 코인을 소유하고 고정된 임의값을 가진 사람들의 목록을 사용하여 블록을 생성하는 사람을 선택한다는 것입니다.
- 그러나 실제로는 사람들이 거래하고 코인을 교환하기 때문에 목록이 최신 상태가 아니어서 유효하지 않게 됩니다.
- 예컨대, 블록 1 이후에 사용자 1이 코인을 팔았다면 소유한 지분이 없습니다.
- 그러나 에포크가 끝날 때에 여전히 코인을 소유하고 있는 것처럼 선택될 수 있습니다.
- 보안 유지를 위해 이러한 작업이 필요하다는 점에 유의해야 합니다.
- 하지만 최신 상태가 아닌 목록이 전체 프로토콜을 통해 유지되는 것은 원하지 않습니다.
- 그래서 해당 목록이 에포크로 분할되는 것입니다.
- 에포크가 끝날 즈음에 새로운 임의값이 생성되고 목록이 업데이트됩니다(각 블록에서 모든 트랜잭션이 추적되기 때문에 쉽게 실행됨).
- 우로보로스의 첫 번째 제안에서 모든 메시지가 슬롯 끝까지 전달되는 제한사항이 있었지만 프라오스에서 이 문제를 해결했습니다.
- 빈 블록의 수에 대한 제한도 없습니다.
- 중요한 제한사항은 온라인에 정직한 사람들이 있어야 한다는 것입니다(우로보로스의 첫 번째 버전에 해당).
프로토콜: 다수의 에포크
- 물론 전체 프로토콜에는 여러 개의 에포크가 있습니다.
- 출력 전달 보증(GOD), 코인 토싱이라는 도구를 사용하여 임의값 소스를 구합니다.
- 블랙 박스처럼 작동하는 이러한 도구는 블록체인 프로토콜과 병렬로 실행되어 무작위로 보장되는 값을 제공합니다(사용자의 50 %가 정직한 경우).
- 이 블록 박스는 사용자가 블록체인을 통해 서로 주고받는 인터랙티브 프로토콜을 사용하며 완벽한 임의성을 제공하는 것으로 연구를 통해 입증되었습니다.
- 각 에포크마다 반복됩니다.
- 동일한 임의값이 사용되면 불량 사용자가 어떤 코인이 선택될지 예측하여 해당 코인을 살 수 있으므로 새로운 임의값을 생성해야 합니다.
우로보로스 제네시스
- 이 프로토콜은 프라오스에서 정교한 체인 선택 규칙을 통해 일반 결합 가능성을 구현하도록 향상되었습니다.
- 이전에 블록체인을 실행한 적이 없는 시스템에 참여하는 사용자는 프라오스에서 자신이 수신하는 체인의 정확성을 확인하기 위해 시스템의 중간 상태(시스템 블록)를 제공할 만한 사람이 필요하다고 가정해야 했습니다.
- 이러한 가정은 이상적이지 않으므로, 대신에 모든 블록체인을 제네시스 블록에서 부트스트랩할 수 있기를 원합니다.
- 일반적으로 블록의 가장 긴 체인을 선택하는 '최장 체인 규칙’을 사용하지만, 최상의 보증을 제공하지는 않습니다.
- 정교한 규칙에 따라 신뢰할 수 있는 중간 체크포인트 없이 제네시스 블록에서 직접 부트스트랩할 수 있습니다.
- 제네시스는 체크포인트 없이 보안을 달성했습니다.
- 그리고 성능에도 영향을 미쳤습니다.
- 마지막 벤치마크 테스트는 수년 전 최적화되지 않은 우로보로스 버전에서 실행되었으며, 그 때 초당 100회의 트랜잭션이 발생했습니다.
결론적으로 베르나르도는 자신들이 실행한 연구와 우로보로스 프로토콜이 비트코인과 동일한 보안을 달성하면서도 에너지 소비를 줄이고 더 나은 성능을 발휘할 수 있다고 밝힙니다. 이 모든 것이 수학적으로 옳다고 입증된 명쾌한 암호화 기술을 사용하여 이루어진 것입니다.
우로보로스에 관한 자세한 내용과 관련 보고서를 살펴보려면 아래 자료를 참조하시기 바랍니다.