Cardano는 coincodecap.com이 선정한 가장 적극적으로 개발된 암호화폐 중 하나입니다.

02

Shelley

탈중앙화

Byron 시대 이후 이어지는 Cardano의 Shelley 시대는 네트워크를 위한 성장과 개발의 시기에 해당합니다. 메인넷이 출시된 단일 시점에서 시작된 Byron 시대와 달리, Shelley 시대로의 전환은 서비스 중지없이 전환이 부드럽고 위험이 적게 이뤄지도록 설계되었습니다.

Shelley 시대는 탈중앙화를 최적화하기 위한 Cardano의 중요한 초기 단계를 포함하며, 모든 것의 첫 단계가 늘 그렇듯이 점진적이고 뜻깊게 이뤄질 것입니다. Byron 시대에는 네트워크가 연합되었지만 Shelley 시대가 진행됨에 따라 점점 더 많은 노드가 Cardano 커뮤니티에 의해 실행되게 됩니다. 대부분의 노드가 네트워크 참가자에 의해 실행되면 Cardano의 탈중앙화가 더욱 진행되어 결과적으로 보다 강력한 보안과 견고성을 얻게됩니다.

또한 Shelley 시대에는 위임 및 인센티브 계획, 스테이크풀 및 커뮤니티 채택을 위한 보상 시스템이 도입될 것입니다. 지분증명 네트워크이므로 사용자가 자신의 ADA를 스테이킹하여 네트워크에 참가할 수 있습니다. 게임 이론 및 지분증명 네트워크에 대한 최신 연구를 바탕으로 심혈을 기울여 고안된 지분 및 인센티브 계획은 사용자들이 자신의 지분을 스테이크풀(항상 작동중인 커뮤니티 운영 네트워크 노드)에 위임하도록 하고 또한 이를 장려하며, 네트워크에 선의를 가지고 참여할 경우 이를 보상합니다.

Shelley 시대가 끝나면 Cardano의 탈중앙화는 기타 대형 블록체인 네트워크보다 50배에서 100배 이상에 이를 것이며, 이때 인센티브 계획은 약 천개의 스테이크풀에서 안정을 이루도록 설계되었습니다. 현재 유수의 블록체인 네트워크들은 10개 미만의 마이닝풀에 의해 제어되는 경우가 많아 악의적인 행동(Cardano에서는 탈중앙화를 장려하기 위해 본질적으로 설계된 시스템을 통해 예방)에 의해 심각한 위험에 노출될 수 있습니다. 뿐만 아니라 전체 Cardano 네트워크는 소규모 국가가 아닌 단일 주택에서 사용하는 규모의 전기를 사용하여 동급의 작업증명 블록체인이 사용하는 전력보다 훨씬 적은 전력으로 운영됩니다.

Shelley 시대는 Cardano 네트워크의 자연스러운 성숙을 나타내며, 새로운 사용자와 오래된 사용자 모두에게 더욱 유용하고 보람을 주고 가치있는 경험을 제공합니다. Shelley 시대는 또한 미래를 준비하는 단계이기도 합니다. Shelley는 완전 탈중앙화 네트워크를 위한 무대를 설정하고, 지금보다 훨씬 멋진 일들이 일어날 Goguen, Basho, Voltaire 시대를 대비하는 완전히 새로운 애플리케이션 생태계를 구축하게 됩니다.

Shelley 시대 연구 (영문)

Ouroboros Praos: An Adaptively-Secure, Semi-synchronous Proof-of-Stake Blockchain(Ouroboros Praos: 적응형 보안성을 갖춘 반동기 지분증명 블록체인)

Ouroboros를 개선하여 Cardano를 적응형 공격자로부터 보호하는 증명가능한 보안성을 갖춘 지분증명 프로토콜인 Ouroboros Praos에 다루고 분석하는 연구 보고서입니다.

Ouroboros Genesis: Composable Proof-of-Stake Blockchains with Dynamic Availability(Ouroboros Genesis: 동적 가용성을 갖춘 작성 가능한 지분증명 블록체인)

Ouroboros Genesis를 다루고 분석하고 연구 보고서입니다. Ouroboros Genesis는 이해관계자가 블록체인이 안전하게 합류하거나 재합류하도록 함으로써 Ouroboros 지분증명 프로토콜을 개선합니다.

Stake-Bleeding Attacks on Proof-of-Stake Blockchains(지분증명 블록체인에 가해지는 지분 출혈 공격)

체크포인트 없이 지분증명 블록체인에 가해지는 공격에 대해 다루면서 트랜잭션 수수료, 보상, PoS 프로토콜의 보안 특성간의 관계에 대해 설명하는 연구 보고서입니다.

Secure Two-Party Computation over Unreliable Channels(신뢰할 수 없는 채널을 통해 이뤄지는 안전한 양자(2-party) 계산)

신뢰할 수 있는 채널이 가정되지 않은 일반 모델(실제 환경 반영)에서 양자(2-party) 계산에 대해 탐색하는 연구 보고서입니다. 보고서는 의사 소통에 최적인 소음 탄력성, 반선의(Semi-honest) 양자 계산의 타당성을 조사하고 이를 위해 정보 이론적 기법을 고안합니다.

Decreasing Security Threshold Against Double Spend Attack in Networks with Slow Synchronization(동기화 속도가 느린 네트워크에 가해지는 이중 지불 공격으로부터 보안 역치를 감소하는 방법)

네트워크 매개변수와 관련하여 작업증명 블록체인에서 이중 소비 공격의 확률 변화를 분석하고 임계점(확률이 있는 성공적인 공격을 제공하는 최소 적의 비율)이라는 개념을 소개하는 연구 보고서입니다.

A Formal Specification of the Cardano Ledger(Cardano 원장의 정형 명세서)

Shelley 배포에 의해 도입된 원장 규정의 공식 사양 및 실행 모델을 다룹니다.

Specification of the Blockchain Layer(블록체인 레이어 사양서)

Cardano의 Byron 시대와 Shelley 시대로의 전환이라는 시각에서 바라본 유효한 블록의 정의 및 블록이 블록체인에 추가되기 위해 필요한 요소를 공식화하는 정형 명세서입니다.

