스텔라(XLM) 백서 | Stella Whitepaper

0
53
스텔라(XLM) 코인 백서

이해의 편의를 돕기 위한 스텔라 코인 백서 번역본(STELLA Whitepaper)으로, 정확한 내용은 스텔라 공식 홈페이지에 게시된 백서 원문을 참고해주시길 바랍니다.

스텔라와 CBDC

소개

코드를 코드로

편안함과 안정성

세계적으로 많은 중앙은행들이 중앙은행 디지털 통화(CBDC)의 가능성을 탐구하고 있는 것으로 자주 언급되는 통계에 따르면, 중앙은행 디지털 통화에 대한 탐구가 증가하고 있습니다.1 코로나19 팬데믹은 상황을 더 가속화시켰으며, 입법자와 규제당국은 시민들의 삶을 개선할 수 있는 새로운 기술을 고려하는 데 더욱 적극적입니다. 금융 서비스의 증가하는 경쟁에 주목하든2, 사회복지 수당 지급의 용이성을 향상시키는 데 주력하든3, 무은행 계좌자에게 안전과 보안을 제공하는 데 주력하든4, 중앙은행들은 CBDC의 약속과 가능성을 상상하고 있습니다.

스텔라 개발 재단은 전 세계 금융 인프라를 연결하는 오픈 소스 네트워크인 스텔라의 개발과 성장을 지원하는 비영리 조직입니다. 2014년에 설립된 이 재단은 스텔라의 코드베이스를 유지 관리하고, 네트워크를 기반으로 구축하는 개발자, 핀테크 및 비즈니스 커뮤니티를 지원하며, 규제 기관 및 기관에 대한 독립적인 산업 목소리로서 역할을 합니다. 재단은 블록체인 기술을 통해 전 세계 경제 잠재력을 개방함으로써 글로벌 금융 시스템에 대한 공평한 접근을 창출하고자 합니다.

동시에, 중앙은행들은 정당하게 위험에 초점을 맞추고 있습니다. 국가의 금융 시스템을 감독하는 사람들은 자국 통화와 결제의 안전에 합법적인 관심을 가지고 있습니다. 변경 사항을 시행하기 위해서는 어떠한 변화의 경제적 및 정치적 영향과 그를 시행하는 데 사용되는 기술을 검토해야 합니다. 기술의 발전은 종종 변화를 촉발시키며, 중앙은행들은 장기간에 걸쳐 기술을 고려하여 통화 시스템의 안전을 보장해야 했습니다. 초기에 안전은 물리적 통화(동전과 지폐)에 중점을 두어 그 가치를 보호하고 이를 이용 가능하며 위조에 강한 것으로 보장하는 것을 의미했습니다. 디지털 기술의 등장으로, 자금과 결제를 보호하기 위해서는 해당 인프라를 제어함으로써 해당 데이터베이스와 메시징 시스템을 통제하는 것을 의미했습니다.

스텔라 개발 재단 (Stellar Development Foundation)은 2014년에 설립된 스텔라라는 오픈 소스 네트워크의 발전과 성장을 지원하는 비영리 기구입니다. 이 재단은 스텔라의 코드베이스를 유지하고, 네트워크 상에서 구축하는 개발자, 핀테크 및 비즈니스 커뮤니티를 지원하며, 규제 기관과 기관에 독립적인 산업 목소리로서 역할합니다. 이 재단은 블록체인 기술을 통해 전 세계 경제 잠재력을 해제하고, 스텔라 네트워크를 활용하여 전 세계 금융 시스템에 공평한 접근을 창출하고자 합니다.

각주

소개

블록체인 기술로 새로운 전자 화폐 패러다임이 발전했습니다. 자산은 일반적인 인프라에서 발행되어도 안전하게 보관될 수 있습니다. 본질적으로 이러한 변화가 이 논문에서 논의하는 내용입니다. 중앙 은행이 인프라를 통제해야만 자산의 안전을 보장할 필요가 있다는 역사적인 개념을 버릴 수 있다는 아이디어입니다. 컴퓨터와 현대 통신 기술의 발전으로 돈은 디지털 영역으로 진입하여 물리적인 범위를 넘어서 확장되었습니다. 블록체인 기술 이전에 디지털 화폐 공급자들은 통제와 상호 운용성 사이의 절충안을 직면했습니다.

발행자는 자체 서버에 폐쇄형 장부를 호스팅하고 자산을 완전히 통제할 수 있지만, 해당 장부는 단일 통화만 관리하며 상호 운용성이 없습니다. 외환 거래나 오프-장부 거래는 신뢰할 수 있는 제3자에 의해서만 실행될 수 있어 시장 접근을 제한하고 혁신을 저해할 수 있습니다. 반면, 발행자는 다른 이들과 협력하여 자산 간 거래를 본질적으로 지원하는 공동 장부를 유지할 수 있습니다. 그러나 흔들린 참여자들에 의해 공동 장부의 무결성이 훼손될 수 있으며, 이는 특정 자산 발행자의 보안과는 무관합니다.

스텔라는 신뢰할 수 있는 발행자가 자신들의 자산의 디지털 표현을 생성할 수 있도록 하는 이용 사례를 염두에 두고 정확히 구축되었습니다. 스텔라는 자산 발행자에게 내재된 신뢰를 활용하기 때문에 중앙은행 디지털 화폐(CBDC)에 특히 적합합니다. 공개 블록체인이지만, 스텔라는 채굴을 지원하지 않습니다. 대신, 보안은 두 가지 가정에 기반을 둡니다.

➔ 첫 번째로, 각 발행자는 자신의 자산의 보안을 보장하고자 하므로, 해당 자산에 대한 규범적 진실을 제공할 수 있다고 신뢰할 수 있습니다.

➔ 두 번째로, 발행자들은 세계의 다른 부분과 상호운용하고자 하는 강한 욕구를 가지고 있으며, 그렇게 함으로써 세계로부터 격리될 경우에는 “속임수”를 쓰거나 일방적으로 규칙에서 벗어나지 않을 것입니다. 거버넌스 권력은 원장에 있는 자산의 가치와 해당 자산을 발행하고 상환하는 당사자들과 동기화를 유지하고자 하는 참여자들의 욕구에서 비롯됩니다.

이 자산들의 상호 운용성, 보안성, 안전성은 기반 인프라를 통제하는 단일 기관 없이도 보장될 수 있습니다. 실제로, 시스템이 필요한 보호 조치를 유지할 수 있는 이유는 통제의 단일 출처가 없기 때문입니다.

이 문서는 스텔라 네트워크와 중앙 은행 디지털 화폐(CBDCs)에 대해 사용될 수 있는 방법을 소개합니다. 첫 번째 부분은 스텔라가 자산 발행에 관련하여, 그리고 따라서 CBDC를 고려 중인 중앙 은행에 가장 관련이 깊은 기능들을 살펴봅니다. 다음 부분에서는 스텔라에 CBDC를 가상으로 구현하는 방법을 설명하며, 중앙 은행에 어떤 주요 기능들이 이익이 될 수 있는지 강조합니다.

마지막으로, 부록에서는 중앙은행에게 유익한 기능과 특성을 생성하는 스텔라의 설계 방식에 대해 더 깊이 이해하고자 하는 독자들을 위해 스텔라의 새로운 합의 알고리즘에 대해 자세히 다룹니다.


왜 스텔라인가?

컴플라이언스가 상호 운용성과 만나다.

적합한 선택

스텔라는 자산 발행을 염두에 두고 설계된 오픈 소스, 탈중앙화된 블록체인 네트워크입니다. 스텔라는 허가되지 않은 원장의 상호 운용성과 유연성을 제공하면서 중앙 집중식이나 허가된 원장과 같이 내장된 보안, 확신 및 통제 기능을 갖추고 있습니다. 이러한 결합은 CBDC 발행에 특히 적합하게 만듭니다.

CBDC를 발행하는 것을 고려하는 모든 기관에게 중요한 네 가지 스텔라의 특징에 대해 알아보겠습니다.

테마는:

스텔라 코인 백서 1
[그림1] 네 가지 스텔라의 특징

CBDC는 스텔라

기본원칙

안전한 자산 발행

