Polkadot: Visi untuk Kerangka Multi-Rantai yang Heterogen

Por Gavin Wood · 2016

Resumen

POLKADOT: VISIÓN PARA UN MARCO MULTICADENA HETEROGÉNEO BORRADOR 1 DR. MADERA GAVÍN FUNDADOR, ETHEREUM Y PARIDAD [email protected] Resumen. Todas las arquitecturas blockchain actuales sufren de una serie de problemas, entre ellos los medios prácticos de extensibilidad y escalabilidad. Creemos que esto surge de vincular dos partes muy importantes de la arquitectura del consenso, a saber canonicidad y validez, demasiado juntas. Este artículo presenta una arquitectura, la multicadena heterogénea, lo que fundamentalmente los diferencia. Al compartimentar estas dos partes y mantener la funcionalidad general proporcionada al mínimo absoluto de seguridad y transporte, introducimos medios prácticos de extensibilidad del núcleo in situ. La escalabilidad se aborda mediante un enfoque de divide y vencerás para estas dos funciones, ampliando su núcleo vinculado a través de la incentivación de Nodos públicos que no son de confianza. La naturaleza heterogénea de esta arquitectura permite que muchos tipos muy divergentes de sistemas de consenso interoperen en una “federación” totalmente descentralizada y sin confianza, lo que permite que las redes abiertas y cerradas tengan acceso libre de confianza a unos a otros. Proponemos un medio para proporcionar compatibilidad con versiones anteriores de una o más redes preexistentes, como Ethereum. Creemos que un sistema de este tipo proporciona un componente básico útil en la búsqueda general de una solución prácticamente sistema implementable capaz de alcanzar niveles de escalabilidad y privacidad de comercio global. 1. Prefacio Este pretende ser un resumen técnico de la “visión” de una posible dirección que se puede tomar para seguir desarrollando el paradigma blockchain junto con alguna justificación de por qué esta dirección es sensata. Se establece en Tantos detalles como sea posible en esta etapa de desarrollo. un sistema que puede dar una mejora concreta en un número de aspectos de la tecnología blockchain. No pretende ser una especificación, formal o de otro tipo. No pretende ser exhaustivo ni ser un diseño final. No pretende cubrir aspectos no esenciales. del marco, como API, enlaces, lenguajes y uso. Esto es notablemente experimental; donde los parámetros se especifican, es probable que cambien. Los mecanismos agregarse, refinarse y eliminarse en respuesta a las necesidades de la comunidad. ideas y críticas. Es probable que gran parte de este documento ser revisado a medida que la evidencia experimental y la creación de prototipos proporcionen información sobre qué funcionará y qué no. Este documento incluye una descripción básica del protocolo junto con ideas de direcciones que se pueden tomar. para mejorar diversos aspectos. Se prevé que el núcleo La descripción se utilizará como punto de partida para una evaluación inicial. serie de pruebas de concepto. Una “versión 1.0” final sería basado en este protocolo refinado junto con las ideas adicionales que se prueban y están decididas a implementar. necesarios para que el proyecto alcance sus objetivos. 1.1. Historia. • 10/09/2016: 0.1.0-prueba1 • 20/10/2016: 0.1.0-prueba2 • 11/01/2016: 0.1.0-prueba3 • 11/10/2016: 0.1.0 2. Introducción Las cadenas de bloques han demostrado ser muy prometedoras en cuanto a utilidad en varios campos, incluido el "Internet de las cosas". (IoT), finanzas, gobernanza, gestión de identidades, descentralización web y seguimiento de activos. Sin embargo, a pesar de la promesa tecnológica y gran charla, todavía tenemos que ver implementación significativa en el mundo real de la tecnología actual. Creemos que esto se debe a cinco fallos clave del presente pilas de tecnología: Escalabilidad: cuántos recursos se gastan globalmente sobre procesamiento, ancho de banda y almacenamiento para que el sistema procese una sola transacción y cuántas las transacciones pueden procesarse razonablemente bajo condiciones pico? Aislabilidad: ¿Pueden las necesidades divergentes de múltiples ¿Las partes y las solicitudes se abordarán en un grado casi óptimo bajo el mismo marco? Desarrollabilidad: ¿Qué tan bien funcionan las herramientas? hacer ¿Las API abordan las necesidades de los desarrolladores? ¿Hay materiales educativos disponibles? ¿Existen las integraciones adecuadas? Gobernanza: ¿Puede la red seguir siendo flexible ante ¿Evolucionar y adaptarse con el tiempo? ¿Pueden las decisiones ser hecho con suficiente inclusividad, legitimidad y transparencia para proporcionar un liderazgo efectivo de una ¿Sistema descentralizado? Aplicabilidad: ¿La tecnología realmente aborda una necesidad urgente por sí sola? ¿Se requiere otro “middleware” para cerrar la brecha con aplicaciones reales? En el presente trabajo pretendemos abordar los dos primeros Cuestiones: escalabilidad y aislabilidad. Dicho esto, creemos el marco Polkadot puede proporcionar mejoras significativas en cada una de estas clases de problemas. Implementaciones modernas y eficientes blockchain como el cliente Parity Ethereum [17] puede procesareses en exceso de 3000 transacciones por segundo cuando se ejecuta en hardware de consumo de alto rendimiento. Sin embargo, el mundo real actual Las redes blockchain están prácticamente limitadas a unas 30 transacciones por segundo. Esta limitación se origina principalmente en el hecho de que los actuales mecanismos de consenso sincrónico requieren amplios márgenes temporales de seguridad en el tiempo de procesamiento esperado, que se ve agravado por el 1

Abstrak

POLKADOT: VISI KERANGKA MULTI-RANTAI HETEROGEN DRAFT 1 dr. KAYU GAVIN PENDIRI, ETHEREUM & PARITAS [email protected] Abstrak. Arsitektur blockchain saat ini semuanya mengalami sejumlah masalah, paling tidak dalam hal praktik ekstensibilitas dan skalabilitas. Kami percaya hal ini berasal dari pengikatan dua bagian yang sangat penting dari arsitektur konsensus, yaitu: kanonikalitas dan validitas, terlalu erat hubungannya. Makalah ini memperkenalkan arsitektur, multi-rantai heterogen, yang pada dasarnya membedakan keduanya. Dengan mengelompokkan kedua bagian ini, dan dengan menjaga keseluruhan fungsi yang disediakan seminimal mungkin keamanan dan transportasi, kami memperkenalkan sarana praktis perluasan inti di lokasi. Skalabilitas diatasi melalui pendekatan bagi-dan-taklukkan kedua fungsi ini, dengan memperluas fungsi inti yang terikat melalui insentif node publik yang tidak tepercaya. Sifat heterogen dari arsitektur ini memungkinkan banyak jenis sistem konsensus yang sangat berbeda untuk saling beroperasi dalam “federasi” yang tidak dapat dipercaya dan sepenuhnya terdesentralisasi, memungkinkan jaringan terbuka dan tertutup untuk memiliki akses bebas kepercayaan ke satu sama lain. Kami mengedepankan sarana untuk menyediakan kompatibilitas mundur dengan satu atau lebih jaringan yang sudah ada seperti Ethereum. Kami percaya bahwa sistem seperti itu menyediakan komponen tingkat dasar yang berguna dalam pencarian keseluruhan secara praktis sistem yang dapat diterapkan yang mampu mencapai tingkat skalabilitas dan privasi perdagangan global. 1. Kata Pengantar Hal ini dimaksudkan sebagai ringkasan “visi” teknis satu kemungkinan arah yang dapat diambil dalam mengembangkan lebih lanjut paradigma blockchain beserta beberapa alasan mengapa arah ini masuk akal. Itu diatur dalam sedetail mungkin pada tahap pengembangan ini suatu sistem yang dapat memberikan perbaikan nyata pada a sejumlah aspek teknologi blockchain. Hal ini tidak dimaksudkan sebagai spesifikasi, formal atau lainnya. Hal ini tidak dimaksudkan untuk menjadi komprehensif atau a desain akhir. Hal ini tidak dimaksudkan untuk mencakup aspek-aspek non-inti kerangka kerja seperti API, binding, bahasa, dan penggunaan. Ini terutama bersifat eksperimental; di mana parameter ditentukan, kemungkinan besar akan berubah. Mekanisme akan melakukannya ditambahkan, disempurnakan, dan dihapus sebagai respons terhadap komunitas ide dan kritik. Kemungkinan besar sebagian besar makalah ini akan membahasnya direvisi sesuai bukti eksperimental dan pemberian prototipe kami informasi tentang apa yang akan berhasil dan apa yang tidak. Dokumen ini mencakup uraian inti protokol beserta gagasan arah yang dapat diambil untuk memperbaiki berbagai aspek. Hal ini dibayangkan sebagai inti deskripsi akan digunakan sebagai titik awal untuk inisial serangkaian pembuktian konsep. “Versi 1.0” terakhir adalah didasarkan pada protokol yang disempurnakan ini bersama dengan ide-ide tambahan yang telah terbukti dan bertekad untuk itu diperlukan agar proyek dapat mencapai tujuannya. 1.1. Sejarah. • 09/10/2016: 0.1.0-bukti1 • 20/10/2016: 0.1.0-bukti2 • 01/11/2016: 0.1.0-bukti3 • 11/10/2016: 0.1.0 2. Pendahuluan Blockchain telah menunjukkan manfaat yang besar di beberapa bidang termasuk “Internet of Things” (IoT), keuangan, tata kelola, manajemen identitas, desentralisasi web, dan pelacakan aset. Namun, meskipun demikian janji teknologi dan pembicaraan besar, kita belum melihatnya penyebaran teknologi saat ini yang signifikan di dunia nyata. Kami percaya bahwa hal ini disebabkan oleh lima kegagalan utama yang terjadi saat ini tumpukan teknologi: Skalabilitas: Berapa banyak sumber daya yang dihabiskan secara global pada pemrosesan, bandwidth dan penyimpanan agar sistem dapat memproses satu transaksi dan berapa banyak transaksi dapat diproses secara wajar berdasarkan kondisi puncak? Isolatabilitas: Dapat memenuhi kebutuhan yang berbeda-beda pihak dan permohonan ditangani hingga tingkat yang mendekati optimal dalam kerangka yang sama? Pengembangan: Seberapa baik alat tersebut bekerja? Lakukan apakah API memenuhi kebutuhan pengembang? Apakah materi pendidikan tersedia? Apakah ada integrasi yang tepat? Tata Kelola: Dapatkah jaringan tetap fleksibel terhadap berevolusi dan beradaptasi seiring berjalannya waktu? Bisakah keputusan menjadi dibuat dengan inklusivitas, legitimasi dan transparansi untuk memberikan kepemimpinan yang efektif a sistem desentralisasi? Penerapan: Apakah teknologi tersebut benar-benar mampu menjawab kebutuhan yang mendesak? Apakah “perangkat perantara” lain diperlukan untuk menjembatani kesenjangan tersebut aplikasi sebenarnya? Dalam penelitian ini, kami bertujuan untuk mengatasi dua hal pertama masalah: skalabilitas dan isolasi. Meski begitu, kami percaya kerangka Polkadot dapat memberikan perbaikan yang berarti pada setiap kelompok masalah ini. Implementasi blockchain yang modern dan efisien seperti klien Paritas Ethereum [17] dapat memproseses lebih dari 3.000 transaksi per detik saat dijalankan pada perangkat keras konsumen yang berkinerja baik. Namun, dunia nyata saat ini blockchain jaringan praktis dibatasi sekitar 30 transaksi per detik. Keterbatasan ini terutama berasal dari kenyataan bahwa mekanisme konsensus sinkron yang ada saat ini memerlukan batas waktu keselamatan yang besar waktu pemrosesan yang diharapkan, yang diperburuk oleh 1

Introducción

Las cadenas de bloques han demostrado ser muy prometedoras en cuanto a utilidad en varios campos, incluido el "Internet de las cosas". (IoT), finanzas, gobernanza, gestión de identidades, descentralización web y seguimiento de activos. Sin embargo, a pesar de la promesa tecnológica y gran charla, todavía tenemos que ver implementación significativa en el mundo real de la tecnología actual. Creemos que esto se debe a cinco fallos clave del presente pilas de tecnología: Escalabilidad: cuántos recursos se gastan globalmente sobre procesamiento, ancho de banda y almacenamiento para que el sistema procese una sola transacción y cuántas las transacciones pueden procesarse razonablemente bajo condiciones pico? Aislabilidad: ¿Pueden las necesidades divergentes de múltiples ¿Las partes y las solicitudes se abordarán en un grado casi óptimo bajo el mismo marco? Desarrollabilidad: ¿Qué tan bien funcionan las herramientas? hacer ¿Las API abordan las necesidades de los desarrolladores? ¿Hay materiales educativos disponibles? ¿Existen las integraciones adecuadas? Gobernanza: ¿Puede la red seguir siendo flexible ante ¿Evolucionar y adaptarse con el tiempo? ¿Pueden las decisiones ser hecho con suficiente inclusividad, legitimidad y transparencia para proporcionar un liderazgo efectivo de una ¿Sistema descentralizado? Aplicabilidad: ¿La tecnología realmente aborda una necesidad urgente por sí sola? ¿Se requiere otro “middleware” para cerrar la brecha con aplicaciones reales? En el presente trabajo pretendemos abordar los dos primeros Cuestiones: escalabilidad y aislabilidad. Dicho esto, creemos el marco Polkadot puede proporcionar mejoras significativas en cada una de estas clases de problemas. Implementaciones modernas y eficientes blockchain como el cliente Parity Ethereum [17] puede procesar más de 3000 transacciones por segundo cuando se ejecuta en hardware de consumo de alto rendimiento. Sin embargo, el mundo real actual Las redes blockchain están prácticamente limitadas a unas 30 transacciones por segundo. Esta limitación se origina principalmente en el hecho de que los actuales mecanismos de consenso sincrónico requieren amplios márgenes temporales de seguridad en el tiempo de procesamiento esperado, que se ve agravado por elPOLKADOT: VISIÓN PARA UN MARCO MULTICADENA HETEROGÉNEO BORRADOR 1 2 deseo de soportar implementaciones más lentas. Esto se debe a la arquitectura de consenso subyacente: el mecanismo de transición estatal, o los medios por los cuales los partidos cotejan y ejecutar transacciones, tiene su lógica fundamentalmente ligada en el mecanismo de “canonicalización” por consenso, o el Medio por el cual las partes acuerdan uno de varios historias posibles y válidas. Esto se aplica igualmente a los sistemas proof-of-work (PoW) como Bitcoin [15] y Ethereum [5,23] y a los sistemas de prueba de participación (PoS) como NXT [8] y Bitshares [12]: En última instancia, todos sufren la misma desventaja. es un sencillo estrategia que ayudó a que blockchains fuera un éxito. Sin embargo, acoplando firmemente estos dos mecanismos en una sola unidad del protocolo, también agrupamos múltiples diferentes actores y aplicaciones con diferentes perfiles de riesgo, diferentes requisitos de escalabilidad y diferentes necesidades de privacidad. Una talla única no sirve para todos. Con demasiada frecuencia ocurre que en un deseo de un amplio atractivo, una red adopta un grado de conservadurismo que resulta en un mínimo común denominador. servir de manera óptima a unos pocos y, en última instancia, conducir a un fracaso en la capacidad de innovar, actuar y adaptarse, a veces dramáticamente. Algunos sistemas como p.e. Factom [21] elimina por completo el mecanismo de transición de estado. Sin embargo, gran parte de los La utilidad que deseamos requiere la capacidad de cambiar de estado. según una máquina de estados compartida. Soltándolo se resuelve un problema alternativo; no proporciona una alternativa solución. Por lo tanto, parece claro que una dirección razonable explorar como una ruta hacia una computación descentralizada escalable plataforma es desacoplar la arquitectura de consenso de el mecanismo de transición estatal. Y, tal vez como era de esperar, esta es la estrategia que adopta Polkadot como solución a la escalabilidad. 2.1. Protocolo, Implementación y Red. Me gusta Bitcoin y Ethereum, Polkadot se refiere a la vez a un protocolo de red y al protocolo primario (hasta ahora presupuesto) red pública que ejecuta este protocolo. Polkadot pretende ser un proyecto gratuito y abierto, la especificación del protocolo está bajo una licencia Creative Commons y el el código se coloca bajo una licencia FLOSS. El proyecto es desarrollado de manera abierta y acepta contribuciones dondequiera que sean útiles. Un sistema de RFC, no muy diferente las propuestas de mejora de Python, permitirán un medio de colaborar públicamente en cambios y actualizaciones de protocolos. Nuestra implementación inicial del protocolo Polkadot se conocerá como Plataforma Parity Polkadot y se incluir una implementación de protocolo completa junto con API fijaciones. Al igual que otras implementaciones de Parity blockchain, PPP está diseñado para ser una pila de tecnología blockchain de uso general, no exclusivamente para una red pública ni para operación privada/consorcio. El desarrollo del mismo así hasta ahora ha sido financiado por varios partidos, incluso a través de una subvención del gobierno británico. No obstante, este documento describe Polkadot bajo el contexto de una red pública. La funcionalidad que imaginamos en una red pública es un superconjunto de la requerida en entornos alternativos (por ejemplo, privados y/o consorcios). Además, en este contexto, el alcance completo de Polkadot puede ser descritos y discutidos más claramente. Esto significa El lector debe ser consciente de que ciertos mecanismos pueden describirse (por ejemplo, interoperación con otras redes públicas) que no sean directamente relevantes para Polkadot cuando se implementa en situaciones no públicas (“permitidas”). 2.2. Trabajo anterior. Se ha propuesto informalmente desvincular el consenso subyacente de la transición estatal en privado durante al menos dos años: Max Kaye fue un defensor de tal estrategia durante los primeros días de Ethereum. Una solución escalable más compleja conocida como Chain fibras, que se remonta a junio de 2014 y se publicó por primera vez más tarde ese año1, defendió una única cadena de relés y múltiples cadenas homogéneas que proporcionaran un mecanismo de ejecución transparente entre cadenas. La decoherencia fue pagada a través de la latencia de transacciones: transacciones que requieren la La coordinación de porciones dispares del sistema tomar más tiempo para procesar. Polkadot toma gran parte de su arquitectura de eso y de las conversaciones de seguimiento con varias personas, aunque difiere mucho en gran parte de su diseño y prestaciones. Si bien no existen sistemas comparables a Polkadot actualmente en producción, varios sistemas de cierta relevancia Se han propuesto, aunque pocos en un nivel sustancial de detalle. Estas propuestas pueden serdividido en sistemas que abandonan o reducen la noción de un mundo globalmente coherente. máquina de estados, aquellas que intentan proporcionar una máquina singleton coherente a través de fragmentos homogéneos y aquellos que apuntan únicamente a la heterogeneidad. 2.2.1. Sistemas sin Estado Global. Factom [21] es un sistema que demuestra canonicidad sin el acuerdo validez, permitiendo efectivamente la crónica de los datos. Debido a la evitación del estado global y las dificultades Con la escala que esto trae, se puede considerar una solución escalable. Sin embargo, como se mencionó anteriormente, el conjunto de problemas que resuelve es estricta y sustancialmente menor. Tangle [18] es un enfoque novedoso para los sistemas de consenso. En lugar de organizar las transacciones en bloques y formar consenso sobre una lista estrictamente vinculada para dar un orden canónico global de los cambios de estado, abandona en gran medida la idea de un ordenamiento fuertemente estructurado y en su lugar impulsa un gráfico acíclico dirigido de transacciones dependientes con elementos posteriores que ayuden a canonicalizar elementos anteriores mediante referencias explícitas. Para cambios de estado arbitrarios, este gráfico de dependencia rápidamente se volvería intratable, sin embargo, para el modelo UTXO2 mucho más simple, esto se convierte en bastante razonable. Debido a que el sistema sólo es vagamente coherente y las transacciones son generalmente independientes entre sí Por otra parte, una gran cantidad de paralelismo global se vuelve bastante naturales. Usar el modelo UTXO tiene el efecto de limitar Tangle a una “moneda” puramente de transferencia de valor sistema en lugar de algo más general o extensible. Además, sin la estricta coherencia global, la interacción con otros sistemas (que tienden a necesitar un control absoluto) Un grado de conocimiento sobre el estado del sistema se vuelve poco práctico. 1https://github.com/ethereum/wiki/wiki/Chain-Fibers-Redux 2salida de transacción no gastada, el modelo que utiliza Bitcoin mediante el cual el estado es efectivamente el conjunto de direcciones asociadas con algún valor; Las transacciones recopilan dichas direcciones y las transforman en un nuevo conjunto de direcciones cuya suma total es equivalente.

POLKADOT: VISIÓN PARA UN MARCO MULTICADENA HETEROGÉNEO BORRADOR 1 3 2.2.2. Sistemas de cadenas heterogéneas. Las cadenas laterales [3] son una adición propuesta al protocolo Bitcoin que permitiría una interacción sin confianza entre la cadena principal Bitcoin y cadenas laterales adicionales. No hay ninguna disposición para ningún grado de interacción "rica" entre cadenas laterales: la interacción se limitaría a permitir que las cadenas laterales se custodios de los activos de cada uno, efectuando, en el ámbito local, jerga: una vinculación bidireccional 3. La visión final es la de un marco en el que la moneda Bitcoin pueda recibir funcionalidad adicional, si es periférica, mediante su vinculación en algunas otras cadenas con transición de estado más exótica sistemas que los que permite el protocolo Bitcoin. En este sentido, las cadenas laterales abordan la extensibilidad en lugar de la escalabilidad. De hecho, fundamentalmente no existe ninguna disposición sobre la validez de las cadenas laterales; tokens de una cadena (por ejemplo, Bitcoin) mantenidos en nombre de una cadena lateral están asegurados sólo por el la capacidad de la cadena lateral para incentivar a los mineros a canonicalizar transiciones válidas. La seguridad de la red Bitcoin no se puede hacer fácilmente la transición para trabajar en nombre de otros blockchains. Además, un protocolo para garantizar Bitcoin los mineros fusionan la mina (es decir, duplican su poder de canonicalización en el de la cadena lateral) y, lo que es más importante, validan que las transiciones de la cadena lateral estén fuera del alcance de esta propuesta. Cosmos [10] es un sistema multicadena propuesto en el Lo mismo que las cadenas laterales, intercambiando el PoW de Nakamoto. Método de consenso para el algoritmo Tendermint de Jae Kwon. Esencialmente, describe múltiples cadenas (que operan en zonas) cada una utilizando instancias individuales de Tendermint, junto con un medio para la comunicación libre de confianza a través de un cadena del cubo maestro. Esta comunicación entre cadenas se limita a la transferencia de activos digitales ("específicamente acerca de tokens") en lugar de información arbitraria; sin embargo, dicha comunicación entre cadenas tiene una ruta de retorno para los datos. por ej. informar al remitente sobre el estado de la transferencia. Conjuntos de validadores para las cadenas zonificadas y, en particular, los medios para incentivarlos, quedan, como cadenas laterales, como un problema no resuelto. La suposición general es que cada cadena zonificada tendrá un token de valor cuya inflación se utiliza para pagar validators. Aún en las primeras etapas de diseño, en la actualidad la propuesta carece de detalles completos sobre los medios económicos para lograr el escalable certeza sobre la validez global. Sin embargo, la escasa coherencia requerida entre las zonas y el centro permitirá para mayor flexibilidad sobre los parámetros de la zona cadenas en comparación con la de un sistema que impone medidas más estrictas. coherencia. 2.2.3. Casper. Hasta el momento no hay una revisión exhaustiva ni una comparación lado a lado entre Casper [6] y Polkadot Se han hecho, aunque se puede hacer un análisis bastante amplio. (y en consecuencia inexacta) caracterización de los dos. Casper es una reinvención de cómo funciona un algoritmo de consenso PoS podría basarse en que los participantes apuesten en qué bifurcación finalmente se volvería canónico. Se prestó especial atención a garantizar que fuera robusto para la red. se bifurca, incluso cuando es prolongado, y tiene cierto grado adicional de escalabilidad además del modelo básico Ethereum. como Casper hasta la fecha ha tendido a ser un personaje sustancialmente más protocolo más complejo que Polkadot y sus antepasados, y un desviación sustancial del formato básico blockchain. eso Aún no se sabe cómo repetirá Casper en el futuro. y cómo se verá si finalmente se implementa. Si bien Casper y Polkadot representan nuevos protocolos interesantes y, en cierto sentido, aumentos de Ethereum, existen diferencias sustanciales entre sus objetivos finales y caminos hacia el despliegue. Casper es un Ethereum Proyecto centrado en la cimentación diseñado originalmente ser una alteración de PoS al protocolo sin deseo de cree un blockchain fundamentalmente escalable. Fundamentalmente, es diseñado para ser un hard-fork, en lugar de algo más expansivo y, por lo tanto, todos los Ethereum clientes y usuarios serían requerido actualizar o permanecer en una bifurcación de adopción incierta. Como tal, el despliegue se hace sustancialmente más difícil, como es inherente a un proyecto descentralizado donde es necesaria la coordinación. Polkadot difiere en varios aspectos; ante todo, Polkadot está diseñado para ser totalmente extensible y escalable. blockchain prueba de desarrollo, implementación e interacción cama. Está diseñado para ser un arnés en gran medida preparado para el futuro, capaz de asimilar nuevo blockchaintecnología a medida que esté disponible sin una coordinación descentralizada demasiado complicada o bifurcaciones duras. Ya imaginamos varios casos de uso como como cadenas de consorcio cifradas y cadenas de alta frecuencia con tiempos de bloqueo muy bajos que no son realistas de hacer en cualquier versión futura de Ethereum actualmente prevista. Finalmente, el acoplamiento entre él y Ethereum es extremadamente suelto; no es necesaria ninguna acción por parte de Ethereum para permitir el reenvío de transacciones sin confianza entre los dos redes. En resumen, mientras Casper/Ethereum 2.0 y Polkadot comparten algunas similitudes fugaces, creemos que su objetivo final es sustancialmente diferente y que en lugar de competir, Es probable que en última instancia los dos protocolos coexistan bajo un relación mutuamente beneficiosa en el futuro previsible.

Perkenalan

Blockchain telah menunjukkan manfaat yang besar di beberapa bidang termasuk “Internet of Things” (IoT), keuangan, tata kelola, manajemen identitas, desentralisasi web, dan pelacakan aset. Namun, meskipun demikian janji teknologi dan pembicaraan besar, kita belum melihatnya penyebaran teknologi saat ini yang signifikan di dunia nyata. Kami percaya bahwa hal ini disebabkan oleh lima kegagalan utama yang terjadi saat ini tumpukan teknologi: Skalabilitas: Berapa banyak sumber daya yang dihabiskan secara global pada pemrosesan, bandwidth dan penyimpanan agar sistem dapat memproses satu transaksi dan berapa banyak transaksi dapat diproses secara wajar berdasarkan kondisi puncak? Isolatabilitas: Dapat memenuhi kebutuhan yang berbeda-beda pihak dan permohonan ditangani hingga tingkat yang mendekati optimal dalam kerangka yang sama? Pengembangan: Seberapa baik alat tersebut bekerja? Lakukan apakah API memenuhi kebutuhan pengembang? Apakah materi pendidikan tersedia? Apakah ada integrasi yang tepat? Tata Kelola: Dapatkah jaringan tetap fleksibel terhadap berevolusi dan beradaptasi seiring berjalannya waktu? Bisakah keputusan menjadi dibuat dengan inklusivitas, legitimasi dan transparansi untuk memberikan kepemimpinan yang efektif a sistem desentralisasi? Penerapan: Apakah teknologi tersebut benar-benar mampu menjawab kebutuhan yang mendesak? Apakah “perangkat perantara” lain diperlukan untuk menjembatani kesenjangan tersebut aplikasi sebenarnya? Dalam penelitian ini, kami bertujuan untuk mengatasi dua hal pertama masalah: skalabilitas dan isolasi. Meski begitu, kami percaya kerangka Polkadot dapat memberikan perbaikan yang berarti pada setiap kelompok masalah ini. Implementasi blockchain yang modern dan efisien seperti klien Paritas Ethereum [17] dapat memproses lebih dari 3.000 transaksi per detik saat dijalankan pada perangkat keras konsumen yang berkinerja baik. Namun, dunia nyata saat ini blockchain jaringan praktis dibatasi sekitar 30 transaksi per detik. Keterbatasan ini terutama berasal dari kenyataan bahwa mekanisme konsensus sinkron yang ada saat ini memerlukan batas waktu keselamatan yang besar waktu pemrosesan yang diharapkan, yang diperburuk olehPOLKADOT: VISI KERANGKA MULTI-RANTAI HETEROGEN DRAFT 1 2 keinginan untuk mendukung implementasi yang lebih lambat. Hal ini disebabkan oleh arsitektur konsensus yang mendasarinya: mekanisme transisi negara, atau cara para pihak berkolaborasi dan mengeksekusi transaksi, logikanya terikat secara fundamental ke dalam mekanisme “kanonikalisasi” konsensus, atau cara yang digunakan para pihak untuk menyepakati salah satu dari beberapa hal mungkin, valid, sejarah. Hal ini berlaku sama untuk sistem proof-of-work (PoW) seperti Bitcoin [15] dan Ethereum [5,23] dan sistem proof-of-stake (PoS) seperti NXT [8] dan Bitshares [12]: semua pada akhirnya menderita cacat yang sama. Ini sederhana strategi yang membantu membuat blockchains sukses. Namun, dengan menggabungkan kedua mekanisme ini secara erat menjadi satu unit protokol, kami juga menggabungkan beberapa protokol yang berbeda aktor dan aplikasi dengan profil risiko berbeda, persyaratan skalabilitas berbeda, dan kebutuhan privasi berbeda. Satu ukuran tidak cocok untuk semua. Seringkali terjadi bahwa dalam a keinginan untuk mendapatkan daya tarik yang luas, suatu jaringan mengadopsi tingkat konservatisme yang menghasilkan kesamaan yang paling rendah secara optimal hanya melayani segelintir orang dan pada akhirnya berujung pada kegagalan dalam kemampuan untuk berinovasi, melakukan dan beradaptasi, terkadang secara dramatis begitu. Beberapa sistem seperti mis. Factom [21] menghilangkan mekanisme transisi status sama sekali. Namun, sebagian besar utilitas yang kita inginkan memerlukan kemampuan keadaan transisi menurut mesin negara bersama. Menjatuhkannya menyelesaikan masalah masalah alternatif; itu tidak memberikan alternatif solusi. Oleh karena itu, tampak jelas bahwa satu arah yang masuk akal untuk dijelajahi sebagai rute menuju komputasi terdesentralisasi yang dapat diskalakan platform adalah untuk memisahkan arsitektur konsensus dari mekanisme transisi negara. Dan, mungkin tidak mengejutkan, ini adalah strategi yang Polkadot terapkan sebagai solusi terhadap skalabilitas. 2.1. Protokol, Implementasi dan Jaringan. Suka Bitcoin dan Ethereum, Polkadot merujuk sekaligus ke protokol jaringan dan protokol utama (yang sampai sekarang dianggap) jaringan publik yang menjalankan protokol ini. Polkadot dimaksudkan sebagai proyek yang bebas dan terbuka, spesifikasi protokol berada di bawah lisensi Creative Commons dan kode ditempatkan di bawah lisensi FLOSS. Proyeknya adalah dikembangkan secara terbuka dan menerima kontribusi dimanapun mereka berguna. Sebuah sistem RFC, tidak berbeda dengan Proposal Peningkatan Python, akan memungkinkan sarana berkolaborasi secara publik atas perubahan dan peningkatan protokol. Implementasi awal kami terhadap protokol Polkadot akan dikenal sebagai Platform Paritas Polkadot dan akan menyertakan implementasi protokol lengkap bersama dengan API ikatan. Seperti implementasi Paritas blockchain lainnya, PPP dirancang untuk menjadi tumpukan teknologi blockchain yang bertujuan umum, tidak khusus untuk jaringan publik maupun untuk operasi swasta/konsorsium. Perkembangannya demikian sejauh ini telah didanai oleh beberapa pihak termasuk melalui hibah dari pemerintah Inggris. Namun makalah ini menjelaskan Polkadot di bawah konteks jaringan publik. Fungsionalitas yang kami bayangkan dalam jaringan publik adalah superset dari apa yang diperlukan dalam jaringan publik pengaturan alternatif (misalnya swasta dan/atau konsorsium). Selanjutnya dalam konteks ini, seluruh cakupan Polkadot bisa diuraikan dan didiskusikan dengan lebih jelas. Ini berarti pembaca harus menyadari bahwa mekanisme tertentu mungkin terjadi dijelaskan (misalnya interoperasi dengan jaringan publik lainnya) yang tidak relevan secara langsung dengan Polkadot ketika digunakan dalam situasi non-publik (“diizinkan”). 2.2. Pekerjaan sebelumnya. Pemisahan konsensus mendasar dari transisi negara telah diusulkan secara informal secara pribadi selama setidaknya dua tahun—Max Kaye adalah pendukung strategi semacam itu pada masa-masa awal Ethereum. Solusi terukur yang lebih kompleks dikenal sebagai Chain fibers, sejak Juni 2014 dan pertama kali diterbitkan kemudian pada tahun 1, mengajukan kasus untuk satu rantai relai dan beberapa rantai homogen yang menyediakan mekanisme eksekusi antar rantai yang transparan. Dekoherensi dibayar melalui latensi transaksi—transaksi yang memerlukan koordinasi bagian-bagian yang berbeda dari sistem akan membutuhkan waktu lebih lama untuk diproses. Polkadot mengambil sebagian besar arsitekturnya dari itu dan percakapan lanjutannya berbagai orang, meskipun desain dan ketentuannya sangat berbeda. Meskipun tidak ada sistem yang sebanding dengan Polkadot sebenarnya dalam produksi, beberapa sistem yang memiliki relevansi tertentu telah diusulkan, meskipun hanya sedikit pada tingkat substansial detail. Proposal ini bisa sajadipecah menjadi sistem yang menjatuhkan atau mengurangi gagasan koheren secara global mesin negara, mereka yang berupaya menyediakan solusi global mesin tunggal yang koheren melalui pecahan homogen dan yang hanya menargetkan heterogenitas. 2.2.1. Sistem tanpa Negara Global. Factom [21] adalah sistem yang menunjukkan kanonikalitas tanpa penyesuaian validitas, secara efektif memungkinkan pencatatan data. Karena penghindaran keadaan global dan kesulitannya dengan penskalaan yang dihasilkannya, ini dapat dianggap sebagai solusi yang terukur. Namun, seperti disebutkan sebelumnya, himpunan masalah yang dipecahkannya jauh lebih kecil dan ketat. Tangle [18] adalah pendekatan baru terhadap sistem konsensus. Daripada mengatur transaksi-transaksi ke dalam blok-blok dan membentuk konsensus mengenai daftar yang saling terkait untuk memberikan tatanan perubahan negara yang kanonik secara global, mereka lebih banyak meninggalkan gagasan tatanan yang sangat terstruktur dan sebaliknya mendorong grafik asiklik terarah dari transaksi dependen dengan item-item selanjutnya yang membantu mengkanonikalisasi item-item sebelumnya melalui referensi eksplisit. Untuk perubahan keadaan yang sewenang-wenang, grafik ketergantungan ini akan dengan cepat menjadi sulit diselesaikan, namun untuk UTXO model2 yang lebih sederhana ini menjadi cukup masuk akal. Karena sistemnya hanya koheren secara longgar dan transaksi pada umumnya independen satu sama lain Di sisi lain, sejumlah besar paralelisme global menjadi hal yang cukup serius alami. Menggunakan model UTXO memang memiliki efek membatasi Tangle pada “mata uang” transfer nilai murni sistem daripada sesuatu yang lebih umum atau diperluas. Terlebih lagi tanpa koherensi global yang sulit, interaksi dengan sistem lain—yang cenderung membutuhkan hal yang mutlak tingkat pengetahuan atas keadaan sistem—menjadi tidak praktis. 1https://github.com/ethereum/wiki/wiki/Chain-Fibers-Redux 2output transaksi yang tidak terpakai, model yang digunakan Bitcoin dimana status secara efektif adalah kumpulan alamat yang terkait dengan beberapa nilai; transaksi menyusun alamat tersebut dan mengubahnya menjadi kumpulan alamat baru yang jumlah totalnya setara

