Polkadot: 이기종 다중 체인 프레임워크에 대한 비전
Аннотация
POLKADOT: ВИДЕНИЕ ГЕТЕРОГЕННОЙ МНОГОЦЕПНОЙ СТРУКТУРЫ ПРОЕКТ 1 ДР. ГЭВИН ВУД ОСНОВАТЕЛЬ ETHEREUM И PARITY ГЭВИН@PARITY.IO Аннотация. Все современные архитектуры blockchain страдают от ряда проблем, не в последнюю очередь связанных с практическими средствами расширения и масштабируемости. Мы считаем, что это связано с объединением двух очень важных частей архитектуры консенсуса, а именно: каноничность и действительность слишком тесно связаны друг с другом. В этой статье представлена архитектура гетерогенной мультицепи, что фундаментально отличает их друг от друга. Разделив эти две части на отдельные части и сведя общую функциональность к абсолютному минимуму. безопасности и транспорта, мы представляем практические средства расширения ядра на месте. Масштабируемость обеспечивается за счет подход к этим двум функциям по принципу «разделяй и властвуй», расширяя свое связанное ядро за счет стимулирования ненадежные публичные узлы. Гетерогенная природа этой архитектуры позволяет множеству сильно различающихся типов консенсусных систем взаимодействовать в не требующей доверия, полностью децентрализованной «федерации», позволяя открытым и закрытым сетям иметь свободный от доверия доступ к друг друга. Мы предлагаем средства обеспечения обратной совместимости с одной или несколькими ранее существовавшими сетями, такими как Ethereum. Мы считаем, что такая система представляет собой полезный компонент базового уровня в общем поиске практического решения. реализуемая система, способная достичь уровня масштабируемости и конфиденциальности глобальной коммерции. 1. Предисловие Это краткое изложение технического «видения» одного возможного направления, которое может быть выбрано для дальнейшего развития парадигмы blockchain, вместе с некоторым обоснованием того, почему это направление целесообразно. Оно лежит в как можно больше деталей на данном этапе разработки система, которая может дать конкретное улучшение ряд аспектов технологии blockchain. Оно не предназначено для использования в качестве спецификации, формальной или иной. Он не претендует на то, чтобы быть всеобъемлющим или представлять собой окончательный дизайн. Он не предназначен для освещения неосновных аспектов. инфраструктуры, такие как API, привязки, языки и использование. Это особенно экспериментально; где параметры определены, они, вероятно, изменятся. Механизмы будут добавлять, уточнять и удалять в ответ на запросы сообщества. идеи и критика. Большая часть этой статьи, скорее всего, будет быть пересмотрено по мере того, как экспериментальные данные и прототипирование дают нам информацию о том, что будет работать, а что нет. Этот документ включает основное описание протокола вместе с идеями относительно направлений, которые можно предпринять. для улучшения различных аспектов. Предполагается, что ядро описание будет использоваться в качестве отправной точки для первоначального серия доказательств концепции. Окончательная «версия 1.0» будет основанный на этом усовершенствованном протоколе вместе с дополнительными идеями, которые стали доказанными и полны решимости необходимы для того, чтобы проект достиг своих целей. 1.1. История. • 10.09.2016: 0.1.0-доказательство1 • 20.10.2016: 0.1.0-доказательство2 • 11.01.2016: 0.1.0-доказательство3 • 11.10.2016: 0.1.0 2. Введение Блокчейны продемонстрировали большие перспективы использования в нескольких областях, включая «Интернет вещей». (IoT), финансы, управление, управление идентификацией, веб-децентрализация и отслеживание активов. Однако, несмотря на технологические обещания и грандиозные разговоры, нам еще предстоит увидеть значительное реальное внедрение современных технологий. Мы считаем, что это связано с пятью ключевыми неудачами нынешней политики. технологические стеки: Масштабируемость: сколько ресурсов тратится по всему миру. об обработке, пропускной способности и хранилище, позволяющем системе обрабатывать одну транзакцию и сколько транзакции могут быть разумно обработаны в соответствии с пиковые условия? Изолируемость: могут ли различающиеся потребности нескольких Стороны и заявления будут рассматриваться в почти оптимальной степени в рамках одних и тех же рамок? Возможность разработки: насколько хорошо работают инструменты? Делай API отвечают потребностям разработчиков? Доступны ли учебные материалы? Есть ли нужные интеграции? Управление: может ли сеть оставаться гибкой для развиваться и адаптироваться с течением времени? Могут ли решения быть сделано с достаточной инклюзивностью, легитимностью и прозрачность для обеспечения эффективного руководства децентрализованная система? Применимость: действительно ли технология сама по себе решает острую потребность? Требуется ли другое «промежуточное программное обеспечение», чтобы устранить разрыв в реальные приложения? В настоящей работе мы стремимся рассмотреть первые два. проблемы: масштабируемость и изоляционность. Тем не менее, мы верим Платформа Polkadot может обеспечить значительные улучшения в каждом из этих классов проблем. Современные эффективные реализации blockchain, такие как клиент Parity Ethereum PH_0000 может обрабатыватьэто превышает 3000 транзакций в секунду при работе на производительном потребительском оборудовании. Однако нынешний реальный мир Сети blockchain практически ограничены примерно 30 транзакций в секунду. Это ограничение главным образом связано с тем, что современные механизмы синхронного консенсуса требуют больших временных запасов безопасности. ожидаемое время обработки, которое усугубляется 1
초록
POLKADOT: 이종 다중 체인 프레임워크에 대한 비전 초안 1 박사. 개빈 우드 창립자, 이더리움 및 패리티 개빈@PARITY.IO 추상. 현재의 blockchain 아키텍처는 모두 확장성과 확장성의 실질적인 수단뿐만 아니라 여러 가지 문제로 어려움을 겪고 있습니다. 우리는 이것이 합의 아키텍처의 두 가지 매우 중요한 부분을 연결하는 데서 비롯된다고 믿습니다. 정준성과 타당성은 너무 밀접하게 연관되어 있습니다. 본 논문에서는 이종 다중 체인 아키텍처인 아키텍처를 소개합니다. 이는 근본적으로 두 가지를 구분합니다. 이 두 부분을 구분하고 전체적인 기능을 최소한으로 유지함으로써 보안 및 운송 측면에서 핵심 확장성을 위한 실용적인 수단을 현장에서 소개합니다. 확장성은 다음을 통해 해결됩니다. 이 두 가지 기능에 대한 분할 및 정복 접근 방식은 인센티브를 통해 결합된 핵심을 확장합니다. 신뢰할 수 없는 공개 노드. 이 아키텍처의 이질적인 특성으로 인해 무신뢰, 완전 분산형 "연합"에서 상호 운용되는 다양한 유형의 합의 시스템이 가능해지며 개방형 네트워크와 폐쇄형 네트워크가 신뢰 없이 액세스할 수 있습니다. 서로. 우리는 다음과 같은 하나 이상의 기존 네트워크와의 하위 호환성을 제공하는 수단을 제시합니다. Ethereum. 우리는 그러한 시스템이 실질적으로 전반적인 검색에 유용한 기본 수준 구성 요소를 제공한다고 믿습니다. 글로벌 상거래 수준의 확장성과 개인 정보 보호를 달성할 수 있는 구현 가능한 시스템입니다. 1. 서문 이는 기술적인 "비전" 요약을 위한 것입니다. blockchain 패러다임을 더욱 발전시키는 데 취할 수 있는 한 가지 가능한 방향과 이 방향이 왜 합리적인지에 대한 몇 가지 근거를 설명합니다. 그것은에 배치 현재 개발 단계에서 가능한 한 많은 세부정보를 제공합니다. 구체적인 개선을 제공할 수 있는 시스템 blockchain 기술의 다양한 측면. 이는 공식적이거나 다른 방식으로 사양을 제시하려는 의도가 없습니다. 포괄적이거나 포괄적인 의도는 아닙니다. 최종 디자인. 핵심이 아닌 측면을 다루려는 의도는 없습니다. API, 바인딩, 언어 등 프레임워크의 사용법. 이는 특히 실험적입니다. 여기서 매개변수 지정되어 있으므로 변경될 가능성이 있습니다. 메커니즘은 커뮤니티에 대한 반응으로 추가, 개선 및 제거됩니다. 아이디어와 비평. 이 문서의 많은 부분이 실험적 증거와 프로토타입을 통해 수정될 수 있습니다. 무엇이 효과가 있고 무엇이 효과가 없는지에 대한 정보를 제공합니다. 이 문서에는 프로토콜에 대한 핵심 설명과 함께 취할 수 있는 방향에 대한 아이디어가 포함되어 있습니다. 다양한 측면을 개선합니다. 핵심이 될 것으로 예상된다. 설명은 초기 작업의 시작점으로 사용됩니다. 일련의 개념 증명. 최종 "버전 1.0"은 다음과 같습니다. 입증되고 다음으로 결정된 추가 아이디어와 함께 이 세련된 프로토콜을 기반으로 합니다. 프로젝트가 목표를 달성하기 위해 필요합니다. 1.1. 역사. • 2016년 9월 10일: 0.1.0-proof1 • 2016년 10월 20일: 0.1.0-proof2 • 2016년 1월 11일: 0.1.0-proof3 • 2016년 10월 11일: 0.1.0 2. 소개 블록체인은 "사물 인터넷"을 포함한 여러 분야에서 큰 유용성을 보여주었습니다. (IoT), 금융, 거버넌스, ID 관리, 웹 분산화 및 자산 추적. 그러나 그럼에도 불구하고 기술적 약속과 거창한 이야기, 우리는 아직 보지 못했습니다 현재 기술의 중요한 실제 배포. 우리는 이것이 현재의 다섯 가지 주요 실패로 귀결된다고 믿습니다. 기술 스택: 확장성: 전 세계적으로 얼마나 많은 리소스가 소비되는지 단일 트랜잭션을 처리하는 시스템의 처리, 대역폭 및 저장 공간과 트랜잭션 수 거래는 다음과 같이 합리적으로 처리될 수 있습니다. 최고 조건? 격리성: 여러 회사의 다양한 요구 사항을 충족할 수 있습니까? 당사자와 신청서가 동일한 프레임워크에서 거의 최적의 수준으로 처리됩니까? 개발 가능성: 도구가 얼마나 잘 작동합니까? 마 API가 개발자의 요구 사항을 해결합니까? 교육자료가 있나요? 올바른 통합이 있습니까? 거버넌스: 네트워크가 유연하게 유지될 수 있습니까? 시간이 지남에 따라 진화하고 적응합니까? 결정이 가능할까요? 충분한 포용성, 정당성 및 투명성을 통해 효과적인 리더십을 제공합니다. 분산 시스템? 적용 가능성: 기술이 실제로 자체적으로 긴급한 요구 사항을 해결합니까? 격차를 해소하기 위해 다른 "미들웨어"가 필요합니까? 실제 응용? 현재 작업에서 우리는 처음 두 가지 문제를 해결하는 것을 목표로 합니다. 문제: 확장성 및 격리성. 즉, 우리는 믿습니다 Polkadot 프레임워크는 이러한 각 문제 클래스에서 의미 있는 개선을 제공할 수 있습니다. 다음과 같은 현대적이고 효율적인 blockchain 구현 패리티 Ethereum 클라이언트 [17]이(를) 실행할 수 있습니다.초과하다 고성능 소비자 하드웨어에서 실행 시 초당 3,000건의 트랜잭션. 그러나 현재 현실 세계에서는 blockchain 네트워크는 실질적으로 약 30개로 제한됩니다. 초당 트랜잭션. 이러한 제한은 주로 현재의 동기식 합의 메커니즘이 광범위한 타이밍 안전 마진을 요구한다는 사실에서 비롯됩니다. 예상되는 처리 시간으로 인해 악화됩니다. 1
Введение
Блокчейны продемонстрировали большие перспективы использования в нескольких областях, включая «Интернет вещей». (IoT), финансы, управление, управление идентификацией, веб-децентрализация и отслеживание активов. Однако, несмотря на технологические обещания и грандиозные разговоры, нам еще предстоит увидеть значительное реальное внедрение современных технологий. Мы считаем, что это связано с пятью ключевыми неудачами нынешней политики. технологические стеки: Масштабируемость: сколько ресурсов тратится по всему миру. об обработке, пропускной способности и хранилище, позволяющем системе обрабатывать одну транзакцию и сколько транзакции могут быть разумно обработаны в соответствии с пиковые условия? Изолируемость: могут ли различающиеся потребности нескольких Стороны и заявления будут рассматриваться в почти оптимальной степени в рамках одних и тех же рамок? Возможность разработки: насколько хорошо работают инструменты? Делай API отвечают потребностям разработчиков? Доступны ли учебные материалы? Есть ли нужные интеграции? Управление: может ли сеть оставаться гибкой для развиваться и адаптироваться с течением времени? Могут ли решения быть сделано с достаточной инклюзивностью, легитимностью и прозрачность для обеспечения эффективного руководства децентрализованная система? Применимость: действительно ли технология сама по себе решает острую потребность? Требуется ли другое «промежуточное программное обеспечение», чтобы устранить разрыв в реальные приложения? В настоящей работе мы стремимся рассмотреть первые два. проблемы: масштабируемость и изоляционность. Тем не менее, мы верим Платформа Polkadot может обеспечить значительные улучшения в каждом из этих классов проблем. Современные эффективные реализации blockchain, такие как клиент четности Ethereum [17] может обрабатывать более 3000 транзакций в секунду при работе на производительном потребительском оборудовании. Однако нынешний реальный мир Сети blockchain практически ограничены примерно 30 транзакций в секунду. Это ограничение главным образом связано с тем, что современные механизмы синхронного консенсуса требуют больших временных запасов безопасности. ожидаемое время обработки, которое усугубляетсяPOLKADOT: ВИДЕНИЕ ГЕТЕРОГЕННОЙ МНОГОЦЕПНОЙ СТРУКТУРЫ ПРОЕКТ 1 2 желание поддерживать более медленные реализации. Это связано с базовая архитектура консенсуса: механизм перехода состояний или средства, с помощью которых стороны сопоставляют информацию и выполнять транзакции, его логика фундаментально связана в консенсусный механизм «канонизации», или средства, с помощью которых стороны договариваются об одном из ряда возможные, действительные, истории. Это в равной степени относится как к системам proof-of-work (PoW), таким как Bitcoin [15] и Ethereum [5,23], так и к системам доказательства ставки (PoS), таким как NXT [8] и Bitshares [12]: все в конечном итоге страдают от одного и того же недостатка. Это простой стратегия, которая помогла blockchains добиться успеха. Однако, за счет тесного соединения этих двух механизмов в единое целое протокола, мы также объединяем несколько различных субъекты и приложения с разными профилями риска, разными требованиями к масштабируемости и разными потребностями в конфиденциальности. Один размер не подходит всем. Слишком часто бывает так, что в Стремясь к широкой привлекательности, сеть принимает определенную степень консерватизма, что приводит к наименьшему общему знаменателю. оптимально обслуживает немногих и в конечном итоге приводит к провалу в способности внедрять инновации, действовать и адаптироваться, иногда резко так. Некоторые системы, такие как, например. Факт [21] полностью отменяет механизм перехода состояний. Однако большая часть полезность, которую мы желаем, требует способности переходного состояния в соответствии с общим конечным автоматом. Удаление решает проблему альтернативная проблема; это не дает альтернативы решение. Таким образом, кажется очевидным, что одно разумное направление изучить как путь к масштабируемым децентрализованным вычислениям платформа заключается в том, чтобы отделить консенсусную архитектуру от механизм перехода состояний. И, возможно, неудивительно, что именно эту стратегию Polkadot использует в качестве решения проблемы масштабируемости. 2.1. Протокол, реализация и сеть. Нравится Bitcoin и Ethereum, Polkadot относятся одновременно к сетевому протоколу и (предполагаемому до сих пор) первичному общедоступная сеть, в которой работает этот протокол. Polkadot задуман как бесплатный и открытый проект, спецификация протокола находится под лицензией Creative Commons, а код размещается под лицензией FLOSS. Проект разрабатывается открыто и принимает вклады где бы они ни были полезны. Система RFC, мало чем отличающаяся от Предложения по усовершенствованию Python, позволят публичное сотрудничество по поводу изменений и обновлений протокола. Наша первоначальная реализация протокола Polkadot будет называться Платформа Parity Polkadot и будет включить полную реализацию протокола вместе с API привязки. Как и другие реализации четности blockchain, PPP представляет собой стек технологий общего назначения blockchain, предназначенный не только для сети общего пользования, но и для частная/консорциумная деятельность. Развитие его таким образом далеко финансируется несколькими сторонами, в том числе через грант британского правительства. Тем не менее, в этой статье Polkadot описывается под контекст публичной сети. Функциональность, которую мы видим в общедоступной сети, представляет собой расширенный набор функций, необходимых в альтернативные (например, частные и/или консорциумные) настройки. Более того, в этом контексте полная область действия Polkadot может быть более четко описаны и обсуждены. Это значит читатель должен знать, что определенные механизмы могут быть описаны (например, взаимодействие с другими общедоступными сетями), которые не имеют прямого отношения к Polkadot при развертывании в закрытых («разрешенных») ситуациях. 2.2. Предыдущая работа. Было неофициально предложено отделить основополагающий консенсус от перехода государства. в частном порядке в течение как минимум двух лет — Макс Кэй был сторонником такой стратегии в самые первые дни Ethereum. Более сложное масштабируемое решение, известное как Chain. волокна, датированные июнем 2014 года и впервые опубликованные позже. в том же году1 обосновал необходимость использования одной релейной цепи и нескольких однородных цепочек, обеспечивающих прозрачный механизм выполнения между цепочками. За декогеренцию заплатили через задержку транзакции — транзакции, требующие координация разрозненных частей системы будет обработка займет больше времени. Polkadot взял большую часть своей архитектуры из этого и последующих разговоров с разные люди, хотя он сильно различается по большей части своей конструкции и положений. Пока нет систем, сравнимых с Polkadot. на самом деле в производстве несколько систем, имеющих какое-то значение были предложены, хотя лишь немногие на сколько-нибудь существенном уровне деталь. Эти предложения могут бытьразбит на системы которые отбрасывают или уменьшают понятие глобально согласованного государственная машина, те, которые пытаются обеспечить глобальную когерентная одноэлементная машина через однородные осколки и те, которые нацелены только на неоднородность. 2.2.1. Системы без глобального состояния. Фактом [21] является система, демонстрирующая каноничность без соответствующего достоверность, что позволяет эффективно вести хронику данных. Из-за избегания глобального состояния и трудностей с учетом масштабирования, которое это дает, это можно считать масштабируемым решением. Однако, как уже говорилось ранее, набор количество проблем, которые он решает, строго и существенно меньше. Клубок [18] — это новый подход к консенсусным системам. Вместо того, чтобы организовывать транзакции в блоки и формировать консенсус по строго связанному списку, чтобы обеспечить глобально канонический порядок изменений состояний, он в значительной степени отказывается от идеи сильно структурированного упорядочения и вместо этого продвигает направленный ациклический граф зависимых транзакций с более поздними элементами, помогая канонизировать более ранние элементы посредством явных ссылок. Для произвольных изменений состояния этот граф зависимостей быстро стал бы неразрешимым, однако для гораздо более простой модели __PH_0006____2 это становится вполне разумно. Поскольку система лишь слабо когерентна, а транзакции, как правило, независимы от каждого с другой стороны, большое количество глобального параллелизма становится вполне натуральный. Использование модели UTXO действительно дает эффект ограничить Tangle чисто «валютой» для передачи ценностей система, а не что-то более общее или расширяемое. Более того, без жесткой глобальной согласованности взаимодействие с другими системами, которые, как правило, требуют абсолютного степень знания состояния системы становится непрактичной. 1https://github.com/ethereum/wiki/wiki/Chain-Fibers-Redux 2вывод неизрасходованных транзакций, модель, которую использует Bitcoin, согласно которой состояние фактически представляет собой набор адресов, связанных с некоторым значением; транзакции сопоставляют такие адреса и преобразуют их в новый набор адресов, общая сумма которых эквивалентна
POLKADOT: ВИДЕНИЕ ГЕТЕРОГЕННОЙ МНОГОЦЕПНОЙ СТРУКТУРЫ ПРОЕКТ 1 3 2.2.2. Гетерогенные цепные системы. Боковые цепи [3] — это предлагаемое дополнение к протоколу Bitcoin, которое позволит осуществлять доверительное взаимодействие между основной цепочкой Bitcoin и дополнительные боковые цепи. Никакого положения не предусмотрено степень «богатого» взаимодействия между боковыми цепями: взаимодействие будет ограничиваться возможностью хранители активов друг друга, действуя – на местном уровне жаргон — двусторонняя привязка 3. Конечная цель — создать структуру, в которой валюта Bitcoin может быть обеспечена дополнительная, хотя и периферийная, функциональность за счет ее привязки на некоторые другие цепочки с более экзотическим переходом состояний системах, чем позволяет протокол Bitcoin. В этом смысле Боковые цепи ориентированы на расширяемость, а не на масштабируемость. Действительно, принципиально не существует условий для действительности сайдчейнов; tokens из одной цепочки (например, Bitcoin) хранящиеся от имени боковой цепи, защищены только способность сайдчейна стимулировать майнеров к канонизации действительные переходы. Безопасность сети Bitcoin не может быть легко переведен на работу от имени других blockchainс. Кроме того, протокол обеспечения Bitcoin майнеры объединяют майнинг (то есть дублируют свои возможности канонизации на мощности боковой цепи) и, что более важно, подтверждают, что переходы боковой цепи находятся за пределами объем этого предложения. Cosmos [10] — это предлагаемая многоцепная система в то же самое, что и сайдчейны, заменяя PoW Накамото метод консенсуса для алгоритма Tendermint Джэ Квона. По сути, он описывает несколько цепочек (работающих в зоны), каждая из которых использует отдельные экземпляры Tendermint вместе со средствами доверительной связи через главная ступичная цепь. Эта межцепочная связь ограничивается передачей цифровых активов («в частности, около tokens»), а не произвольной информации, однако такая межцепочная связь действительно имеет обратный путь для данных, например сообщить отправителю о статусе перевода. Наборы валидаторов для зонированных цепочек, и в частности средства их стимулирования, как и сайдчейны, оставлены как нерешенная проблема. Общее предположение состоит в том, что каждая зонированная цепочка сама будет содержать token стоимости, инфляция которой используется для оплаты validators. Все еще на ранних стадиях дизайна, в настоящее время в предложении отсутствуют подробные сведения об экономических средствах достижения масштабируемого определенность важнее глобальной достоверности. Однако недостаточная согласованность, необходимая между зонами и концентратором, позволит для дополнительной гибкости по параметрам зонирования цепочек по сравнению с системой, обеспечивающей более строгое соблюдение согласованность. 2.2.3. Каспер. Пока еще нет комплексного обзора или параллельного сравнения Casper [6] и Polkadot. были сделаны, хотя можно сделать довольно широкий (и, соответственно, неточная) характеристика этих двоих. Casper — это переосмысление алгоритма консенсуса PoS. может быть основано на ставках участников на то, какой форк в конечном итоге станет каноническим. Существенное внимание было уделено обеспечению его устойчивости к сети. вилки, даже если они продлены, и имеют некоторую дополнительную степень масштабируемости поверх базовой модели Ethereum. Как таким образом, Каспер на сегодняшний день имеет тенденцию быть значительно более более сложный протокол, чем Polkadot и его предшественники, а также существенное отклонение от основного формата blockchain. Это остается неизвестным относительно того, как Каспер будет работать в будущем. и как он будет выглядеть, если он наконец будет развернут. Хотя Casper и Polkadot представляют собой новые интересные протоколы и, в некотором смысле, дополнения Ethereum, существуют существенные различия между их конечные цели и пути к развертыванию. Каспер – это Ethereum Первоначально разработанный проект, ориентированный на Фонд быть изменением протокола PoS без желания создайте принципиально масштабируемый blockchain. Принципиально важно, что это предназначен для хард-форка, а не для чего-то более обширного, и, таким образом, все клиенты и пользователи Ethereum будут необходимо обновить или остаться на вилке неопределенного внедрения. Таким образом, развертывание существенно усложняется, что характерно для децентрализованного проекта, где жесткие необходима координация. Polkadot отличается по нескольким причинам; прежде всего, Polkadot спроектирован как полностью расширяемый и масштабируемый blockchain тестирование разработки, развертывания и взаимодействия кровать. Она создана как привязь, ориентированная на будущее, способная ассимилировать новый blockchainтехнологии по мере их появления без чрезмерно сложной децентрализованной координации. или хардфорки. Мы уже предвидим несколько вариантов использования, таких как в виде зашифрованных цепочек консорциума и высокочастотных цепочек с очень низким временем блокировки, что нереально сделать в любая будущая версия Ethereum, предусмотренная в настоящее время. Наконец, связь между ним и Ethereum чрезвычайно рыхлый; никаких действий со стороны Ethereum не требуется, чтобы включить бездоверительную пересылку транзакций между двумя сети. Короче говоря, пока Каспер/Ethereum 2.0 и Polkadot поделиться некоторыми мимолетными сходствами, которые, как мы считаем, являются конечной целью существенно отличается и что вместо того, чтобы конкурировать, эти два протокола, вероятно, в конечном итоге будут сосуществовать под взаимовыгодные отношения в обозримом будущем.
소개
블록체인은 "사물 인터넷"을 포함한 여러 분야에서 큰 유용성을 보여주었습니다. (IoT), 금융, 거버넌스, ID 관리, 웹 분산화 및 자산 추적. 그러나 그럼에도 불구하고 기술적 약속과 거창한 이야기, 우리는 아직 보지 못했습니다 현재 기술의 중요한 실제 배포. 우리는 이것이 현재의 다섯 가지 주요 실패로 귀결된다고 믿습니다. 기술 스택: 확장성: 전 세계적으로 얼마나 많은 리소스가 소비되는지 단일 트랜잭션을 처리하는 시스템의 처리, 대역폭 및 저장 공간과 트랜잭션 수 거래는 다음과 같이 합리적으로 처리될 수 있습니다. 최고 조건? 격리성: 여러 회사의 다양한 요구 사항을 충족할 수 있습니까? 당사자와 신청서가 동일한 프레임워크에서 거의 최적의 수준으로 처리됩니까? 개발 가능성: 도구가 얼마나 잘 작동합니까? 마 API가 개발자의 요구 사항을 해결합니까? 교육자료가 있나요? 올바른 통합이 있습니까? 거버넌스: 네트워크가 유연하게 유지될 수 있습니까? 시간이 지남에 따라 진화하고 적응합니까? 결정이 가능할까요? 충분한 포용성, 정당성 및 투명성을 통해 효과적인 리더십을 제공합니다. 분산 시스템? 적용 가능성: 기술이 실제로 자체적으로 긴급한 요구 사항을 해결합니까? 격차를 해소하기 위해 다른 "미들웨어"가 필요합니까? 실제 응용? 현재 작업에서 우리는 처음 두 가지 문제를 해결하는 것을 목표로 합니다. 문제: 확장성 및 격리성. 즉, 우리는 믿습니다 Polkadot 프레임워크는 이러한 각 문제 클래스에서 의미 있는 개선을 제공할 수 있습니다. 다음과 같은 현대적이고 효율적인 blockchain 구현 패리티 Ethereum 클라이언트 [17]은 다음을 초과하여 처리할 수 있습니다. 고성능 소비자 하드웨어에서 실행 시 초당 3,000건의 트랜잭션. 그러나 현재 현실 세계에서는 blockchain 네트워크는 실질적으로 약 30개로 제한됩니다. 초당 트랜잭션. 이러한 제한은 주로 현재의 동기식 합의 메커니즘이 광범위한 타이밍 안전 마진을 요구한다는 사실에서 비롯됩니다. 예상되는 처리 시간으로 인해 악화됩니다.POLKADOT: 이종 다중 체인 프레임워크에 대한 비전 초안 1 2 더 느린 구현을 지원하려는 욕구. 이는 다음으로 인해 발생합니다. 기본 합의 아키텍처: 상태 전환 메커니즘 또는 당사자가 대조하는 수단 트랜잭션을 실행하고 논리가 근본적으로 묶여 있습니다. 합의된 "정규화" 메커니즘, 또는 당사자들이 다음 중 하나에 동의하는 것을 의미합니다. 가능한, 유효한, 역사. 이는 Bitcoin [15] 및 Ethereum[5,23]과 같은 proof-of-work(PoW) 시스템과 NXT [8] 및 Bitshares [12]과 같은 지분 증명(PoS) 시스템 모두에 동일하게 적용됩니다. 결국 모두 같은 핸디캡을 겪게 됩니다. 그것은 간단하다 blockchains의 성공을 도운 전략입니다. 그러나, 이 두 가지 메커니즘을 하나의 장치로 긴밀하게 결합함으로써 프로토콜의 여러 다른 프로토콜도 함께 번들로 묶습니다. 서로 다른 위험 프로필, 서로 다른 확장성 요구 사항, 서로 다른 개인 정보 보호 요구 사항을 가진 행위자와 애플리케이션. 하나의 크기가 모든 것에 적합하지는 않습니다. 너무 자주 그런 경우가 있습니다. 광범위한 호소력을 원하는 네트워크는 최소 공통 분모를 초래하는 어느 정도 보수주의를 채택합니다. 최적으로 소수에게만 서비스를 제공하고 궁극적으로 실패로 이어지는 경우 때로는 혁신하고, 수행하고, 적응하는 능력 극적으로 그렇습니다. 예를 들어 일부 시스템. 사실 [21] 상태 전환 메커니즘을 완전히 삭제했습니다. 그러나 대부분의 우리가 원하는 유용성을 위해서는 상태를 전환하는 능력이 필요합니다. 공유 상태 머신에 따르면. 놓으면 해결됨 대안적인 문제; 대안을 제공하지 않습니다 솔루션. 그러므로 하나의 합리적인 방향은 분명한 것 같습니다. 확장 가능한 분산 컴퓨팅에 대한 경로를 탐색합니다. 플랫폼은 합의 아키텍처를 분리하는 것입니다. 상태 전환 메커니즘. 그리고 아마도 이는 Polkadot이 확장성에 대한 솔루션으로 채택하는 전략입니다. 2.1. 프로토콜, 구현 및 네트워크. 좋아요 Bitcoin 및 Ethereum, Polkadot은 네트워크 프로토콜과 (지금까지 가정된) 기본 프로토콜을 동시에 나타냅니다. 이 프로토콜을 실행하는 공용 네트워크. Polkadot은 무료 개방형 프로젝트로 만들어졌으며 프로토콜 사양은 크리에이티브 커먼즈 라이센스에 따릅니다. 코드는 FLOSS 라이센스에 따라 배치됩니다. 프로젝트는 공개적으로 개발되었으며 기여를 받아들입니다. 어디에서나 유용합니다. 다르지 않은 RFC 시스템 Python Enhancement Proposals는 다음과 같은 수단을 허용합니다. 프로토콜 변경 및 업그레이드에 대해 공개적으로 협력합니다. Polkadot 프로토콜의 초기 구현 Parity Polkadot 플랫폼으로 알려지며 API와 함께 전체 프로토콜 구현을 포함합니다. 바인딩. 다른 Parity blockchain 구현과 마찬가지로, PPP는 공용 네트워크나 공용 네트워크를 위한 것이 아닌 범용 blockchain 기술 스택으로 설계되었습니다. 민간/컨소시엄 운영. 이에 따른 발전 지금까지 여러 당사자로부터 자금을 지원받았습니다. 영국 정부로부터 보조금을 받았습니다. 그럼에도 불구하고 이 문서에서는 Polkadot에 대해 설명합니다. 공용 네트워크의 컨텍스트. 우리가 공용 네트워크에서 구상하는 기능은 네트워크에서 요구되는 기능의 상위 집합입니다. 대체(예: 개인 및/또는 컨소시엄) 설정. 또한 이 맥락에서 Polkadot의 전체 범위는 다음과 같습니다. 더 명확하게 설명하고 논의할 수 있습니다. 이것은 의미합니다 독자는 특정 메커니즘이 Polkadot과 직접적으로 관련되지 않은 설명(예: 다른 공용 네트워크와의 상호 운용) 비공개("허가된") 상황에서 배포되는 경우. 2.2. 이전 작업. 국가 전환에서 기본 합의를 분리하는 것이 비공식적으로 제안되었습니다. 최소 2년 동안 개인적으로 —Max Kaye는 초기에 그러한 전략을 지지한 사람이었습니다. Ethereum. 체인(Chain)으로 알려진 더 복잡하고 확장 가능한 솔루션 섬유, 2014년 6월로 거슬러 올라가 나중에 처음 출판됨 그 해1, 투명한 체인 간 실행 메커니즘을 제공하는 단일 릴레이 체인과 여러 개의 동종 체인에 대한 사례가 만들어졌습니다. 결맞음이 지불되었습니다 트랜잭션 대기 시간을 통해—다음을 요구하는 트랜잭션 시스템의 서로 다른 부분을 조정하면 처리하는 데 시간이 더 걸립니다. Polkadot는 아키텍처의 대부분을 해당 아키텍처와 후속 대화에서 가져옵니다. 사람마다 다르지만 디자인과 조항의 상당 부분이 크게 다릅니다. Polkadot에 필적하는 시스템은 없지만 실제로 생산 중에는 어느 정도 관련성이 있는 여러 시스템이 있습니다. 제안되었지만 실질적인 수준은 거의 없습니다. 세부 사항. 이러한 제안은 다음과 같습니다.시스템으로 세분화 이는 전 세계적으로 일관성이 있다는 개념을 떨어뜨리거나 감소시킵니다. 상태 머신, 전역적으로 제공하려고 시도하는 머신 동종 샤드를 통한 일관된 싱글톤 머신 그리고 이질성만을 목표로 하는 것. 2.2.1. 전역 상태가 없는 시스템. Factom [21]은 다음 사항 없이 정규성을 입증하는 시스템입니다. 유효성을 확보하여 효과적으로 데이터를 기록할 수 있습니다. 글로벌 상태와 어려움을 회피하기 때문에 이것이 가져오는 확장성을 통해 확장 가능한 솔루션으로 간주될 수 있습니다. 그러나 앞서 언급한 바와 같이 세트는 그것이 해결하는 문제의 비율은 엄격하고 실질적으로 더 적습니다. Tangle [18]은 합의 시스템에 대한 새로운 접근 방식입니다. 트랜잭션을 블록으로 배열하고 엄격하게 연결된 목록을 통해 합의를 형성하여 상태 변경에 대한 전 세계적으로 표준적인 순서를 제공하는 대신 크게 구조화된 순서에 대한 아이디어를 포기하고 대신 이전 항목을 정규화하는 데 도움이 되는 이후 항목과 종속 트랜잭션의 방향성 비순환 그래프를 추진합니다. 명시적인 참조를 통해 임의의 상태 변경의 경우 이 종속성 그래프는 금방 다루기 어려워집니다. 그러나 훨씬 더 간단한 UTXO model2의 경우 이는 다음과 같습니다. 꽤 합리적이다. 시스템은 느슨하게 일관성이 있고 트랜잭션은 일반적으로 각 시스템과 독립적이기 때문입니다. 다른 한편으로, 많은 양의 전역 병렬성이 상당히 커집니다. 자연스러운. UTXO 모델을 사용하면 효과가 있습니다. Tangle을 순수한 가치 전달 "통화"로 제한하는 것 더 일반적이거나 확장 가능한 시스템이 아닙니다. 더욱이, 엄격한 글로벌 일관성이 없으면 절대적인 일관성이 필요한 경향이 있는 다른 시스템과의 상호 작용이 필요합니다. 시스템 상태에 대한 정도의 지식은 비실용적이 됩니다. 1https://github.com/ethereum/wiki/wiki/Chain-Fibers-Redux 2미사용 트랜잭션 출력, Bitcoin이 사용하는 모델로 상태는 사실상 일부 값과 연관된 주소 세트입니다. 트랜잭션은 그러한 주소를 대조하여 총합이 동일한 새로운 주소 세트로 재구성합니다.
POLKADOT: 이종 다중 체인 프레임워크에 대한 비전 초안 1 3 2.2.2. 이종 체인 시스템. 사이드 체인 [3]은 메인 Bitcoin 체인 간의 무신뢰 상호 작용을 허용하는 Bitcoin 프로토콜에 대한 추가 제안 그리고 추가적인 사이드체인. 어떠한 조항도 없습니다 사이드체인 간의 '풍부한' 상호작용 정도: 상호작용은 사이드체인이 활성화될 수 있도록 제한됩니다. 지역에서 서로의 자산을 관리하는 관리자 전문 용어 - 양방향 페그 3. 최종 비전은 Bitcoin 통화가 제공될 수 있는 프레임워크에 대한 것입니다. 주변 장치인 경우 페깅을 통해 추가 기능 제공 좀 더 이국적인 상태 전환을 통해 다른 체인으로 Bitcoin 프로토콜이 허용하는 것보다 시스템. 이런 의미에서, 사이드체인은 확장성보다는 확장성을 다룹니다. 실제로 사이드체인의 유효성에 대한 규정은 근본적으로 없습니다. 한 체인의 token(예: Bitcoin) 사이드체인을 대신하여 보유하는 것은 오직 사이드체인에 의해서만 보호됩니다. 채굴자들이 정규화하도록 장려하는 사이드체인의 능력 유효한 전환. Bitcoin 네트워크의 보안 다른 사람을 대신하여 업무를 쉽게 전환할 수 없습니다. blockchains. 또한 Bitcoin을 보장하기 위한 프로토콜 채굴자는 병합 채굴(사이드 체인의 정규화 권한을 복제)하고 더 중요한 것은 사이드 체인의 전환이 외부에 있는지 확인하는 것입니다. 이 제안의 범위. Cosmos [10]는 제안된 다중 체인 시스템입니다. 사이드 체인과 동일한 맥락, Nakamoto PoW 교체 Jae Kwon의 Tendermint 알고리즘에 대한 합의 방법. 기본적으로 이는 여러 체인(운영 방식)을 설명합니다. 영역) 각각은 Tendermint의 개별 인스턴스를 사용하고 다음을 통한 무신뢰 통신 수단을 사용합니다. 마스터 허브 체인. 이 인터체인 통신은 임의의 정보가 아닌 디지털 자산("구체적으로 tokens")의 전송으로 제한되지만 이러한 인터체인 통신에는 데이터에 대한 반환 경로가 있습니다. 예를 들어 전송 상태를 발송인에게 보고합니다. 구역화된 체인에 대한 검증자 세트, 특히 그들에게 인센티브를 부여하는 수단은 사이드체인처럼 왼쪽에 있습니다. 해결되지 않은 문제로. 일반적인 가정은 다음과 같습니다. 각 존 체인은 자체적으로 validators에 대한 비용을 지불하는 데 인플레이션이 사용되는 token 가치를 보유합니다. 아직 초기 단계 디자인 측면에서 현재 제안에는 확장성을 달성하기 위한 경제적 수단에 대한 포괄적인 세부 정보가 부족합니다. 글로벌 타당성에 대한 확실성. 그러나 영역과 허브 사이에 필요한 느슨한 일관성으로 인해 구역화 매개변수에 대한 추가적인 유연성을 위해 더 강력하게 시행하는 시스템과 비교하여 체인 일관성. 2.2.3. 캐스퍼. 아직까지 Casper [6]과 Polkadot에 대한 포괄적인 검토나 병렬 비교는 없습니다. 꽤 대대적인 작품을 만들 수는 있지만 (따라서 부정확한) 둘의 특성화. Casper는 PoS 합의 알고리즘을 재구성한 것입니다. 어떤 포크에 베팅하는 참가자를 기반으로 할 수 있습니다. 궁극적으로 표준이 될 것입니다. 네트워크에 대한 견고성을 보장하기 위해 상당한 고려가 이루어졌습니다. 포크는 장기간에도 사용할 수 있으며 기본 Ethereum 모델 위에 어느 정도 추가 확장성을 제공합니다. 다음과 같이 따라서 캐스퍼는 현재까지 훨씬 더 많은 경향이 있습니다. Polkadot 및 그 조상보다 복잡한 프로토콜, 그리고 기본 blockchain 형식과 상당한 차이가 있습니다. 그것 캐스퍼가 미래에 어떻게 반복할지는 아직 알 수 없습니다 최종적으로 배포되면 어떤 모습일지. Casper와 Polkadot은 모두 흥미로운 새로운 프로토콜을 나타내며 어떤 의미에서는 Ethereum, 둘 사이에는 상당한 차이가 있습니다. 궁극적인 목표와 배포 경로. 캐스퍼는 Ethereum 원래 설계된 재단 중심 프로젝트 원하지 않는 프로토콜에 대한 PoS 변경이 되는 것입니다. 근본적으로 확장 가능한 blockchain을 만듭니다. 결정적으로는 더 광범위한 것이 아닌 하드 포크로 설계되었으므로 모든 Ethereum 클라이언트와 사용자는 업그레이드하거나 불확실한 채택을 유지해야 합니다. 따라서 배포가 빡빡한 분산형 프로젝트에 내재된 것처럼 배포가 훨씬 더 어려워집니다. 조정이 필요합니다. Polkadot는 여러 면에서 다릅니다. 무엇보다도, Polkadot은 완전히 확장 가능하고 확장 가능하도록 설계되었습니다. blockchain 개발, 배포 및 상호 작용 테스트 침대. 이는 미래에 대비할 수 있는 하네스로 제작되었습니다. 새로운 blockchain에 동화되다지나치게 복잡한 분산 조정 없이 사용 가능한 기술 또는 하드포크. 우리는 이미 다음과 같은 몇 가지 사용 사례를 구상하고 있습니다. 암호화된 컨소시엄 체인 및 고주파 체인 매우 낮은 블록 시간으로 인해 비현실적입니다. 현재 구상 중인 Ethereum의 향후 버전. 마지막으로, 그것과 Ethereum 사이의 결합은 매우 느슨하다; Ethereum 측의 조치는 필요하지 않습니다. 둘 사이의 무신뢰 트랜잭션 전달을 활성화합니다. 네트워크. 즉, Casper/Ethereum 2.0 및 Polkadot 우리가 그들의 최종 목표라고 생각하는 몇 가지 덧없는 유사성을 공유합니다. 실질적으로 다르며 경쟁하기보다는 두 프로토콜은 궁극적으로 하나의 환경 하에서 공존할 가능성이 높습니다. 가까운 미래에 상호 이익이 되는 관계.
Краткое содержание
Polkadot — это масштабируемая гетерогенная мультицепочка. Это означает, что в отличие от предыдущих реализаций blockchain которые сосредоточились на обеспечении единой цепочки различных степени общности потенциальных приложений, Polkadot сам по себе не предназначен для обеспечения каких-либо встроенных функций приложения. Скорее, Polkadot обеспечивает основу «релейная цепочка», на которой большое количество проверяемых, глобально-когерентные динамические структуры данных могут размещаться бок о бок. Мы называем эти структуры данных «параллельными». цепочки или парацепи, хотя особой необходимости в них нет. они должны быть blockchain по своей природе. Другими словами, Polkadot можно считать эквивалентным набору независимых цепочек (например, набору, содержащему Ethereum, Ethereum Classic, Namecoin и Bitcoin), за исключением двух очень важных моментов: • Объединенная безопасность; • межцепочечная транзакция без доверия. Именно по этим причинам мы считаем Polkadot «масштабируемым». В принципе, задача, которая будет развернута на Polkadot, может быть существенно распараллелена — масштабирована — через большое количество парачейнов. Поскольку все аспекты каждого парачейн может проводиться параллельно разными сегментами сети Polkadot, система имеет некоторую возможность масштабировать. Polkadot представляет собой довольно простой фрагмент 3в отличие от односторонней привязки, которая по сути представляет собой действие по уничтожению token в одной цепочке для создания token в другой без механизм, позволяющий сделать обратное, чтобы восстановить исходные tokensPOLKADOT: ВИДЕНИЕ ГЕТЕРОГЕННОЙ МНОГОЦЕПНОЙ СТРУКТУРЫ ПРОЕКТ 1 4 инфраструктура, оставляя большую часть сложностей решать на уровне промежуточного программного обеспечения. Это сознательное решение, направленное на снижение риска развития, позволяющее необходимое программное обеспечение, которое будет разработано в короткие сроки и с хорошим уровнем уверенности в своей безопасности и надежность. 3.1. Философия Polkadot. Polkadot должен обеспечить абсолютную прочную основу для построить следующую волну консенсусных систем, вплоть до спектр рисков от готовых к производству зрелых проектов к зарождающимся идеям. Предоставляя надежные гарантии безопасности, изоляции и связи, Polkadot может позволить парачейны для самостоятельного выбора из ряда свойств. Действительно, мы предвидим, что различные экспериментальные blockchain будут расширять свойства того, что можно было бы считать разумным. сегодня. Мы видим консерваторов, цепочки высокой добавленной стоимости, подобные Bitcoin или Z-cash PH_0000, сосуществующие рядом с более низкой стоимостью «тема-цепочки» (такой маркетинг, так весело) и тест-сети с нулевой или близкой к нулевой комиссией. Мы видим полностью зашифрованные, «темные» сети консорциумов, действующие бок о бок – и даже предоставление услуг — высокофункциональным и открытым цепочкам например, Ethereum. Мы видим экспериментальные новинки Цепочки на основе виртуальных машин, такие как субъективный васм с оплатой по времени цепочка используется как средство передачи сложных вычислительных задач на аутсорсинг из более зрелой цепочки, подобной Ethereum. или более ограниченную цепочку, подобную Bitcoin. Для управления обновлениями цепочки Polkadot по своей сути будет поддерживать некую структуру управления, вероятно, основанную на существующих стабильных политических системах и имеет двухпалатный аспект, аналогичный Совету «Желтой книги» [24]. Как высший орган власти, базовые держатели token будут иметь контроль «референдума». Чтобы отразить мнение пользователей потребность в развитии, но потребность разработчиков в легитимности, мы ожидаем, что разумным направлением будет формирование две палаты из комитета «пользователей» (состоящего из облигационные validators) и «технический» комитет, составленный крупных разработчиков клиентов и игроков экосистемы.
группа владельцев token будет сохранять максимальную легитимность и формировать сверхбольшинство для расширения, изменения параметров, замены или роспуска этой структуры, что мы и делаем. не сомневайтесь в возможной необходимости: по словам Твена «Правительства и подгузники надо менять часто, а для та же причина». В то время как репараметризацию обычно легко организовать в рамках более крупного механизма консенсуса, более качественные изменения, такие как замена и дополнение, могли бы быть осуществлены. вероятно, потребуются либо неавтоматизированные «мягкие указы» (например, посредством канонизации номера блока и hash документа, официально определяющего новый протокол) или сделать необходимым наличие основного механизма консенсуса для сдерживания достаточно богатый язык, чтобы описать любой аспект самого себя который, возможно, придется изменить. Последнее является конечной целью, однако первое, скорее всего, будет выбрано для того, чтобы обеспечить разумные сроки разработки. Основные принципы Polkadot и правила, в соответствии с которыми мы оцениваем все проектные решения: Минимально: Polkadot должен иметь как можно меньше функций. Просто: никаких дополнительных сложностей быть не должно. в базовом протоколе, чем это может быть разумно выгружается в промежуточное программное обеспечение, размещенный через parachain или введен в более поздней оптимизации. Общие сведения: нет ненужных требований и ограничений. или ограничения должны быть наложены на парачейны; Polkadot должен стать испытательной площадкой для разработки системы консенсуса, которую можно оптимизировать с помощью сделать модель, в которую вписываются расширения, максимально абстрактной. Надежный: Polkadot должен обеспечивать фундаментальную стабильный базовый слой. Помимо экономической устойчивости, это также означает децентрализацию с целью минимизации векторы для атак с высокой наградой.
요약
Polkadot은 확장 가능한 이종 다중 체인입니다. 이 이는 이전 blockchain 구현과 달리 다양한 단일 체인을 제공하는 데 중점을 두었습니다. 잠재적인 응용 프로그램에 대한 일반성 정도, Polkadot 자체적으로는 고유한 애플리케이션 기능을 전혀 제공하지 않도록 설계되었습니다. 오히려 Polkadot는 기반을 제공합니다. 다수의 검증 가능한 "릴레이 체인" 전 세계적으로 일관된 동적 데이터 구조가 호스팅될 수 있습니다. 나란히. 우리는 이러한 데이터 구조를 "병렬화"라고 부릅니다. 체인이나 파라체인이 특별히 필요하지는 않지만 본질적으로 blockchain입니다. 즉, Polkadot은 독립적인 체인 집합(예: 다음을 포함하는 집합)과 동일한 것으로 간주될 수 있습니다. Ethereum, Ethereum Classic, Namecoin 및 Bitcoin) 매우 중요한 두 가지 사항을 제외하고는 다음과 같습니다. • 공동 보안; • 신뢰할 수 없는 체인 간 거래 가능성. 이러한 점 때문에 우리는 Polkadot을 "확장 가능"하다고 간주합니다. 원칙적으로 Polkadot에 배포될 문제는 실질적으로 병렬화(규모 확장)될 수 있습니다. 다수의 파라체인. 각각의 모든 면에서 파라체인은 Polkadot 네트워크의 다른 세그먼트에 의해 병렬로 수행될 수 있습니다. 규모를 조정합니다. Polkadot은 다소 기본적인 부분을 제공합니다. 3한 체인의 token을 파괴하여 다른 체인의 token을 생성하는 단방향 페그와는 대조적입니다. 원래 tokens를 복구하기 위해 대화를 수행하는 메커니즘POLKADOT: 이종 다중 체인 프레임워크에 대한 비전 초안 1 4 미들웨어 수준에서 해결해야 할 복잡성이 상당 부분 남아 있습니다. 이는 개발 위험을 줄이기 위한 의식적인 결정입니다. 단기간 내에 개발해야 하는 필수 소프트웨어 그리고 보안에 대해 상당한 수준의 확신을 가지고 있으며, 견고성. 3.1. Polkadot의 철학. Polkadot 해야 합니다 절대적으로 견고한 기초를 제공합니다. 다음 단계의 합의 시스템을 구축하세요. 생산 가능한 성숙한 설계의 위험 스펙트럼 초기 아이디어에. 보안, 격리 및 통신에 대한 강력한 보장을 제공함으로써 Polkadot은(는) 다음을 허용할 수 있습니다. 다양한 속성 자체 중에서 선택할 수 있는 파라체인. 실제로 우리는 합리적인 것으로 간주될 수 있는 속성을 강화하는 다양한 실험적 blockchain을 예상합니다. 오늘. 보수적으로 보면, 유사한 고부가가치 체인 Bitcoin 또는 Z-cash [20] 저가치와 공존 "테마체인"(이런 마케팅, 너무 재밌음) 및 테스트넷 수수료가 0이거나 거의 0에 가깝습니다. 완전히 암호화된 것을 볼 수 있습니다. "어두운" 컨소시엄 체인이 함께 작동하며 심지어 기능이 뛰어난 개방형 체인에 서비스 제공 Ethereum 같은 것 말이죠. 우리는 실험적인 새로운 것을 본다 주관적인 시간 청구 wasm과 같은 VM 기반 체인 더 성숙한 Ethereum와 유사한 체인에서 어려운 컴퓨팅 문제를 아웃소싱하는 수단으로 체인이 사용됩니다. 또는 더 제한된 Bitcoin과 같은 체인입니다. 체인 업그레이드를 관리하기 위해 Polkadot은 본질적으로 일종의 거버넌스 구조를 지원합니다. 기존의 안정적인 정치 시스템에 기반을 두고 있으며 Yellow Paper Council [24]과 유사한 양원제 측면을 갖고 있습니다. 다음과 같이 궁극적인 권한인 기본 스테이킹 가능한 token 보유자는 "국민투표" 통제권을 갖게 됩니다. 사용자의 의견을 반영하기 위해 개발이 필요하지만 개발자의 정당성이 필요하므로 합리적인 방향이 형성될 것으로 기대합니다. "사용자" 위원회의 두 개의 방(으로 구성됨) 결속된 validators) 및 "기술" 위원회가 구성되었습니다. 주요 클라이언트 개발자 및 생태계 플레이어. 는 token 보유자 집단은 궁극적인 정당성을 유지하고 이 구조를 확장, 재매개변수화, 교체 또는 해체하기 위해 절대다수를 형성할 것입니다. 궁극적인 필요성을 의심하지 마십시오: Twain의 말에 따르면 “거즈와 기저귀는 자주 갈아줘야 합니다. 같은 이유”. 재매개변수화는 일반적으로 더 큰 합의 메커니즘 내에서 조정하기가 쉽지 않은 반면, 대체 및 확대와 같은 보다 질적인 변화는 자동화되지 않은 "소프트 법령"(예: 블록 번호의 표준화를 통해 새로운 프로토콜을 공식적으로 지정하는 문서의 hash) 또는 핵심 합의 메커니즘이 필요합니다. 자신의 모든 측면을 설명할 수 있을 만큼 풍부한 언어 변경해야 할 수도 있습니다. 후자는 최종 목표이고, 그러나 전자가 선택될 가능성이 더 높습니다. 합리적인 개발 일정을 촉진합니다. Polkadot의 기본 신조와 규칙 우리는 모든 디자인 결정을 다음과 같이 평가합니다. 최소: Polkadot에는 가능한 한 적은 기능이 있어야 합니다. 단순함: 추가적인 복잡성이 없어야 합니다. 합리적으로 가능한 것보다 기본 프로토콜에서 ffl미들웨어로 오프로드되고, 를 통해 배치 파라체인 또는 이후 최적화에서 도입되었습니다. 일반: 불필요한 요구 사항, 제약 없음 또는 파라체인에 제한을 가해야 합니다. Polkadot는 다음을 통해 최적화될 수 있는 합의 시스템 개발을 위한 테스트베드가 되어야 합니다. 확장이 가능한 한 추상적으로 적합한 모델을 만듭니다. 견고함: Polkadot은 근본적으로 안정적인 베이스 레이어. 경제적 건전성 외에도 이는 분권화를 의미합니다. 높은 보상을 받는 공격을 위한 벡터.
Участие в Polkadot
В обслуживании Polkadot есть четыре основные роли. сеть: сборщик, рыбак, номинатор и validator. В одна возможная реализация Polkadot, последняя роль на самом деле может быть разбит на две роли: базовый validator и гарант доступности; это обсуждается в разделе 6.5.3. подборщик Рыбак Валидаторы (эта группа) Валидаторы (другие группы) одобряет становится мониторы отчеты плохой поведение к обеспечивает блокировку кандидаты для номинатор Рисунок 1. Взаимодействие между четыре роли Polkadot. 4.1. Валидаторы. validator — это самая высокая плата и помогает запечатать новые блоки в сети Polkadot. Роль validator зависит от достаточно высокой связи. депонируются, хотя мы разрешаем другим связанным сторонам назначить одного или нескольких validators, которые будут действовать от их имени и как такая некоторая часть облигации validator не обязательно может принадлежать самому validator, а скорее этим номинаторы. validator должен запускать реализацию клиента ретрансляционной цепочки с высокой доступностью и пропускной способностью. В каждом блоке узел должен быть готов принять роль ратифицирующего новый блок в назначенном парачейне. Этот процесс включает получение, проверку и повторную публикацию кандидата блоки. Номинация является детерминированной, но практически непредсказуемой заранее. Поскольку validator не может разумно ожидать поддержания полностью синхронизированного базе данных всех парачейнов, ожидается, что validator поставит перед собой задачу разработать предлагаемую новую блок парачейна третьей стороне, известной как сопоставление. Как только все новые блоки парачейна будут должным образом ратифицированы назначенными ими подгруппами validator, validators затем должен ратифицировать сам блок релейной цепи. Это включает в себя обновление состояния очередей транзакций (по сути перемещение данных из очереди вывода парачейна в другую входная очередь парачейна), обработка транзакций ратифицированный набор транзакций релейной цепи и ратификация финальный блок, включая окончательные изменения парачейна.POLKADOT: ВИДЕНИЕ ГЕТЕРОГЕННОЙ МНОГОЦЕПНОЙ СТРУКТУРЫ ПРОЕКТ 1 5 validator не выполняет свою обязанность по поиску консенсуса по правилам выбранного нами алгоритма консенсуса наказывается. В случае первоначальных непреднамеренных сбоев это происходит через удержание вознаграждения validator. Повторные сбои приводят к снижению их залога безопасности (за счет сжигания). Доказуемо вредоносные действия, такие как двойное подписание или сговор с целью предоставления недействительного блока приведет к потере вся связь (которая частично сгорела, но в основном отдана информатору и честным актерам). В некотором смысле validator похожи на пулы для майнинга. текущего PoW blockchains. 4.2. Номинаторы. Номинатор является стороной, владеющей долей который вносит свой вклад в залог validator. Они не имеют никакой дополнительной роли, кроме размещения рискового капитала и например, чтобы сигнализировать о том, что они доверяют конкретному validator (или их набор) действовать ответственно при поддержании сеть. Они получают пропорциональное увеличение или сокращение в свой депозит в зависимости от роста облигации, к которой они вносят свой вклад. Вместе с сопоставителями, далее в некоторых смысл аналогичен майнерам современных сетей PoW. 4.3. Подборщики. Сопоставители транзакций (сокращенно сопоставители) являются сторонами, которые помогают validators в составлении действительных блоки парачейна. Они поддерживают «полный узел» для конкретного парачейна; это означает, что они сохраняют все необходимое информация, позволяющая создавать новые блоки и выполнять транзакции почти так же, как это делают майнеры на текущих PoW blockchain. В обычных обстоятельствах они будет сопоставлять и выполнять транзакции для создания незапечатанного заблокировать и предоставить его вместе с функцией с нулевым разглашением доказательство одному или нескольким validators, в настоящее время ответственным за Предлагаю блок парачейна. Точный характер взаимоотношений между сопоставителями, номинаторами и validator, скорее всего, изменится со временем. время. Первоначально мы ожидаем, что подборщики будут работать очень тесно. с validators, так как их будет всего несколько (возможно только один) парачейн(ы) с небольшим объемом транзакций. первоначальная реализация клиента будет включать RPC, позволяющие узел сопоставления парачейна для безусловного предоставления узлу (релейной цепи) validator доказуемо действующего парачейна блок. Поскольку стоимость поддержки синхронизированной версии количество таких парачейнов увеличивается, мы ожидаем увидеть дополнительные наличие инфраструктуры, которая поможет отделить обязанности перед независимыми, экономически мотивированными сторонами. В конце концов, мы ожидаем увидеть пулы сопоставителей, которые соперничают за собирать максимальную комиссию за транзакции. С такими сборщиками может быть заключен контракт на обслуживание определенных validator в течение определенного периода времени с целью получения постоянной доли в доходах от вознаграждения. Альтернативно, «внештатные» подборщики могут просто создать рынок, предлагающий действительные блоки парачейна в обмен на конкурентоспособную долю вознаграждения, подлежащую немедленной выплате. Аналогичным образом, децентрализованные пулы номинаторов позволят множеству связанные участники координировать и разделять обязанности validator. Эта возможность объединения обеспечивает открытое участие. что приведет к более децентрализованной системе. 4.4. Рыбаки. В отличие от двух других активных партий, рыбаки не имеют прямого отношения к авторству блока процесс. Скорее они независимые «охотники за головами». мотивировано большой разовой наградой. Именно из-за существования рыбаков, мы ожидаем, что случаи плохого поведения будут происходить редко, а когда они происходят только из-за связанная сторона небрежна с безопасностью секретного ключа, а не со злым умыслом. Имя приходит от ожидаемой частоты вознаграждений, минимальных требований для участия и возможного размера вознаграждения. Рыбаки получают вознаграждение, если своевременно докажут, что по крайней мере одна связанная сторона действовала незаконно. Незаконные действия включать подписание двух блоков, каждый с одним и тем же ратифицированным родителем или, в случае парачейнов, помощь в ратификации недействительного блок. Чтобы предотвратить чрезмерное вознаграждение или компромисс и незаконное использование секретного ключа сеанса, базовая награда за предоставление одного незаконно подписанного сообщения validator является минимальный. Эта награда асимптотически возрастает по мере увеличения подтверждающие незаконные подписи других validator если это подразумевает настоящее нападение. Асимптота задана на 66 %, следуя нашему базовому утверждению безопасности, что по крайней мере две трети validator действуют доброжелательно. Рыбаки чем-то похожи на «полные узлы» в современные blockchain системы, необходимые ресурсы относительно небольшие и обеспечивают стабильное время безотказной работы и пропускная способность не обязательна. Рыбаки отличаются друг от друга так же, как они должны внести небольшой залог.Эта связь предотвращает Сивилла атакует, тратя validators время и вычислительные ресурсы ресурсы. Его сразу можно снять, наверное нет превышает сумму, эквивалентную нескольким долларам, и может привести получить огромную награду за обнаружение ненадлежащего поведения validator.
Polkadot에 참여
Polkadot 유지에는 네 가지 기본 역할이 있습니다. 네트워크: 대조자, 어부, 지명자 및 validator. 에서 Polkadot의 가능한 구현 중 하나, 후자의 역할 실제로 기본 validator 및 가용성 보증인이라는 두 가지 역할로 분류될 수 있습니다. 이에 대해서는 섹션에서 논의됩니다. 6.5.3. 대조자 어부 검증인 (이 그룹) 검증인 (다른 그룹) 승인하다 된다 모니터 보고서 나쁜 행동 블록을 제공합니다 후보자 에 대한 지명자 그림 1. Polkadot의 네 가지 역할. 4.1. 검증인. validator은 가장 높은 요금이며 Polkadot 네트워크에서 새로운 블록을 봉인하는 데 도움이 됩니다. validator의 역할은 충분히 높은 유대 관계에 달려 있습니다. 하지만 다른 보세 당사자는 이를 허용합니다. 그들을 대신하여 행동할 한 명 이상의 validator을 지명합니다. validator 채권의 일부는 반드시 validator 자체가 소유할 필요는 없고 오히려 이들 소유일 수 있습니다. 지명자. validator은 고가용성과 대역폭을 갖춘 릴레이 체인 클라이언트 구현을 실행해야 합니다. 각 블록에서 노드는 비준 역할을 수락할 준비가 되어 있어야 합니다. 지명된 파라체인의 새로운 블록. 이 과정 후보자 수신, 검증 및 재출판이 포함됩니다. 블록. 지명은 결정적이지만 사전에 사실상 예측할 수 없습니다. validator은(는) 할 수 없기 때문에 합리적으로 완전히 동기화된 상태를 유지할 것으로 예상됩니다. 모든 파라체인의 데이터베이스를 기반으로 validator이 새로운 제안을 고안하는 작업을 지명할 것으로 예상됩니다. parachain 블록을 collator라고 알려진 제3자에게 전달합니다. 모든 새로운 파라체인 블록이 지정된 validator 하위 그룹에 의해 적절하게 비준되면 validators 그런 다음 릴레이 체인 블록 자체를 비준해야 합니다. 여기에는 다음이 포함됩니다. 트랜잭션 대기열의 상태 업데이트(기본적으로 파라체인의 출력 대기열에서 다른 출력 대기열로 데이터 이동 파라체인의 입력 큐), 트랜잭션 처리 승인된 릴레이 체인 트랜잭션 세트를 승인하고 최종 파라체인 변경을 포함한 최종 블록.POLKADOT: 이종 다중 체인 프레임워크에 대한 비전 초안 1 5 validator 합의점을 찾는 의무를 이행하지 않음 우리가 선택한 합의 알고리즘의 규칙에 따라 처벌됩니다. 초기에 의도하지 않은 오류가 발생하는 경우 이를 통해 validator의 보상을 보류합니다. 반복적인 실패로 인해 담보 채권이 감소합니다(소각을 통해). 이중 서명 또는 유효하지 않은 블록을 제공하려고 공모하면 다음과 같은 손실이 발생합니다. 전체 채권(부분적으로 소각되었으나 대부분이 제공됨) 제보자와 정직한 행위자에게). 어떤 의미에서 validator은 채굴 풀과 유사합니다. 현재 PoW blockchains. 4.2. 지명자. 지명자는 지분을 보유한 당사자입니다. validator의 담보 채권에 기여하는 사람입니다. 그들은 위험 자본을 배치하는 것 외에는 추가 역할이 없습니다. 특정 validator(또는 그에 따라 설정됨) 유지 관리에 책임감 있게 행동합니다. 네트워크. 비례적으로 증가하거나 감소합니다. 채권의 성장에 따라 예금에 그들은 기여합니다. collator와 함께 다음으로 nominator가 일부에 있습니다. 현재 PoW 네트워크의 채굴자와 유사한 의미입니다. 4.3. 대조자. 트랜잭션 대조자(줄여서 대조자) validators가 유효한 문서를 작성하는 데 도움을 주는 당사자입니다. 파라체인 블록. 그들은 특정 파라체인에 대해 "풀 노드"를 유지합니다. 필요한 모든 것을 유지한다는 의미입니다. 새로운 블록을 작성하고 실행할 수 있는 정보 현재 PoW blockchains에서 채굴자가 수행하는 것과 거의 동일한 방식으로 거래합니다. 정상적인 상황에서 그들은 봉인되지 않은 거래를 생성하기 위해 거래를 대조하고 실행합니다. 영지식과 함께 차단하고 제공합니다. 현재 책임이 있는 한 명 이상의 validator에 대한 증거 파라체인 블록을 제안합니다. 대조자, 지명자 및 validator 사이의 관계의 정확한 성격은 바뀔 가능성이 높습니다. 시간. 처음에는 대조자가 매우 긴밀하게 작업할 것으로 기대합니다. validators를 사용하면 몇 개만 있을 것이기 때문에(아마도 단 하나)의 거래량이 적은 파라체인. 는 초기 클라이언트 구현에는 RPC가 포함됩니다. 검증 가능한 유효한 파라체인이 있는 (릴레이체인) validator 노드를 무조건 공급하는 파라체인 대조자 노드 블록. 동기화된 버전을 유지하는 데 드는 비용 이러한 모든 파라체인이 증가하면 추가로 분리하는 데 도움이 되는 인프라가 마련되어 있습니다. 독립적이고 경제적 동기를 지닌 당사자에 대한 의무. 결국 우리는 경쟁하는 대조자 풀을 보게 될 것으로 예상합니다. 가장 많은 거래 수수료를 징수합니다. 이러한 대조자는 보상 수익금의 지속적인 공유를 위해 일정 기간 동안 특정 validator을 서비스하도록 계약을 맺을 수 있습니다. 또는 "프리랜스" 대조자가 간단히 즉시 지불할 수 있는 보상의 경쟁력 있는 공유에 대한 대가로 유효한 파라체인 블록을 제공하는 시장입니다. 마찬가지로, 분산형 지명자 풀은 여러 가지를 허용합니다. 결속된 참가자는 의무를 조정하고 공유합니다. validator. 이러한 풀링 기능은 공개 참여를 보장합니다. 보다 분산된 시스템으로 이어집니다. 4.4. 어민. 다른 두 활성 파티와는 달리, 어부는 블록 저작과 직접적인 관련이 없습니다. 프로세스. 오히려 그들은 독립적인 "현상금 사냥꾼"입니다. 큰 일회성 보상에 의해 동기가 부여됩니다. 바로 그 이유는 어부의 존재로 인해 우리는 잘못된 행동이 거의 발생하지 않을 것이라고 예상합니다. 보세 당사자가 비밀 키 보안에 부주의하고, 악의적인 의도보다는. 이름이 온다 예상되는 보상 빈도, 참여에 필요한 최소 요구 사항 및 최종 보상 크기를 고려합니다. 어부들은 적시에 다음과 같은 증거를 통해 보상을 받습니다. 적어도 한 명의 보세 당사자가 불법적으로 행동했습니다. 불법 행위 동일한 비준된 상위 블록으로 각각 두 개의 블록에 서명하거나 파라체인의 경우 유효하지 않은 블록을 비준하는 데 도움이 됩니다. 블록. 과도한 보상이나 타협을 방지하기 위해 세션 비밀 키의 불법 사용, 기본 보상 단일 validator의 불법적으로 서명된 메시지를 제공하는 것은 최소한. 이 보상은 더 많아질수록 점근적으로 증가합니다. 다른 validator의 불법 서명을 확증하는 것은 실제 공격을 암시하는 것으로 제공됩니다. 점근선이 설정되었습니다. 최소한 우리의 기본 보안 주장에 따르면 66%입니다. validator의 2/3는 자비롭게 행동합니다. 어부들은 "풀 노드"와 다소 유사합니다. 자원이 필요한 현재의 blockchain 시스템 상대적으로 작고 안정적인 가동 시간을 약속합니다. 대역폭은 필요하지 않습니다. 어부들은 다르다 소액의 보증금을 내야 하는 만큼.이 채권은 방지 validators의 시간과 컴퓨팅 낭비로 인한 시빌 공격 자원. 즉시 철회가 가능합니다. 아마도 그렇지 않을 것입니다. 몇 달러에 해당하는 금액보다 더 많은 금액이 소요될 수 있습니다. 잘못된 행동을 발견하여 막대한 보상을 받는 것 validator.
Обзор конструкции
Цель этого раздела – дать краткий обзор система в целом. Более тщательное исследование система приведена в следующем за ней разделе. 5.1. Консенсус. В цепочке реле Polkadot достигает консенсус низкого уровня по набору взаимно согласованных действительных блокируется с помощью современного асинхронного византийского отказоустойчивого алгоритма (BFT). Алгоритм будет вдохновлен с помощью простого Tendermint [11] и значительно большего участвует HoneyBadgerBFT [14]. Последний обеспечивает эффективный и отказоустойчивый консенсус по произвольному дефектная сетевая инфраструктура, учитывая набор в основном безобидных органов власти или validator. Для сети в стиле доказательства авторитета (PoA) это само по себе было бы достаточно, однако Polkadot предполагается также можно развернуть в виде сети в полностью открытом и общедоступном режиме. ситуация без какой-либо конкретной организации или доверенного лица полномочия, необходимые для его поддержания. Таким образом, нам нужен средства определения набора validators и стимулирования им, если честно. Для этого мы используем отбор на основе PoS. критерии. 5.2. Доказательство ставки. Мы предполагаем, что сеть будут иметь некоторые средства измерения размера «ставки» какая-либо конкретная учетная запись имеет. Для удобства сравнения с ранее существовавших систем, мы будем называть единицу измерения «tokens». К сожалению, этот термин не идеален для ряд причин, не в последнюю очередь то, что это просто скаляр значение, связанное со счетом, нет понятия индивидуальность. Мы предполагаем, что validator избираются нечасто (в лучшем случае один раз в день, но, возможно, реже, чем раз в квартал), по схеме Nomination Proof-of-Stake (NPoS). Стимулирование может происходить за счет пропорционального распределенияPOLKADOT: ВИДЕНИЕ ГЕТЕРОГЕННОЙ МНОГОЦЕПНОЙ СТРУКТУРЫ ПРОЕКТ 1 6 Реле цепь Рой валидаторов (каждый окрашен в свой цвет обозначенный парачейн) Транзакция (представлено внешний актер) Парачейн мост Виртуальный парачейн (например, Ethereum) Парачейн Парачейн очереди и ввод-вывод Распространяемые транзакции Заблокировать подачу кандидата 2-й порядок Релейная цепь Парачейн-сообщество Аккаунт Входящая транзакция Исходящая транзакция Межцепочные транзакции (управляется validators) подборщик Распространенный блок Рыбак Рисунок 2. Сводная схема системы Polkadot. На этом рисунке показаны сопоставители, собирающие и распространяющие пользовательские транзакции, а также распространяющие кандидатов на блоки рыбакам и validator. Это также показывает, как учетная запись может публиковать транзакцию, выполняемую из ее парачейна, через релейную цепь. и в другой парачейн, где это можно интерпретировать как транзакцию на счет там. средства, поступающие от расширения базы token (до 100 % в год, хотя более вероятно около 10%) вместе с любые взимаемые комиссии за транзакции. Хотя расширение денежной базы обычно приводит к инфляции, поскольку все владельцы token будут иметь справедливую возможность участия, ни одному держателю token не придется страдать от снижения стоимости своих холдингов с течением времени при условии, что они будут рады принять роль в механизме консенсуса. Особая пропорция из token будут предназначены для процесса staking; тот эффективное расширение базы token будет скорректировано через рыночный механизм для достижения этой цели. Валидаторы сильно связаны своими ставками; выход Облигации validators остаются в силе еще долгое время после прекращения исполнения обязанностей validators (возможно, около 3 месяцев). Это долго Период ликвидации облигаций позволяет предотвратить неправомерное поведение в будущем. наказываются вплоть до периодической проверки цепочки. Неправомерное поведение влечет за собой наказание, например, снижение вознаграждение или, в случаях, которые намеренно ставят под угрозу целостность сети, validator теряет часть или все свои ставка другим validator, информаторам или заинтересованным сторонам в целом (через горение). Например, validator который пытается ратифицировать обе ветви вилки (иногда известная как атака «ближнего радиуса действия»), могут быть идентифицированы и наказывалось последним способом. Дальние атаки «ничего не поставлено на карту»4 обходят с помощью простой блокировки «контрольной точки», которая предотвращает опасную реорганизацию цепочки длиной более определенную глубину цепи. Чтобы обеспечить новую синхронизацию клиентов не могут попасться не на ту цепочку, регулярные произойдут «хардфорки» (максимум того же периода ликвидация облигаций validators), которые жестко закодируют недавнюю контрольную точку, блокирующую hashes в клиентах. Это хорошо сочетается с дополнительной мерой уменьшения занимаемой площади «конечной длиной цепи» или периодический сброс генезис-блока. 5.3. Парачейны и колляторы. Каждый парачейн получает аналогичные средства безопасности для релейной цепи: тот заголовки парачейнов запечатаны внутри блока релейной цепи обеспечение невозможности реорганизации или «двойного расходования» после подтверждения. Это аналогичная гарантия безопасности, предлагаемая сайдчейнами Bitcoin и слиянием майнинга. Polkadot, однако, также предоставляет надежные гарантии того, что переходы состояний парачейнов действительны. Это происходит посредством криптографического случайного сегментирования набора validator на подмножества; одно подмножество на парачейн, подмножества которых потенциально различаются в каждом блоке. Это настройка обычно подразумевает, что время блокировки парачейнов будет быть по крайней мере такой же длины, как и длина релейной цепи. Конкретный средства определения разделения выходят за рамки 4Такая атака заключается в том, что противник создает совершенно новую историческую цепочку, начиная с блока генезиса. Посредством контроля относительно незначительную часть ставки при зачете, они могут постепенно увеличивать свою долю ставки относительно всех других заинтересованные стороны, поскольку они являются единственными активными участниками своей альтернативной истории. Поскольку не существует внутренних физических ограничений на создание блоков (в отличие от PoW, где должна быть затрачена вполне реальная вычислительная энергия), они способны создавать цепочку длиннее, чем реальная цепочка в относительно короткий промежуток времени и потенциально делает его самым длинным и лучшим, принимая на себя каноническое состояние сети.POLKADOT: ВИДЕНИЕ ГЕТЕРОГЕННОЙ МНОГОЦЕПНОЙ СТРУКТУРЫ ПРОЕКТ 1 7 этого документа, но, скорее всего, будет основан либо на фреймворк фиксации-раскрытия, аналогичный RanDAO [19] или использовать данные, объединенные из предыдущих блоков каждого парачейна под криптографически безопасным hash. Такие подмножества validator необходимы для предоставления кандидат на блок парачейна, который гарантированно действителен (на боль от конфискации облигаций). Срок действия вращается вокруг двух важные моменты; во-первых, что оно действительно действительно по своей сути — что все переходы состояний были выполнены добросовестно и что все внешние данные, на которые ссылаются (т. е. транзакции), действительны для включения. Во-вторых, любые данные, не относящиеся к его кандидаты, такие как внешние транзакции, имеют достаточно высокую доступность, чтобы участники могли загрузите его и выполните блок вручную.5 Валидаторы могут предоставить только «нулевой» блок, не содержащий данных о внешних «транзакциях», но в этом случае они рискуют получить уменьшенное вознаграждение. Они работают бок о бок протокол сплетен парачейна с сопоставителями — отдельными лицами которые объединяют транзакции в блоки и предоставляют неинтерактивное доказательство с нулевым разглашением того, что блок является действительным дочерним элементом своего родителя (и принимает любую транзакцию гонорары за свои хлопоты). Протоколам парачейна предоставлено право определять свои собственные средства предотвращения спама: не существует фундаментального понятия «учет вычислительных ресурсов» или «плата за транзакцию» налагаемые релейной цепью. Протокол ретрансляционной цепи также не обеспечивает прямого соблюдения этого правила (хотя он маловероятно, что заинтересованные стороны захотят принять парачейн, который не обеспечивал достойного механизма). Это явный намек на возможность существования цепочек в отличие от Ethereum, например. цепочка типа Bitcoin, которая имеет гораздо более простую модель оплаты или какую-либо другую, еще не предложенную модель предотвращения спама. Сама релейная цепь Polkadot, вероятно, будет существовать как Ethereum-подобные учетные записи и цепочка состояний, возможно, производная от EVM. Поскольку узлы релейной цепи должны будут выполнять существенную другую обработку, пропускную способность транзакций будет частично сведено к минимуму за счет больших комиссий за транзакции и, если наши исследовательские модели требуют ограничения размера блока. 5.4. Межсетевое общение. Важнейшим и последним ингредиентом Polkadot является межцепочечная связь. Поскольку между парачейнами может быть какой-то информационный канал, мы позволяем себе считать Polkadot масштабируемая мультицепочка. В случае Polkadot связь настолько проста, насколько это возможно: транзакции выполняются в парачейн (согласно логике этой цепочки) способны осуществить отправку транзакции во второй парачейн или, потенциально, релейная цепь. Как внешние транзакции на производстве blockchain они полностью асинхронны и у них нет внутренней способности возвращать какие-либо вид информации возвращается к ее источнику. Назначение: получает данные предыдущего validators блока. Аккаунт получает сообщение: запись удалена из вход Merkle tree Аккаунт отправляет сообщение: запись помещена в выход Merkle tree для назначения парачейн выход Источник: акции данные со следующим блоком validatorс подтверждение почты, хранящееся в выход парачейна Меркла дерево размещена маршрутизированная ссылка в пункте назначения парачейна вход Merkle tree проникновение Рисунок 3. Базовая схема, показывающая основные части маршрутизации для публикации транзакции («посты»). Чтобы обеспечить минимальную сложность реализации, минимальные риск и минимальный смирительная рубашка из будущее В парачейн-архитектурах эти межцепочные транзакции фактически неотличимы от стандартных транзакций, подписанных извне. Транзакция имеет сегмент происхождения, предоставляющий возможность идентифицировать парачейн, и адрес, который может иметь произвольный размер. В отличие от обычных текущих систем, таких как Bitcoin и Ethereum, межцепочные транзакции не связаны с какой-либо «оплатой» комиссии; любой такой платеж должен управляться посредством логики переговоров в парачейнах источника и назначения. Такая система, как предложенная для Выпуск Serenity Ethereum [7] будет простым средством управления такой межсетевой оплатой ресурсов, хотя мы предполагаем, что со временем на первый план могут выйти и другие. Межцепочные транзакции разрешаются с использованием простого механизм организации очередей, основанный на Merkle tree, чтобы гарантировать верность. Задачей специалистов по обслуживанию релейной цепи является перемещать транзакции в выходную очередь одного парачейна во входную очередь целевого парачейна. на пройденные транзакции ссылаются в цепочке реле, однако они не передаютсяСами транзакции ay-chain. Чтобы предотвратить спам-рассылку парачейна другому парачейну с помощью транзакции, для отправки транзакции необходимо чтобы очередь ввода адресата не была слишком большой время окончания предыдущего блока. Если вход очередь слишком велика после обработки блока, то она считается «насыщенной» и никакие транзакции не могут быть перенаправлены в нее в последующих блоках, пока не уменьшится снова ниже уровня предел. Эти очереди администрируются в цепочке реле. позволяя парачейнам определять насыщенность друг друга статус; таким образом, неудачная попытка опубликовать транзакцию в остановленный пункт назначения может быть сообщено синхронно. (Хотя, поскольку пути возврата не существует, если вторичная транзакция не удалась по этой причине, о ней нельзя будет сообщить обратно. исходному абоненту и некоторые другие средства восстановления должно было состояться.) 5.5. Polkadot и Ethereum. Учитывая полноту по Тьюрингу Ethereum, мы ожидаем, что у Polkadot и Ethereum есть широкие возможности взаимодействия с друг друга, по крайней мере, в пределах некоторых легко выводимых границ безопасности. Короче говоря, мы предполагаем, что транзакции из Polkadot может быть подписан validator и затем передан в 5Такая задача может быть разделена между validator или может стать назначенной задачей набора сильно связанных validator, известных как Гаранты наличия.
POLKADOT: ВИДЕНИЕ ГЕТЕРОГЕННОЙ МНОГОЦЕПНОЙ СТРУКТУРЫ ПРОЕКТ 1 8 Ethereum, где их можно интерпретировать и применять договор о пересылке транзакций. В другом направлении, мы предусматриваем использование специально отформатированных журналов (событий) исходит из «прорывного контракта», чтобы обеспечить быструю проверку того, что конкретное сообщение должно быть перенаправлено. 5.5.1. От Polkadot до Ethereum. Через выбор А. Механизм консенсуса BFT с validators, сформированный из набор заинтересованных сторон, определенный путем одобрительного голосования механизм, мы можем достичь надежного консенсуса с нечасто меняющееся и скромное количество validators. В системе с общим числом 144 validators время блока 4 секунды и завершение в 900 блоков (что позволяет злонамеренным поведение, такое как двойное голосование, о котором следует сообщать, наказывается и восстановлен), достоверность блока может быть обоснованно считается доказанным, если имеется всего лишь 97 подписей (две трети из 144 плюс одна) и последующий 60-минутный период проверки, в течение которого не было предъявлено никаких возражений. Ethereum может организовать «контракт на взлом», который может сохранить 144 подписанта и контролироваться их. Поскольку для восстановления цифровой подписи по эллиптической кривой (ECDSA) требуется всего 3000 газа под номером EVM, и поскольку мы, вероятно, хотели бы, чтобы проверка происходила только на сверхбольшинство validator (вместо полного единогласия), базовая стоимость Ethereum, подтверждающая, что инструкция было правильно подтверждено, поскольку из сети Polkadot будет не более 300 000 газа — всего 6% общий лимит газа по блоку составляет 5,5М. Увеличение количества validator (что необходимо для работы с десятки сетей) неизбежно увеличивает эту стоимость, однако ожидается, что пропускная способность транзакций Ethereum со временем будет расти по мере развития технологии и инфраструктура улучшается. Вместе с тем, что не должны быть задействованы все validator (например, только самый высокий для выполнения такой задачи могут быть привлечены поставленные на карту validators) пределы этого механизма достаточно обширны. Предполагая ежедневную ротацию таких validator (что достаточно консервативны (может быть приемлемым еженедельное или даже ежемесячное обслуживание), тогда затраты сети на поддержание этот мост пересылки Ethereum будет около 540 000 газа в день или, при нынешних ценах на газ, 45 долларов в год. Базовая транзакция, пересылаемая через мост, будет стоить около 0,11 доллара США; дополнительные расчеты по контракту будут стоить больше, конечно. Путем буферизации и объединения транзакций вместе затраты на разрешение на взлом могут быть легко совместное использование, что существенно снижает стоимость транзакции; если перед пересылкой требовалось 20 транзакций, то стоимость пересылки базовой транзакции упадет до около $0,01. Одной интересной и более дешевой альтернативой этой модели контракта с несколькими подписями может быть использование пороговых подписей для достижения семантики многостороннего владения. В то время как схемы пороговой подписи для ECDSA являются вычислительно дорогими, для других схем такие как подписи Шнорра очень разумны. Ethereum планирует ввести примитивы, которые сделают такие дешевые схемы для использования в предстоящем хардфорке Metropolis. Если бы такое средство можно было использовать, стоимость газа для пересылки транзакции Polkadot в Ethereum сеть будет резко сокращена почти до нуля. накладные расходы сверх основных затрат на проверку подпись и выполнение базовой транзакции. В этой модели узлы Polkadot validator будут иметь ничего не делать, кроме как подписывать сообщения. Чтобы транзакции действительно направлялись в сеть Ethereum, мы предположим, что либо сами validator также будут находиться на сеть Ethereum или, что более вероятно, небольшие награды быть предложено первому актору, который передаст сообщение в сеть (награда может быть тривиально выплачена инициатор транзакции). 5.5.2. От Ethereum до Polkadot. Получение транзакций при пересылке с Ethereum на Polkadot используется простое понятие журналов. Когда контракт Ethereum желает отправить транзакцию в конкретный парачейн Polkadot, ему нужно просто заключить специальный «контракт о прорыве». Контракт о прорыве будет принимать любые платежи, которые могут потребуется и выдать инструкцию регистрации, чтобы ее существование можно было доказать с помощью доказательства Меркла и утверждения о том, что заголовок соответствующего блока действителен и канонический. Из последних двух условий достоверность, пожалуй, является проще всего доказать. В принципе, единственное требованиедля каждого узла Polkadot, требующего доказательства (т. е. назначенные узлы validator) для запуска полностью синхронизированного экземпляра стандартного узла Ethereum. К сожалению, это само по себе довольно сильная зависимость. Более Облегченным методом было бы использовать простое доказательство того, что заголовок был оценен правильно, поскольку был указан только часть дерева состояния Ethereum, необходимая для правильного выполнения транзакции в блоке и проверьте достоверность журналов (содержащихся в квитанции блока). Такие «СПВ-подобные»6 доказательства все же могут потребовать значительного объема информации; удобно, они обычно не нужны все: система облигаций внутри Polkadot позволит связывать третьим лицам отправлять заголовки с риском потери своих залог, если какая-либо третья сторона (например, «рыбак», см. 6.2.3) предоставит доказательство того, что заголовок недействителен. (в частности, что корень штата или корни квитанций были самозванцами). В незавершенной сети PoW, такой как Ethereum, каноничность невозможно доказать окончательно. Чтобы решить эту проблему, приложения, которые пытаются использовать какие-либо причинно-следственной цепочки дождитесь нескольких «подтверждений» или пока зависимая транзакция не достигнет некоторого определенную глубину внутри цепи. На Ethereum это Глубина варьируется от 1 блока для наименее ценных транзакций без известных проблем с сетью до 1200 блоков, как было раньше. случай во время первоначального выпуска Frontier для обмена. В стабильной сети «Homestead» эта цифра находится на отметке 120 блоков для большинства бирж, и мы, скорее всего, возьмем аналогичный параметр. Итак мы может представьте себе наш Polkadot сторона Ethereumинтерфейс, чтобы иметь несколько простых функций: иметь возможность принять новый заголовок из сети Ethereum и проверить PoW, чтобы иметь возможность принять некоторые доказательства того, что конкретный журнал был создан контрактом прорыва на стороне Ethereum для заголовка достаточной глубины (и прямого соответствующее сообщение в Polkadot) и, наконец, иметь возможность принимать доказательства, которые ранее были приняты, но Заголовок not-yet-enacted содержит недопустимый корень квитанции. Чтобы получить сами данные заголовка Ethereum (и любые доказательства SPV или опровержения действительности/каноничности) в сеть Polkadot, стимул для пересылки 6SPV относится к упрощенной проверке платежей в Bitcoin и описывает метод, позволяющий клиентам проверять транзакции, сохраняя при этом только копия заголовков всех блоков самой длинной цепочки PoW.POLKADOT: ВИДЕНИЕ ГЕТЕРОГЕННОЙ МНОГОЦЕПНОЙ СТРУКТУРЫ ПРОЕКТ 1 9 нужны данные. Это может быть так же просто, как оплата (финансируется за счет комиссий, собранных на стороне Ethereum) оплачено всем, кто может переслать полезный блок, заголовок которого действительный. Валидаторам будет предложено сохранять информацию, относящуюся к последним нескольким тысячам блоков, чтобы иметь возможность управлять форками либо с помощью некоторых встроенных в протокол средств, либо с помощью контракта, поддерживаемого на релейная цепь. 5.6. Polkadot и Bitcoin. Bitcoin взаимодействие представляет собой интересную задачу для Polkadot: так называемую «двусторонняя привязка» была бы полезной частью инфраструктуры иметь на стороне обеих сетей. Однако из-за ограничения Bitcoin, обеспечение такой привязки безопасным нетривиальное занятие. Осуществление транзакции от От PH_0011 до Polkadot в принципе можно выполнить с помощью процесса, аналогичного процессу для Ethereum; «адрес прорыва» каким-то образом контролируемые Polkadot validators могли получать переданные tokens (и данные, отправленные вместе с ними). Доказательства SPV могут быть предоставлены заинтересованными oracle и, вместе с периодом подтверждения, награда за выявление неканонических блоков, подразумевающих транзакцию был «израсходован дважды». Любые tokens, принадлежавшие тогда в Тогда «адрес прорыва», в принципе, будет контролироваться теми же validator для последующего распространения. Однако проблема заключается в том, как можно безопасно контролировать депозиты с помощью вращающегося набора validator. В отличие от Ethereum, который способен принимать произвольные решения на основе при сочетании подписей Bitcoin по существу более ограничен: большинство клиентов принимают только транзакции с мультиподписями, в которых участвуют максимум 3 стороны. Увеличение этого числа до 36 или даже до тысяч, как это в конечном итоге может быть желательно, невозможно в соответствии с текущим протоколом. Один из вариантов — изменить протокол Bitcoin, чтобы включить такая функциональность, однако так называемые «хард-форки» в Bitcoin мир сложно устроить, судя по недавним попыткам. Одной из возможностей является использование пороговых сигнатур, криптографические схемы, позволяющие однозначно идентифицировать публичные ключ для эффективного управления несколькими секретными «частями», некоторые или все из них должны быть использованы для создания действительной подписи. К сожалению, пороговые подписи совместимы с ECDSA Bitcoin требуют больших вычислительных затрат создания и полиномиальной сложности. Другие схемы, такие как Подписи Шнорра обеспечивают гораздо более низкие затраты, однако график, в котором они могут быть представлены в Bitcoin протокол неясен. Поскольку конечная безопасность депозитов зависит от несколько связанных validator, еще один вариант — сократить количество держателей ключей с несколькими подписями до связанное подмножество общего числа validators, такое что порог подписи становятся возможными (или, на худой конец, родными для Bitcoin возможна мультиподпись). Это, конечно, снижает общая сумма облигаций, которая может быть вычтена в качестве возмещения, если validator будут вести себя незаконно, однако это это изящная деградация, просто установка верхнего предела количество средств, которые могут безопасно перемещаться между две сети (вернее, на % потерь при атаке из __PH_0004__s удалось). Таким образом, мы считаем, что вполне реально разместить достаточно безопасный «виртуальный парачейн» с функциональной совместимостью Bitcoin. между двумя сетями, хотя, тем не менее, это значительные усилия с неопределенными сроками и, вполне возможно, требуя сотрудничества заинтересованных сторон в рамках этого сеть.
디자인 개요
이 섹션에서는 다음과 같은 간략한 개요를 제공합니다. 시스템 전체. 좀 더 철저한 탐구를 통해 시스템은 다음 섹션에 나와 있습니다. 5.1. 의견 일치. 릴레이 체인에서 Polkadot은(는) 달성합니다. 상호 합의된 유효한 집합에 대한 낮은 수준의 합의 최신 비동기식 비잔틴 내결함성(BFT) 알고리즘을 통해 차단합니다. 알고리즘은 영감을 받을 것입니다 간단한 Tendermint [11] 및 훨씬 더 많은 기능을 통해 관련 HoneyBadgerBFT [14]. 후자는 임의적인 것에 대한 효율적이고 내결함성 합의 대부분 온화한 권한 또는 validator 집합을 고려하면 결함이 있는 네트워크 인프라입니다. PoA(권한 증명) 스타일 네트워크의 경우 이것만으로도 충분할 것입니다. 그러나 Polkadot은(는) 그럴 것으로 예상됩니다. 완전 개방형 및 공개 환경에서 네트워크로 배포 가능 특정 조직이 없거나 신뢰할 수 없는 상황 유지하기 위해 필요한 권한입니다. 따라서 우리는 validator 세트를 결정하고 인센티브를 제공하는 수단 솔직히 말해서. 이를 위해 우리는 PoS 기반 선택을 활용합니다. 기준. 5.2. 지분을 증명합니다. 우리는 네트워크가 "지분"이 얼마나 되는지 측정할 수 있는 수단이 있을 것입니다. 특정 계정이 있습니다. 비교의 편의를 위해 기존 시스템에서는 측정 단위를 호출합니다. “tokens”. 불행하게도 이 용어는 다음과 같은 경우에는 이상적이지 않습니다. 여러 가지 이유, 특히 단순한 스칼라라는 점 계정과 관련된 가치에 대한 개념이 없습니다. 개성. 우리는 validators가 드물게 선출되는 것을 상상합니다(최대한 하루에 한 번이지만 분기당 한 번만큼 드물게 발생함) 지명 지분 증명(NPoS) 방식을 통해. 인센티브는 비례 배분을 통해 발생할 수 있습니다.POLKADOT: 이종 다중 체인 프레임워크에 대한 비전 초안 1 6 릴레이 체인 검증인 떼 (각각의 색상으로 지정 파라체인) 거래 (제출자: 외부배우) 파라체인 다리 가상 파라체인 (예: Ethereum) 파라체인 파라체인 큐와 I/O 전파된 트랜잭션 후보 제출 차단 2차 릴레이 체인 파라체인 커뮤니티 계정 인바운드 거래 아웃바운드 거래 인터체인 거래 (validators에서 관리) 대조자 전파된 블록 어부 그림 2. Polkadot 시스템의 요약 회로도. 이는 대조자가 사용자 트랜잭션을 수집하고 전파하는 것은 물론 블록 후보를 어부와 validator에게 전파하는 것을 보여줍니다. 그것은 또한 계정이 릴레이 체인을 통해 파라체인에서 수행되는 거래를 게시할 수 있는 방법을 보여줍니다. 그리고 그곳의 계정에 대한 거래로 해석될 수 있는 또 다른 파라체인으로 이동합니다. token 기지 확장을 통한 자금 조달(최대 100%) 연간, 약 10% 정도일 가능성이 높음) 모든 거래 수수료가 징수됩니다. 통화 기반 확장은 일반적으로 인플레이션으로 이어지는 반면 모든 token 소유자는 참여 시 공정한 기회를 가지게 되며, 어떤 token보유자도 자신의 가치 감소를 겪을 필요가 없습니다. 그들이 기꺼이 받아 들인다면 시간이 지남에 따라 보유하게 될 것입니다. 합의 메커니즘에서의 역할. 특정 비율 token 중 staking 프로세스의 대상이 됩니다. 는 효과적인 token 기본 확장은 다음을 통해 조정됩니다. 이 목표를 달성하기 위한 시장 기반 메커니즘. 검증인은 자신의 지분에 의해 크게 결속되어 있습니다. 종료 validators의 채권은 validators의 의무가 종료된 후에도 오랫동안(대략 3개월 정도) 유지됩니다. 이 긴 채권 청산 기간은 향후 잘못된 행동을 허용합니다. 체인의 주기적인 체크포인트까지 처벌됩니다. 잘못된 행동은 감점 등의 처벌을 초래합니다. 보상을 제공하거나 고의로 계약을 훼손하는 경우 네트워크의 무결성, validator의 일부 또는 전부를 잃습니다. 다른 validators, 정보 제공자 또는 이해관계자에 대한 지분 전체적으로 (소각을 통해). 예를 들어 validator 포크의 양쪽 가지를 모두 비준하려고 시도하는 사람(때로는 "단거리" 공격으로 알려져 있음)이 식별될 수 있으며, 후자의 방법으로 처벌한다. 장거리 "아무것도 위험하지 않은" 공격4은 단순한 "체크포인트" 래치를 통해 우회됩니다. 이 래치는 1개 이상의 위험한 체인 재구성을 방지합니다. 특정 체인 깊이. 새로 동기화되는 클라이언트를 확인하려면 잘못된 체인에 속을 수 없습니다. "하드 포크"가 발생합니다(최대한 같은 기간). validators의 채권 청산) 최근 체크포인트 블록 hashes를 클라이언트에 하드 코딩합니다. 이는 "유한한 체인 길이" 또는 제네시스 블록을 주기적으로 재설정합니다. 5.3. 파라체인과 콜레이터. 각 파라체인은 릴레이 체인과 유사한 보안 규정: 는 파라체인의 헤더는 릴레이 체인 블록 내에 밀봉되어 있습니다. 확인 후에는 재구성이나 "이중 지출"이 발생하지 않도록 할 수 있습니다. 이는 Bitcoin의 사이드체인 및 병합 채굴이 제공하는 것과 유사한 보안 보장입니다. 그러나 Polkadot은 또한 파라체인의 상태 전환이 유효하다는 강력한 보장을 제공합니다. 이 validator 집합이 암호화 방식으로 무작위로 하위 집합으로 분할되어 발생합니다. 당 하나의 하위 집합 파라체인, 블록마다 잠재적으로 다른 하위 집합. 이 설정은 일반적으로 파라체인의 블록 시간이 적어도 릴레이 체인의 길이만큼 길어야 합니다. 구체적인 파티셔닝을 결정하는 수단은 범위를 벗어납니다. 4이러한 공격은 적이 제네시스 블록부터 완전히 새로운 역사의 사슬을 구축하는 곳입니다. 제어를 통해 그들은 상쇄된 지분의 상대적으로 작은 부분을 다른 모든 것에 비해 점진적으로 늘릴 수 있습니다. 이해관계자는 대안 역사에 적극적으로 참여하는 유일한 참여자이기 때문입니다. 생성에는 본질적인 물리적 제한이 존재하지 않기 때문에 (실제 계산 에너지를 소비해야 하는 PoW와는 달리) 실제 체인보다 긴 체인을 만들 수 있습니다. 상대적으로 짧은 시간 범위를 가지며 잠재적으로 네트워크의 표준 상태를 인계받아 가장 길고 최상의 상태로 만들 수 있습니다.POLKADOT: 이종 다중 체인 프레임워크에 대한 비전 초안 1 7 이 문서의 내용은 다음 중 하나에 기반을 두고 있을 가능성이 높습니다. RanDAO [19]과 유사한 커밋-공개 프레임워크 또는 각 파라체인의 이전 블록에서 결합된 데이터를 사용합니다. 암호화된 보안 hash에 따라. validator의 이러한 하위 집합은 다음을 제공해야 합니다. 유효성이 보장된 파라체인 블록 후보 채권몰수의 고통) 타당성은 두 가지를 중심으로 이루어집니다. 중요한 점; 첫째, 그것은 본질적으로 타당하다. 모든 상태 전환이 충실하게 실행되었으며 모든 참조된 외부 데이터(예: 트랜잭션)는 포함에 유효합니다. 둘째, 외부에 있는 모든 데이터는 외부 트랜잭션과 같은 후보는 참가자가 다음을 수행할 수 있도록 충분히 높은 가용성을 가지고 있습니다. 그것을 다운로드하고 수동으로 블록을 실행하십시오.5 검증인은 외부 "거래" 데이터가 포함되지 않은 "널" 블록만 제공할 수 있지만 그렇게 할 경우 보상이 감소할 위험이 있습니다. 그들은 함께 일한다 대조자(개인)가 포함된 파라체인 가십 프로토콜 트랜잭션을 블록으로 수집하고 해당 블록이 상위 블록의 유효한 하위 블록임을 구성하는 비대화형, 영지식 증명을 제공합니다. 문제에 대한 수수료). 자체적으로 지정하는 것은 파라체인 프로토콜에 달려 있습니다. 스팸 방지 수단: "컴퓨팅 리소스 측정" 또는 "거래 수수료"에 대한 기본 개념이 없습니다. 릴레이 체인에 의해 부과됩니다. 또한 릴레이 체인 프로토콜에 의해 이에 대한 직접적인 시행은 없습니다(비록 이해관계자가 채택을 선택할 가능성은 거의 없습니다. 적절한 메커니즘을 제공하지 않는 파라체인). 이는 체인의 가능성에 대한 명시적인 고개를 끄덕이는 것입니다. Ethereum, 예: 훨씬 간단한 수수료 모델이나 아직 제안되지 않은 스팸 방지 모델을 갖춘 Bitcoin와 유사한 체인입니다. Polkadot의 릴레이 체인 자체는 아마도 Ethereum과 유사한 계정 및 상태 체인, 아마도 EVM파생품일 수 있습니다. 릴레이 체인 노드는 다음을 수행해야 하므로 실질적인 기타 처리, 트랜잭션 처리량 수행 큰 거래 수수료를 통해 부분적으로 최소화됩니다. 그리고 연구 모델에 필요한 경우 블록 크기 제한이 있습니다. 5.4. 인터체인 커뮤니케이션. Polkadot의 중요한 최종 요소는 체인 간 통신입니다. 이후 파라체인은 그들 사이에 일종의 정보 채널을 가질 수 있으므로, 우리는 Polkadot a를 고려할 수 있습니다. 확장 가능한 멀티체인. Polkadot의 경우 통신은 매우 간단합니다. 파라체인은 (해당 체인의 논리에 따라) 다음을 수행할 수 있습니다. 트랜잭션을 두 번째 파라체인으로 전달하는 데 영향을 미칩니다. 또는 잠재적으로 릴레이 체인입니다. 외부 거래와 마찬가지로 프로덕션 blockchains에서는 완전히 비동기식입니다. 그리고 그들이 어떤 것을 반환할 수 있는 본질적인 능력도 없습니다. 일종의 정보를 원래의 출처로 되돌리는 것입니다. 목적지: 가져옴 이전 데이터 블록의 validators. 계정이 게시물을 받습니다: 항목이 삭제되었습니다. 수신 Merkle tree 계정에서 게시물을 보냅니다: 에 배치된 항목 송신 Merkle tree 목적지를 위해 파라체인 출구 출처 : 주식 다음 블록의 데이터 validators 보관된 우편물 증명 파라체인 이그레스 머클 나무 라우팅된 참조 배치됨 대상 파라체인에서 수신 Merkle tree 진입 그림 3. 기본 회로도 표시 게시된 라우팅의 주요 부분 거래("게시물"). 구현 복잡성을 최소화하려면 위험 그리고 최소한의 스트레이트 재킷 의 미래 파라체인 아키텍처에서는 이러한 인터체인 트랜잭션이 표준 외부 서명 트랜잭션과 사실상 구별할 수 없습니다. 거래에는 파라체인을 식별하는 기능을 제공하는 원본 세그먼트가 있습니다. 임의의 크기를 가질 수 있는 주소입니다. Bitcoin 및 Ethereum과 같은 일반적인 현재 시스템과 달리, 인터체인 거래에는 어떤 종류의 수수료 "지불"도 함께 제공되지 않습니다. 그러한 지불은 소스 및 대상 파라체인의 협상 로직을 통해 관리되어야 합니다. 제안된 것과 같은 시스템 Ethereum의 Serenity 릴리스 [7]은 간단한 수단이 될 것입니다 하지만 그러한 크로스체인 자원 지불을 관리하는 것은 우리는 적절한 시기에 다른 사람들이 전면에 나올 수 있다고 가정합니다. 인터체인 트랜잭션은 간단한 방법을 사용하여 해결됩니다. Merkle tree을 기반으로 한 대기열 메커니즘을 통해 충실함. 릴레이 체인 유지관리자의 임무는 다음과 같습니다. 하나의 파라체인의 출력 큐에서 트랜잭션을 이동합니다. 대상 파라체인의 입력 큐에 넣습니다. 는 전달된 트랜잭션은 릴레이 체인에서 참조되지만 상대적인 트랜잭션은 아닙니다.체인 거래 자체. 파라체인이 다른 파라체인에 스팸을 보내는 것을 방지하려면 거래, 거래를 보내려면 필요합니다. 대상의 입력 대기열이 너무 크지 않아야 합니다. 이전 블록이 끝나는 시간. 입력의 경우 블록 처리 후 대기열이 너무 크면 "포화"된 것으로 간주되어 트랜잭션이 라우팅되지 않을 수 있습니다. 다시 아래로 줄어들 때까지 후속 블록 내에 포함됩니다. 한계. 이러한 대기열은 릴레이 체인에서 관리됩니다. 파라체인이 서로의 포화도를 결정할 수 있도록 허용 상태; 이런 식으로 거래 게시 시도가 실패했습니다. 지연된 대상에 대한 정보는 동시에 보고될 수 있습니다. (단, 반환 경로가 존재하지 않기 때문에 이러한 이유로 2차 트랜잭션이 실패한 경우 다시 보고할 수 없습니다. 원래 발신자 및 기타 복구 수단 일어나야 할 것입니다.) 5.5. Polkadot 및 Ethereum. Ethereum의 Turing 완전성으로 인해 Polkadot 및 Ethereum이 상호 운용될 수 있는 충분한 기회가 있을 것으로 기대합니다. 적어도 쉽게 추론할 수 있는 보안 범위 내에서 서로. 간단히 말해서, 우리는 다음과 같은 거래를 상상합니다. Polkadot은 validators에 의해 서명된 다음 5이러한 작업은 validator 사이에서 공유되거나 다음과 같이 강력하게 결속된 validator 집합의 지정 작업이 될 수 있습니다. 가용성 보증인.
POLKADOT: 이종 다중 체인 프레임워크에 대한 비전 초안 1 8 Ethereum 해석되고 제정될 수 있는 곳 거래 전달 계약. 다른 방향으로는, 특별히 형식화된 로그(이벤트)의 사용이 예상됩니다. 특정 메시지가 전달되어야 하는지 신속하게 확인할 수 있는 "돌파 계약"에서 비롯됩니다. 5.5.1. Polkadot ~ Ethereum. A의 선택을 통해 BFT 합의 메커니즘은 validator로 구성됩니다. 승인 투표를 통해 결정된 이해관계자 집합 메커니즘을 통해 우리는 안전한 합의를 얻을 수 있습니다. 자주 변경되지 않으며 적당한 수의 validator입니다. 총 144 validators가 있는 시스템에서 블록 시간은 4초 및 900블록 최종성(악의적인 공격 허용) 이중투표 등 행위 신고, 처벌 복구) 블록의 유효성은 합리적으로 97개의 서명(144개의 2/3에 1을 더한 수)과 챌린지가 저장되지 않는 60분의 검증 기간을 통해 입증된 것으로 간주됩니다. Ethereum는 "침입 계약"을 호스팅할 수 있습니다. 144명의 서명자를 유지하고 다음에 의해 통제될 수 있습니다. 그들. 타원 곡선 디지털 서명(ECDSA) 복구에는 EVM 아래에서 3,000 가스만 필요하므로 우리는 검증이 다음에서만 발생하기를 원할 것입니다. validators의 절대다수(완전한 만장일치 아님), Ethereum의 기본 비용으로 명령어가 실행되었음을 확인합니다. Polkadot 네트워크에서 나오는 가스는 300,000개를 넘지 않을 것으로 적절하게 검증되었습니다. 이는 전체 가스의 6%에 불과합니다. 총 블록 가스 한도는 5.5M입니다. validator 수를 늘립니다(처리에 필요한 만큼). 수십 개의 체인)은 필연적으로 이 비용을 증가시킵니다. 기술이 성숙해지고 인프라가 향상됩니다. 아니라는 사실과 함께 모든 validator이 포함되어야 합니다(예: 가장 높은 이러한 작업을 위해 스테이킹된 validator이 호출될 수 있습니다) 이 메커니즘의 한계는 합리적으로 확장됩니다. 그러한 validator의 일일 순환을 가정합니다(이는 상당히 보수적입니다. 매주 또는 매월도 허용될 수 있습니다.) 그러면 네트워크 유지 관리 비용이 발생합니다. 이 Ethereum 전달 브리지는 약 540,000입니다. 일일 가스 또는 현재 가스 가격으로 연간 $45입니다. 브리지를 통해 단독으로 전달되는 기본 트랜잭션에는 비용이 듭니다. 약 $0.11; 추가 계약 계산 비용 물론 더요. 트랜잭션 버퍼링 및 번들링을 통해 함께 침입 승인 비용은 쉽게 공유하여 거래당 비용을 대폭 절감합니다. 전달하기 전에 20개의 트랜잭션이 필요한 경우 기본 거래를 전달하는 데 드는 비용은 다음과 같습니다. 약 $0.01. 이 다중 서명 계약 모델에 대한 흥미롭고 저렴한 대안 중 하나는 다자간 소유권 의미 체계를 달성하기 위해 임계값 서명을 사용하는 것입니다. ECDSA에 대한 임계값 서명 체계 계산 비용이 많이 들고 다른 방식의 경우 Schnorr 서명과 같은 것은 매우 합리적입니다. Ethereum 이를 가능하게 하는 기본 요소를 도입할 계획입니다. 다가오는 Metropolis 하드포크에서 사용하기 저렴한 계획입니다. 그러한 수단을 사용할 수 있다면 가스 비용은 Polkadot 거래를 Ethereum로 전달하기 위해 네트워크는 거의 0으로 극적으로 줄어들 것입니다. 검증을 위한 기본 비용을 초과하는 간접비 서명 및 기본 트랜잭션 실행. 이 모델에서 Polkadot의 validator 노드는 메시지에 서명하는 것 외에는 거의 할 일이 없습니다. 거래가 실제로 Ethereum 네트워크로 라우팅되도록 하려면 validator 자신도 다음 위치에 있을 것이라고 가정합니다. Ethereum 네트워크 또는 작은 현상금일 가능성이 높습니다. 메시지를 전달한 첫 번째 배우에게 제공됩니다. 네트워크에 (포상금은 사소하게 지급될 수 있습니다. 거래 발신자). 5.5.2. Ethereum ~ Polkadot. 거래가 이루어지도록 하기 Ethereum에서 Polkadot으로 전달되는 것은 간단한 로그 개념을 사용합니다. Ethereum 계약이 Polkadot의 특정 파라체인에 트랜잭션을 전달하려는 경우, 특별한 "돌파 계약"을 호출하기만 하면 됩니다. 브레이크 아웃 계약은 가능한 모든 비용을 지불합니다. Merkle 증명과 해당 블록의 헤더가 유효하다는 주장을 통해 그 존재가 입증될 수 있도록 로깅 명령을 발행해야 합니다. 정식. 후자의 두 조건 중 타당성은 아마도 가장 간단하게 증명할 수 있습니다. 원칙적으로 유일한 요구 사항은 다음과 같습니다.증명이 필요한 각 Polkadot 노드에 대해 (즉, 지정된 validator 노드)는 표준 Ethereum 노드의 완전히 동기화된 인스턴스를 실행합니다. 불행하게도 이것은 그 자체로 상당히 무거운 종속성입니다. 더 경량 방법은 다음과 같은 간단한 증명을 사용하는 것입니다. 헤더만 제공하여 올바르게 평가되었습니다. 제대로 실행하려면 Ethereum의 상태 트리 일부가 필요합니다. 블록 내 트랜잭션을 확인하고 로그(블록 영수증에 포함된)가 유효한지 확인합니다. 이러한 "SPV와 유사한"6 증거에는 상당한 양의 정보가 필요할 수 있습니다. 편리하게도 일반적으로 필요하지 않습니다. 모두: Polkadot 내부의 결합 시스템은 결합을 허용합니다. 제3자가 헤더를 잃을 위험을 무릅쓰고 헤더를 제출할 수 있습니다. 다른 제3자(예: "어부", 6.2.3 참조)가 헤더가 유효하지 않다는 증거를 제공해야 합니다. (특히 상태 루트 또는 수신 루트가 사기꾼이었습니다). Ethereum과 같은 최종화되지 않은 PoW 네트워크에서는 정규성을 최종적으로 증명하는 것은 불가능합니다. 이 문제를 해결하기 위해 모든 종류의 응용 프로그램에 의존하려고 합니다. 체인 종속 원인 효과는 여러 번의 "확인"을 기다리거나 종속 트랜잭션이 어느 정도 완료될 때까지 기다립니다. 체인 내의 특정 깊이. Ethereum에 이 깊이는 알려진 네트워크 문제가 없는 가장 가치가 낮은 거래의 경우 1블록부터 이전과 마찬가지로 1200블록까지 다양합니다. 교환을 위한 초기 프론티어 릴리스 중 사례입니다. 안정적인 "Homestead" 네트워크에서 이 그림은 다음 위치에 있습니다. 대부분의 거래소에는 120개의 블록이 있으며, 우리는 아마도 비슷한 매개변수. 그래서 우리 할 수 있다 상상하다 우리의 Polkadot-쪽 Ethereum인터페이스는 몇 가지 간단한 기능을 갖습니다. Ethereum 네트워크에서 새 헤더를 수락하고 PoW를 검증하여 다음과 같은 일부 증거를 수락할 수 있습니다. 충분한 깊이의 헤더에 대한 Ethereum측 브레이크아웃 계약에 의해 특정 로그가 방출되었습니다(그리고 앞으로 Polkadot 내의 해당 메시지) 그리고 마지막으로 이전에 승인된 증거를 승인할 수 있지만 아직 제정되지 않은 헤더에 잘못된 수신 루트가 포함되어 있습니다. 실제로 Ethereum 헤더 데이터 자체를 얻으려면(그리고 모든 SPV 증명 또는 유효성/정규성 반박) Polkadot 네트워크, 전달에 대한 인센티브 6SPV는 Bitcoin의 Simplified Payment Verification을 의미하며 고객이 거래 내용만 보관하면서 확인할 수 있는 방법을 설명합니다. 가장 긴 PoW 체인의 모든 블록 헤더 사본.POLKADOT: 이종 다중 체인 프레임워크에 대한 비전 초안 1 9 데이터가 필요합니다. 결제만큼 간단할 수도 있어요 (Ethereum 측에서 징수한 수수료로 자금 조달) 지불됨 헤더가 다음과 같은 유용한 블록을 전달할 수 있는 누구에게나 유효합니다. 검증인은 마지막 수천 개의 블록과 관련된 정보를 유지해야 합니다. 일부 프로토콜 고유 수단을 통해 또는 플랫폼에서 유지되는 계약을 통해 포크를 관리할 수 있습니다. 릴레이 체인. 5.6. Polkadot 그리고 Bitcoin. Bitcoin 상호 운용 Polkadot에 대한 흥미로운 도전 과제를 제시합니다. "양방향 페그"는 유용한 인프라가 될 것입니다. 두 네트워크 측면 모두에 있어야 합니다. 그러나 이로 인해 Bitcoin의 제한 사항, 이러한 페그를 안전하게 제공하는 것은 사소하지 않은 사업. 다음에서 거래 전달 Bitcoin ~ Polkadot은 원칙적으로 Ethereum과 유사한 프로세스로 수행될 수 있습니다. "브레이크아웃 주소" Polkadot validator에 의해 어떤 방식으로든 제어될 수 있습니다. 전송된 tokens(및 함께 전송된 데이터)를 수신합니다. SPV 증명은 인센티브를 받은 oracle에 의해 제공될 수 있으며, 확인 기간과 함께 포상금이 제공됩니다. 트랜잭션을 암시하는 비정규 블록 식별 "이중 지출"되었습니다. token은(는) 다음에서 소유하고 있습니다. "탈출 주소"는 원칙적으로 나중에 분산될 수 있도록 동일한 validator에 의해 제어됩니다. 그러나 문제는 회전하는 validator 세트에서 침전물을 안전하게 제어할 수 있는 방법입니다. 달리 Ethereum 기반으로 임의의 결정을 내릴 수 있습니다. 서명 조합 시 Bitcoin는 실질적으로 더 제한적이며 대부분의 클라이언트는 최대 3명의 당사자와의 다중 서명 거래만 허용합니다. 이를 36개 또는 궁극적으로 원하는 대로 수천 개로 확장하는 것은 현재 프로토콜에서는 불가능합니다. 한 가지 옵션은 Bitcoin 프로토콜을 변경하여 활성화하는 것입니다. 그러나 이러한 기능은 소위 "하드 포크"로 불립니다. Bitcoin 세계는 최근 시도로 판단을 정리하기가 어렵습니다. 한 가지 가능성은 임계값 서명을 사용하는 것입니다. 단일 식별이 가능한 대중을 허용하는 암호화 체계 여러 비밀 "부분"에 의해 효과적으로 제어되는 키, 유효한 서명을 생성하려면 그 중 일부 또는 전부를 활용해야 합니다. 불행하게도 임계값 서명은 호환됩니다. Bitcoin의 ECDSA를 사용하면 계산 비용이 많이 듭니다. 다항식 복잡성을 생성합니다. 다음과 같은 다른 계획 Schnorr 서명은 훨씬 낮은 비용을 제공하지만 Bitcoin에 도입될 수 있는 타임라인 프로토콜이 불확실합니다. 예금의 궁극적인 보안은 여러 개의 validator을 결합하는 경우 다른 옵션 중 하나는 다음과 같습니다. 다중 서명 키 보유자를 크게 줄이십시오. 임계값과 같은 총 validator의 결합된 하위 집합 서명이 가능해집니다(또는 최악의 경우 Bitcoin의 기본 서명 다중 서명이 가능합니다). 이는 물론 validators가 불법적으로 행동할 경우 배상금에서 공제될 수 있는 채권 총액, 그러나 이는 단순히 상한을 설정하는 것은 우아한 성능 저하입니다. 사이에 안전하게 운영될 수 있는 자금의 양 두 개의 네트워크(또는 실제로 공격이 발생하면 % 손실이 발생함) validators에서 성공). 따라서 우리는 합리적으로 안전한 Bitcoin 상호 운용성 "가상 파라체인"을 배치하는 것이 비현실적이지 않다고 생각합니다. 그럼에도 불구하고 일정이 불확실하고 가능성이 매우 높은 상당한 노력이 필요하지만 그 안에서 이해관계자의 협력이 필요하다. 네트워크.
Протокол в деталях
Протокол можно условно разбить на три части: механизм консенсуса, интерфейс парачейна. и маршрутизация межцепочных транзакций. 6.1. Релейная цепь Операция. релейная цепь будет вероятно, это цепочка, во многом похожая на Ethereum тем, что она основан на состоянии с адресом сопоставления состояния учетной записи информация, в основном балансы и (во избежание повторов) счетчик транзакций. Размещение здесь учетных записей преследует одну цель: обеспечить учет, личность которого обладает какая доля участия в системе.7 Однако будут заметные различия: • Контракты не могут быть развернуты посредством транзакций; исходя из желания избежать функциональности приложения в релейной цепочке, оно не будет поддерживать публичное внедрение контрактов. • Использование вычислительных ресурсов («газ») не учитывается; поскольку единственные функции, доступные для публичного использования будет исправлено, обоснование учета газа больше не держится. Таким образом, взимается фиксированная плата. во всех случаях, что позволяет добиться большей производительности в любом динамическое выполнение кода, которое может потребоваться и более простой формат транзакции. • Для перечисленных контрактов поддерживается специальная функциональность, обеспечивающая автоматическое выполнение и вывод сетевых сообщений. В случае, если в релейной цепочке есть виртуальная машина и она будет основанный на EVM, он будет иметь ряд модификаций для обеспечения максимальной простоты. Вероятно, это было бы иметь ряд встроенных контрактов (аналогично тем, что есть в адреса 1–4 в Ethereum), чтобы обеспечить возможность специфичной для платформы обязанности, подлежащие управлению, включая консенсусный контракт, validator контракт и контракт парачейна. Если не EVM, то наиболее вероятной альтернативой является серверная часть WebAssembly [2] (wasm); в этом случае общий структура была бы аналогична, но не было бы необходимости для встроенных контрактов, где Wasm является жизнеспособной целью для языков общего назначения, а не для незрелых и ограниченное количество языков для EVM. Вполне возможны и другие вероятные отклонения от настоящего протокола Ethereum, например упрощение формат квитанции транзакции, позволяющий параллельное выполнение неконфликтных транзакций в одном блоке, как предложено для серии изменений Serenity. Возможно, хотя и маловероятно, что подобная Серенити «чистая» цепочка может быть развернута как релейная цепочка, что позволяет конкретный контракт для управления такими вещами, как staking token баланса, а не делать это фундаментальной частью протокол сети. В настоящее время мы считаем маловероятным, что это предложит достаточно большое упрощение протокола, чтобы стоит дополнительных сложностей и неопределенности, связанных с этим в его разработке. 7В качестве средства представления суммы, которую данный владелец несет ответственность за общую безопасность системы, эти счета ставок будут неизбежно кодируют некоторую экономическую ценность. Однако следует понимать, что, поскольку нет намерения использовать такие значения в любым способом с целью обмена на реальные товары и услуги, следует отметить, что token нельзя сравнивать с валюта и, как таковая, релейная цепь сохраняют свою нигилистическую философию в отношении приложений.POLKADOT: ВИДЕНИЕ ГЕТЕРОГЕННОЙ МНОГОЦЕПНОЙ СТРУКТУРЫ ПРОЕКТ 1 10 Существует ряд небольших функциональных возможностей, необходимых для администрирования механизма консенсуса, набора validator, механизма проверки и парачейнов. Эти могут быть реализованы вместе в рамках монолитного протокола. Однако из соображений модульности мы описываем их как «контракты» релейной цепи. Это должно можно понимать так, что они являются объектами (в смысле объектно-ориентированное программирование), управляемое механизмом консенсуса релейной цепи, но не обязательно они определяются как программы с кодами операций, подобными EVM, а также даже если к ним можно индивидуально обращаться через учетная система. 6.2. Контракт на стейкинг. Этот контракт поддерживает набор validator. Он управляет: • какие учетные записи в настоящее время являются validator; • которые в ближайшее время могут стать validators уведомление; • на каких счетах были размещены доли, номинированные на validator; • свойства каждого из них, включая объем staking, приемлемые ставки выплат и адреса, а также краткосрочные (сессионные) идентификаторы. Позволяет аккаунту зарегистрировать желание стать связанный validator (вместе с его требованиями), чтобы назначить какую-либо личность, а для ранее существовавших связанных validators зарегистрировать свое желание выйти из этого статуса. Это также включает в себя сам механизм проверки и канонизации. 6.2.1. Ставка-token Ликвидность. Как правило, желательно иметь как можно больше из общего числа staking tokens, чтобы быть участие в операциях по техническому обслуживанию сети, поскольку это напрямую связывает безопасность сети с общей «рыночной капитализацией» staking token. Это может легко стимулироваться путем раздувания валюты и раздачи доходов тем, кто участвует в качестве validators. Однако сделать это представляет проблему: если token заблокирован в Контракте о ставках под наказанием сокращения, как значительная часть может оставаться достаточной ликвидный, чтобы позволить обнаружение цен? Одним из ответов на это является разрешение прямого деривативного контракта, обеспечивающего взаимозаменяемые token на базовой ставке token. Это трудно организовать без доверия. Более того, эти производные token не могут рассматриваться одинаково по той же причине, по которой различные государственные облигации еврозоны не являются взаимозаменяемыми: существуют это вероятность того, что базовый актив потерпит неудачу и станет бесполезный. С правительствами еврозоны может произойти по умолчанию. При ставке validator tokens validator может действовать злонамеренно и быть наказанным. Следуя нашим принципам, мы выбираем самое простое решение: не все token будут поставлены на карту. Это означало бы, что некоторая часть (возможно, 20%) token будет принудительно оставаться жидким. Хотя это несовершенно с точки зрения безопасности, вряд ли это будет иметь фундаментальное значение для безопасность сети; 80% возможных репараций в результате конфискации облигаций все равно можно будет выплатить. по сравнению с «идеальным случаем» 100% staking. Соотношение между поставленными и ликвидными token можно довольно просто определить с помощью механизма обратного аукциона. По сути, владельцы token заинтересованы в том, чтобы стать validator. каждый из них разместит предложение по контракту staking с указанием минимальная ставка выплат, которую они потребуют принять часть. В начале каждой сессии (сессии будут происходят регулярно, возможно, раз в час) validator слотов будут заполнены в соответствии с каждым возможным Ставка validator и размер выплат. Один из возможных алгоритмов ибо это означало бы брать тех, у кого самые низкие предложения, представляют собой ставку, не превышающую общую целевую ставку делится на количество слотов и не может быть меньше половины этой суммы. Если места не могут быть заполнены, нижняя граница может быть неоднократно уменьшена на некоторый коэффициент, чтобы удовлетворить требованиям. 6.2.2. Номинирование. Можно безнадежно номинировать одни staking tokens на активный validator, давая им ответственность за выполнение обязанностей validator. Номинирование работ через систему одобрения-голосования. Каждый потенциальный номинатор может опубликовать инструкцию к контракту staking. выражающее одну или несколько validator личностей, под чьим именем ответственность, которую они готовы доверить своим обязательствам. На каждой сессии облигации номинаторов распределяются таким образом, чтобы представлены одним или несколькими validator. Алгоритм распределения оптимизирует набор из validator с эквивалентной суммой. облигации. Облигации номинаторов переходят под фактическую ответственность validator aи получить интерес или страдать наказание-смягчение соответственно. 6.2.3. Конфискация/сожжение облигаций. Определенное поведение validator приводит к штрафному сокращению их залога. Если облигация снижается ниже допустимого минимума, сеанс преждевременно завершился и начался другой. Неисчерпывающий список наказуемых validator проступков включает в себя: • Будучи частью группы парачейнов, неспособной предоставить консенсус относительно действительности блока парачейна; • активно подписываясь за действительность инвалида блок парачейна; • невозможность доставить исходящую полезную нагрузку ранее проголосовали как доступные; • бездействие во время процесса достижения консенсуса; • проверка блоков релейной цепи на конкурирующих вилках. Некоторые случаи неправомерного поведения угрожают целостности сети (например, подписание недействительных блоков парачейна и проверка нескольких сторон форка) и, как следствие, приводят к эффективному изгнанию за счет полного сокращения связи. В другие, менее серьезные случаи (например, бездействие в консенсусе процессе) или в случаях, когда вина не может быть точно распределена (будучи частью неэффективной группы), небольшая часть вместо этого может быть оштрафован на сумму залога. В последнем случае это хорошо работает с оттоком подгрупп, чтобы гарантировать, что вредоносные узлы несут значительно большие потери, чем сопутствующе поврежденные доброжелательные узлы. В некоторых случаях (например, проверка нескольких вилок и недействительный подписание субблока) validator сами не могут легко обнаружить неправомерное поведение друг друга, поскольку постоянная проверка каждого блока парачейна было бы слишком трудной задачей. Здесь необходимо заручиться поддержкой сторон, внешних по отношению к процесс проверки для проверки и сообщения о таком неправильном поведении. Стороны получают вознаграждение за сообщение о такой деятельности; их термин «рыбаки» проистекает из маловероятности такой награды. Поскольку эти случаи, как правило, очень серьезные, мы полагаем, что любые вознаграждения могут быть легко выплачены из конфискованной облигации. В целом мы предпочитаем балансировать горение (т.е. сведение на нет) с перераспределением, а не попытка массового перераспределения. Это имеет эффект
POLKADOT: ВИДЕНИЕ ГЕТЕРОГЕННОЙ МНОГОЦЕПНОЙ СТРУКТУРЫ ПРОЕКТ 1 11 увеличивая общее значение token, компенсируя сети в целом, а не конкретной сторона, участвовавшая в открытии. Это в первую очередь в целях безопасности механизм: задействованные большие суммы могли бы привести к чрезвычайной и острой стимулировке поведения, если бы все они направлено на одну цель. В общем, важно, чтобы вознаграждение было достаточно большим, чтобы сделать верификацию полезной для сети, но не настолько большим, чтобы компенсировать затраты на противодействие хорошо финансируемый, хорошо организованный преступник «промышленного уровня» хакерская атака на какого-то неудачливого validator с целью заставить его вести себя неподобающе. Таким образом, требуемая сумма, как правило, не должна быть больше, чем прямая связь заблудшего validator, чтобы не возникают извращенные стимулы к плохому поведению и заявлению о награде. С этим можно бороться либо явно посредством минимального требования к прямым облигациям для того, чтобы быть validator или косвенно, объясняя номинаторам, что validator с небольшим количеством депонированных облигаций не имеют большого стимула вести себя хорошо. 6.3. Реестр Парачейна. Каждый парачейн определен в этот реестр. Это относительно простая конструкция, подобная базе данных, которая содержит как статическую, так и динамическую информацию. каждая цепочка. Статическая информация включает в себя индекс цепочки (простой целое число), а также идентификатор протокола проверки, средства различения разных классов парачейн, чтобы можно было использовать правильный алгоритм проверки. под руководством validators, призванных выдвинуть действительного кандидата. Первоначальная проверка концепции будет сосредоточена на размещении новые алгоритмы проверки в самих клиентах, что фактически требует хард-форка протокола каждый раз, когда добавлен дополнительный класс цепи. В конечном счете, однако, возможно, можно указать алгоритм проверки в одновременно строгий и достаточно эффективный способ, позволяющий клиентам способен эффективно работать с новыми парачейнами без хард-форк. Одним из возможных способов решения этой проблемы могло бы быть указание алгоритм проверки парачейна в хорошо зарекомендовавшей себя, скомпилированный в собственном коде, нейтральный к платформе язык, такой как WebAssembly. Необходимы дополнительные исследования, чтобы определить действительно ли это осуществимо, однако если это так, это может принести вместе с этим огромное преимущество в виде исключения хард-форков навсегда. Динамическая информация включает в себя аспекты системы маршрутизации транзакций, которые должны иметь глобальное соглашение, такие как в качестве входной очереди парачейна (описано в разделе 6.6). В реестр можно добавлять только парачейны. путем полного голосования на референдуме; этим можно было бы управлять внутри, но, скорее всего, будет размещен во внешнем контракт референдума, чтобы облегчить повторное использование в соответствии с более общие компоненты управления. Параметры для требования к голосованию (например, необходимый кворум, большинство требуется) для регистрации дополнительных цепочек и прочего, менее формальные обновления системы будут изложены в «основном конституции», но, скорее всего, будут следовать довольно традиционной путь, по крайней мере, на начальном этапе. Точная формулировка отсутствует. объем настоящей работы, но, например. квалифицированное большинство в две трети для принятия более одной трети всей системы положительное голосование по ставкам может быть разумной отправной точкой. Дополнительные операции включают подвешивание и удаление парацепей. Отстранение, надеюсь, никогда не произойдет случается, однако это призвано служить как минимум гарантией в системе проверки парачейна возникла какая-то неразрешимая проблема. Самый очевидный пример, когда это может быть необходимо критическое для консенсуса различие между реализациями, приводящее validator к неспособности прийти к согласию по действительность или блоки. Валидаторам будет предложено использовать несколько реализаций клиента, чтобы они могли чтобы обнаружить такую проблему до конфискации облигаций. Поскольку приостановка является экстренной мерой, это будет под эгидой динамического validator-голосования, а не чем референдум. Восстановление возможно как из validators или референдума. Полный отказ от парачейнов произойдет только после референдума и при котором потребуется существенный льготный период, позволяющий осуществить упорядоченный переход к либо создать отдельную сеть, либо стать частью какой-либо другой консенсус-система. Льготный период, скорее всего, будет длиться порядок месяцев и, вероятно, будет установлен для каждой цепочки в реестре парачейнов, чтобы разные парачейны могут пользоваться разными льготными периодами в зависимости от их потребность. 6.4. Пломбирование блоков реле. По сути, герметизация подразумевает к процессу канонизации; то есть базовые данные трансформировать которыйотображает оригинал в нечто принципиально уникальное и значимое. В цепочке PoW запечатывание фактически является синонимом добычи полезных ископаемых. В нашем случае он включает в себя сбор подписанных заявлений от validators о действительности, доступности и каноничности конкретный блок релейной цепи и блоки парачейна, которые оно представляет. Механика базового алгоритма консенсуса BFT выходит за рамки настоящей работы. Мы будем вместо этого опишите его, используя примитив, который предполагает государственная машина, создающая консенсус. В конечном итоге мы ожидаем вдохновиться рядом многообещающих BFT консенсусных алгоритмы в ядре; Тангаора [9] (вариант BFT Плот [16]), Tendermint [11] и HoneyBadgerBFT [14]. Алгоритму придется достичь соглашения по нескольким парачейнам параллельно, что отличается от обычного blockchain механизмы консенсуса. Мы предполагаем, что однажды консенсус достигнут, мы можем записать консенсус в неопровержимом доказательстве, которое может быть предоставлено любым из участников к нему. Мы также предполагаем, что неправильное поведение в рамках протокола можно вообще свести к небольшому группа, содержащая плохо себя ведущих участников, чтобы свести к минимуму сопутствующий ущерб при назначении наказания8. Доказательство, которое принимает форму наших подписанных утверждений, помещается в заголовок блока релейной цепи вместе. с некоторыми другими полями, в частности корнем дерева состояний релейной цепочки и корнем дерева транзакций.
уплотнение процесс берет место под а одинокий создание консенсуса механизм обращение оба тот блок релейной цепи и блоки парачейнов, которые составляют часть содержимого ретранслятора: парачейны не «фиксируются» по отдельности их подгруппами, а затем сопоставляются позже. Это приводит к более сложному процессу для релейной цепи, но позволяет нам завершить согласование всей системы за один этап, минимизируя задержку и позволяя для довольно сложных требований к доступности данных, которые полезно для процесса маршрутизации ниже. 8Существующие схемы консенсуса BFT на основе PoS, такие как Tendermint BFT и оригинальный Slasher, соответствуют этим утверждениям.
POLKADOT: ВИДЕНИЕ ГЕТЕРОГЕННОЙ МНОГОЦЕПНОЙ СТРУКТУРЫ ПРОЕКТ 1 12 Состояние машины консенсуса каждого участника может моделироваться как простая (двумерная) таблица. Каждый участник (validator) имеет набор информации в виде подписанных заявлений («голосов») от других участников в отношении каждого кандидата на блок парачейна, а также кандидата на блок релейной цепи. Набор информации состоит из двух частей. данных: Наличие: есть это validator иметь выход информация о транзакции из этого блока, поэтому они могут правильно проверить кандидатов на парачейн в следующем блоке? Они могут голосовать либо 1 (известно), либо 0 (пока неизвестно). Как только они проголосовали 1, они обязуются проголосовать аналогичным образом за остальная часть этого процесса. Последующие голоса, которые не уважение это является основанием для наказания. Валидность: действителен ли блок парачейна и все ли данные с внешней ссылкой (например, транзакции) доступен? Это актуально только для validator, назначенных парачейну, в котором они голосуют. Они могут проголосовать 1 (действительно), -1 (недействительно) или 0. (пока не известно). Как только они проголосуют за ненулевое значение, они намерены голосовать таким образом до конца процесс. Последующие голоса, которые не соблюдают это являются основанием для наказания. Все validator должны проголосовать; голоса могут быть поданы повторно, если они соответствуют правилам, изложенным выше. Прогрессирование консенсус можно смоделировать как несколько стандартных BFT алгоритмов консенсуса в каждом парачейне, происходящих параллельно. Поскольку этому потенциально препятствует относительно небольшое меньшинство злоумышленников сосредоточено в единой группы парачейнов, существует общий консенсус в отношении установить ограничитель обратного хода, ограничивая худший сценарий от тупик всего лишь к одному или нескольким блокам пустотного парачейна (и наказание для виновных). Основные правила валидности отдельных блоков (которые позволяют всему набору validators в целом прийти к консенсус по поводу того, что он станет уникальным кандидатом на парачейн на которые можно ссылаться из канонического реле): • должно быть, чтобы не менее двух третей validator проголосовали положительно, и ни один из них не проголосовал бы отрицательно; • более трети validator должны проголосовать положительно за доступность информации об исходящей очереди. Если есть хотя бы один положительный и хотя бы один отрицательный голос о действительности, создается исключительное условие. и весь набор validators должен проголосовать, чтобы определить если есть злоумышленники или если произошел случайный вилка. Помимо действительных и недействительных, существует третий вид голосов. разрешены, что эквивалентно голосованию за обоих, а это означает, что узел имеет противоречивые мнения. Это может быть связано с владелец узла запускает несколько реализаций, которые не согласен, что указывает на возможную неясность протокола. После подсчета всех голосов из полного набора validator, если проигрышное мнение имеет, по крайней мере, незначительную долю (к быть параметризованными; максимум половина, а возможно и значительно меньше) голосов за выигравшее мнение, то предполагается, что будет случайным форком парачейна, и парачейн автоматически отключится от процесса консенсуса. В противном случае мы считаем, что это злонамеренное действие, и наказываем виновного. меньшинство, голосовавшее за особое мнение. Заключение представляет собой набор подписей, подтверждающих каноничность. Блок релейной цепи затем может быть опломбирован. и начался процесс запечатывания следующего блока. 6.5. Улучшения в герметизации блоков реле. Пока этот метод герметизации дает серьезные гарантии работы системы, он не особенно хорошо масштабируется поскольку ключевая информация каждого парачейна должна иметь свое доступность гарантирована более чем одной третью всех validator. Это означает, что ответственность каждого validator растет по мере добавления новых цепей. Хотя доступность данных в сетях открытого консенсуса по сути является нерешенной проблемой, существуют способы уменьшения накладных расходов, возникающих на узлах validator. Один простой решение состоит в том, чтобы осознать, что хотя validators должны взять на себя ответственность за доступность данных, им не нужно фактически хранить, передавать или тиражировать данные самостоятельно. Вторичные хранилища данных, возможно, связанные с (или даже с самой же) сопоставители, которые собирают эти данные, могут управлять задача гарантировать доступность, при этом validators предоставляют часть своих процентов/дохода в виде оплаты. Однако, хотя это и может обеспечить некоторую промежуточную масштабируемость, это все равно не решает основную проблему; с тех пор добавление большего количества цепочек, как правило, потребует дополнительных validator, текущее потребление сетевых ресурсов (особенно с точки зрения пропускной способности) растет с квадратом тотцепи, несостоятельная собственность в долгосрочной перспективе. В конце концов, мы, вероятно, продолжим ломать головы против фундаментального ограничения, которое гласит, что для консенсусную сеть, которую следует считать доступной и безопасной, текущие требования к полосе пропускания имеют порядок общего validators раз умножает общую входную информацию. Это связано с неспособность недоверенной сети правильно распределить задачу хранения данных по множеству узлов, которая сидит помимо в высшей степени распределяемой задачи обработки. 6.5.1. Представляем задержку. Один из способов смягчить это Правило состоит в том, чтобы ослабить понятие непосредственности. Требуя, чтобы 33%+1 validator голосовали за доступность только в конечном итоге, а не сразу, мы можем лучше использовать экспоненциальное распространение данных и помочь сгладить пики обмена данными. Разумное равенство (хотя и недоказанное) может быть: (1) задержка = участники × цепочки В рамках текущей модели размер системы масштабируется с количеством цепочек, чтобы гарантировать, что обработка распределенный; поскольку для каждой цепочки потребуется хотя бы один validator, и мы фиксируем константу подтверждения доступности доля validators, то участники аналогично растут с количеством цепей. В итоге мы имеем: (2) задержка = размер2 Это означает, что по мере роста системы требуемая полоса пропускания и задержка до момента доступности становятся известны по всей сети. сети, которую можно также охарактеризовать как количество блоков до завершения, увеличивается с увеличением его площади. Это существенный фактор роста и может оказаться заметным препятствием на пути и вынудить нас придерживаться «неплоских» парадигм например, объединение нескольких «Polkadotes» в иерархию для многоуровневой маршрутизации сообщений через дерево релейных цепочек.
POLKADOT: ВИДЕНИЕ ГЕТЕРОГЕННОЙ МНОГОЦЕПНОЙ СТРУКТУРЫ ПРОЕКТ 1 13 6.5.2. Общественное участие. Еще одно возможное направление заключается в привлечении общественности к участию в этом процессе посредством система микрожалоб. Подобно рыбакам, здесь могут быть внешними сторонами, которые следят за validator, которые заявляют доступность. Их задача — найти того, кто не способен продемонстрировать такую доступность. При этом они может подать микрожалобу другим validator. PoW или заложенная облигация может быть использована для смягчения атаки Сивиллы что сделало бы систему практически бесполезной. 6.5.3. Гарантии наличия. Конечный путь будет заключаться в том, чтобы назначить второй набор связанных validators как «доступность» гаранты». Они будут связаны так же, как и обычные validator, и даже могут быть взяты из того же набора. (хотя в этом случае они будут выбираться на длительный период, по крайней мере, за сеанс). В отличие от обычных validator, они не будет переключаться между парачейнами, а скорее будет сформировать единую группу, чтобы подтвердить доступность всех важных межцепочных данных. Это имеет то преимущество, что ослабляет эквивалентность между участниками и цепочками. По сути, цепи могут расти (вместе с исходным набором цепочек validator), тогда как участники, и особенно те, кто принимает участие в тестировании доступности данных, могут оставаться, по крайней мере, сублинейными. и, вполне возможно, постоянный. 6.5.4. Настройки подборщика. Один важный аспект этого система заключается в том, чтобы обеспечить здоровый выбор колляторы, создающие блоки в любом парачейне. Если один коллатор доминировал над парачейном, а затем несколько атак становится более осуществимым, поскольку вероятность отсутствия доступность внешних данных будет менее очевидной. Одним из вариантов является искусственное взвешивание блоков парачейна в псевдослучайный механизм, позволяющий отдавать предпочтение широкому кругу алгоритмов сопоставления. В первом случае нам потребуется как часть механизма консенсуса, который поддерживают validators Кандидаты в блоки парачейна определены как «более тяжелые». Точно так же мы должны стимулировать validators попытаться предложите самый весомый блок, который они смогут найти — это может быть Это делается путем выплаты части вознаграждения пропорционально весу кандидата. Чтобы гарантировать, что подборщикам предоставляется разумная справедливая вероятность того, что их кандидат будет выбран победителем кандидата в консенсусе, мы определяем удельный вес Кандидат в блок парачейна определяется случайной функцией, связанной с каждым коллатором. Например, взяв мера расстояния XOR между адресом сопоставления и некоторое криптографически безопасное псевдослучайное число определяется вблизи точки создаваемого блока (условный «выигрышный билет»). Это фактически дает каждому сопоставитель (или, более конкретно, адрес каждого сопоставителя) случайный шанс того, что их блок-кандидат «победит» над все остальные. Чтобы смягчить атаку Сивиллы, когда один сопоставитель «майнит» адрес, близкий к выигрышному билету и, таким образом, если каждый блок является избранным, мы бы добавили некоторую инерцию к адресу сопоставления. Это может быть так же просто, как потребовать их иметь базовую сумму средств на адресе. Более элегантным подходом было бы взвешивание близости к выигрышный билет с указанием суммы средств, припаркованных на адрес, о котором идет речь. Хотя моделирование еще не завершено, вполне возможно, что этот механизм позволяет даже очень мелкие заинтересованные стороны могут внести свой вклад в качестве сопоставителя. 6.5.5. Блоки с избыточным весом. Если набор validator скомпрометирован, они могут создать и предложить блок, который, хотя и действительны, требует слишком много времени для выполнения и подтвердить. Это проблема, поскольку группа validator может разумно сформировать блок, на создание которого уходит очень много времени выполняться, если уже не известна какая-то конкретная часть информации, позволяющая сократить путь, например. факторинг крупного премьер. Если бы хоть один сопоставитель знал эту информацию, то у них будет явное преимущество в получении своего собственного кандидаты соглашались, пока остальные были заняты обработкой старого блока. Мы называем эти блоки избыточным весом. Защита от validators, отправляющих и проверяющих эти блоки, в основном подпадает под ту же самую защиту, что и для недействительные блоки, хотя и с дополнительной оговоркой: поскольку время, необходимое для выполнения блока (и, следовательно, его статус как избыточный вес) является субъективным, окончательный результат голосования по плохое поведение разделится по существу на три лагеря. Один возможно, что блок определенно не имеет лишнего веса — в этом случае более двух третей заявляют, что они могли бы выполнить блок в пределах некоторого ограничения (например, 50 % от общего времени, разрешенного между блоками). Другое заключается в том, что блок dопределенно избыточный вес — это было бы, если бы более две трети заявляют, что не смогли выполнить блок в пределах указанного лимита. Последняя возможность — это довольно равная раскол мнений между validators. В этом случае мы можем решите применить соразмерное наказание. Чтобы validator могли предсказать, когда они могут оказаться Предлагая блок с избыточным весом, возможно, было бы разумно потребовать от них публиковать информацию о своей производительности для каждого блока. За достаточный период времени это должно позволить им профилировать скорость обработки относительно сверстников, которые будут их судить. 6.5.6. Коллекторное страхование. Для validators осталась одна проблема: в отличие от сетей PoW, для проверки коллятора для проверки достоверности, они должны фактически выполнять транзакции в нем. Злоумышленники могут передавать недействительные или слишком тяжелые блоки validator, вызывая у них беспокойство (растрачивание блоков). свои ресурсы) и требует потенциально существенных альтернативных издержек. Чтобы смягчить это, мы предлагаем простую стратегию на часть validators. Во-первых, кандидаты на блок парачейна были отправлены до validators необходимо подписать из учетной записи цепочки ретрансляции с фондами; если это не так, то validator должен отпасть это немедленно. Во-вторых, такие кандидаты должны быть упорядочены по приоритету путем комбинации (например, умножения) количество средств на счете до определенного предела, количество предыдущих блоков, которые коллятор успешно предложил в прошлом (не говоря уже о любых предыдущих наказания), а также фактор близости к победителю. билет, как обсуждалось ранее. Шапка должна быть такой же в качестве штрафных санкций, выплаченных validator по делу из них отправляют недействительный блок. Чтобы не стимулировать подборщики отправлять недействительных или перегруженных кандидатов на блоки validator, любой validator может поместить в следующий блок транзакцию, включающую блок-нарушитель, в котором утверждается о неправомерном поведении, что приведет к переводу некоторых или всех средств из некорректно работающего коллатора отчет потерпевшему validator. Этот тип транзакций опережает все остальные, чтобы гарантировать, что сборщик не сможет снять средства до наказания. Сумма средства, перечисленные в качестве возмещения ущерба, пока являются динамическим параметром
POLKADOT: ВИДЕНИЕ ГЕТЕРОГЕННОЙ МНОГОЦЕПНОЙ СТРУКТУРЫ ПРОЕКТ 1 14 подлежит моделированию, но, вероятно, будет составлять часть вознаграждения за блок validator, чтобы отразить уровень причиненного горя. Чтобы предотвратить произвольную конфискацию средств злоумышленниками validators, сборщик может взамен обжаловать решение validator присяжных, состоящих из случайно выбранных validators. для внесения небольшого депозита. Если они примут решение в пользу validator, депозит будет использован ими. Если нет, то депозит возвращается, а validator оштрафован (поскольку validator находится в гораздо более опасной позиции, штраф будет вероятно, будет довольно здоровенным). 6.6. Интерчейн Транзакция Маршрутизация. Интерчейн маршрутизация транзакций является одним из важнейших процессов обслуживания задачи релейной цепи и ее validators. Это логика, которая управляет тем, как опубликованная транзакция (часто сокращенно просто «публикация») становится желаемым результатом из одного исходного парачейна в непередаваемый вход другого целевого парачейна без какого-либо доверия требования. Мы тщательно подбираем приведенную выше формулировку; особенно мы не требуют, чтобы в источнике была транзакция parachain явно санкционировал этот пост. Единственный ограничения, которые мы налагаем на нашу модель, заключаются в том, что парачейны должны предоставить упакованные как часть общего блока выходные данные обработки, сообщения, являющиеся результатом выполнение блока. Эти сообщения структурированы как несколько очередей FIFO; тот количество списков называется базой маршрутизации и может быть около 16. Примечательно, что это число представляет собой количество парачейнов, которые мы можем поддерживать, не прибегая к многофазная маршрутизация. Первоначально Polkadot будет поддерживать это вид прямой маршрутизации, однако мы опишем один из возможных процесс многофазной маршрутизации («гипермаршрутизация») как средство масштабирования далеко за пределы первоначального набора парачейнов. Мы предположить что все участники знать тот подгруппы для следующих двух блоков n, n + 1. Таким образом, Система маршрутизации проходит следующие этапы: • CollatorS: свяжитесь с членами Валидаторов[n][S] • Сортировщики: ДЛЯ КАЖДОЙ подгруппы: убедитесь, что минимум 1 член валидаторов[n][s] в контакте • Сопоставители: ДЛЯ КАЖДОЙ подгруппы: предположить egress[n −1][s][S] доступен (все входящие сообщения данные в «S» из последнего блока) • Сопоставители: Составьте кандидата блока b для S: (b.header, b.ext, b.proof, b.ceipt, b.egress) • Сопоставители: Отправить доказательство информация доказательство[S] = (b.header, b.ext, b.proof, b.receipt) на Валидаторы[n][S] • CollatorS: обеспечение данных внешних транзакций b.ext. доступен другим подборщикам и validators • Сопоставители: ДЛЯ КАЖДЫЙ подгруппа с: Отправить выход информация выход[n][S][s] = (b.заголовок, b.квитанция, b.выход[ы]) чтобы тот получение подгруппы члены из следующий блокировать Валидаторы[n + 1][s] • ValidatorV: предварительно соедините все элементы одного набора. для следующего блока: пусть N = Chain[n + 1][V ]; подключить все validators v такие, что Chain[n + 1][v] = N • ВалидаторV: Сопоставить все поступающие данные для этого блок: ДЛЯ КАЖДЫЙ подгруппа с: Получить egress[n −1][s][Chain[n][V ]], получить от других validators v таких, что Chain[n][v] = Chain[n][V ]. Возможно, пройдя через случайно выбранных других validator для доказательства попытки. • ВалидаторV: Примите кандидатские доказательства для этого доказательство блока[Chain[n][V ]]. Действительность блокировки голосования • ВалидаторV: Принять выходные данные кандидата для следующий блок: ДЛЯ КАЖДОЙ подгруппы примите выход[n][s][N]. Возможность блокировки выхода при голосовании; переопубликовать среди заинтересованных validators v так, чтобы Цепочка[n + 1][v] = Цепочка[n + 1][V ]. • ВалидаторV: ДО СОГЛАСИЯ Где: egress[n][from][to] — текущая выходная очередь. информация для сообщений, идущих из парачейна «от», в парачейн «to» в блоке номер «n». CollatorS — это средство сортировки для парачейна S. Validators[n][s] — это набор validators для парачейна s в блоке номер n. И наоборот, Chain[n][v] — это парачейн, которому назначен validator v в блоке номер n. block.egress[to] — выход очередь сообщений из какого-то блока парачейна, чей пункт назначения парачейна. Поскольку коллаторы взимают комиссию (за транзакцию) на основе их блоки становятся каноническими, у них появляется стимул убедитесь, что для каждого пункта назначения следующего блока имя подгруппы участники информируются о выходной очереди из настоящего блок. Валидаторы заинтересованы только в формировании консенсуса по блоку (парачейна), поэтому их мало волнует какой блок сопоставления в конечном итоге становится каноническим. В В принципе, validator может заключить союз с сопоставителем и вступить в сговор с целью уменьшить шансы других сопоставителей блоки становятся каноническими, однако это сложно организовать из-за случайного выборадействие validators для парачейнов, и от них можно защититься за счет снижения комиссий, выплачиваемых за блоки парачейнов, которые выдерживают процесс консенсуса. 6.6.1. Доступность внешних данных. Обеспечение работоспособности парачейна внешние данные на самом деле доступны, это вечная проблема с децентрализованные системы, направленные на распределение рабочей нагрузки между сеть. В основе проблемы лежит доступность проблема, которая гласит, что, поскольку невозможно ни сделать неинтерактивное подтверждение доступности или какой-либо другой доказательства недоступности, чтобы система BFT правильно проверять любой переход, корректность которого зависит от наличие некоторых внешних данных, максимальное количество приемлемо византийских узлов плюс один системы должен подтвердить наличие данных. Для правильного масштабирования системы, например Polkadot, это возникает проблема: если постоянная доля validators должны подтвердить наличие данных и предполагая, что что validators действительно захотят сохранить данные до того, как они будут подтверждены, как нам избежать проблема увеличения требований к пропускной способности/хранилищу с увеличением размера системы (и, следовательно, количества validators)? Одним из возможных ответов было бы создание отдельного набора. из validators (гарантов доступности), чей заказ растет сублинейно с размером Polkadot в целом. Это описано в 6.5.3. У нас также есть второстепенный трюк. Как группа, у сопоставителей есть внутренний стимул гарантировать, что все данные доступны для выбранного ими парачейна, поскольку без него они не могут создавать дополнительные блоки, из которых они могут собирать комиссию за транзакцию. Коллаторы также образуют группу, членство в которой варьируется (из-за случайного характера группы parachain validator) нетривиален для входа и прост
POLKADOT: ВИДЕНИЕ ГЕТЕРОГЕННОЙ МНОГОЦЕПНОЙ СТРУКТУРЫ ПРОЕКТ 1 15 доказать. Таким образом, недавним сопоставлениям (возможно, из последних нескольких тысяч блоков) разрешено ставить задачи доступность внешних данных для конкретного парачейна заблокируйте validators за небольшой залог. Валидаторы должны связаться с лицами из явно нарушившей подгруппы validator, которые дали показания, и либо получить и вернуть данные сопоставителю, либо передать ситуацию на более высокий уровень. дело, свидетельствуя об отсутствии доступности (прямой отказ предоставить данные считается правонарушением, связанным с конфискацией облигаций, поэтому неправомерное поведение validator, скорее всего, просто разорвать соединение) и связаться с дополнительными validators чтобы запустить тот же тест. В последнем случае залог коллатора возвращается. Как только будет достигнут кворум validator, которые могут дать такие свидетельства о недоступности, они будут освобождены. плохо себя ведущая подгруппа наказывается, и блокировка отменяется. 6.6.2. Маршрутизация сообщений. Каждый заголовок парачейна включает в себя выходной-три-корень; это корень дерева, содержащего контейнеры базы маршрутизации, каждый контейнер представляет собой объединенный список выходных постов. Доказательства Меркла могут быть предоставлены через parachain validators, чтобы доказать, что конкретный парачейн у блока была определенная выходная очередь для определенного парачейна назначения. В начале обработки блока парачейна каждый выходная очередь другого парачейна, привязанная к указанному блоку, равна объединены во входную очередь нашего блока. Мы предполагаем сильными, вероятно, CSPR9, подблок, предназначенный для достижения детерминированной операции, которая не предполагает фаворитизма между какими-либо Спаривание блоков парачейна. Колляторы рассчитывают новую очередь и опустошить выходные очереди в соответствии с параметрами парачейна логика. Содержимое входной очереди записывается явно в блок парачейна. Это преследует две основные цели: во-первых, это означает, что парачейн можно без доверия синхронизировать изолированно от других парачейнов. Во-вторых, это упрощает логистику данных, если весь входной очередь не может быть обработана в одном блоке; validators и средства сортировки могут обрабатывать следующие блоки без необходимости специально получать данные очереди. Если входная очередь парачейна превышает пороговое значение сумма в конце обработки блока, затем она отмечается насыщена в релейной цепи, и никакие дальнейшие сообщения не могут быть быть доставлено ему до тех пор, пока оно не будет очищено. Доказательства Меркла используется для демонстрации точности работы сортировщика в Доказательство блока парачейна. 6.6.3. Критика. Один незначительный недостаток, связанный с этим основным механизмом является атака после взрыва. Здесь все парачейны отправляют максимально возможное количество постов к конкретному парачейну. Хотя это связывает цель входная очередь сразу, никакой ущерб не наносится сверх стандартная транзакционная DoS-атака. Работает нормально, с набором хорошо синхронизированных и незлонамеренные алгоритмы сортировки и validators для N парачейнов, Всего N × M validators и L колляторов на парачейн, мы может разбить общее количество путей передачи данных на блок на: Валидатор: M −1+L+L: M −1 для остальных validators в наборе парачейнов L для каждого сопоставления, предоставляющего блок-кандидат парачейна, и второй L для каждого сопоставления. следующего блока, требующего исходящих полезных данных предыдущего блока. (Последнее на самом деле больше похоже на худший случай. операции, поскольку вполне вероятно, что подборщики будут использовать такие данные.) Сборщик: M +kN: M для подключения к каждому соответствующему блок парачейна validator, кН для распределения исходящих полезных данных в некоторое подмножество каждой группы парачейна validator для следующий блок (и, возможно, какой-нибудь предпочтительный сопоставитель(и)). Таким образом, пути передачи данных на узел растут линейно. с общей сложностью системы. Хотя это разумно, поскольку система масштабируется до сотен или тысяч парачейнов, некоторая задержка связи может быть поглощены в обмен на более низкие темпы роста сложности. В этом случае может быть использован алгоритм многофазной маршрутизации. чтобы уменьшить количество мгновенных путей ценой введения буферов хранения и задержки. 6.6.4. Маршрутизация гиперкуба. Маршрутизация гиперкуба — это механизм, который в большинстве случаев можно построить как расширение базовый механизм маршрутизации, описанный выше. По сути, вместо того, чтобы увеличивать связность узлов с увеличением количества парачейнов и узлов подгрупп, мы растем только с логарифм парацепей. Сообщения могут перемещаться между очереди нескольких парачейнов на пути к окончательной доставке. Сама маршрутизация детерминирована и проста. Мы начинаем с ограничение количества ячеек во входных/выходных очередях; а не общее количество парачейнов, они являютсябаза маршрутизации (b) . Это будет зафиксировано как число изменений парачейнов, при этом показатель маршрутизации (e) вместо этого увеличивается. Согласно этой модели, объем нашего сообщения растет с ростом O(be), при этом пути остаются постоянными и задержка (или количество блоков, необходимых для доставки) с О(е). Наша модель маршрутизации представляет собой гиперкуб размером e, причем каждая сторона куба имеет b возможных мест. В каждом блоке мы маршрутизируем сообщения по одной оси. Мы чередуйте оси по кругу, гарантируя таким образом время доставки блоков e в наихудшем случае. В рамках обработки парачейна иностранные Сообщения, обнаруженные во входящей очереди, немедленно направляются в соответствующий контейнер исходящей очереди, учитывая текущий номер блока (и, следовательно, размер маршрутизации). Это процесс требует дополнительной передачи данных для каждого перехода на пути доставки, однако это само по себе проблема которые можно смягчить, используя некоторые альтернативные средства доставки полезной нагрузки данных и включая только ссылку, а не полную полезную нагрузку сообщения в post-trie. Пример такой маршрутизации гиперкуба для системы с 4 парачейнами b = 2 и e = 2 могут быть: Фаза 0, для каждого сообщения M: • sub0: если Mdest ∈{2, 3}, то sendTo(2), иначе сохраните • sub1: если Mdest ∈{2, 3}, то sendTo(3), иначе сохраните • sub2: если Mdest ∈{0, 1}, то sendTo(0), иначе сохраните • sub3: если Mdest ∈{0, 1}, то sendTo(1), иначе сохраните Фаза 1, по каждому сообщению M: • sub0: если Mdest ∈{1, 3}, то sendTo(1), иначе сохраните • sub1: если Mdest ∈{0, 2}, то sendTo(0), иначе сохраните • sub2: если Mdest ∈{1, 3}, то sendTo(3), иначе сохраните • sub3: если Mdest ∈{0, 2}, то sendTo(2), иначе сохраните Два измерения здесь легко увидеть как первое. два бита индекса назначения; для первого блока, используется только бит более высокого порядка. Второй блок занимается с младшим битом. Как только произойдет то и другое (в произвольном order), тогда сообщение будет перенаправлено. 9криптографически безопасный псевдослучайный
POLKADOT: ВИДЕНИЕ ГЕТЕРОГЕННОЙ МНОГОЦЕПНОЙ СТРУКТУРЫ ПРОЕКТ 1 16 6.6.5. Максимизация случайности. Одно изменение основного предложение будет иметь фиксированную сумму c2 −c validators, при этом c-1 validators в каждой подгруппе. Каждый блок, а не происходит неструктурированное перераспределение validators среди парачейнов, вместо этого для каждой подгруппы парачейнов, каждый validator будет присвоен уникальному и различному подгруппу парачейна в следующем блоке. Это бы приводят к инварианту, что между любыми двумя блоками, для любого двух пар парачейна, существует два validator, которые поменялись обязанностями в сфере парачейна. Хотя это не может быть использовано для получения абсолютных гарантий доступности. (одиночный validator иногда будет отключен от сети, даже если доброжелательный), он, тем не менее, может оптимизировать общий случай. Этот подход не лишен осложнений. Добавление парачейна также потребует реорганизации. из набора validator. Кроме того, количество validator, привязанное к квадрату количества парацепей, сначала будет очень маленьким, а в конечном итоге вырастет далеко слишком быстро и становится несостоятельным примерно после 50 парачейнов. Ни одна из этих проблем не является фундаментальной. В первом случае реорганизация наборов validator - это то, что должно быть в любом случае делается регулярно. Что касается размера validator установлено, если слишком мало, можно назначить несколько validators к тому же парачейну, применяя целочисленный коэффициент к общее количество validatorс. Механизм многофазной маршрутизации, такой как маршрутизация гиперкуба, рассмотренный в разделе 6.6.4, будет смягчить требования к большому количеству validators когда имеется большое количество цепочек. 6.7. Проверка парачейна. Основное назначение validator как актер с хорошими связями засвидетельствовать, что парачейн блок действителен, включая, помимо прочего, любой переход состояния, любые включенные внешние транзакции, выполнение любые ожидающие посты во входной очереди и конечное состояние выходной очереди. Сам процесс довольно прост. Как только validator запечатает предыдущий блок, они становятся свободными. начать работу по предоставлению кандидата на блок парачейна кандидат на следующий раунд консенсуса. Первоначально validator находит кандидата на блок парачейна через механизм сортировки парачейна (описанный далее) или один его со-validators. Данные кандидата на блок парачейна включает заголовок блока, заголовок предыдущего блока, любые включенные внешние входные данные (для Ethereum и Bitcoin такие данные будут называться транзакциями, однако в принципе они могут включать произвольные структуры данных для произвольных целей), данные выходной очереди и внутренние данные для подтверждения достоверности перехода состояния (для Ethereum это будут различные узлы дерева состояния/хранилища, необходимые для выполнения каждой транзакции). Экспериментальные данные показывают этот полный набор данных для недавнего блока Ethereum. быть самое большее несколько сотен КиБ. Одновременно, если это еще не сделано, validator будет попытка получить информацию, относящуюся к переходу предыдущего блока, первоначально из предыдущего блока validators и позже от всех validators, подписавших контракт доступность данных. Как только validator получит такой блок-кандидат, затем они проверяют его локально. Процесс проверки содержится в модуле validator класса парачейн, чувствительный к консенсусу программный модуль, который необходимо написать для любой реализации Polkadot (хотя в принципе библиотека с C ABI может позволить одной библиотеке распределяться между реализациями с соответствующими снижение безопасности из-за наличия только одной «эталонной» реализации). Процесс берет заголовок предыдущего блока и проверяет его идентичность через недавно согласованную цепочку ретрансляции. блок, в котором должен быть записан его hash. Как только достоверность родительского заголовка установлена, конкретный парачейн может быть вызвана функция проверки класса. Это одна функция, принимающая несколько полей данных (примерно приведенные ранее) и возвращая простое логическое значение провозглашая валидность блока. Большинство таких функций проверки сначала проверяют поля заголовков, которые могут быть получены непосредственно из родительский блок (например, родительский hash, номер). Следование при этом они будут заполнять любые внутренние структуры данных как необходимо для обработки транзакций и/или сообщений. Для цепочки типа Ethereum это равносильно заполнению база данных trie с узлами, которые понадобятся для полное исполнение сделок. Другие типы цепей могут иметь другое препаративные механизмы. После этого входящие сообщения и внешние транзакции (или что бы то ни было, что представляют собой внешние данные) будут приняты, сбалансированы в соответствии со спецификацией сети. (А разумным по умолчанию может быть требование, чтобы все входящие сообщения были обрабатываются до обслуживания внешних транзакций, однако это должна решать логика парачейна.) Благодаря этому постановлению, ряд выходных постов будет созданы, и будет проверено, что они действительно соответствуют кандидат сборщика. Наконец, правильно заполненный заголовок будет сверяться с заголовком кандидата. При полностью проверенном блоке-кандидате validator затем может проголосовать за hash своего заголовка и отправить всю необходимую информацию для проверки со-validator в своей подгруппе. 6.7.1. Коллекторы парачейна. Коллаторы парачейна — это несвязанные операторы, которые выполняют большую часть задач майнеров. в современных сетях blockchain. Они специфичны к конкретному парачейну. Для того чтобы действовать, они должны поддерживать как релейную цепь, так и полностью синхронизированную парачейн. Точное значение слова «полная синхронизация» будет зависеть от класса парачейна, но всегда будет включать текущее состояние входной очереди парачейна. В случае Ethereum это также предполагает как минимум поддержание базу данных дерева Меркла последних нескольких блоков, но может также включает в себя различные другие структуры данных, включая Bloom фильтры для существования учетной записи, семейной информации, регистрации выходные данные и таблицы обратного поиска для номера блока. Помимо синхронизации двух цепочек, это также должен «ловить» транзакции, поддерживая очередь транзакций и принимая должным образом проверенные транзакции. из общедоступной сети. С очередью и цепочкой это способен создавать новые блоки-кандидаты для validator, выбранных в каждом блоке (чья личность известна, поскольку релейная цепь синхронизирована), и отправлять их вместе с различную вспомогательную информацию, такую как подтверждение действительности, через одноранговая сеть. К сожалению, он собирает все комиссии, связанные с включенными в него транзакциями. Вокруг этого вращаются различные экономические теории. аранжировка. На высококонкурентном рынке, где является излишек колляторов, возможно, что транзакция сборы будут разделены с парачейном validators для стимулирования включение определенного блока подборщика. Сходным образом,
POLKADOT: ВИДЕНИЕ ГЕТЕРОГЕННОЙ МНОГОЦЕПНОЙ СТРУКТУРЫ ПРОЕКТ 1 17 некоторые подборщики могут даже поднять необходимые сборы, которые требуют платить, чтобы сделать блок более привлекательным для validatorс. В этом случае должен образоваться естественный рынок. с транзакциями с более высокой комиссией без очереди и имеющих более быстрое включение в цепочку. 6.8. Сеть. Сеть на традиционных blockchains например Ethereum и Bitcoin, имеют довольно простые требования. Все транзакции и блоки передаются в виде простой ненаправленной сплетни. Синхронизация более сложна, особенно с Ethereum, но на самом деле эта логика содержалась в одноранговая стратегия, а не сам протокол, который разрешается вокруг нескольких типов сообщений запроса и ответа. В то время как Ethereum добился прогресса в текущих предложениях протоколов с помощью протокола devp2p, который позволил многим подпротоколы, которые должны быть мультиплексированы по одному одноранговому соединению и, таким образом, иметь одно и то же наложение одноранговых узлов, поддерживают множество p2p-протоколов одновременно, часть Ethereum протокол по-прежнему оставался относительно простым, а p2p Протокол какое-то время остается незавершенным с важными отсутствуют функциональные возможности, такие как поддержка QoS. К сожалению, желание создать более распространенный протокол «web 3» во многом провалился, и единственные проекты, использующие его, были явно финансируется за счет краудсейла Ethereum. Требования к Polkadot гораздо более существенные. Вместо полностью однородной сети Polkadot имеет несколько типов участников, каждый из которых имеет разные требования к составу своих коллег и несколько сетевых «проспекты», участники которых будут склонны обсуждать конкретные данные. Это означает существенно более структурированное сетевое наложение — и протокол, поддерживающий это — скорее всего, будет необходимо. Кроме того, возможность расширения для облегчения будущих дополнений, таких как новые виды «цепочек», может сами по себе требуют новой структуры наложения. В то время как углубленное обсуждение того, как сеть Протокол может выглядеть выходит за рамки данного документа, поэтому некоторый анализ требований является разумным. Мы можем грубо разобьем участников нашей сети на две группы (релейная цепь, парачейны) каждое из трёх подмножеств. Мы можем также заявляют, что каждый из участников парачейна является только заинтересованы в общении между собой, а не участники других парачейнов: • Участники релейной цепи: • Валидаторы: P, разбить на подмножества P[s] для каждого парачейн • Гаранты доступности: A (могут быть представлены валидаторами в базовой форме протокола). • Клиенты релейной цепи: M (обратите внимание на членов каждого набор парачейнов также будет иметь тенденцию быть членами M) • Участники парачейна: • Сопоставители парачейна: C[0], C[1], . . . • Рыбаки-парачейны: F[0], F[1], . . . • Клиенты Парачейна: S[0], S[1], . . . • Легкие клиенты Parachain: L[0], L[1], . . . Обычно мы называем отдельные классы общения будет иметь место между членами этих наборов: • П | А <-> П | А:
полный набор из validators/гаранты должен быть хорошие связи чтобы достичь консенсуса. • P[s] <-> C[s] | P[s]: Каждый validator как член определенной группы парачейна будет склонен сплетничать. с другими такими участниками, а также сопоставителями этого парачейна, чтобы находить и делиться кандидатами на блоки. • A <-> P[s] | С | A: Каждый гарант доступности необходимо будет собрать чувствительные к консенсусу межсетевые данные из назначенных ему validators; подборщики может также оптимизировать вероятность достижения консенсуса по их заблокировать, объявив его гарантам доступности. Как только они будут получены, данные будут переданы другого такого гаранта для содействия достижению консенсуса. • P[s] <-> A | P[s']: Парачейн validators будет необходимо собрать дополнительные входные данные из предыдущего набора validator или гарантов доступности. • F[s] <-> P: При репортаже рыбаки могут размещать претензия к любому участнику. • М <-> М | П | A: Обычные клиенты ретрансляционной цепочки передают данные от validator и гарантов. • S[s] <-> S[s] | П[ы] | О: Клиенты Parachain передают данные от validator/гарантов. • L[s] <-> L[s] | S[s]: легкие клиенты Parachain выдавать данные от полных клиентов. Для обеспечения эффективного транспортного механизма используется «плоский» оверлейная сеть, например devp2p Ethereum, где каждый узел не (непроизвольно) дифференцирует пригодность своего сверстники вряд ли подойдут. Достаточно расширяемый механизм выбора и обнаружения одноранговых узлов, вероятно, потребует быть включенным в протокол, а также агрессивные планирование прогноза, чтобы обеспечить правильный тип пиров «по счастливой случайности» связаныпоступил в нужное время. Точная стратегия формирования равных будет разной для каждого класса участников: для правильно масштабированного мультичейн, подборщики должны либо работать постоянно, повторное подключение к соответствующим образом избранным validator, или будет нужны действующие соглашения с подмножеством validators чтобы гарантировать, что они не будут отключены в течение большей части времени, когда они бесполезны для этого validator. Сопоставители также, естественно, будут пытаться поддерживать один или более стабильные соединения с гарантом доступности призваны обеспечить быстрое распространение своих чувствительных к консенсусу данные. Гаранты доступности в основном будут стремиться поддерживать стабильное соединение друг с другом и с validators (для консенсуса и критически важных для консенсуса данных парачейна, к которым они подтверждают), а также некоторым коллаторам (для парачейна данные) и некоторые рыбаки и полные клиенты (для разгона информация). Валидаторы будут склонны искать другие validator, особенно находящиеся в той же подгруппе и любых сборщики, которые могут предоставить им кандидатов на блок парачейна. Рыбаки, а также общие реле-цепи и парацепи клиенты обычно стремятся сохранить соединение открытым для validator или гарант, но множество других подобных узлов себе иначе. Легкие клиенты парачейна также будут стремиться подключиться к полноценному клиенту парачейна. если не просто другие легкие клиенты парачейна. 6.8.1. Проблема оттока коллег. В предложении базового протокола каждое из этих подмножеств постоянно случайным образом меняется с каждым блоком, поскольку validator назначены для проверки. переходы парацепи выбираются случайным образом. Это может быть проблемой, если разрозненные (неодноранговые) узлы должны передавать данные между собой. Нужно либо полагаться на достаточно распределенная и хорошо связанная одноранговая сеть для
POLKADOT: ВИДЕНИЕ ГЕТЕРОГЕННОЙ МНОГОЦЕПНОЙ СТРУКТУРЫ ПРОЕКТ 1 18 убедитесь, что расстояние перехода (и, следовательно, задержка в худшем случае) увеличивается только с логарифмом размера сети (здесь может помочь протокол типа Kademlia [13]), или необходимо ввести более длительное время блокировки, чтобы обеспечить необходимое согласование соединения и сохранить набор одноранговых узлов, который отражает текущие коммуникационные потребности узла. Ни одно из этих решений не является отличным решением: длительное время блокировки. принудительное использование сети может сделать ее бесполезной для конкретные приложения и цепочки. Даже совершенно справедливый и подключенной сети приведет к значительным потерям пропускной способности по мере ее масштабирования из-за незаинтересованных узлов, имеющих пересылать бесполезные для них данные. Хотя оба направления могут стать частью решения, разумная оптимизация, помогающая минимизировать задержку, могла бы должно ограничить волатильность этих парачейнов validator наборов, либо переназначая членство только между сериями блоков (например, в группах по 15, что с интервалом в 4 секунды время блокировки будет означать изменение соединений только один раз в минуту) или путем постепенной ротации участников, например меняется по одному члену за раз (например, если есть каждому парачейну назначено 15 validator, то в среднем между совершенно уникальными наборы). Ограничивая количество оттока одноранговых узлов и гарантируя, что выгодные одноранговые соединения устанавливаются хорошо в продвигаться вперед благодаря частичной предсказуемости парачейна наборы, мы можем помочь обеспечить, чтобы каждый узел постоянно сохранял случайный выбор сверстников. 6.8.2. Путь к эффективному сетевому протоколу. Вероятно наиболее эффективные и разумные усилия по разработке будут сосредоточены на использовании уже существующего протокола, а не на его постоянном обновлении. наш собственный. Существует несколько одноранговых базовых протоколов, которые мы можем использовать или дополнять собственный devp2p Ethereum. [22], libp2p [1] IPFS и GNUnet [4] GNU. Полный обзор этих протоколов и их значимости для построения модульная одноранговая сеть, поддерживающая определенные структурные гарантии, динамическое управление одноранговыми узлами и расширяемые подпротоколы выходит далеко за рамки этого документа, но будет важный шаг в реализации Polkadot. 7. Практические аспекты Протокола 7.1. Оплата межсетевых транзакций. Хотя отличный количество свободы и простоты достигается за счет отказа от необходимости в целостной системе учета вычислительных ресурсов, такой как газ Ethereum, это поднимает важный вопрос: как без газа может работать один парачейн избежать того, чтобы другой парачейн заставил его выполнять вычисления? Хотя мы можем полагаться на входную очередь после транзакции буферы, чтобы предотвратить рассылку спама из одной цепочки в другую данных транзакции, в протоколе не существует эквивалентного механизма для предотвращения спама при обработке транзакций. Это проблема, оставленная на более высоком уровне. Поскольку цепи вольны придавать произвольную семантику входящему данные после транзакции, мы можем гарантировать, что вычисление должны быть оплачены до начала работы. В том же духе, что и модель, поддерживаемая Ethereum Безмятежность, которую мы можем себе представить контракт на «взлом» внутри парачейна, который позволяет validator будет гарантирована оплата в обмен на предоставление определенного объема перерабатывающих ресурсов. Эти ресурсы могут измеряться чем-то вроде газа, но это также может быть какая-то совершенно новая модель, такая как субъективное время выполнения или модель фиксированной оплаты, подобная Bitcoin. Само по себе это не так уж полезно, поскольку мы не можем с готовностью предположить, что вызывающая сторона, находящаяся вне сети, имеет доступ к какой бы механизм стоимости ни был распознан взломом контракт. Однако мы можем представить себе вторичный «прорывной» контракт в исходной цепочке. Два контракта вместе образуют мост, признавая друг друга и обеспечение эквивалентности стоимости. (Стейкинг-tokens, доступен каждый из них может быть использован для урегулирования платежного баланса.) Вызов другой такой цепочки будет означать проксирование через этот мост, который обеспечит средства переговоры о передаче стоимости между цепочками с целью оплатить вычислительные ресурсы, необходимые в целевом парачейне. 7.2. Дополнительно Цепи. Пока тот дополнение из а парачейн — относительно дешевая операция, она не бесплатна. Больше парачейнов означает меньше validators на парачейн и, в конечном итоге, большее количество validators, каждый с снижение средней облигации. Хотя проблема меньшей стоимости принуждения для атаки на парачейн смягчается за счет рыбаков, растущая группа validator по существу вынуждает более высокая степень задержки из-за механики основного консенсусаметод. Кроме того, каждый парачейн приносит с собой потенциальную возможность гореть validators с слишком обременительный алгоритм проверки. Таким образом, будет некоторая «цена», которую validators и/или заинтересованное сообщество будет извлекать для добавление нового парачейна. Этот рынок для сетей будет возможно, увидите добавление либо: • Цепочки, которые, скорее всего, не будут платить нулевой чистый взнос (с точки зрения блокировки или сжигания staking tokens), которые должны стать частью (например, цепочки консорциумов, Doge-chains, цепочки для конкретных приложений); • цепочки, которые приносят внутреннюю ценность сети путем добавления определенной функциональности сложно добиться чего-то еще (например, конфиденциальность, внутренняя масштабируемость, привязка к услугам). По сути, сообщество заинтересованных сторон должно будет быть заинтересованы в добавлении дочерних цепочек — либо финансово, либо из-за желания добавить в реле функциональные цепи. Предполагается, что добавление новых сетей будет иметь очень короткий период уведомления об удалении, что позволяет новым цепям можно экспериментировать без какого-либо риска компрометации среднесрочное или долгосрочное ценностное предложение. 8. Заключение Мы наметили направление, по которому можно пойти, чтобы создать масштабируемый, гетерогенный многоцепочный протокол с потенциалом обратной совместимости с определенными, уже существующими blockchain сетей. По такому протоколу участники работать в просвещенных собственных интересах, чтобы создать общую систему, которая может быть расширена исключительно бесплатно и без типичных затрат для существующих пользователей, которые исходит из стандартного дизайна blockchain. Мы дали приблизительный набросок архитектуры, которая потребуется, включая характер участников, их экономические стимулы и процессы, в рамках которых они должны участвовать. У нас есть определили базовую конструкцию и обсудили ее сильные стороны и ограничения; соответственно, у нас есть дальнейшие направления, которые может ослабить эти ограничения и проложить путь к полностью масштабируемому решению blockchain.POLKADOT: ВИДЕНИЕ ГЕТЕРОГЕННОЙ МНОГОЦЕПНОЙ СТРУКТУРЫ ПРОЕКТ 1 19 8.1. Недостающий материал и открытые вопросы. Разветвление сети всегда возможно из-за различных реализаций протокола. Восстановление после такого исключительное состояние не обсуждалось. Учитывая, что сеть обязательно будет иметь ненулевой период завершения, восстановление после разветвления релейной цепи не должно представлять собой большой проблемы, однако потребует тщательной интеграции в протокол консенсуса. Конфискация облигаций и, наоборот, предоставление вознаграждения не были глубоко исследованы. В настоящее время мы принимаем вознаграждения предоставляются по принципу «победитель получает все»: это может не предложить лучшую модель стимулирования рыбаков. Кратковременный процесс раскрытия информации позволил бы многим рыбакам претендовать на приз, обеспечивающий более справедливое распределение вознаграждений, однако этот процесс может привести к дополнительной задержке в обнаружение неправомерного поведения. 8.2. Благодарности. Большое спасибо всем корректоры, которые помогли донести это до смутного презентабельная форма. В частности, Петер Чабан, Бьёрн Вагнер, Кен Капплер, Роберт Хабермайер, Виталик Бутерин, Рето Тринклер и Джек Петерссон. Спасибо всем люди, которые внесли идеи или начинания в связи с этим особого упоминания заслуживают Марек Котевич и Аэрон Бьюкенен. И спасибо всем остальным за помощь по пути. Все ошибки мои собственные. Части этой работы, включая первоначальные исследования алгоритмов консенсуса, частично финансировался Великобританией. Правительство в рамках программы Innovate UK.
세부 프로토콜
프로토콜은 대략 세 가지로 나눌 수 있습니다. 부분: 합의 메커니즘, 파라체인 인터페이스 그리고 인터체인 트랜잭션 라우팅. 6.1. 릴레이 체인 운영. 는 릴레이 체인 의지 아마도 Ethereum와 대체로 유사한 체인일 것입니다. 상태는 계정에 주소를 매핑하는 상태 기반입니다. 정보, 주로 잔액 및 (재생 방지를 위해) 거래 카운터. 여기에 계정을 배치하면 한 가지 목적이 달성됩니다. 즉, ID가 소유한 계정을 제공하는 것입니다. 시스템에 어느 정도의 지분이 있는지.7 하지만 주목할만한 차이점이 있습니다. • 계약은 트랜잭션을 통해 전개될 수 없습니다. 릴레이 체인의 애플리케이션 기능을 피하려는 욕구에 따라 계약의 공개 배포를 지원합니다. • 컴퓨팅 리소스 사용량(“가스”)은 계산되지 않습니다. 공개적으로 사용할 수 있는 유일한 기능이기 때문에 가스 회계의 근거가 수정될 것입니다. 더 이상 보유하지 않습니다. 따라서 정액 요금이 적용됩니다. 모든 경우에 더 많은 성능을 제공합니다. 수행해야 할 수 있는 동적 코드 실행 그리고 더 간단한 거래 형식. • 자동 실행 및 네트워크 메시지 출력을 허용하는 나열된 계약에 대해 특수 기능이 지원됩니다. 릴레이 체인에 VM이 있고 VM이 있는 경우 EVM을 기반으로 하며 최대한의 단순성을 보장하기 위해 여러 가지 수정 사항이 있을 것입니다. 아마도 다수의 내장 계약이 있습니다(다음의 계약과 유사). 플랫폼별 허용을 위해 Ethereum의 주소 1-4 합의 계약을 포함하여 관리해야 할 의무, validator 계약 및 파라체인 계약. EVM이 아닌 경우 WebAssembly 2 백엔드가 가장 가능성 있는 대안입니다. 이 경우 전반적인 구조는 비슷하지만 그럴 필요는 없습니다. Wasm이 실행 가능한 목표가 되는 내장 계약 미숙한 언어보다는 범용 언어를 위해 EVM에 대한 언어가 제한되어 있습니다. 현재 Ethereum 프로토콜에서 다른 가능한 편차가 있을 수 있습니다. 동일한 블록 내에서 충돌하지 않는 트랜잭션의 병렬 실행을 허용하는 트랜잭션 영수증 형식, Serenity 시리즈 변경 사항에 대해 제안된 대로입니다. 가능성은 낮지만 세레니티와 같은 것이 가능합니다. "순수한" 체인을 릴레이 체인으로 배포하여 staking token과 같은 것을 관리하기 위한 특정 계약 그것을 근본적인 부분으로 만드는 것이 아니라 균형을 유지하는 것입니다. 체인의 프로토콜. 현재로서는 그럴 가능성이 없다고 생각합니다. 충분히 훌륭한 프로토콜 단순화를 제공할 것입니다. 추가적인 복잡성과 불확실성을 감수할 가치가 있습니다. 그것을 개발하는 중. 7특정 보유자가 시스템의 전반적인 보안에 대해 책임을 지는 금액을 나타내는 수단으로 이러한 스테이크 계정은 필연적으로 경제적 가치를 인코딩합니다. 그러나 그러한 값을 사용할 의도는 없으므로 이해해야 합니다. 실제 상품 및 서비스와 교환할 목적으로 어떤 방식으로든 token은(는) 다음과 유사하지 않다는 점에 유의해야 합니다. 화폐와 마찬가지로 릴레이 체인은 애플리케이션에 관한 허무주의적 철학을 유지합니다.POLKADOT: 이종 다중 체인 프레임워크에 대한 비전 초안 1 10 합의 메커니즘, validator 세트, 검증 메커니즘 및 파라체인을 관리하는 데 필요한 여러 가지 작은 기능이 있습니다. 이것들 모놀리식 프로토콜 하에서 함께 구현될 수 있습니다. 그러나 모듈성을 보장한다는 이유로 이를 릴레이 체인의 "계약"이라고 설명합니다. 이것은 (의미에서) 객체라는 의미로 간주됩니다. 객체 지향 프로그래밍)은 릴레이체인의 합의 메커니즘에 의해 관리되지만 반드시 그런 것은 아닙니다. EVM과 유사한 opcode의 프로그램으로 정의되거나 심지어는 계정 시스템. 6.2. 스테이킹 계약. 이 계약은 validator 세트를 유지합니다. 다음을 관리합니다. • 현재 validator 계정은 무엇입니까? • 짧게는 validator이 될 수 있습니다. 통지; • 어떤 계정이 지명 지분을 배치했는지 validator; • staking 볼륨, 허용되는 지급률 및 주소, 단기(세션) ID를 포함한 각각의 속성. 계정이 되고자 하는 욕구를 등록할 수 있습니다. 보세 validator(요구 사항과 함께), 일부 신원을 지명하고 기존 보세 validator이 이 상태를 종료하려는 의사를 등록합니다. 그것은 또한 검증 및 정규화 메커니즘을 위한 기계 자체를 포함합니다. 6.2.1. 지분-token 유동성. 일반적으로 다음을 수행하는 것이 바람직합니다. 총 staking token을 최대한 많이 확보하세요. 이후 네트워크 유지 관리 작업에 참여 이는 네트워크 보안을 staking token의 전체 "시가 총액"과 직접적으로 연결합니다. 이것은 쉽게 할 수 있습니다 통화를 부풀리고 validators로 참여하는 사람들에게 수익금을 나눠줌으로써 인센티브를 받습니다. 그러나 그렇게 하면 문제가 발생합니다. token 축소 처벌로 스테이킹 계약에 갇혀 있는데 어떻게 상당 부분이 충분히 남을 수 있겠습니까? 가격 발견을 허용하기 위해 액체? 이에 대한 한 가지 대답은 기본 스테이킹된 token에 대체 가능한 token을 확보하여 간단한 파생 계약을 허용하는 것입니다. 이는 무신뢰 방식으로 마련하기가 어렵습니다. 더욱이 이러한 파생 상품은 다른 유로존 정부 채권이 대체 불가능하다는 것과 같은 이유로 동등하게 취급될 수 없습니다. 기초 자산이 실패하고 무가치하다. 유로존 정부와 관련하여 다음과 같은 일이 발생할 수 있습니다. 기본값. validator 스테이킹된 token을 사용하면 validator이(가) 악의적으로 행동하고 처벌을 받습니다. 우리의 교리에 따라 우리는 가장 간단한 솔루션을 선택합니다. 모든 token이 스테이킹되는 것은 아닙니다. 이것은 다음을 의미합니다 token의 일부(아마도 20%)는 강제로 유동 상태로 유지됩니다. 이는 보안 관점에서 불완전하지만 보안 측면에서 근본적인 차이를 만들 가능성은 없습니다. 네트워크 보안; 채권 몰수로 인한 배상금의 80%는 여전히 이루어질 수 있습니다. 100% staking의 "완벽한 사례"와 비교됩니다. 스테이킹된 token 사이의 비율은 역경매 메커니즘을 통해 상당히 간단하게 타겟팅할 수 있습니다. 본질적으로, validator가 되는 데 관심이 있는 token 보유자입니다. 각각 staking 계약서에 다음과 같은 제안을 게시할 것입니다. 그들이 받아야 할 최소 지급률 부분. 각 세션이 시작될 때(세션은 정기적으로, 아마도 한 시간에 한 번 정도 발생함) validator 슬롯은 각 원하는 대로 채워집니다. validator의 지분 및 지급률. 하나의 가능한 알고리즘 왜냐하면 이것은 가장 낮은 제안을 받은 사람들을 택하는 것이기 때문입니다. 목표로 삼은 총 지분보다 높지 않은 지분을 나타냅니다. 슬롯 수로 나눈 값이며 그 양의 절반보다 낮을 수 없습니다. 슬롯을 채울 수 없는 경우, 하한은 만족시키기 위해 어떤 요인에 의해 반복적으로 감소될 수 있습니다. 6.2.2. 지명. 무신뢰 지명 가능 staking token을 활성 validator에 전달하여 validator의 의무에 대한 책임입니다. 작품 추천 승인 투표 시스템을 통해. 각 후보자 후보는 staking 계약에 지침을 게시할 수 있습니다. 하나 이상의 validator 신원을 표현하는 것 그들은 자신의 유대를 맡길 준비가 되어 있습니다. 각 세션마다 지명자의 결속력이 분산됩니다. 하나 이상의 validator으로 표시됩니다. 분산 알고리즘은 등가 총계의 validator 세트를 최적화합니다. 채권. 지명자의 채권은 validator a의 실질적인 책임 하에 있게 됩니다.관심을 얻거나 고통을 겪을 수도 있습니다. 그에 따라 처벌이 감소됩니다. 6.2.3. 채권 압수/소각. 특정 validator 행동으로 인해 채권이 징벌적으로 감소됩니다. 만약에 채권이 허용 가능한 최소 금액 이하로 감소되었습니다. 세션이 조기 종료되었으며 다른 세션이 시작되었습니다. 처벌 가능한 validator 비행의 대략적인 목록은 다음과 같습니다. • 제공할 수 없는 파라체인 그룹의 일부임 파라체인 블록의 유효성에 대한 합의; • 무효의 유효성에 대해 적극적으로 서명합니다. 파라체인 블록; • 이전에는 송신 페이로드를 제공할 수 없음 사용 가능한 것으로 투표되었습니다. • 합의 과정 중 활동이 없습니다. • 경쟁 포크에서 릴레이 체인 블록을 검증합니다. 잘못된 행동의 일부 사례는 네트워크의 무결성을 위협합니다(예: 유효하지 않은 파라체인 블록에 서명하고 포크의 여러 측면을 검증하는 등). 따라서 채권의 전체 감소를 통해 효과적인 추방이 발생합니다. 에서 기타 덜 심각한 경우(예: 합의에 대한 비활동성) 프로세스) 또는 비난을 정확하게 할당할 수 없는 경우(비효과적인 그룹의 일부임), 작은 부분 대신 채권의 일부가 벌금으로 부과될 수 있습니다. 후자의 경우, 이는 하위 그룹 이탈과 잘 작동하여 악의적인 노드는 부수적으로 손상된 자비로운 노드보다 훨씬 더 많은 손실을 입습니다. 어떤 경우에는(예: 다중 포크 검증 및 유효하지 않은 경우) 하위 블록 서명) validators는 지속적인 검증으로 인해 서로의 잘못된 행동을 쉽게 감지할 수 없습니다. 각 파라체인 블록을 만드는 것은 너무 힘든 작업이 될 것입니다. 여기 외부 당사자의 지지를 얻어야 한다. 그러한 오작동을 확인하고 보고하기 위한 검증 프로세스. 당사자들은 그러한 활동을 보고한 대가로 보상을 받습니다. 그들의 "어부"라는 용어는 가능성이 없다는 데서 유래합니다. 그런 보상. 이러한 경우는 일반적으로 매우 심각하므로 압수된 채권으로 보상금을 쉽게 지불할 수 있다고 생각합니다. 일반적으로 우리는 균형 잡힌 연소를 선호합니다. (즉, 아무것도 아닌 것으로 축소) 도매 재분배를 시도하고 있습니다. 이는 다음과 같은 효과가 있습니다.
POLKADOT: 이종 다중 체인 프레임워크에 대한 비전 초안 1 11 token의 전체 가치를 높여서 특정 네트워크보다는 일반적으로 어느 정도 네트워크를 발견에 참여한 당사자. 이는 주로 안전을 위한 것입니다. 메커니즘: 관련된 많은 양은 극단적이고 심각한 행동 인센티브로 이어질 수 있습니다. 단일 대상에게 부여됩니다. 일반적으로 보상은 네트워크에 대한 검증을 가치 있게 만들 만큼 충분히 크지만, 네트워크에 대한 비용을 상쇄할 만큼 크지는 않은 것이 중요합니다. 재정이 좋고 조직이 잘 조직된 "산업 수준"의 범죄 잘못된 행동을 강요하기 위해 불운한 validator에 대한 해킹 공격입니다. 이런 식으로 청구된 금액은 일반적으로 0이 되어야 합니다. 잘못된 validator의 직접 채권보다 큽니다. 잘못된 행동을 하고 현상금을 위해 자신을 보고하는 비뚤어진 인센티브가 발생합니다. 이는 명시적으로 해결될 수 있습니다. 최소한의 직접 채권 요건을 통해 validator 또는 예치된 채권이 거의 없는 validator이 큰 인센티브가 없다는 것을 지명자에게 교육함으로써 암묵적으로 잘 행동하기 위해서. 6.3. 파라체인 레지스트리. 각 파라체인은 다음과 같이 정의됩니다. 이 레지스트리. 데이터베이스와 유사한 상대적으로 간단한 구성이며 정적 정보와 동적 정보를 모두 보유합니다. 각 체인. 정적 정보에는 체인 인덱스(간단한 정수), 검증 프로토콜 ID와 함께 다양한 클래스를 구별하는 수단 올바른 검증 알고리즘이 될 수 있도록 파라체인 유효한 후보자를 제시하기 위해 위임된 validators에 의해 운영됩니다. 초기 개념 증명은 배치에 중점을 둡니다. 새로운 검증 알고리즘을 클라이언트 자체에 적용하여 매번 프로토콜의 하드포크를 효과적으로 요구합니다. 체인 클래스가 추가되었습니다. 하지만 궁극적으로, 검증 알고리즘을 지정하는 것이 가능할 수도 있습니다. 고객이 만족할 만큼 엄격하고 효율적인 방법입니다. 별도의 조치 없이 새로운 파라체인과 효과적으로 작업할 수 있습니다. 하드포크. 이에 대한 한 가지 가능한 방법은 다음을 지정하는 것입니다. 잘 확립된 파라체인 검증 알고리즘, WebAssembly와 같이 기본적으로 컴파일되고 플랫폼 중립적인 언어입니다. 결정하기 위해서는 추가적인 연구가 필요하다 이것이 정말로 실현 가능한지 여부, 그러나 만약 그렇다면 이를 통해 하드포크를 추방하는 엄청난 이점을 얻을 수 있습니다. 영원히. 동적 정보에는 다음과 같은 글로벌 합의가 있어야 하는 트랜잭션 라우팅 시스템의 측면이 포함됩니다. 파라체인의 수신 대기열로 사용됩니다(섹션 6.6에 설명되어 있음). 레지스트리에는 파라체인만 추가할 수 있습니다. 전체 국민투표를 통해; 이건 관리할 수 있을 것 같아 내부적으로는 배치되지만 외부에 배치될 가능성이 더 높습니다. 재사용을 촉진하기 위한 국민투표 계약 보다 일반적인 거버넌스 구성 요소. 매개변수는 투표 요구 사항(예: 필요한 정족수, 과반수 필수) 추가 체인 및 기타 등록을 위해 덜 공식적인 시스템 업그레이드는 "마스터"에서 설정됩니다. 헌법”을 따르지만 상당히 전통적인 방식을 따를 가능성이 높습니다. 적어도 처음에는 경로입니다. 정확한 공식은 나오지 않았습니다 현재 작업의 범위, 예를 들어 전체 시스템의 3분의 1 이상을 통과하려면 2/3의 절대 다수가 통과해야 합니다. 스테이크에 대한 긍정적인 투표는 합리적인 출발점이 될 수 있습니다. 추가 작업에는 파라체인의 정지 및 제거가 포함됩니다. 정지는 결코 발생하지 않을 것입니다. 그러나 이는 최소한의 안전 장치로 설계되었습니다. 파라체인의 검증 시스템에는 다루기 힘든 문제가 있습니다. 가장 확실한 사례는 validator이 동의할 수 없게 만드는 구현 간의 합의에 중요한 차이점이 필요합니다. 유효성 또는 차단. 검증인은 다음을 사용하는 것이 좋습니다. 여러 클라이언트 구현을 수행할 수 있도록 채권을 몰수하기 전에 그러한 문제를 발견하는 것입니다. 정지는 긴급조치이므로, 오히려 역동적인 validator-투표의 후원으로 국민투표보다 복원은 둘 다 가능할 것입니다. validators 또는 국민 투표에서. 파라체인을 완전히 제거하는 것은 오직 국민투표 이후에는 질서 있는 전환을 허용하는 상당한 유예 기간 독립형 체인이 되거나 다른 체인의 일부가 되거나 합의 시스템. 유예 기간은 다음과 같습니다. 달의 순서이며 다른 순서로 파라체인 레지스트리에 퍼체인 기반으로 설정될 가능성이 높습니다. 파라체인은 다음에 따라 다양한 유예 기간을 누릴 수 있습니다. 그들의 필요. 6.4. 릴레이 블록 밀봉. 씰링은 본질적으로 다음을 의미합니다. 정규화 과정; 즉, 기본 데이터 변환하는 것원본을 근본적으로 독특하고 의미 있는 것으로 매핑합니다. PoW 체인 하에서, 봉인은 사실상 채굴과 동의어입니다. 우리의 경우, 여기에는 validators의 유효성, 가용성 및 정식성에 대한 서명된 진술 수집이 포함됩니다. 특정 릴레이 체인 블록과 파라체인 블록 그것은 나타냅니다. 기본 BFT 합의 알고리즘의 메커니즘은 현재 작업의 범위를 벗어납니다. 우리는 대신에 다음을 가정하는 기본 요소를 사용하여 설명합니다. 합의를 창출하는 상태 기계. 결국 우리는 기대한다 수많은 유망한 BFT 합의에서 영감을 얻습니다. 핵심 알고리즘; Tangaora [9] (BFT 변종) Raft [16]), Tendermint [11] 및 HoneyBadgerBFT [14]. 알고리즘은 여러 파라체인에 대해 병렬로 합의에 도달해야 하므로 일반적인 알고리즘과 다릅니다. blockchain 합의 메커니즘. 우리는 한 번 가정 합의에 도달하면 합의를 기록할 수 있습니다. 어느 누구라도 제공할 수 있는 반박할 수 없는 증거로 그것에 참가자. 우리는 또한 잘못된 행동을 가정합니다 프로토콜 내에서 일반적으로 작은 규모로 축소될 수 있습니다. 최소화하기 위해 잘못된 행동을 하는 참가자가 포함된 그룹 처벌을 내릴 때의 부수적 피해.8 서명된 진술의 형태를 취하는 증명은 릴레이 체인 블록의 헤더에 함께 배치됩니다. 특히 릴레이 체인의 statetrie 루트 및 transaction-trie 루트와 같은 특정 필드를 사용합니다. 는 밀봉 프로세스 걸립니다 장소 아래 에 싱글 합의 생성 메커니즘 주소 지정 둘 다 는 릴레이체인의 블록과 파라체인의 블록으로 릴레이 콘텐츠의 일부: 파라체인은 하위 그룹에 의해 별도로 "커밋"된 다음 대조되지 않습니다. 나중에. 이로 인해 릴레이체인의 프로세스가 더 복잡해지지만 단일 단계에서 전체 시스템의 합의를 완료할 수 있어 대기 시간이 최소화되고 허용됩니다. 매우 복잡한 데이터 가용성 요구 사항에 대해 아래 라우팅 프로세스에 도움이 됩니다. 8Tendermint BFT과 같은 기존 PoS 기반 BFT 합의 체계와 원본 Slasher는 이러한 주장을 충족합니다.
POLKADOT: 이종 다중 체인 프레임워크에 대한 비전 초안 1 12 각 참가자의 합의 기계 상태는 다음과 같습니다. 간단한(2차원) 테이블로 모델링됩니다. 각 참가자(validator)는 다음 형식의 정보 세트를 가지고 있습니다. 각 파라체인 블록 후보와 릴레이체인 블록 후보에 관한 다른 참가자의 서명된 진술("투표")입니다. 정보 세트는 2개입니다. 데이터: 가용성: 있음 이 validator 가지고 있다 출구 이 블록의 거래 게시물 정보 그들은 다음 블록에서 파라체인 후보를 적절하게 검증할 수 있습니까? 그들은 투표할 수 있습니다 1(알려짐) 또는 0(아직 알려지지 않음)입니다. 일단 그들은 1번 투표를 하면 그들은 비슷한 투표를 하기로 약속합니다. 이 과정의 나머지 부분. 그렇지 않은 나중에 투표 존중하는 것은 처벌의 근거가 됩니다. 유효성: 파라체인 블록이 유효하며 모두 유효합니다. 외부 참조 데이터(예: 거래) 가능합니까? 이는 투표 중인 파라체인에 할당된 validator에만 관련됩니다. 1(유효), -1(무효) 또는 0으로 투표할 수 있습니다. (아직 알려지지 않음). 0이 아닌 투표를 하면 나머지 투표에서도 이런 방식으로 투표하기로 약속했습니다. 과정. 이를 존중하지 않는 나중에 투표 처벌사유가 됩니다. 모든 validator은 투표를 제출해야 합니다. 위의 규칙에 따라 투표를 다시 제출할 수 있습니다. 의 진행 합의는 병렬로 발생하는 각 파라체인에 대한 여러 표준 BFT 합의 알고리즘으로 모델링될 수 있습니다. 이는 상대적으로 잠재적으로 방해를 받기 때문에 소수의 악의적인 행위자가 집중되어 있음 단일 파라체인 그룹에 대한 전반적인 합의가 존재합니다. 백스톱을 구축하여 최악의 시나리오를 제한합니다. 단지 하나 이상의 보이드 파라체인 블록에 대한 교착상태(그리고 책임자에 대한 일련의 처벌). 개별 블록의 유효성에 대한 기본 규칙 (전체적으로 validator의 전체 세트가 독특한 파라체인 후보가 되는 것에 대한 합의 표준 릴레이에서 참조됨): • validator의 최소 2/3가 긍정적으로 투표해야 하며 누구도 부정적으로 투표하지 않아야 합니다. • 송신 대기열 정보의 가용성에 대해 3분의 1 이상의 validator이 긍정적으로 투표해야 합니다. 타당성에 대해 적어도 하나의 긍정적인 투표와 적어도 하나의 부정적인 투표가 있는 경우 예외 조건이 생성됩니다. validator 전체 집합이 투표를 통해 결정해야 합니다. 악의적인 당사자가 있거나 우발적인 사고가 발생한 경우 포크. 유효, 무효 외에 세 번째 종류의 투표 허용되며 이는 둘 다에 투표하는 것과 같습니다. 즉, 노드는 서로 상충되는 의견을 가지고 있습니다. 이는 다음으로 인해 발생할 수 있습니다. 여러 구현을 실행하는 노드 소유자 동의하지 않음은 프로토콜에 모호성이 있을 수 있음을 나타냅니다. 모든 투표가 전체 validator 세트에서 계산된 후, 패배한 의견은 최소한 어느 정도 작은 비율을 차지합니다( 매개변수화되어야 합니다. 많아야 절반, 어쩌면 훨씬 적을 수도 있음) 승리한 의견의 득표수로 간주됩니다. 우발적인 파라체인 포크가 되어 파라체인은 합의 프로세스에서 자동으로 중단됩니다. 그렇지 않으면 악의적인 행위로 간주하여 처벌합니다. 반대 의견에 투표한 소수. 결론은 다음을 입증하는 일련의 서명입니다. 정규성. 그러면 릴레이 체인 블록이 봉인될 수 있습니다. 그리고 다음 블록을 봉인하는 과정이 시작되었습니다. 6.5. 릴레이 블록 밀봉 개선. 동안 이 밀봉 방법은 시스템 작동에 대한 강력한 보장을 제공하지만 특별히 확장이 잘 되지는 않습니다. 모든 파라체인의 핵심 정보에는 고유한 정보가 있어야 하기 때문에 전체 validator의 1/3 이상에서 가용성이 보장됩니다. 이는 모든 validator의 책임 범위가 더 많은 체인이 추가될수록 증가합니다. 개방형 합의 네트워크 내에서 데이터 가용성을 유지하는 동안 본질적으로 해결되지 않은 문제이므로 validator 노드에 발생하는 오버헤드를 완화하는 방법이 있습니다. 하나의 간단한 해결책은 validators가 어깨를 짊어져야 한다는 것을 깨닫는 것입니다. 데이터 가용성에 대한 책임이 있기 때문에 실제로 데이터 자체를 저장, 전달 또는 복제할 필요는 없습니다. 2차 데이터 사일로, 아마도 관련이 있거나 동일) 이 데이터를 수집하는 대조자는 지불 이자/소득의 일부를 제공하는 validator을 통해 가용성을 보장하는 작업입니다. 그러나 이렇게 하면 중간 정도의 확장성을 얻을 수는 있지만 여전히 근본적인 문제에는 도움이 되지 않습니다. 이후 더 많은 체인을 추가하려면 일반적으로 추가 validator이 필요하며 지속적인 네트워크 리소스 소비(특히 대역폭 측면에서)는 다음의 제곱에 따라 증가합니다. 는체인은 장기적으로 보호할 수 없는 자산입니다. 결국 우리는 계속해서 머리를 강타하게 될 것입니다. 다음과 같은 근본적인 한계에 반대합니다. 안전한 것으로 간주되는 합의 네트워크, 현재 진행 중인 대역폭 요구 사항은 총계 수준입니다. validators번 총 입력 정보입니다. 이는 다음으로 인해 발생합니다. 신뢰할 수 없는 네트워크가 여러 노드에 걸쳐 데이터 저장 작업을 적절하게 분배할 수 없음 처리라는 탁월한 배포 작업을 제외하고. 6.5.1. 지연 시간을 소개합니다. 이것을 부드럽게 하는 한 가지 방법 즉각성의 개념을 완화하는 것이 규칙입니다. 즉시가 아닌 최종적으로만 가용성에 대해 33%+1 validators 투표를 요구함으로써 우리는 기하급수적인 데이터 전파를 더 잘 활용하고 데이터 교환의 최대치를 균등화하는 데 도움을 줄 수 있습니다. 합리적인 평등(증명되지는 않았지만) 다음과 같을 수 있습니다: (1) 대기 시간 = 참가자 × 체인 현재 모델에서는 시스템 규모가 확장됩니다. 처리가 이루어지도록 체인 수를 확인합니다. 분산; 각 체인에는 최소한 하나의 validator이 필요하며 가용성 증명을 상수로 수정합니다. validator의 비율, 참가자도 비슷하게 증가합니다. 체인 수와 함께. 우리는 다음과 같이 끝납니다: (2) 대기 시간 = 크기2 이는 시스템이 성장함에 따라 필요한 대역폭과 가용성이 전체 시스템에 알려질 때까지의 대기 시간을 의미합니다. 네트워크는 숫자로 특징지어질 수도 있습니다. 최종 이전의 블록 수는 제곱에 따라 증가합니다. 이것은 상당한 성장 요인이며 주목할만한 장애물이 되어 우리를 "비평탄한" 패러다임으로 몰아넣을 수 있습니다. 예를 들어 여러 "Polkadotes"를 계층 구조로 구성하는 등 릴레이체인 트리를 통해 포스트의 다단계 라우팅을 위한 것입니다.
POLKADOT: 이종 다중 체인 프레임워크에 대한 비전 초안 1 13 6.5.2. 대중 참여. 또 하나의 가능한 방향 과정을 통해 대중의 참여를 유도하는 것입니다. 마이크로 컴플레인 시스템. 어부들과 비슷해요. 주장하는 validator을 경찰의 외부 당사자가 될 수 있습니다. 가용성. 그들의 임무는 그러한 가용성을 입증할 수 없는 것처럼 보이는 사람을 찾는 것입니다. 그렇게 함으로써 그들은 다른 validator에게 소소한 불만사항을 제기할 수 있습니다. PoW 또는 시빌 공격을 완화하기 위해 스테이크 채권을 사용할 수 있습니다. 이는 시스템을 거의 쓸모 없게 만듭니다. 6.5.3. 가용성 보증인. 최종 경로는 두 번째 결합된 validator 세트를 "가용성"으로 지정 보증인”. 이는 일반 validator과 마찬가지로 결합되며 동일한 세트에서 가져올 수도 있습니다. (그렇다면 적어도 세션당 장기간에 걸쳐 선택될 것입니다.) 일반 validator과 달리 파라체인 간에 전환하는 것이 아니라 오히려 모든 중요한 인터체인 데이터의 가용성을 증명하기 위해 단일 그룹을 구성합니다. 이는 참가자와 체인 간의 동등성을 완화할 수 있다는 장점이 있습니다. 본질적으로 체인은 다음과 같은 작업을 수행할 수 있습니다. (원래 체인 validator 세트와 함께) 성장하는 반면 참가자, 특히 데이터 가용성 증거에 참여하는 참가자는 최소한의 하위 선형 상태를 유지할 수 있습니다. 그리고 아마도 일정할 것이다. 6.5.4. 대조자 기본 설정. 이것의 중요한 측면 중 하나 시스템은 건전한 선택이 가능하도록 보장하는 것입니다. 특정 파라체인에서 블록을 생성하는 대조자. 만약 단일 대조자가 파라체인을 지배한 후 일부 공격 부족할 가능성이 높기 때문에 더욱 실현 가능해집니다. 외부 데이터의 가용성은 덜 명확합니다. 한 가지 옵션은 인공적으로 파라체인 블록에 가중치를 부여하는 것입니다. 다양한 대조자를 선호하기 위한 의사 무작위 메커니즘. 첫 번째 경우에는 다음이 필요합니다. validator이 선호하는 합의 메커니즘의 일부로 "무거운" 것으로 결정된 파라체인 블록 후보. 마찬가지로, 우리는 validators가 다음을 시도하도록 장려해야 합니다. 그들이 찾을 수 있는 가장 무거운 블록을 제안합니다. 후보자의 가중치에 비례하여 보상의 일부를 만들어 수행됩니다. 대조자에게 합리적인 공정한 대우를 보장하기 위해 자신의 후보가 당선자로 선택될 확률 합의된 후보자, 우리는 특정 가중치를 만듭니다. 파라체인 블록 후보는 각 콜레이터와 연결된 무작위 함수를 결정합니다. 예를 들어, collator의 주소 사이의 XOR 거리 측정 그리고 암호학적으로 안전한 의사 난수 블록이 생성되는 지점에 가깝게 결정됩니다. (명목상의 "당첨 티켓"). 이는 효과적으로 각 collator(또는 더 구체적으로 각 collator의 주소) 후보 블록이 "승리"할 무작위 확률 다른 모든 것. 단일 대조자의 시빌 공격을 완화하기 위해 당첨 티켓에 가까운 주소를 "채굴"하여 각 블록을 즐겨찾기에 추가하려면 대조자의 주소에 약간의 관성을 추가합니다. 이는 요구하는 것만큼 간단할 수 있습니다. 주소에 기본 자금 금액이 있어야 합니다. 더 우아한 접근 방식은 다음과 같은 근접성에 가중치를 두는 것입니다. 주차된 금액으로 당첨 티켓을 문제의 주소. 아직 모델링이 끝나지 않았지만, 이 메커니즘은 매우 소규모 이해관계자가 대조자로서 기여합니다. 6.5.5. 과체중 블록. validator 세트가 손상되면 블록을 생성하고 제안할 수 있습니다. 유효하고 실행하는 데 과도한 시간이 걸리며 검증하다. validator 그룹이 상당히 오랜 시간이 걸리는 블록을 합리적으로 형성합니다. 지름길을 허용하는 특정 정보가 이미 알려져 있지 않은 한 실행됩니다. 큰 인수분해 프라임. 단 한 명의 대조자가 해당 정보를 알고 있다면 그들은 자신의 것을 얻는 데 분명한 이점을 가질 것입니다 다른 사람들이 이전 블록을 처리하느라 바쁘다면 후보자들은 받아들여졌습니다. 우리는 이러한 블록을 과체중이라고 부릅니다. validators가 이러한 블록을 제출하고 검증하는 것에 대한 보호는 대체로 다음과 같은 방식으로 이루어집니다. 유효하지 않은 블록이지만 추가 주의사항은 다음과 같습니다. 블록을 실행하는 데 걸린 시간(따라서 블록의 상태) 과체중)은 주관적이며 투표의 최종 결과는 잘못된 행동은 본질적으로 세 가지 캠프로 분류됩니다. 하나 블록이 확실히 과체중이 아닐 가능성이 있습니다. 이 경우 2/3 이상이 그렇게 할 수 있다고 선언합니다. 일정 한도 내에서 블록을 실행합니다(예: 블록 간에 허용되는 총 시간의 50%). 또 다른 것은 블록은 d입니다확실히 과체중입니다. 2/3는 블록을 실행할 수 없다고 선언합니다. 상기 한도 내에서. 마지막 가능성 중 하나는 상당히 동일합니다. validators 사이의 의견 분열. 이 경우, 우리는 적절한 처벌을 선택하세요. validators가 언제 일어날지 예측할 수 있도록 하기 위해 비중확대 블록을 제안하는 경우 각 블록에 대한 자체 성과에 대한 정보를 게시하도록 요구하는 것이 합리적일 수 있습니다. ffi충분한 시간에 걸쳐, 이를 통해 처리 속도를 프로파일링할 수 있습니다. 그들을 판단할 동료들에 비해. 6.5.6. Collator 보험. validators에 대해 한 가지 문제가 남아 있습니다. PoW 네트워크와 달리 대조자의 유효성을 위해 블록을 실제로 실행해야 합니다. 악의적인 대조자는 유효하지 않거나 과중한 블록을 validator에 공급하여 슬픔을 유발할 수 있습니다(낭비 자원)을 요구하고 잠재적으로 상당한 기회 비용을 요구합니다. 이를 완화하기 위해 우리는 간단한 전략을 제안합니다. validators의 일부입니다. 먼저, 파라체인 블록 후보가 전송되었습니다. validators은(는) 릴레이 체인 계정에서 서명되어야 합니다. 자금으로; 그렇지 않은 경우 validator이 삭제되어야 합니다. 즉시요. 둘째, 그러한 후보자는 다음의 조합(예: 곱셈)에 의해 우선순위로 정렬되어야 합니다. 일정 한도 내에서 계좌에 있는 자금의 양, 대조자가 과거에 성공적으로 제안한 이전 블록의 수(이전 블록은 말할 것도 없고) 처벌) 및 승리에 대한 근접 요인 이전에 논의한 티켓. 캡은 동일해야합니다 해당 사건에서 validator에게 지급된 징벌적 손해배상금 그 중 잘못된 블록을 보내는 중입니다. 대조자가 유효하지 않거나 과중한 블록 후보를 validators에 보내는 것을 막기 위해 모든 validator은 오작동하는 대조자의 자금 중 일부 또는 전부를 이체하는 결과로 오작동을 주장하는 문제가 있는 블록을 포함하는 거래를 다음 블록에 배치합니다. 불만이 있는 validator에게 설명하세요. 이러한 유형의 트랜잭션은 대조자가 확인할 수 없도록 다른 트랜잭션을 먼저 실행합니다. 처벌 전에 자금을 제거하십시오. 금액 손해배상금으로 이전된 자금은 아직까지 동적 매개변수입니다.
POLKADOT: 이종 다중 체인 프레임워크에 대한 비전 초안 1 14 모델링될 예정이지만 발생한 슬픔의 수준을 반영하기 위해 validator 블록 보상의 일부가 될 가능성이 높습니다. 받는 사람 악의적인 validator이 대조자의 자금을 임의로 압수하는 것을 방지하기 위해 대조자는 무작위로 선택된 validator의 배심원단과 함께 validator의 결정에 대해 항소할 수 있습니다. 소액 입금을 위해. validator의 호의를 발견하면 보증금이 소비됩니다. 그렇지 않은 경우, 보증금이 반환되고 validator에 벌금이 부과됩니다(이후 validator은(는) 훨씬 더 아치형 위치에 있으므로 벌금이 부과됩니다. 아마도 꽤 무거울 것입니다). 6.6. 인터체인 거래 라우팅. 인터체인 트랜잭션 라우팅은 필수 유지 관리 중 하나입니다. 릴레이 체인 및 해당 validator의 작업입니다. 이것은 게시된 트랜잭션(종종 단순히 "포스트"로 단축됨)이 원하는 출력이 되는 방식을 제어하는 논리 하나의 소스 파라체인에서 신뢰 없이 다른 대상 파라체인의 협상 불가능한 입력이 되기까지 요구 사항. 우리는 위의 문구를 신중하게 선택했습니다. 특히 우리는 소스에 트랜잭션이 있을 필요는 없습니다. parachain이 이 게시물을 명시적으로 승인했습니다. 유일한 우리 모델에 적용하는 제약은 파라체인입니다. 전체 블록의 일부로 패키지되어 제공되어야 합니다. 처리 출력, 결과인 게시물 블록의 실행. 이러한 게시물은 여러 FIFO 대기열로 구성됩니다. 는 목록의 수는 라우팅 기반으로 알려져 있으며 약 16입니다. 특히 이 숫자는 수량을 나타냅니다. 의존하지 않고도 우리가 지원할 수 있는 파라체인의 수 다단계 라우팅. 처음에는 Polkadot에서 이를 지원합니다. 일종의 직접 라우팅이지만 가능한 한 가지 방법을 간략하게 설명하겠습니다. 다단계 라우팅 프로세스("하이퍼 라우팅")를 수단으로 사용 초기 파라체인 세트를 훨씬 넘어 확장되는 것입니다. 우리 가정하다 그 모두 참가자 알고있다 는 다음 두 블록 n, n + 1에 대한 하위 그룹화. 요약하면, 라우팅 시스템은 다음 단계를 따릅니다. • CollatorS: 검증인의 연락처[n][S] • CollatorS: 각 하위 그룹에 대해: 연락 중인 검증인[n][s] 구성원 최소 1명 • 대조자: 각 하위 그룹에 대해: 가정하다 egress[n −1][s][S]를 사용할 수 있습니다(모든 수신 게시물 마지막 블록의 데이터를 'S'로) • 대조자: S에 대해 블록 후보 b를 구성합니다. (b.헤더, b.ext, b.증명, b.영수증, b.egress) • 대조자: 보내기 증거 정보 증명[S] = (b.header, b.ext, b.proof, b.receipt) 유효성 검사기[n][S] • CollatorS: 외부 트랜잭션 데이터 b.ext 보장 다른 대조자와 validators가 사용할 수 있습니다. • 대조자: 에 대한 각각 하위 그룹 들: 보내기 출구 정보 송신[n][S][s] = (b.헤더, b.receipt, b.egress[s]) 에 는 수신 하위 그룹 회원 의 다음 블록 유효성 검사기[n + 1][s] • ValidatorV : 동일 세트의 모든 멤버를 미리 연결합니다. 다음 블록의 경우: N = Chain[n + 1][V ]; 연결하다 Chain[n + 1][v] = N이 되는 모든 validators v • 유효성 검사기V: 이에 대한 모든 데이터 수신을 대조합니다. 블록: 에 대한 각각 하위 그룹 들: 검색 egress[n −1][s][Chain[n][V ]], Chain[n][v] = Chain[n][V ]가 되도록 다른 validators v에서 가져옵니다. 시도 증명을 위해 무작위로 선택된 다른 validator을 통해 진행될 수도 있습니다. • 유효성 검사기V: 이에 대한 후보 증명을 수락합니다. 블록 증명[체인[n][V ]]. 투표 차단 유효성 • 유효성 검사기V: 다음에 대한 후보 송신 데이터 수락 다음 블록: 각 하위 그룹에 대해 수락 송신[n][s][N]. 투표 차단 출구 가용성; 관심 있는 validators v 사이에서 다시 게시하십시오. 사슬[n + 1][v] = 사슬[n + 1][V ]. • ValidatorV : 합의가 있을 때까지 여기서: egress[n][from][to]는 현재 송신 대기열입니다. 파라체인 'from'에서 다음으로 가는 게시물에 대한 정보 블록 번호 'n'의 파라체인 'to'. CollatorS는 parachain S에 대한 collator입니다. V alidators[n][s]는 블록 번호 n에 있는 parachain s에 대한 validators 집합입니다. 반대로, Chain[n][v]는 블록 번호 n에 validator v가 할당된 파라체인입니다. block.egress[to]는 송신입니다. 일부 파라체인 블록 블록의 게시물 대기열 목적지 파라체인은 입니다. 대조자는 다음을 기준으로 (거래) 수수료를 징수하므로 그들의 블록은 표준이 되며, 그들은 다음과 같은 인센티브를 받습니다. 각 다음 블록 대상에 대해 하위 그룹의 구성원은 현재의 송신 대기열에 대한 정보를 받습니다. 블록. 검증인은 (파라체인) 블록에 대한 합의를 형성하는 것에 대해서만 인센티브를 받습니다. 어떤 collator의 블록이 궁극적으로 표준이 됩니다. 에서 원칙적으로 validator은 대조자와 동맹을 맺고 다른 대조자의 기회를 줄이기 위해 공모할 수 있습니다. 블록이 정식화되지만 이는 둘 다 어렵습니다. 무작위 선택으로 인해 정렬validators의 액션 파라체인을 유지하는 파라체인 블록에 대해 지불해야 하는 수수료를 줄임으로써 방어할 수 있습니다. 합의 과정. 6.6.1. 외부 데이터 가용성. 파라체인의 보장 외부 데이터가 실제로 사용 가능하다는 것은 지속적인 문제입니다. 작업 부하를 분산시키는 것을 목표로 하는 분산형 시스템 네트워크. 문제의 핵심은 가용성이다 불가능하기 때문에 발생하는 문제 가용성에 대한 비대화형 증명을 만들거나 어떤 종류의 것도 만들지 마세요. BFT 시스템이 제대로 작동하려면 가용성이 없다는 증거를 제시하세요. 정확성이 의존하는 모든 전환을 검증합니다. 일부 외부 데이터의 가용성, 최대 수 허용 가능한 비잔틴 노드 수와 시스템의 1개 데이터가 이용 가능하다는 것을 증명해야 합니다. Polkadot과 같이 시스템을 적절하게 확장하려면 다음을 수행하세요. 문제를 야기합니다: validators의 일정한 비율이 있는 경우 데이터의 가용성을 증명해야 하며, validators는 데이터가 사용 가능하다고 주장하기 전에 실제로 데이터를 저장하기를 원할 것입니다. 그렇다면 어떻게 하면 시스템 크기(따라서 validators 수)에 따라 대역폭/스토리지 요구 사항이 증가하는 문제가 있습니까? 한 가지 가능한 대답은 별도의 세트를 갖는 것입니다. validators(가용성 보증인) 중 주문이 증가함 전체적으로 Polkadot 크기의 준선형적입니다. 이것은 6.5.3에 설명되어 있습니다. 두 번째 트릭도 있어요. 그룹으로서 대조자는 모든 데이터가 파라체인이 없으면 선택한 파라체인에 사용할 수 있습니다. 더 이상 블록을 작성할 수 없습니다. 거래 수수료를 징수합니다. Collator는 또한 구성원이 다양한 그룹을 형성합니다(데이터의 무작위 특성으로 인해). parachain validator 그룹) 입력하기 쉽고 쉽습니다.
POLKADOT: 이종 다중 체인 프레임워크에 대한 비전 초안 1 15 증명하기 위해. 따라서 최근 대조자(아마도 마지막 수천 블록 중)는 다음에 대한 이의제기를 발행할 수 있습니다. 특정 파라체인에 대한 외부 데이터의 가용성 소액 채권을 위해 validators를 차단하세요. 검증인은 증언한 분명히 문제가 있는 validator 하위 그룹의 사람들에게 연락하여 데이터를 수집하여 대조자에게 반환하거나 에스컬레이션해야 합니다. 가용성이 부족하다는 것을 증언함으로써 문제가 됩니다(데이터 제공을 직접 거부하는 것은 채권 압수 범죄로 간주되므로 잘못된 행동을 하는 validator은 아마도 연결 끊기) 및 추가 validators에 연락 동일한 테스트를 실행합니다. 후자의 경우, 대조자의 채권 반환됩니다. 이러한 비가용성 평가를 작성할 수 있는 validator의 정족수에 도달하면 해당 사용자는 해제됩니다. 잘못 행동하는 하위 그룹은 처벌되고 블록은 되돌려집니다. 6.6.2. 게시물 라우팅. 각 파라체인 헤더에는 출구-트리-루트; 이것은 다음을 포함하는 트라이의 루트입니다. 라우팅 기반 저장소, 각 저장소는 연결된 목록임 송신 게시물의 수입니다. 머클 증명은 다음과 같이 제공될 수 있습니다. parachain validators는 특정 parachain이 블록에는 특정 대상 파라체인에 대한 특정 송신 대기열이 있습니다. 파라체인 블록 처리 초기에는 각 해당 블록에 대한 다른 파라체인의 송신 대기열은 다음과 같습니다. 우리 블록의 수신 대기열에 병합되었습니다. 우리는 강하다고 가정하고, 아마도 CSPR9, 하위 블록 순서는 어느 것 사이에도 편애를 제공하지 않는 결정론적 연산을 달성하기 위한 것입니다. 파라체인 블록 페어링. Collator는 새 대기열을 계산합니다. 파라체인의 요청에 따라 출구 대기열을 비웁니다. 논리. 수신 대기열의 내용이 명시적으로 기록됩니다. 파라체인 블록에 들어갑니다. 여기에는 두 가지 주요 목적이 있습니다. 첫째, 이는 파라체인이 다른 파라체인과 분리되어 신뢰 없이 동기화될 수 있음을 의미합니다. 둘째, 전체 수신이 필요한 경우 데이터 물류를 단순화합니다. 대기열은 단일 블록에서 처리될 수 없습니다. validators 및 대조자는 다음 블록을 처리할 수 있습니다. 큐의 데이터를 특별히 소싱할 필요 없이. 파라체인의 수신 대기열이 임계값을 초과하는 경우 블록 처리가 끝나면 금액이 표시됩니다. 릴레이 체인이 포화되어 더 이상 메시지가 전송되지 않을 수 있습니다. 삭제될 때까지 전달됩니다. 머클 증명은 콜레이터 작업의 충실도를 입증하는 데 사용됩니다. 파라체인 블록의 증명. 6.6.3. 비평. 이 기본과 관련된 하나의 사소한 결함 메커니즘은 폭탄 후 공격입니다. 이곳은 모두가 파라체인은 가능한 최대량의 게시물을 보냅니다. 특정 파라체인에. 이것이 목표의 목표를 묶는 동안 한 번에 수신 대기열을 실행하면 계속해서 손상이 발생하지 않습니다. 표준 트랜잭션 DoS 공격. 잘 동기화된 세트로 정상적으로 작동하고 N 파라체인의 경우 비악성 대조자 및 validators, 파라체인당 N × M 총 validators 및 L 콜레이터, 우리는 블록당 전체 데이터 경로를 다음과 같이 분류할 수 있습니다. 유효성 검사기: M −1+L+L: 다른 validator에 대한 M −1 파라체인 세트에서 후보 파라체인 블록을 제공하는 각 콜레이터에 대한 L과 각 콜레이터에 대한 두 번째 L 이전 블록의 송신 페이로드가 필요한 다음 블록의 (후자는 실제로 최악의 경우에 가깝습니다. 대조자가 이러한 작업을 공유할 가능성이 높기 때문에 작업 데이터.) Collator: M +kN: 각 관련 항목에 대한 연결을 위한 M parachain 블록 validator, 각 parachain validator 그룹의 일부 하위 집합에 송신 페이로드를 시딩하기 위한 kN 다음 블록(그리고 선호하는 일부 대조자). 따라서 노드당 데이터 경로 방식은 선형적으로 증가합니다. 시스템의 전반적인 복잡성과 관련이 있습니다. 이 동안 합리적입니다. 시스템이 수백 또는 수천 개의 파라체인으로 확장됨에 따라 일부 통신 지연이 발생할 수 있습니다. 복잡성 증가율이 낮아지는 대가로 흡수됩니다. 이 경우 다중 단계 라우팅 알고리즘을 사용할 수 있습니다. 순간적인 경로의 수를 줄이기 위해 스토리지 버퍼와 대기 시간을 도입하는 비용이 듭니다. 6.6.4. 하이퍼큐브 라우팅. 하이퍼 큐브 라우팅은 대부분 하이퍼 큐브 라우팅의 확장으로 구축될 수 있는 메커니즘입니다. 위에서 설명한 기본 라우팅 메커니즘. 본질적으로, 파라체인과 하위 그룹 노드의 수로 노드 연결성을 늘리는 대신, 파라체인의 로그. 게시물은 다음 사이에 전송될 수 있습니다. 여러 파라체인이 최종 배송을 위해 줄을 서고 있습니다. 라우팅 자체는 결정적이고 간단합니다. 우리는 다음과 같이 시작합니다 수신/송신 대기열의 저장소 수를 제한합니다. 파라체인의 총 개수가 아니라, 는라우팅 기반(b) . 숫자로 고정됩니다 대신 라우팅 지수(e)가 증가하여 파라체인이 변경됩니다. 이 모델에서는 메시지 볼륨이 O(be)와 함께 성장하며 경로는 일정하게 유지됩니다. 및 지연 시간(또는 전송에 필요한 블록 수) O(e)로. 우리의 라우팅 모델은 e차원의 하이퍼큐브입니다. 큐브의 각 면에는 b개의 가능한 위치가 있습니다. 각 블록은 단일 축을 따라 메시지를 라우팅합니다. 우리 라운드 로빈 방식으로 축을 교체하여 최악의 경우 e 블록 배달 시간을 보장합니다. 파라체인 가공의 일환으로 해외로 향하는 수신 대기열에서 발견된 메시지는 다음과 같은 경우 적절한 송신 대기열의 저장소로 즉시 라우팅됩니다. 현재 블록 번호(및 라우팅 차원) 이 프로세스에는 각 홉에 대한 추가 데이터 전송이 필요합니다. 배송 경로에 문제가 있지만, 이는 그 자체로 문제입니다 이는 대체 수단을 사용하여 완화될 수 있습니다. 데이터 페이로드 전달 및 참조만 포함, 포스트 트라이에 있는 포스트의 전체 페이로드가 아니라. 시스템에 대한 하이퍼큐브 라우팅의 예 4개의 파라체인을 사용하면 b = 2 및 e = 2는 다음과 같을 수 있습니다. 0단계, 각 메시지 M: • sub0: Mdest ∈{2, 3}이면 sendTo(2), 그렇지 않으면 유지 • sub1: Mdest ∈{2, 3}이면 sendTo(3), 그렇지 않으면 유지 • sub2: Mdest ∈{0, 1}이면 sendTo(0), 그렇지 않으면 유지 • sub3: Mdest ∈{0, 1}이면 sendTo(1), 그렇지 않으면 유지 1단계, 각 메시지 M: • sub0: Mdest ∈{1, 3}이면 sendTo(1), 그렇지 않으면 유지 • sub1: Mdest ∈{0, 2}이면 sendTo(0), 그렇지 않으면 유지 • sub2: Mdest ∈{1, 3}이면 sendTo(3), 그렇지 않으면 유지 • sub3: Mdest ∈{0, 2}이면 sendTo(2), 그렇지 않으면 유지 여기의 두 차원은 첫 번째로 쉽게 볼 수 있습니다. 대상 인덱스의 2비트; 첫 번째 블록의 경우, 상위 비트만 사용됩니다. 두 번째 블록 거래 하위 비트로. 둘 다 발생하면 (임의로 주문) 게시물이 라우팅됩니다. 9암호적으로 안전한 의사 난수
POLKADOT: 이종 다중 체인 프레임워크에 대한 비전 초안 1 16 6.6.5. 세렌디피티의 극대화. 기본의 한 가지 변형 제안에서는 고정된 총 c2 −c validators를 볼 수 있습니다. c−1 각 하위 그룹의 validators. 블록 하나하나가 아니라 validators의 구조화되지 않은 재파티셔닝이 있습니다. 파라체인 중에서 각 파라체인 하위 그룹 대신에 각 validator은 고유하고 다른 항목에 할당됩니다. 다음 블록의 파라체인 하위 그룹. 이것은 두 블록 사이에 불변성이 발생합니다. 두 쌍의 파라체인에는 두 개의 validator이 존재합니다. 파라체인 책임을 바꿨습니다. 가용성에 대한 절대적인 보장을 얻는 데 사용할 수는 없지만 (단일 validator은 때때로 오프라인 상태가 됩니다. 자비로운) 그럼에도 불구하고 일반적인 경우를 최적화할 수 있습니다. 이 접근 방식에는 합병증이 없지는 않습니다. 파라체인을 추가하려면 재구성도 필요합니다. validator 세트 중. 또한 validator의 수는 파라체인 수의 제곱에 연결되어 있으며, 처음에는 아주 작은 규모로 시작하여 결국에는 멀리 성장할 것입니다. 너무 빨라서 약 50개의 파라체인 이후에는 견딜 수 없게 됩니다. 이들 중 어느 것도 근본적인 문제는 아닙니다. 첫 번째 경우, validator 세트의 재구성은 반드시 이루어져야 하는 것입니다. 어쨌든 정기적으로 했어요. validator의 크기에 관하여 너무 작으면 여러 개의 validator이 할당될 수 있습니다. 동일한 파라체인에 정수 인자를 적용하여 총 validators. 6.6.4에서 논의된 하이퍼큐브 라우팅과 같은 다단계 라우팅 메커니즘은 많은 수의 validator에 대한 요구 사항을 완화합니다. 체인 수가 많을 때. 6.7. 파라체인 검증. A validator의 주요 목적 유대감이 강한 배우로서 파라체인이 상태 전환, 외부 트랜잭션 포함, 실행 등을 포함하되 이에 국한되지 않는 블록이 유효합니다. 수신 대기열의 대기 중인 게시물과 최종 상태 송신 대기열의 프로세스 자체는 매우 간단합니다. validator가 이전 블록을 봉인하면 무료입니다. 후보 파라체인 블록을 제공하기 위한 작업을 시작합니다. 다음 합의 라운드 후보. 처음에 validator는 파라체인 콜레이터(다음에 설명) 또는 하나를 통해 파라체인 블록 후보를 찾습니다. 공동 validators 중 하나입니다. 파라체인 블록 후보 데이터 블록의 헤더, 이전 블록의 헤더, 포함된 모든 외부 입력 데이터(Ethereum 및 Bitcoin의 경우 이러한 데이터는 트랜잭션으로 참조되지만 원칙적으로 임의의 목적을 위한 임의의 데이터 구조를 포함할 수 있음), 상태 전환 유효성을 증명하기 위한 송신 대기열 데이터 및 내부 데이터(Ethereum의 경우) 이는 각 트랜잭션을 실행하는 데 필요한 다양한 상태/저장 트리 노드입니다. 실험적 증거는 최근 Ethereum 블록에 대한 전체 데이터세트를 보여줍니다. 최대 수백 KiB입니다. 동시에 아직 완료되지 않은 경우 validator은(는) 처음에는 이전 블록의 전환과 관련된 정보를 검색하려고 시도합니다. validators 이상은 모든 validators 서명에서 데이터의 가용성. validator이 그러한 후보 블록을 수신하면, 그런 다음 로컬에서 유효성을 검사합니다. 검증 프로세스는 파라체인 클래스의 validator 모듈 내에 포함되어 있습니다. 반드시 작성해야 하는 합의에 민감한 소프트웨어 모듈 Polkadot 구현에 대해(원칙적으로는 C ABI가 포함된 라이브러리는 단일 라이브러리로 다음을 수행할 수 있습니다. 적절한 구현 간에 공유됩니다. 단일 "참조" 구현만으로 인한 안전성 감소). 이 프로세스는 이전 블록의 헤더를 가져와서 최근 합의된 릴레이 체인을 통해 그 신원을 확인합니다. hash이 기록되어야 하는 블록입니다. 상위 헤더의 유효성이 확인되면 특정 파라체인이 클래스의 유효성 검사 함수가 호출될 수 있습니다. 이는 다수의 데이터 필드(대략적으로)를 허용하는 단일 함수입니다. 이전에 제공된 것) 간단한 부울을 반환합니다. 블록의 유효성을 선언합니다. 대부분의 검증 기능은 먼저 직접 파생될 수 있는 헤더 필드 상위 블록(예: 상위 hash, 번호). 팔로잉 그러면 내부 데이터 구조가 다음과 같이 채워집니다. 거래 및/또는 게시물을 처리하기 위해 필요합니다. Ethereum와 같은 체인의 경우 이는 필요한 노드가 포함된 데이터베이스를 트리로 구성합니다. 거래의 완전한 실행. 다른 체인 유형에는 다른 p회복 메커니즘. 완료되면 수신 게시물과 외부 트랜잭션(또는 외부 데이터가 나타내는 모든 것)이 체인 사양에 따라 제정되고 균형이 맞춰집니다. (A 합리적인 기본값은 모든 수신 게시물을 요구하는 것일 수 있습니다. 외부 트랜잭션이 서비스되기 전에 처리되지만 이는 파라체인의 논리에 따라 결정되어야 합니다.) 이번 제정을 통해 일련의 출구 게시물이 게시될 예정입니다. 생성되었으며 이것이 실제로 일치하는지 확인됩니다. 콜러의 후보. 마지막으로, 제대로 채워졌습니다. 헤더는 후보자의 헤더와 비교하여 확인됩니다. 완전히 검증된 후보 블록을 사용하면 validator 그런 다음 헤더의 hash에 투표하고 모든 필수 유효성 검사 정보를 해당 하위 그룹의 co-validator에 보낼 수 있습니다. 6.7.1. 파라체인 콜레이터. 파라체인 콜레이터는 채굴자의 작업 대부분을 수행하는 비결합 운영자입니다. 현재 blockchain 네트워크에서. 그것들은 구체적이다 특정 파라체인에. 작동하려면 반드시 릴레이 체인과 완전 동기화를 모두 유지합니다. 파라체인. "완전히 동기화됨"의 정확한 의미는 파라체인 클래스에 따라 다르지만 항상 파라체인 수신 대기열의 현재 상태를 포함합니다. Ethereum의 경우 최소한 유지 관리도 포함됩니다. 마지막 몇 블록의 머클 트리 데이터베이스이지만 Bloom을 포함한 다양한 다른 데이터 구조도 포함 계정 존재, 가족 정보, 로깅을 위한 필터 블록 번호에 대한 출력 및 역방향 조회 테이블. 두 체인의 동기화를 유지하는 것 외에도 또한 트랜잭션 대기열을 유지하고 적절하게 검증된 트랜잭션을 수락하여 트랜잭션을 "피싱"해야 합니다. 공용 네트워크에서. 대기열과 체인을 사용하면 각 블록에서 선택된 validator에 대한 새로운 후보 블록을 생성하고(릴레이체인이 동기화된 이후 신원이 알려짐) 이를 유효성 증명 등 다양한 보조 정보를 통해 피어 네트워크. 문제가 발생하면 포함된 거래와 관련된 모든 수수료를 징수합니다. 이를 둘러싸고 다양한 경제학이 떠돌고 있다. 배열. 경쟁이 치열한 시장에서 대조자가 너무 많으면 거래가 발생할 가능성이 있습니다. 인센티브를 제공하기 위해 수수료는 파라체인 validator과 공유됩니다. 특정 collator의 블록을 포함합니다. 비슷하게,
POLKADOT: 이종 다중 체인 프레임워크에 대한 비전 초안 1 17 일부 대조자는 필요한 수수료를 인상할 수도 있습니다. 블록을 더 매력적으로 만들기 위해 비용을 지불합니다. validators. 이 경우 자연시장이 형성되어야 한다. 더 높은 수수료를 지불하는 거래가 대기열을 건너뛰는 경우 체인에 더 빠르게 포함됩니다. 6.8. 네트워킹. 기존 blockchains의 네트워킹 Ethereum 및 Bitcoin와 같은 요구 사항은 다소 간단합니다. 모든 거래와 블록은 단순하고 방향성이 없는 소문으로 방송됩니다. 특히 동기화가 더 복잡합니다. Ethereum을 사용하지만 실제로는 이 논리가 몇 가지 요청 및 응답 메시지 유형을 중심으로 해결된 프로토콜 자체가 아닌 피어 전략입니다. Ethereum은 devp2p 프로토콜을 사용하여 현재 프로토콜 제공에 진전을 이루었습니다. 단일 피어 연결을 통해 멀티플렉싱되는 서브프로토콜은 동일한 피어 오버레이를 가지며 여러 가지를 지원합니다. p2p 프로토콜을 동시에 사용하면 Ethereum 부분 프로토콜은 여전히 상대적으로 단순했고 p2p는 한동안 프로토콜은 중요한 문제로 인해 완료되지 않은 상태로 남아 있습니다. QoS 지원과 같은 기능이 누락되었습니다. 안타깝게도 보다 유비쿼터스적인 "웹 3" 프로토콜을 만들고자 하는 열망은 주로 실패했습니다. 이를 사용하는 유일한 프로젝트는 명시적으로 Ethereum 크라우드 세일을 통해 자금을 조달했습니다. Polkadot에 대한 요구 사항은 다소 더 중요합니다. 오히려 완전히 균일한 네트워크, Polkadot 동료 구성 및 여러 네트워크에 대해 각기 다른 요구 사항을 가진 여러 유형의 참가자가 있습니다. 참가자들이 대화를 나누는 경향이 있는 "길" 특정 데이터. 이는 훨씬 더 구조화된 네트워크 오버레이와 이를 지원하는 프로토콜을 의미합니다. 필요할 것 같습니다. 또한, 새로운 종류의 "체인"과 같은 향후 추가를 용이하게 하는 확장성이 가능합니다. 자체적으로는 새로운 오버레이 구조가 필요합니다. 네트워킹 방법에 대해 심도있게 논의하는 동안 프로토콜이 이 문서의 범위를 벗어나는 것처럼 보일 수 있지만 일부 요구 사항 분석은 합리적입니다. 우리는 할 수 있다 네트워크 참가자를 대략 두 세트로 나눕니다. (릴레이 체인, 파라체인) 각각 세 개의 하위 집합입니다. 우리는 할 수 있다 또한 각 파라체인 참가자는 오직 그들 사이의 대화에 관심이 있는 반면 다른 파라체인 참가자: • 릴레이 체인 참가자: • 유효성 검사기: P, 각각에 대해 하위 집합 P[s]로 분할 파라체인 • 가용성 보증자: A(프로토콜 기본 형식의 유효성 검사기로 표현될 수 있음) • 릴레이 체인 클라이언트: M(각 멤버 참고 파라체인 세트도 M)의 구성원이 되는 경향이 있습니다. • 파라체인 참가자: • 파라체인 대조자: C[0], C[1], . . . • 파라체인 어부: F[0], F[1], . . . • 파라체인 클라이언트: S[0], S[1], . . . • 파라체인 라이트 클라이언트: L[0], L[1], . . . 일반적으로 우리는 특정 종류의 의사소통을 명명합니다. 다음 세트의 구성원 간에 발생하는 경향이 있습니다. • 피 | 에이 <-> 피 | 답: 는 가득 찬 세트 의 validators/보증인 반드시 있다 잘 연결된 에 합의를 이루다. • P[s] <-> C[s] | P[s]: 특정 파라체인 그룹의 구성원인 각 validator은 험담을 하는 경향이 있습니다. 다른 회원 및 대조자와 함께 해당 파라체인의 블록 후보를 발견하고 공유합니다. • A <-> P[s] | 다 | A: 각 가용성 보증인 합의에 민감한 크로스체인을 수집해야 합니다. 할당된 validator의 데이터; 대조자 또한 그들의 의견에 대한 합의 가능성을 최적화할 수도 있습니다. 가용성 보증인에게 광고하여 차단합니다. 일단 데이터를 갖게 되면 데이터는 다음에 분배됩니다. 합의를 촉진하기 위한 기타 보증인. • P[s] <-> A | P[s']: 파라체인 validators는 이전 validator 세트 또는 가용성 보증자로부터 추가 입력 데이터를 수집해야 합니다. • F[s] <-> P: 보고 시 어부들은 다음과 같은 위치를 지정할 수 있습니다. 참가자와의 청구. • M <-> M | 피 | A: 일반 릴레이 체인 클라이언트는 validators 및 보증인으로부터 데이터를 지불합니다. • S[들] <-> S[들] | 추신 | A: 파라체인 클라이언트는 validator/보증인으로부터 데이터를 지불합니다. • L[초] <-> L[초] | S[s]: 파라체인 라이트 클라이언트 전체 클라이언트로부터 데이터를 지불합니다. 효율적인 운송 메커니즘을 보장하기 위해 "플랫" Ethereum의 devp2p와 같은 오버레이 네트워크 노드는 (비임의적으로) 자신의 적합성을 구별하지 않습니다. 또래는 적합하지 않을 것 같습니다. 합리적으로 확장 가능한 피어 선택 및 검색 메커니즘에는 다음이 필요할 수 있습니다. 공격적일 뿐만 아니라 프로토콜 내에 포함되어야 함 올바른 종류의 동료를 보장하기 위해 미리 계획을 세웁니다. "우연히" 연결되어 있습니다적절한 시기에 시행되었습니다. 동료 구성의 정확한 전략은 참가자 클래스마다 다릅니다. 다중 체인, 대조자는 지속적으로 그에 따라 선택된 validator에 다시 연결하거나 validator의 하위 집합과 지속적인 계약이 필요합니다. validator에 쓸모가 없는 대부분의 시간 동안 연결이 끊어지지 않도록 합니다. Collator는 자연스럽게 하나의 데이터를 유지하려고 시도합니다. 또는 가용성 보증인에 대한 보다 안정적인 연결 합의에 민감한 메시지의 신속한 전파를 보장하도록 설정되었습니다. 데이터. 가용성 보증인은 대부분 가용성을 유지하는 것을 목표로 합니다. 서로 및 validators에 대한 안정적인 연결(합의 및 합의에 중요한 파라체인 데이터의 경우) 그들이 증명함) 및 일부 대조자(파라체인의 경우) 데이터) 및 일부 어부 및 전체 고객(분산용) 정보). 유효성 검사기는 다른 validator, 특히 동일한 하위 그룹과 다른 validator을 찾는 경향이 있습니다. 파라체인 블록 후보를 제공할 수 있는 대조자. 어부 뿐만 아니라 일반 릴레이체인, 파라체인 클라이언트는 일반적으로 연결을 열린 상태로 유지하는 것을 목표로 합니다. validator 또는 보증인이지만 유사한 다른 노드가 많이 있습니다. 그렇지 않으면 스스로에게. 파라체인 라이트 클라이언트는 마찬가지로 파라체인의 전체 클라이언트에 연결되는 것을 목표로 합니다. 다른 파라체인 라이트 클라이언트뿐만이 아니라면요. 6.8.1. 동료 이탈 문제. 기본 프로토콜 제안에서 이러한 각 하위 집합은 검증을 위해 할당된 validator으로 각 블록과 함께 지속적으로 무작위로 변경됩니다. 파라체인 전환은 무작위로 선택됩니다. 이것은 할 수 있다 서로 다른(비피어) 노드가 다음을 수행해야 하는 경우 문제가 됩니다. 서로 데이터를 전달합니다. 다음 중 하나에 의존해야 합니다. 공정하게 분산되고 잘 연결된 피어 네트워크
POLKADOT: 이종 다중 체인 프레임워크에 대한 비전 초안 1 18 홉 거리(따라서 최악의 대기 시간)가 네트워크 크기의 대수만큼만 증가하는지 확인합니다. (Kademlia와 유사한 프로토콜 [13]이 여기서 도움이 될 수 있습니다) 또는 반드시 피어 세트를 유지하기 위해 필요한 연결 협상이 이루어질 수 있도록 더 긴 블록 시간을 도입합니다. 노드의 현재 통신 요구 사항을 반영합니다. 둘 다 훌륭한 솔루션은 아닙니다: 긴 블록 시간 네트워크에 강제로 연결하면 네트워크가 쓸모없게 될 수 있습니다. 특정 애플리케이션 및 체인. 완벽하게 공평한 것조차 연결된 네트워크는 상당한 낭비를 초래합니다. 관심 없는 노드로 인해 대역폭이 확장됩니다. 쓸모없는 데이터를 전달합니다. 양방향이 솔루션의 일부가 될 수 있지만, 지연 시간을 최소화하는 데 도움이 되는 합리적인 최적화는 이러한 파라체인의 변동성을 제한해야 합니다 validator 세트, 일련의 블록 사이에서만 멤버십을 재할당하거나(예: 4초에 15개의 그룹으로) 차단 시간은 연결을 1회에 한 번만 변경하는 것을 의미합니다. 분) 또는 증분 방식으로 멤버십을 순환합니다. 한 번에 한 멤버씩 변경(예: 각 파라체인에 15개의 validator이 할당되어 있으며, 평균적으로 완전히 고유한 파라체인 사이에는 1분이 걸립니다. 세트). 피어 이탈의 양을 제한하고 유리한 피어 연결이 잘 이루어지도록 보장함으로써 파라체인의 부분적인 예측 가능성을 통해 발전 세트를 통해 각 노드가 영구적으로 유지되도록 도울 수 있습니다. 우연한 동료 선택. 6.8.2. 효과적인 네트워크 프로토콜에 대한 경로. 아마도 가장 효과적이고 합리적인 개발 노력은 롤링보다는 기존 프로토콜을 활용하는 데 중점을 둘 것입니다. 우리 자신. 여러 P2P 기본 프로토콜이 존재합니다. Ethereum의 자체 devp2p를 포함하여 사용하거나 강화할 수 있습니다. [22], IPFS의 libp2p [1] 및 GNU의 GNUnet [4]. 이러한 프로토콜과 프로토콜 구축과의 관련성에 대한 전체 검토 특정 구조적 보장, 동적 피어 조정 및 확장 가능한 하위 프로토콜을 지원하는 모듈형 피어 네트워크 이 문서의 범위를 훨씬 벗어나지만 Polkadot 구현의 중요한 단계입니다. 7. 프로토콜의 실용성 7.1. 인터체인 거래 결제. 훌륭한 동안 Ethereum의 가스와 같은 전체적인 계산 리소스 회계 프레임워크에 대한 필요성을 없애면 상당한 자유와 단순성을 얻을 수 있습니다. 이는 중요한 질문을 제기합니다. 가스 없이 하나의 파라체인을 어떻게 수행할 수 있습니까? 다른 파라체인이 강제로 계산을 수행하는 것을 방지하시겠습니까? 우리는 트랜잭션-포스트 수신 큐에 의존할 수 있지만 한 체인이 다른 체인에 스팸을 보내는 것을 방지하는 버퍼 트랜잭션 데이터에는 트랜잭션 처리의 스팸을 방지하기 위해 프로토콜에서 제공하는 동등한 메커니즘이 없습니다. 이는 더 높은 수준에 맡겨진 문제이다. 체인 이후 들어오는 항목에 임의의 의미를 자유롭게 첨부할 수 있습니다. 거래 후 데이터를 통해 우리는 계산을 보장할 수 있습니다. 시작하기 전에 비용을 지불해야 합니다. 와 비슷한 맥락으로 Ethereum Serenity가 지지하는 모델, 우리는 상상할 수 있습니다 파라체인 내의 "침입" 계약을 통해 validator는 다음과 같은 대가로 지불을 보장받습니다. 특정 양의 처리 자원 제공. 이러한 자원은 가스와 같은 것으로 측정될 수 있습니다. 그러나 주관적인 실행 시간이나 Bitcoin과 같은 정액 요금 모델과 같은 완전히 새로운 모델일 수도 있습니다. 이는 오프체인 호출자가 사용할 수 있다고 쉽게 가정할 수 없기 때문에 그 자체로는 그다지 유용하지 않습니다. 침입에 의해 인식되는 모든 가치 메커니즘 계약. 그러나 소스 체인에서 2차 "돌파" 계약을 상상할 수 있습니다. 두 계약은 함께 다리를 형성하여 서로를 인식하고 가치 동등성을 제공합니다. (스테이킹-tokens, 사용 가능 각각은 국제수지 정산에 사용될 수 있습니다.) 다른 체인을 호출하는 것은 프록시를 의미합니다. 이 다리를 통해 체인 간의 가치 이전을 협상하여 대상 파라체인에 필요한 계산 리소스에 대한 비용을 지불합니다. 7.2. 추가 체인. 동안 는 추가 의 에 파라체인은 상대적으로 저렴한 운영이지만 무료는 아닙니다. 파라체인이 많을수록 파라체인당 validator 수가 줄어듭니다. 그리고 결국에는 더 많은 수의 validator이 각각 평균 채권 감소. 파라체인 공격에 대한 강제 비용이 더 작아지는 문제는 다음을 통해 완화됩니다. 어부 여러분, 성장하는 validator 세트는 본질적으로 기본 합의 메커니즘으로 인해 더 높은 수준의 대기 시간그래. 게다가 각 파라체인 validators에게 슬픔을 안겨줄 가능성이 있습니다. 과도한 부담을 주는 검증 알고리즘. 따라서 validators의 "가격"이 있을 것입니다. 및/또는 지분 보유 커뮤니티는 새로운 파라체인 추가. 이 체인 시장은 아마도 다음 중 하나가 추가된 것을 볼 수 있습니다: • 일부로 만들기 위해 지불하는 순 기여금(staking tokens 잠금 또는 소각 측면에서)이 0일 가능성이 있는 체인(예: 컨소시엄 체인, Doge 체인, 앱별 체인); • 네트워크에 본질적인 가치를 제공하는 체인 특정 기능을 추가하는 것은 어렵습니다. 다른 곳으로 이동하기 위해(예: 기밀성, 내부 확장성, 서비스 연계) 본질적으로 이해관계자 커뮤니티는 다음을 수행해야 합니다. 재정적으로나 경제적으로 하위 체인을 추가하도록 인센티브를 받을 수 있습니다. 릴레이에 특징적인 체인을 추가하려는 욕구를 통해. 새로운 체인이 추가되면 매우 큰 효과를 얻을 것으로 예상됩니다. 제거를 위한 짧은 통지 기간으로 인해 새로운 체인이 손상될 위험 없이 실험을 수행할 수 있습니다. 중장기적 가치 제안. 8. 결론 우리는 저자가 취할 수 있는 방향을 설명했습니다. 기존의 특정 체인과 역호환이 가능한 확장 가능한 이종 다중 체인 프로토콜 blockchain 네트워크. 이러한 프로토콜에 따라 참가자는 기존 사용자에게 일반적인 비용을 들이지 않고 매우 자유로운 방식으로 확장할 수 있는 전체 시스템을 만들기 위해 계몽된 사리사욕을 바탕으로 작업합니다. 표준 blockchain 디자인에서 나옵니다. 우리는 주었다 다음을 포함하여 필요한 아키텍처의 대략적인 개요 참가자의 성격, 경제적 인센티브 그리고 그들이 참여해야 하는 프로세스. 우리는 기본 디자인을 파악하고 그 장점에 대해 논의했습니다. 제한 사항; 따라서 우리는 더 많은 방향을 가지고 있습니다. 이러한 제한을 완화하고 완전히 확장 가능한 blockchain 솔루션을 향한 추가 기반을 마련할 수 있습니다.POLKADOT: 이종 다중 체인 프레임워크에 대한 비전 초안 1 19 8.1. 누락된 자료 및 공개 질문. 네트워크 분기는 프로토콜의 다양한 구현으로 인해 항상 가능합니다. 그러한 것으로부터의 회복 예외적인 상황은 논의되지 않았습니다. 네트워크가 반드시 0이 아닌 최종화 기간을 갖는다는 점을 고려하면, 릴레이체인 분기에서 복구하는 것은 큰 문제가 되지 않지만 합의 프로토콜. 채권 몰수와 반대로 보상 제공은 깊게 탐구되지 않았습니다. 현재 우리는 보상을 가정합니다. 승자독식 원칙에 따라 제공됩니다. 그렇지 않을 수도 있습니다. 어부들에게 최고의 인센티브 모델을 제공합니다. 단기간 커밋-공개 프로세스를 통해 많은 어부들이 보다 공정한 보상 분배를 통해 상금을 청구하고, 그러나 프로세스로 인해 추가 대기 시간이 발생할 수 있습니다. 잘못된 행동 발견. 8.2. 감사의 말씀. 많은 분들께 감사드립니다. 막연하게 이 문제를 이해하는 데 도움을 준 교정자들 표현 가능한 모양. 특히 Peter Czaban, Bj¨orn 바그너, 켄 카플러, 로버트 하버마이어, 비탈릭 부테린, 레토 트링클러, 잭 피터슨. 모두에게 감사드립니다 아이디어나 시작에 기여한 사람들 그 중에서도 Marek Kotewicz와 Aeron Buchanan은 특별히 언급할 가치가 있습니다. 그리고 도움을 주신 다른 모든 분들께도 감사드립니다 길을 따라. 모든 오류는 내 자신의 것입니다. 초기 연구를 포함한 이 작업의 일부 합의 알고리즘은 영국으로부터 부분적으로 자금을 지원받았습니다. Innovate UK 프로그램에 따른 정부.