기본적으로 스텔라는 소유권을 추적하기 위한 시스템이며 수세기 동안 은행 및 회계사들이 사용해온 원장을 활용합니다. 이 원장은 계정과 해당 계정이 보유한 자산 잔액을 나열합니다. 원장을 수정하기 위해 계정 보유자는 거래를 서명하고 네트워크 노드에 제출합니다. 이 네트워크 노드는 원장의 상태 변경을 승인하는 연결된 컴퓨터입니다. 주로 사용자들은 자신의 계정 잔액 중 일부를 다른 사람의 계정으로 이동시킵니다. 다시 말해, 그들은 결제를 합니다. 이것이 바로 스텔라가 설계된 목적입니다: 결제입니다.

스텔라 결제는 원장에 기본적으로 연동된 자산에 제한되지 않습니다. 실제로 이 시스템은 사용자가 간단한 거래로 자체 자산을 발행하고 그 자산을 사용하여 결제할 수 있도록 만들어졌습니다. 모든 스텔라 계정은 자산을 발행할 수 있으며, 다른 계정이 발행한 자산의 잔액을 보유할 수 있습니다. 다른 블록체인의 자산과는 달리, 스텔라 자산은 스마트 계약의 결과가 아니라 기본적이고 내장된 네트워크 기능으로, 그들을 발행하는 것은 악용과 오류의 가능성을 도입하는 복잡한 코딩이 필요하지 않습니다. 이것은 원장에 항목을 추가하는 것만큼 간단합니다.

스텔라 계정은 공개키 암호화를 사용하여 안전하게 보호됩니다. 이는 원장상에서 각 계정이 문자와 숫자의 연속으로 표시된다는 것을 의미합니다. 그러나 이 시스템은 익명성이나 가명을 중시하거나 의존하지 않습니다. 오히려 그 반대입니다. 기관들은 현실 세계의 금융 상품을 대표하는 자산을 발행하며, 잠재적인 자산 보유자와 다른 상대방들의 신뢰를 얻기 위해 자신들, 자산, 그리고 스텔라 통합에 대한 검증 가능한 정보에 계정을 연결합니다. 사용자들이 스텔라 상에서 자산을 보유할 때, 그들은 누가 발행했는지, 그것이 무엇을 대표하는지, 그리고 환매 조건을 알 수 있습니다. 이러한 조건은 자산 발행자에 의해 정의되고 공개됩니다.

아래에서 볼 수 있듯이, 스텔라 원장을 유지하는 노드 중 많은 노드가 자산 발행자에 의해 운영되며, 이들은 또한 검증 가능한 식별 정보에 연결되어 있어 네트워크 사용자가 네트워크의 안전과 보안을 맡은 기관을 볼 수 있습니다. 이는 비트코인과 이더리움과 같은 다른 공개 블록체인과 매우 다릅니다. 거기서 노드는 익명이고 네트워크의 무결성에 대한 책임을 지는 개인과 기관이 알려지지 않습니다. 안전하고 일관된 네트워크를 구성하기 위해 노드가 어떻게 구성되는지에 대한 자세한 내용은 부록을 참조하십시오.

강화된 컴플라이언스 능력

발행자들은 스텔라 네트워크에서 자산을 구성하는 방법에 대해 여러 가지 선택지를 가지고 있습니다. 기본적으로 스텔라 자산은 네트워크 상의 모든 계정에서 보유될 수 있으며, 많은 발행자들에게는 이 설정이 충분합니다. 예를 들어 피아트 화폐로 보증된 스테이블코인을 발행하는 규제된 금융기관들은 종종 사용자 정보를 수집하고 적절한 고객 식별(KYC)/고객 신원 확인(CDD) 절차를 수행하여 가치를 네트워크로 이동하거나 네트워크에서 이동하기 전에 사용합니다. 이러한 절차로 많은 경우에 현지의 법률과 규정을 준수하는 데 충분합니다.

그러나 CBDC(Central Bank Digital Currency)를 포함한 특정 사용 사례들은 발행자가 자산에 대한 접근을 보다 강력하게 통제해야 할 수도 있습니다. 이러한 사용 사례를 수용하기 위해, 스텔라는 간단한 계정 플래그로 활성화할 수 있는 세 가지 설정을 제공합니다: 승인이 필요한 설정, 승인 취소가 가능한 설정, 그리고 회수 가능한 설정입니다.

“승인이 필요한”이 활성화되면, 계정이 해당 자산을 보유하거나 거래하기 전에 발행자의 승인이 필요합니다. 발행자는 그 승인을 부여하기 전에 필요한 확인을 수행할 수 있으며, 이를 통해 오직 알려진 개체나 KYC 또는 다른 컴플라이언스 검사를 통과한 고객만이 자신의 자산을 거래할 수 있도록 보장할 수 있습니다. “승인 취소가 가능한”은 보통 “승인이 필요한”과 함께 사용되며, 이를 통해 발행자는 특정 계정의 상태가 변경되면 해당 계정이 자신의 자산과 거래할 수 없도록 할 수 있습니다. 마지막으로 “회수 가능한” 설정은 발행자가 사용자의 계정으로부터 자신의 자산 잔액의 일부를 회수할 수 있게 합니다. 예를 들어, 중앙 은행이 사기로 인해 거래를 되돌리고 싶어할 경우, 회수 가능한 CBDC 설정이라면 그것이 가능합니다.

발행자들은 자산을 발행하기 전에 이러한 세 가지 설정 중 하나, 둘 또는 모두를 활성화할 수 있으며, 자산에 대한 접근을 세밀하게 조정할 수 있습니다. 이러한 옵션 메뉴는 발행자가 필요에 따라 제어 수준을 조정할 수 있도록 합니다.

강화된 컴플라이언스 능력

자산에 대한 접근을 통제하는 능력은 중요한 결과를 가져옵니다: 컴플라이언스 능력을 포기하지 않고도 공개 원장을 활용하여 디지털 화폐를 발행할 수 있게 합니다. 그러나 CBDC와 같은 현실 세계 통화의 발행자들이 이 가능성을 고려하려면 거래가 원장에 적용될 때 되돌릴 수 없거나 덮어쓸 수 없어야 한다는 확신도 필요합니다. 그들은 거래 확정성을 필요로 합니다.

자산에 대한 접근을 통제하는 능력은 중요한 결과를 가져옵니다: 이를 통해 공개 원장을 활용하여 디지털 통화를 발행할 수 있게 되면서도 컴플라이언스 능력을 포기하지 않을 수 있게 되었습니다. 그러나 CBDC와 같은 실제 세계 통화의 발행자들이 이 가능성을 고려하려면 거래가 원장에 적용될 때 되돌릴 수 없거나 덮어쓸 수 없다는 확신도 필요합니다. 그들은 거래의 확정성을 필요로 합니다.

스텔라는 현실 세계 자산 발행을 목적으로 설계되었기 때문에 네트워크를 구동하는 엔진인 스텔라 합의 프로토콜(SCP)은 이러한 요구사항을 고려하여 설계되었습니다. SCP의 메커니즘은 세부적으로 별지에 다루어져 있지만, 여기에서는 네트워크를 구동하는 방식에 대한 고수준 개요를 제공하겠습니다.

스텔라는 전 세계의 독립적인 개인 및 기관들이 운영하는 컴퓨터에 의해 복제되고 동기화된 원장을 가지고 있는 공개 블록체인 네트워크입니다. 이러한 컴퓨터는 발행자로 알려진 소프트웨어를 실행하여 SCP를 구현하여 거래를 수집, 승인하고 적용하여 원장을 업데이트합니다.

SCP와 같은 모든 블록체인 합의 프로토콜의 목적은 각 단계마다 발행자가 항상 동일한 거래 집합을 원장 역사에 추가하도록 하는 것입니다.

대략 매 5초마다, 스텔라 발행자들은 SCP를 따라 특정 프로세스를 거쳐 원장의 상태를 업데이트합니다. 먼저, 그들은 스텔라 사용자로부터 발행 자산이나 결제와 같은 작업을 수행하는 서명된 거래를 받습니다. 그런 다음, 그들은 서로 통신하여 이러한 거래를 공유하고 검증을 위해 거래 집합으로 그룹화합니다. 그런 다음, 그들은 해당 거래 집합에 투표합니다. 발행자의 과반수가 그것이 올바르다고 동의하면, 거래 집합이 수락되어 시스템의 기록에 추가됩니다. 각 원장이 이전 원장의 암호화 해시를 포함하고 있기 때문에, 과거 거래가 어떤 방식으로든 변경되었는지 쉽게 파악할 수 있으며, 따라서 원장이 닫힐 때마다 이전 데이터의 무결성이 사실상 전체 네트워크에 의해 확인됩니다.