POLKADOT: VISI KERANGKA MULTI-RANTAI HETEROGEN DRAFT 1 3 2.2.2. Sistem Rantai Heterogen. Rantai samping [3] adalah a mengusulkan penambahan protokol Bitcoin yang akan memungkinkan interaksi tanpa kepercayaan antara rantai Bitcoin utama dan rantai samping tambahan. Tidak ada ketentuan untuk apapun tingkat interaksi 'kaya' antar rantai samping: interaksi akan dibatasi hanya pada rantai samping yang memungkinkan adanya penjaga aset masing-masing, yang berdampak—di tingkat lokal jargon—pasak dua arah 3. Visi akhirnya adalah kerangka kerja di mana mata uang Bitcoin dapat disediakan tambahan, jika bersifat periferal, fungsionalitas melalui mengelompokkannya ke beberapa rantai lain dengan transisi keadaan yang lebih eksotis sistem daripada yang diizinkan oleh protokol Bitcoin. Dalam pengertian ini, rantai samping membahas ekstensibilitas daripada skalabilitas. Memang benar, pada dasarnya tidak ada ketentuan mengenai validitas rantai samping; tokens dari satu rantai (misalnya Bitcoin) yang dipegang atas nama rantai samping hanya diamankan oleh kemampuan rantai samping untuk memberi insentif kepada penambang agar melakukan kanonikalisasi transisi yang valid. Keamanan jaringan Bitcoin tidak dapat dengan mudah dialihkan untuk bekerja atas nama orang lain blockchains. Selanjutnya, protokol untuk memastikan Bitcoin penambang menggabungkan-menambang (yaitu menduplikasi kekuatan kanonikalisasi mereka ke dalam rantai samping) dan, yang lebih penting, memvalidasi transisi rantai samping berada di luar ruang lingkup proposal ini. Cosmos [10] adalah sistem multi-rantai yang diusulkan di nada yang sama seperti rantai samping, menukar PoW Nakamoto metode konsensus untuk algoritma Tendermint Jae Kwon. Pada dasarnya, ini menggambarkan banyak rantai (beroperasi di zona) masing-masing menggunakan contoh Tendermint individual, bersama dengan sarana komunikasi bebas kepercayaan melalui a rantai hub utama. Komunikasi antarrantai ini terbatas pada transfer aset digital (“khususnya tentang tokens”) dan bukan informasi sewenang-wenang, namun komunikasi antarrantai tersebut memiliki jalur balik untuk data, misalnya untuk melaporkan kepada pengirim tentang status transfer. Set validator untuk rantai yang dikategorikan, dan khususnya sarana untuk memberikan insentif kepada mereka, seperti rantai samping, masih tersisa sebagai masalah yang belum terselesaikan. Asumsi umumnya adalah demikian setiap rantai yang dikategorikan akan memiliki nilai sebesar token yang inflasinya digunakan untuk membayar validators. Masih dalam tahap awal dari segi desain, saat ini proposal tersebut kurang memiliki rincian komprehensif mengenai cara ekonomi untuk mencapai skalabel kepastian validitas global. Namun, koherensi longgar yang diperlukan antara zona dan hub akan memungkinkan hal ini untuk fleksibilitas tambahan atas parameter yang dikategorikan rantai dibandingkan dengan sistem yang menegakkan lebih kuat koherensi. 2.2.3. Casper. Belum ada tinjauan komprehensif atau perbandingan berdampingan antara Casper [6] dan Polkadot telah dibuat, meskipun seseorang dapat melakukan penyisiran yang cukup besar (dan karenanya tidak akurat) karakterisasi keduanya. Casper adalah konsep ulang tentang bagaimana algoritma konsensus PoS dapat didasarkan pada peserta yang bertaruh pada garpu yang mana pada akhirnya akan menjadi kanonik. Pertimbangan substansial diberikan untuk memastikan bahwa jaringan tersebut kuat fork, meskipun diperpanjang, dan memiliki tingkat skalabilitas tambahan di atas model dasar Ethereum. Sebagai demikian, Casper hingga saat ini cenderung jauh lebih baik protokol yang kompleks dari Polkadot dan pendahulunya, dan a penyimpangan substansial dari format dasar blockchain. Itu masih belum terlihat bagaimana Casper akan mengulanginya di masa depan dan seperti apa tampilannya jika akhirnya diterapkan. Meskipun Casper dan Polkadot keduanya mewakili protokol baru yang menarik dan, dalam beberapa hal, penambahan Ethereum, ada perbedaan besar di antara keduanya tujuan akhir dan jalur menuju penerapan. Casper adalah seorang Ethereum Proyek yang berpusat pada yayasan awalnya dirancang menjadi perubahan PoS pada protokol tanpa keinginan untuk melakukannya buat blockchain yang secara fundamental dapat diskalakan. Yang terpenting, itu benar dirancang untuk menjadi hard-fork, bukan sesuatu yang lebih ekspansif dan dengan demikian semua Ethereum klien dan pengguna akan menjadi diperlukan untuk meningkatkan atau tetap berada pada jalur adopsi yang tidak pasti. Oleh karena itu, penerapannya menjadi lebih sulit karena hal ini melekat pada proyek yang terdesentralisasi koordinasi sangat diperlukan. Polkadot berbeda dalam beberapa hal; pertama dan terpenting, Polkadot dirancang agar dapat diperluas dan diperluas sepenuhnya blockchain uji pengembangan, penerapan, dan interaksi tempat tidur. Ini dibangun untuk menjadi alat pengaman yang mampu bertahan di masa depan mengasimilasi blockchain baruteknologi yang tersedia tanpa koordinasi desentralisasi yang terlalu rumit atau garpu keras. Kami sudah membayangkan beberapa kasus penggunaan seperti itu seperti rantai konsorsium terenkripsi dan rantai frekuensi tinggi dengan waktu blok yang sangat rendah sehingga tidak realistis untuk dilakukan versi masa depan apa pun dari Ethereum yang saat ini direncanakan. Terakhir, hubungan antara itu dan Ethereum sangatlah luar biasa longgar; tidak diperlukan tindakan apa pun dari Ethereum memungkinkan penerusan transaksi tanpa kepercayaan antara keduanya jaringan. Singkatnya, sementara Casper/Ethereum 2.0 dan Polkadot berbagi beberapa kesamaan sekilas yang kami yakini sebagai tujuan akhirnya sangat berbeda dan daripada bersaing, kedua protokol tersebut kemungkinan besar akan hidup berdampingan di bawah a hubungan yang saling menguntungkan di masa mendatang.

Resumen

Polkadot es una multicadena heterogénea escalable. esto significa que a diferencia de implementaciones anteriores blockchain que se han centrado en proporcionar una única cadena de diferentes grados de generalidad sobre aplicaciones potenciales, Polkadot en sí está diseñado para no proporcionar ninguna funcionalidad inherente a la aplicación. Más bien, Polkadot proporciona la base “cadena de relevos” sobre la cual un gran número de datos validables, Se pueden alojar estructuras de datos dinámicas globalmente coherentes. lado a lado. A estas estructuras de datos las llamamos "paralelizadas". cadenas o paracaídas, aunque no hay una necesidad específica de son blockchain de naturaleza. En otras palabras, Polkadot puede considerarse equivalente a un conjunto de cadenas independientes (por ejemplo, el conjunto que contiene Ethereum, Ethereum Classic, Namecoin y Bitcoin) excepto dos puntos muy importantes: • Seguridad mancomunada; • Transacciones entre cadenas sin confianza. Estos puntos son el motivo por el que consideramos que Polkadot es "escalable". En principio, un problema que se implementará en Polkadot se puede paralelizar sustancialmente (ampliarse) a lo largo de una gran cantidad de paracaídas. Dado que todos los aspectos de cada Parachain puede ser conducido en paralelo por un segmento diferente de la red Polkadot, el sistema tiene cierta capacidad a escala. Polkadot proporciona una pieza bastante básica de 3a diferencia de una vinculación unidireccional que es esencialmente la acción de destruir tokens en una cadena para crear tokens en otra sin el mecanismo para hacer lo contrario para recuperar los tokens originalesPOLKADOT: VISIÓN PARA UN MARCO MULTICADENA HETEROGÉNEO BORRADOR 1 4 infraestructura, dejando que gran parte de la complejidad se aborde en el nivel de middleware. Se trata de una decisión consciente destinada a reducir el riesgo de desarrollo, permitiendo a la Software necesario que debe desarrollarse en un corto período de tiempo. y con un buen nivel de confianza sobre su seguridad y robustez. 3.1. La Filosofía de Polkadot. Polkadot debería proporcionar una base absoluta y sólida sobre la cual construir la próxima ola de sistemas de consenso, a través de El espectro de riesgos de los diseños maduros con capacidad de producción. a las ideas nacientes. Al proporcionar sólidas garantías de seguridad, aislamiento y comunicación, Polkadot puede permitir paracaídas para seleccionar entre una variedad de propiedades. De hecho, prevemos varios blockchains experimentales que impulsan las propiedades de lo que podría considerarse sensato. hoy. Nos vemos conservadores, cadenas de alto valor similares a Bitcoin o Z-cash [20] coexistiendo con valores de menor valor “cadenas temáticas” (qué marketing, tan divertido) y redes de prueba con tarifas cero o casi cero. Vemos completamente encriptado, cadenas de consorcios “oscuras” que operan paralelamente (e incluso Proporcionar servicios a cadenas abiertas y altamente funcionales. como aquellos como Ethereum. Vemos novedades experimentales. Cadenas basadas en VM, como un wasm subjetivo cargado de tiempo La cadena se utiliza como un medio para subcontratar problemas informáticos difíciles de una cadena más madura similar a Ethereum. o una cadena más restringida tipo Bitcoin. Para gestionar las actualizaciones de la cadena, Polkadot inherentemente apoyar algún tipo de estructura de gobernanza, probablemente basada sobre los sistemas políticos estables existentes y que tiene un aspecto bicameral similar al Consejo del Libro Amarillo [24]. como la autoridad última, los tenedores subyacentes de token tendrían el control del “referéndum”. Para reflejar la opinión de los usuarios. necesidad de desarrollo sino la necesidad de legitimidad de los desarrolladores, esperamos que una dirección razonable sería formar las dos cámaras de un comité de “usuarios” (compuesto por bonded validators) y un comité “técnico” formado de los principales desarrolladores de clientes y actores del ecosistema. el El cuerpo de titulares de token mantendría la legitimidad última y formaría una supermayoría para aumentar, reparar, reemplazar o disolver esta estructura, algo que No dudes de la eventual necesidad de: en palabras de Twain. “Los gobiernos y los pañales deben cambiarse con frecuencia, y por la misma razón”. Mientras que la reparametrización suele ser trivial de organizar dentro de un mecanismo de consenso más amplio, cambios más cualitativos como el reemplazo y el aumento serían necesarios. probablemente deban ser “decretos blandos” no automatizados (p. ej. mediante la canonicalización de un número de bloque y la hash de un documento que especifica formalmente el nuevo protocolo) o necesitar que el mecanismo central de consenso contenga un lenguaje suficientemente rico para describir cualquier aspecto de sí mismo que puede necesitar cambiar. Este último es un objetivo eventual, sin embargo, es más probable que se elija el primero para facilitar un cronograma de desarrollo razonable. Los principios principales de Polkadot y las reglas dentro de las cuales evaluamos todas las decisiones de diseño son: Mínimo: Polkadot debe tener la menor funcionalidad posible. Simple: no debe haber ninguna complejidad adicional en el protocolo base de lo que razonablemente puede ser descargado en middleware, colocado a través de un parachain o introducido en una optimización posterior. General: sin requisitos innecesarios, restricciones o se debe imponer una limitación a las paracaídas; Polkadot debería ser un banco de pruebas para el desarrollo de sistemas de consenso que pueda optimizarse a través de hacer que el modelo en el que encajan las extensiones sea lo más abstracto posible. Robusto: Polkadot debería proporcionar una base fundamentalmente capa base estable. Además de la solidez económica, esto también significa descentralizar para minimizar los vectores de ataques de alta recompensa.

Ringkasan

Polkadot adalah multi-rantai heterogen yang dapat diskalakan. Ini artinya tidak seperti implementasi blockchain sebelumnya yang berfokus pada penyediaan satu rantai yang bervariasi tingkat keumuman atas penerapan potensial, Polkadot itu sendiri dirancang untuk tidak menyediakan fungsionalitas aplikasi bawaan sama sekali. Sebaliknya, Polkadot menyediakan batuan dasar "rantai relai" yang menjadi dasar sejumlah besar validasi, struktur data dinamis yang koheren secara global dapat dihosting berdampingan. Kami menyebut struktur data ini “paralel” rantai atau parachain, meskipun tidak ada kebutuhan khusus untuk itu mereka menjadi blockchain di alam. Dengan kata lain, Polkadot dapat dianggap setara dengan himpunan rantai independen (misalnya himpunan yang berisi Ethereum, Ethereum Klasik, Namecoin dan Bitcoin) kecuali dua poin yang sangat penting: • Keamanan gabungan; • kemampuan transaksi antar rantai yang bebas kepercayaan. Poin-poin inilah yang menjadi alasan kami menganggap Polkadot “dapat diskalakan”. Pada prinsipnya, masalah yang akan diterapkan pada Polkadot mungkin secara substansial diparalelkan—diperluas—di atas sejumlah besar parachain. Karena semua aspek masing-masing parachain dapat dilakukan secara paralel oleh segmen berbeda dari jaringan Polkadot, sistem memiliki beberapa kemampuan untuk menskalakan. Polkadot memberikan gambaran yang sederhana 3sebagai lawan dari pasak satu arah yang pada dasarnya adalah tindakan menghancurkan tokens dalam satu rantai untuk membuat tokens di rantai lain tanpa mekanisme untuk melakukan kebalikannya untuk memulihkan tokens yang asliPOLKADOT: VISI KERANGKA MULTI-RANTAI HETEROGEN DRAFT 1 4 infrastruktur meninggalkan banyak kompleksitas yang harus ditangani pada tingkat middleware. Ini adalah keputusan sadar yang dimaksudkan untuk mengurangi risiko pembangunan, sehingga memungkinkan perangkat lunak yang diperlukan untuk dikembangkan dalam rentang waktu singkat dan dengan tingkat keyakinan yang baik atas keamanannya dan ketahanan. 3.1. Filosofi Polkadot. Polkadot seharusnya memberikan landasan yang kuat untuk melakukan hal tersebut membangun gelombang sistem konsensus berikutnya spektrum risiko dari desain matang yang mampu berproduksi pada ide-ide yang baru lahir. Dengan memberikan jaminan yang kuat atas keamanan, isolasi dan komunikasi, Polkadot dapat memungkinkan parachains untuk memilih dari berbagai properti itu sendiri. Memang benar, kami memperkirakan berbagai blockchain eksperimental mendorong sifat-sifat yang dianggap masuk akal hari ini. Kami melihat konservatif, rantai bernilai tinggi serupa dengan Bitcoin atau Z-cash [20] hidup berdampingan dengan nilai yang lebih rendah “rantai tema” (pemasaran seperti itu, sangat menyenangkan) dan jaringan pengujian dengan biaya nol atau mendekati nol. Kami melihat terenkripsi sepenuhnya, “gelap”, rantai konsorsium yang beroperasi berdampingan—dan bahkan menyediakan layanan ke—rantai yang sangat fungsional dan terbuka seperti yang seperti Ethereum. Kami melihat eksperimen baru Rantai berbasis VM seperti wasm bermuatan waktu subjektif rantai digunakan sebagai sarana untuk melakukan outsourcing masalah komputasi yang sulit dari rantai yang lebih matang seperti Ethereum atau rantai mirip Bitcoin yang lebih terbatas. Untuk mengelola peningkatan rantai, Polkadot akan secara inheren mendukung semacam struktur tata kelola, yang mungkin berbasis pada sistem politik stabil yang ada dan memiliki aspek bikameral yang mirip dengan Dewan Kertas Kuning [24]. Sebagai otoritas tertinggi, pemegang saham token yang mendasarinya akan memiliki kendali “referendum”. Untuk mencerminkan pengguna kebutuhan akan pembangunan namun kebutuhan pengembang akan legitimasi, kami berharap akan terbentuknya arah yang masuk akal dua kamar dari komite "pengguna" (terdiri dari terikat validators) dan komite “teknis” dibentuk pengembang klien besar dan pemain ekosistem. Itu badan pemegang token akan mempertahankan legitimasi tertinggi dan membentuk mayoritas super untuk menambah, mengubah parameter, mengganti atau membubarkan struktur ini, sesuatu yang kami jangan meragukan kebutuhan akhir akan hal ini: seperti kata Twain “Pemeran dan popok harus sering diganti, dan untuk itu alasan yang sama”. Meskipun reparameterisasi biasanya mudah dilakukan dalam mekanisme konsensus yang lebih besar, perubahan yang lebih kualitatif seperti penggantian dan augmentasi dapat dilakukan mungkin perlu berupa “keputusan lunak” yang tidak otomatis (mis. melalui kanonikalisasi nomor blok dan hash dari dokumen yang secara resmi menetapkan protokol baru) atau mengharuskan mekanisme konsensus inti untuk memuat a bahasa yang cukup kaya untuk menggambarkan aspek apa pun dari dirinya sendiri yang mungkin perlu diubah. Yang terakhir adalah tujuan akhirnya, Namun, yang pertama lebih mungkin untuk dipilih memfasilitasi jadwal pengembangan yang masuk akal. Prinsip utama Polkadot dan aturan di dalamnya kami mengevaluasi semua keputusan desain adalah: Minimal: Polkadot harus memiliki fungsionalitas sesedikit mungkin. Sederhana: tidak ada kerumitan tambahan yang harus ada dalam protokol dasar daripada yang seharusnya dimuat ke dalam middleware, ditempatkan melalui a parachain atau diperkenalkan dalam optimasi selanjutnya. Umum: tidak ada persyaratan yang tidak perlu, kendala atau pembatasan harus diterapkan pada parachain; Polkadot harus menjadi tempat uji coba untuk pengembangan sistem konsensus yang dapat dioptimalkan melalui membuat model yang sesuai dengan ekstensinya se-abstrak mungkin. Kuat: Polkadot harus memberikan dasar yang mendasar lapisan dasar yang stabil. Selain kesehatan ekonomi, hal ini juga berarti desentralisasi untuk meminimalkan vektor untuk serangan dengan imbalan tinggi.

Participación en Polkadot

Hay cuatro funciones básicas en el mantenimiento de un Polkadot red: recopilador, pescador, nominador y validator. en una posible implementación de Polkadot, este último rol en realidad, puede dividirse en dos roles: básico validator y garante de disponibilidad; esto se discute en la sección 6.5.3. alzador pescador Validadores (este grupo) Validadores (otros grupos) aprueba se convierte monitores informes malo comportamiento hacia proporciona bloque candidatos para Nominador Figura 1. La interacción entre los cuatro roles de Polkadot. 4.1. Validadores. Un validator es el cargo más alto y ayuda a sellar nuevos bloques en la red Polkadot. El papel del validator depende de un vínculo suficientemente alto siendo depositado, aunque permitimos que otras partes vinculadas nominar a uno o más validators para que actúen en su nombre y como tal parte del bono de validator no necesariamente puede ser propiedad del validator mismo sino de estos nominadores. Un validator debe ejecutar una implementación de cliente de cadena de retransmisión con alta disponibilidad y ancho de banda. en cada bloque El nodo debe estar preparado para aceptar el papel de ratificador. un nuevo bloque en una parachain nominada. este proceso Implica recibir, validar y republicar el candidato. bloques. La nominación es determinista pero prácticamente impredecible con mucha antelación. Dado que el validator no puede Se puede esperar razonablemente que mantenga un sistema totalmente sincronizado. base de datos de todas las paracaídas, se espera que validator designe la tarea de diseñar una nueva sugerencia bloque de parachain a un tercero, conocido como alzador. Una vez que todos los nuevos bloques de parachain hayan sido ratificados adecuadamente por sus subgrupos validator designados, validators entonces debe ratificar el propio bloque de la cadena de relevos. Esto implica actualizar el estado de las colas de transacciones (esencialmente mover datos de la cola de salida de una parachain a otra cola de entrada de parachain), procesando las transacciones de el conjunto de transacciones de cadena de retransmisión ratificado y la ratificación del bloque final, incluidos los cambios finales de parachain.POLKADOT: VISIÓN PARA UN MARCO MULTICADENA HETEROGÉNEO BORRADOR 1 5 Un validator que no cumple con su deber de encontrar consenso bajo las reglas de nuestro algoritmo de consenso elegido es castigado. En el caso de fallos iniciales involuntarios, esto se realiza mediante retener la recompensa del validator. Los fallos repetidos resultan en la reducción de su vínculo de seguridad (mediante la quema). Acciones demostrablemente maliciosas como doble firma o conspirar para proporcionar un bloque no válido resultará en la pérdida de todo el bono (que está parcialmente quemado pero en su mayor parte dado al informante y a los actores honestos). En cierto sentido, los validators son similares a los pools de minería. de PoW actuales blockchains. 4.2. Nominadores. Un nominador es una parte interesada quien aporta a la fianza de seguridad de un validator. ellos no tienen ningún papel adicional excepto el de colocar capital de riesgo y como tal para indicar que confían en un validator en particular (o conjunto de los mismos) para actuar responsablemente en el mantenimiento de la red. Reciben un aumento o reducción prorrateada en su depósito según el crecimiento del bono al que ellos contribuyen. Junto con los cotejadores, a continuación, los nominadores están en algunos sentido similar a los mineros de las redes PoW actuales. 4.3. Alzadoras. Clasificadores de transacciones (alzadores para abreviar) son partes que ayudan a validators a producir documentos válidos bloques de paracaídas. Mantienen un "nodo completo" para una paracadena en particular; lo que significa que conservan todo lo necesario información para poder crear nuevos bloques y ejecutar transacciones de la misma manera que lo hacen los mineros en los PoW actuales blockchains. En circunstancias normales, ellos cotejará y ejecutará transacciones para crear un documento no sellado bloquear y proporcionarlo, junto con un conocimiento cero prueba, a uno o más validators actualmente responsables de proponiendo un bloque de parachain. La naturaleza precisa de la relación entre recopiladores, nominadores y validators probablemente cambiará con el tiempo. tiempo. Inicialmente, esperamos que los alzapadores trabajen muy estrechamente con validators, ya que solo habrá unos pocos (quizás solo uno) parachain(s) con poco volumen de transacciones. el La implementación inicial del cliente incluirá RPC para permitir una nodo intercalador de parachain para suministrar incondicionalmente un nodo (cadena de retransmisión) validator con un parachain demostrablemente válido bloque. Como el costo de mantener una versión sincronizada de Todos estos aumentos de paracaídas, esperamos ver más infraestructura existente que ayudará a separar los deberes a partidos independientes y motivados económicamente. Con el tiempo, esperamos ver grupos de clasificadores que compitan por cobrar la mayor cantidad de tarifas de transacción. Dichos recopiladores pueden ser contratados para prestar servicios a validator particulares durante un período de tiempo para obtener una participación continua en los ingresos de la recompensa. Alternativamente, los recopiladores “independientes” pueden simplemente crear un mercado que ofrece bloques de parachain válidos a cambio de una parte competitiva de la recompensa pagadera de inmediato. De manera similar, los grupos de nominadores descentralizados permitirían múltiples participantes vinculados para coordinar y compartir el deber de un validator. Esta capacidad de agruparse garantiza una participación abierta. conducente a un sistema más descentralizado. 4.4. Pescadores. A diferencia de los otros dos partidos activos, Los pescadores no están directamente relacionados con la autoría del bloque. proceso. Más bien son “cazarrecompensas” independientes. motivado por una gran recompensa única. Precisamente debido a En la existencia de pescadores, esperamos que los eventos de mala conducta ocurran raramente, y cuando suceden sólo debido a la parte vinculada es descuidada con la seguridad de la clave secreta, en lugar de hacerlo con intenciones maliciosas. el nombre viene desde la frecuencia esperada de la recompensa, los requisitos mínimos para participar y el tamaño final de la recompensa. Los pescadores obtienen su recompensa al demostrar oportunamente que al menos una parte vinculada actuó ilegalmente. Acciones ilegales incluir firmar dos bloques cada uno con el mismo padre ratificado o, en el caso de paracaídas, ayudar a ratificar un bloque no válido bloque. Para evitar recompensas excesivas o el compromiso y uso ilícito de la clave secreta de una sesión, la recompensa base por proporcionar un único mensaje firmado ilegalmente por validator es mínimo. Esta recompensa aumenta asintóticamente cuanto más corroborar firmas ilegales de otros validators son proporcionado implicando un ataque genuino. La asíntota está establecida al 66% siguiendo nuestra afirmación de seguridad básica de que al menos dos tercios de los validators actúan con benevolencia. Los pescadores son algo similares a los "nodos completos" en sistemas actuales blockchain que los recursos necesarios son relativamente pequeños y el compromiso de un tiempo de actividad estable y el ancho de banda no es necesario. Los pescadores se diferencian en tanto como deben pagar una pequeña fianza.Este vínculo evita Los ataques de Sybil hacen perder el tiempo y el cálculo de validators recursos. Se puede retirar inmediatamente, probablemente no. más que el equivalente de unos pocos dólares y puede llevar a obtener una gran recompensa al detectar un mal comportamiento validator.

Partisipasi dalam Polkadot

Ada empat peran dasar dalam pemeliharaan Polkadot jaringan: kolator, nelayan, nominator dan validator. Di satu kemungkinan penerapan Polkadot, peran terakhir sebenarnya dapat dipecah menjadi dua peran: validator dasar dan penjamin ketersediaan; ini dibahas di bagian 6.5.3. Pengumpul Nelayan Validator (grup ini) Validator (kelompok lain) menyetujui menjadi monitor laporan buruk perilaku ke menyediakan blok kandidat untuk Nominator Gambar 1. Interaksi antar empat peran Polkadot. 4.1. Validator. validator adalah tagihan tertinggi dan membantu menyegel blok baru di jaringan Polkadot. Peran validator bergantung pada ikatan yang cukup tinggi dititipkan, meskipun kami mengizinkan pihak lain yang terikat untuk itu mencalonkan satu atau lebih validator untuk bertindak mewakili mereka dan sebagai sebagian dari obligasi validator tersebut belum tentu dimiliki oleh validator itu sendiri melainkan oleh mereka nominasi. validator harus menjalankan implementasi klien rantai relai dengan ketersediaan dan bandwidth tinggi. Di setiap blok node harus siap menerima peran ratifikasi blok baru pada parachain yang dinominasikan. Proses ini melibatkan penerimaan, validasi, dan penerbitan ulang kandidat blok. Pencalonannya bersifat deterministik namun hampir tidak dapat diprediksi sebelumnya. Karena validator tidak bisa cukup diharapkan untuk mempertahankan sinkronisasi penuh database semua parachain, diharapkan validator akan menominasikan tugas merancang usulan baru blok parachain ke pihak ketiga, yang dikenal sebagai collator. Setelah semua blok parachain baru telah diratifikasi dengan benar oleh subkelompok validator yang ditunjuk, validators kemudian harus meratifikasi blok rantai relai itu sendiri. Ini melibatkan memperbarui keadaan antrian transaksi (pada dasarnya memindahkan data dari antrean keluaran parachain ke antrean keluaran lainnya antrian input parachain), memproses transaksi rangkaian transaksi rantai relai yang diratifikasi dan meratifikasinya blok terakhir, termasuk perubahan parachain terakhir.POLKADOT: VISI KERANGKA MULTI-RANTAI HETEROGEN DRAFT 1 5 validator tidak memenuhi tugas mereka untuk menemukan konsensus berdasarkan aturan algoritma konsensus yang kami pilih akan dihukum. Untuk kegagalan awal yang tidak disengaja, ini sudah selesai menahan hadiah validator. Kegagalan yang berulang mengakibatkan berkurangnya jaminan keamanan mereka (melalui pembakaran). Tindakan yang terbukti berbahaya seperti penandatanganan ganda atau bersekongkol untuk memberikan blok yang tidak valid mengakibatkan hilangnya seluruh obligasi (yang sebagian terbakar tetapi sebagian besar diberikan kepada informan dan pelaku yang jujur). Dalam beberapa hal, validator mirip dengan kumpulan penambangan dari PoW saat ini blockchains. 4.2. Nominator. Nominator adalah pihak yang memegang saham yang berkontribusi pada jaminan keamanan validator. Mereka tidak mempunyai peran tambahan kecuali menempatkan modal risiko dan sebagai seperti itu untuk menandakan bahwa mereka memercayai validator tertentu (atau kumpulannya) untuk bertindak secara bertanggung jawab dalam pemeliharaannya jaringan. Mereka menerima kenaikan atau pengurangan pro-rata dalam deposito mereka sesuai dengan pertumbuhan obligasi yang mana mereka berkontribusi. Bersama dengan kolator, selanjutnya ada nominator di beberapa mirip dengan para penambang jaringan PoW saat ini. 4.3. Kolator. Pengumpul transaksi (disingkat pengumpul) adalah pihak-pihak yang membantu validators dalam memproduksi sah blok parachain. Mereka mempertahankan “simpul penuh” untuk parachain tertentu; artinya mereka menyimpan semua yang diperlukan informasi untuk dapat menulis blok baru dan mengeksekusi transaksi dengan cara yang hampir sama seperti yang dilakukan penambang pada PoW blockchains saat ini. Dalam keadaan normal, mereka akan menyusun dan mengeksekusi transaksi untuk membuat yang tidak tersegel memblokir, dan menyediakannya, bersama dengan pengetahuan nol buktinya, kepada satu atau lebih validator yang saat ini menjadi tanggung jawabnya mengusulkan blok parachain. Sifat sebenarnya dari hubungan antara kolator, nominator, dan validator kemungkinan akan berubah seiring berjalannya waktu. waktu. Awalnya, kami mengharapkan kolator bekerja sangat erat dengan validators, karena hanya akan ada sedikit (mungkin hanya satu) parachain dengan volume transaksi kecil. Itu implementasi klien awal akan mencakup RPC untuk memungkinkan a node pengumpul parachain untuk memasok node (relaychain) validator tanpa syarat dengan parachain yang terbukti valid blok. Sebagai biaya pemeliharaan versi yang disinkronkan semua parachain tersebut meningkat, kami memperkirakan akan ada peningkatan tambahan infrastruktur yang ada yang akan membantu memisahkan kewajiban kepada pihak-pihak yang independen dan bermotivasi ekonomi. Pada akhirnya, kami berharap untuk melihat kumpulan kolator yang bersaing mengumpulkan biaya transaksi terbanyak. Kolektor tersebut dapat dikontrak untuk melayani validator tertentu selama jangka waktu tertentu untuk mendapatkan bagian berkelanjutan dari hasil hadiah. Alternatifnya, kolator “freelance” mungkin saja membuat a pasar menawarkan blok parachain yang valid dengan imbalan bagian kompetitif dari hadiah yang dibayarkan segera. Demikian pula, kumpulan nominator yang terdesentralisasi akan memungkinkan banyak nominasi peserta terikat untuk berkoordinasi dan berbagi tugas a validator. Kemampuan untuk menyatukan ini memastikan partisipasi terbuka mengarah pada sistem yang lebih terdesentralisasi. 4.4. Nelayan. Berbeda dengan dua partai aktif lainnya, nelayan tidak mempunyai hubungan langsung dengan pembuat blok proses. Sebaliknya mereka adalah “pemburu hadiah” yang mandiri. termotivasi oleh imbalan satu kali yang besar. Justru karena keberadaan nelayan, kami perkirakan kejadian-kejadian buruk jarang terjadi, dan bila hal itu terjadi hanya karena pihak yang terikat ceroboh dengan pengamanan kunci rahasia, bukan melalui niat jahat. Nama itu datang mulai dari frekuensi imbalan yang diharapkan, persyaratan minimal untuk ikut serta, dan besaran imbalan pada akhirnya. Nelayan mendapatkan imbalannya melalui bukti yang tepat waktu setidaknya satu pihak yang terikat bertindak secara ilegal. Tindakan ilegal termasuk menandatangani dua blok masing-masing dengan induk yang sama yang telah diratifikasi atau, dalam kasus parachains, membantu meratifikasi perjanjian yang tidak sah blok. Untuk mencegah pemberian imbalan yang berlebihan atau kompromi dan penggunaan kunci rahasia suatu sesi secara tidak sah, yang merupakan imbalan dasar memberikan satu pesan validator yang ditandatangani secara ilegal adalah minimal. Hadiah ini meningkat secara asimtotik seiring bertambahnya jumlah menguatkan tanda tangan ilegal dari validator lainnya asalkan menyiratkan serangan asli. Asimtotnya sudah diatur setidaknya sebesar 66% mengikuti pernyataan keamanan dasar kami dua pertiga dari validator bertindak baik hati. Nelayan agak mirip dengan “simpul penuh” di sistem blockchain saat ini yang membutuhkan sumber daya relatif kecil dan komitmen uptime yang stabil dan bandwidth tidak diperlukan. Nelayan berbeda dalam hal ini sebanyak mereka harus mengirimkan obligasi kecil.Ikatan ini mencegah serangan sybil karena membuang-buang waktu dan komputasi validators sumber daya. Ini dapat segera ditarik, mungkin tidak lebih dari setara dengan beberapa dolar dan dapat menyebabkan untuk menuai imbalan besar karena menemukan perilaku buruk validator.

Descripción general del diseño

Esta sección tiene como objetivo dar una breve descripción general de la sistema en su conjunto. Una exploración más profunda de la El sistema se proporciona en la sección siguiente. 5.1. Consenso. En la cadena de relés, Polkadot logra consenso de bajo nivel sobre un conjunto de acuerdos válidos mutuamente acordados. bloques a través de un moderno algoritmo asincrónico bizantino tolerante a fallas (BFT). El algoritmo se inspirará. por el simple Tendermint [11] y el sustancialmente más involucrado HoneyBadgerBFT [14]. Este último proporciona una consenso eficiente y tolerante a fallos sobre una solución arbitrariamente infraestructura de red defectuosa, dado un conjunto de autoridades en su mayoría benignas o validators. Para una red de estilo prueba de autoridad (PoA), esto solo sería suficiente, sin embargo, se imagina que Polkadot es También se puede implementar como red en un entorno totalmente abierto y público. situación sin ninguna organización particular o confianza autoridad requerida para mantenerlo. Como tal necesitamos un medios para determinar un conjunto de validators e incentivar ellos para ser honestos. Para esto utilizamos la selección basada en PoS. criterios. 5.2. Demostrando lo que está en juego. Suponemos que la red tendrá algún medio para medir cuánta “participación” cualquier cuenta en particular tiene. Para facilitar la comparación con sistemas preexistentes, llamaremos a la unidad de medida “tokens”. Desafortunadamente el término no es ideal para una varias razones, entre ellas la de ser simplemente un escalar valor asociado con una cuenta, no existe noción de individualidad. Imaginamos que validators serán elegidos, con poca frecuencia (como máximo una vez al día, pero quizás tan raramente como una vez por trimestre), a través de un esquema de Prueba de Participación Nominada (NPoS). La incentivación puede ocurrir a través de una asignación prorrateada dePOLKADOT: VISIÓN PARA UN MARCO MULTICADENA HETEROGÉNEO BORRADOR 1 6 Relevo cadena enjambre de validadores (cada uno coloreado por su paracadena designada) Transacción (presentado por actor externo) Paracadena puente paracaídas virtual (por ejemplo, Ethereum) Paracadena Paracadena colas y E/S Transacciones propagadas Bloquear el envío de candidatos 2do orden cadena de relevo Comunidad paracadena cuenta Transacción entrante Transacción saliente Transacciones entre cadenas (gestionado por validators) alzador bloque propagado pescador Figura 2. Un esquema resumido del sistema Polkadot. Esto muestra a los recopiladores recopilando y propagando transacciones de usuarios, así como propagando candidatos de bloque a pescadores y validators. También muestra cómo una cuenta puede registrar una transacción que se lleva a cabo desde su paracadena, a través de la cadena de retransmisión y luego a otra parachain donde puede interpretarse como una transacción a una cuenta allí. fondos provenientes de una expansión de base token (hasta 100% por año, aunque lo más probable es que sea alrededor del 10%), junto con cualquier tarifa de transacción cobrada. Si bien la expansión de la base monetaria generalmente conduce a la inflación, dado que todos los propietarios de token tendría una oportunidad justa de participación, ningún titular de token necesitaría sufrir una reducción en el valor de su tenencias a lo largo del tiempo siempre que estuvieran felices de tomar una papel en el mecanismo de consenso. una proporción particular de tokens serían objeto del proceso staking; el La expansión base efectiva token se ajustaría a través de un mecanismo basado en el mercado para alcanzar este objetivo. Los validadores están fuertemente unidos por sus intereses; saliendo Los bonos de validators permanecen vigentes mucho después de que cesen las funciones de los validators (quizás alrededor de 3 meses). este tiempo El período de liquidación de bonos permite que futuras malas conductas sean castigados hasta el control periódico de la cadena. La mala conducta da lugar a castigos, como la reducción de recompensa o, en los casos que comprometan intencionalmente la integridad de la red, el validator pierde parte o la totalidad de su participación a otros validators, informantes o partes interesadas en su conjunto (mediante la quema). Por ejemplo, un validator quien intenta ratificar ambas ramas de una bifurcación (a veces conocido como ataque de “corto alcance”) puede ser identificado y castigado de esta última manera. Los ataques de largo alcance en los que “no hay nada en juego”4 se evitan mediante un simple pestillo de “punto de control” que evita una peligrosa reorganización en cadena de más de un profundidad de cadena particular. Para garantizar que los clientes recién sincronizados no se dejan engañar por la cadena equivocada, regular Se producirán “bifurcaciones duras” (de como máximo el mismo período del liquidación de bonos de validators) que codifica el bloque de puntos de control reciente hashes en los clientes. Esto funciona bien con una medida adicional para reducir la huella de “longitud de cadena finita” o reinicio periódico del bloque génesis. 5.3. Paracaídas y Alzadores. Cada paracadena obtiene Medidas de seguridad similares a las de la cadena de relevos: el Los encabezados de las paracaídas están sellados dentro del bloque de la cadena de relés. garantizar que no sea posible ninguna reorganización o “doble gasto” después de la confirmación. Esta es una garantía de seguridad similar a la que ofrecen las cadenas laterales y la fusión de Bitcoin. Polkadot, sin embargo, también ofrece sólidas garantías de que las transiciones de estado de las paracaídas son válidas. esto ocurre cuando el conjunto de validators se segmenta criptográficamente de forma aleatoria en subconjuntos; un subconjunto por parachain, los subconjuntos potencialmente difieren por bloque. esto La configuración generalmente implica que los tiempos de bloqueo de las paracaídas serán ser al menos tan largo como el de la cadena de relés. El específico Los medios para determinar la partición están fuera del alcance. 4En tal ataque el adversario forja una cadena histórica completamente nueva desde el bloque génesis en adelante. A través del control de un porción relativamente insignificante de la participación en la compensación, son capaces de aumentar incrementalmente su porción de la participación en relación con todos los demás partes interesadas ya que son los únicos participantes activos en su historia alternativa. Dado que no existe ninguna limitación física intrínseca a la creación de bloques (a diferencia de PoW, donde se debe gastar energía computacional bastante real), son capaces de crear una cadena más larga que la cadena real en un período de tiempo relativamente corto y potencialmente convertirlo en el mejor y más largo, asumiendo el estado canónico de la red.POLKADOT: VISIÓN PARA UN MARCO MULTICADENA HETEROGÉNEO BORRADOR 1 7 de este documento, pero probablemente se basaría en torno a un marco de confirmación-revelación similar a RanDAO [19] o utilizar datos combinados de bloques anteriores de cada parachain bajo un hash criptográficamente seguro. Dichos subconjuntos de validators deben proporcionar una candidato de bloque de parachain que está garantizado como válido (en pena de confiscación de la fianza). La validez gira en torno a dos puntos importantes; En primer lugar, que es intrínsecamente válido: que todas las transiciones estatales se ejecutaron fielmente y que todas Los datos externos a los que se hace referencia (es decir, transacciones) son válidos para su inclusión. En segundo lugar, que cualquier dato que sea extrínseco a su candidato, como aquellas transacciones externas, tiene una disponibilidad suficientemente alta para que los participantes puedan descárgalo y ejecuta el bloque manualmente.5 Los validadores pueden proporcionar sólo un bloque "nulo" que no contenga datos de "transacciones" externas, pero pueden correr el riesgo de obtener una recompensa reducida si lo hacen. ellos trabajan junto un protocolo de chismes de parachain con recopiladores: individuos que recopilan transacciones en bloques y proporcionan una prueba no interactiva y sin conocimiento de que el bloque constituye un hijo válido de su padre (y toman cualquier transacción honorarios por sus problemas). Queda en manos de los protocolos parachain especificar los suyos propios. Medios de prevención de spam: no existe una noción fundamental de “medición de recursos informáticos” o “tarifa de transacción”. impuesto por la cadena de relevos. Tampoco existe una aplicación directa de esto por parte del protocolo de cadena de retransmisión (aunque Es poco probable que las partes interesadas decidan adoptar una paracadena que no proporcionaba un mecanismo decente). Este es un guiño explícito a la posibilidad de que existan cadenas a diferencia de Ethereum, p.ej. una cadena similar a Bitcoin que tiene un modelo de tarifas mucho más simple o algún otro modelo de prevención de spam aún por proponer. La propia cadena de relés de Polkadot probablemente existirá como un Cadena de estados y cuentas similares a Ethereum, posiblemente un derivado EVM. Dado que los nodos de la cadena de retransmisión deberán realizar otros procesamientos sustanciales, rendimiento de transacciones se minimizará en parte a través de altas tarifas de transacción y, si nuestros modelos de investigación lo requieren, un límite de tamaño de bloque. 5.4. Comunicación entre cadenas. El ingrediente final crítico de Polkadot es la comunicación entre cadenas. desde las paracaídas pueden tener algún tipo de canal de información entre ellas, nos permitimos considerar Polkadot un multicadena escalable. En el caso de Polkadot, la comunicación es tan simple como puede ser: transacciones que se ejecutan en un parachain son (de acuerdo con la lógica de esa cadena) capaces de efectuar el envío de una transacción a una segunda paracadena o, potencialmente, la cadena de relevos. Como transacciones externas en producción blockchains, son completamente asíncronos y no tienen la capacidad intrínseca de devolver nada tipo de información hasta su origen. Destino: consigue datos de antes validators del bloque. La cuenta recibe la publicación: entrada eliminada de ingreso Merkle tree La cuenta envía la publicación: entrada colocada en salida Merkle tree para destino paracaídas salida Fuente: acciones datos con el siguiente bloque validators prueba de envío almacenada en salida de parachain Merkle árbol referencia enrutada colocada en destino parachain ingreso Merkle tree ingreso Figura 3. Un esquema básico que muestra las partes principales del enrutamiento para publicados transacciones (“publicaciones”). Para garantizar una complejidad mínima de implementación, se requiere un mínimo riesgo y mínimo camisa de fuerza de futuro arquitecturas parachain, estas transacciones entre cadenas son efectivamente indistinguibles de las transacciones estándar firmadas externamente. La transacción tiene un segmento de origen, que brinda la capacidad de identificar una paracadena, y una dirección que puede ser de tamaño arbitrario. A diferencia de los sistemas actuales comunes como Bitcoin y Ethereum, las transacciones entre cadenas no vienen con ningún tipo de “pago” de tarifa asociado; Cualquier pago de este tipo debe gestionarse mediante la lógica de negociación en las paracadenas de origen y destino. Un sistema como el propuesto para La versión Serenity de Ethereum [7] sería un medio simple de gestionar dicho pago de recursos entre cadenas, aunque suponemos que otros pueden pasar a primer plano a su debido tiempo. Las transacciones entre cadenas se resuelven mediante un simple Mecanismo de cola basado en Merkle tree para garantizar fidelidad. Es tarea de los mantenedores de la cadena de relevos mover transacciones en la cola de salida de una parachain en la cola de entrada de la parachain de destino. el Las transacciones pasadas se hacen referencia en la cadena de retransmisión, sin embargo, no son relevantes.las propias transacciones de la cadena ay. Para evitar que una parachain envíe spam a otra parachain con transacciones, para que se envíe una transacción, se requiere que la cola de entrada del destino no sea demasiado grande en la hora del final del bloque anterior. Si la entrada La cola es demasiado grande después del procesamiento del bloque, entonces se considera "saturada" y no se pueden enrutar transacciones a ella. dentro de los bloques siguientes hasta que se reduzca nuevamente por debajo del límite. Estas colas se administran en la cadena de retransmisión. Permitir que las paracaídas determinen la saturación de cada una. estado; de esta manera un intento fallido de publicar una transacción a un destino detenido se puede informar de forma sincrónica. (Aunque, dado que no existe una ruta de retorno, si una transacción secundaria falla por ese motivo, no se podrá informar de ella). a la persona que llama originalmente y algunos otros medios de recuperación tendría que ocurrir.) 5.5. Polkadot y Ethereum. Debido a la integridad de Turing de Ethereum, esperamos que haya amplias oportunidades para que Polkadot y Ethereum sean interoperables con entre sí, al menos dentro de algunos límites de seguridad fácilmente deducibles. En resumen, prevemos que las transacciones de Polkadot puede ser firmado por validators y luego ingresado en 5Tal tarea podría ser compartida entre validators o podría convertirse en la tarea designada de un conjunto de validators fuertemente vinculados conocido como Garantes de disponibilidad.