Engineering Design Specification for Delegation and Incentives in Cardano Shelley(Cardano Shelley 내 위임 및 인센티브에 대한 엔지니어링 설계 명세서)

위임를 지원하고 위임에 인센티브를 제공하기 위해 Cardano에 필요한 추가 설계를 자세히 기술한 엔지니어링 사양서입니다.

Ouroboros-BFT: A Simple Byzantine Fault Tolerant Consensus Protocol(Ouroboros-BFT: 간단한 비잔틴 오류 허용 컨센서스 프로토콜)

이 논문은 n개의 서버에 의해 동기 네트워크에 걸쳐 프로토콜이 수행되고, 해당 프로토콜이 t < n/3일 때 비잔틴 오류에서 모든 수의 t를 허용할 수 있을 때 비잔틴 오류를 허용하는 원장 컨센서스에 대한 단순하고 결정론적인 프로토콜을 정의합니다.

Shelley 작업 범위


컨센서스 인센티브 및 수수료

인센티브 제도를 설계하는 목적은 전체 시스템 기능을 안정적이고 확실하게 작동시키는 방식으로 행동하는 것이 각 개인의 이익과 부합함을 보장하기 위한 것입니다. 인센티브 시스템은 수학, 게임 이론 및 경제 이론을 활용하여 이를 보장하도록 설계되었습니다. 여기에는 전체 노드 운영에 대한 적절한 보상 제공, 지분 위임 인센티브, 트랜잭션 수수료 설정 수단 등등이 포함됩니다.



위임 인증서

지분 위임은 위임 인증서를 통해 가능하게 되며, ADA 소지자가 위임을 지정하고 이는 블록체인에 기록됩니다. ADA 소지자는 최신 위임 인증서를 발행하여 이후에 위임 설정을 자유롭게 변경할 수 있습니다. 위임이 이뤄지는 동안에도 ADA 소지자는 ADA 소비에 대한 독자적인 권리와 능력을 보유합니다.



OPEN OUROBOROS 위임관련 연구 논문 및 구현

탈중앙화의 핵심은 이해관계자가 지분을 위임할 수 있는 능력입니다. 이해관계자는 Cardano와 같은 지분증명 시스템에서 프로토콜에 참여해야 할 의무가 있습니다. 일부 사용자에게는 이것이 항상 실용적이지 않을 수도 있기 때문에 이해관계자는 의무를 이행할 수 있는 다른 사람들이 모여있는 소위 '스테이크풀(Stake Pool)'이라 불리는 곳에 의무를 위임할 수 있습니다. 스테이크풀은 프로토콜에 참여하고 블록체인에 블록을 생성하기 위해 항상 온라인 상태를 유지하는 코어 노드를 작동합니다. 우리 연구원은 이것이 어떻게 달성될 수 있는지에 대해 다룬 '스테이크풀에 대한 보상 공유 계획(Reward Sharing Schemes for Stake Pools)'이라는 제목의 연구 보고서를 발표했으며, 이에 대한 코드내 구현을 시작하였습니다.



스테이크풀

모든 ADA 이해관계자가 항상 Cardano 노드를 운영하기 위한 자원, 지식 또는 욕구를 가지고 있는 것은 아닙니다. 이 문제를 해결하고 신뢰할 수 있으면서 성능이 우수한 네트워크 노드의 생성을 장려하기 위해 Cardano는 ADA 소지자가 Cardano 스테이크풀에 스테이킹 권한을 위임할 수 있게 합니다. 스테이크풀은 Cardano 네트워크의 응답 시간, 보안, 가용성을 지원할 목적으로 항시 가용성 및 적절한 하드웨어 환경을 보장하기 위해 노력을 기울인 네트워크 참가자에 의해 실행되는 Cardano 노드입니다. 스테이크풀 운영자는 ADA 보유자가 지분을 운영자의 풀에 위임할 때 네트워크 지원에 대한 보상을 얻습니다. 인센티브 및 보상 모델은 많은 스테이크풀에 위임을 장려하여 지속적인 네트워크의 분산화를 보장하도록 설계되었습니다. 인센티브 모델에 의해 동기가 부여되는 스테이크풀의 최적 갯수는 미세 조정 네트워크 성능에 맞춰 조정될 수 있는 매개변수입니다.



OUROBOROS PRAOS

커져가는 Cardano의 규모에 걸맞게 보안을 유지하는 것은 매우 중요합니다. Ouroboros Praos는 자사의 스테이크 프로토콜인 Ouroboros를 기반으로 개선됩니다. Praos는 적응성있는 공격자에 대한 보안을 제공하고 품질이 낮은 네트워크 조건을 허용하면서도 효율성(과 그에 따른 확장성)을 개선합니다.

Praos는 프라이빗 리더 선정 및 포워드 보안 서명을 통해 강력한 공격자가 누가 다음 슬롯 리더가 될 것인지 예측할 수 없게 하면서 집중 공격(예 : DDoS 공격)을 할 수 없게 합니다. 또한 본 프로토콜은 이해관계자 분포가 지분의 정직한 다수를 유지한다는 전제하에 적대적 제어 메시지 전달 지연과 진화하는 이해관계자 집단의 개별 참가자의 점진적인 커럽션(Corruption)을 허용합니다.



OUROBOROS GENESIS

Ouroboros Genesis는 Ouroboros 프로토콜의 차세대 버전입니다. Ouroboros Genesis는 동적 가용성에 따라 보안을 실현하는 정형 모델( Formal Model)로서 노드가 오프라인 상태가 되어 조정되지 않은 방식으로 프로토콜 실행에 다시 참여할 때 상황을 파악하기 위해 도입되었습니다.

또한 본 프로토콜은 어떠한 신뢰할 수 있는 제 3자나 체크포인트를 요구하지 않고도 단순히 제네시스 블록을 근거로 당사자들이 '제네시스에서 부트스트랩을 실행'하고 체인에 재참여하는 것을 가능하게 하는 새로운 체인 선택 규칙을 도입합니다. 제네시스는 새로 참여하거나 재참여한 각 이해관계자가 블록체인의 최신 버전을 획득하도록 보장함으로써 장거리 공격으로부터 스스로를 보호할 수 있도록 합니다.