그 설명을 읽으면 SCP가 다른 블록체인 합의 프로토콜과 많은 면에서 유사하다는 것을 알 수 있습니다. 그러나 Proof-of-Work 및 Proof-of-Stake 프로토콜과는 달리 SCP는 위에서 언급한 대로 익명 노드가 아닌 확인된 신원을 가진 조직에 의해 운영되는 발행자에 의존합니다. 이러한 발행자들은 거래 집합을 원장에 추가하기 위해 경쟁하지 않습니다. 대신, 각각은 거래 집합을 평가할 때 프로그램적으로 참고할 다른 발행자 하위 집합을 지정하고, 그 하위 집합이 승인하면 거래 집합을 수락하도록 투표합니다. 발행자가 한 번 승인하면 그 결정은 최종이며, 그가 승인한 거래 집합은 덮어쓸 수 없습니다. 이는 가장 긴 체인으로 기본 설정되는 다른 프로토콜과는 다릅니다. 이러한 임시 분기로 인해 일부 다른 네트워크는 거래가 뒤바뀌지 않을 것임을 확신하기 위해 여러 “확인”을 기다려야 하며, 이는 10분 이상 소요될 수 있습니다. 스텔라에서는 거래가 한 번의 확인 후에 확정되며, 이는 약 5초가 소요됩니다.

조직이 네트워크에서 자산을 발행할 때, 그들은 거래 확정을 강제할 특정 발행자를 지정하며, 해당 발행자는 원장의 상태에 대한 진실의 근원으로 작용합니다. 종종 발행자들은 자신의 발행자를 운영하고(지정하고) 자신이 거래 집합을 승인할 때 참고하는 발행자 하위 집합을 통제하기 위해 자체 발행자를 운영합니다. 그리고 CBDC의 발행자는 발행자가 아마도 하는 것입니다. 발행자의 발행자가 손상되지 않는 한(및 기본 디지털 서명 및 암호화 해시가 안전하다면), 발행자는 발생한 거래를 정확히 파악하고 블록체인 기록 재구성으로 인한 손실 위험을 피할 수 있습니다.

스텔라와 지속 가능성

SCP가 계산 경쟁이 아닌 투표에 의존하기 때문에, 스텔라는 다른 많은 블록체인과 같이 엄청난 양의 에너지를 소비하지 않습니다.

스텔라 네트워크의 에너지 효율성은 매우 뛰어나다고 할 수 있습니다. 한 거래당 약 0.22Wh의 전력을 사용한다는 것은 비트코인의 에너지 사용량의 1000만분의 1 정도에 해당하며, 비자 네트워크와 유사한 수준이라는 것을 의미합니다. 이는 스텔라의 환경 친화적인 특성을 강조하며, 블록체인 기술의 지속 가능성을 강조하는 데 중요한 정보입니다.5 현재 지속적으로 진행 중인 기후 위기에 있어서, 블록체인 네트워크를 통해 자산을 발행하는 것을 고려하는 모든 당사자들에게 이러한 사실은 중요할 것으로 예상됩니다. 에너지 효율적인 블록체인 네트워크를 통해 자산을 발행하고 거래하는 것은 지속 가능한 금융 시스템을 구축하는 데 일조하며, 이는 중앙은행을 포함한 다양한 기관들에게 중요한 고려사항입니다.

자동 상호 운용성

스텔라는 자산 승인 기능과 거래 확정을 제공함으로써 발행자들에게 놀라운 일을 할 수 있는 기회를 제공합니다. 그들은 검증되지 않은 엔티티에 의존하지 않고 자산을 제어하는 것을 잃지 않으면서도 검증된 공개 블록체인을 활용하여 자산을 발행하고 배포할 수 있습니다.

스텔라와 같은 공개 네트워크에서 자산을 발행하는 것은 다음과 같은 주요 이점을 제공합니다.

스텔라 코인 백서 1
[그림2] 자산 발행 시 주요 이점

공개 네트워크에서 자산을 발행하는 또 다른 큰 이점은 자동 상호 운용성입니다.

스텔라는 전 세계의 다양한 기관에서 발행된 자산을 호스팅하는 것 외에도 자산 쌍 간의 시장을 기본적으로 지원합니다. 단일 거래에서 사용자는 해당 시장을 통해 결제를 라우팅할 수 있어 화폐를 송금하고 전환할 수 있습니다. 이는 국경을 넘어 결제를 쉽고 효율적으로 처리하며 저렴하게 만들기 위해 설계된 기능입니다.

오늘날 스텔라는 규제된 금융 기관에서 발행된 피아트화폐로 보증된 디지털 자산인 안정화폐를 다양하게 호스팅하고 있습니다. 이러한 자산의 발행자들은 네트워크 인터페이스, 지갑 및 기타 응용프로그램을 구축하는 기업들과 협력하여, 분열된 결제 시스템에 의해 발생하는 실제 문제에 혁신적인 해결책을 제공하고 있습니다. 예를 들어, 회사들은 국제 송금을 대리은행을 거치지 않고 유럽에서 아프리카로 직접 송금할 수 있도록 스텔라를 활용하고 있습니다. 그들은 고객에게 기존 방식에 비해 더 저렴하고 빠른 대안을 제공하며, 이는 비즈니스와 세계에게 모두 좋은 일입니다.

이 기능은 중앙은행이 스텔라 상에 CBDC(중앙은행 디지털 통화)를 발행하는 경우에 더욱 강력해집니다. 자동으로 상호 운용이 가능한 공통 원장 상의 국가 통화는 안전하고 투명하며 마찰이 적은 글로벌 상업을 용이하게 할 수 있습니다. 네트워크 상에서 소비자 및 비즈니스를 대상으로 제품과 서비스를 개발하는 개발자와 기업가들은 이러한 통화에 맞게 제품을 맞추어 금융 접근성을 제공하고 분리된 시장을 연결하는 데 더 많은 일을 할 수 있습니다.

컴플라이언스 솔루션을 개발하고 유동성을 제공하며 네트워크 서비스를 제공하고 자금 이체를 처리하는 기업들이 협력하여 중앙 은행 및 규제 기관과 함께 일함으로써 공통 인프라가 기업의 요구를 충족하고 소비자를 보호할 수 있도록 보장할 수 있습니다.

참여를 촉진함으로써 스텔라와 같은 오픈 네트워크는 경쟁을 유발하고 혁신을 촉진합니다. 다양한 이해 관계를 동원하여 문제를 식별하고 해결책을 개발하며 창의적인 아이디어의 다양성을 이용합니다. 현재 중앙 은행들이 CBDC에 대해 고려하는 시점에서, 그들은 처음부터 이러한 연결을 용이하게 하는 새로운 시스템을 구축할 기회가 있습니다. CBDC가 오픈 네트워크 상에 발행된다면, 더 나은 세계를 영감시키고 오늘날의 격리된 결제 시스템으로 인해 발생하는 문제를 피할 수 있을 것입니다.

전통적인 금융 체계 및 다른 블록체인과의 상호 운용성

“안전한 자산 발행”에서 설명된 대로, 스텔라는 규제된 금융 기관이 자산을 발행할 것을 염두에 두고 설계되었습니다. 다른 말로 하면, 스텔라는 처음부터 전통적인 금융 시스템과의 상호 운용성을 갖도록 설계되었습니다. 핵심 기능, API 및 도구는 은행 및 기타 전통적인 금융 기관이 쉽게 연결하고 시스템과 상호 작용할 수 있도록 구축되었습니다. 이것이 바로 “상호 운용성”입니다. 이러한 상호 운용성은 다른 블록체인 네트워크로도 확장됩니다. 스텔라는 CBDC에 맞게 설계되었지만, 일부 중앙 은행은 대신 다른 블록체인 네트워크에서 자산을 발행할 수도 있습니다. 금융 기관과의 상호 작용을 가능케 하는 것들이 스텔라 자산이 다른 네트워크 상의 자산과 상호 작용할 수 있도록 쉽게 만듭니다. 스텔라 생태계 내의 기업들은 이미 다른 블록체인과의 연결을 구축하여 원장을 건너 뛰는 거래를 가능하게 하여 일반화된 기능의 가능성을 열고 있습니다.