POLKADOT: VISIÓN PARA UN MARCO MULTICADENA HETEROGÉNEO BORRADOR 1 8 Ethereum donde pueden ser interpretados y promulgados por un contrato de reenvío de transacciones. En la otra dirección, Prevemos el uso de registros (eventos) especialmente formateados. proveniente de un “contrato de ruptura” para permitir una verificación rápida de que se debe reenviar un mensaje en particular. 5.5.1. Polkadot a Ethereum. A través de la elección de un BFT mecanismo de consenso con validators formado a partir de un conjunto de partes interesadas determinadas mediante una votación de aprobación mecanismo, podemos lograr un consenso seguro con un cambios poco frecuentes y un número modesto de validators. En un sistema con un total de 144 validators, un tiempo de bloqueo de 4 segundos y una finalidad de 900 bloques (lo que permite ataques maliciosos Comportamientos como votos dobles deben ser denunciados y sancionados. y reparado), la validez de un bloque puede razonablemente ser se considera probado mediante tan solo 97 firmas (dos tercios de 144 más una) y un período de verificación posterior de 60 minutos en el que no se depositan impugnaciones. Ethereum puede albergar un "contrato de asentamiento" que puede mantener a los 144 firmantes y ser controlado por ellos. Dado que la recuperación de la firma digital de curva elíptica (ECDSA) requiere solo 3000 gases según el EVM, y desde Probablemente solo querríamos que la validación se realice en un supermayoría de validators (en lugar de unanimidad total), el costo base de Ethereum confirmando que una instrucción fue validado adecuadamente como proveniente de la red Polkadot no sería más de 300,000 gas, apenas el 6% del el límite total de gas del bloque es de 5,5 millones. Aumentar el número de validators (como sería necesario para tratar con docenas de cadenas) inevitablemente aumenta este costo, sin embargo En general, se espera que el ancho de banda de transacciones de Ethereum crezca con el tiempo a medida que la tecnología madure y la infraestructura mejora. Junto con el hecho de que no todos los validator deben estar involucrados (por ejemplo, solo el más alto Los validators apostados pueden ser llamados para tal tarea) el Los límites de este mecanismo se extienden razonablemente bien. Suponiendo una rotación diaria de dichos validators (que es bastante conservador (semanal o incluso mensual puede ser aceptable), entonces el costo para la red de mantener este puente de reenvío Ethereum costaría alrededor de 540.000 gas por día o, a los precios actuales del gas, $45 por año. Una transacción básica enviada sola a través del puente costaría alrededor de 0,11 dólares; el cálculo adicional del contrato costaría más, por supuesto. Al almacenar en búfer y agrupar transacciones juntos, los costos de autorización de robo pueden ser fácilmente compartido, reduciendo sustancialmente el costo por transacción; si se requirieron 20 transacciones antes del reenvío, entonces el costo de reenviar una transacción básica se reduciría a alrededor de $0,01. Una alternativa interesante y más económica a este modelo de contrato con múltiples firmas sería utilizar firmas de umbral para lograr la semántica de propiedad multilateral. Mientras que los esquemas de firma de umbral para ECDSA son computacionalmente costosos, los de otros esquemas como las firmas Schnorr son muy razonables. Ethereum planea introducir primitivos que harían tales esquemas baratos de usar en el próximo hardfork de Metropolis. Si se pudiera utilizar este medio, los costes del gas para reenviar una transacción Polkadot al Ethereum La red se reduciría drásticamente a casi cero. gastos generales adicionales a los costos básicos para validar el firma y ejecución de la transacción subyacente. En este modelo, los nodos validator de Polkadot tendrían hacer poco más que firmar mensajes. Para que las transacciones realmente se enruten a la red Ethereum, nosotros supongamos que los validators también residirían en la red Ethereum o, más probablemente, que pequeñas recompensas ser ofrecido al primer actor que reenvía el mensaje en a la red (la recompensa podría trivialmente pagarse al originador de la transacción). 5.5.2. Ethereum a Polkadot. Conseguir que las transacciones sean reenviado de Ethereum a Polkadot utiliza la noción simple de registros. Cuando un contrato Ethereum desea enviar una transacción a una paracadena particular de Polkadot, simplemente necesita concertar un “contrato de ruptura” especial. El contrato de ruptura aceptaría cualquier pago que pudiera ser requerido y emitir una instrucción de registro para que su existencia pueda ser probada a través de una prueba Merkle y una afirmación de que el encabezado del bloque correspondiente es válido y canónico. De las dos últimas condiciones, la validez es quizás la más sencillo de demostrar. En principio, el único requisito espara cada nodo Polkadot que necesita la prueba (es decir, nodos validator designados) para ejecutar una instancia completamente sincronizada de un nodo Ethereum estándar. Desafortunadamente, esto es en sí mismo una dependencia bastante grande. un mas Un método ligero sería utilizar una prueba simple de que El encabezado se evaluó correctamente al proporcionar solo el parte del intento de estado de Ethereum necesario para ejecutarse correctamente las transacciones en el bloque y verifique que los registros (contenidos en el recibo del bloque) sean válidos. Tales “tipo SPV”6 las pruebas aún pueden requerir una cantidad sustancial de información; convenientemente, normalmente no serían necesarios en todos: un sistema de unión dentro de Polkadot permitiría unir terceros a enviar encabezados a riesgo de perder su fianza en caso de que algún otro tercero (como un “pescador”, ver 6.2.3) proporcione una prueba de que el encabezado no es válido (específicamente que la raíz estatal o las raíces receptoras eran impostores). En una red PoW no finalizada como Ethereum, el La canonicidad es imposible de probar de manera concluyente. Para solucionar este problema, las aplicaciones que intentan basarse en cualquier tipo de causa-efecto dependiente de la cadena, espere una serie de "confirmaciones", o hasta que la transacción dependiente esté en algún profundidad particular dentro de la cadena. El Ethereum, esto la profundidad varía desde 1 bloque para las transacciones menos valiosas sin problemas de red conocidos hasta 1200 bloques como era el caso durante el lanzamiento inicial de Frontier para intercambios. En la red estable “Homestead”, esta cifra se ubica en 120 bloques para la mayoría de los intercambios, y probablemente tomaríamos un parámetro similar. entonces nosotros puede imagina nuestro Polkadot-lado Ethereuminterfaz para tener algunas funciones simples: poder aceptar un nuevo encabezado de la red Ethereum y validar el PoW, para poder aceptar alguna prueba de que un registro particular fue emitido por el contrato de ruptura del lado Ethereum para un cabezazo de suficiente profundidad (y hacia adelante) el mensaje correspondiente dentro de Polkadot) y finalmente poder aceptar pruebas de que un documento previamente aceptado pero El encabezado aún no promulgado contiene una raíz de recibo no válida. Para obtener realmente los datos del encabezado Ethereum (y cualquier prueba de SPV o refutaciones de validez/canonicidad) en la red Polkadot, un incentivo al reenvío 6SPV se refiere a Verificación de pago simplificada en Bitcoin y describe un método para que los clientes verifiquen transacciones manteniendo solo una copia de todos los encabezados de bloques de la cadena PoW más larga.POLKADOT: VISIÓN PARA UN MARCO MULTICADENA HETEROGÉNEO BORRADOR 1 9 se necesitan datos. Esto podría ser tan simple como un pago. (financiado con tarifas cobradas del lado Ethereum) pagado a cualquiera capaz de reenviar un bloque útil cuyo encabezado sea válido. Se pediría a los validadores que retengan información relacionada con los últimos miles de bloques para poder ser capaz de gestionar bifurcaciones, ya sea a través de algún medio intrínseco del protocolo o mediante un contrato mantenido en el cadena de relevo. 5.6. Polkadot y Bitcoin. Bitcoin interoperación presenta un desafío interesante para Polkadot: un llamado La “vinculación bidireccional” sería una pieza útil de infraestructura. tener del lado de ambas redes. Sin embargo, debido a las limitaciones de Bitcoin, proporcionar dicha clavija de forma segura es una tarea nada trivial. Entregar una transacción desde Bitcoin a Polkadot se puede realizar en principio con un proceso similar al de Ethereum; una “dirección de ruptura” controlado de alguna manera por los Polkadot validators podrían recibir tokens transferidos (y los datos enviados junto con ellos). Las pruebas de SPV podrían ser proporcionadas por oracles incentivados y, junto con un período de confirmación, una recompensa otorgada por identificar bloques no canónicos que implican la transacción ha sido “doble gastado”. Cualquier tokens que posea en el La “dirección de ruptura” entonces, en principio, sería controlada por esos mismos validators para su posterior dispersión. Sin embargo, el problema es cómo se pueden controlar de forma segura los depósitos desde un conjunto validator giratorio. a diferencia Ethereum que es capaz de tomar decisiones arbitrarias basadas tras combinaciones de firmas, Bitcoin es sustancialmente más limitado, y la mayoría de los clientes aceptan solo transacciones con múltiples firmas con un máximo de 3 partes. Ampliar esta cifra a 36, ​​o incluso a miles, como en última instancia se desearía, es imposible con el protocolo actual. Una opción es modificar el protocolo Bitcoin para habilitar dicha funcionalidad, sin embargo, las llamadas “bifurcaciones duras” en el Bitcoin mundo son difíciles de organizar a juzgar por los intentos recientes. Una posibilidad es el uso de firmas de umbral, esquemas criptográficos para permitir que un público pueda identificarse individualmente clave para ser controlada efectivamente por múltiples “partes” secretas algunos o todos los cuales deben utilizarse para crear una firma válida. Lamentablemente, las firmas de umbral son compatibles con ECDSA de Bitcoin son computacionalmente costosos de crear y de complejidad polinomial. Otros esquemas como Las firmas Schnorr ofrecen costos mucho más bajos; sin embargo, cronograma en el que pueden introducirse en el Bitcoin El protocolo es incierto. Dado que la seguridad última de los depósitos recae en varios validators vinculados, otra opción es reducir los poseedores de claves de firmas múltiples a solo un subconjunto vinculado del total validators tal que el umbral las firmas se vuelven factibles (o, en el peor de los casos, las firmas nativas de Bitcoin es posible la firma múltiple). Esto por supuesto reduce la cantidad total de bonos que podrían deducirse en concepto de reparaciones si los validator se comportaran ilegalmente; sin embargo, esto es una degradación elegante, simplemente estableciendo un límite superior de la cantidad de fondos que pueden circular de forma segura entre los dos redes (o incluso, en el % de pérdidas en caso de un ataque de los validators exitosos). Como tal, creemos que no es poco realista colocar una “paracadena virtual” de interoperabilidad Bitcoin razonablemente segura. entre las dos redes, aunque no deja de ser un esfuerzo sustancial con un cronograma incierto y muy posiblemente requiriendo la cooperación de las partes interesadas dentro de ese red.

Ikhtisar Desain