중요한 것은, Ouroboros Genesis를 통해 Cardano 및 기타 지분증명 블록체인은 증명가능한 방식으로 작업증명 블록체인의 안전성 보장 수준에 맞출 수 있다는 것입니다.



OUROBOROS BFT

성공적으로 OBFT를 구현하는 것은 Shelley 시대에 앞서 중요한 개발 단계입니다. 점진적인 분산화에 대한 네트워크 준비 프로세스는 Cardano 1.5와 OBFT의 배포와 함께 시작될 수 있습니다. 이 업데이트는 현재 사용자가 이용할 수 있는 기능에는 영향을 미치지 않지만, Shelley를 활용한 전체 탈중앙화를 준비할 때 필요한 기술적인 단계입니다.



DAEDALUS에서의 위임

Daedalus를 사용하면 사용자가 간단하고 직관적인 UI를 사용하여 응용 프로그램 내에서 지분을 위임할 수 있습니다. ADA 소지자는 위임할 스테이크풀을 선택하기 전에 예상되는 보상을 포함하여 사용 가능한 모든 스테이크풀 및 관련 정보를 검토할 수 있습니다. 사용자는 또한 월렛 내에서 언제든지 위임 설정을 변경할 수 있습니다.



월렛 백엔드 재설계

새롭게 디자인 된 Daedalus 월렛 백엔드는 IOHK 연구자에 의해 생성된 Cardano 정형 월렛 사양을 기반으로합니다. 본 월렛 백엔드는 정형 사양에 따라 구축되고 정형 검증을 통해 테스트된 최초의 암호화폐 월렛입니다. 일반 사용자와 교환 사용자 모두 향상된 성능으로 인해 혜택을 얻을 것이며, 이러한 엄격한 방법으로 생성된 월렛의 탁월한 보안을 활용할 수 있게됩니다.



분리형 월렛

더 나은 기능적인 분리를 꾀하고 의존성을 낮추기 위해 월렛 기능이 노드 구현에서 분리(decoupled)되어 제거되었습니다.



페이퍼 월렛 V2

보안을 강화하기 위해 새로운 버전의 페이퍼 월렛은 오프라인으로 페이퍼 월렛을 생성할 수 있게 하며, Daedalus와 블록체인의 동기화를 요구하지 않게 됩니다. 새로운 단일 주소 체계가 사용되지만 페이퍼 월렛의 복구는 초기 버전의 월렛 인증서와의 호환성을 유지할 것입니다. 이 프로세스는 페이퍼 월렛과 일반적인 ADA 월렛을 연결하면 더 쉽고 직관적으로 다가올 것입니다. Daedalus는 감사 시 활용하기 위한 목적으로 읽기 전용 모드에서 페이퍼 월렛 복구를 지원하므로 개인키를 안전하게 오프라인 상태로 보관할 수 있습니다.



하드웨어 월렛 지원

하드웨어 월렛 지원 기능은 초기에 Yoroi 및 AdaLite 라이트 월렛에 추가되었으며, Daedalus 월렛에 추가될 예정입니다. 이에 따라 사용자는 Ledger Nano, Ledger X, Trezor와 같은 하드웨어 월렛에 자신의 ADA를 안전하게 보관할 수 있게 됩니다.



더욱 빨라진 월렛 복구

월렛 복구 프로세스가 개선되었습니다. 복구가 이뤄지고 월렛 잔고가 곧바로 표시되며 트랜잭션 기록은 백그라운드에서 복원됩니다. 이 작업이 완료되는 동안에도 월렛 복구 프로세스는 지속적으로 개선되고 있습니다.



DAEDALUS에서의 향상된 월렛 백업 및 복구

월렛은 사용자 오류가 발생하기 쉽습니다. 향상된 월렛 복구 기능은 BIP39 니모닉 코드를 고유한 해시키와 연결하여 사용자 경험을 개선하고 사용자 오류를 줄일 수 있게 합니다. 이를 통해 사용자는 니모닉 코드가 올바르게 입력되었는지 여부를 식별할 수 있을 뿐만 아니라 쉽게 백업 및 복구를 수행할 수 있습니다. 해시키는 종이에 인쇄되거나 일반 지갑과 저장할 수 있으며, 코드 및 벡터 이미지로 표시됩니다. 니모닉 코드가 입력되면 해시키가 나타납니다. 사용자는 표시된 키와 저장된 키를 비교하기만 하면 됩니다.



핫앤콜드(Hot and Cold) 월렛

일반적으로 콜드월렛은 가독성을 희생하면서 보안을 제공합니다. 핫앤콜드 월렛의 구현으로 핫월렛을 콜드월렛으로, 콜드월렛을 핫월렛으로 변경하는 것이 가능해집니다. 핫월렛에서 프라이빗키를 제거하면 가독성을 유지하면서 사실상 콜드월렛으로 바꿀 수 있습니다. 이를 통해 콜드월렛은 읽을 수 있게 되고, 트랜잭션 및 자금의 증거를 제공하며, 제 3자에게 보낼 수 있게 되지만 새로운 트랜잭션을 수행할 수 없게 됩니다.



노드 및 블록체인 상태 UI

인터페이스가 추가되어 블록체인의 상태와 구성 요소 간의 통신 상태가 그래픽으로 표시되어 시스템의 상태를 보여줌으로써 어떠한 문제라도 식별할 수 있습니다.



BIP44 계층 결정적 월렛 주소

Cardano는 HD(계층 결정적 : Hierarchical Deterministic) 월렛을 추가하고 있는 중입니다. HD 월렛은 BIP32(Bitcoin Improvement Proposal)에서 도입되었으며, 이후 BIP44에서 개선되었습니다. 본 키유도 방법은 계층 결정적 키를 사용하여 단일 마스터 쌍에서 키 쌍을 유도합니다. HD 월렛은 마스터키로 시작하여 인덱스로 마스터 키를 해싱하여 새로운 하위키를 생성합니다. 인덱스를 변경하면 인덱스에 마스터 키를 제공함으로써 결정론적으로 재생산할 수 있는 새로운 키가 생성됩니다. HD 지갑을 사용하면 사용자는 매번 사용하기 위해 새로운 키를 저장하고 생성할 필요가 없습니다. 마스터키만 저장하면 기타 모든 키를 파생시킬 수 있게 됩니다.