스텔라 상에서 CBDC를 실행하는 것

기능을 넘어

제2부에서는 CBDC 발행에 유용한 스텔라의 일반적인 기능을 많이 다뤘습니다. 본 섹션은 실제로 해당 기능이 어떻게 작동할 수 있는지를 강조하기 위해 스텔라 상의 CBDC의 샘플 구현을 제공합니다. 물론 각 기관마다 다양한 요구 사항이 있을테니, 이것은 단순히 예시일 뿐입니다. 어떤 CBDC의 정확한 설계와 구성은 추가 기술적, 정책적 및 운영적 연구가 필요합니다. 그러나 본 섹션은 독자에게 스텔라 상에서 가능한 것에 대한 감을 줄 것입니다.

아래 다이어그램은 설계의 주요 구성 요소를 보여주고 있으며, 각각에 대해 자세히 논의될 것입니다. 이 설계는 중앙 은행이 디지털 통화를 주조하여 금융 기관에 배포하고, 그들이 최종 사용자에게 배포하는 이른바 “이중계층 시스템”을 가정하고 있습니다. 스텔라 상에는 많은 다른 설계도 구현될 수 있습니다.

스텔라 코인 백서 3
[그림3] 스텔라 상의 CBDC 샘플 구현입니다. 이것은 많은 중앙 은행이 선호하는 2계층 모델입니다. 중앙 은행이 CBDC를 직접 소비자에게 배포하는 1계층 모델 또한 스텔라 상에 구현될 수 있습니다.

중앙은행 계정 설정, 주조, 그리고 배포

스텔라 상에서 CBDC를 발행하기 위해 중앙 은행은 발행 계정과 배포 계정이라고 부를 두 개의 스텔라 계정을 생성해야 합니다. 발행 계정은 새 토큰이 주조될 때의 출처 계정입니다. 토큰을 주조하려면 발행 계정이 분배 계정에 지불을 시작하여 토큰을 생성합니다. 한번 주조되면, CBDC는 분배 계정에 보관됩니다. 거기서 중앙 은행은 “2계층”으로 작용하는 상업 은행에 필요에 따라 이체할 수 있습니다.

KYC/CDD 및 최종 사용자에 대한 분배

스텔라의 승인이 필요한 기능을 활용함으로써, 중앙 은행은 자신이 명시적으로 승인한 계정에만 자산이 보관되도록 제한할 수 있습니다. 오늘날 은행 계좌를 개설할 때와 마찬가지로, 중앙 은행은 CBDC를 받기 위해 최종 사용자의 스텔라 계정을 승인하기 전에 KYC/CDD 확인이 이루어졌음을 확인해야 합니다. 기존 시스템에서 은행, 금융 기관, 핀테크 기업 및 기타 (이들을 “확인자”라고 부르겠습니다)은 중앙 은행이 아닌 사용자와 직접 상호 작용하며 이 책임을 지고 있습니다. CBDC도 마찬가지입니다. 확인자는 모든 적절한 KYC/CDD 검사를 처리하여 CBDC 토큰이 완전히 검토되지 않은 계정에 보관되지 않도록 할 수 있습니다.

이를 수행하는 정확한 과정은 보호지갑과 자체 호스트 지갑에 따라 약간 다를 수 있습니다. 보호지갑은 지갑 운영자가 디지털 자산을 보유한 스텔라 계정을 통제하는 지갑입니다. 대부분의 경우, 이는 지갑 운영자가 모든 사용자를 위한 회계계좌로 사용하는 단일 스텔라 계정을 유지함을 의미합니다 (전통적인 지갑 앱이 은행 계좌를 일반적으로 사용하는 방식과 유사합니다). 오늘날 금융 기관 및 다른 규제된 기관과 마찬가지로, 이러한 지갑은 사용자의 KYC/CDD 확인을 처리할 것입니다. 중앙 은행은 지갑 운영자의 회계계좌만 승인하면 됩니다.

자체 호스트 지갑은 각 개별 사용자가 자체 개인 키를 관리하는 지갑으로, 따라서 지갑 제공업체는 각 사용자의 기본 스텔라 계정을 통제하지 않습니다. 이 경우, 지갑 제공업체는 “자금의 흐름”에 참여하지 않으며, 단지 사용자가 스텔라 네트워크와 상호 작용하는 데 도움을 주는 기술을 제공할 뿐입니다.

자체 호스트 지갑의 경우, KYC/CDD를 담당할 지갑 운영자가 없기 때문에 스텔라 계정을 승인하기 위한 보다 자동화된 프로세스가 필요할 것입니다. 이러한 문제를 해결하기 위해 중앙 은행은 확인자가 현금으로 보증된 스텔라 자산을 발행하는 현재의 프로토콜을 활용하여 KYC/CDD를 수행할 수 있도록 상대적으로 간단한 프로세스를 설정할 수 있습니다. 기본적인 단계는 다음과 같을 것입니다 :

모든 스텔라 계정은 암호화 키로 보호되며, 해당 계정에서 자산을 이동하는 모든 거래에 서명해야 합니다. 계정은 여러 개의 서명 키로 설정될 수 있으며, 거래를 위해 일정 수의 키가 필요합니다. 이 예에서 발행 계정은 세 개의 키로 보호되며, 이 중 3개 중 2개가 거래에 서명하는 데 필요합니다. 중앙 은행은 이미 민감한 전자 자격 증명 및 키 하드웨어의 물리적 액세스를 관리하는 데에 경험이 있으므로, 이러한 스텔라 계정의 키를 관리하는 것은 그들이 현재 가지고 있는 책임과 본질적으로 다르지 않을 것입니다.

  1. 개인이 특정 계정을 제어한다는 것을 확인하기 위해 검증자에게 시험 거래를 보내는 과정
  2. 검증자가 프로그램적으로 KYC/CDD 정보를 수집하는 과정
  3. 검증자가 개인의 KYC/CDD를 확인하는 과정
  4. 검증자가 중앙 은행이 유지하는 API에 계정을 승인 요청하는 과정
  5. 중앙 은행 API가 계정을 승인하는 과정

이 시스템에서 중앙 은행은 모든 계정을 수동으로 검토할 필요가 없습니다.

스텔라 코인 백서 4
[그림4] 관리형 지갑에서는 지갑 운영자가 스텔라 계정과 키를 직접 관리합니다. 자체 호스팅 지갑에서는 각 사용자가 자신의 스텔라 계정을 가지고 있으며, 자신의 키를 직접 관리합니다.

스텔라 호스팅 지갑과 금융 포용성

자체 호스트 지갑은 사용자가 자산을 완전히 통제하기 때문에 사용자의 주머니에 현금을 들고 다니는 것과 가장 가까운 형태의 디지털 형태입니다. 이러한 이유로 자체 호스트 지갑은 금융 포용성을 증진하는 데 유용한 도구가 될 수 있습니다. 사용자들은 개인 키를 관리하는 등 새로운 행동을 배워야 하지만, 기본적인 사용은 현금 사용과 유사하게 비유될 수 있습니다.

은행 계좌를 보유하지 않는 사람들의 경우, 중앙 은행은 전통적인 금융 기관 이외의 확인자를 사용하여 일반인의 스텔라 계정을 CBDC 보유를 위해 승인하는 데 활용할 수 있습니다. 우체국은 그들의 지리적 영향력과 대중들의 익숙함을 고려할 때 흥미로운 옵션이 될 수 있습니다. 개인은 우체국에 가서 필요한 신분증을 제시하고, 그 후에 계정 제어를 확인하기 위해 필요한 시험 거래를 로드하기 위해 QR 코드를 스캔하는 등 간단한 프로세스를 따를 수 있습니다. 이러한 방식으로 전체 승인 프로세스가 몇 분 안에 완료될 수 있으며, 사용자는 현금의 간편함과 전자화폐의 보급 및 안전 장점을 누릴 수 있게 됩니다.

소각