Bagian ini dimaksudkan untuk memberikan gambaran singkat tentang sistem secara keseluruhan. Eksplorasi yang lebih menyeluruh terhadap sistem diberikan pada bagian berikutnya. 5.1. Konsensus. Pada rantai relai, Polkadot tercapai konsensus tingkat rendah atas seperangkat valid yang disepakati bersama blok melalui algoritma toleransi kesalahan Bizantium asinkron (BFT) modern. Algoritmanya akan terinspirasi dengan Tendermint sederhana [11] dan masih banyak lagi melibatkan HoneyBadgerBFT [14]. Yang terakhir menyediakan konsensus yang efisien dan toleran terhadap kesalahan atas keputusan yang sewenang-wenang infrastruktur jaringan yang rusak, mengingat sebagian besar otoritas yang baik atau validators. Untuk jaringan bergaya proof-of-authority (PoA), ini saja akan mencukupi, namun Polkadot dibayangkan juga dapat digunakan sebagai jaringan secara terbuka dan publik situasi tanpa organisasi tertentu atau terpercaya wewenang yang diperlukan untuk memeliharanya. Oleh karena itu kita memerlukan a cara untuk menentukan serangkaian validator dan pemberian insentif mereka jujur. Untuk ini kami menggunakan seleksi berbasis PoS kriteria. 5.2. Membuktikan Taruhannya. Kami berasumsi bahwa jaringan akan memiliki beberapa cara untuk mengukur berapa banyak “taruhan” dimiliki oleh akun tertentu. Untuk kemudahan perbandingan dengan sistem yang sudah ada sebelumnya, kita sebut satuan pengukuran “tokens”. Sayangnya istilah tersebut kurang ideal untuk a sejumlah alasan, paling tidak karena hanya skalar nilai yang terkait dengan akun, tidak ada gagasan tentangnya individualitas. Kami membayangkan validators terpilih, jarang sekali (paling banyak sekali per hari tetapi mungkin jarang sekali per kuartal), melalui skema Nominated Proof-of-Stake (NPoS). Insentivisasi dapat terjadi melalui alokasi pro-rataPOLKADOT: VISI KERANGKA MULTI-RANTAI HETEROGEN DRAFT 1 6 Relai rantai Kawanan validator (masing-masing diwarnai menurut warnanya parachain yang ditunjuk) Transaksi (dikirim oleh aktor eksternal) Parachain jembatan Parachain virtual (misalnya Ethereum) Parachain Parachain antrian dan I/O Transaksi yang disebarkan Blokir pengajuan kandidat pesanan ke-2 Rantai relai Komunitas parachain Akun Transaksi masuk Transaksi keluar Transaksi antar rantai (dikelola oleh validators) Pengumpul Blok yang disebarkan Nelayan Gambar 2. Skema ringkasan sistem Polkadot. Hal ini menunjukkan kolektor mengumpulkan dan menyebarkan transaksi pengguna, serta menyebarkan kandidat blok ke nelayan dan validators. Itu juga menunjukkan bagaimana sebuah akun dapat memposting transaksi yang dilakukan dari parachainnya, melalui rantai relai dan masuk ke parachain lain yang bisa diartikan sebagai transaksi ke akun disana. dana yang berasal dari perluasan basis token (hingga 100% per tahun, meskipun kemungkinan besar sekitar 10%) bersama dengan biaya transaksi apa pun yang dikumpulkan. Meskipun ekspansi basis moneter biasanya menyebabkan inflasi, karena semua pemilik token akan memiliki kesempatan yang adil untuk berpartisipasi, tidak ada pemegang token yang perlu mengalami pengurangan nilai kepemilikan dari waktu ke waktu asalkan mereka senang untuk mengambil a peran dalam mekanisme konsensus. Proporsi tertentu dari tokens akan ditargetkan untuk proses staking; itu perluasan basis token yang efektif akan disesuaikan mekanisme berbasis pasar untuk mencapai target ini. Validator sangat terikat dengan taruhannya; keluar Obligasi validators tetap berlaku lama setelah tugas validators dihentikan (mungkin sekitar 3 bulan). Selama ini periode likuidasi obligasi memungkinkan terjadinya perilaku buruk di masa depan dihukum sampai pos pemeriksaan berkala rantai. Perilaku buruk menghasilkan hukuman, seperti pengurangan imbalan atau, dalam kasus yang dengan sengaja membahayakan integritas jaringan, validator kehilangan sebagian atau seluruhnya kepentingan kepada validator lain, informan atau pemangku kepentingan secara keseluruhan (melalui pembakaran). Misalnya, validator yang mencoba untuk meratifikasi kedua cabang percabangan (terkadang dikenal sebagai serangan “jarak pendek”) dapat diidentifikasi dan dihukum dengan cara yang terakhir. Serangan jangka panjang “tidak ada yang dipertaruhkan”4 dapat dielakkan melalui kaitan “pos pemeriksaan” sederhana yang mencegah terjadinya reorganisasi berantai yang berbahaya selama lebih dari satu tahun. kedalaman rantai tertentu. Untuk memastikan klien yang baru disinkronkan tidak bisa tertipu ke rantai yang salah, biasa “hard fork” akan terjadi (paling lama pada periode yang sama). validators (likuidasi obligasi) yang memblok pos pemeriksaan terbaru dengan kode keras hashes ke klien. Hal ini cocok dengan ukuran “panjang rantai terbatas” yang dapat mengurangi jejak lebih lanjut pengaturan ulang blok genesis secara berkala. 5.3. Parachain dan Collator. Setiap parachain mendapat perlengkapan keamanan serupa dengan rantai relai: itu header parachain disegel di dalam blok rantai relai memastikan tidak ada reorganisasi, atau “pembelanjaan ganda”, yang mungkin terjadi setelah konfirmasi. Ini adalah jaminan keamanan serupa dengan yang ditawarkan oleh rantai samping dan penggabungan Bitcoin. Namun, Polkadot juga memberikan jaminan kuat bahwa transisi status parachain adalah valid. Ini terjadi melalui himpunan validator yang disegmentasikan secara kriptografis secara acak menjadi himpunan bagian; satu subset per parachain, subset berpotensi berbeda per blok. Ini pengaturan umumnya menyiratkan bahwa waktu blok parachain akan demikian setidaknya sepanjang rantai relai. Yang spesifik cara menentukan partisi berada di luar cakupan 4Serangan seperti itu adalah saat musuh membentuk rantai sejarah yang benar-benar baru mulai dari blok genesis dan seterusnya. Melalui pengendalian a dengan porsi saham yang relatif kecil pada saat offset, mereka dapat secara bertahap meningkatkan porsi saham mereka dibandingkan dengan semua saham lainnya. pemangku kepentingan karena mereka adalah satu-satunya peserta aktif dalam sejarah alternatif mereka. Karena tidak ada batasan fisik yang hakiki dalam penciptaan blok (tidak seperti PoW di mana energi komputasi yang cukup nyata harus dikeluarkan), mereka mampu membuat rantai yang lebih panjang dari rantai sebenarnya dalam waktu singkat. rentang waktu yang relatif singkat dan berpotensi menjadikannya yang terlama dan terbaik, mengambil alih status kanonik jaringan.POLKADOT: VISI KERANGKA MULTI-RANTAI HETEROGEN DRAFT 1 7 dokumen ini tetapi kemungkinan besar akan didasarkan pada hal tersebut kerangka komit-pengungkapan yang mirip dengan RanDAO [19] atau menggunakan data yang digabungkan dari blok sebelumnya dari setiap parachain di bawah hash yang aman secara kriptografis. Subkumpulan validators tersebut diperlukan untuk menyediakan a kandidat blok parachain yang dijamin valid (on rasa sakit karena penyitaan obligasi). Validitas berkisar pada dua poin penting; pertama bahwa hal itu secara intrinsik valid—itu semua transisi negara dilaksanakan dengan setia dan itu saja data eksternal yang direferensikan (yaitu transaksi) valid untuk dimasukkan. Kedua, data apa pun yang bersifat ekstrinsik kandidat, seperti transaksi eksternal tersebut, memiliki ketersediaan yang cukup tinggi sehingga peserta dapat melakukannya unduh dan jalankan blok secara manual.5 Validator mungkin hanya menyediakan blok “null” yang tidak berisi data “transaksi” eksternal, namun berisiko mendapatkan pengurangan reward jika mereka memberikannya. Mereka bekerja berdampingan protokol gosip parachain dengan kolator—individu yang menyusun transaksi ke dalam blok dan memberikan bukti non-interaktif dan tanpa pengetahuan bahwa blok tersebut merupakan anak sah dari induknya (dan melakukan transaksi apa pun biaya untuk masalah mereka). Terserah pada protokol parachain untuk menentukan protokolnya sendiri sarana pencegahan spam: tidak ada gagasan mendasar tentang “pengukuran sumber daya komputasi” atau “biaya transaksi” dikenakan oleh rantai relay. Juga tidak ada penegakan langsung terhadap hal ini melalui protokol rantai relai (meskipun demikian kecil kemungkinannya para pemangku kepentingan akan memilih untuk mengadopsinya parachain yang tidak menyediakan mekanisme yang layak). Ini adalah anggukan eksplisit terhadap kemungkinan rantai yang tidak sama Ethereum, mis. rantai mirip Bitcoin yang memiliki model biaya yang lebih sederhana atau model pencegahan spam lainnya yang belum diusulkan. Rantai relai Polkadot itu sendiri mungkin akan ada sebagai Akun dan rantai negara yang mirip Ethereum, kemungkinan merupakan turunan EVM. Karena node rantai relai akan diperlukan melakukan pemrosesan substansial lainnya, throughput transaksi akan diminimalkan sebagian melalui biaya transaksi yang besar dan, jika model penelitian kami memerlukannya, batas ukuran blok. 5.4. Komunikasi Antar Rantai. Bahan terakhir yang penting dari Polkadot adalah komunikasi antar rantai. Sejak parachain dapat memiliki semacam saluran informasi di antara mereka, kami membiarkan diri kami mempertimbangkan Polkadot a multi-rantai yang dapat diskalakan. Dalam kasus Polkadot, komunikasinya sesederhana mungkin: transaksi dijalankan dalam a parachain (menurut logika rantai itu) mampu mempengaruhi pengiriman transaksi ke parachain kedua atau, mungkin, rantai relai. Seperti transaksi eksternal pada produksi blockchains, keduanya sepenuhnya asinkron dan tidak ada kemampuan intrinsik bagi mereka untuk mengembalikannya jenis informasi kembali ke asalnya. Tujuan: mendapat data dari sebelumnya validators blok. Akun menerima kiriman: entri dihapus dari masuknya Merkle tree Akun mengirimkan kiriman: entri ditempatkan di jalan keluar Merkle tree untuk tujuan parachain jalan keluar Sumber: saham data dengan blok berikutnya validatordtk bukti kiriman disimpan di parachain jalan keluar Merkle pohon referensi yang diarahkan ditempatkan di parachain tujuan masuknya Merkle tree masuknya Gambar 3. Tampilan skema dasar bagian utama perutean untuk diposting transaksi (“postingan”). Untuk memastikan kompleksitas implementasi minimal, minimal risiko dan minimal jaket lurus dari masa depan arsitektur parachain, transaksi antar rantai ini secara efektif tidak dapat dibedakan dari transaksi standar yang ditandatangani secara eksternal. Transaksi memiliki segmen asal, memberikan kemampuan untuk mengidentifikasi parachain, dan alamat yang ukurannya mungkin berubah-ubah. Tidak seperti sistem umum saat ini seperti Bitcoin dan Ethereum, transaksi antar rantai tidak disertai dengan “pembayaran” biaya apa pun; pembayaran semacam itu harus dikelola melalui logika negosiasi pada parachain sumber dan tujuan. Sebuah sistem seperti yang diusulkan Rilisan Serenity Ethereum [7] akan menjadi cara yang sederhana Namun, cara mengelola pembayaran sumber daya lintas rantai tersebut kami berasumsi orang lain mungkin akan muncul pada waktunya. Transaksi antar rantai diselesaikan dengan menggunakan cara sederhana mekanisme antrian berdasarkan Merkle tree untuk memastikan kesetiaan. Ini adalah tugas pengelola rantai relai untuk melakukannya memindahkan transaksi pada antrian keluaran satu parachain ke dalam antrian input parachain tujuan. Itu transaksi yang diteruskan direferensikan pada rantai relai, namun tidak reltransaksi ay-chain itu sendiri. Untuk mencegah parachain mengirim spam ke parachain lain transaksi, agar suatu transaksi dapat dikirim, diperlukan agar antrian masukan tujuan tidak terlalu besar waktu akhir blok sebelumnya. Jika masukan antrian terlalu besar setelah pemrosesan blok, maka dianggap “jenuh” dan tidak ada transaksi yang dapat dialihkan itu dalam blok berikutnya sampai dikurangi kembali di bawah batas. Antrian ini dikelola pada rantai relai memungkinkan parachain untuk menentukan saturasi satu sama lain status; dengan cara ini upaya yang gagal untuk memposting transaksi ke tujuan yang terhenti dapat dilaporkan secara serempak. (Meskipun karena tidak ada jalur pengembalian, jika transaksi sekunder gagal karena alasan tersebut, transaksi tersebut tidak dapat dilaporkan kembali ke penelepon asli dan beberapa cara pemulihan lainnya harus terjadi.) 5.5. Polkadot dan Ethereum. Karena kelengkapan Turing Ethereum, kami berharap ada banyak peluang bagi Polkadot dan Ethereum untuk dapat dioperasikan dengan satu sama lain, setidaknya dalam batasan keamanan yang mudah dideduksi. Singkatnya, kami membayangkan transaksi dari Polkadot dapat ditandatangani oleh validators dan kemudian dimasukkan ke dalam 5Tugas seperti itu mungkin dibagi antara validators atau bisa menjadi tugas khusus dari sekumpulan validators yang dikenal sebagai penjamin ketersediaan.

POLKADOT: VISI KERANGKA MULTI-RANTAI HETEROGEN DRAFT 1 8 Ethereum dimana hal tersebut dapat ditafsirkan dan diberlakukan oleh kontrak penerusan transaksi. Di arah lain, kami memperkirakan penggunaan log (peristiwa) yang diformat khusus berasal dari “kontrak terobosan” untuk memungkinkan verifikasi cepat bahwa pesan tertentu harus diteruskan. 5.5.1. Polkadot hingga Ethereum. Melalui pilihan a BFT mekanisme konsensus dengan validators terbentuk dari a sekelompok pemangku kepentingan yang ditentukan melalui pemungutan suara persetujuan mekanisme, kita bisa mendapatkan konsensus yang aman dengan jarang berubah dan jumlah validators sedikit. Dalam sistem dengan total 144 validators, waktu blok adalah 4 detik dan finalitas 900 blok (memungkinkan tindakan jahat perilaku seperti suara ganda untuk dilaporkan, dihukum dan diperbaiki), validitas suatu blok dapat dibenarkan dianggap terbukti melalui sedikitnya 97 tanda tangan (dua pertiga dari 144 ditambah satu) dan periode verifikasi 60 menit berikutnya dimana tidak ada keberatan yang diajukan. Ethereum dapat menjadi tuan rumah “kontrak pembobolan” yang dapat mempertahankan 144 penandatangan dan dikendalikan oleh mereka. Karena pemulihan tanda tangan digital kurva elips (ECDSA) hanya membutuhkan 3.000 gas di bawah EVM, dan sejak itu kami mungkin hanya ingin validasi terjadi pada a mayoritas super validators (bukan suara bulat penuh), biaya dasar Ethereum yang mengonfirmasi bahwa sebuah instruksi divalidasi dengan benar karena berasal dari jaringan Polkadot tidak lebih dari 300.000 gas—hanya 6% dari batas total blok gas pada 5,5M. Meningkatkan jumlah validator (sebagaimana diperlukan untuk menangani lusinan rantai) pasti akan meningkatkan biaya ini bandwidth transaksi Ethereum diperkirakan akan bertambah seiring waktu seiring dengan semakin matangnya teknologi dan infrastruktur membaik. Bersama dengan fakta bahwa tidak semua validator perlu dilibatkan (misalnya hanya yang tertinggi validators yang dipertaruhkan dapat dipanggil untuk tugas seperti itu) tersebut batasan mekanisme ini meluas dengan cukup baik. Dengan asumsi rotasi harian sebesar validators (yaitu cukup konservatif—mingguan atau bahkan bulanan mungkin dapat diterima), sehingga menimbulkan biaya pemeliharaan jaringan jembatan penerusan Ethereum ini akan berjumlah sekitar 540.000 gas per hari atau, pada harga gas saat ini, $45 per tahun. Transaksi dasar yang diteruskan sendiri melalui jembatan akan dikenakan biaya sekitar $0,11; perhitungan kontrak tambahan akan memakan biaya tentu saja lebih banyak lagi. Dengan buffering dan bundling transaksi bersama-sama, biaya otorisasi pembobolan dapat dengan mudah dikurangkan dibagikan, mengurangi biaya per transaksi secara signifikan; jika 20 transaksi diperlukan sebelum meneruskan, maka biaya untuk meneruskan transaksi dasar akan turun menjadi sekitar $0,01. Salah satu alternatif yang menarik dan lebih murah terhadap model kontrak multitanda tangan ini adalah dengan menggunakan tanda tangan ambang batas untuk mencapai semantik kepemilikan multilateral. Sedangkan skema tanda tangan ambang batas untuk ECDSA mahal secara komputasi, dibandingkan skema lainnya seperti tanda tangan Schnorr sangat masuk akal. Ethereum berencana untuk memperkenalkan primitif yang akan membuat seperti itu skema murah untuk digunakan di hardfork Metropolis yang akan datang. Jika cara seperti itu dapat dimanfaatkan, biaya gasnya akan mahal untuk meneruskan transaksi Polkadot ke Ethereum jaringan akan berkurang drastis hingga mendekati nol overhead melebihi biaya dasar untuk memvalidasi menandatangani dan melaksanakan transaksi yang mendasarinya. Dalam model ini, node validator Polkadot akan memiliki untuk melakukan apa pun selain menandatangani pesan. Agar transaksi benar-benar dirutekan ke jaringan Ethereum, kami asumsikan validator itu sendiri juga akan berada jaringan Ethereum atau, lebih mungkin, hadiah kecil itu ditawarkan kepada aktor pertama yang meneruskan pesan tersebut ke jaringan (hadiahnya bisa dengan mudah dibayarkan ke pencetus transaksi). 5.5.2. Ethereum hingga Polkadot. Menjadikan transaksi menjadi diteruskan dari Ethereum ke Polkadot menggunakan pengertian sederhana tentang log. Ketika kontrak Ethereum ingin mengirimkan transaksi ke parachain tertentu Polkadot, mereka hanya perlu mengadakan “kontrak break-out” khusus. Kontrak break-out akan menerima pembayaran berapa pun diperlukan dan mengeluarkan instruksi logging sehingga keberadaannya dapat dibuktikan melalui bukti Merkle dan pernyataan bahwa header blok terkait adalah valid dan kanonik. Dari dua syarat terakhir, validitas mungkin adalah yang utama paling mudah untuk dibuktikan. Pada prinsipnya, satu-satunya persyaratan adalahuntuk setiap node Polkadot yang memerlukan bukti (yaitu menunjuk validator node) untuk menjalankan instance node Ethereum standar yang sepenuhnya tersinkronisasi. Sayangnya, hal ini sendiri merupakan ketergantungan yang cukup berat. Lebih lanjut metode ringannya adalah dengan menggunakan bukti sederhana bahwa header dievaluasi dengan benar melalui penyediaan hanya bagian dari percobaan status Ethereum perlu dijalankan dengan benar transaksi di blok dan periksa apakah log (yang terdapat dalam tanda terima blok) valid. Seperti “SPV”6 pembuktian mungkin masih memerlukan sejumlah besar informasi; nyamannya, mereka biasanya tidak diperlukan semua: sistem ikatan di dalam Polkadot akan memungkinkan ikatan pihak ketiga untuk mengirimkan header dengan risiko kehilangannya jaminan jika pihak ketiga lainnya (seperti “nelayan”, lihat 6.2.3) memberikan bukti bahwa header tersebut tidak valid (khususnya akar negara atau akar penerimaan adalah penipu). Pada jaringan PoW yang belum terselesaikan seperti Ethereum, kanonikalitas tidak mungkin dibuktikan secara meyakinkan. Untuk mengatasi hal ini, aplikasi-aplikasi yang mencoba mengandalkan apapun jenisnya sebab-akibat yang bergantung pada rantai menunggu sejumlah “konfirmasi”, atau hingga transaksi dependen mencapai titik tertentu. kedalaman tertentu dalam rantai. Pada Ethereum, ini kedalamannya bervariasi dari 1 blok untuk transaksi yang paling tidak berharga tanpa masalah jaringan yang diketahui hingga 1200 blok seperti sebelumnya kasus ini selama rilis awal Frontier untuk pertukaran. Pada jaringan “Homestead” yang stabil, angka ini berada pada 120 blok untuk sebagian besar bursa, dan kemungkinan besar kami akan mengambilnya parameter serupa. Jadi kita bisa bayangkan milik kita Polkadot-sisi Ethereumantarmuka memiliki beberapa fungsi sederhana: untuk dapat menerima header baru dari jaringan Ethereum dan memvalidasi PoW, untuk dapat menerima beberapa bukti bahwa a log tertentu dikeluarkan oleh kontrak breakout sisi Ethereum untuk header dengan kedalaman yang cukup (dan meneruskan pesan terkait dalam Polkadot) dan terakhir untuk dapat menerima bukti-bukti yang sebelumnya diterima tetapi header yang belum diberlakukan berisi akar tanda terima yang tidak valid. Untuk benar-benar mendapatkan data header Ethereum itu sendiri (dan bukti SPV atau sanggahan validitas/kanonikalitas) ke dalam jaringan Polkadot, sebuah insentif untuk penerusan 6SPV mengacu pada Verifikasi Pembayaran yang Disederhanakan di Bitcoin dan menjelaskan metode bagi klien untuk memverifikasi transaksi sambil hanya menyimpan salinan semua header blok dari rantai PoW terpanjang.POLKADOT: VISI KERANGKA MULTI-RANTAI HETEROGEN DRAFT 1 9 data diperlukan. Ini bisa sesederhana pembayaran (didanai dari biaya yang dikumpulkan di sisi Ethereum) dibayarkan kepada siapa pun yang dapat meneruskan blok berguna yang headernya sah. Validator akan diminta untuk menyimpan informasi terkait beberapa ribu blok terakhir dapat mengelola fork, baik melalui beberapa cara protokol intrinsik atau melalui kontrak yang dipertahankan di rantai relai. 5.6. Polkadot dan Bitcoin. Bitcoin interoperasi menghadirkan tantangan menarik untuk Polkadot: yang disebut “pasak dua arah” akan menjadi infrastruktur yang berguna untuk dimiliki di sisi kedua jaringan. Namun karena batasan Bitcoin, menyediakan pasak seperti itu dengan aman adalah sebuah usaha yang tidak sepele. Mengirimkan transaksi dari Bitcoin hingga Polkadot pada prinsipnya dapat dilakukan dengan proses serupa dengan Ethereum; sebuah “alamat pelarian” dikendalikan dalam beberapa cara oleh Polkadot validators bisa menerima tokens yang ditransfer (dan data dikirim bersamanya). Bukti SPV dapat diberikan dengan oracles yang diberi insentif dan, bersama dengan periode konfirmasi, hadiah yang diberikan mengidentifikasi blok non-kanonik yang menyiratkan transaksi telah “dibelanjakan ganda”. Setiap token yang kemudian dimiliki di “alamat pelarian” pada prinsipnya akan dikontrol oleh validator yang sama untuk penyebaran selanjutnya. Namun masalahnya adalah bagaimana deposit dapat dikontrol dengan aman dari set validator yang berputar. Berbeda dengan Ethereum yang mampu mengambil keputusan sewenang-wenang berdasarkan berdasarkan kombinasi tanda tangan, Bitcoin secara substansial lebih terbatas, sebagian besar klien hanya menerima transaksi multisignature dengan maksimal 3 pihak. Memperluasnya menjadi 36, atau bahkan ribuan seperti yang diinginkan, tidak mungkin dilakukan berdasarkan protokol saat ini. Salah satu opsinya adalah mengubah protokol Bitcoin menjadi aktif fungsionalitas seperti itu, namun apa yang disebut “hard fork” di dalamnya Bitcoin dunia sulit untuk diatur penilaiannya berdasarkan upaya baru-baru ini. Salah satu kemungkinannya adalah penggunaan tanda tangan ambang batas, skema kriptografi untuk memungkinkan publik yang dapat diidentifikasi secara tunggal kunci untuk dikontrol secara efektif oleh banyak “bagian” rahasia, sebagian atau seluruhnya harus dimanfaatkan untuk membuat tanda tangan yang sah. Sayangnya, tanda tangan ambang batas kompatibel dengan ECDSA Bitcoin secara komputasi mahal buat dan kompleksitas polinomial. Skema lain seperti itu Namun, tanda tangan Schnorr memberikan biaya yang jauh lebih rendah garis waktu di mana mereka dapat diperkenalkan ke Bitcoin protokol tidak pasti. Karena keamanan tertinggi dari simpanan ada pada sejumlah validator yang terikat, salah satu opsi lainnya adalah melakukannya mengurangi pemegang kunci multi-tanda tangan menjadi hanya banyak subset terikat dari total validators sedemikian rupa sehingga ambang batas tersebut tanda tangan menjadi layak (atau, paling buruk, tanda tangan asli Bitcoin multi-tanda tangan dimungkinkan). Hal ini tentu saja mengurangi jumlah total obligasi yang dapat dikurangi sebagai ganti rugi jika validator berperilaku ilegal, namun hal ini adalah degradasi yang baik, hanya dengan menetapkan batas atas jumlah dana yang dapat berjalan dengan aman di antara dua jaringan (atau bahkan, pada % kerugian jika terjadi serangan dari validators berhasil). Oleh karena itu, kami yakin tidak realistis untuk menempatkan “parachain virtual” interoperabilitas Bitcoin yang cukup aman antara kedua jaringan, meskipun tetap merupakan upaya besar dengan jangka waktu yang tidak pasti dan sangat mungkin terjadi memerlukan kerja sama dari para pemangku kepentingan di dalamnya jaringan.

Protocolo en detalle

El protocolo se puede dividir aproximadamente en tres partes: el mecanismo de consenso, la interfaz parachain y enrutamiento de transacciones entre cadenas. 6.1. cadena de relevo Operación. el cadena de relevos voluntad Probablemente sea una cadena muy similar a Ethereum en que está basado en el estado con la dirección de asignación del estado a la cuenta información, principalmente saldos y (para evitar repeticiones) una contador de transacciones. Colocar cuentas aquí cumple un propósito: dar cuenta de lo que la identidad posee. qué cantidad de participación en el sistema.7 Sin embargo, habrá diferencias notables: • Los contratos no pueden implementarse a través de transacciones; Siguiendo el deseo de evitar la funcionalidad de la aplicación en la cadena de relés, no apoyar el despliegue público de los contratos. • No se contabiliza el uso de recursos informáticos (“gas”); ya que las únicas funciones disponibles para uso público será arreglado, la razón detrás de la contabilidad del gas ya no aguanta. Como tal, se aplicará una tarifa fija en todos los casos, lo que permite un mayor rendimiento de cualquier ejecución de código dinámico que puede ser necesario realizar y un formato de transacción más simple. • Se admite una funcionalidad especial para los contratos listados que permite la ejecución automática y la salida de mensajes de red. En el caso de que la cadena de relés tenga una VM y sea Basado en EVM, tendría una serie de modificaciones para garantizar la máxima simplicidad. probablemente tener una serie de contratos incorporados (similares a los de direcciones 1-4 en Ethereum) para permitir la configuración específica de la plataforma. deberes a gestionar, incluido un contrato de consenso, un Contrato validator y un contrato parachain. Si no es el EVM, entonces la alternativa más probable es un backend WebAssembly [2] (wasm); en este caso el total La estructura sería similar, pero no habría necesidad. para los contratos incorporados con Wasm como un objetivo viable para lenguajes de propósito general en lugar de los inmaduros e idiomas limitados para EVM. Otras posibles desviaciones del protocolo actual Ethereum son bastante posibles, por ejemplo, una simplificación del formato de recibo de transacción que permite la ejecución paralela de transacciones no conflictivas dentro del mismo bloque, como se propone para la serie de cambios Serenity. Es posible, aunque poco probable, que un modelo similar al Serenity La cadena "pura" se implementará como cadena de relevos, lo que permitirá una contrato particular para gestionar cosas como el staking token equilibrios en lugar de convertirlos en una parte fundamental El protocolo de la cadena. En la actualidad, creemos que es poco probable que esto ofrecerá una simplificación del protocolo lo suficientemente grande como para ser Vale la pena la complejidad e incertidumbre adicionales involucradas. en desarrollarlo. 7 Como medio para representar la cantidad que un titular determinado es responsable de la seguridad general del sistema, estas cuentas de participación inevitablemente codifican algún valor económico. Sin embargo, debe entenderse que dado que no existe la intención de que dichos valores se utilicen en de cualquier manera con el fin de intercambiar bienes y servicios del mundo real, debe tenerse en cuenta que los tokens no deben compararse con moneda y, como tal, la cadena de retransmisiones conserva su filosofía nihilista con respecto a las aplicaciones.POLKADOT: VISIÓN PARA UN MARCO MULTICADENA HETEROGÉNEO BORRADOR 1 10 Hay una serie de pequeñas funciones necesarias para administrar el mecanismo de consenso, el conjunto validator, el mecanismo de validación y las paracaídas. estos podrían implementarse juntos bajo un protocolo monolítico. Sin embargo, por motivos de modularidad, los describimos como "contratos" de la cadena de retransmisiones. Esto debería entenderse en el sentido de que son objetos (en el sentido de programación orientada a objetos) gestionada por el mecanismo de consenso de la cadena de retransmisión, pero no necesariamente eso se definen como programas en códigos de operación similares a EVM, ni incluso que sean direccionables individualmente a través del sistema de cuentas. 6.2. Contrato de participación. Este contrato mantiene el conjunto validator. Gestiona: • qué cuentas son actualmente validators; • que están disponibles para convertirse en validators en breve aviso; • qué cuentas han colocado participación nominando a un validator; • propiedades de cada uno, incluido el volumen staking, tasas y direcciones de pago aceptables e identidades de corto plazo (sesión). Permite que una cuenta registre el deseo de convertirse en vinculado validator (junto con sus requisitos), para nominar a alguna identidad y para validators vinculados preexistentes para registrar su deseo de salir de este estado. También incluye la propia maquinaria para el mecanismo de validación y canonicalización. 6.2.1. Participación-token Liquidez. Generalmente es deseable tener la mayor cantidad posible del total de staking tokens para ser en juego dentro de las operaciones de mantenimiento de la red desde esto vincula directamente la seguridad de la red con la "capitalización de mercado" general de staking token. Esto puede fácilmente ser incentivado inflando la moneda y entregando las ganancias a quienes participan como validators. Sin embargo, hacerlo presenta un problema: si el token está bloqueado en el contrato de participación bajo castigo de reducción, ¿cómo puede una parte sustancial permanecer lo suficientemente ¿Líquido para permitir el descubrimiento de precios? Una respuesta a esto es permitir un contrato de derivados sencillo, asegurando tokens fungibles sobre un token subyacente apostado. Esto es difícil de arreglar de manera libre de confianza. Además, estos derivados tokens no pueden tratarse por igual por la misma razón por la que los diferentes bonos gubernamentales de la eurozona no son fungibles: hay existe la posibilidad de que el activo subyacente falle y se convierta en inútil. Con los gobiernos de la eurozona, podría haber una predeterminado. Con validator apostados tokens, el validator puede actuar maliciosamente y ser castigado. Siguiendo nuestros principios, elegimos la solución más simple: no se apostarán todos los token. Esto significaría que una proporción (quizás el 20%) de tokens permanecerá líquida por la fuerza. Aunque esto es imperfecto desde una perspectiva de seguridad, es poco probable que marque una diferencia fundamental en la seguridad de la red; El 80% de las reparaciones posibles derivadas de la confiscación de bonos todavía podrían hacerse en comparación con el "caso perfecto" del 100% staking. La relación entre tokens apostados y líquidos se puede determinar de forma bastante sencilla mediante un mecanismo de subasta inversa. Básicamente, titulares de token interesados en ser validator cada uno publicaría una oferta para el contrato staking indicando la tasa de pago mínima que necesitarían para tomar parte. Al comienzo de cada sesión (las sesiones sucede regularmente, tal vez tan a menudo como una vez por hora) el validator espacios se llenarían de acuerdo con cada aspirante Tasa de participación y pago de validator. Un posible algoritmo porque esto sería tomar aquellos con las ofertas más bajas que representar una participación no superior a la participación total objetivo dividido por el número de espacios y no inferior a un límite inferior de la mitad de esa cantidad. Si las plazas no se pueden llenar, el límite inferior podría reducirse repetidamente en algún factor para satisfacerlo. 6.2.2. Nominación. Es posible nominar sin confianza unos staking tokens a un validator activo, dándoles la responsabilidad de los deberes de validator. Nominación de obras a través de un sistema de votación de aprobación. Cada posible nominador puede publicar una instrucción en el contrato staking expresando una o más identidades validator bajo cuyas responsabilidad que están dispuestos a confiar a su vínculo. En cada sesión, los bonos de los nominadores se distribuyen para ser representado por uno o más validators. El algoritmo de dispersión se optimiza para un conjunto de validators de total equivalente bonos. Los bonos de los nominadores quedan bajo la responsabilidad efectiva del validator ay ganar interés o sufrir una reducción del castigo en consecuencia. 6.2.3. Confiscación/quema de bonos. Cierto comportamiento validator resulta en una reducción punitiva de su vínculo. si la fianza se reduce por debajo del mínimo permitido, el La sesión finaliza prematuramente y se inicia otra. Una lista no exhaustiva de mala conducta punible validator incluye: • Ser parte de un grupo parachain que no puede proporcionar consenso sobre la validez de un bloque de parachain; • firmar activamente por la validez de un documento inválido bloque de paracaídas; • incapacidad de suministrar cargas útiles de salida anteriormente votado como disponible; • inactividad durante el proceso de consenso; • validación de bloques de cadena de relés en horquillas de la competencia. Algunos casos de mala conducta amenazan la integridad de la red (como firmar bloques de parachain no válidos y validar múltiples lados de una bifurcación) y, como tal, resultan en un exilio efectivo mediante la reducción total del vínculo. en otros casos menos graves (por ejemplo, inactividad en el consenso proceso) o casos en los que no se puede asignar la culpa con precisión (ser parte de un grupo ineficaz), una pequeña porción de la fianza podrá ser multado. En este último caso, este funciona bien con la rotación de subgrupos para garantizar que las personas maliciosas Los nodos sufren sustancialmente más pérdidas que los nodos benévolos con daños colaterales. En algunos casos (por ejemplo, validación de múltiples bifurcaciones y no válida firma de subbloque) validators no pueden detectar fácilmente el mal comportamiento de los demás debido a la verificación constante de cada bloque de parachain sería una tarea demasiado ardua. aquí es necesario conseguir el apoyo de partidos externos a el proceso de validación para verificar y denunciar dicha mala conducta. Las partes obtienen una recompensa por denunciar dicha actividad; su término, “pescadores”, surge de la improbabilidad de tal recompensa. Dado que estos casos suelen ser muy graves, imaginamos que cualquier recompensa puede pagarse fácilmente con la fianza confiscada. En general preferimos equilibrar la quema (es decir, reducción a nada) con reasignación, en lugar de intentar una reasignación total. Esto tiene el efecto de