인간 친화적 주소

월렛은 각 주소에 ADA가 할당되어 있는 일련의 주소로 구성됩니다. 현재 월렛 주소는 숫자와 문자의 긴 문자열로, 서로 쉽게 구분하기 어렵습니다. Cardano 주소는 현재 비트코인 주소보다 훨씬 깁니다. 이 기능을 사용하면 보다 쉽게 통신할 수 있도록 더욱 짧아진 월렛 주소를 가질 수 있습니다. 이 작업의 목표는 비트코인의 주소와 길이가 비슷한 주소를 갖는 것입니다. 이 작업은 주소에 표시된 정보를 최소화하고 지분 위임 정보가 표현되는 방식을 개선함으로써 수행됩니다.



진화형 키 서명

진화형 키 서명(Key Evolving Signature)이란 슬롯 리더의 키를 주기적으로 변경하여 향후 악의적으로 사용될 가능성을 피하기 위한 보안 기능으로, 이전 슬롯의 체인에 변형을 주기 위한 목적으로 과거에 슬롯 리더로부터 훔치거나 불법적으로 구입한 키를 사용하는 것을 불가능하게 합니다.



다중서명 트랜잭션

Cardano의 다중서명 트랜잭션(Multi-signature Transaction)을 사용하면 Daedalus가 공동 자금 관리 권한이 있는 사람들간에 공유되는 지갑을 지원하도록 할 수 있습니다. 예를 들자면 이 기능은 두 사람이 모든 트랜잭션에 서명해야 하는 간단한 공동 월렛을 허용합니다. 또한 트랜잭션을 수행하기 위해 2인이 서명해야 하는 3명이 소지한 월렛과 같이 더 복잡한 계약을 허용합니다. 이는 한 사람의 키가 유출되었을 때 보호를 제공하는 매우 유용한 보안 기능이면서 지출 동의가 필요한 공동 자금 관리를 가능하게 해주는 유용한 기능입니다.



주소 체계 백워드 호환성

BIP44 월렛 주소가 구현된 후 일부 ADA는 기존 월렛 주소에 남아있을 수 있습니다. Cardano는 기존 월렛 주소를 무기한으로 계속 지원할 예정이므로 새로운 월렛 주소 체계 도입 이후에 ADA를 이동할 필요가 없습니다.



월렛 백엔드 내 여러 코드베이스에 대한 지원

현재 월렛 백엔드는 노드와 분리되어 통신 인터페이스를 추출하고 있습니다. 이는 기술 사양에 따라 기능적으로 동등한 노드 구현이 Haskell은 한 곳, Rust는 다른 한 곳에서 작성되는 식으로 서로 다른 코드베이스에서 작성되도록 합니다.



순조로운 코드 업데이트

Cardano는 기타 다른 블록체인에 영향을 미쳤던 하드포크 문제와 같은 곤란을 겪지 않고 원활한 코드 업데이트를 보장합니다. 기존 코드에서 새 코드로 바로 전환하는 일회성 업데이트 없이 기존 코드에 새로운 코드가 포함되었으며 네트워크의 대부분이 업데이트될 때까지 노드는 이전 코드를 계속 사용합니다. 네트워크가 대부분 업데이트 되어야만 코드 전환이 시작됩니다.



더욱 빨라지고 견고해진 스토리지

새롭게 설계되고 재구성된 스토리지 시스템은 Shelley 시대에 향상된 I/O 효율성을 제공하며, 이에 따라 향상된 Cardano 노드와 월렛 성능을 제공합니다. 자사 월렛은 가장 최근의 블록체인 데이터에 영향을 미치는 불완전하거나 중단된 종료로 인해 발생하는 일반적인 데이터 손상 형태를 보다 원활하게 처리할 수 있게 됩니다.



더욱 빠른 네트워크 동기화

블록을 다운로드 할 수 있는 속도가 향상되어 블록체인 동기화가 빨라졌습니다. 실제 조건에서 테스트한 결과 개선된 프로토콜은 과거에 비해 최대 4배 빠른 속도를 나타냈습니다.



네트워킹

완전한 탈중앙화 암호화폐에는 완전한 탈중앙화 네트워크 레이어가 필요합니다. 이러한 레이어는 노드가 네트워크에 합류하고 트랜잭션 및 블록을 송수신할 수 있게 하는 시스템의 일부입니다. 완전한 탈중앙화를 위해 이는 중앙 권한에 의존하지 않고 피어투피어(P2P) 방식으로 작동될 것입니다. 또한 이제는 특별한 방화벽이나 가정용 인터넷 설정 없이도 작동이 가능하게 됩니다. 네트워크는 모든 사람이 참여할 수 있도록 열려 있어야 하지만 기존의 커다란 개방형 P2P 네트워크는 상대적으로 소수의 적대적인 노드에 취약합니다. 다른 연구자들은 이러한 기존 P2P 네트워크에서 교훈을 배우고 있으며, 저희는 현재 연구자들이 권장하는 모범적인 방식을 따르고 있습니다. 더불어 새로운 네트워크 레이어는 디도스(DDoS) 공격에 대해 어느 정도 보호 기능을 제공하도록 설계되었습니다.

네트워킹 프로토콜

위의 작업을 수행하기 위해 Cardano는 완전 맞춤형 네트워크 레이어를 보유하고 있으며, 이는 다음의 미니 프로토콜들로 구성됩니다.

  • 노드 투 노드 프로토콜 번들
  • 노드 투 클라이언트 프로토콜 번들
  • 핸드셰이크 버전 협상
  • 베어러 토폴로지 구성 및 관리 - 피어 발견 및 선택
  • 체인 싱크 프로토콜
  • 블록 페칭 프로토콜
  • 트랜잭션 제출 프로토콜
  • 멀티플렉싱 레이어


