Gavin Wood:폴카가 체인 중심에서 애플리케이션 중심으로 어떻게 전환해야 할까요?
발표: Gavin Wood
편집: PolkaWorld
지난 글에서는 Gavin의 발표 첫 번째 부분을 요약했습니다. 즉, 폴카닷이 어떻게 체인 중심에서 '코어' 중심으로 전환되는지를 다루었습니다. 이번 글에서는 발표의 나머지 부분을 계속 요약하겠습니다 ------ 폴카닷이 체인 중심에서 애플리케이션 중심으로 전환되는 방법과 어떻게 탄력적인 플랫폼을 구축할 수 있는지를 설명합니다.
체인 중심 → 애플리케이션 중심
폴카닷 1.0은 체인 중심의 패러다임입니다: 고립된 체인들이 서로 메시지를 보낼 수 있도록 하는 방식으로, 본질적으로 단일 체인과 크로스 체인 브릿지와 매우 유사합니다. 단지 평행 체인들이 릴레이 체인에 연결되어 있을 뿐입니다.
이로 인해 사용자 경험이 단편화되었습니다. 사용자는 한 체인에서 특정 애플리케이션을 사용할 수 있지만, 다른 체인에서도 같은 애플리케이션을 사용하고 싶어합니다. 즉, 다중 체인 방식으로 애플리케이션을 사용하고자 합니다.
하지만 체인 중심의 패러다임을 가지고 있다면, 체인 중심의 사용자 경험도 가지게 됩니다. 만약 어떤 애플리케이션이 체인 중심이 아니라면, 모든 것이 매우 어려워질 것입니다.
현실적으로 폴카닷의 잠재력을 최대한 활용하고자 한다면, 애플리케이션은 크로스 체인 배포가 필요하며, 사용자에게는 원활한 크로스 체인이 되어야 합니다. 더 이상적인 상황은 개발자에게도 그러해야 합니다.
이것은 '폴카닷이 어떤 모습인지'에 대한 예술적인 도식입니다:
우리는 폴카닷을 빠르게 출시하기 위해 많은 애플리케이션 기능을 릴레이 체인에 배치하기로 선택했습니다. 하지만 이는 사실상 타협입니다.
장점은, 기술 기반이 완전히 완료되기 전에 짧은 시간 내에 많은 기능을 제공할 수 있다는 것입니다. 예를 들어 훌륭한 스테이킹, 거버넌스, 토큰, 신원 시스템 등이 있습니다.
하지만 그 대가도 있습니다. 많은 것을 한 체인에 묶어두면 몇 가지 문제가 발생합니다. 예를 들어, 릴레이 체인은 자신의 본래 업무인 네트워크 보안과 메시지 전달에 자원을 계속 사용할 수 없습니다. 또한, 이는 사람들에게 체인 중심의 사고 방식을 유도합니다.
과거에는 우리는 한 체인에만 집중할 수 있었고, 출시 시 폴카닷의 모든 기능을 릴레이 체인에 배치했습니다. 우리의 초기 목표는 그렇게 하는 것이었습니다. 하지만 불행히도, 관련 도구는 애플리케이션과 사용자가 크로스 체인 시대에 들어서면서 따라오지 못했습니다.
현재 시스템 수준의 기능은 크로스 체인 배포의 패러다임으로 전환되고 있습니다. 시스템 체인은 더욱 보편화되고 있으며, 릴레이 체인이 처리하는 것들은 점점 줄어들고 있습니다. 애플리케이션은 이러한 체인들을 넘나들 수 있어야 하며, 사용자 경험이 어려워져서는 안 됩니다.
이것은 제가 반 시간 전에 그린 도식입니다. 이는 제가 '폴카닷이 무엇인지'를 이해하는 더 나은 관점이라고 생각합니다.
폴카닷은 사실 릴레이 체인이 중앙에 있고, 평행 체인들이 주변에 있는 것이 아닙니다. 적어도 폴카닷 생태계에 들어오는 사람들에게는 그렇게 되어서는 안 됩니다. 사실, 폴카닷은 여러 애플리케이션이 실행되는 통합 시스템이어야 합니다.
맞습니다, 서로 다른 체인의 비즈니스 논리 구성 요소(즉, 평행 체인) 간에는 경계가 있지만, 이는 사용자에게는 우리가 생각하는 것만큼 중요하지 않을 수 있습니다. 더 중요한 것은 사용자가 원하는 일을 쉽게, 명확하게, 빠르게 할 수 있어야 한다는 것입니다.
도식의 점들은 애플리케이션을 나타내며, 점을 나누는 점선은 'paras'입니다. 저는 이를 평행 체인이라고 부르고 싶지 않습니다. 왜냐하면 그렇게 되면 '각 평행 체인에 하나의 코어가 대응된다'는 사고의 함정에 빠질 수 있기 때문입니다. 이것은 지금까지의 폴카닷의 패턴이지만, 유일한 선택은 아닙니다.
이 점들은 정상적인 상황에서 서로 소통할 수 있어야 하며, 점선 범위 내의 공간과 소통하는 것만큼 쉽게 소통할 수 있어야 합니다.
XCM
어떻게 이것을 실현할 수 있을까요? 여기서 XCM이 등장합니다.
XCM은 언어이며, 실제로 메시지를 전달하는 전송 계층은 XCMP라고 합니다. 이 두 이름이 혼동될 수 있다는 점을 인정합니다.
XCM은 무엇을 할까요? 그것의 역할은 체인 내에서 일반적인 기능을 추상화하는 것입니다. 그것은 당신이 하고 싶거나 원하는 일이 발생하도록 설명하는 언어를 만듭니다.
체인이 이 메시지를 정직하게 번역하기만 하면 모든 것이 잘 됩니다. 하지만 불행히도 체인이 당신의 XCM 메시지를 정직하게 번역할 것이라는 보장은 없습니다. 신뢰가 없는 환경에서는 XCM이 이상적이지 않습니다.
예를 들어, 무역에서 우리는 XCMP라는 운송 수단이 우리에게 안전한 무역 경로를 제공한다고 말합니다. 우리는 중간에 강도를 당하지 않을 것입니다. 발송된 물품은 수신되는 것을 보장합니다. 그러나 그것은 서로 다른 무역 주체 간에 구속력 있는 조항을 만들 수 있는 프레임워크를 제공하지 않습니다.
더 직관적인 예를 들어보겠습니다 ------ 유럽연합. 그것은 무엇인가요? 본질적으로 그것은 당신이 가입할 수 있는 동맹이며, 특정 조약을 준수하도록 서로 다른 주권 국가들이 따르는 조약 프레임워크입니다. 그러나 그것은 완벽하지 않습니다. 왜냐하면 공동의 사법 기관이 각 국가의 법률을 번역하고 법률 준수를 보장할 수 있지만, 특정 국가가 법률을 변경하여 유럽연합의 요구와 일치하지 않도록 하는 것을 막을 수는 없기 때문입니다.
폴카닷에서도 유사한 문제에 직면해 있습니다. XCM은 의도를 표현하는 언어이며, WebAssembly는 폴카닷 내에서 평행 체인이 준수해야 할 법률을 표현합니다. 이를 유럽 법원(ECJ)으로 생각할 수 있으며, 평행 체인이 자신이 제시한 논리를 준수하도록 보장하지만, 이는 평행 체인이 XCM 언어를 준수하지 않도록 합법적으로 변경할 수 없음을 의미하지는 않습니다.
XCM은 의도를 표현하는 언어입니다. 예를 들어 "자산을 이체할 준비가 되었습니다", "투표할 준비가 되었습니다"와 같은 것입니다. 상호 신뢰가 있는 시스템 체인 간에서는 문제가 되지 않습니다. 그러나 서로 다른 거버넌스 프로세스나 입법 절차에 있다면 문제가 발생할 수 있습니다. 폴카닷 생태계에서는 더 나은 해결책을 찾을 수 있습니다.
Accord(협정)
여기서 저는 Accord(협정)이라는 새로운 용어를 제안합니다. 협정은 여러 체인 간의 자발적인 조약입니다. "나는 이 비즈니스 논리를 자발적으로 준수하며, 내가 하는 모든 일은 이를 변경하지 않을 것입니다"라고 말하는 것과 비슷합니다. 체인 자체는 조약의 논리를 파괴할 수 없습니다.
폴카닷은 이 논리의 충실한 실행을 보장합니다. 협정은 특정 함수에 대해 적용됩니다. 해당 협정에 가입하는 모든 체인은 규칙을 준수해야 하며, 이 규칙은 특정 함수에 대해 적용됩니다.
낮은 진입 장벽을 보장하기 위해 협정을 제안하는 것은 허가가 필요 없습니다. 자발적으로 가입하는 것이기 때문에, 통과 및 등록 전에 누구에게도 영향을 미치지 않습니다.
이 도식은 가장 정확하지는 않지만 대략적인 의미는 이렇습니다. 외부 원은 폴카닷이고, 내부에는 몇 개의 작은 점들이 있습니다. 이 그림을 수평으로 놓으면, Accord는 그 지역의 주권을 지배하는 독립적인 메커니즘입니다.
Accord는 모든 시스템에서 존재할 수 있는 것은 아닙니다. 제가 아는 한, 폴카닷은 그것의 존재를 지원할 수 있는 유일한 시스템입니다. 왜냐하면 폴카닷은 동일한 강도의 보안 계층을 가지고 있으며, 각 분할에 대해 특정 상태 전환 함수를 제공할 수 있는 유일한 시스템이기 때문입니다. 이러한 특징들은 폴카닷이 다른 아키텍처(예: 크로스 체인 브릿지)에서는 불가능한 협력 모델을 구현할 수 있게 합니다.
폴카닷에 대해 잘 아는 사람들은 "SPREE"라는 기술을 들어본 적이 있을 것입니다. SPREE는 Accord를 실현할 수 있는 기술입니다.
몇 가지 Accord의 사용 사례
Accord의 가능한 사례를 살펴보겠습니다.
그 중 하나는 자산 허브입니다.
현재 두 개의 체인이 자산 상호작용을 원할 경우, 반드시 제3의 체인, 즉 자산 허브 체인을 통해야 합니다. 만약 그 중 하나가 로컬 자산 체인이라면 약간 다를 수 있습니다. 하지만 이론적으로 두 개의 관련 없는 체인이 제3자의 자산을 거래하고자 한다면, 추가로 경로를 개통해야 합니다.
Accord가 있으면 이렇게 할 필요가 없습니다. 당신은 이를 대사관으로 생각할 수 있습니다. 그것은 일반 프로세스 공간에 존재하며, 평행 체인과 동시에 같은 코어에서 조정되지만, 평행 체인의 비즈니스 논리의 일부가 아니라 별도로 존재합니다. 이는 대사관이 본국의 법률을 가지고 있지만, 지리적으로는 현지 국가에 위치하는 것과 유사합니다. 마찬가지로, Accord는 외부 비즈니스 논리처럼 보이지만, 모두가 인정하며 현지에 존재합니다.
또 다른 사례는 멀티캐스트 XCM 라우터입니다. 이는 하나의 메시지를 보낼 수 있지만, 여러 체인으로 넘어가며 특정 순서로 진행될 수 있습니다. 예를 들어, 여기에서 하나의 작업을 수행하고, 저기에서 또 다른 작업을 수행하지만, 항상 내 허락 하에 이루어집니다. 이는 현재로서는 불가능한 일입니다.
또 하나의 사례는 탈중앙화 거래소입니다. 이는 여러 다른 체인에 전초 기지를 설정하여 교환이 현지에서 직접 발생하도록 하며, 양방향 경로를 열 필요가 없습니다.
이것은 제가 현재 생각할 수 있는 몇 가지 예일 뿐이며, 이후 이 기술의 잠재력이 더욱 발휘될 것이라고 믿습니다.
Project CAPI
사용자 인터페이스에 대해 간단히 설명하겠습니다 ------ Project CAPI. 이 프로젝트의 목적은 여러 체인을 넘나드는 폴카닷 애플리케이션이 매끄럽고 좋은 사용자 경험을 가질 수 있도록 하는 것입니다. 심지어 경량 클라이언트를 사용하는 경우에도 마찬가지입니다.
은둔자 릴레이(Hermit Relay)
즉, 릴레이 체인 내의 모든 사용자 수준 기능을 시스템 체인으로 이전하는 것입니다. 예를 들어:
잔액
스테이킹
거버넌스 및 신원
코어의 임대
결국 폴카닷의 기능이 여러 평행 체인을 넘나들 수 있도록 하여 릴레이 체인의 공간을 해방시킵니다.
탄력적인 애플리케이션 플랫폼 구축
마지막 부분에서는 우리가 하고 있는 일과 그 이유를 다시 강조하고 싶습니다. 모든 것은 탄력성에 관한 것입니다.
세상은 항상 변하고 있지만, 사람들이 명확한 의도를 가지고 있다면, 이러한 의도가 존중받는 것이 중요합니다. 현재 우리가 사용하는 시스템은 충분히 탄력적이지 않으며, 매우 구식의 사고에 기반하여 구축되었습니다.
당신의 시스템이 암호학이나 게임 이론이 없다면, 몇 가지 나쁜 상황이 발생할 수 있습니다. 예를 들어, 이 뉴스에서 언급된 대규모 네트워크 공격으로 600만 명의 정보가 유출되었으며, 이는 세계 인구의 천분의 일에 해당합니다. 그리고 이러한 일들은 자주 발생합니다.
그렇다면 이러한 위협을 받지 않는 시스템을 어떻게 구축할 수 있을까요? 우선, 분산화되고 암호학에 기반하며 게임 이론의 시험을 견딜 수 있는 시스템을 구축하는 것이 중요합니다. 하지만 구체적으로 무엇을 해야 할까요?
우리는 매일 "분산화"를 외치고 있지만, 모든 것이 동일한 RPC 공급자를 통해 이루어진다면, 진정한 분산화라고 할 수 없습니다.
분산화는 여러 요인이 함께 제공해야 합니다:
경량 클라이언트 사용: Smoldot과 CAPI는 고성능의 경량 클라이언트 기반 UI를 허용합니다.
ZK 원리: 기능이 풍부하고 고성능의 ZK 원리 라이브러리를 구축합니다. 첫 번째 라이브러리는 거의 완성되어, 체인 상 집단(펠로우십 포함)에 프라이버시 보호를 제공합니다.
Sassafras 합의: 새로운 블록 분리 없는 합의 알고리즘입니다. 보안성과 무작위성을 높이며, 고성능의 거래 라우팅을 제공합니다. 평행 체인의 성능과 사용자 경험을 향상시키며, 암호화된 거래는 프론트 러닝을 방지하고 잠재적인 MEV 수익을 가져올 수 있습니다.
혼합 네트워크 / 양파 라우팅: 거래의 IP 정보를 유출하지 않도록 합니다. 사용자, 체인 및 OCW 간의 일반 메시지 시스템입니다.
인간의 분산화: 많은 다양한 사람들이 시스템에 참여하도록 유도합니다. 거버넌스, 국고 지출, 급여, 보조금 등을 통해 참여를 유도하고 집단 지식을 수집하고 유지합니다.
초심을 잊지 말자
마지막으로, 우리의 초심을 다시 강조하고 싶습니다. 폴카닷은 특정 애플리케이션을 만들기 위해 존재하는 것이 아니라, 다양한 애플리케이션을 배포할 수 있는 플랫폼을 제공하고, 애플리케이션들이 서로의 기능을 활용하여 사용자들의 복지를 향상시키는 환경을 제공하는 것입니다. 우리는 이 비전이 가능한 한 빨리 실현될 수 있도록 해야 하며, 이것이 폴카닷의 사명입니다.
만약 폴카닷이 세계의 변화에 대해 일정한 탄력성을 유지하지 못한다면, 폴카닷을 구축하는 것은 무의미할 것입니다. 이러한 변화는 동일한 목적을 달성할 수 있는 다른 방법이거나, 신뢰가 없는 세계의 외부 조직으로부터 오는 위협일 수 있습니다.