POLKADOT: VISIÓN PARA UN MARCO MULTICADENA HETEROGÉNEO BORRADOR 1 11 aumentando el valor total del token, compensando el red en general hasta cierto punto en lugar de la red específica parte involucrada en el descubrimiento. Esto es principalmente como medida de seguridad. mecanismo: las grandes cantidades involucradas podrían llevar a una incentivación extrema y aguda del comportamiento si todas otorgado a un solo objetivo. En general, es importante que la recompensa sea lo suficientemente grande como para que la verificación valga la pena para la red, pero no tan grande como para compensar los costos de afrontar una transacción. criminal bien financiada y bien orquestada a “nivel industrial” ataque de piratería a algún desafortunado validator para forzar un mal comportamiento. De esta manera, la cantidad reclamada en general no debería ser mayor que el vínculo directo del errante validator, no sea que un El incentivo perverso surge de comportarse mal y reportarse para recibir la recompensa. Esto puede combatirse explícitamente a través de un requisito mínimo de vinculación directa por ser validator o implícitamente educando a los nominadores que los validators con pocos bonos depositados no tienen grandes incentivos portarse bien. 6.3. Registro de paracaídas. Cada paracadena se define en este registro. Es una construcción similar a una base de datos relativamente simple y contiene información tanto estática como dinámica sobre cada cadena. La información estática incluye el índice de cadena (un simple entero), junto con la identidad del protocolo de validación, un medios para distinguir entre las diferentes clases de parachain para que el algoritmo de validación correcto pueda ser dirigido por validators dedicados a presentar un candidato válido. Una prueba de concepto inicial se centraría en colocar los nuevos algoritmos de validación en los propios clientes, lo que efectivamente requiere una bifurcación dura del protocolo cada vez que Se agregaron clases adicionales de cadena. Aunque en última instancia, es posible especificar el algoritmo de validación en de una manera lo suficientemente rigurosa y eficiente para que los clientes estén capaz de trabajar eficazmente con nuevas paracaídas sin bifurcación dura. Una posible vía para lograrlo sería especificar el algoritmo de validación de parachain en un bien establecido, lenguaje compilado de forma nativa y neutral a la plataforma, como WebAssembly. Se necesitan investigaciones adicionales para determinar si esto es realmente factible; sin embargo, si es así, podría traer con ello la tremenda ventaja de desterrar los hard-forks para siempre. La información dinámica incluye aspectos del sistema de enrutamiento de transacciones que deben tener un acuerdo global, como como la cola de ingreso de la parachain (descrita en la sección 6.6). El registro solo puede agregar paracaídas mediante votación plena en referéndum; esto podría ser manejado internamente, pero lo más probable es que se coloque en un lugar externo. contrato de referéndum para facilitar la reutilización en virtud de componentes de gobernanza más generales. Los parámetros a requisitos de votación (por ejemplo, cualquier quórum requerido, mayoría requerido) para el registro de cadenas adicionales y otros, Las actualizaciones menos formales del sistema se establecerán en un “documento maestro”. constitución”, pero es probable que sigan una política bastante tradicional. camino, al menos inicialmente. La formulación precisa está fuera de alcance para el presente trabajo, pero p.e. una supermayoría de dos tercios para aprobar con más de un tercio del sistema total La votación positiva en juego puede ser un punto de partida sensato. Las operaciones adicionales incluyen la suspensión y eliminación de paracaídas. Es de esperar que la suspensión nunca suceder, sin embargo, está diseñado para ser una salvaguardia menos Puede haber algún problema intratable en el sistema de validación de una parachain. El caso más obvio en el que podría Lo que se necesita es una diferencia crítica de consenso entre las implementaciones que lleven a validators a no poder ponerse de acuerdo sobre validez o bloqueos. Se alentaría a los validadores a utilizar múltiples implementaciones de clientes para que puedan para detectar tal problema antes de la confiscación de la fianza. Dado que la suspensión es una medida de emergencia, sería bajo los auspicios de la dinámica validator-votación en lugar que un referéndum. La reinstalación sería posible tanto de los validators o un referéndum. La eliminación total de las paracaídas se produciría sólo después de un referéndum y con el que se requeriría una período de gracia sustancial para permitir una transición ordenada a ya sea una cadena independiente o para formar parte de alguna otra sistema de consenso. El período de gracia probablemente sería de el orden de meses y es probable que se establezca por cadena en el registro de parachain para que diferentes Las paracaídas pueden disfrutar de diferentes períodos de gracia según su necesidad. 6.4. Bloques de relés de sellado. El sellado se refiere, en esencia, al proceso de canonicalización; es decir, un dato básico transformar cualmapea el original en algo fundamentalmente singular y significativo. Bajo una cadena PoW, Sellado es efectivamente sinónimo de minería. En nuestro caso, Implica la recopilación de declaraciones firmadas de validators sobre la validez, disponibilidad y canonicidad de un bloque de cadena de relés particular y los bloques de paracadena que representa. La mecánica del algoritmo de consenso subyacente BFT está fuera del alcance del presente trabajo. nosotros lo haremos en su lugar, descríbalo usando una primitiva que asume una máquina estatal creadora de consenso. En definitiva esperamos inspirarse en una serie de consensos prometedores BFT algoritmos en el núcleo; Tangaora [9] (una variante BFT de Balsa [16]), Tendermint [11] y HoneyBadgerBFT [14]. El algoritmo tendrá que llegar a un acuerdo sobre múltiples paracaídas en paralelo, diferenciándose así del habitual blockchain mecanismos de consenso. Suponemos que una vez Se alcanza el consenso, podemos registrar el consenso. en una prueba irrefutable que puede ser aportada por cualquiera de los participantes en el mismo. También asumimos que el mal comportamiento dentro del protocolo generalmente se puede reducir a una pequeña grupo que contiene participantes que se portan mal para minimizar los daños colaterales a la hora de aplicar el castigo.8 La prueba, que toma la forma de nuestras declaraciones firmadas, se coloca juntas en el encabezado del bloque de la cadena de retransmisión. con algunos otros campos, entre ellos la raíz de estado de la cadena de retransmisión y la raíz de transacción. el sellado proceso toma lugar bajo un soltero generación de consenso mecanismo dirigiéndose ambos el bloque de la cadena de relés y los bloques de paracaídas que hacen forman parte del contenido del relevo: las paracaídas no son "comprometidas" por separado por sus subgrupos y luego cotejadas más tarde. Esto resulta en un proceso más complejo para la cadena de retransmisión, pero nos permite completar el consenso de todo el sistema en una sola etapa, minimizando la latencia y permitiendo para requisitos bastante complejos de disponibilidad de datos que son útil para el proceso de enrutamiento a continuación. 8Los esquemas de consenso BFT existentes basados ​​en PoS, como Tendermint BFT y el Slasher original, cumplen estas afirmaciones.

POLKADOT: VISIÓN PARA UN MARCO MULTICADENA HETEROGÉNEO BORRADOR 1 12 El estado de la máquina de consenso de cada participante puede modelarse como una tabla simple (bidimensional). Cada participante (validator) tiene un conjunto de información, en la forma de declaraciones firmadas ("votos") de otros participantes, con respecto a cada candidato del bloque de parachain así como al candidato del bloque de retransmisión. El conjunto de información es de dos piezas. de datos: Disponibilidad: ¿no? esto validator tener salida información de publicación de transacciones de este bloque para que ¿Pueden validar adecuadamente los candidatos de parachain en el siguiente bloque? ellos pueden votar ya sea 1 (conocido) o 0 (aún no conocido). Una vez que ellos voto 1, se comprometen a votar de manera similar por el resto de este proceso. Votos posteriores que no respetar esto son motivo de castigo. Validez: ¿es válido el bloque parachain y es todo? datos de referencia externa (p. ej. transacciones) disponible? Esto solo es relevante para validators asignados a la paracadena por la que están votando. Pueden votar 1 (válido), -1 (inválido) o 0 (aún no conocido). Una vez que votan distinto de cero, Estamos comprometidos a votar de esta manera durante el resto del año. el proceso. Votos posteriores que no respetan esto. son motivo de castigo. Todos los validators deben enviar votos; Los votos podrán ser reenviados, calificados por las reglas anteriores. La progresión de El consenso se puede modelar como múltiples algoritmos de consenso estándar BFT sobre cada paracadena que ocurren en paralelo. Dado que estos se ven potencialmente frustrados por una relativamente pequeña minoría de actores maliciosos concentrados en un solo grupo parachain, existe el consenso general para establecer un respaldo que limite el peor de los casos. punto muerto a simplemente uno o más bloques de parachain vacíos (y ronda de castigo para los responsables). Las reglas básicas para la validez de los bloques individuales (que permiten que el conjunto total de validators en su conjunto llegue a consenso para que se convierta en el único candidato parachain para ser referenciado desde el relé canónico): • debe tener al menos dos tercios de sus validators votando positivamente y ninguno votando negativamente; • debe tener más de un tercio de validators votando positivamente a la disponibilidad de información de la cola de salida. Si hay al menos un voto positivo y al menos uno negativo sobre la validez, se crea una condición excepcional. y todo el conjunto de validators debe votar para determinar si hay partes maliciosas o si hay un accidente tenedor. Además de válidos e inválidos, existe un tercer tipo de votos. están permitidos, equivalente a votar por ambos, lo que significa que el nodo tiene opiniones contradictorias. Esto podría deberse a la propietario del nodo ejecuta múltiples implementaciones que no no están de acuerdo, lo que indica una posible ambigüedad en el protocolo. Después de contar todos los votos del conjunto completo validator, si la opinión perdedora tiene al menos una pequeña proporción (a estar parametrizado; como máximo la mitad, quizás significativamente menos) de los votos de la opinión ganadora, entonces se supone que ser una bifurcación accidental de la parachain y la parachain se suspende automáticamente del proceso de consenso. En caso contrario, asumimos que se trata de un acto doloso y castigamos al minoría que votó a favor de la opinión disidente. La conclusión es un conjunto de firmas que demuestran canonicidad. A continuación se puede sellar el bloque de la cadena de relés. y comenzó el proceso de sellado del siguiente bloque. 6.5. Mejoras para el sellado de bloques de relés. mientras este método de sellado ofrece fuertes garantías sobre el funcionamiento del sistema, no se escala particularmente bien ya que la información clave de cada parachain debe tener su Disponibilidad garantizada por más de un tercio de todos los validator. Esto significa que la huella de responsabilidad de cada validator crece a medida que se añaden más cadenas. Si bien la disponibilidad de datos dentro de redes de consenso abierto es esencialmente un problema sin resolver, existen formas de mitigar la sobrecarga colocada en validator nodos. uno simple La solución es darse cuenta de que si bien validators deben asumir asumen la responsabilidad de la disponibilidad de los datos, no necesitan almacenar, comunicar o replicar los datos ellos mismos. Silos de datos secundarios, posiblemente relacionados (o incluso con los mismos) mismos) los recopiladores que recopilan estos datos, podrán gestionar la tarea de garantizar la disponibilidad con los validator proporcionando una parte de sus intereses/ingresos en pago. Sin embargo, si bien esto podría permitir cierta escalabilidad intermedia, todavía no soluciona el problema subyacente; desde agregar más cadenas en general requerirá validators adicionales, el consumo continuo de recursos de la red (particularmente en términos de ancho de banda) crece con el cuadrado de elcadenas, una propiedad insostenible en el largo plazo. Al final, es probable que sigamos golpeándonos la cabeza. contra la limitación fundamental que establece que para una red de consenso para ser considerada disponible segura, la Los requisitos continuos de ancho de banda son del orden del total. validators multiplicado por la información de entrada total. Esto se debe a la incapacidad de una red que no es de confianza para distribuir adecuadamente la tarea de almacenamiento de datos entre muchos nodos, que se encuentra aparte de la tarea eminentemente distribuible de procesamiento. 6.5.1. Presentamos la latencia. Una manera de suavizar esto La regla es relajar la noción de inmediatez. Al requerir que el 33%+1 validators voten por la disponibilidad solo eventualmente, y no inmediatamente, podemos utilizar mejor la propagación exponencial de datos y ayudar a nivelar los picos en el intercambio de datos. Una igualdad razonable (aunque no demostrada) puede ser: (1) latencia = participantes × cadenas Según el modelo actual, el tamaño del sistema aumenta con el número de cadenas para garantizar que el procesamiento sea distribuido; ya que cada cadena requerirá al menos un validator y fijamos la atestación de disponibilidad a una constante proporción de validators, entonces los participantes crecen de manera similar con el número de cadenas. Terminamos con: (2) latencia = tamaño2 Lo que significa que a medida que el sistema crece, el ancho de banda requerido y la latencia hasta la disponibilidad se conocen en todo el mundo. red, que también podría caracterizarse como el número de bloques antes de la finalidad, aumenta con su cuadrado. esto es un factor de crecimiento sustancial y puede convertirse en un obstáculo notable y obligarnos a adoptar paradigmas “no planos” como componer varios “Polkadotes” en una jerarquía para enrutamiento multinivel de publicaciones a través de un árbol de cadenas de relés.

POLKADOT: VISIÓN PARA UN MARCO MULTICADENA HETEROGÉNEO BORRADOR 1 13 6.5.2. Participación pública. Una dirección más posible es lograr la participación pública en el proceso a través de un Sistema de microdenuncias. Al igual que los pescadores, hay podrían ser partes externas para vigilar a los validators que afirman disponibilidad. Su tarea es encontrar a alguien que parezca incapaz de demostrar tal disponibilidad. Al hacerlo ellos puede presentar una microdenuncia a otros validators. prisionero de guerra o Se puede utilizar un bono apostado para mitigar el ataque de Sybil. lo que haría que el sistema fuera en gran medida inútil. 6.5.3. Garantes de disponibilidad. Una ruta final sería nominar un segundo conjunto de validators vinculados como "disponibilidad garantes”. Estos se unirían igual que con los validator normales, e incluso podrían tomarse del mismo conjunto. (aunque de ser así, se elegirían a lo largo de un período prolongado, al menos por sesión). A diferencia de los validator normales, ellos no cambiaría entre paracaídas sino que más bien Forme un solo grupo para dar fe de la disponibilidad de todos los datos importantes entre cadenas. Esto tiene la ventaja de relajar la equivalencia entre participantes y cadenas. Básicamente, las cadenas pueden crecer (junto con el conjunto de cadena original validator), mientras que Los participantes, y específicamente aquellos que participan en el testamento de disponibilidad de datos, pueden permanecer al menos sublineales. y muy posiblemente constante. 6.5.4. Preferencias del clasificador. Un aspecto importante de este sistema es asegurar que haya una selección saludable de alzadores que crean los bloques en cualquier paracadena determinada. si un un solo alzador dominó una paracadena y luego algunos ataques volverse más factible ya que la probabilidad de la falta de la disponibilidad de datos externos sería menos obvia. Una opción es pesar artificialmente los bloques de paracaídas en un mecanismo pseudoaleatorio para favorecer una amplia variedad de alzadoras. En primera instancia requeriríamos como parte del mecanismo de consenso que favorece a validators Se determinó que los candidatos del bloque parachain son "más pesados". De manera similar, debemos incentivar a validators para que intenten sugerir el bloque más pesado que puedan encontrar; este podría ser Esto se hace haciendo que una parte de su recompensa sea proporcional al peso de su candidato. Para garantizar que los alzadores reciban una remuneración justa posibilidades de que su candidato sea elegido ganador candidato en consenso, hacemos el peso específico de un Candidato de bloque de parachain determinado en una función aleatoria conectada con cada alzador. Por ejemplo, tomando la medida de distancia XOR entre la dirección del alzador y algún número pseudoaleatorio criptográficamente seguro determinado cerca del punto del bloque que se está creando (un “billete ganador” ficticio). Esto efectivamente le da a cada clasificador (o, más específicamente, la dirección de cada clasificador) un probabilidad aleatoria de que su bloque de candidatos “gane” todos los demás. Para mitigar el ataque sybil de un solo alzador que “extrae” una dirección cercana al boleto ganador y, por lo tanto, es un favorito en cada bloque, agregaríamos algo de inercia a la dirección de un clasificador. Esto puede ser tan simple como exigirles tener una cantidad base de fondos en la dirección. un mas Un enfoque elegante sería ponderar la proximidad al boleto ganador con la cantidad de fondos estacionados en el dirección en cuestión. Si bien aún no se ha hecho el modelado, es muy posible que este mecanismo permita incluso pequeños interesados para que contribuyan como recopiladores. 6.5.5. Bloques con sobrepeso. Si un conjunto validator está comprometido, pueden crear y proponer un bloque que, aunque válido, requiere una cantidad excesiva de tiempo para ejecutarse y validar. Esto es un problema ya que un grupo validator podría formar razonablemente un bloque que tarda mucho tiempo en ejecutar a menos que ya se conozca alguna información particular que permita un atajo, p. factorizar un gran prima. Si un solo recopilador conociera esa información, entonces tendrían una clara ventaja al conseguir su propio Los candidatos aceptaron siempre que los demás estuvieran ocupados procesando el antiguo bloque. A estos bloques los llamamos sobrepeso. La protección contra validators que envía y valida estos bloques se presenta en gran medida de la misma manera que para bloques no válidos, aunque con una advertencia adicional: dado que el tiempo necesario para ejecutar un bloque (y por lo tanto su estado como sobrepeso) es subjetivo, el resultado final de una votación sobre El mal comportamiento se dividirá esencialmente en tres campos. uno Lo más probable es que el bloque definitivamente no tenga sobrepeso. en este caso más de dos tercios declaran que podrían ejecutar el bloque dentro de algún límite (por ejemplo, 50% del tiempo total permitido entre bloques). Otra es que el el bloque es ddefinitivamente sobrepeso: esto sería si más de dos tercios declaran que no pudieron ejecutar el bloqueo dentro de dicho límite. Una última posibilidad es una situación bastante igual. división de opiniones entre validators. En este caso, podemos optar por aplicar algún castigo proporcionado. Para garantizar que los validators puedan predecir cuándo pueden ser Al proponer un bloque con sobrepeso, puede ser sensato exigirles que publiquen información sobre su propio desempeño para cada bloque. Durante un período de tiempo suficiente, esto debería permitirles perfilar su velocidad de procesamiento en relación con los pares que los juzgarían. 6.5.6. Seguro de alzador. Queda un problema para validators: A diferencia de las redes PoW, para comprobar el estado de un alzador. bloque para su validez, en realidad deben ejecutar las transacciones en él. Los alzadores maliciosos pueden alimentar a los validator con bloques no válidos o con sobrepeso, causándoles dolor (desperdiciando sus recursos) y exigir un costo de oportunidad potencialmente sustancial. Para mitigar esto, proponemos una estrategia simple sobre la parte de validators. En primer lugar, se enviaron candidatos a bloques de parachain a validators debe estar firmado desde una cuenta de cadena de retransmisión con fondos; si no es así, entonces el validator debería desaparecer inmediatamente. En segundo lugar, dichos candidatos deben ordenarse en prioridad mediante una combinación (por ejemplo, multiplicación) de la cantidad de fondos en la cuenta hasta cierto límite, el número de bloques anteriores que el clasificador ha propuesto con éxito en el pasado (sin mencionar cualquier castigos), y el factor de proximidad al ganador. billete como se explicó anteriormente. La gorra debe ser la misma. como los daños punitivos pagados al validator en el caso de ellos enviando un bloque no válido. Para disuadir a los recopiladores de enviar candidatos de bloque no válidos o con sobrepeso a validators, cualquier validator puede colocar en el siguiente bloque una transacción que incluya el bloque infractor que alega mala conducta con el efecto de transferir parte o la totalidad de los fondos en la cuenta del cotejador que se porta mal. cuenta al agraviado validator. Este tipo de transacción anticipa cualquier otra para garantizar que el clasificador no pueda retirar los fondos antes del castigo. la cantidad de Los fondos transferidos como daños y perjuicios son un parámetro dinámico todavía.

POLKADOT: VISIÓN PARA UN MARCO MULTICADENA HETEROGÉNEO BORRADOR 1 14 se modelará, pero probablemente será una proporción de la recompensa del bloque validator para reflejar el nivel de duelo causado. a Para evitar que validators maliciosos confisquen arbitrariamente los fondos de los cotejadores, el cotejador puede apelar la decisión de validator ante un jurado de validators elegidos al azar a cambio Para realizar un pequeño depósito. Si fallan a favor de validator, el depósito es consumido por ellos. Si no, el Se devuelve el depósito y se multa el validator (ya que el validator está en una posición mucho más abovedada, la multa probablemente sea bastante pesado). 6.6. Intercadena Transacción Enrutamiento. Intercadena El enrutamiento de transacciones es uno de los mantenimientos esenciales. tareas de la cadena de relés y sus validators. Este es el Lógica que rige cómo una transacción publicada (a menudo abreviada como simplemente "publicar") pasa de ser un resultado deseado. de una parachain de origen a ser una entrada no negociable de otra parachain de destino sin ninguna confianza requisitos. Elegimos cuidadosamente la redacción anterior; notablemente nosotros no requiere que haya habido una transacción en la fuente parachain haber sancionado explícitamente esta publicación. el unico limitaciones que imponemos a nuestro modelo es que las paracaídas debe proporcionar, empaquetado como parte de su bloque general salida del procesamiento, las publicaciones que son el resultado de la ejecución del bloque. Estas publicaciones están estructuradas como varias colas FIFO; el número de listas se conoce como base de enrutamiento y puede ser alrededor de 16. En particular, este número representa la cantidad de paracaídas que podemos soportar sin tener que recurrir a enrutamiento multifase. Inicialmente, Polkadot admitirá esto tipo de ruta directa, sin embargo, describiremos una posible proceso de enrutamiento multifase (“hiperenrutamiento”) como medio de escalar mucho más allá del conjunto inicial de paracaídas. nosotros asumir eso todos participantes saber el subgrupos para los dos bloques siguientes n, n + 1. En resumen, el El sistema de enrutamiento sigue estas etapas: • CollatorS: miembros de contacto de V alidators[n][S] • Clasificadores: PARA CADA subgrupo: asegurar al menos al menos 1 miembro de V alidators[n][s] en contacto • Alzadoras: PARA CADA subgrupo s: asumir salida[n −1][s][S] está disponible (todas las publicaciones entrantes datos a 'S' del último bloque) • Alzadoras: Componga el bloque candidato b para S: (b.encabezado, b.ext, b.prueba, b.recibo, b.salida) • Alzadoras: enviar prueba información prueba[S] = (b.encabezado, b.ext, b.prueba, b.recibo) a V alidadores[n][S] • CollatorS: garantiza datos de transacciones externas b.ext se pone a disposición de otros alzadores y validators • Alzadoras: PARA CADA UNO subgrupo es: enviar salida información salida[n][S][s] = (b.encabezado, b.recibo, b.salida[s]) a el recibiendo subgrupos miembros de siguiente bloquear V alidadores[n + 1][s] • V alidatorV: preconecta todos los miembros del mismo conjunto para el siguiente bloque: sea N = Chain[n + 1][V]; conectar todos los validators v tales que Chain[n + 1][v] = N • ValidadorV : Cotejar todos los datos ingresados para esto bloque: PARA CADA UNO subgrupo es: recuperar salida[n −1][s][Chain[n][V ]], obtenga de otros validators v tal que Chain[n][v] = Chain[n][V ]. Posiblemente recurriendo a otros validator seleccionados al azar como prueba del intento. • ValidadorV : Aceptar pruebas candidatas para esto. prueba de bloque[Cadena[n][V ]]. Validez del bloque de votos • ValidadorV : Aceptar datos de salida del candidato para siguiente bloque: PARA CADA subgrupo, aceptar salida[n][s][N]. Disponibilidad de salida del bloque de votación; volver a publicar entre los validators interesados v de modo que Cadena[n + 1][v] = Cadena[n + 1][V]. • V alidadorV : HASTA EL CONSENSO Donde: salida[n][desde][hasta] es la cola de salida actual información para publicaciones que van desde parachain 'desde', hasta parachain 'a' en el bloque número 'n'. CollatorS es un clasificador para parachain S. V alidators[n][s] es el conjunto de validators para parachain s en el bloque número n. Por el contrario, Chain[n][v] es la paracadena a la que se asigna validator v en el bloque número n. block.egress[to] es la salida cola de publicaciones de algún bloque de parachain cuyo El destino de la parachain es. Dado que los alzadores cobran tarifas (de transacción) basadas en sus bloques se vuelven canónicos y se les incentiva a asegúrese de que para cada destino del siguiente bloque, el subgrupo los miembros son informados de la cola de salida del presente bloque. Los validadores solo están incentivados a formar un consenso sobre un bloque (parachain), como tal, les importa poco cuyo bloque de alzador finalmente se vuelve canónico. en En principio, un validator podría formar una alianza con un recopilador y conspirar para reducir las posibilidades de que otros recopiladores Los bloques se vuelven canónicos, sin embargo, esto es difícil. para organizar debido a la selección aleatoriación de validators para parachains y podría defenderse con una reducción en las tarifas pagaderas por los bloques de parachain que resisten el proceso de consenso. 6.6.1. Disponibilidad de datos externos. Garantizar la seguridad de una paracadena La disponibilidad de datos externos es un problema constante con sistemas descentralizados destinados a distribuir la carga de trabajo entre la red. El meollo del problema es la disponibilidad problema que establece que dado que no es posible hacer una prueba de disponibilidad no interactiva ni ningún tipo de prueba de no disponibilidad, para que un sistema BFT funcione correctamente validar cualquier transición cuya corrección dependa de la disponibilidad de algunos datos externos, el número máximo de nodos aceptablemente bizantinos, más uno, del sistema debe dar fe de que los datos están disponibles. Para que un sistema se amplíe correctamente, como Polkadot, esto invita a un problema: si una proporción constante de validators debe dar fe de la disponibilidad de los datos, y suponiendo que validators realmente querrá almacenar los datos antes de afirmar que están disponibles, entonces, ¿cómo evitamos el ¿Problema de que los requisitos de ancho de banda/almacenamiento aumentan con el tamaño del sistema (y por lo tanto con el número de validators)? Una posible respuesta sería tener un conjunto separado de validators (garantes de disponibilidad), cuyo pedido crece sublinealmente con el tamaño de Polkadot en su conjunto. esto es descrito en 6.5.3. También tenemos un truco secundario. Como grupo, los recopiladores tienen un incentivo intrínseco para garantizar que todos los datos sean disponible para su parachain elegido ya que sin él no pueden crear más bloques a partir de los cuales puedan cobrar tarifas de transacción. Los recopiladores también forman un grupo cuya composición es variada (debido a la naturaleza aleatoria de parachain validator grupos) no trivial de ingresar y fácil

POLKADOT: VISIÓN PARA UN MARCO MULTICADENA HETEROGÉNEO BORRADOR 1 15 para probar. Por lo tanto, a los recopiladores recientes (quizás de los últimos miles de bloques) se les permite emitir desafíos a la disponibilidad de datos externos para una parachain en particular bloquee a validators para obtener un pequeño bono. Los validadores deben comunicarse con aquellos del subgrupo validator aparentemente infractor que testificó y adquirir y devolver los datos al recopilador o escalar la situación. asunto testificando sobre la falta de disponibilidad (la negativa directa a proporcionar los datos cuenta como un delito de confiscación de fianza, por lo tanto, el mal comportamiento de validator probablemente solo desconectar la conexión) y contactar a validators adicionales para ejecutar la misma prueba. En este último caso, la fianza del alzador es devuelto. Una vez que se alcanza un quórum de validators que pueden hacer dichos testimonios de no disponibilidad, son liberados, el El subgrupo que se porta mal es castigado y el bloqueo se revierte. 6.6.2. Enrutamiento de publicaciones. Cada encabezado de parachain incluye un salida-trie-raíz; esta es la raíz de un trie que contiene el contenedores de base de enrutamiento, siendo cada contenedor una lista concatenada de puestos de salida. Se pueden proporcionar pruebas de Merkle en parachain validators para demostrar que una parachain en particular El bloque tenía una cola de salida particular para una parachain de destino particular. Al comienzo del procesamiento de un bloque de parachain, cada La cola de salida de otra parachain con destino a dicho bloque es fusionado en la cola de ingreso de nuestro bloque. Asumimos fuerte, probablemente CSPR9, ordenamiento de subbloques para lograr una operación determinista que no ofrece favoritismo entre ningún Emparejamiento de bloques de paracaídas. Los alzadores calculan la nueva cola y drenar las colas de salida de acuerdo con la parachain lógica. El contenido de la cola de entrada está escrito explícitamente. en el bloque de parachain. Esto tiene dos propósitos principales: En primer lugar, significa que la paracaídas se puede sincronizar sin confianza de forma aislada de las otras paracaídas. En segundo lugar, Simplifica la logística de datos en caso de que todo el ingreso la cola no se puede procesar en un solo bloque; validators y alzadoras pueden procesar los siguientes bloques sin tener que obtener los datos de la cola especialmente. Si la cola de ingreso de la parachain está por encima de un umbral cantidad al final del procesamiento del bloque, luego se marca saturado en la cadena de relés y no pueden recibir más mensajes. se le entregará hasta que sea liquidado. Las pruebas de Merkle son utilizado para demostrar la fidelidad del funcionamiento de la alzadora en La prueba del bloque parachain. 6.6.3. Crítica. Un defecto menor relacionado con este básico El mecanismo es el ataque posterior a la bomba. Aquí es donde todos Las paracaídas envían la máxima cantidad de publicaciones posibles. a una paracadena en particular. Si bien esto ata el objetivo cola de ingreso a la vez, no se produce ningún daño más allá un ataque DoS de transacción estándar. Funcionando con normalidad, con un conjunto de bien sincronizados y alzadores no maliciosos y validators, para N parachains, N × M total validators y L alzadoras por parachain, nosotros Puede desglosar las rutas de datos totales por bloque para: Validador: M −1+L+L: M −1 para los otros validators en el conjunto de parachain, L para cada alzador que proporciona un bloque de parachain candidato y un segundo L para cada alzador del siguiente bloque que requiere las cargas útiles de salida del bloque anterior. (Esto último es en realidad más bien el peor de los casos). operación ya que es probable que los alzadores compartan dichos datos.) Alzador: M +kN: M para una conexión a cada uno relevante bloque de parachain validator, kN para sembrar las cargas útiles de salida en algún subconjunto de cada grupo de parachain validator para el siguiente bloque (y posiblemente algún clasificador favorito). Como tal, las rutas de datos por nodo crecen linealmente con la complejidad general del sistema. Si bien esto es Es razonable, a medida que el sistema se escala a cientos o miles de paracaídas, es posible que se produzca cierta latencia en la comunicación. absorbido a cambio de una menor tasa de crecimiento de la complejidad. En este caso, se puede utilizar un algoritmo de enrutamiento de múltiples fases. para reducir el número de vías instantáneas a costa de introducir buffers de almacenamiento y latencia. 6.6.4. Enrutamiento de hipercubo. El enrutamiento de hipercubos es un mecanismo que en su mayoría puede construirse como una extensión del mecanismo de enrutamiento básico descrito anteriormente. Esencialmente, en lugar de aumentar la conectividad de los nodos con la cantidad de paracaídas y nodos de subgrupos, crecemos solo con el logaritmo de las paracaídas. Los correos pueden transitar entre colas de varias paracaídas en su camino hacia la entrega final. El enrutamiento en sí es determinista y simple. Empezamos por limitar el número de contenedores en las colas de entrada/salida; en lugar de ser el número total de paracaídas, son son losbase de enrutamiento (b). Esto se fijará como el número de cambios de paracaídas, y en su lugar se eleva el exponente de enrutamiento (e). Bajo este modelo, nuestro volumen de mensajes crece con O(be), y las vías permanecen constantes y la latencia (o número de bloques necesarios para la entrega) con O(mi). Nuestro modelo de enrutamiento es un hipercubo de dimensiones e, teniendo cada lado del cubo b posibles ubicaciones. En cada bloque, enrutamos mensajes a lo largo de un solo eje. nosotros alterne el eje en forma circular, garantizando así el peor tiempo de entrega de los bloques e. Como parte del procesamiento de parachain, con destino al extranjero Los mensajes que se encuentran en la cola de entrada se enrutan inmediatamente al contenedor de la cola de salida correspondiente, dada la número de bloque actual (y, por tanto, dimensión de enrutamiento). esto El proceso requiere una transferencia de datos adicional para cada salto. en la ruta de entrega, sin embargo, esto es un problema en sí mismo. que puede mitigarse mediante el uso de algunos medios alternativos de entrega de carga útil de datos e incluye solo una referencia, en lugar de la carga útil completa de la publicación en el post-trie. Un ejemplo de enrutamiento de hipercubo para un sistema con 4 paracaídas, b = 2 y e = 2 podrían ser: Fase 0, en cada mensaje M: • sub0: si Mdest ∈{2, 3} entonces sendTo(2) en caso contrario mantener • sub1: si Mdest ∈{2, 3} entonces sendTo(3) en caso contrario mantener • sub2: si Mdest ∈{0, 1} entonces sendTo(0) en caso contrario mantener • sub3: si Mdest ∈{0, 1} entonces sendTo(1) en caso contrario mantener Fase 1, en cada mensaje M: • sub0: si Mdest ∈{1, 3} entonces sendTo(1) en caso contrario mantener • sub1: si Mdest ∈{0, 2} entonces sendTo(0) en caso contrario mantener • sub2: si Mdest ∈{1, 3} entonces sendTo(3) en caso contrario mantener • sub3: si Mdest ∈{0, 2} entonces sendTo(2) en caso contrario mantener Las dos dimensiones aquí son fáciles de ver como la primera. dos bits del índice de destino; para el primer bloque, el Se utiliza solo el bit de orden superior. El segundo bloque trata con el bit de orden inferior. Una vez que ambas cosas suceden (en forma arbitraria) pedido) entonces la publicación será enrutada. 9 pseudoaleatorio criptográficamente seguro