BYRON-SHELLEY 전환 프레임워크

Byron-Shelley 전환 프레임워크는 Byron 시대에서 Shelley 시대로 안전하게 이동할 수있는 수단을 제공합니다. 페더레이션 네트워크의 기존 노드는 블록을 생성하는 책임을 점차적으로 스테이크풀로 양도하는 반면, DevOps 팀은 체인의 성장 및 적합하게 위임된 지분과 같은 상태 메트릭을 모니터링합니다. 이 메커니즘은 Cardano에서 중요한 본 단계의 위험을 줄이기 위한 핵심 요소입니다.



BYRON-Shelley 네트워크 프록시

BYRON-Shelley 네트워크 프록시는 초기 Shelley 업그레이드 후 기존의 Cardano 노드와 새로운 노드 간의 지속적인 통신을 가능하게 하는 네트워크 인프라입니다. Byron 호환성 시대에 이 프록시를 사용하면 Shelley 노드는 여전히 Byron 시대에 생성된 블록의 유효성을 검사할 수 있으므로 기존 노드와의 네트워크 운용성을 보장할 수 있습니다.



멤풀 재구현

멤풀(Mempool)은 블록에 아직 기록되지 않은 프로세스 중인 트랜잭션을 저장합니다. Shelley 시대를 위해 Cardano 멤풀이 보다 효율적으로 재구현되어 더 나은 성능을 제공할 수 있게 되었습니다. 또한 디도스(DDoS) 공격으로부터 안전하도록 설계되었습니다.



트랜잭션 생성 및 제출의 재구현

Shelley 코드베이스에서 트랜잭션 생성 및 제출 프로세스는 두 단계로 분리됩니다. 이는 하드웨어 지갑과 많은 거래소에 있어 필수사항인 트랜잭션 오프라인 생성 및 서명을 가능하게 합니다.



체인 생성기와 유효성 검사기

체인 생성기 및 유효성 검사기의 구성 요소는 테스트를 목적으로 체인을 무작위로 생성하고 체인의 유효성을 검사하는 데 사용되며, 이를 통해 컨센서스 및 네트워크 기능을 다양한 시나리오에서 철저히 테스트할 수 있습니다. 더불어 Cardano 팀은 시스템에서 특성 기반 테스트를 수행함과 동시에, 드물게 발생하는 결함과 기존의 테스트 방법을 사용하여 발견하기가 어려운 결함을 포착하여 수정합니다.



로깅 및 모니터링

운영 성능 추적 및 문제 진단에 사용되는 추가 세부사항 및 세분성이 더해져 개선된 로깅/모니터링 시스템이 구현되었습니다. 기기와 사람이 모두 읽을 수 있는 구조화된 형식이 사용되어 검색 용이성과 사용 편의성을 더하였습니다. 향상된 로깅 시스템은 실시간 모니터링과 메트릭을 가능하게 하며 런타임 중에 구성 요소 수준에서 활성화와 조정이 가능하므로 재시작하지 않고 구성 변경 사항을 로깅할 수 있습니다.



코드 향상 및 재구현

Cardano 네트워크의 초기 출시 이후, 저희는 전체 코드 기반을 향상하는 데 큰 노력을 기울였습니다. 코드의 기본 구조와 효율성이 개선되어 경우에 따라 완전 재작성이 필요할 수 있습니다. 스토리지 및 동기화와 같은 핵심 네트워크 요소도 재설계 및 재구현되어 코드베이스 전체에서 걸쳐 성능, 안정성 및 유지관리성이 향상되었습니다.



인센티브 제도를 설계하는 목적은 전체 시스템 기능을 안정적이고 확실하게 작동시키는 방식으로 행동하는 것이 각 개인의 이익과 부합함을 보장하기 위한 것입니다. 인센티브 시스템은 수학, 게임 이론 및 경제 이론을 활용하여 이를 보장하도록 설계되었습니다. 여기에는 전체 노드 운영에 대한 적절한 보상 제공, 지분 위임 인센티브, 트랜잭션 수수료 설정 수단 등등이 포함됩니다.


지분 위임은 위임 인증서를 통해 가능하게 되며, ADA 소지자가 위임을 지정하고 이는 블록체인에 기록됩니다. ADA 소지자는 최신 위임 인증서를 발행하여 이후에 위임 설정을 자유롭게 변경할 수 있습니다. 위임이 이뤄지는 동안에도 ADA 소지자는 ADA 소비에 대한 독자적인 권리와 능력을 보유합니다.


탈중앙화의 핵심은 이해관계자가 지분을 위임할 수 있는 능력입니다. 이해관계자는 Cardano와 같은 지분증명 시스템에서 프로토콜에 참여해야 할 의무가 있습니다. 일부 사용자에게는 이것이 항상 실용적이지 않을 수도 있기 때문에 이해관계자는 의무를 이행할 수 있는 다른 사람들이 모여있는 소위 '스테이크풀(Stake Pool)'이라 불리는 곳에 의무를 위임할 수 있습니다. 스테이크풀은 프로토콜에 참여하고 블록체인에 블록을 생성하기 위해 항상 온라인 상태를 유지하는 코어 노드를 작동합니다. 우리 연구원은 이것이 어떻게 달성될 수 있는지에 대해 다룬 '스테이크풀에 대한 보상 공유 계획(Reward Sharing Schemes for Stake Pools)'이라는 제목의 연구 보고서를 발표했으며, 이에 대한 코드내 구현을 시작하였습니다.


모든 ADA 이해관계자가 항상 Cardano 노드를 운영하기 위한 자원, 지식 또는 욕구를 가지고 있는 것은 아닙니다. 이 문제를 해결하고 신뢰할 수 있으면서 성능이 우수한 네트워크 노드의 생성을 장려하기 위해 Cardano는 ADA 소지자가 Cardano 스테이크풀에 스테이킹 권한을 위임할 수 있게 합니다. 스테이크풀은 Cardano 네트워크의 응답 시간, 보안, 가용성을 지원할 목적으로 항시 가용성 및 적절한 하드웨어 환경을 보장하기 위해 노력을 기울인 네트워크 참가자에 의해 실행되는 Cardano 노드입니다. 스테이크풀 운영자는 ADA 보유자가 지분을 운영자의 풀에 위임할 때 네트워크 지원에 대한 보상을 얻습니다. 인센티브 및 보상 모델은 많은 스테이크풀에 위임을 장려하여 지속적인 네트워크의 분산화를 보장하도록 설계되었습니다. 인센티브 모델에 의해 동기가 부여되는 스테이크풀의 최적 갯수는 미세 조정 네트워크 성능에 맞춰 조정될 수 있는 매개변수입니다.