현재 시스템에서 상업 은행은 주기적으로 중앙 은행으로 현금을 송금하여 증가된 유동성을 얻습니다. CBDC 환경에서는 이를 분배 계정으로 CBDC를 송금함으로써 수행할 수 있습니다. 중앙 은행은 분배 계정으로부터 CBDC를 다시 발행 계정으로 송금함으로써 CBDC를 완전히 철회할 수 있습니다. CBDC를 발행 계정으로 송금하면 해당 토큰이 소각되어 분개장에 더 이상 표시되지 않게 됩니다.

중앙 은행의 유효성 검사기

추가로 위에서 설명한 계정 설정 외에도, 중앙은행은 스텔라 검증자를 운영함으로써 네트워크의 전반적인 회복력과 보안에 기여할 수 있습니다. 검증자는 네트워크의 노드로서, 스텔라 코드를 실행하여 원장의 사본을 유지하고 거래를 처리합니다. 검증자를 운영함으로써, 중앙은행은 자신의 검증자가 유지하는 원장을 CBDC 잔액의 확정적인 출처로 간주할 수 있습니다. 부록에서 더 자세히 설명되어 있듯이, 스텔라의 검증자들은 원장을 유지하기 위해 누구를 신뢰할지 선택합니다. 이는 검증자가 거래를 처리하고 원장을 업데이트하기 직전에, 신뢰하는 검증자들이 제안된 변경 사항에 동의하는지 확인한다는 것을 의미합니다. 이 방식을 통해 스텔라의 검증자들은 원장을 안전하고 일관되게 유지하기 위해 의존하는 조직이 무엇인지 정확히 알 수 있으며, 익명의 행위자에 의존하지 않습니다.

중앙은행은 자체 규제 기관이나 다른 나라의 중앙은행과 같은 신뢰할 수 있는 기관들을 신뢰할 수 있는 검증자로 선택할 것입니다. 이러한 검증자들은 중앙은행의 운영과 거래의 보안 및 무결성을 보장하는 데 도움을 줄 것입니다.

이러한 설정은 두 가지 주요 결과를 달성합니다. 첫째, 중앙은행의 검증자들이 어떤 이유로 작동을 멈추더라도, 이러한 다른 검증자들이 거래를 계속 처리함으로써 CBDC의 거래가 계속될 수 있어 탄력성을 증진시킵니다. 둘째, 안전성을 증진시킵니다; CBDC를 공격하려면 이러한 다른 엔터티들의 일부 검증자들을 타협해야 하며, 이들의 전문성과 규모를 고려할 때 이는 매우 어려울 것입니다..

이것은 다른 네트워크와는 달리, 공격자가 충분한 계산력이나 총 자본을 모아 시스템을 해치는 것을 가능하게 합니다.

스텔라의 프로그래밍 기능

많은 중앙은행들이 CBDC 연구에서 “프로그래밍 가능성”을 주요 장점 중 하나로 보고 있으며, 따라서 기초 기술에는 “스마트 계약” (네트워크에서 실행되는 임의의 프로그램을 작성할 수 있는 기능)이 있어야 한다고 믿고 있습니다. 스텔라에는 이러한 유형의 스마트 계약이 없지만, 대부분의 경우 CBDC의 프로그래밍 가능성을 위해 스마트 계약은 필요하지 않으며, 오히려 보안 위험을 도입합니다.

프로그래밍 가능성의 중요한 측면은, 그 소프트웨어의 실행이 분산되어 있지 않더라도, 기업들이 CBDC와 상호 작용하는 소프트웨어를 쉽게 작성할 수 있다는 것입니다. 현재의 결제 및 은행 시스템은 사적 행위자들이 이를 수행하기 어렵게 설계되었기 때문에, 이는 전 세계적으로 오픈 뱅킹(initiatives)을 촉발하였습니다. 스텔라가 오픈 네트워크인 점을 고려할 때, 스텔라는 이러한 같은 문제를 겪지 않을 것입니다.

게다가, 중앙은행이 상상하는 “프로그래밍 가능성”의 상당 부분은 스텔라의 기본 기능을 사용하여 달성될 수 있는데, 이에는 다중 서명 계정과 일괄 처리 거래가 포함되어 있으며, 임의의 스마트 계약에서 발생할 수 있는 버그와 보안 결함의 위험을 도입하지 않습니다. 예를 들어, 사회 복지 지급금이 특정 항목(예: 식품, 임대료, 건강 관리)에만 사용되도록 하는 것이 흔히 제기되는 사용 사례입니다. 이는 스텔라에서 별도의 자산을 이러한 지불금에 대해 발행하고(이는 일반 CBDC와 같은 법정 화폐가 될 것입니다), 그것을 보유할 수 있도록 승인되기 전에 계좌가 승인 과정을 거치도록 함으로써(스텔라의 승인 필요 기능을 사용하여) 매우 쉽게 해결될 수 있습니다. 이 방법을 통해, 중앙은행은 해당 자금이 제외된 항목에 사용되지 않는다는 것을 확신할 수 있습니다.

결론

작업이 시작됩니다。

본 논문은 스텔라가 중앙 은행 디지털 통화(CBDC) 발행에 독특하게 적합한 방법을 살펴보고 샘플 구현을 제시했습니다. 실제 구현에는 정책 결정자, 경제학자, 기술자들의 세심한 작업이 필요합니다. 인터넷의 발전과 마찬가지로, 블록체인 기술은 공공부문과 사설 당사자가 함께 협력하여 그 가능성을 상상하는 경우에 세상에 가장 큰 영향을 미칠 것입니다. 저희는 스텔라가 이 여정에서 발휘할 수 있는 역할을 기대합니다.

이 논문에 대한 질문과 의견은 다음으로 보내주시면 됩니다: partnerships@stellar.org.

부록

참고 자료

SCP 조사 결과

이 부록은 스텔라 합의 프로토콜(“SCP”)에 대해 더 상세히 설명합니다. 스텔라는 자산 발행자(중앙 은행과 같은)에게 허가된 시스템의 확실성, 안전성 및 제어력과 함께 허가 없는 네트워크의 개방성 및 상호운용성을 제공합니다. 이 부록은 스텔라의 설계가 어떻게 이러한 특성을 이끌어내는지 설명하고자 합니다.

이우리는 먼저 일반적인 합의 프로토콜에 대해 논의하며, 블록체인에서 사용되는 가장 일반적인 유형(작업 증명과 지분 증명)에 대한 간략한 설명으로 시작합니다. 그런 다음 SCP가 어떻게 작동하는지, 직관을 구축하는 데 도움이 될 비유를 포함하여 설명합니다. 이러한 기초를 마련한 후, SCP가 실제로 중앙은행에 어떤 이점을 제공하는지 보기 위해 가상의 CBDC 발행으로 전환합니다.8

일반적으로 합의 프로토콜

모든 블록체인 네트워크(스텔라를 포함한)은 원장의 사본을 저장하는 여러 대의 컴퓨터로 구성되어 있습니다. 블록체인은 이러한 컴퓨터가 거래를 확인하고 원장을 업데이트하는 규칙을 설정합니다. 블록체인의 “합의 프로토콜”은 네트워크가 모든 원장 사본이 일치하도록 하는 데 사용하는 규칙 체계를 가리킵니다. 아마도 가장 널리 알려진 합의 프로토콜은 비트코인 네트워크에서 사용되는 작업 증명(Proof-of-Work)이며, 현재 이더리움 네트워크가 사용 중인 작업 증명에 대신하여 전환할 예정인 지분 증명(Proof-of-Stake)입니다.

우리의 목적을 이해하는 중요한 점은 이 두 시스템에서 기여하는 나만의 고유한 것입니다. 이러한 네트워크에서 부서를 운영하는 조직은 인원 범위를 끌어들이는 데 도움을 주는 조직이 누구인지 알 수 있는 방법이 없습니다. 결과적으로 이러한 시스템은 무력화를 시도할 수 있으면 손상될 수 있습니다. 작업의 경우, 네트워크에서 정리 능력의 51%를 구성원 조직이 원장을 조직할 수 있고, 포괄적인 증명의 경우에도 전체 스테이킹의 51%를 구성원 조직이 원장을 조직할 수 있습니다. 9