POLKADOT: VISIÓN PARA UN MARCO MULTICADENA HETEROGÉNEO BORRADOR 1 16 6.6.5. Maximizando la serendipia. Una alteración de lo básico. propuesta vería un total fijo de c2 −c validators, con c−1 validators en cada subgrupo. Cada bloque, en lugar de hay una repartición no estructurada de validators entre paracaídas, en lugar de cada subgrupo de paracaídas, cada validator sería asignado a un único y diferente subgrupo parachain en el siguiente bloque. esto seria llevar a la invariante que entre dos bloques cualesquiera, para cualquier dos pares de parachain, existen dos validators que han intercambiado responsabilidades de parachain. Si bien esto no puede utilizarse para obtener garantías absolutas de disponibilidad (un solo validator ocasionalmente se desconectará, incluso si benévolo), no obstante, puede optimizar el caso general. Este enfoque no está exento de complicaciones. La adición de una paracadena también requeriría una reorganización del conjunto validator. Además, el número de validator, vinculado al cuadrado del número de paracaídas, comenzaría inicialmente muy pequeño y eventualmente crecería mucho demasiado rápido, volviéndose insostenible después de alrededor de 50 paracaídas. Ninguno de estos son problemas fundamentales. En el primer caso, La reorganización de conjuntos validator es algo que debe realizarse. hecho regularmente de todos modos. Respecto al tamaño del validator establecido, cuando es demasiado pequeño, se pueden asignar varios validator a la misma paracadena, aplicando un factor entero a la total general de validators. Un mecanismo de enrutamiento de múltiples fases como el enrutamiento Hypercube, discutido en 6.6.4, aliviar el requisito de una gran cantidad de validators cuando hay una gran cantidad de cadenas. 6.7. Validación de paracadena. El propósito principal de un validator es testificar, como actor bien vinculado, que una paracadena El bloque es válido, incluyendo, entre otros, cualquier transición de estado, cualquier transacción externa incluida, la ejecución de cualquier puesto de espera en la cola de ingreso y el estado final de la cola de salida. El proceso en sí es bastante sencillo. Una vez que el validator selló el bloque anterior quedan libres para comenzar a trabajar para proporcionar un bloque de parachain candidato candidato para la próxima ronda de consenso. Inicialmente, el validator encuentra un candidato a bloque de parachain a través de un intercalador de parachain (descrito a continuación) o uno de sus co-validators. Los datos candidatos del bloque parachain incluye el encabezado del bloque, el encabezado del bloque anterior, cualquier dato de entrada externo incluido (para Ethereum y Bitcoin, dichos datos se denominarían transacciones; sin embargo, en principio pueden incluir estructuras de datos arbitrarias para fines arbitrarios), datos de la cola de salida y datos internos para demostrar la validez de la transición de estado (para Ethereum (estos serían los distintos nodos de prueba de estado/almacenamiento necesarios para ejecutar cada transacción). La evidencia experimental muestra este conjunto de datos completo para un bloque Ethereum reciente ser como máximo unos cientos de KiB. Simultáneamente, si aún no se ha hecho, el validator será intentar recuperar información relativa a la transición del bloque anterior, inicialmente del bloque anterior validators y posteriores de todos los validators que firman para el disponibilidad de los datos. Una vez que validator haya recibido dicho bloque candidato, luego lo validan localmente. El proceso de validación está contenido dentro del módulo validator de la clase parachain, un módulo de software sensible al consenso que debe escribirse para cualquier implementación de Polkadot (aunque en principio una biblioteca con una C ABI podría permitir que una sola biblioteca ser compartido entre implementaciones con el apropiado reducción de la seguridad derivada de tener una sola implementación de “referencia”). El proceso toma el encabezado del bloque anterior y verifica su identidad a través de la cadena de retransmisión recientemente acordada. bloque en el que se debe registrar su hash. Una vez que se determina la validez del encabezado principal, la paracadena específica Se puede llamar a la función de validación de la clase. Esta es una función única que acepta varios campos de datos (aproximadamente los dados anteriormente) y devolver un valor booleano simple proclamando la validez del bloque. La mayoría de estas funciones de validación comprobarán primero la campos de encabezado que pueden derivarse directamente de el bloque principal (por ejemplo, padre hash, número). Siguiendo esto, llenarán cualquier estructura de datos interna como necesarios para procesar transacciones y/o publicaciones. Para una cadena similar a Ethereum, esto equivale a poblar una Pruebe la base de datos con los nodos que serán necesarios para la ejecución completa de las transacciones. Otros tipos de cadenas pueden tener otro pMecanismos reparadores. Una vez hecho esto, las publicaciones de ingreso y las transacciones externas (o lo que sea que representen los datos externos) serán promulgado, equilibrado según las especificaciones de la cadena. (Un El valor predeterminado sensato podría ser exigir que todas las publicaciones de ingreso sean procesado antes de que se atiendan las transacciones externas, sin embargo, esto debería ser decisión de la lógica de la parachain). A través de esta promulgación, se establecerán una serie de puestos de salida creados y se verificará que estos efectivamente coincidan el candidato del clasificador. Finalmente, el lugar debidamente poblado El encabezado se comparará con el encabezado del candidato. Con un bloque candidato completamente validado, el validator Luego puede votar por el hash de su encabezado y enviar toda la información de validación necesaria a los co-validators de su subgrupo. 6.7.1. Alzadores de paracaídas. Los alzadores de Parachain son operadores no vinculados que cumplen gran parte de la tarea de los mineros. en las redes blockchain actuales. son especificos a una paracadena en particular. Para poder operar deben mantener tanto la cadena de relevos como el sistema completamente sincronizado. paracadena. El significado preciso de "completamente sincronizado" dependerá de la clase de parachain, aunque siempre incluirá el estado actual de la cola de ingreso de parachain. En el caso de Ethereum también implica al menos mantener una base de datos Merkle-tree de los últimos bloques, pero podría También incluye varias otras estructuras de datos, incluido Bloom. Filtros para la existencia de cuentas, información familiar, registro. salidas y tablas de búsqueda inversa para el número de bloque. Además de mantener sincronizadas las dos cadenas, También debe “pescar” transacciones manteniendo una cola de transacciones y aceptando transacciones validadas adecuadamente. de la red pública. Con la cola y la cadena, es capaz de crear nuevos bloques candidatos para los validators elegidos en cada bloque (cuya identidad se conoce ya que la cadena de retransmisión está sincronizada) y enviarlos, junto con el diversa información auxiliar, como prueba de validez, a través de la red de pares. Por su problema, cobra todas las tarifas relacionadas con las transacciones que incluye. Varias economías flotan en torno a esto. arreglo. En un mercado altamente competitivo donde hay hay un excedente de alzadoras, es posible que la transacción las tarifas se compartirán con la parachain validators para incentivar la inclusión de un bloque alzador particular. Similarmente,

POLKADOT: VISIÓN PARA UN MARCO MULTICADENA HETEROGÉNEO BORRADOR 1 17 algunos alzadores pueden incluso aumentar los honorarios requeridos a pagar para hacer el bloque más atractivo para validators. En este caso, debería formarse un mercado natural. con transacciones que pagan tarifas más altas y se saltan la cola y tener una inclusión más rápida en la cadena. 6.8. Redes. Creación de redes en blockchains tradicionales como Ethereum y Bitcoin tiene requisitos bastante simples. Todas las transacciones y bloqueos se transmiten en un simple chisme no dirigido. La sincronización es más complicada, especialmente con Ethereum pero en realidad esta lógica estaba contenida en la estrategia de pares en lugar del protocolo en sí, que se resolvió en torno a algunos tipos de mensajes de solicitud y respuesta. Si bien Ethereum avanzó en las ofertas de protocolos actuales con el protocolo devp2p, que permitió a muchos Los subprotocolos se multiplexarán a través de una única conexión de pares y, por lo tanto, tendrán la misma superposición de pares. Admiten muchos protocolos p2p simultáneamente, la parte Ethereum de el protocolo seguía siendo relativamente simple y el p2p El protocolo por ahora permanece inconcluso con importantes Faltan funciones como la compatibilidad con QoS. Lamentablemente, el deseo de crear un protocolo “web 3” más ubicuo se ha extendido en gran medida. falló, y los únicos proyectos que lo utilizaron fueron aquellos explícitamente financiado por la venta colectiva Ethereum. Los requisitos para Polkadot son bastante más sustanciales. Más bien una red totalmente uniforme, Polkadot tiene varios tipos de participantes, cada uno con diferentes requisitos sobre la composición de sus pares y varias redes “vías” cuyos participantes tenderán a conversar sobre datos particulares. Esto significa una superposición de red sustancialmente más estructurada (y un protocolo que la respalde). probablemente será necesario. Además, la extensibilidad para facilitar adiciones futuras, como nuevos tipos de “cadenas”, puede ellos mismos requieren una estructura superpuesta novedosa. Si bien una discusión en profundidad sobre cómo la creación de redes El protocolo puede parecer fuera del alcance de este documento, algunos análisis de requisitos son razonables. podemos dividir aproximadamente a los participantes de nuestra red en dos conjuntos (cadena de relés, paracaídas) cada uno de los tres subconjuntos. podemos También indique que cada uno de los participantes de parachain son solo interesados en conversar entre ellos mismos en lugar de participantes en otras paracaídas: • Participantes de la cadena de retransmisiones: • Validadores: P, dividido en subconjuntos P[s] para cada paracaídas • Garantes de Disponibilidad: A (esto puede estar representado por Validadores en la forma básica del protocolo) • Clientes de cadena de retransmisión: M (nota los miembros de cada El conjunto de paracadenas también tenderá a ser miembros de M) • Participantes de Parachain: • Alzadores de Parachain: C[0], C[1], . . . • Pescadores de Parachain: F[0], F[1],. . . • Clientes de Parachain: S[0], S[1], . . . • Clientes ligeros de Parachain: L[0], L[1], . . . En general nombramos clases particulares de comunicación. tenderá a tener lugar entre miembros de estos conjuntos: • P | un <-> P | R: el lleno conjunto de validators/garantes debe ser bien conectado a lograr consenso. • P[s] <-> C[s] | P[s]: Cada validator como miembro de un grupo parachain determinado tenderá a chismorrear con otros miembros similares, así como con los coladores de esa parachain para descubrir y compartir candidatos de bloque. • A <-> P[s] | C | R: Cada garante de disponibilidad necesitará recopilar cadenas cruzadas sensibles al consenso datos de los validators que se le asignaron; alzadoras también puede optimizar las posibilidades de consenso sobre sus bloquear anunciándolo a los garantes de disponibilidad. Una vez que los tengan, los datos serán desembolsados a otro garante similar para facilitar el consenso. • P[s] <-> A | P[s']: Parachain validators Es necesario recopilar datos de entrada adicionales del conjunto anterior de validators o de los garantes de disponibilidad. • F[s] <-> P: Al informar, los pescadores pueden colocar un reclamo ante cualquier participante. • M <-> M | P | R: Los clientes generales de la cadena de retransmisión desembolsan datos de validators y garantes. • S[s] <-> S[s] | P[s] | R: Los clientes de Parachain desembolsan datos de validator/garantes. • L[s] <-> L[s] | S[s]: clientes ligeros de Parachain desembolsar datos de los clientes completos. Para garantizar un mecanismo de transporte eficiente, se necesita un red superpuesta, como devp2p de Ethereum, donde cada El nodo no diferencia (no arbitrariamente) la idoneidad de sus Es poco probable que sus compañeros sean adecuados. Un razonablemente extensible Es probable que se necesite un mecanismo de selección y descubrimiento de pares. para ser incluido dentro del protocolo así como agresivo planificar una anticipación para garantizar el tipo correcto de pares están conectados “por casualidad”realizado en el momento adecuado. La estrategia precisa de composición de pares será diferente para cada clase de participante: para una escala adecuadamente ampliada multicadena, las alzadoras deberán estar continuamente reconectarse con los validators elegidos en consecuencia, o lo haremos Necesita acuerdos continuos con un subconjunto de validators. para asegurar que no estén desconectados durante la gran mayoría del tiempo que son inútiles para ese validator. Naturalmente, los alzadores también intentarán mantener uno o conexiones más estables en el garante de disponibilidad preparados para garantizar una rápida propagación de sus políticas sensibles al consenso. datos. Los garantes de disponibilidad intentarán principalmente mantener una conexión estable entre sí y con validators (para el consenso y los datos de parachain críticos para el consenso a los que dan fe), así como a algunos alzadores (para el parachain datos) y algunos pescadores y clientes completos (para dispersar información). Los validadores tenderán a buscar otros validator, especialmente aquellos en el mismo subgrupo y cualquier alzadores que puedan suministrarles candidatos a bloques de parachain. Pescadores, así como cadenas de relevos y paracaídas en general. Los clientes generalmente intentarán mantener una conexión abierta a un validator o garante, pero muchos otros nodos similares a sí mismos de otra manera. Los clientes ligeros de Parachain también intentarán estar conectados a un cliente completo de parachain, si no solo otros clientes ligeros de parachain. 6.8.1. El problema de la rotación de pares. En la propuesta de protocolo básico, cada uno de estos subconjuntos se modifica constantemente de forma aleatoria con cada bloque como los validators asignados para verificar las transiciones de parachain se eligen al azar. esto puede ser un problema si es necesario conectar nodos dispares (no pares). pasar datos entre sí. Uno debe confiar en una red de pares bastante distribuida y bien conectada para

POLKADOT: VISIÓN PARA UN MARCO MULTICADENA HETEROGÉNEO BORRADOR 1 18 Asegúrese de que la distancia de salto (y, por lo tanto, la latencia en el peor de los casos) solo crezca con el logaritmo del tamaño de la red. (un protocolo similar a Kademlia [13] puede ayudar aquí), o uno debe introducir tiempos de bloqueo más largos para permitir que se lleve a cabo la negociación de conexión necesaria para mantener un conjunto de pares que Refleja las necesidades de comunicación actuales del nodo. Ninguna de estas son grandes soluciones: tiempos de bloqueo prolongados ser forzado a la red puede hacerla inútil para aplicaciones y cadenas particulares. Incluso un perfectamente justo y la red conectada provocará un desperdicio sustancial del ancho de banda a medida que escala debido a que los nodos desinteresados tienen transmitirles datos que no les son útiles. Si bien ambas direcciones pueden formar parte de la solución, una optimización razonable para ayudar a minimizar la latencia sería ser para restringir la volatilidad de estas parachain validator conjuntos, ya sea reasignando la membresía solo entre series de bloques (por ejemplo, en grupos de 15, que a los 4 segundos El tiempo de bloqueo significaría alterar las conexiones solo una vez por minuto) o rotando los miembros de forma incremental, p. cambiando por un miembro a la vez (por ejemplo, si hay hay 15 validators asignados a cada parachain, entonces, en promedio, sería un minuto completo entre completamente únicos conjuntos). Limitando la cantidad de abandono de pares y garantizando que las conexiones ventajosas entre pares se establezcan bien en avanzar a través de la previsibilidad parcial de parachain conjuntos, podemos ayudar a garantizar que cada nodo mantenga un estado permanente selección fortuita de compañeros. 6.8.2. Camino hacia un protocolo de red eficaz. Probablemente el El esfuerzo de desarrollo más efectivo y razonable se centrará en utilizar un protocolo preexistente en lugar de implementarlo. el nuestro. Existen varios protocolos base peer-to-peer que Podemos usar o aumentar, incluido el propio devp2p de Ethereum. [22], libp2p de IPFS [1] y GNUnet de GNU [4]. Una revisión completa de estos protocolos y su relevancia para construir un Red modular de pares que admite ciertas garantías estructurales, dirección dinámica de pares y subprotocolos extensibles. está mucho más allá del alcance de este documento, pero será una paso importante en la implementación de Polkadot. 7. Aspectos prácticos del Protocolo 7.1. Pago de transacciones entre cadenas. Si bien es un gran Se gana mucha libertad y simplicidad al eliminar la necesidad de un marco de contabilidad de recursos computacionales holístico como el gas de Ethereum, esto plantea una pregunta importante: sin gas, ¿cómo se puede hacer parachain? ¿Evitar que otra paracadena la obligue a realizar cálculos? Si bien podemos confiar en la cola de ingreso posterior a las transacciones buffers para evitar que una cadena envíe spam a otra con datos de transacciones, no existe ningún mecanismo equivalente proporcionado por el protocolo para evitar el spam del procesamiento de transacciones. Este es un problema que se deja al nivel superior. desde cadenas son libres de adjuntar semántica arbitraria al mensaje entrante datos de publicación de transacciones, podemos garantizar que el cálculo debe pagarse antes de comenzar. En una línea similar a la modelo adoptado por Ethereum Serenidad, podemos imaginar un contrato de "intrusión" dentro de una paracadena que permite una validator se le garantizará el pago a cambio del provisión de un volumen particular de recursos de procesamiento. Estos recursos pueden medirse en algo como gas, pero también podría ser algún modelo completamente nuevo, como el tiempo de ejecución subjetivo o un modelo de tarifa fija similar a Bitcoin. Por sí solo, esto no es tan útil, ya que no podemos asumir fácilmente que la persona que llama fuera de la cadena tenga disponible cualquier mecanismo de valor que sea reconocido por el robo contrato. Sin embargo, podemos imaginar un contrato secundario de “ruptura” en la cadena de origen. Los dos contratos juntos formarían un puente, reconociéndose mutuamente y proporcionando equivalencia de valor. (Replanteo-tokens, disponible para cada uno, podría utilizarse para liquidar la balanza de pagos.) Llamar a otra cadena similar significaría hacer proxy a través de este puente, que proporcionaría los medios para negociar la transferencia de valor entre cadenas para pagar los recursos informáticos necesarios en la parachain de destino. 7.2. Adicional Cadenas. mientras el adición de un Parachain es una operación relativamente barata, no es gratuita. Más paracaídas significa menos validators por paracaídas y, eventualmente, un número mayor de validators cada uno con un bono promedio reducido. Si bien la cuestión de un menor costo de coerción por atacar una parachain se mitiga mediante pescadores, el creciente conjunto validator esencialmente obliga a Mayor grado de latencia debido a la mecánica del consenso subyacente.método. Además, cada paracadena trae consigo el potencial de entristecer a validators con un Algoritmo de validación demasiado engorroso. Como tal, habrá algún “precio” que validators y/o la comunidad interesada extraerá para el Adición de una nueva paracadena. Este mercado de cadenas posiblemente vea la adición de: • Cadenas que probablemente tengan un pago de contribución neta cero (en términos de bloquear o quemar staking tokens) para formar parte (por ejemplo, cadenas de consorcio, cadenas Doge, cadenas específicas de aplicaciones); • cadenas que entregan valor intrínseco a la red mediante la adición de una funcionalidad particular difícil llegar a otra parte (por ejemplo, confidencialidad, escalabilidad interna, vinculaciones de servicios). Esencialmente, la comunidad de partes interesadas necesitará ser incentivado a agregar cadenas infantiles, ya sea financiera o a través del deseo de agregar cadenas características al relevo. Se prevé que las nuevas cadenas añadidas tendrán un efecto muy breve plazo de aviso para la retirada, lo que permite la instalación de nuevas cadenas. ser experimentado sin ningún riesgo de comprometer la propuesta de valor a medio o largo plazo. 8. Conclusión Hemos esbozado una dirección que uno puede tomar para escribir un Protocolo multicadena heterogéneo y escalable con el potencial de ser compatible con ciertas versiones preexistentes. blockchain redes. Según dicho protocolo, los participantes trabajar con un interés propio ilustrado para crear un sistema global que pueda ampliarse de una manera excepcionalmente gratuita y sin el coste típico para los usuarios existentes que proviene de un diseño estándar blockchain. hemos dado un esbozo aproximado de la arquitectura que se necesitaría, incluyendo la naturaleza de los participantes, sus incentivos económicos y los procesos bajo los cuales deben participar. tenemos identificó un diseño básico y discutió sus fortalezas y limitaciones; en consecuencia tenemos más direcciones que puede aliviar esas limitaciones y avanzar más hacia una solución blockchain totalmente escalable.POLKADOT: VISIÓN PARA UN MARCO MULTICADENA HETEROGÉNEO BORRADOR 1 19 8.1. Material faltante y preguntas abiertas. La bifurcación de red siempre es una posibilidad debido a implementaciones divergentes del protocolo. La recuperación de tal La condición excepcional no fue discutida. Dado que la red necesariamente tendrá un período de finalización distinto de cero, No debería ser un gran problema recuperarse de la bifurcación de la cadena de retransmisión, sin embargo, requerirá una integración cuidadosa en el protocolo de consenso. La confiscación de bonos y, a la inversa, la provisión de recompensas no ha sido explorado profundamente. Actualmente asumimos recompensas. se proporcionan sobre la base de que el ganador se lo lleva todo: es posible que esto no Ofrecer el mejor modelo de incentivos para los pescadores. Un proceso de confirmación-revelación de corto plazo permitiría a muchos pescadores para reclamar el premio dando una distribución más justa de las recompensas, sin embargo, el proceso podría provocar una latencia adicional en el descubrimiento de mala conducta. 8.2. Expresiones de gratitud. Muchas gracias a todos los correctores que han ayudado a que esto quede vagamente forma presentable. En particular, Peter Czaban, Björn Wagner, Ken Kappler, Robert Habermeier, Vitalik Buterin, Reto Trinkler y Jack Petersson. gracias a todos las personas que han aportado ideas o los inicios Entre ellos, merecen una mención especial Marek Kotewicz y Aeron Buchanan. Y gracias a todos los demás por su ayuda. a lo largo del camino. Todos los errores son míos. Partes de este trabajo, incluida la investigación inicial sobre algoritmos de consenso, fue financiado en parte por los británicos Gobierno bajo el programa Innovate UK.

Protokol secara Detail

Protokol secara kasar dapat dipecah menjadi tiga bagian: mekanisme konsensus, antarmuka parachain dan perutean transaksi antar rantai. 6.1. Rantai relai Operasi. Itu rantai relai akan kemungkinan besar merupakan rantai yang mirip dengan Ethereum di dalamnya berbasis negara bagian dengan alamat pemetaan negara bagian ke akun informasi, terutama saldo dan (untuk mencegah terulangnya kembali) a loket transaksi. Menempatkan akun di sini memenuhi satu tujuan: untuk menyediakan akuntansi yang dimiliki oleh identitas berapa jumlah taruhan dalam sistem tersebut.7 Namun, akan ada perbedaan yang mencolok: • Kontrak tidak dapat disebarkan melalui transaksi; karena keinginan untuk menghindari fungsionalitas aplikasi pada rantai relai, hal itu tidak akan terjadi mendukung penerapan kontrak secara publik. • Menghitung penggunaan sumber daya (“gas”) tidak diperhitungkan; karena satu-satunya fungsi yang tersedia untuk penggunaan umum akan diperbaiki, alasan di balik penghitungan gas tidak lagi berlaku. Oleh karena itu, biaya tetap akan berlaku semua kasus, memungkinkan kinerja lebih dari apa pun eksekusi kode dinamis yang mungkin perlu dilakukan dan format transaksi yang lebih sederhana. • Fungsi khusus didukung untuk kontrak terdaftar yang memungkinkan eksekusi otomatis dan keluaran pesan jaringan. Jika rantai relai memiliki VM dan itu adalah berdasarkan EVM, ia akan memiliki sejumlah modifikasi untuk memastikan kesederhanaan maksimal. Kemungkinan besar akan terjadi memiliki sejumlah kontrak bawaan (mirip dengan yang ada di alamat 1-4 di Ethereum) untuk memungkinkan spesifik platform tugas yang harus dikelola termasuk kontrak konsensus, a Kontrak validator dan kontrak parachain. Jika bukan EVM, maka backend WebAssembly [2] (wasm) adalah alternatif yang paling mungkin; dalam hal ini keseluruhan strukturnya akan serupa, tetapi tidak diperlukan untuk kontrak bawaan dengan Wasm menjadi target yang layak untuk bahasa tujuan umum daripada yang belum matang dan bahasa terbatas untuk EVM. Kemungkinan penyimpangan lain dari protokol Ethereum saat ini sangat mungkin terjadi, misalnya penyederhanaan format tanda terima transaksi yang memungkinkan eksekusi paralel transaksi yang tidak bertentangan dalam blok yang sama, seperti yang diusulkan untuk rangkaian perubahan Serenity. Ada kemungkinan, meskipun tidak mungkin, bahwa hal itu mirip dengan Serenity rantai "murni" digunakan sebagai rantai relai, memungkinkan a kontrak khusus untuk mengelola hal-hal seperti staking token keseimbangan daripada menjadikannya sebagai bagian mendasar protokol rantai. Saat ini, kami merasa hal tersebut tidak mungkin terjadi akan menawarkan penyederhanaan protokol yang cukup bagus sepadan dengan kompleksitas dan ketidakpastian tambahan yang terlibat dalam mengembangkannya. 7Sebagai sarana untuk mewakili jumlah tanggung jawab pemegang tertentu atas keamanan sistem secara keseluruhan, akun pasak ini akan mewakilinya pasti menyandikan beberapa nilai ekonomi. Namun perlu dipahami karena tidak ada niat untuk menggunakan nilai-nilai tersebut dengan cara apa pun untuk tujuan pertukaran barang dan jasa di dunia nyata, perlu dicatat bahwa token tidak bisa disamakan dengan mata uang dan dengan demikian rantai relai mempertahankan filosofi nihilistiknya mengenai penerapannya.POLKADOT: VISI KERANGKA MULTI-RANTAI HETEROGEN DRAFT 1 10 Ada sejumlah fungsi kecil yang diperlukan untuk mengatur mekanisme konsensus, set validator, mekanisme validasi, dan parachain. Ini dapat diimplementasikan bersama-sama di bawah protokol monolitik. Namun, untuk alasan menambah modularitas, kami menggambarkannya sebagai “kontrak” rantai relai. Ini seharusnya diartikan bahwa mereka adalah objek (dalam arti pemrograman berorientasi objek) yang dikelola oleh mekanisme konsensus rantai relai, namun belum tentu demikian mereka didefinisikan sebagai program dalam opcode mirip EVM, juga tidak bahkan mereka dapat ditangani secara individual melalui sistem akun. 6.2. Kontrak Taruhan. Kontrak ini mempertahankan set validator. Ia mengelola: • akun mana yang saat ini validators; • yang tersedia untuk menjadi validators singkatnya pemberitahuan; • akun mana yang telah menempatkan nominasi saham sebuah validator; • properti masing-masing termasuk volume staking, tingkat pembayaran dan alamat yang dapat diterima, serta identitas (sesi) jangka pendek. Memungkinkan akun untuk mendaftarkan keinginan menjadi a terikat validator (bersama dengan persyaratannya), untuk mencalonkan beberapa identitas, dan untuk validator terikat yang sudah ada sebelumnya untuk mendaftarkan keinginannya untuk keluar dari status ini. Itu juga mencakup mekanisme itu sendiri untuk mekanisme validasi dan kanonikalisasi. 6.2.1. Taruhan-token Likuiditas. Umumnya diinginkan untuk melakukan hal tersebut memiliki sebanyak mungkin total staking tokens dipertaruhkan dalam operasi pemeliharaan jaringan sejak itu ini secara langsung menghubungkan keamanan jaringan dengan “kapitalisasi pasar” keseluruhan dari staking token. Ini bisa dengan mudah mendapatkan insentif melalui penggelembungan mata uang dan membagikan hasilnya kepada mereka yang berpartisipasi sebagai validators. Namun, melakukan hal ini menimbulkan masalah: jika token terkunci dalam Kontrak Staking di bawah hukuman pengurangan, bagaimana sebagian besar bisa tetap mencukupi likuid untuk memungkinkan penemuan harga? Salah satu jawabannya adalah dengan mengizinkan kontrak derivatif langsung, mengamankan token yang sepadan pada token yang dipertaruhkan. Hal ini sulit diatur dengan cara yang bebas kepercayaan. Selain itu, token derivatif ini tidak dapat diperlakukan sama karena alasan yang sama bahwa obligasi pemerintah Zona Euro yang berbeda tidak dapat dipertukarkan: ada adalah kemungkinan aset yang mendasarinya gagal dan menjadi rusak tidak berharga. Dengan pemerintahan zona Euro, mungkin ada a bawaan. Dengan validator yang dipertaruhkan tokens, validator mungkin bertindak jahat dan dihukum. Sesuai dengan prinsip kami, kami memilih solusi paling sederhana: tidak semua token dipertaruhkan. Ini berarti demikian sebagian (mungkin 20%) dari tokens akan tetap cair secara paksa. Meskipun hal ini tidak sempurna dari sudut pandang keamanan, hal ini sepertinya tidak akan membuat perbedaan mendasar keamanan jaringan; 80% dari kemungkinan reparasi akibat penyitaan obligasi masih dapat dilakukan dibandingkan dengan “kasus sempurna” 100% staking. Rasio antara token yang dipertaruhkan dan likuid dapat ditargetkan dengan cukup sederhana melalui mekanisme lelang terbalik. Pada dasarnya, pemegang token tertarik menjadi validator masing-masing akan mengirimkan penawaran ke kontrak staking yang menyatakan tingkat pembayaran minimum yang harus mereka ambil bagian. Di awal setiap sesi (sesi akan terjadi secara teratur, mungkin sesering satu kali per jam) tersebut validator slot akan diisi sesuai dengan calon masing-masing Tingkat taruhan dan pembayaran validator. Salah satu algoritma yang mungkin karena ini berarti mengambil orang-orang dengan penawaran terendah mewakili taruhan yang tidak lebih tinggi dari total taruhan yang ditargetkan dibagi dengan jumlah slot dan tidak lebih rendah dari batas bawah setengah jumlah tersebut. Jika slot tidak dapat diisi, batas bawah dapat dikurangi berulang kali oleh beberapa faktor untuk memenuhi. 6.2.2. Mencalonkan. Dimungkinkan untuk mencalonkan diri tanpa rasa percaya yang staking tokens ke validator aktif, memberi mereka tanggung jawab tugas validators. Menominasikan karya melalui sistem pemungutan suara persetujuan. Setiap calon nominator dapat mengirimkan instruksi ke kontrak staking mengekspresikan satu atau lebih validator identitas di bawah siapa tanggung jawab mereka siap untuk mempercayakan obligasi mereka. Setiap sesi, obligasi nominator disebarkan diwakili oleh satu atau lebih validators. Algoritme penyebaran mengoptimalkan kumpulan validators dengan total setara obligasi. Obligasi nominator menjadi tanggung jawab efektif validator adan mendapatkan minat atau menderita a pengurangan hukuman yang sesuai. 6.2.3. Penyitaan/Pembakaran Obligasi. Perilaku validator tertentu mengakibatkan pengurangan ikatan mereka sebagai hukuman. Jika obligasi tersebut dikurangi di bawah batas minimum yang diijinkan, yaitu sesi diakhiri sebelum waktunya dan sesi lainnya dimulai. Daftar lengkap validator perilaku buruk yang dapat dihukum meliputi: • Menjadi bagian dari kelompok parachain yang tidak mampu menyediakan kebutuhan konsensus mengenai validitas blok parachain; • aktif menandatangani keabsahan yang tidak valid blok parachain; • ketidakmampuan untuk memasok muatan keluar sebelumnya memilih jika tersedia; • ketidakaktifan selama proses konsensus; • memvalidasi blok rantai relai pada fork pesaing. Beberapa kasus perilaku buruk mengancam integritas jaringan (seperti menandatangani blok parachain yang tidak valid dan memvalidasi beberapa sisi dari sebuah fork) dan dengan demikian mengakibatkan pengasingan yang efektif melalui pengurangan total obligasi. Di kasus lain yang tidak terlalu serius (misalnya ketidakaktifan dalam konsensus proses) atau kasus-kasus di mana kesalahan tidak dapat dilimpahkan secara tepat (karena menjadi bagian dari kelompok yang tidak efektif), sebagian kecil obligasi tersebut malah dapat didenda. Dalam kasus terakhir, ini bekerja dengan baik dengan churn sub-grup untuk memastikan bahwa itu berbahaya node menderita kerugian yang jauh lebih besar dibandingkan node baik hati yang terkena dampak kerusakan. Dalam beberapa kasus (misalnya validasi multi-fork dan tidak valid penandatanganan sub-blok) validators tidak dapat dengan mudah mendeteksi perilaku buruk satu sama lain sejak verifikasi terus-menerus setiap blok parachain akan menjadi tugas yang terlalu sulit. Di sini perlu adanya dukungan dari pihak eksternal proses validasi untuk memverifikasi dan melaporkan perilaku buruk tersebut. Para pihak mendapat imbalan karena melaporkan kegiatan tersebut; istilah mereka, “nelayan” berasal dari ketidaksukaan dari imbalan seperti itu. Karena kasus-kasus ini biasanya sangat serius, kami membayangkan imbalan apa pun dapat dengan mudah dibayarkan dari obligasi yang disita. Secara umum kami lebih memilih untuk menyeimbangkan pembakaran (yaitu pengurangan menjadi tidak ada) dengan realokasi, bukan mencoba realokasi grosir. Hal ini mempunyai dampak

POLKADOT: VISI KERANGKA MULTI-RANTAI HETEROGEN DRAFT 1 11 meningkatkan nilai keseluruhan token, mengkompensasi jaringan secara umum sampai tingkat tertentu, bukan secara spesifik pihak yang terlibat dalam penemuan. Hal ini terutama sebagai pengaman mekanismenya: jumlah besar yang terlibat dapat menyebabkan insentif perilaku yang ekstrem dan akut diberikan pada satu sasaran. Secara umum, imbalan yang diberikan harus cukup besar agar verifikasi bermanfaat bagi jaringan, namun tidak terlalu besar untuk mengimbangi biaya menghadapi tantangan. kriminal “tingkat industri” yang didanai dengan baik dan diatur dengan baik serangan peretasan pada validator yang tidak beruntung untuk memaksakan perilaku buruk. Dengan cara ini, jumlah yang diklaim umumnya tidak lebih besar dari jaminan langsung pihak yang bersalah validator, jangan sampai a timbul insentif buruk karena berperilaku buruk dan melaporkan diri sendiri atas karunia tersebut. Hal ini dapat diatasi secara eksplisit melalui persyaratan obligasi langsung minimum untuk menjadi a validator atau secara implisit dengan mengedukasi nominator bahwa validator yang memiliki sedikit obligasi yang disetorkan tidak memiliki insentif yang besar untuk berperilaku baik. 6.3. Registri Parachain. Setiap parachain didefinisikan dalam registri ini. Ini adalah konstruksi seperti database yang relatif sederhana dan menyimpan informasi statis dan dinamis setiap rantai. Informasi statis mencakup indeks rantai (sederhana integer), beserta identitas protokol validasi, a cara untuk membedakan kelas-kelas yang berbeda parachain sehingga algoritma validasi yang benar dapat diperoleh dijalankan oleh validators yang ditugaskan untuk mengajukan calon yang sah. Pembuktian konsep awal akan fokus pada penempatan algoritma validasi baru ke dalam klien itu sendiri, yang secara efektif memerlukan hard fork protokol setiap kali kelas rantai tambahan ditambahkan. Namun pada akhirnya, dimungkinkan untuk menentukan algoritma validasi di cara yang cukup ketat dan efisien seperti yang dilakukan klien mampu bekerja secara efektif dengan parachain baru tanpa a garpu keras. Salah satu jalan yang mungkin untuk melakukan hal ini adalah dengan menentukan algoritma validasi parachain dengan cara yang mapan dan bahasa yang dikompilasi secara asli dan netral platform seperti WebAssembly. Penelitian tambahan diperlukan untuk menentukan apakah hal ini benar-benar layak dilakukan, namun jika demikian, hal ini dapat membawa hasil dengan itu keuntungan luar biasa dari membuang hard-fork untuk selamanya. Informasi dinamis mencakup aspek sistem perutean transaksi yang harus memiliki kesepakatan global tersebut sebagai antrian masuknya parachain (dijelaskan di bagian 6.6). Registri hanya dapat menambahkan parachain melalui pemungutan suara referendum penuh; ini bisa dikelola secara internal tetapi lebih mungkin ditempatkan di eksternal kontrak referendum untuk memfasilitasi penggunaan kembali di bawah komponen tata kelola yang lebih umum. Parameter ke persyaratan pemungutan suara (misalnya kuorum yang diperlukan, mayoritas diperlukan) untuk pendaftaran rantai tambahan dan lainnya, peningkatan sistem yang kurang formal akan ditetapkan dalam “master konstitusi” namun cenderung mengikuti konstitusi yang cukup tradisional jalan, setidaknya pada awalnya. Formulasi tepatnya sudah keluar ruang lingkup untuk pekerjaan ini, tetapi mis. dua pertiga supermayoritas lolos dengan lebih dari sepertiga total sistem pemungutan suara secara positif mungkin merupakan titik awal yang masuk akal. Operasi tambahan termasuk penangguhan dan pelepasan parachain. Mudah-mudahan penangguhan tidak akan pernah terjadi terjadi, namun hal ini dirancang untuk menjadi tindakan pengamanan ada beberapa masalah yang sulit diselesaikan dalam sistem validasi parachain. Contoh paling jelas yang mungkin terjadi yang diperlukan adalah perbedaan penting antara implementasi yang menyebabkan validators tidak dapat menyepakati validitas atau blok. Validator akan didorong untuk menggunakan beberapa implementasi klien agar mereka mampu untuk menemukan masalah seperti itu sebelum penyitaan obligasi. Karena penangguhan adalah tindakan darurat, maka hal itu akan terjadi di bawah naungan pemungutan suara validator yang dinamis daripada referendum. Pengaktifan kembali keduanya dapat dilakukan dari validators atau referendum. Penghapusan parachain sama sekali hanya akan terjadi setelah referendum dan yang diperlukan a masa tenggang yang substansial untuk memungkinkan transisi yang tertib ke baik rantai yang berdiri sendiri atau menjadi bagian dari rantai lainnya sistem konsensus. Masa tenggang kemungkinan besar akan berlangsung selama urutan bulan dan kemungkinan besar akan ditetapkan berdasarkan perchain di registri parachain agar berbeda parachain dapat menikmati masa tenggang yang berbeda-beda sesuai dengan kebutuhan mereka. 6.4. Blok Relai Penyegelan. Penyegelan pada dasarnya mengacu pada pada proses kanonikalisasi; yaitu data dasar mengubah yang manamemetakan yang asli menjadi sesuatu yang pada dasarnya tunggal dan bermakna. Di bawah rantai PoW, penyegelan secara efektif merupakan sinonim dari penambangan. Dalam kasus kami, ini melibatkan pengumpulan pernyataan yang ditandatangani dari validators mengenai validitas, ketersediaan, dan kanonikalitas suatu blok rantai relai tertentu dan blok parachain itu itu mewakili. Mekanisme algoritma konsensus BFT yang mendasarinya berada di luar cakupan penelitian ini. Kami akan melakukannya alih-alih mendeskripsikannya menggunakan primitif yang mengasumsikan a mesin negara yang menciptakan konsensus. Pada akhirnya kami berharap terinspirasi oleh sejumlah konsensus BFT yang menjanjikan algoritma pada intinya; Tangaora [9] (varian BFT dari Rakit [16]), Tendermint [11] dan HoneyBadgerBFT [14]. Algoritmenya harus mencapai kesepakatan mengenai beberapa parachain secara paralel, sehingga berbeda dari biasanya blockchain mekanisme konsensus. Kami berasumsi bahwa sekali konsensus tercapai, kita dapat mencatat konsensus tersebut dalam bukti yang tak terbantahkan yang dapat diberikan oleh siapa pun para peserta di dalamnya. Kami juga berasumsi bahwa perilaku buruk itu dalam protokol umumnya dapat dikurangi menjadi kecil kelompok yang berisi peserta nakal untuk diminimalkan kerusakan tambahan ketika memberikan hukuman.8 Buktinya, yang berupa pernyataan yang kami tandatangani, ditempatkan di header blok rantai relai bersama-sama dengan bidang-bidang tertentu lainnya, tidak terkecuali akar keadaan rantai relai dan akar percobaan transaksi. Itu penyegelan proses dibutuhkan tempat di bawah sebuah lajang menghasilkan konsensus mekanisme menangani keduanya itu blok rantai relai dan blok parachain yang membuatnya bagian dari konten relai: parachain tidak “dikomit” secara terpisah oleh sub-grupnya dan kemudian disusun nanti. Hal ini menghasilkan proses yang lebih kompleks pada rantai relai, namun memungkinkan kami menyelesaikan konsensus seluruh sistem dalam satu tahap, meminimalkan latensi dan memungkinkan untuk persyaratan ketersediaan data yang cukup kompleks berguna untuk proses perutean di bawah ini. 8Skema konsensus BFT berbasis PoS yang ada seperti Tendermint BFT dan Slasher asli memenuhi pernyataan ini.

POLKADOT: VISI KERANGKA MULTI-RANTAI HETEROGEN DRAFT 1 12 Keadaan mesin konsensus masing-masing peserta mungkin berbeda dimodelkan sebagai tabel sederhana (2 dimensi). Setiap peserta (validator) memiliki sekumpulan informasi berupa pernyataan yang ditandatangani (“suara”) dari peserta lain, mengenai setiap kandidat blok parachain serta kandidat blok relaychain. Kumpulan informasinya ada dua bagian data: Ketersediaan: tidak ini validator punya jalan keluar informasi transaksi-posting dari blok ini jadi mereka dapat memvalidasi kandidat parachain dengan benar di blok berikut? Mereka mungkin memilih baik 1 (diketahui) atau 0 (belum diketahui). Sekali mereka memilih 1, mereka berkomitmen untuk memberikan suara yang sama sisa proses ini. Nanti suara yang tidak hormat ini adalah dasar untuk hukuman. Validitas: apakah blok parachain valid dan semuanya data yang direferensikan secara eksternal (mis. transaksi) tersedia? Ini hanya relevan untuk validator yang ditugaskan pada parachain tempat mereka memberikan suara. Mereka dapat memilih 1 (sah), -1 (tidak sah) atau 0 (belum diketahui). Begitu mereka memilih bukan nol, mereka berkomitmen untuk memberikan suara dengan cara ini selama sisa pemilu prosesnya. Nanti ada suara yang tidak menghormati hal ini merupakan dasar untuk hukuman. Semua validator harus menyerahkan suara; suara dapat diserahkan kembali, memenuhi syarat berdasarkan peraturan di atas. Kemajuan dari konsensus dapat dimodelkan sebagai beberapa algoritma konsensus BFT standar pada setiap parachain yang terjadi secara paralel. Karena hal ini berpotensi digagalkan oleh relatif sebagian kecil aktor jahat terkonsentrasi di dalamnya satu kelompok parachain, konsensus keseluruhan ada untuk itu membangun penghalang, membatasi skenario terburuk kebuntuan hanya pada satu atau lebih blok parachain kosong (dan putaran hukuman bagi mereka yang bertanggung jawab). Aturan dasar untuk validitas masing-masing blok (yang memungkinkan total kumpulan validator secara keseluruhan diperoleh konsensus untuk menjadi kandidat parachain yang unik untuk direferensikan dari relai kanonik): • harus memiliki setidaknya dua pertiga dari validator yang memberikan suara positif dan tidak ada yang memberikan suara negatif; • harus memiliki lebih dari sepertiga validator yang memberikan suara positif terhadap ketersediaan informasi antrian keluar. Jika terdapat setidaknya satu suara positif dan setidaknya satu suara negatif mengenai validitas, kondisi luar biasa akan tercipta dan seluruh validator harus memberikan suara untuk menentukan jika ada pihak jahat atau jika ada yang tidak disengaja garpu. Selain sah dan tidak sah, ada pula jenis suara yang ketiga diperbolehkan, setara dengan memilih keduanya, artinya simpul tersebut memiliki pendapat yang bertentangan. Hal ini mungkin disebabkan oleh pemilik node menjalankan beberapa implementasi yang dapat melakukannya tidak setuju, menunjukkan kemungkinan ambiguitas dalam protokol. Setelah semua suara dihitung dari set validator penuh, jika opini yang kalah memiliki setidaknya sebagian kecil (untuk diparameterisasi; paling banyak setengahnya, mungkin jauh lebih sedikit) dari suara pendapat yang menang, maka diasumsikan demikian menjadi parachain fork yang tidak disengaja dan parachain secara otomatis ditangguhkan dari proses konsensus. Jika tidak, kami menganggapnya sebagai tindakan jahat dan akan menghukumnya kelompok minoritas yang memberikan suara dissenting opinion. Kesimpulannya adalah demonstrasi serangkaian tanda tangan kanonikalitas. Blok rantai relai kemudian dapat disegel dan proses penyegelan blok berikutnya dimulai. 6.5. Perbaikan pada Blok Relai Penyegelan. Sementara metode penyegelan ini memberikan jaminan yang kuat atas pengoperasian sistem, namun skalanya tidak terlalu baik karena informasi penting setiap parachain pasti ada ketersediaan dijamin oleh lebih dari sepertiga dari seluruh validators. Artinya, setiap jejak tanggung jawab validator tumbuh seiring bertambahnya rantai. Sedangkan ketersediaan data dalam jaringan konsensus terbuka pada dasarnya adalah masalah yang belum terpecahkan, ada cara untuk mengurangi overhead yang ditempatkan pada validator node. Satu yang sederhana solusinya adalah dengan menyadari bahwa sementara validators harus memikulnya tanggung jawab atas ketersediaan data, mereka tidak perlu menyimpan, mengomunikasikan, atau mereplikasi data itu sendiri. Silo data sekunder, mungkin terkait dengan (atau bahkan sangat terkait). sama) kolektor yang mengumpulkan data ini, dapat mengelola tugas menjamin ketersediaan dengan validators memberikan sebagian dari bunga/pendapatan mereka sebagai pembayaran. Namun, meskipun hal ini mungkin memerlukan skalabilitas menengah, hal ini tetap tidak membantu masalah mendasar; sejak itu menambahkan lebih banyak rantai secara umum akan memerlukan validator tambahan, konsumsi sumber daya jaringan yang berkelanjutan (khususnya dalam hal bandwidth) tumbuh seiring dengan bertambahnya kuadrat iturantai, properti yang tidak dapat dipertahankan dalam jangka panjang. Pada akhirnya, kita cenderung terus-terusan memukul kepala terhadap batasan mendasar yang menyatakan bahwa untuk jaringan konsensus dianggap tersedia aman, itu kebutuhan bandwidth yang sedang berlangsung berada pada urutan total validators kali total informasi masukan. Hal ini disebabkan oleh ketidakmampuan jaringan yang tidak tepercaya untuk mendistribusikan tugas penyimpanan data dengan benar ke banyak node yang berada terlepas dari tugas pemrosesan yang sangat dapat didistribusikan. 6.5.1. Memperkenalkan Latensi. Salah satu cara untuk melunakkannya aturannya adalah melonggarkan gagasan kesegeraan. Dengan mewajibkan 33%+1 validators memberikan suara untuk ketersediaan pada akhirnya, dan tidak segera, kita dapat memanfaatkan propagasi data eksponensial dengan lebih baik dan membantu meratakan puncak dalam pertukaran data. Kesetaraan yang wajar (meskipun tidak terbukti) mungkin: (1) latensi = peserta × rantai Di bawah model saat ini, ukuran sistem berskala dengan jumlah rantai untuk memastikan bahwa pemrosesan dilakukan didistribusikan; karena setiap rantai akan memerlukan setidaknya satu validator dan kami menetapkan pengesahan ketersediaan menjadi konstan proporsi validators, maka peserta juga bertambah dengan jumlah rantai. Kami berakhir dengan: (2) latensi = ukuran2 Artinya seiring pertumbuhan sistem, bandwidth yang dibutuhkan dan latensi hingga ketersediaan diketahui di seluruh sistem jaringan, yang mungkin juga dicirikan sebagai angka blok sebelum finalitas, bertambah seiring dengan kuadratnya. Ini adalah merupakan faktor pertumbuhan yang substansial dan mungkin menjadi penghalang utama serta memaksa kita menerapkan paradigma yang “tidak datar” seperti menyusun beberapa “Polkadotes” ke dalam hierarki untuk perutean postingan multi-level melalui pohon rantai relai.

POLKADOT: VISI KERANGKA MULTI-RANTAI HETEROGEN DRAFT 1 13 6.5.2. Partisipasi Masyarakat. Satu lagi kemungkinan arah adalah untuk menarik partisipasi masyarakat dalam proses tersebut melalui a sistem pengaduan mikro. Mirip dengan nelayan, di sana bisa jadi pihak eksternal yang mengawasi validator yang mengklaim ketersediaan. Tugas mereka adalah menemukan orang yang tampaknya tidak mampu menunjukkan ketersediaan tersebut. Dengan melakukan hal itu mereka dapat mengajukan keluhan mikro ke validator lainnya. PoW atau obligasi yang dipertaruhkan dapat digunakan untuk mengurangi serangan sybil yang akan membuat sebagian besar sistem tidak berguna. 6.5.3. Penjamin Ketersediaan. Rute terakhirnya adalah ke menominasikan set kedua validator terikat sebagai “ketersediaan penjamin”. Ini akan terikat seperti dengan validators normal, dan bahkan dapat diambil dari set yang sama (walaupun jika demikian, mereka akan dipilih dalam jangka waktu yang panjang, setidaknya per sesi). Tidak seperti validator biasa, mereka tidak akan beralih antar parachain melainkan akan melakukannya membentuk satu kelompok untuk membuktikan ketersediaan semua data antar rantai yang penting. Hal ini mempunyai keuntungan dalam melonggarkan kesetaraan antara peserta dan rantai. Pada dasarnya, rantai bisa tumbuh (bersama dengan set rantai asli validator), sedangkan para peserta, dan khususnya mereka yang mengambil bagian dalam perjanjian ketersediaan data, setidaknya dapat tetap berada pada kondisi sub-linear dan sangat mungkin konstan. 6.5.4. Preferensi Pengumpul. Salah satu aspek penting dari hal ini sistem adalah untuk memastikan bahwa ada pilihan yang sehat kolator membuat blok di parachain mana pun. Jika sebuah kolator tunggal mendominasi parachain kemudian beberapa serangan menjadi lebih layak karena kemungkinan kurangnya ketersediaan data eksternal akan menjadi kurang jelas. Salah satu opsinya adalah dengan memberi bobot buatan pada blok parachain mekanisme pseudo-acak untuk mendukung berbagai macam kolator. Dalam contoh pertama, kita memerlukannya sebagai bagian dari mekanisme konsensus yang menguntungkan validator kandidat blok parachain bertekad untuk menjadi “lebih berat”. Demikian pula, kita harus memberi insentif kepada validators untuk mencoba melakukan hal tersebut menyarankan hambatan terberat yang bisa mereka temukan—bisa jadi ini adalah halangan dilakukan dengan membuat sebagian imbalannya sebanding dengan bobot kandidatnya. Untuk memastikan bahwa kolektor diberikan keadilan yang wajar peluang calonnya terpilih sebagai pemenang kandidat secara konsensus, kami membuat bobot spesifik a kandidat blok parachain ditentukan pada fungsi acak yang terhubung dengan setiap kolator. Misalnya saja mengambil ukuran jarak XOR antara alamat kolektor dan beberapa nomor pseudorandom yang aman secara kriptografis ditentukan dekat dengan titik blok yang dibuat (sebuah “tiket kemenangan”). Ini secara efektif memberi masing-masing pengumpul (atau, lebih khusus lagi, alamat masing-masing pengumpul) a peluang acak dari blok kandidat mereka untuk “menang”. semua yang lain. Untuk mengurangi serangan sybil dari seorang kolator tunggal yang “menambang” alamat yang dekat dengan tiket pemenang dan dengan demikian keberadaannya menjadi favorit di setiap blok, kami akan menambahkan beberapa inersia ke alamat collator. Ini mungkin sesederhana mengharuskan mereka untuk memiliki jumlah dana dasar di alamat tersebut. Lebih lanjut pendekatan yang elegan adalah dengan mempertimbangkan kedekatannya dengan tiket pemenang dengan jumlah dana yang diparkir di alamat yang dimaksud. Meskipun pemodelan belum dilakukan, sangat mungkin mekanisme ini bahkan sangat memungkinkan pemangku kepentingan kecil untuk berkontribusi sebagai kolator. 6.5.5. Blok Kelebihan Berat Badan. Jika kumpulan validator dikompromikan, mereka dapat membuat dan mengusulkan blok yang mana valid, membutuhkan banyak waktu untuk mengeksekusi dan memvalidasi. Ini merupakan masalah karena grup validator dapat melakukannya wajar saja membentuk sebuah blok yang membutuhkan waktu yang sangat lama untuk melakukannya mengeksekusi kecuali beberapa informasi tertentu sudah diketahui sehingga memungkinkan jalan pintas, misalnya memfaktorkan yang besar prima. Jika seorang kolator mengetahui informasi itu, maka mereka akan memiliki keuntungan yang jelas jika mendapatkan milik mereka sendiri calon diterima asalkan yang lain sibuk mengolah blok lama. Kami menyebut blok ini kelebihan berat badan. Perlindungan terhadap validator yang mengirimkan dan memvalidasi blok ini sebagian besar berada di bawah kedok yang sama seperti untuk blok tidak valid, meskipun dengan peringatan tambahan: Sejak waktu yang dibutuhkan untuk mengeksekusi sebuah blok (dan dengan demikian statusnya sebagai kelebihan berat badan) bersifat subyektif, hasil akhir dari pemungutan suara perilaku buruk pada dasarnya akan terbagi dalam tiga kubu. Satu kemungkinannya adalah blok tersebut pastinya tidak kelebihan berat badan— dalam hal ini lebih dari dua pertiga menyatakan mampu mengeksekusi blok dalam batas tertentu (misalnya 50% dari total waktu yang diperbolehkan antar blok). Hal lainnya adalah bahwa blok adalah dbenar-benar kelebihan berat badan—ini akan terjadi jika lebih dari dua pertiga menyatakan bahwa mereka tidak dapat mengeksekusi blok tersebut dalam batas tersebut. Satu kemungkinan terakhir adalah sama perpecahan pendapat antara validators. Dalam hal ini, kita mungkin memilih untuk melakukan hukuman yang proporsional. Untuk memastikan validators dapat memprediksi kapan hal tersebut mungkin terjadi mengusulkan blok yang kelebihan berat badan, mungkin masuk akal untuk meminta mereka mempublikasikan informasi tentang kinerja mereka sendiri untuk setiap blok. Dalam jangka waktu yang cukup, ini akan memungkinkan mereka untuk memprofilkan kecepatan pemrosesan mereka relatif terhadap rekan-rekan yang akan menghakimi mereka. 6.5.6. Asuransi Pengumpul. Satu masalah tersisa untuk validators: tidak seperti jaringan PoW, untuk memeriksa collator blok untuk validitas, mereka harus benar-benar mengeksekusi transaksi di dalamnya. Kolator jahat dapat memberi makan blok yang tidak valid atau kelebihan berat badan ke validator yang menyebabkan mereka sedih (terbuang sia-sia) sumber daya mereka) dan menuntut potensi biaya peluang yang besar. Untuk mengurangi hal ini, kami mengusulkan strategi sederhana di bagian dari validators. Pertama, kandidat blok parachain dikirim hingga validators harus ditandatangani dari akun rantai relai dengan dana; jika tidak, maka validator akan hilang segera. Kedua, kandidat tersebut harus diurutkan berdasarkan prioritas dengan kombinasi (misalnya perkalian). jumlah dana di rekening sampai batas tertentu, yaitu jumlah blok sebelumnya yang berhasil diusulkan oleh kolator di masa lalu (belum lagi blok sebelumnya hukuman), dan faktor kedekatan dengan pemenang tiket seperti yang dibahas sebelumnya. Tutupnya harus sama sebagai hukuman ganti rugi yang dibayarkan kepada validator dalam kasus tersebut di antaranya mengirimkan blok yang tidak valid. Untuk mendisinsentifkan kolator agar tidak mengirimkan kandidat blok yang tidak valid atau kelebihan berat badan ke validators, validator mana pun dapat tempatkan di blok berikutnya sebuah transaksi termasuk blok yang menyinggung dugaan perilaku buruk yang berdampak pada transfer sebagian atau seluruh dana ke dalam rekening kolator yang berperilaku buruk. akun kepada validator yang dirugikan. Jenis transaksi ini dijalankan terlebih dahulu oleh orang lain untuk memastikan kolator tidak dapat melakukannya mengeluarkan dana sebelum hukuman. Jumlah dana yang ditransfer sebagai ganti rugi masih merupakan parameter yang dinamis