커져가는 Cardano의 규모에 걸맞게 보안을 유지하는 것은 매우 중요합니다. Ouroboros Praos는 자사의 스테이크 프로토콜인 Ouroboros를 기반으로 개선됩니다. Praos는 적응성있는 공격자에 대한 보안을 제공하고 품질이 낮은 네트워크 조건을 허용하면서도 효율성(과 그에 따른 확장성)을 개선합니다.

Praos는 프라이빗 리더 선정 및 포워드 보안 서명을 통해 강력한 공격자가 누가 다음 슬롯 리더가 될 것인지 예측할 수 없게 하면서 집중 공격(예 : DDoS 공격)을 할 수 없게 합니다. 또한 본 프로토콜은 이해관계자 분포가 지분의 정직한 다수를 유지한다는 전제하에 적대적 제어 메시지 전달 지연과 진화하는 이해관계자 집단의 개별 참가자의 점진적인 커럽션(Corruption)을 허용합니다.


Ouroboros Genesis는 Ouroboros 프로토콜의 차세대 버전입니다. Ouroboros Genesis는 동적 가용성에 따라 보안을 실현하는 정형 모델( Formal Model)로서 노드가 오프라인 상태가 되어 조정되지 않은 방식으로 프로토콜 실행에 다시 참여할 때 상황을 파악하기 위해 도입되었습니다.

또한 본 프로토콜은 어떠한 신뢰할 수 있는 제 3자나 체크포인트를 요구하지 않고도 단순히 제네시스 블록을 근거로 당사자들이 '제네시스에서 부트스트랩을 실행'하고 체인에 재참여하는 것을 가능하게 하는 새로운 체인 선택 규칙을 도입합니다. 제네시스는 새로 참여하거나 재참여한 각 이해관계자가 블록체인의 최신 버전을 획득하도록 보장함으로써 장거리 공격으로부터 스스로를 보호할 수 있도록 합니다.

중요한 것은, Ouroboros Genesis를 통해 Cardano 및 기타 지분증명 블록체인은 증명가능한 방식으로 작업증명 블록체인의 안전성 보장 수준에 맞출 수 있다는 것입니다.


성공적으로 OBFT를 구현하는 것은 Shelley 시대에 앞서 중요한 개발 단계입니다. 점진적인 분산화에 대한 네트워크 준비 프로세스는 Cardano 1.5와 OBFT의 배포와 함께 시작될 수 있습니다. 이 업데이트는 현재 사용자가 이용할 수 있는 기능에는 영향을 미치지 않지만, Shelley를 활용한 전체 탈중앙화를 준비할 때 필요한 기술적인 단계입니다.


Daedalus를 사용하면 사용자가 간단하고 직관적인 UI를 사용하여 응용 프로그램 내에서 지분을 위임할 수 있습니다. ADA 소지자는 위임할 스테이크풀을 선택하기 전에 예상되는 보상을 포함하여 사용 가능한 모든 스테이크풀 및 관련 정보를 검토할 수 있습니다. 사용자는 또한 월렛 내에서 언제든지 위임 설정을 변경할 수 있습니다.


새롭게 디자인 된 Daedalus 월렛 백엔드는 IOHK 연구자에 의해 생성된 Cardano 정형 월렛 사양을 기반으로합니다. 본 월렛 백엔드는 정형 사양에 따라 구축되고 정형 검증을 통해 테스트된 최초의 암호화폐 월렛입니다. 일반 사용자와 교환 사용자 모두 향상된 성능으로 인해 혜택을 얻을 것이며, 이러한 엄격한 방법으로 생성된 월렛의 탁월한 보안을 활용할 수 있게됩니다.


더 나은 기능적인 분리를 꾀하고 의존성을 낮추기 위해 월렛 기능이 노드 구현에서 분리(decoupled)되어 제거되었습니다.


보안을 강화하기 위해 새로운 버전의 페이퍼 월렛은 오프라인으로 페이퍼 월렛을 생성할 수 있게 하며, Daedalus와 블록체인의 동기화를 요구하지 않게 됩니다. 새로운 단일 주소 체계가 사용되지만 페이퍼 월렛의 복구는 초기 버전의 월렛 인증서와의 호환성을 유지할 것입니다. 이 프로세스는 페이퍼 월렛과 일반적인 ADA 월렛을 연결하면 더 쉽고 직관적으로 다가올 것입니다. Daedalus는 감사 시 활용하기 위한 목적으로 읽기 전용 모드에서 페이퍼 월렛 복구를 지원하므로 개인키를 안전하게 오프라인 상태로 보관할 수 있습니다.


하드웨어 월렛 지원 기능은 초기에 Yoroi 및 AdaLite 라이트 월렛에 추가되었으며, Daedalus 월렛에 추가될 예정입니다. 이에 따라 사용자는 Ledger Nano, Ledger X, Trezor와 같은 하드웨어 월렛에 자신의 ADA를 안전하게 보관할 수 있게 됩니다.


월렛 복구 프로세스가 개선되었습니다. 복구가 이뤄지고 월렛 잔고가 곧바로 표시되며 트랜잭션 기록은 백그라운드에서 복원됩니다. 이 작업이 완료되는 동안에도 월렛 복구 프로세스는 지속적으로 개선되고 있습니다.