각주

  • 8 본 부록은 SCP의 주요 측면을 설명하는 데 그치며, 프로토콜을 기술적이고 철저하게 다룬 것은 아닙니다. SCP에 대한 공식적인 처리를 원하시면 Mazières, David의 ‘The Stellar Consensus Protocol: A Federated Model for Internet-level Consensus’를 참조하시기 바랍니다. 해당 자료는 www.stellar.org/papers/stellar-consensusprotocol(이하 “SCP Paper”)에서 확인하실 수 있습니다.
  • 9 대부분의 공격을 증명하는 시스템이 동일한 것을 시도하는 경우, 해당하는 것은 공격하는 것입니다. 이러한 논리에 따르면, 공격하는 것은 큰 규모의 가치를 창출하는 데 그 어떤 공격을 추구하려는 욕구가 있는 것입니다. 그러나 우리는 CBDC의 경우가 주장이 맞다고 보고합니다. 현금 관리에서 발행된 CBDC의 총 가치는 기본 폐기물 자산의 총 가치보다 훨씬 큰 규모이고, 나누는 공격자들은 자들에 대한 비금융 적 동기를 가질 수 있기 때문에 돈을 쓸 수 없으며 그 가치가 있을 수 있습니다.

상자 1. 공통 합의 메커니즘

프루프 오브 워크(Proof-of-Work) 시스템에서는 네트워크의 노드들이 새로운 거래 블록을 추가하기 위해 어려운 계산 문제를 가장 먼저 해결하려고 경쟁하며, 그 과정에서 보상을 받습니다. 문제를 해결하면, 그들은 새로운 블록(그리고 어려운 문제를 해결한 증거)을 방송하고, 다른 노드들은 그것을 자신들의 장부 기록에 추가합니다. 그 후, 모두가 새로운 거래 블록 작업에 착수하게 되고, 이 과정이 반복됩니다.

프루프 오브 스테이크(Proof-of-Stake) 시스템에서는 새로운 블록이 고려될 때마다 일련의 노드가 무작위로 선택되어 그것을 검토하고 인증합니다. 노드가 선택될 확률은 노드가 위험에 빠뜨린 가치의 양, 즉 “스테이크”에 기반합니다. 노드가 사기성 블록을 인증하려고 시도하면, 그 스테이크의 일부 또는 전부를 잃게 됩니다.

스텔라 합의 프로토콜

SCP (Stellar Consensus Protocol)는 Proof-of-Work 또는 Proof-of-Stake와 매우 다르게 작동합니다. 가장 중요한 차이점은 Stellar의 노드가 익명이 아니라는 것입니다. 네트워크에 참여하는 사람들을 전혀 모르는 대신, 노드를 운영하는 모든 조직은 해당 조직이 관리하는 공개 웹 페이지에 특별한 문서(톰(TOML) 파일이라고 함)를 게시할 것으로 예상됩니다. 예를 들어, Stellar Development Foundation(“SDF”)이 운영하는 노드의 톰 파일은 SDF가 관리하는 stellar.org 도메인의 페이지에 게시되었습니다. 이 파일은 특정 Stellar 노드가 SDF에서 운영한다는 것을 명시적으로 식별합니다. Stellar에서 노드를 운영하는 조직의 이러한 투명성은 중앙 은행이 Stellar에서 안전하게 CBDC를 발행할 수 있는 방법을 이해하는 데 핵심적입니다.10

투표

스텔라 네트워크에서 합의에 참여하는 노드들을 “검증자(validator)”라고 하며, 이들은 원장에 대한 제안된 변경 사항에 대한 다양한 명제에 투표함으로써 이를 수행합니다.11 예를 들어, 검증자들은 약 5초마다 새로운 거래 세트를 원장 이력에 적용할지에 대해 투표합니다. 해당 투표가 통과되면, 해당 거래는 “블록체인”의 공식적인 부분이 되며, 원장 자체의 잔액을 업데이트하는 데 사용됩니다.

스텔라는 노드가 시간이 지남에 따라 가입하거나 나가는 오픈 네트워크이며, 네트워크 지연 및 예기치 못한 다운타임과 같은 실제적인 상황으로 인해 복잡성이 발생할 수 있습니다(다른 모든 네트워크에서 발생할 수 있는 것과 마찬가지로). 따라서 투표는 모든 노드가 “찬성” 또는 “반대”를 말하는 것만큼 간단하지 않습니다. 대신, 노드들은 네트워크가 서로 다른 원장 수정에 대해 다른 노드들이 투표할 때 막히지 않도록 다단계 프로세스를 거치게 됩니다.

저희 목적상 이 과정의 모든 세부사항을 살펴볼 필요는 없습니다. 두 가지 주요한 포인트를 제외하고는요.

각주

  • 10 SDF가 스텔라 네트워크 상에서 노드를 운영하더라도, SDF는 네트워크를 소유하거나 운영하거나 통제하지 않는다는 점을 주목해야 합니다.
  • 11 스텔라에는 실제로 세 가지 다른 유형의 노드가 있습니다. 이 부록에서는 “노드”와 “검증자”를 서로 바꿔 사용합니다. 스텔라 노드 유형에 대한 자세한 정보는 아래 링크에서 확인할 수 있습니다. https://developers.stellar.org/docs/ run-core-node/#types-of-nodes

첫째, 새로운 거래 세트를 선택할 시점에 네트워크는 두 가지 구분된 단계, 즉 지명(nomination)과 투표(balloting)를 거칩니다. 지명은 “이것은 적용을 고려해야 하는 거래 세트다”라는 명제에 대한 투표를 의미합니다. 한 번 이와 같은 명제가 지명되면(즉, 후보 거래 세트가 선택되었다는 의미), 투표는 원장에 적용할 정확히 하나의 후보 거래 세트를 선택하는 과정입니다.

둘째, 특정 명제에 대한 투표는 노드가 그 명제에 대해 두 가지 유형의 투표를 하는 것을 의미합니다: “x를 승인한다(accept x)”와 “x를 확인한다(confirm x)”. 이를 다음과 같이 생각할 수 있습니다:

  • “x를 승인한다” = “나는 x에 투표할 준비가 되어 있으며, 다른 것에는 투표하지 않을 것이다”
  • “x를 확인한다” = “나는 x에 투표한다”

이러한 기초를 토대로, 우리는 이제 SCP(Stellar Consensus Protocol)가 어떻게 작동하는지를 살펴볼 수 있습니다.

회의 참석 정족수 “Quorums”

SCP의 목적은 노드들이 항상 동일한 거래 세트를 원장 이력에 추가하도록 하는 것입니다. 이를 통해 어떤 두 노드에서도 유지되는 완전한 원장 이력과 현재 원장 상태가 동일하게 유지됩니다.

주요 규칙은 다음과 같습니다: 다른 노드들의 쿼럼이 “x를 수락한다(accept x)”로 투표할 때까지 노드는 “x를 확인한다(confirm x)”로 투표할 수 없습니다. 이 규칙은 명백히 “쿼럼”의 정의를 요구하며, 이를 위해 쿼럼 집합(quorum set), 쿼럼 슬라이스(quorum slice) 및 마지막으로 쿼럼(quorum)이라는 세 가지 주요 정의를 통해 구축할 것입니다.

첫째, Stellar의 모든 노드는 명시적으로 신뢰하는 다른 노드들의 집합을 정의합니다. 해당 노드와 함께 이러한 노드들을 해당 노드의 쿼럼 집합이라고 합니다. 노드의 쿼럼 집합은 해당 노드가 결코 의견 차이를 두고 싶어하지 않는 노드들의 집합으로 생각할 수 있습니다.

둘째, 각 노드는 자신의 쿼럼 집합 내 다른 노드 중 몇 개가 동일하게 투표해야 투표가 성공해야 하는지에 대한 임계값을 정의합니다.12 해당 임계값은 쿼럼 집합의 여러 하위 집합을 생성하며, 이러한 하위 집합을 쿼럼 슬라이스라고 합니다. 예를 들어, 아래 다이어그램은 노드가 쿼럼 집합 내에 3개의 다른 노드를 가지고 있고 임계값이 2인 경우 3가지 다른 쿼럼 슬라이스가 있다는 것을 보여줍니다.

스텔라 코인 백서 5
[그림5] 다이어그램 및 쿼럼 집합

각주

  • 12 전체 쿼럼 집합의 합의를 요구하면 실용적이지 않을 것입니다. 왜냐하면 해당 집합에 있는 단일 노드가 루틴 유지보수나 예기치 않은 장애와 같은 이유로 다운될 경우 노드가 멈추게 될 수 있기 때문입니다. 하위 집합을 허용함으로써 시스템이 탄력적이게 됩니다.