POLKADOT: VISI KERANGKA MULTI-RANTAI HETEROGEN DRAFT 1 14 untuk dimodelkan tetapi kemungkinan besar akan menjadi proporsi dari hadiah blok validator untuk mencerminkan tingkat kesedihan yang ditimbulkan. Untuk mencegah validator jahat secara sewenang-wenang menyita dana kolektor, kolator dapat mengajukan banding atas keputusan validator dengan juri yang terdiri dari validator yang dipilih secara acak sebagai imbalannya untuk menempatkan deposit kecil. Jika mereka menguntungkan validator, deposit tersebut akan dikonsumsi oleh mereka. Jika tidak, itu deposit dikembalikan dan validator didenda (sejak validator berada dalam posisi yang jauh lebih berkubah, dendanya akan lebih besar mungkin agak besar dan kuat). 6.6. Antar rantai Transaksi Perutean. Antar rantai perutean transaksi adalah salah satu pemeliharaan penting tugas rantai relai dan validatorsnya. Ini adalah logika yang mengatur bagaimana transaksi yang diposting (sering disingkat menjadi “posting”) mendapatkan output yang diinginkan dari satu parachain sumber menjadi masukan yang tidak dapat dinegosiasikan dari parachain tujuan lain tanpa kepercayaan apa pun persyaratan. Kami memilih kata-kata di atas dengan hati-hati; terutama kita tidak mengharuskan adanya transaksi di sumbernya parachain telah secara eksplisit menyetujui postingan ini. Satu-satunya Kendala yang kami tempatkan pada model kami adalah parachain harus disediakan, dikemas sebagai bagian dari keseluruhan bloknya output pemrosesan, postingan yang merupakan hasil dari eksekusi blok. Pos-pos ini disusun sebagai beberapa antrian FIFO; itu jumlah daftar dikenal sebagai basis perutean dan mungkin sekitar 16. Khususnya, angka ini mewakili kuantitas parachain yang dapat kami dukung tanpa harus menggunakan bantuan apa pun perutean multi-fase. Awalnya, Polkadot akan mendukung hal ini jenis perutean langsung, namun kami akan menguraikan satu kemungkinan proses routing multi-fase (“hyper-routing”) sebagai sarana untuk memperluas jangkauannya melewati rangkaian parachain awal. Kami berasumsi itu semua peserta tahu itu subkelompok untuk dua blok berikutnya n, n + 1. Singkatnya, the sistem routing mengikuti tahapan berikut: • CollatorS: Hubungi anggota Validator[n][S] • Kolator: UNTUK SETIAP subgrup: pastikan pada setidaknya 1 anggota Validator[n][s] dalam kontak • Pengumpul: UNTUK SETIAP subgrup s: berasumsi egress[n −1][s][S] tersedia (semua postingan masuk data ke 'S' dari blok terakhir) • Pengumpul: Tulis kandidat blok b untuk S: (b.header, b.ext, b.proof, b.receipt, b.egress) • Pengumpul: Kirim bukti informasi bukti[S] = (b.header, b.ext, b.proof, b.receipt) ke V alidator[n][S] • CollatorS: Pastikan data transaksi eksternal b.ext tersedia untuk kolator lain dan validators • Pengumpul: UNTUK SETIAP subgrup s: Kirim jalan keluar informasi jalan keluar[n][S][s] = (b.header, b.kwitansi, b.egress[s]) untuk itu menerima subkelompok anggota dari berikutnya blok V alidator[n + 1][s] • ValidatorV : Pra-sambungkan semua anggota set yang sama untuk blok selanjutnya: misalkan N = Chain[n + 1][V ]; menghubungkan semua validators v sedemikian rupa sehingga Chain[n + 1][v] = N • V alidatorV : Susun semua data yang masuk untuk ini blok: UNTUK SETIAP subgrup s: Ambil egress[n −1][s][Chain[n][V ]], dapatkan dari validators v lain sedemikian rupa sehingga Chain[n][v] = Chain[n][V ]. Mungkin melalui validator lain yang dipilih secara acak sebagai bukti percobaan. • V alidatorV : Terima bukti kandidat untuk ini bukti blok[Rantai[n][V ]]. Validitas blok suara • V alidatorV : Terima data jalan keluar kandidat untuk blok berikutnya: UNTUK SETIAP subgrup, terima jalan keluar[n][s][N]. Ketersediaan jalan keluar blok suara; publikasikan ulang di antara validators v yang tertarik sedemikian rupa Rantai[n + 1][v] = Rantai[n + 1][V ]. • ValidatorV : SAMPAI KONSENSUS Dimana: egress[n][from][to] adalah antrian egress saat ini informasi untuk postingan mulai dari parachain 'dari', ke parachain 'ke' di blok nomor 'n'. CollatorS adalah collator untuk parachain S. V alidators[n][s] adalah himpunan validators untuk parachain s di blok nomor n. Sebaliknya, Chain[n][v] adalah parachain yang validator v ditugaskan pada blok nomor n. block.egress[to] adalah jalan keluar antrian posting dari beberapa blok parachain yang parachain tujuan adalah untuk. Karena kolektor memungut biaya (transaksi) berdasarkan blok mereka menjadi kanonik dan mereka diberi insentif memastikan bahwa untuk setiap tujuan blok berikutnya, subgrupnya anggota diberitahu tentang antrian keluar dari sekarang blok. Validator diberi insentif hanya untuk membentuk konsensus pada blok (parachain), sehingga mereka tidak terlalu peduli blok kolator mana yang pada akhirnya menjadi kanonik. Di prinsipnya, seorang validator dapat membentuk kesetiaan dengan seorang kolator dan bersekongkol untuk mengurangi kemungkinan kolator lain blok menjadi kanonik, namun hal ini sulit untuk mengatur karena pemilihan acaktindakan validators untuk parachain dan dapat dilindungi dengan pengurangan biaya yang harus dibayar untuk blok parachain yang bertahan proses konsensus. 6.6.1. Ketersediaan Data Eksternal. Memastikan parachain data eksternal sebenarnya tersedia adalah masalah abadi sistem terdesentralisasi yang bertujuan untuk mendistribusikan beban kerja jaringan. Inti permasalahannya adalah ketersediaan masalah yang menyatakan bahwa karena itu tidak mungkin buatlah bukti ketersediaan non-interaktif atau jenis apa pun bukti ketidaktersediaan, agar sistem BFT berfungsi dengan baik memvalidasi setiap transisi yang kebenarannya bergantung pada ketersediaan beberapa data eksternal, jumlah maksimum dari node Bizantium yang dapat diterima, ditambah satu, dari sistem harus membuktikan data yang tersedia. Agar sistem dapat melakukan penskalaan dengan benar, seperti Polkadot, ini mengundang masalah: jika proporsi konstan validators harus membuktikan ketersediaan data, dan berasumsi bahwa validators ingin benar-benar menyimpan data sebelum menyatakannya tersedia, lalu bagaimana kita menghindarinya masalah kebutuhan bandwidth/penyimpanan yang meningkat seiring dengan ukuran sistem (dan karenanya jumlah validators)? Salah satu jawaban yang mungkin adalah dengan memiliki set terpisah dari validators (penjamin ketersediaan), yang pesanannya bertambah secara sublinear dengan ukuran Polkadot secara keseluruhan. Ini adalah dijelaskan dalam 6.5.3. Kami juga memiliki trik sekunder. Sebagai sebuah kelompok, pengumpul memiliki insentif intrinsik untuk memastikan bahwa semua data ada tersedia untuk parachain pilihan mereka karena tanpa itu mereka tidak dapat membuat blok lebih jauh dari yang mereka bisa mengumpulkan biaya transaksi. Kolator juga membentuk suatu kelompok, yang keanggotaannya bervariasi (karena sifat acaknya parachain validator grup) tidak sepele untuk dimasuki dan mudah