월렛은 사용자 오류가 발생하기 쉽습니다. 향상된 월렛 복구 기능은 BIP39 니모닉 코드를 고유한 해시키와 연결하여 사용자 경험을 개선하고 사용자 오류를 줄일 수 있게 합니다. 이를 통해 사용자는 니모닉 코드가 올바르게 입력되었는지 여부를 식별할 수 있을 뿐만 아니라 쉽게 백업 및 복구를 수행할 수 있습니다. 해시키는 종이에 인쇄되거나 일반 지갑과 저장할 수 있으며, 코드 및 벡터 이미지로 표시됩니다. 니모닉 코드가 입력되면 해시키가 나타납니다. 사용자는 표시된 키와 저장된 키를 비교하기만 하면 됩니다.


일반적으로 콜드월렛은 가독성을 희생하면서 보안을 제공합니다. 핫앤콜드 월렛의 구현으로 핫월렛을 콜드월렛으로, 콜드월렛을 핫월렛으로 변경하는 것이 가능해집니다. 핫월렛에서 프라이빗키를 제거하면 가독성을 유지하면서 사실상 콜드월렛으로 바꿀 수 있습니다. 이를 통해 콜드월렛은 읽을 수 있게 되고, 트랜잭션 및 자금의 증거를 제공하며, 제 3자에게 보낼 수 있게 되지만 새로운 트랜잭션을 수행할 수 없게 됩니다.


인터페이스가 추가되어 블록체인의 상태와 구성 요소 간의 통신 상태가 그래픽으로 표시되어 시스템의 상태를 보여줌으로써 어떠한 문제라도 식별할 수 있습니다.


Cardano는 HD(계층 결정적 : Hierarchical Deterministic) 월렛을 추가하고 있는 중입니다. HD 월렛은 BIP32(Bitcoin Improvement Proposal)에서 도입되었으며, 이후 BIP44에서 개선되었습니다. 본 키유도 방법은 계층 결정적 키를 사용하여 단일 마스터 쌍에서 키 쌍을 유도합니다. HD 월렛은 마스터키로 시작하여 인덱스로 마스터 키를 해싱하여 새로운 하위키를 생성합니다. 인덱스를 변경하면 인덱스에 마스터 키를 제공함으로써 결정론적으로 재생산할 수 있는 새로운 키가 생성됩니다. HD 지갑을 사용하면 사용자는 매번 사용하기 위해 새로운 키를 저장하고 생성할 필요가 없습니다. 마스터키만 저장하면 기타 모든 키를 파생시킬 수 있게 됩니다.


월렛은 각 주소에 ADA가 할당되어 있는 일련의 주소로 구성됩니다. 현재 월렛 주소는 숫자와 문자의 긴 문자열로, 서로 쉽게 구분하기 어렵습니다. Cardano 주소는 현재 비트코인 주소보다 훨씬 깁니다. 이 기능을 사용하면 보다 쉽게 통신할 수 있도록 더욱 짧아진 월렛 주소를 가질 수 있습니다. 이 작업의 목표는 비트코인의 주소와 길이가 비슷한 주소를 갖는 것입니다. 이 작업은 주소에 표시된 정보를 최소화하고 지분 위임 정보가 표현되는 방식을 개선함으로써 수행됩니다.


진화형 키 서명(Key Evolving Signature)이란 슬롯 리더의 키를 주기적으로 변경하여 향후 악의적으로 사용될 가능성을 피하기 위한 보안 기능으로, 이전 슬롯의 체인에 변형을 주기 위한 목적으로 과거에 슬롯 리더로부터 훔치거나 불법적으로 구입한 키를 사용하는 것을 불가능하게 합니다.


Cardano의 다중서명 트랜잭션(Multi-signature Transaction)을 사용하면 Daedalus가 공동 자금 관리 권한이 있는 사람들간에 공유되는 지갑을 지원하도록 할 수 있습니다. 예를 들자면 이 기능은 두 사람이 모든 트랜잭션에 서명해야 하는 간단한 공동 월렛을 허용합니다. 또한 트랜잭션을 수행하기 위해 2인이 서명해야 하는 3명이 소지한 월렛과 같이 더 복잡한 계약을 허용합니다. 이는 한 사람의 키가 유출되었을 때 보호를 제공하는 매우 유용한 보안 기능이면서 지출 동의가 필요한 공동 자금 관리를 가능하게 해주는 유용한 기능입니다.


BIP44 월렛 주소가 구현된 후 일부 ADA는 기존 월렛 주소에 남아있을 수 있습니다. Cardano는 기존 월렛 주소를 무기한으로 계속 지원할 예정이므로 새로운 월렛 주소 체계 도입 이후에 ADA를 이동할 필요가 없습니다.


현재 월렛 백엔드는 노드와 분리되어 통신 인터페이스를 추출하고 있습니다. 이는 기술 사양에 따라 기능적으로 동등한 노드 구현이 Haskell은 한 곳, Rust는 다른 한 곳에서 작성되는 식으로 서로 다른 코드베이스에서 작성되도록 합니다.


Cardano는 기타 다른 블록체인에 영향을 미쳤던 하드포크 문제와 같은 곤란을 겪지 않고 원활한 코드 업데이트를 보장합니다. 기존 코드에서 새 코드로 바로 전환하는 일회성 업데이트 없이 기존 코드에 새로운 코드가 포함되었으며 네트워크의 대부분이 업데이트될 때까지 노드는 이전 코드를 계속 사용합니다. 네트워크가 대부분 업데이트 되어야만 코드 전환이 시작됩니다.


새롭게 설계되고 재구성된 스토리지 시스템은 Shelley 시대에 향상된 I/O 효율성을 제공하며, 이에 따라 향상된 Cardano 노드와 월렛 성능을 제공합니다. 자사 월렛은 가장 최근의 블록체인 데이터에 영향을 미치는 불완전하거나 중단된 종료로 인해 발생하는 일반적인 데이터 손상 형태를 보다 원활하게 처리할 수 있게 됩니다.


블록을 다운로드 할 수 있는 속도가 향상되어 블록체인 동기화가 빨라졌습니다. 실제 조건에서 테스트한 결과 개선된 프로토콜은 과거에 비해 최대 4배 빠른 속도를 나타냈습니다.