이제 우리는 마침내 쿼럼을 정의할 수 있습니다. 쿼럼은 해당 쿼럼 집합 내 각 노드에 대해 최소한 하나의 쿼럼 슬라이스를 포함하는 노드의 집합입니다. 다른 말로 하면, 쿼럼 내의 각 노드 V에 대해 적어도 V의 쿼럼 슬라이스 중 하나가 쿼럼에 포함되어 있습니다. 아래 다이어그램에서 화살표는 어떤 노드가 해당 노드의 쿼럼 집합에 있는지를 보여주며, 모든 노드가 쿼럼 슬라이스를 위해 최소한 2개의 다른 노드를 요구한다고 가정합니다.

이제 이전에 언급된 주요 규칙을 이해할 수 있습니다: 노드 N은 “확인 x(confirm x)”로 투표하기 전까지는 다른 노드들의 쿼럼이 “수락 x(accept x)”으로 투표한 것을 확인하지 않습니다. 따라서 노드 N이 원장 이력에 추가할 거래 세트를 확인하는 경우, 해당 노드는 해당 거래 세트를 수락하고(confirm it themselves) 확인할 준비가 된 노드들의 집합(자신을 포함한)이 쿼럼을 구성하는 노드들이 수락할 때까지 기다립니다. 중요한 점은 N이 자신의 쿼럼 슬라이스 중 하나가 세트를 수락했다는 것을 보는 것만으로 충분하지 않습니다. N은 쿼럼의 전체가 세트를 수락했다는 것을 보아야 합니다(이는 정의상 N의 쿼럼 슬라이스 중 하나를 포함할 것입니다). 그런 다음에만 N은 거래 세트를 확인하고 해당 거래를 원장에 적용할 수 있습니다.

스텔라 코인 백서 6
[그림6] 쿼럼 예시

이제 우리는 이전에 언급된 핵심 규칙을 이해할 수 있습니다: 노드는 다른 노드들이 “x를 수락하다”라고 투표하는 쿼럼을 보기 전까지 “x를 확정하다”라고 투표할 수 없습니다. 그러므로, 노드 N이 자신의 원장 이력에 추가할 일련의 트랜잭션을 확정하는 것을 고려할 때, 쿼럼을 구성하는 일련의 노드들(자기 자신을 포함하여)이 수락했다고 투표할 때까지 기다립니다(즉, 그들 스스로도 이를 확정할 준비가 되어 있다는 의미입니다). 중요한 것은, N이 자신의 쿼럼 조각 중 하나가 일련의 트랜잭션을 수락했다는 것을 보는 것만으로는 충분하지 않다는 점입니다; N은 전체 쿼럼(정의상 N의 쿼럼 조각 중 최소 하나를 포함할 것입니다)이 일련의 트랜잭션을 수락했다는 것을 보아야 합니다. 오직 그 때만 N은 트랜잭션 세트를 확정하고 이를 자신의 원장에 적용할 수 있습니다.

수학 시험 비유

이 규칙을 더 잘 이해할 수 있도록 다음과 같은 비유를 고려해보겠습니다. 완벽하지는 않지만, SCP의 설계에 대한 직관을 이해하는 데 도움이 될 것입니다.

상상해 보세요. 여러분이 큰 수학 수업에서 집으로 가져가 풀어야 하는 시험을 보고 있고, 제출하기 전에 다른 학생들과 답을 비교할 수 있다고 합니다. 자연스럽게 각 학생은 시험에 도움을 줄 수 있는 다른 학생들의 집단을 신뢰하게 될 것입니다. 예를 들어, 나는 아이작(Isaac), 레너드(Leonard), 에미(Emmy)를 신뢰할 수 있지만, 여러분은 아이작(Isaac), 아다(Ada), 칼(Carl)만 신뢰할 수 있을 겁니다. 모두가 자신만의 선호도를 갖고 있습니다.

또한, 각 학생마다 시험을 제출하기 위해 자신이 신뢰하는 친구들 중 몇 명의 동의가 필요한지에 대한 임계값이 있을 것입니다. 제가 내 답안에 동의하는 친구가 최소 2명이라면 시험을 제출하는 데 편안해할지 모르지만, 당신은 3명이 필요할지도 모릅니다.

이 시나리오를 통해 SCP의 설계 원리를 이해할 수 있습니다. 시험을 준비하는 과정에서, 학생들은 서로의 답을 비교하며 공부하는 최선의 방법은 공부 그룹을 형성하고, 그룹 내 모든 사람이 답을 합의하기 전에 제출하는 것입니다. 자신이 신뢰하는 친구들이 충분히 포함된 그룹을 선택하게 될 것입니다. 이렇게 함으로써 결정된 답에 대한 확신을 가질 수 있습니다. 하지만, 그룹 전체가 합의한 답을 실제로 제출할 것임을 확신하기 위해서는, 나만이 아니라 그룹 내의 다른 모든 사람도 자신의 친구들이 충분히 포함되어야 합니다.
예를 들어, 앨리스가 그룹에 포함되어 있지만 그녀의 친구들이 충분히 포함되지 않았다면, 앨리스가 특정 답안 세트를 제출하겠다고 말하더라도, 그녀가 최종적으로 실제로 그 답을 제출할지 확신할 수 없습니다. 우리와의 논의가 끝난 후, 그녀는 충분한 친구들이 있는 다른 공부 그룹을 만나고, 그들이 다른 답을 제출하도록 설득할 수도 있습니다.
이러한 방식으로, SCP는 각 노드가 신뢰할 수 있는 다른 노드들의 네트워크를 통해 합의에 도달하도록 설계되었습니다. 각 참가자는 자신이 신뢰하는 다른 참가자들과 함께 단일한 합의 상태에 도달해야 하며, 이는 전체 네트워크의 합의를 보장합니다.

SCP 용어와 연관하여 설명하자면, 각 학생은 노드를 나타내며, 그들의 신뢰하는 친구들의 집합은 그들의 쿼럼 집합입니다. 시험을 제출하는 데 충분한 친구들의 부분 집합은 쿼럼 슬라이스입니다. 마지막으로, 올바르게 구성된 스터디 그룹은 쿼럼입니다. 이 가상의 수학 시험은 사실상 SCP가 원장들을 서로 일치시키는 데 어떻게 작동하는지를 나타냅니다.

쿼럼 교차 (Quorum Intersection)

이제 각 개별 노드가 결정을 내리는 방법을 알았으나, 자연스러운 질문은 어떻게 모든 노드가 항상 동일한 투표 결과에 도달할 것인가입니다. 답은 SCP가 적어도 두 개의 쿼럼이 적어도 한 개의 성실한 노드(즉, SCP의 규칙을 올바르게 따르는 노드)에서 교차되는 한, 총 합의를 보장한다는 것입니다. 이러한 속성을 쿼럼 교차(Quorum Intersection)라고 합니다.13

수학 시험에 대한 우리의 비유로 돌아가서, 모두의 친구 관계를 기반으로 할 때, 반에는 두 개의 스터디 그룹만 있고, 앨리스가 두 스터디 그룹 모두에 속해 있는 유일한 학생이라고 상상해보세요. 앨리스가 정직하다면, 두 스터디 그룹은 같은 답을 제출해야 합니다. 왜냐하면 각 스터디 그룹은 그룹 내 모두, 앨리스를 포함하여, 동의하는 답에 대해서만 답안을 제출할 것이기 때문입니다. 앨리스가 정직하다면, 그녀는 오직 한 세트의 답안에만 동의할 수 있습니다.

SCP 용어로 돌아와서, 쿼럼 교차가 있다면, 서로 다른 명제를 확인하는 두 개의 다른 쿼럼은 동일한 성실한 노드가 두 개의 다른 명제를 수락했다는 것을 의미합니다. 이는 불가능한 일이죠, 왜냐하면 성실한 노드가 한 번 명제를 수락하면, 다른 것을 수락할 수 없기 때문입니다 (“x를 수락한다”라는 것은 “나는 x에 투표할 준비가 되어 있으며, 다른 것에 투표하지 않을 것”이라고 생각해야 합니다).