POLKADOT: VISI KERANGKA MULTI-RANTAI HETEROGEN DRAFT 1 15 untuk membuktikan. Oleh karena itu, kolator baru-baru ini (mungkin dari beberapa ribu blok terakhir) diperbolehkan untuk mengajukan gugatan ketersediaan data eksternal untuk parachain tertentu blok ke validators untuk obligasi kecil. Validator harus menghubungi orang-orang dari subkelompok validator yang tampaknya melakukan pelanggaran yang memberikan kesaksian dan memperoleh serta mengembalikan data ke pengumpul atau mengeskalasi masalah dengan memberikan kesaksian tentang kurangnya ketersediaan (penolakan langsung untuk memberikan data dianggap sebagai pelanggaran penyitaan obligasi, oleh karena itu validator yang berperilaku buruk kemungkinan besar hanya akan putuskan sambungan) dan hubungi validator tambahan untuk menjalankan tes yang sama. Dalam kasus terakhir, obligasi kolator dikembalikan. Setelah kuorum validator yang dapat membuat kesaksian ketidaktersediaan tersebut tercapai, mereka dibebaskan, subkelompok yang berperilaku buruk akan dihukum, dan pemblokiran dikembalikan. 6.6.2. Perutean Postingan. Setiap header parachain menyertakan jalan keluar-trie-root; ini adalah akar dari percobaan yang mengandung bin berbasis perutean, setiap bin menjadi daftar gabungan dari pos-pos jalan keluar. Bukti merekle dapat diberikan di seluruh parachain validators untuk membuktikan bahwa parachain tertentu blok memiliki antrian keluar tertentu untuk parachain tujuan tertentu. Pada awal pemrosesan blok parachain, masing-masing antrian keluar parachain lain yang menuju blok tersebut adalah digabungkan ke dalam antrian masuknya blok kami. Kami berasumsi kuat, mungkin CSPR9, sub-blok yang memerintahkan untuk mencapai operasi deterministik yang tidak menawarkan pilih kasih di antara siapa pun pasangan blok parachain. Collator menghitung antrian baru dan menguras antrian jalan keluar sesuai dengan parachain logika. Isi antrian ingress ditulis secara eksplisit ke dalam blok parachain. Ini memiliki dua tujuan utama: pertama, ini berarti bahwa parachain dapat disinkronkan secara terpisah dari parachain lainnya. Kedua, ini menyederhanakan logistik data jika seluruh masuknya antrian tidak dapat diproses dalam satu blok; validators dan collator dapat memproses blok berikut tanpa harus mengambil data antrian secara khusus. Jika antrian masuknya parachain berada di atas ambang batas jumlah di akhir pemrosesan blok, kemudian ditandai jenuh pada rantai relai dan mungkin tidak ada pesan lebih lanjut dikirim ke sana sampai dibersihkan. Bukti Merkle adalah digunakan untuk menunjukkan kesetiaan operasi collator di bukti blok parachain. 6.6.3. Kritik. Satu kelemahan kecil yang berkaitan dengan dasar ini mekanismenya adalah serangan pasca bom. Di sinilah semuanya parachain mengirim postingan sebanyak mungkin ke parachain tertentu. Sementara ini mengikat targetnya antrian masuk sekaligus, tidak ada kerusakan yang terjadi berulang-ulang serangan DoS transaksi standar. Beroperasi secara normal, dengan serangkaian tersinkronisasi dengan baik dan collators tidak berbahaya dan validators, untuk N parachain, N × M total validators dan L kolator per parachain, kami dapat memecah total jalur data per blok menjadi: Validator: M −1+L+L: M −1 untuk validators lainnya di set parachain, L untuk setiap kolator menyediakan calon blok parachain dan L kedua untuk setiap kolator dari blok berikutnya yang memerlukan muatan keluar dari blok sebelumnya. (Yang terakhir ini sebenarnya lebih mirip kasus terburuk operasi karena kemungkinan besar kolator akan berbagi hal tersebut data.) Collator: M +kN: M untuk koneksi ke setiap relevan blok parachain validator, kN untuk menyemai muatan keluar ke beberapa subset dari setiap grup parachain validator untuk blok berikutnya (dan mungkin beberapa kolator favorit). Dengan demikian, jalur jalur data per node tumbuh secara linier dengan kompleksitas sistem secara keseluruhan. Sementara ini masuk akal, karena sistem berskala menjadi ratusan atau ribuan parachain, mungkin ada beberapa latensi komunikasi diserap dengan imbalan tingkat pertumbuhan kompleksitas yang lebih rendah. Dalam hal ini, algoritma perutean multi-fase dapat digunakan untuk mengurangi jumlah jalur sesaat dengan biaya memperkenalkan buffer penyimpanan dan latensi. 6.6.4. Perutean hiper-kubus. Perutean hyper-cube adalah mekanisme yang sebagian besar dapat dibangun sebagai perpanjangan dari mekanisme perutean dasar yang dijelaskan di atas. Intinya, daripada mengembangkan konektivitas node dengan jumlah parachain dan node sub-grup, kami hanya mengembangkannya logaritma parachain. Postingan mungkin transit di antara keduanya antrian beberapa penerjun payung dalam perjalanan menuju pengiriman akhir. Perutean itu sendiri bersifat deterministik dan sederhana. Kita mulai dengan membatasi jumlah sampah pada antrian masuk/keluar; bukannya jumlah total parachain, mereka adalahbasis perutean (b) . Ini akan ditetapkan sebagai nomornya perubahan parachain, dengan eksponen perutean (e) malah dinaikkan. Di bawah model ini, volume pesan kami tumbuh dengan O(be), dengan jalurnya tetap konstan dan latensi (atau jumlah blok yang diperlukan untuk pengiriman) dengan O(e). Model perutean kami adalah hypercube berdimensi e, dengan setiap sisi kubus memiliki b kemungkinan lokasi. Setiap blok, kami merutekan pesan sepanjang satu sumbu. Kami ganti sumbu dengan cara round-robin, sehingga menjamin waktu pengiriman blok e dalam kasus terburuk. Sebagai bagian dari pemrosesan parachain, terikat ke luar negeri pesan yang ditemukan dalam antrean masuk akan segera dirutekan ke tempat antrean keluar yang sesuai, mengingat nomor blok saat ini (dan dengan demikian dimensi perutean). Ini proses memerlukan transfer data tambahan untuk setiap hop pada jalur pengiriman, namun hal ini menjadi masalah tersendiri yang dapat dikurangi dengan menggunakan beberapa cara alternatif pengiriman muatan data dan hanya menyertakan referensi, daripada muatan penuh postingan di pasca-trie. Contoh perutean hyper-cube untuk suatu sistem dengan 4 parachain, b = 2 dan e = 2 mungkin: Fase 0, pada setiap pesan M: • sub0: jika Mdest ∈{2, 3} maka sendTo(2) lain tetap simpan • sub1: jika Mdest ∈{2, 3} maka sendTo(3) lain tetap simpan • sub2: jika Mdest ∈{0, 1} maka sendTo(0) lain tetap simpan • sub3: jika Mdest ∈{0, 1} maka sendTo(1) lain tetap simpan Fase 1, pada setiap pesan M: • sub0: jika Mdest ∈{1, 3} maka sendTo(1) lain tetap simpan • sub1: jika Mdest ∈{0, 2} maka sendTo(0) lain tetap simpan • sub2: jika Mdest ∈{1, 3} maka sendTo(3) lain tetap simpan • sub3: jika Mdest ∈{0, 2} maka sendTo(2) lain tetap simpan Dua dimensi di sini mudah dilihat sebagai yang pertama dua bit indeks tujuan; untuk blok pertama, itu bit tingkat tinggi saja yang digunakan. Penawaran blok kedua dengan bit orde rendah. Setelah keduanya terjadi (secara sewenang-wenang order) maka postingan akan dialihkan. 9pseudo-acak yang aman secara kriptografis

POLKADOT: VISI KERANGKA MULTI-RANTAI HETEROGEN DRAFT 1 16 6.6.5. Memaksimalkan Kebetulan. Satu perubahan dasar proposal akan menghasilkan total tetap c2 −c validators, dengan c−1 validators di setiap subgrup. Setiap blok, bukan ada partisi ulang validators yang tidak terstruktur di antara parachain, sebagai gantinya untuk setiap subkelompok parachain, setiap validator akan ditugaskan ke yang unik dan berbeda sub-grup parachain di blok berikut. Ini akan terjadi mengarah ke invarian antara dua blok mana pun, untuk apa pun dua pasang parachain, ada dua validator yang telah bertukar tanggung jawab parachain. Meskipun hal ini tidak dapat digunakan untuk mendapatkan jaminan mutlak atas ketersediaan (satu validator kadang-kadang akan offline, meskipun demikian baik hati), namun tetap dapat mengoptimalkan kasus umum. Pendekatan ini bukannya tanpa komplikasi. Penambahan parachain juga memerlukan reorganisasi dari kumpulan validator. Selanjutnya jumlah validator, diikat dengan kuadrat jumlah parachain, awalnya akan sangat kecil dan akhirnya berkembang jauh terlalu cepat, menjadi tidak dapat dipertahankan setelah sekitar 50 parachain. Tidak ada satu pun dari masalah-masalah tersebut yang merupakan masalah mendasar. Dalam kasus pertama, reorganisasi set validator adalah sesuatu yang harus dilakukan tetap dilakukan secara rutin. Mengenai ukuran validator disetel, jika terlalu kecil, beberapa validator dapat ditetapkan ke parachain yang sama, menerapkan faktor bilangan bulat ke total keseluruhan validators. Mekanisme perutean multi-fase seperti Perutean Hypercube, yang dibahas di 6.6.4 akan membantu meringankan kebutuhan validator dalam jumlah besar ketika ada sejumlah besar rantai. 6.7. Validasi Parachain. Tujuan utama validator adalah untuk bersaksi, sebagai aktor yang mempunyai ikatan kuat, bahwa parachain itu blok tersebut valid, termasuk namun tidak terbatas pada transisi keadaan apa pun, termasuk transaksi eksternal apa pun, pelaksanaannya setiap pos tunggu di antrian masuk dan keadaan akhir dari antrian keluar. Prosesnya sendiri cukup sederhana. Setelah validator menyegel blok sebelumnya, mereka bebas untuk mulai bekerja menyediakan calon blok parachain kandidat untuk putaran konsensus berikutnya. Awalnya, validator menemukan kandidat blok parachain melalui kolator parachain (dijelaskan selanjutnya) atau satu dari rekannya-validators. Parachain memblokir data kandidat termasuk header blok, header blok sebelumnya, data masukan eksternal apa pun yang disertakan (untuk Ethereum dan Bitcoin, data tersebut akan disebut sebagai transaksi, namun pada prinsipnya data tersebut dapat mencakup struktur data arbitrer untuk tujuan arbitrer), data antrean keluar, dan data internal untuk membuktikan validitas transisi keadaan (untuk Ethereum ini akan menjadi berbagai node percobaan status/penyimpanan yang diperlukan untuk mengeksekusi setiap transaksi). Bukti eksperimental menunjukkan kumpulan data lengkap ini untuk blok Ethereum terbaru menjadi paling banyak beberapa ratus KiB. Secara bersamaan, jika belum dilakukan, validator akan menjadi mencoba mengambil informasi yang berkaitan dengan transisi blok sebelumnya, awalnya dari blok sebelumnya validators dan setelahnya dari semua validators yang menandatangani ketersediaan datanya. Setelah validator menerima blok kandidat tersebut, mereka kemudian memvalidasinya secara lokal. Proses validasi terdapat dalam modul validator kelas parachain, a modul perangkat lunak sensitif konsensus yang harus ditulis untuk setiap implementasi Polkadot (meskipun pada prinsipnya perpustakaan dengan C ABI dapat mengaktifkan satu perpustakaan dibagi antara implementasi dengan yang sesuai pengurangan keselamatan karena hanya memiliki satu implementasi “referensi”). Proses ini mengambil header blok sebelumnya dan memverifikasi identitasnya melalui rantai relai yang baru saja disepakati blok di mana hash-nya harus dicatat. Setelah validitas header induk dipastikan, parachain tertentu fungsi validasi kelas dapat dipanggil. Ini adalah fungsi tunggal yang menerima sejumlah bidang data (kira-kira yang diberikan sebelumnya) dan mengembalikan Boolean sederhana menyatakan keabsahan blok tersebut. Sebagian besar fungsi validasi tersebut akan memeriksa terlebih dahulu bidang header yang dapat diturunkan langsung darinya blok induk (misalnya induk hash, nomor). Mengikuti ini, mereka akan mengisi struktur data internal apa pun sebagai diperlukan dalam rangka proses transaksi dan/atau postingan. Untuk rantai mirip Ethereum, jumlah ini sama dengan mengisi a coba database dengan node yang akan diperlukan untuk eksekusi penuh transaksi. Jenis rantai lain mungkin memilikinya hal lainnyamekanisme perbaikan. Setelah selesai, postingan masuk dan transaksi eksternal (atau apa pun yang diwakili oleh data eksternal) akan ditampilkan diberlakukan, seimbang sesuai dengan spesifikasi rantai. (A default yang masuk akal mungkin mengharuskan semua postingan masuk diproses sebelum transaksi eksternal dilayani, namun hal ini harus ditentukan oleh logika parachain.) Melalui pemberlakuan ini, akan ada serangkaian posko keluar dibuat dan akan diverifikasi bahwa ini memang cocok calon kolator. Akhirnya, penduduknya cukup header akan diperiksa terhadap header kandidat. Dengan blok kandidat yang divalidasi sepenuhnya, validator kemudian dapat memilih hash dari headernya dan mengirimkan semua informasi validasi yang diperlukan ke co-validators di subgrupnya. 6.7.1. Kolator Parachain. Kolator parachain adalah operator tidak terikat yang memenuhi sebagian besar tugas penambang pada jaringan blockchain saat ini. Mereka spesifik ke parachain tertentu. Untuk beroperasi mereka harus pertahankan rantai relai dan sinkronisasi penuh parachain. Arti sebenarnya dari “disinkronkan sepenuhnya” akan bergantung pada kelas parachain, meskipun akan selalu mencakup keadaan antrean masuknya parachain saat ini. Dalam kasus Ethereum, hal ini juga melibatkan setidaknya pemeliharaan database Merkle-tree dari beberapa blok terakhir, tapi mungkin juga menyertakan berbagai struktur data lainnya termasuk Bloom filter untuk keberadaan akun, informasi keluarga, pencatatan output dan tabel pencarian terbalik untuk nomor blok. Selain menjaga kedua rantai tetap sinkron, itu juga harus “memancing” transaksi dengan menjaga antrian transaksi dan menerima transaksi yang divalidasi dengan benar dari jaringan publik. Dengan antrian dan rantai, itu benar mampu membuat kandidat blok baru untuk validator yang dipilih di setiap blok (yang identitasnya diketahui sejak rantai relai disinkronkan) dan mengirimkannya, bersama dengan berbagai informasi tambahan seperti bukti validitas, via jaringan rekan. Untuk masalahnya, ia memungut semua biaya yang berkaitan dengan transaksi yang disertakannya. Berbagai ilmu ekonomi beredar seputar hal ini pengaturan. Di pasar yang sangat kompetitif di mana ada jika kelebihan kolator, kemungkinan transaksinya biaya dibagikan dengan parachain validators untuk memberi insentif dimasukkannya blok kolator tertentu. Demikian pula,

POLKADOT: VISI KERANGKA MULTI-RANTAI HETEROGEN DRAFT 1 17 beberapa kolator bahkan mungkin menaikkan biaya yang diperlukan harus dibayar agar blok tersebut lebih menarik validators. Dalam hal ini, pasar alami harus terbentuk dengan transaksi yang membayar biaya lebih tinggi melewati antrian dan memiliki inklusi yang lebih cepat dalam rantai. 6.8. Jaringan. Jaringan pada blockchains tradisional seperti Ethereum dan Bitcoin memiliki persyaratan yang cukup sederhana. Semua transaksi dan blokir disiarkan dalam gosip sederhana yang tidak terarah. Sinkronisasi lebih terlibat, khususnya dengan Ethereum tetapi kenyataannya logika ini terkandung di dalamnya strategi rekan daripada protokol itu sendiri yang menyelesaikan beberapa jenis pesan permintaan dan jawaban. Meskipun Ethereum membuat kemajuan pada penawaran protokol saat ini dengan protokol devp2p, yang memungkinkan banyak hal subprotokol yang akan dimultipleks melalui satu koneksi peer dan dengan demikian memiliki banyak dukungan peer overlay yang sama protokol p2p secara bersamaan, bagian Ethereum dari protokolnya masih relatif sederhana dan p2p protokol untuk sementara waktu masih belum selesai dengan hal-hal penting fungsionalitas hilang seperti dukungan QoS. Sayangnya, ada keinginan untuk membuat protokol “web 3” yang lebih umum gagal, dengan satu-satunya proyek yang menggunakannya secara eksplisit didanai dari penjualan massal Ethereum. Persyaratan untuk Polkadot lebih substansial. Daripada jaringan yang sepenuhnya seragam, Polkadot memiliki beberapa jenis peserta yang masing-masing memiliki persyaratan berbeda mengenai susunan rekannya dan beberapa jaringan “jalan” yang cenderung dibicarakan oleh peserta data tertentu. Ini berarti hamparan jaringan yang jauh lebih terstruktur—dan protokol yang mendukungnya— kemungkinan besar akan diperlukan. Selain itu, perluasan untuk memfasilitasi penambahan di masa depan seperti “rantai” jenis baru mungkin terjadi sendiri memerlukan struktur overlay baru. Sedangkan pembahasan mendalam tentang cara networking protokol mungkin terlihat berada di luar cakupan dokumen ini, beberapa analisis persyaratan masuk akal. Kita bisa secara kasar membagi peserta jaringan kami menjadi dua set (rantai relai, parachain) masing-masing dari tiga himpunan bagian. Kita bisa juga menyatakan bahwa masing-masing peserta parachain saja tertarik untuk berbicara di antara mereka sendiri dan bukannya peserta di parachain lainnya: • Peserta rantai relai: • Validator: P, dibagi menjadi himpunan bagian P[s] untuk masing-masingnya parachain • Penjamin Ketersediaan: A (ini dapat diwakili oleh Validator dalam bentuk dasar protokol) • Klien rantai relai: M (perhatikan anggota masing-masing set parachain juga akan cenderung menjadi anggota M) • Peserta Parachain: • Pengumpul Parachain: C[0], C[1], . . . • Nelayan Parachain: F[0], F[1], . . . • Klien Parachain: S[0], S[1], . . . • Klien ringan Parachain: L[0], L[1], . . . Secara umum kami menyebutkan kelas-kelas komunikasi tertentu akan cenderung terjadi di antara anggota himpunan ini: • P | SEBUAH <-> P | J: Itu penuh mengatur dari validators/penjamin harus menjadi terhubung dengan baik untuk mencapai konsensus. • P[s] <-> C[s] | P[s]: Setiap validator sebagai anggota grup parachain tertentu akan cenderung bergosip dengan anggota lainnya serta kolator parachain itu untuk menemukan dan berbagi kandidat blok. • A <-> P[s] | C | A: Setiap penjamin ketersediaan perlu mengumpulkan lintas rantai yang sensitif terhadap konsensus data dari validator yang ditugaskan padanya; kolator juga dapat mengoptimalkan peluang konsensus mengenai hal tersebut memblokir dengan mengiklankannya ke penjamin ketersediaan. Begitu mereka punya, datanya akan dicairkan ke penjamin lainnya untuk memfasilitasi konsensus. • P[s] <-> A | P[s']: Parachain validators akan perlu mengumpulkan data masukan tambahan dari kumpulan validator sebelumnya atau penjamin ketersediaan. • F[s] <-> P: Saat melaporkan, nelayan boleh menempatkan klaim dengan peserta mana pun. • M <-> M | P | J: Klien rantai relai umum menyalurkan data dari validator dan penjamin. • S[s] <-> S[s] | P[s] | A: Klien Parachain mencairkan data dari validator/penjamin. • L[s] <-> L[s] | S[s]: Klien ringan Parachain menyalurkan data dari klien penuh. Untuk memastikan mekanisme transportasi yang efisien, “flat” jaringan overlay—seperti devp2p Ethereum—di mana masing-masing node tidak (secara tidak sewenang-wenang) membedakan kebugarannya teman sebaya sepertinya tidak cocok. Cukup dapat diperluas mekanisme seleksi dan penemuan rekan mungkin diperlukan untuk dimasukkan dalam protokol serta agresif merencanakan tinjauan ke depan untuk memastikan jenis rekan yang tepat adalah conne yang “secara kebetulan”.diperiksa pada waktu yang tepat. Strategi tata rias teman yang tepat akan berbeda untuk setiap kelas peserta: untuk skala yang tepat multi-rantai, collator harus terus menerus menghubungkan kembali ke validator yang dipilih, atau wasiat memerlukan perjanjian berkelanjutan dengan subkumpulan validators untuk memastikan mereka tidak terputus selama sebagian besar waktu mereka tidak berguna untuk validator itu. Collator juga secara alami akan berusaha mempertahankannya atau koneksi yang lebih stabil menjadi penjamin ketersediaan ditetapkan untuk memastikan penyebaran cepat dari isu-isu yang sensitif terhadap konsensus data. Penjamin ketersediaan sebagian besar bertujuan untuk mempertahankan a koneksi yang stabil satu sama lain dan ke validators (untuk konsensus dan data parachain yang penting bagi konsensus mereka membuktikannya), serta beberapa kolator (untuk parachain data) dan beberapa nelayan dan klien penuh (untuk menyebar informasi). Validator akan cenderung mencari validator lain, terutama yang berada dalam subgrup yang sama dan apa pun collators yang dapat memasok mereka dengan kandidat blok parachain. Nelayan, serta rantai estafet umum dan parachain klien umumnya bertujuan untuk menjaga koneksi tetap terbuka untuk a validator atau penjamin, tetapi banyak node lain yang serupa untuk diri mereka sendiri sebaliknya. Klien ringan parachain juga bertujuan untuk terhubung ke klien penuh parachain, jika bukan hanya klien ringan parachain lainnya. 6.8.1. Masalah Peer Churn. Dalam proposal protokol dasar, masing-masing himpunan bagian ini terus-menerus berubah secara acak dengan setiap blok ketika validator ditugaskan untuk memverifikasi transisi parachain dipilih secara acak. Ini bisa menjadi masalah jika node yang berbeda (non-peer) memerlukannya meneruskan data antara satu sama lain. Kita harus mengandalkannya jaringan rekan yang terdistribusi secara adil dan terhubung dengan baik

POLKADOT: VISI KERANGKA MULTI-RANTAI HETEROGEN DRAFT 1 18 memastikan bahwa jarak hop (dan latensi terburuk) hanya bertambah seiring dengan logaritma ukuran jaringan (protokol seperti Kademlia [13] dapat membantu di sini), atau seseorang harus melakukannya memperkenalkan waktu blok yang lebih lama untuk memungkinkan negosiasi koneksi yang diperlukan berlangsung untuk mempertahankan kumpulan rekan itu mencerminkan kebutuhan komunikasi node saat ini. Tak satu pun dari solusi ini yang bagus: waktu blok yang lama dipaksakan pada jaringan dapat membuatnya tidak berguna aplikasi dan rantai tertentu. Bahkan sangat adil dan jaringan yang terhubung akan menghasilkan pemborosan yang besar bandwidth saat diskalakan karena adanya node yang tidak tertarik untuk meneruskan data yang tidak berguna bagi mereka. Meskipun kedua arah mungkin merupakan bagian dari solusi, pengoptimalan yang masuk akal untuk membantu meminimalkan latensi menjadi untuk membatasi volatilitas parachain ini validator set, baik menugaskan kembali keanggotaan hanya di antara rangkaian blok (misalnya dalam kelompok 15, yang dalam waktu 4 detik waktu blok berarti mengubah koneksi hanya sekali per menit) atau dengan merotasi keanggotaan secara bertahap, misalnya diubah oleh satu anggota pada satu waktu (misalnya jika ada adalah 15 validator yang ditugaskan ke setiap parachain, maka rata-rata akan memakan waktu satu menit penuh antara parachain yang benar-benar unik set). Dengan membatasi jumlah peer churn, dan memastikan bahwa koneksi peer yang menguntungkan terjalin dengan baik maju melalui prediktabilitas parsial parachain set, kami dapat membantu memastikan setiap node tetap permanen pemilihan rekan secara kebetulan. 6.8.2. Jalur menuju Protokol Jaringan yang Efektif. Kemungkinan besar upaya pembangunan yang paling efektif dan masuk akal akan fokus pada pemanfaatan protokol yang sudah ada milik kita sendiri. Ada beberapa protokol basis peer-to-peer yang ada kami dapat menggunakan atau menambah termasuk devp2p milik Ethereum [22], libp2p IPFS [1] dan GNUnet [4] GNU. Tinjauan lengkap mengenai protokol-protokol ini dan relevansinya untuk membangun a jaringan peer modular yang mendukung jaminan struktural tertentu, peer steering dinamis, dan sub-protokol yang dapat diperluas jauh di luar cakupan dokumen ini tetapi akan menjadi langkah penting dalam implementasi Polkadot. 7. Kepraktisan Protokol 7.1. Pembayaran Transaksi Antar Rantai. Meskipun bagus sejumlah besar kebebasan dan kesederhanaan diperoleh dengan menghilangkan kebutuhan akan kerangka akuntansi sumber daya komputasi holistik seperti gas Ethereum, hal ini menimbulkan pertanyaan penting: tanpa gas, bagaimana sebuah parachain bisa bekerja? menghindari parachain lain memaksanya melakukan komputasi? Sementara kita bisa mengandalkan antrian transaksi-pasca masuknya buffer untuk mencegah satu rantai mengirim spam ke rantai lainnya data transaksi, tidak ada mekanisme setara yang disediakan oleh protokol untuk mencegah spamming dalam pemrosesan transaksi. Ini adalah masalah yang diserahkan pada tingkat yang lebih tinggi. Sejak rantai bebas untuk melampirkan semantik sewenang-wenang ke yang masuk data transaksi-posting, kami dapat memastikan perhitungan itu harus dibayar sebelum memulai. Senada dengan itu model yang dianut oleh Ethereum Ketenangan, bisa kita bayangkan kontrak “pembobolan” dalam parachain yang memungkinkan a validator untuk mendapatkan jaminan pembayaran sebagai imbalan atas penyediaan sejumlah sumber daya pemrosesan tertentu. Sumber daya ini dapat diukur dalam bentuk seperti gas, namun bisa juga berupa model yang benar-benar baru seperti model waktu-untuk-eksekusi yang subyektif atau model biaya tetap seperti Bitcoin. Dengan sendirinya, hal ini tidak terlalu berguna karena kita tidak dapat langsung berasumsi bahwa penelepon off-chain telah tersedia untuk mereka mekanisme nilai apa pun yang dikenali oleh pembobolan tersebut kontrak. Namun, kita dapat membayangkan kontrak “breakout” sekunder dalam rantai sumber. Kedua kontrak tersebut bersama-sama akan membentuk jembatan, saling mengenal dan memberikan kesetaraan nilai. (Staking-tokens, tersedia untuk masing-masing, dapat digunakan untuk menyelesaikan neraca pembayaran.) Memanggil rantai lain seperti itu berarti melakukan proxy melalui jembatan ini, yang akan menyediakan sarana menegosiasikan transfer nilai antar rantai untuk membayar sumber daya komputasi yang diperlukan pada parachain tujuan. 7.2. Tambahan Rantai. Sementara itu tambahan dari sebuah parachain adalah operasi yang relatif murah, tidak gratis. Lebih banyak parachain berarti lebih sedikit validator per parachain dan, pada akhirnya, sejumlah validator yang lebih besar masing-masing dengan a obligasi rata-rata berkurang. Sementara masalah biaya paksaan yang lebih kecil untuk menyerang parachain dapat diatasi nelayan, pertumbuhan validator pada dasarnya memaksa a tingkat latensi yang lebih tinggi karena mekanisme konsensus yang mendasari sayaitu. Selanjutnya masing-masing parachain membawa serta potensi kesedihan validators dengan an algoritma validasi yang terlalu membebani. Dengan demikian, akan ada “harga” tertentu yang validators dan/atau komunitas pemangku kepentingan akan mengekstraksi untuk penambahan parachain baru. Pasar rantai ini akan melakukannya mungkin melihat penambahan: • Rantai yang kemungkinan besar tidak membayar kontribusi bersih (dalam hal mengunci atau membakar staking tokens) untuk dijadikan bagian (misalnya rantai konsorsium, Rantai Doge, rantai khusus aplikasi); • rantai yang memberikan nilai intrinsik pada jaringan melalui penambahan fungsionalitas tertentu yang sulit untuk mencapai tujuan lain (misalnya kerahasiaan, skalabilitas internal, ikatan layanan). Pada dasarnya, komunitas pemangku kepentingan perlu melakukan hal tersebut mendapatkan insentif untuk menambah rantai anak—baik secara finansial maupun melalui keinginan untuk menambahkan rantai fitur ke relai. Diharapkan bahwa penambahan rantai baru akan memberikan dampak yang sangat besar periode pemberitahuan singkat untuk penghapusan, memungkinkan rantai baru untuk melakukan penghapusan dapat dicoba tanpa risiko kompromi proposisi nilai jangka menengah atau panjang. 8. Kesimpulan Kami telah menguraikan arah yang mungkin diambil untuk penulis a protokol multi-rantai yang heterogen dan terukur dengan potensi untuk kompatibel dengan protokol tertentu yang sudah ada sebelumnya blockchain jaringan. Di bawah protokol seperti itu, para peserta bekerja demi kepentingan pribadi untuk menciptakan sistem keseluruhan yang dapat diperluas dengan cara yang sangat gratis dan tanpa biaya yang biasa bagi pengguna yang sudah ada. berasal dari desain standar blockchain. Kami telah memberi garis besar arsitektur yang diperlukan termasuk sifat peserta, insentif ekonomi mereka dan proses yang harus mereka ikuti. Kita punya mengidentifikasi desain dasar dan mendiskusikan kekuatannya dan keterbatasan; oleh karena itu kami memiliki petunjuk lebih lanjut yang mana dapat meringankan keterbatasan tersebut dan memberikan landasan lebih lanjut menuju solusi blockchain yang sepenuhnya dapat diskalakan.POLKADOT: VISI KERANGKA MULTI-RANTAI HETEROGEN DRAFT 1 19 8.1. Materi Hilang dan Pertanyaan Terbuka. Forking jaringan selalu merupakan kemungkinan dari implementasi protokol yang berbeda. Pemulihan dari hal seperti itu kondisi luar biasa tidak dibahas. Mengingat jaringan akan mempunyai periode penyelesaian yang bukan nol, pemulihan dari forking rantai relai seharusnya tidak menjadi masalah besar, namun memerlukan integrasi yang cermat protokol konsensus. Penyitaan obligasi dan sebaliknya pemberian imbalan telah terjadi belum dieksplorasi secara mendalam. Saat ini kami menerima imbalan disediakan berdasarkan prinsip pemenang mengambil semuanya: hal ini mungkin tidak berlaku memberikan model insentif terbaik bagi nelayan. Proses pengungkapan komitmen jangka pendek akan memungkinkan banyak nelayan untuk mengklaim hadiah dengan memberikan distribusi hadiah yang lebih adil, namun proses tersebut dapat menyebabkan latensi tambahan di penemuan perilaku buruk. 8.2. Ucapan Terima Kasih. Terima kasih banyak untuk semuanya pembaca bukti yang telah membantu menjelaskan hal ini secara samar-samar bentuk yang rapi. Secara khusus, Peter Czaban, Bj¨orn Wagner, Ken Kappler, Robert Habermeier, Vitalik Buterin, Reto Trinkler dan Jack Petersson. Terima kasih untuk semuanya orang-orang yang telah menyumbangkan ide atau permulaan Oleh karena itu, Marek Kotewicz dan Aeron Buchanan layak mendapat perhatian khusus. Dan terima kasih kepada semua orang atas bantuan mereka sepanjang jalan. Semua kesalahan adalah kesalahan saya sendiri. Bagian dari pekerjaan ini, termasuk penelitian awal algoritma konsensus, sebagian didanai oleh Inggris Pemerintah di bawah program Innovate UK.