완전한 탈중앙화 암호화폐에는 완전한 탈중앙화 네트워크 레이어가 필요합니다. 이러한 레이어는 노드가 네트워크에 합류하고 트랜잭션 및 블록을 송수신할 수 있게 하는 시스템의 일부입니다. 완전한 탈중앙화를 위해 이는 중앙 권한에 의존하지 않고 피어투피어(P2P) 방식으로 작동될 것입니다. 또한 이제는 특별한 방화벽이나 가정용 인터넷 설정 없이도 작동이 가능하게 됩니다. 네트워크는 모든 사람이 참여할 수 있도록 열려 있어야 하지만 기존의 커다란 개방형 P2P 네트워크는 상대적으로 소수의 적대적인 노드에 취약합니다. 다른 연구자들은 이러한 기존 P2P 네트워크에서 교훈을 배우고 있으며, 저희는 현재 연구자들이 권장하는 모범적인 방식을 따르고 있습니다. 더불어 새로운 네트워크 레이어는 디도스(DDoS) 공격에 대해 어느 정도 보호 기능을 제공하도록 설계되었습니다.

네트워킹 프로토콜

위의 작업을 수행하기 위해 Cardano는 완전 맞춤형 네트워크 레이어를 보유하고 있으며, 이는 다음의 미니 프로토콜들로 구성됩니다.

  • 노드 투 노드 프로토콜 번들
  • 노드 투 클라이언트 프로토콜 번들
  • 핸드셰이크 버전 협상
  • 베어러 토폴로지 구성 및 관리 - 피어 발견 및 선택
  • 체인 싱크 프로토콜
  • 블록 페칭 프로토콜
  • 트랜잭션 제출 프로토콜
  • 멀티플렉싱 레이어

Byron-Shelley 전환 프레임워크는 Byron 시대에서 Shelley 시대로 안전하게 이동할 수있는 수단을 제공합니다. 페더레이션 네트워크의 기존 노드는 블록을 생성하는 책임을 점차적으로 스테이크풀로 양도하는 반면, DevOps 팀은 체인의 성장 및 적합하게 위임된 지분과 같은 상태 메트릭을 모니터링합니다. 이 메커니즘은 Cardano에서 중요한 본 단계의 위험을 줄이기 위한 핵심 요소입니다.


BYRON-Shelley 네트워크 프록시는 초기 Shelley 업그레이드 후 기존의 Cardano 노드와 새로운 노드 간의 지속적인 통신을 가능하게 하는 네트워크 인프라입니다. Byron 호환성 시대에 이 프록시를 사용하면 Shelley 노드는 여전히 Byron 시대에 생성된 블록의 유효성을 검사할 수 있으므로 기존 노드와의 네트워크 운용성을 보장할 수 있습니다.


멤풀(Mempool)은 블록에 아직 기록되지 않은 프로세스 중인 트랜잭션을 저장합니다. Shelley 시대를 위해 Cardano 멤풀이 보다 효율적으로 재구현되어 더 나은 성능을 제공할 수 있게 되었습니다. 또한 디도스(DDoS) 공격으로부터 안전하도록 설계되었습니다.


Shelley 코드베이스에서 트랜잭션 생성 및 제출 프로세스는 두 단계로 분리됩니다. 이는 하드웨어 지갑과 많은 거래소에 있어 필수사항인 트랜잭션 오프라인 생성 및 서명을 가능하게 합니다.


체인 생성기 및 유효성 검사기의 구성 요소는 테스트를 목적으로 체인을 무작위로 생성하고 체인의 유효성을 검사하는 데 사용되며, 이를 통해 컨센서스 및 네트워크 기능을 다양한 시나리오에서 철저히 테스트할 수 있습니다. 더불어 Cardano 팀은 시스템에서 특성 기반 테스트를 수행함과 동시에, 드물게 발생하는 결함과 기존의 테스트 방법을 사용하여 발견하기가 어려운 결함을 포착하여 수정합니다.


운영 성능 추적 및 문제 진단에 사용되는 추가 세부사항 및 세분성이 더해져 개선된 로깅/모니터링 시스템이 구현되었습니다. 기기와 사람이 모두 읽을 수 있는 구조화된 형식이 사용되어 검색 용이성과 사용 편의성을 더하였습니다. 향상된 로깅 시스템은 실시간 모니터링과 메트릭을 가능하게 하며 런타임 중에 구성 요소 수준에서 활성화와 조정이 가능하므로 재시작하지 않고 구성 변경 사항을 로깅할 수 있습니다.


Cardano 네트워크의 초기 출시 이후, 저희는 전체 코드 기반을 향상하는 데 큰 노력을 기울였습니다. 코드의 기본 구조와 효율성이 개선되어 경우에 따라 완전 재작성이 필요할 수 있습니다. 스토리지 및 동기화와 같은 핵심 네트워크 요소도 재설계 및 재구현되어 코드베이스 전체에서 걸쳐 성능, 안정성 및 유지관리성이 향상되었습니다.


업데이트


Atala 및 Cardano 파일럿의 기회의 땅, 몽골

블록체인에 뜨거운 반응을 보이는 부처 장관들과 기업들

사람들에게 몽골에 대해 생각해보라고 하면 주로 떠오르는 이미지는 펼쳐지는 초원, 산, 살을 에는 겨울과 유목민일 것입니다. 획기적인 기술하면 쉽게 떠올릴 수 있는 곳은 아니지만 사실 몽골은 블록체인 파일럿을 수행하기에 적합한 나라입니다.

2019년 5월 16일 | 작성자 | Charles Hoskinson

Cardano 2020: 비전을 선포합니다.

새로운 로드맵, 제품 시연, 정기 업데이트 등 진행상황 공유

Cardano는 흥미로운 전환 단계에 있습니다. Cardano 프로젝트는 오랜 기간 연구 중심의 기술 사양과 근거기반의 개발 프로세스가 신중하게 결합된 제품 비전을 담고 있습니다. 그 엄격함을 계속 지켜나가면서 이제 우리는 세계 최초의 새로운 기능을 제공하는 개발의 새로운 단계로 도약합니다. 이를 향한 여정은 시작되었습니다.

2019년 5월 7일 | 작성자 | David Esser
View all Shelley updates

Medusa

github.com/input-output-hk/ouroboros-network

View historical and real-time GitHub commits


탐색