쿼럼 교차는 주로 두 가지 방식으로 실패할 수 있습니다. 첫째, 두 쿼럼의 교차점이 부정직한 노드로 이루어진 경우, 이러한 쿼럼은 서로 다른 값을 확인할 수 있습니다(부정직한 노드가 한 쿼럼에 “x를 수락한다”를 보내고, 다른 쿼럼에는 “y를 수락한다”를 보내어 SCP의 규칙을 위반할 수 있습니다). 둘째, 전혀 교차하지 않는 쿼럼이 있다면, 이러한 쿼럼은 서로 다른 값을 확인할 수 있습니다. 이는 서로 겹치는 부분이 없는 두 개의 스터디 그룹이 있는 것과 같습니다. Stellar의 노드들은 자신의 쿼럼 집합과 쿼럼 슬라이스 구성을 게시하기 때문에, 쿼럼이 교차하는지와 어떤 노드에서 교차하는지를 쉽게 확인할 수 있습니다.14

각주

  • 13 쿼럼 교차의 형식적인 정의와 합의로 이어지는 관련 이론에 대한 정식 정의는 SCP 논문에서 확인하실 수 있습니다.
  • 14 스텔라비트(Stellarbeat.io)는 무료로 커버 분석을 할 수 있는 도구입니다.

게다가, 노드들이 익명이 아니기 때문에 발행자와 사용자 모두가 문제를 일으키기 위해 얼마나 많은 노드가 부정직해야 하는지 이해할 수 있습니다. CBDC(중앙은행 디지털 통화)의 경우, 이러한 노드들은 중앙은행 및 금융 기관들에 의해 운영될 것입니다.

이러한 경우에는 여러 노드가 부정하게 행동하기는 매우 어려울 것입니다. 저희의 견해로는, 이는 유사한 작업 증명(Proof-of-Work) 및 지분 증명(Proof-of-Stake) 시스템보다 훨씬 안전한 방법입니다. Stellar을 조작하기 위해서는 엄격히 규제되고 지리적으로 분산된 기관들 간의 대규모 조정이 필요하며, 이는 단일 행위자가 대규모의 컴퓨팅 파워나 자본을 모으는 것보다 훨씬 어려울 것입니다.

스텔라 네트워크에서 CBDC 발행 시 SCP 합의 알고리즘의 영향

SCP의 작동 방식을 이해하면, 우리는 Stellar이 CBDC에 독특하게 적합한 점을 더 잘 이해할 수 있습니다. 가령 중앙은행이 Stellar 상에 CBDC를 발행하고자 한다고 가정해 봅시다.

쿼럼 세트 선택 – 발행자에게 신뢰를 줌

먼저 중앙은행은 자체 노드를 설정하여 CBDC의 무결성과 이와 관련된 모든 거래를 직접 보장할 수 있도록 합니다. 그런 다음 중앙은행은 어떤 다른 노드를 쿼럼 세트에 넣을지 선택합니다. 아마도 매우 신뢰할 만하고 책임감 있는 기관과 기관들이 운영하는 노드만을 선택할 것으로 추정됩니다. 다른 중앙은행이 CBDC를 발행했다면 해당 중앙은행의 노드를 쿼럼 세트에 포함시키고 싶어할 것입니다. 또한 은행이나 다른 금융 기관들의 노드를 포함시킬 수도 있습니다.

중앙은행은 쿼럼 세트를 선택함으로써, Stellar 원장의 복사본에 영향을 줄 수 있는 다른 노드와 전혀 영향을 미칠 수 없는 노드를 정확히 파악할 수 있습니다. 다시 말해, 중앙은행은 자산을 안전하게 보호하기 위해 복잡한 프로토콜을 따르는 익명의 참여자에 의존할 필요가 없으며, 알려진 기관과 기관들에 의존할 수 있습니다.15 가정컨대, 중앙은행이 악의적인 노드가 원장을 조작하고 거래에 개입하려는 모든 노력을 다하는 것을 정확히 알고 있다고 가정해 봅시다. 중앙은행은 이 노드가 중앙은행의 원장에 영향을 줄 가능성이 있는지를 매우 쉽게 확인할 수 있습니다. 이를 위해 중앙은행은 무엇인가를 “전이적인 쿼럼 세트”라고 부르는 것을 찾아야 합니다. 먼저 중앙은행의 쿼럼 세트로 시작합니다. 그 안에 있는 각 노드에 대해 해당 노드의 쿼럼 세트를 추가합니다. 더 이상 추가할 노드가 없을 때까지 이 과정을 반복합니다. 결과적으로 얻은 집합은 중앙은행의 원장에 직접 또는 간접적으로 영향을 줄 수 있는 모든 노드를 포함하게 됩니다. 만약 악의적인 노드가 이 집합에 포함되어 있지 않다면, 중앙은행은 그 노드가 원장의 무결성에 영향을 줄 걱정을 하지 않아도 됩니다.

각주

  • 15 노드가 익명이 아니기 때문에 중앙은행은 쿼럼 세트에 추가하는 노드가 실제로 주어진 기관에 의해 운영되는지를 확인하기 위해 원하는 수단을 사용할 수 있습니다. 많은 Stellar 참가자들에게는 toml 파일을 확인하는 것만으로 충분한 보증이 될 수 있습니다. 왜냐하면 이 파일은 해당 기관이 제어하는 인터넷 도메인에 게시되기 때문입니다. 그러나 중앙은행과 같은 기관들은 직접적인 인증 및 신뢰할 수 있는 기관 내의 개인으로부터의 증명을 요구할 수 있습니다. 또한 이러한 다른 기관들과의 법적 계약을 체결하여 특정 기준이나 요구사항을 준수할 것을 보장할 수도 있습니다.
스텔라 코인 백서 1
[그림7] 노드의 전이적 쿼럼 집합 찾을때의 예시

발행자 강제 확정성 – 사용자에게 신뢰를 줌

위에서는 중앙은행이 자신의 원장의 안전성에 대해 확신을 갖는 방법을 보여주고 있습니다. 이제 우리는 특정 중앙은행 디지털 통화(CBDC)의 사용자들이 자신의 잔액과 거래에 대해 확신을 갖는 방법에 대해 알아보겠습니다. 앞서 언급한 바와 같이, 작업 증명 및 지분 증명 시스템의 위험 중 하나는 어떤 거래라도 미래에 뒤바뀔 수 있는 가능성이 있다는 점입니다. 시간이 지남에 따라 이러한 가능성은 줄어들지만 항상 존재합니다. 더욱이, 언제든지 원장 역사의 여러 가지 분기가 있을 수 있으며, 이는 한 사람이 한 자산의 잔액을 두 가지 다른 방식으로 나타낼 수 있습니다. 이 모든 것은 명백히 자신의 계정에 얼마나 많은 CBDC 토큰이 있는지 이해하려는 데 어려움을 초래합니다.

그러나 독자는 중앙은행 디지털 통화(CBDC)의 사용자가 교집합이 없는 쿼럼(예: 교집합이 없는 수학 시험 예제의 스터디 그룹)이 있을 가능성에 대해 걱정할 수 있다고 지적할 수 있습니다. 따라서 두 개의 다른 노드가 서로 다른 역사를 가질 수 있다는 것이 사실입니다. 그러나 이에 대한 매우 간단한 해결책이 있습니다. 사용자가 CBDC 잔액을 확인하고 싶을 때, 그들은 중앙은행의 노드가 유지하는 원장을 간단히 확인할 수 있습니다. 결국 그것이 중요한 잔액이며, 중앙은행의 진실의 근원이기 때문입니다.

이 개념을 발행자 강제 확정성이라고 합니다. 노드들이 서로 다른 역사를 가지는 불가능한 경우에도, 주어진 자산에 대해 어떤 것이 옳은지 항상 명확합니다. 사실 사용자들은 각 자산 잔액을 확인하기 위해 각기 다른 노드를 확인할 필요가 없습니다. 중앙은행이 교집합이 있는 쿼럼 세트를 선택한다면, 그들의 노드의 원장은 일치할 것입니다. 중앙은행은 시스템을 보다 견고하게 만들기 위해 교집합이 있는 쿼럼 세트를 선택하는 데 매우 큰 관심을 가지고 있으므로(예: 서로를 추가함으로써), 실제로 이는 거의 확실히 발생할 것입니다. 더불어, 그들은 부정직할 가능성이 매우 낮은 기관과 기관을 선택할 것입니다.

글쓴이