Polkadot: วิสัยทัศน์สำหรับกรอบงาน Multi-Chain ที่ต่างกัน
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
บทคัดย่อ
โพลคาดอท: วิสัยทัศน์สำหรับกรอบการทำงานแบบหลายห่วงโซ่ที่แตกต่างกัน ร่างที่ 1 ดร. กาวิน วู้ด ผู้ก่อตั้ง ETHEREUM และความเท่าเทียมกัน กาวิน@PARITY.IO นามธรรม สถาปัตยกรรม blockchain ในปัจจุบันล้วนประสบกับปัญหาหลายประการ ไม่เพียงแต่ความสามารถในการขยายและความสามารถในการปรับขนาดในทางปฏิบัติเท่านั้น เราเชื่อว่าสิ่งนี้เกิดจากการเชื่อมโยงสองส่วนที่สำคัญมากของสถาปัตยกรรมฉันทามติ กล่าวคือ canonicality และ validity ใกล้เคียงกันเกินไป บทความนี้จะแนะนำสถาปัตยกรรม มัลติเชนที่ต่างกัน ซึ่งทำให้ทั้งสองแยกจากกันโดยพื้นฐาน ในการแบ่งส่วนทั้งสองส่วนนี้ออก และโดยการรักษาฟังก์ชันการทำงานโดยรวมให้เหลือน้อยที่สุด ด้านความปลอดภัยและการคมนาคมขนส่ง เราแนะนำวิธีการปฏิบัติจริงของความสามารถในการขยายหลักในแหล่งกำเนิด ความสามารถในการปรับขนาดได้รับการแก้ไขผ่าน แนวทางการแบ่งแยกและพิชิตสำหรับทั้งสองหน้าที่นี้ โดยขยายขอบเขตออกจากแกนกลางที่เชื่อมโยงกันด้วยการสร้างแรงจูงใจของ โหนดสาธารณะที่ไม่น่าเชื่อถือ ลักษณะที่แตกต่างกันของสถาปัตยกรรมนี้ช่วยให้ระบบฉันทามติประเภทที่แตกต่างกันอย่างมากทำงานร่วมกันใน "สหพันธ์" ที่ไร้ความไว้วางใจและกระจายอำนาจอย่างเต็มที่ ทำให้เครือข่ายแบบเปิดและแบบปิดสามารถเข้าถึงโดยปราศจากความไว้วางใจ กันและกัน เราหยิบยกวิธีการมอบความเข้ากันได้แบบย้อนหลังกับเครือข่ายที่มีอยู่แล้วตั้งแต่หนึ่งเครือข่ายขึ้นไป เช่น Ethereum. เราเชื่อว่าระบบดังกล่าวให้องค์ประกอบระดับฐานที่เป็นประโยชน์ในการค้นหาโดยรวมในทางปฏิบัติ ระบบที่นำไปปฏิบัติได้ซึ่งมีความสามารถในการปรับขนาดและความเป็นส่วนตัวในระดับการค้าระดับโลก 1. คำนำ ข้อมูลนี้มีวัตถุประสงค์เพื่อเป็น "วิสัยทัศน์" ทางเทคนิคโดยสรุป ของทิศทางหนึ่งที่เป็นไปได้ที่อาจนำไปใช้ในการพัฒนากระบวนทัศน์ blockchain เพิ่มเติม พร้อมด้วยเหตุผลบางประการว่าทำไมทิศทางนี้จึงสมเหตุสมผล มันวางอยู่ใน รายละเอียดให้มากที่สุดเท่าที่จะเป็นไปได้ในขั้นตอนของการพัฒนานี้ ระบบที่อาจให้การปรับปรุงอย่างเป็นรูปธรรมใน จำนวนแง่มุมของเทคโนโลยี blockchain ไม่ได้มีวัตถุประสงค์เพื่อเป็นการระบุรายละเอียด เป็นทางการหรืออย่างอื่น ไม่ได้มีวัตถุประสงค์เพื่อให้ครอบคลุมหรือเพื่อเป็น การออกแบบขั้นสุดท้าย ไม่ได้มีวัตถุประสงค์เพื่อให้ครอบคลุมประเด็นที่ไม่ใช่ประเด็นหลัก ของเฟรมเวิร์ก เช่น API, การเชื่อมโยง, ภาษา และ การใช้งาน นี่เป็นการทดลองที่น่าสังเกต โดยที่พารามิเตอร์ ระบุไว้แล้วมีแนวโน้มที่จะเปลี่ยนแปลง กลไกจะ จะถูกเพิ่ม ปรับปรุง และลบออกเพื่อตอบสนองต่อชุมชน ความคิดและคำวิจารณ์ ส่วนใหญ่ของบทความนี้น่าจะเป็นไปได้ ได้รับการแก้ไขเป็นหลักฐานการทดลองและการสร้างต้นแบบให้ ข้อมูลของเราเกี่ยวกับสิ่งที่จะได้ผลและสิ่งที่ไม่ได้ผล เอกสารนี้ประกอบด้วยคำอธิบายหลักของระเบียบการพร้อมกับแนวคิดสำหรับแนวทางที่อาจนำไปปฏิบัติ เพื่อปรับปรุงด้านต่างๆ ก็มีจินตนาการว่าแกนกลาง คำอธิบายจะถูกใช้เป็นจุดเริ่มต้นสำหรับการเริ่มต้น ชุดการพิสูจน์แนวคิด “เวอร์ชัน 1.0” สุดท้ายจะเป็น อิงตามระเบียบการที่ได้รับการปรับปรุงนี้พร้อมกับแนวคิดเพิ่มเติมที่ได้รับการพิสูจน์และมุ่งมั่นที่จะทำ จำเป็นเพื่อให้โครงการบรรลุเป้าหมาย 1.1. ประวัติศาสตร์. • 10 กันยายน 2559: 0.1.0-proof1 • 20/10/2559: 0.1.0-proof2 • 01/11/2016: 0.1.0-proof3 • 10/11/2559: 0.1.0 2. บทนำ Blockchains ได้แสดงให้เห็นถึงคำมั่นสัญญาที่ยอดเยี่ยมของประโยชน์ใช้สอยในหลาย ๆ ด้านรวมถึง “Internet of Things” (IoT) การเงิน การกำกับดูแล การจัดการข้อมูลประจำตัว การกระจายอำนาจทางเว็บ และการติดตามสินทรัพย์ อย่างไรก็ตาม แม้ว่า คำมั่นสัญญาทางเทคโนโลยีและการพูดคุยครั้งยิ่งใหญ่ที่เรายังไม่เคยเห็น การปรับใช้เทคโนโลยีปัจจุบันในโลกแห่งความเป็นจริงอย่างมีนัยสำคัญ เราเชื่อว่านี่เป็นความล้มเหลวหลักห้าประการในปัจจุบัน กองเทคโนโลยี: ความสามารถในการปรับขนาด: ปริมาณการใช้ทรัพยากรทั่วโลก ในการประมวลผลแบนด์วิธและการจัดเก็บเพื่อให้ระบบประมวลผลรายการเดียวและจำนวนเท่าใด ธุรกรรมสามารถดำเนินการได้ตามสมควรภายใต้ สภาวะสูงสุด? การแยกตัวได้: ความต้องการที่แตกต่างกันของหลาย ๆ สามารถ ฝ่ายและแอปพลิเคชันได้รับการแก้ไขในระดับที่ใกล้เคียงที่สุดภายใต้กรอบการทำงานเดียวกันหรือไม่ การพัฒนา: เครื่องมือทำงานได้ดีแค่ไหน? ทำ API ตอบสนองความต้องการของนักพัฒนาหรือไม่? มีสื่อการเรียนไหม? มีการบูรณาการที่ถูกต้องหรือไม่? การกำกับดูแล: เครือข่ายสามารถคงความยืดหยุ่นไว้ได้หรือไม่ พัฒนาและปรับตัวตามกาลเวลา? ตัดสินใจได้ สร้างขึ้นด้วยความครอบคลุม ความชอบธรรม และ ความโปร่งใสเพื่อให้ความเป็นผู้นำที่มีประสิทธิผลของ ระบบกระจายอำนาจ? การบังคับใช้: เทคโนโลยีนี้ตอบสนองความต้องการอันร้อนแรงด้วยตัวมันเองจริงหรือ จำเป็นต้องใช้ “มิดเดิลแวร์” อื่นๆ เพื่อลดช่องว่างนี้หรือไม่ การใช้งานจริง? ในงานปัจจุบัน เรามุ่งหวังที่จะกล่าวถึงสองเรื่องแรก ประเด็นสำคัญ: ความสามารถในการปรับขนาดและการแยกตัวได้ ก็บอกแล้วเราเชื่อ กรอบงาน Polkadot สามารถให้การปรับปรุงที่มีความหมายในแต่ละประเภทของปัญหาเหล่านี้ การใช้งาน blockchain ที่ทันสมัยและมีประสิทธิภาพ เช่น ลูกค้า Parity Ethereum [17] สามารถดำเนินการได้ess เกินกว่า ธุรกรรม 3,000 รายการต่อวินาทีเมื่อทำงานบนฮาร์ดแวร์สำหรับผู้บริโภคที่มีประสิทธิภาพ อย่างไรก็ตาม โลกแห่งความเป็นจริงในปัจจุบัน blockchain เครือข่ายถูกจำกัดไว้ที่ประมาณ 30 เครือข่าย การทำธุรกรรมต่อวินาที ข้อจำกัดนี้ส่วนใหญ่มาจากข้อเท็จจริงที่ว่ากลไกฉันทามติแบบซิงโครนัสในปัจจุบันจำเป็นต้องมีระยะขอบด้านความปลอดภัยที่กว้าง ระยะเวลาการประมวลผลที่คาดไว้ ซึ่งจะรุนแรงขึ้นโดย 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.
การแนะนำ
Blockchains ได้แสดงให้เห็นถึงคำมั่นสัญญาที่ยอดเยี่ยมของประโยชน์ใช้สอยในหลาย ๆ ด้านรวมถึง “Internet of Things” (IoT) การเงิน การกำกับดูแล การจัดการข้อมูลประจำตัว การกระจายอำนาจทางเว็บ และการติดตามสินทรัพย์ อย่างไรก็ตาม แม้ว่า คำมั่นสัญญาทางเทคโนโลยีและการพูดคุยครั้งยิ่งใหญ่ที่เรายังไม่เคยเห็น การปรับใช้เทคโนโลยีปัจจุบันในโลกแห่งความเป็นจริงอย่างมีนัยสำคัญ เราเชื่อว่านี่เป็นความล้มเหลวหลักห้าประการในปัจจุบัน กองเทคโนโลยี: ความสามารถในการปรับขนาด: ปริมาณการใช้ทรัพยากรทั่วโลก ในการประมวลผลแบนด์วิธและการจัดเก็บเพื่อให้ระบบประมวลผลรายการเดียวและจำนวนเท่าใด ธุรกรรมสามารถดำเนินการได้ตามสมควรภายใต้ สภาวะสูงสุด? การแยกตัวได้: ความต้องการที่แตกต่างกันของหลาย ๆ สามารถ ฝ่ายและแอปพลิเคชันได้รับการแก้ไขในระดับที่ใกล้เคียงที่สุดภายใต้กรอบการทำงานเดียวกันหรือไม่ การพัฒนา: เครื่องมือทำงานได้ดีแค่ไหน? ทำ API ตอบสนองความต้องการของนักพัฒนาหรือไม่? มีสื่อการเรียนไหม? มีการบูรณาการที่ถูกต้องหรือไม่? การกำกับดูแล: เครือข่ายสามารถคงความยืดหยุ่นไว้ได้หรือไม่ พัฒนาและปรับตัวตามกาลเวลา? ตัดสินใจได้ สร้างขึ้นด้วยความครอบคลุม ความชอบธรรม และ ความโปร่งใสเพื่อให้ความเป็นผู้นำที่มีประสิทธิผลของ ระบบกระจายอำนาจ? การบังคับใช้: เทคโนโลยีนี้ตอบสนองความต้องการอันร้อนแรงด้วยตัวมันเองจริงหรือ จำเป็นต้องใช้ “มิดเดิลแวร์” อื่นๆ เพื่อลดช่องว่างนี้หรือไม่ การใช้งานจริง? ในงานปัจจุบัน เรามุ่งหวังที่จะกล่าวถึงสองเรื่องแรก ประเด็นสำคัญ: ความสามารถในการปรับขนาดและการแยกตัวได้ ก็บอกแล้วเราเชื่อ กรอบงาน Polkadot สามารถให้การปรับปรุงที่มีความหมายในแต่ละประเภทของปัญหาเหล่านี้ การใช้งาน blockchain ที่ทันสมัยและมีประสิทธิภาพ เช่น ลูกค้า Parity Ethereum [17] สามารถประมวลผลได้เกินกว่า ธุรกรรม 3,000 รายการต่อวินาทีเมื่อทำงานบนฮาร์ดแวร์สำหรับผู้บริโภคที่มีประสิทธิภาพ อย่างไรก็ตาม โลกแห่งความเป็นจริงในปัจจุบัน blockchain เครือข่ายถูกจำกัดไว้ที่ประมาณ 30 เครือข่าย การทำธุรกรรมต่อวินาที ข้อจำกัดนี้ส่วนใหญ่มาจากข้อเท็จจริงที่ว่ากลไกฉันทามติแบบซิงโครนัสในปัจจุบันจำเป็นต้องมีระยะขอบด้านความปลอดภัยที่กว้าง ระยะเวลาการประมวลผลที่คาดไว้ ซึ่งจะรุนแรงขึ้นโดยโพลคาดอท: วิสัยทัศน์สำหรับกรอบการทำงานแบบหลายห่วงโซ่ที่แตกต่างกัน ร่างที่ 1 2 ความปรารถนาที่จะสนับสนุนการใช้งานที่ช้าลง ทั้งนี้ก็เนื่องมาจาก สถาปัตยกรรมฉันทามติพื้นฐาน: กลไกการเปลี่ยนผ่านของรัฐ หรือวิธีการที่ฝ่ายต่างๆ เปรียบเทียบ และดำเนินธุรกรรม โดยมีตรรกะที่เชื่อมโยงกันเป็นพื้นฐาน เข้าสู่กลไกฉันทามติ "canonicalization" หรือ หมายถึงการที่ฝ่ายใดฝ่ายหนึ่งตกลงกันอย่างใดอย่างหนึ่งในจำนวนหนึ่ง เป็นไปได้ ถูกต้อง ประวัติศาสตร์ สิ่งนี้ใช้ได้กับทั้งระบบ proof-of-work (PoW) เช่น Bitcoin [15] และ Ethereum [5,23] และระบบ Proofof-stake (PoS) เช่น NXT [8] และ Bitshares [12]: ในที่สุดทุกคนก็ต้องทนทุกข์ทรมานจากความพิการแบบเดียวกัน มันเป็นเรื่องง่าย กลยุทธ์ที่ช่วยให้ blockchains ประสบความสำเร็จ อย่างไรก็ตาม โดยการเชื่อมต่อกลไกทั้งสองนี้เข้าด้วยกันอย่างแน่นหนาเป็นหน่วยเดียว ของโปรโตคอล เรายังรวมกลุ่มที่แตกต่างกันหลายรายการไว้ด้วยกัน นักแสดงและแอปพลิเคชันที่มีโปรไฟล์ความเสี่ยงที่แตกต่างกัน ข้อกำหนดความสามารถในการขยายขนาดที่แตกต่างกัน และความต้องการความเป็นส่วนตัวที่แตกต่างกัน ขนาดเดียวไม่เหมาะกับทั้งหมด บ่อยเกินไปที่จะเป็นกรณีที่ใน ความปรารถนาที่จะอุทธรณ์ในวงกว้าง เครือข่ายใช้ระดับของการอนุรักษ์ซึ่งส่งผลให้มีตัวส่วนร่วมต่ำที่สุด ให้บริการเพียงไม่กี่อย่างอย่างเหมาะสมและนำไปสู่ความล้มเหลวในที่สุด ในความสามารถในการสร้างสรรค์ ดำเนินการ และปรับตัวในบางครั้ง อย่างมาก ระบบบางอย่างเช่นเช่น ข้อเท็จจริง [21] ยกเลิกกลไกการเปลี่ยนสถานะโดยสิ้นเชิง อย่างไรก็ตาม ส่วนใหญ่ ยูทิลิตี้ที่เราต้องการนั้นต้องการความสามารถในการเปลี่ยนสถานะ ตามเครื่องของรัฐที่ใช้ร่วมกัน ปล่อยมันไปก็ช่วยได้ ปัญหาทางเลือก มันไม่ได้ให้ทางเลือกอื่น วิธีการแก้ปัญหา ดังนั้นจึงดูเหมือนชัดเจนว่าเป็นทิศทางที่สมเหตุสมผลอย่างหนึ่ง เพื่อสำรวจเป็นเส้นทางสู่การประมวลผลแบบกระจายอำนาจที่ปรับขนาดได้ แพลตฟอร์มคือการแยกสถาปัตยกรรมฉันทามติจาก กลไกการเปลี่ยนผ่านของรัฐ และอาจไม่น่าแปลกใจเลยที่นี่คือกลยุทธ์ที่ Polkadot ใช้เป็นโซลูชันในการขยายขนาด 2.1. ระเบียบวิธี การนำไปใช้ และเครือข่าย ชอบ Bitcoin และ Ethereum, Polkadot อ้างถึงโปรโตคอลเครือข่ายและโปรโตคอลหลัก (สมมุติมาจนบัดนี้) พร้อมกัน เครือข่ายสาธารณะที่รันโปรโตคอลนี้ Polkadot มีวัตถุประสงค์เพื่อเป็นโครงการที่เปิดกว้างและฟรี ข้อกำหนดของโปรโตคอลอยู่ภายใต้ใบอนุญาต Creative Commons และ รหัสถูกวางไว้ภายใต้ใบอนุญาต FLOSS โครงการนี้ก็คือ พัฒนาในลักษณะเปิดกว้างและยอมรับการมีส่วนร่วม มันจะมีประโยชน์ที่ไหนก็ตาม ระบบของ RFC ที่ไม่เหมือนกัน ข้อเสนอการปรับปรุงหลามจะอนุญาตให้มีวิธีการ การทำงานร่วมกันอย่างเปิดเผยเกี่ยวกับการเปลี่ยนแปลงและการอัพเกรดโปรโตคอล การใช้งานโปรโตคอล Polkadot ครั้งแรกของเรา จะเป็นที่รู้จักในนามแพลตฟอร์ม Parity Polkadot และความตั้งใจ รวมการใช้งานโปรโตคอลเต็มรูปแบบพร้อมกับ API การผูกมัด เช่นเดียวกับการใช้งาน Parity blockchain อื่น ๆ PPP ได้รับการออกแบบให้เป็นสแต็กเทคโนโลยี blockchain วัตถุประสงค์ทั่วไป ไม่ใช่เฉพาะสำหรับเครือข่ายสาธารณะหรือสำหรับ การดำเนินงานของเอกชน/กิจการร่วมค้า การพัฒนาของมันเช่นนี้ ไกลได้รับทุนจากหลายฝ่ายรวมถึงผ่าน ได้รับทุนสนับสนุนจากรัฐบาลอังกฤษ บทความนี้ยังคงอธิบาย Polkadot ภายใต้ บริบทของเครือข่ายสาธารณะ ฟังก์ชันการทำงานที่เราจินตนาการไว้ในเครือข่ายสาธารณะนั้นเหนือกว่าฟังก์ชันที่จำเป็นใน การตั้งค่าทางเลือก (เช่น ส่วนตัวและ/หรือสมาคม) นอกจากนี้ ในบริบทนี้ ขอบเขตทั้งหมดของ Polkadot สามารถทำได้ อธิบายและอภิปรายได้ชัดเจนยิ่งขึ้น นี่ไม่ได้หมายถึง ผู้อ่านควรตระหนักว่ากลไกบางอย่างอาจเกิดขึ้นได้ ได้รับการอธิบาย (เช่น การทำงานร่วมกันกับเครือข่ายสาธารณะอื่นๆ) ซึ่งไม่เกี่ยวข้องโดยตรงกับ Polkadot เมื่อใช้งานภายใต้สถานการณ์ที่ไม่เปิดเผยต่อสาธารณะ (“ได้รับอนุญาต”) 2.2. ผลงานที่ผ่านมา. มีการเสนอการแยกฉันทามติพื้นฐานออกจากการเปลี่ยนผ่านรัฐอย่างไม่เป็นทางการ เป็นการส่วนตัวเป็นเวลาอย่างน้อยสองปี - Max Kaye เป็นผู้เสนอกลยุทธ์ดังกล่าวในช่วงแรก ๆ ของ Ethereum. โซลูชันที่ปรับขนาดได้ที่ซับซ้อนยิ่งขึ้นที่เรียกว่า Chain ไฟเบอร์ ย้อนหลังไปถึงเดือนมิถุนายน 2014 และเผยแพร่ครั้งแรกในภายหลัง ในปีนั้น 1 ได้สร้างกรณีของรีเลย์เชนเดียวและหลายเชนที่เป็นเนื้อเดียวกัน ทำให้เกิดกลไกการดำเนินการระหว่างเชนที่โปร่งใส ได้รับการจ่ายเงินสำหรับ Decoherence ผ่านเวลาแฝงของธุรกรรม—ธุรกรรมที่ต้องการ การประสานงานของส่วนต่าง ๆ ของระบบจะ ใช้เวลาในการประมวลผลนานขึ้น Polkadot ใช้สถาปัตยกรรมส่วนใหญ่จากสิ่งนั้นและการสนทนาติดตามผลด้วย แม้ว่าจะมีความแตกต่างกันอย่างมากในการออกแบบและการเตรียมการก็ตาม แม้ว่าจะไม่มีระบบใดเทียบได้กับ Polkadot จริงๆ แล้วในการผลิต มีหลายระบบที่เกี่ยวข้องกัน ได้รับการเสนอแม้ว่าจะมีน้อยคนในระดับที่สำคัญก็ตาม รายละเอียด ข้อเสนอเหล่านี้สามารถแตกออกเป็นระบบ ซึ่งลดหรือลดแนวคิดเรื่องการเชื่อมโยงกันทั่วโลก เครื่องของรัฐซึ่งพยายามให้บริการทั่วโลก เครื่องซิงเกิลตันที่สอดคล้องกันผ่านชิ้นส่วนที่เป็นเนื้อเดียวกัน และกลุ่มที่มุ่งเป้าไปที่ความหลากหลายเท่านั้น 2.2.1. ระบบที่ไม่มีสถานะสากล Factom [21] คือระบบที่แสดงให้เห็นถึง Canonicality โดยไม่ต้องปฏิบัติตาม ความถูกต้อง ช่วยให้สามารถบันทึกข้อมูลได้อย่างมีประสิทธิภาพ เนื่องจากการหลีกเลี่ยงสภาวะโลกและความยากลำบาก ด้วยการปรับขนาดที่นำมาซึ่งสิ่งนี้ถือได้ว่าเป็นโซลูชันที่ปรับขนาดได้ อย่างไรก็ตามดังที่ได้กล่าวไปแล้วว่าชุดนี้ ของปัญหาที่แก้ไขได้นั้นเข้มงวดและเล็กลงอย่างมาก Tangle [18] เป็นแนวทางใหม่ในระบบฉันทามติ แทนที่จะจัดเรียงธุรกรรมออกเป็นบล็อกและสร้างฉันทามติในรายการที่เชื่อมโยงกันอย่างเคร่งครัดเพื่อให้มีการจัดระเบียบการเปลี่ยนแปลงรัฐที่เป็นที่ยอมรับทั่วโลก ส่วนใหญ่กลับละทิ้งแนวคิดเรื่องการสั่งซื้อที่มีโครงสร้างหนักและแทนที่ ผลักดันให้เกิดกราฟแบบอะไซเคิลโดยตรงของธุรกรรมที่ขึ้นอยู่กับรายการภายหลังซึ่งจะช่วยให้รายการก่อนหน้าเป็นแบบมาตรฐาน ผ่านการอ้างอิงที่ชัดเจน สำหรับการเปลี่ยนแปลงสถานะโดยพลการ กราฟการพึ่งพานี้จะกลายเป็นเรื่องยากอย่างรวดเร็ว อย่างไรก็ตามสำหรับ UTXO model2 ที่ง่ายกว่ามากสิ่งนี้จะกลายเป็น ค่อนข้างสมเหตุสมผล เนื่องจากระบบมีความสอดคล้องกันอย่างหลวมๆ เท่านั้น และโดยทั่วไปธุรกรรมจะเป็นอิสระจากกัน ประการอื่น ความเท่าเทียมระดับโลกจำนวนมากกลายมาค่อนข้างมาก เป็นธรรมชาติ การใช้โมเดล UTXO จะมีผล ffect ของการจำกัด Tangle ให้เป็น “สกุลเงิน” การโอนมูลค่าล้วนๆ ระบบมากกว่าสิ่งทั่วไปหรือขยายได้ นอกจากนี้ หากปราศจากการเชื่อมโยงกันทั่วโลกอย่างหนัก การโต้ตอบกับระบบอื่นๆ—ซึ่งมีแนวโน้มว่าจะต้องมีความสมบูรณ์ ความรู้ระดับปริญญาเหนือสถานะของระบบ—กลายเป็นสิ่งที่ปฏิบัติไม่ได้ 1https://github.com/ethereum/wiki/wiki/Chain-Fibers-Redux 2เอาท์พุทธุรกรรมที่ยังไม่ได้ใช้ แบบจำลองที่ Bitcoin ใช้โดยที่สถานะเป็นชุดของที่อยู่ที่เกี่ยวข้องกับค่าบางอย่างอย่างมีประสิทธิภาพ ธุรกรรมจะเปรียบเทียบที่อยู่ดังกล่าวและปฏิรูปให้เป็นที่อยู่ชุดใหม่ซึ่งมียอดรวมเท่ากัน
โพลคาดอท: วิสัยทัศน์สำหรับกรอบการทำงานแบบหลายห่วงโซ่ที่แตกต่างกัน ร่างที่ 1 3 2.2.2. ระบบโซ่ต่างกัน โซ่ข้าง [3] คือ a ข้อเสนอเพิ่มเติมในโปรโตคอล Bitcoin ซึ่งจะอนุญาตให้มีปฏิสัมพันธ์ที่ไม่น่าเชื่อถือระหว่างห่วงโซ่ Bitcoin หลัก และโซ่ข้างเพิ่มเติม ไม่มีข้อกำหนดใดๆ ระดับของการโต้ตอบที่ 'สมบูรณ์' ระหว่าง side-chain: การโต้ตอบจะถูกจำกัดให้อนุญาตให้ side-chain เป็นได้ ผู้ดูแลทรัพย์สินของกันและกัน ซึ่งส่งผล – ในท้องถิ่น ศัพท์แสง—หมุดสองทาง 3 วิสัยทัศน์สุดท้ายมีไว้สำหรับกรอบงานที่สามารถระบุสกุลเงิน Bitcoin ได้ เพิ่มเติม ถ้ามีอุปกรณ์ต่อพ่วง ฟังก์ชันการทำงานผ่านการตรึงไว้ ไปยังเครือข่ายอื่นๆ ที่มีการเปลี่ยนแปลงสถานะที่แปลกใหม่มากขึ้น ระบบเกินกว่าที่โปรโตคอล Bitcoin อนุญาต ในแง่นี้ side-chains เน้นความสามารถในการขยายมากกว่าความสามารถในการขยายขนาด แท้จริงแล้ว ไม่มีข้อกำหนดพื้นฐานสำหรับความถูกต้องของไซด์เชน tokens จากห่วงโซ่เดียว (เช่น Bitcoin) จัดขึ้นในนามของห่วงโซ่ด้านข้างเท่านั้นที่มีการป้องกันโดย ความสามารถของ side-chain ในการจูงใจนักขุดให้ยอมรับมาตรฐาน การเปลี่ยนภาพที่ถูกต้อง ความปลอดภัยของเครือข่าย Bitcoin ไม่สามารถเปลี่ยนมาทำงานแทนผู้อื่นได้โดยง่าย blockchainส. นอกจากนี้ โปรโตคอลสำหรับการรับรอง Bitcoin นักขุดผสานเหมือง (ซึ่งเป็นการทำซ้ำอำนาจการกำหนดมาตรฐานของพวกเขาไปยังห่วงโซ่ด้านข้าง) และที่สำคัญกว่านั้นคือตรวจสอบความถูกต้องของการเปลี่ยนผ่านของห่วงโซ่ด้านข้างอยู่นอก ขอบเขตของข้อเสนอนี้ Cosmos [10] เป็นระบบหลายลูกโซ่ที่นำเสนอใน เส้นเดียวกับโซ่ข้าง สลับ Nakamoto PoW วิธีการที่เป็นเอกฉันท์สำหรับอัลกอริทึม Tendermint ของ Jae Kwon โดยพื้นฐานแล้ว มันอธิบายหลายเชน (ปฏิบัติการใน โซน) แต่ละแห่งใช้อินสแตนซ์ของ Tendermint ร่วมกับวิธีการสื่อสารที่ปราศจากความไว้วางใจผ่านทาง ห่วงโซ่ฮับหลัก การสื่อสารระหว่างเครือข่ายนี้จำกัดอยู่ที่การถ่ายโอนสินทรัพย์ดิจิทัล (“โดยเฉพาะเกี่ยวกับ tokens”) แทนที่จะเป็นข้อมูลที่กำหนดเอง อย่างไรก็ตาม การสื่อสารระหว่างเครือข่ายดังกล่าวมีเส้นทางส่งคืนข้อมูล เช่น เพื่อรายงานสถานะการโอนเงินให้ผู้ส่งทราบ เครื่องมือตรวจสอบความถูกต้องตั้งค่าสำหรับเชนแบบแบ่งโซน และโดยเฉพาะอย่างยิ่ง วิธีการจูงใจพวกเขาก็เหมือนกับโซ่ข้างซ้าย เป็นปัญหาที่ยังไม่ได้รับการแก้ไข สมมติฐานทั่วไปก็คือว่า แต่ละ chained chain จะเก็บ token ของค่าที่อัตราเงินเฟ้อถูกใช้เพื่อจ่ายสำหรับ validators ยังอยู่ในช่วงเริ่มต้น ของการออกแบบ ปัจจุบันข้อเสนอยังขาดรายละเอียดที่ครอบคลุมเกี่ยวกับวิธีการทางเศรษฐกิจในการบรรลุการขยายขนาด ความแน่นอนเหนือความถูกต้องสากล อย่างไรก็ตาม การเชื่อมโยงแบบหลวมๆ ที่จำเป็นระหว่างโซนและฮับจะช่วยให้ได้ เพื่อความยืดหยุ่นเพิ่มเติมเหนือพารามิเตอร์ของโซน โซ่เมื่อเปรียบเทียบกับระบบที่บังคับใช้แข็งแกร่งกว่า การเชื่อมโยงกัน 2.2.3. แคสเปอร์. ยังไม่มีรีวิวที่ครอบคลุมหรือการเปรียบเทียบแบบเทียบเคียงระหว่าง Casper [6] และ Polkadot ได้ทำไว้แล้วถึงแม้จะสามารถกวาดล้างได้พอสมควรก็ตาม (และไม่ถูกต้องตามลำดับ) ลักษณะของทั้งสอง Casper เป็นการพลิกโฉมวิธีการใช้อัลกอริธึมฉันทามติของ PoS อาจขึ้นอยู่กับผู้เข้าร่วมเดิมพันว่าส้อมใด ในที่สุดก็จะกลายเป็นที่ยอมรับ มีการพิจารณาอย่างมากเพื่อให้แน่ใจว่าเครือข่ายมีความแข็งแกร่ง forks แม้ว่าจะใช้เวลานานและมีระดับความสามารถในการขยายเพิ่มเติมนอกเหนือจากโมเดล Ethereum พื้นฐาน เช่น แคสเปอร์ในปัจจุบันมีแนวโน้มที่จะมีมากขึ้นอย่างมาก โปรโตคอลที่ซับซ้อนกว่า Polkadot และบรรพบุรุษของมัน และ การเบี่ยงเบนอย่างมากจากรูปแบบ blockchain พื้นฐาน มัน ยังไม่มีใครเห็นว่าแคสเปอร์จะทำซ้ำในอนาคตอย่างไร และจะมีลักษณะอย่างไรหากนำไปใช้จริงในที่สุด ในขณะที่ Casper และ Polkadot ต่างก็เป็นตัวแทนของโปรโตคอลใหม่ที่น่าสนใจ และในบางแง่มุม เป็นการเสริมของ Ethereum มีความแตกต่างอย่างมากระหว่างสิ่งเหล่านั้น เป้าหมายสูงสุดและเส้นทางสู่การใช้งาน แคสเปอร์เป็น Ethereum โครงการที่มีรากฐานเป็นศูนย์กลางซึ่งได้รับการออกแบบแต่แรกเริ่ม เป็นการเปลี่ยนแปลง PoS ของโปรโตคอลโดยไม่ต้องการ สร้าง blockchain ที่ปรับขนาดได้ขั้นพื้นฐาน ที่สำคัญก็คือ ออกแบบมาให้เป็นการฮาร์ดฟอร์ก แทนที่จะเป็นสิ่งอื่นใดที่กว้างขวางกว่า ดังนั้นลูกค้าและผู้ใช้ Ethereum ทั้งหมดจะเป็น จำเป็นต้องอัปเกรดหรือคงอยู่ในทางแยกของการนำไปใช้ที่ไม่แน่นอน ด้วยเหตุนี้ การใช้งานจึงยากขึ้นอย่างมาก เช่นเดียวกับที่มีอยู่ในโครงการที่มีการกระจายอำนาจในพื้นที่ที่คับแคบ จำเป็นต้องมีการประสานงาน Polkadot มีความแตกต่างหลายประการ ประการแรกและสำคัญที่สุด Polkadot ได้รับการออกแบบมาให้สามารถขยายและปรับขนาดได้อย่างสมบูรณ์ blockchain การทดสอบการพัฒนา การปรับใช้ และการโต้ตอบ เตียง มันถูกสร้างขึ้นเพื่อเป็นสายรัดที่สามารถป้องกันอนาคตได้ ดูดซึมใหม่ blockchainเทคโนโลยีเมื่อมีให้ใช้งานโดยไม่ต้องมีการประสานงานแบบกระจายอำนาจที่ซับซ้อนมากเกินไป หรือฮาร์ดฟอร์ก เราจินตนาการถึงกรณีการใช้งานหลายกรณีเช่นนี้แล้ว เป็นเครือข่ายร่วมที่เข้ารหัสและเครือข่ายความถี่สูง ด้วยเวลาบล็อกที่ต่ำมากซึ่งไม่สามารถทำได้จริง เวอร์ชันในอนาคตของ Ethereum ที่จินตนาการไว้ในปัจจุบัน ในที่สุด การมีเพศสัมพันธ์ระหว่างมันกับ Ethereum นั้นยอดเยี่ยมมาก หลวม; ไม่จำเป็นต้องดำเนินการใดๆ ในส่วนของ Ethereum เปิดใช้งานการส่งต่อธุรกรรมที่ไม่น่าเชื่อถือระหว่างทั้งสอง เครือข่าย กล่าวโดยย่อในขณะที่ Casper/Ethereum 2.0 และ Polkadot แบ่งปันความคล้ายคลึงกันบางอย่างที่เราเชื่อว่าเป็นเป้าหมายสุดท้ายของพวกเขา มีความแตกต่างอย่างมาก และแทนที่จะแข่งขันกัน โปรโตคอลทั้งสองมีแนวโน้มที่จะอยู่ร่วมกันในที่สุดภายใต้ ความสัมพันธ์ที่เป็นประโยชน์ร่วมกันในอนาคตอันใกล้
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.
สรุป
Polkadot คือ multi-chain ที่ต่างกันที่ปรับขนาดได้ นี้ หมายความว่าไม่เหมือนกับการใช้งาน blockchain ก่อนหน้านี้ ซึ่งได้เน้นการให้บริการห่วงโซ่เดียวที่แตกต่างกัน องศาทั่วไปเหนือแอปพลิเคชันที่เป็นไปได้ Polkadot ตัวมันเองได้รับการออกแบบมาเพื่อไม่ให้มีฟังก์ชันการทำงานของแอปพลิเคชันโดยธรรมชาติเลย แต่ Polkadot เป็นผู้ให้ข้อมูลพื้นฐาน “รีเลย์-เชน” ซึ่งสามารถตรวจสอบความถูกต้องได้จำนวนมาก โครงสร้างข้อมูลไดนามิกที่เชื่อมโยงกันทั่วโลกอาจถูกโฮสต์ เคียงข้างกัน เราเรียกโครงสร้างข้อมูลเหล่านี้ว่า "แบบขนาน" โซ่หรือพาราเชน แม้ว่าจะไม่จำเป็นต้องระบุเป็นพิเศษก็ตาม พวกมันจะมี blockchain ในธรรมชาติ กล่าวอีกนัยหนึ่ง Polkadot อาจถือว่าเทียบเท่ากับชุดของลูกโซ่อิสระ (เช่น ชุดที่มี Ethereum, Ethereum Classic, Namecoin และ Bitcoin) ยกเว้นสองประเด็นที่สำคัญมาก: • การรักษาความปลอดภัยแบบรวมกลุ่ม; • การทำธุรกรรมระหว่างเครือข่ายที่ปราศจากความไว้วางใจ ประเด็นเหล่านี้คือเหตุผลที่เราถือว่า Polkadot สามารถ "ปรับขนาดได้" โดยหลักการแล้ว ปัญหาที่จะปรับใช้บน Polkadot อาจถูกขนานอย่างมาก—ขยายขนาด—มากกว่า parachains จำนวนมาก เนื่องจากทุกแง่มุมของแต่ละคน parachain อาจดำเนินการแบบขนานโดยส่วนที่แตกต่างกันของเครือข่าย Polkadot ระบบมีความสามารถบางอย่าง เพื่อปรับขนาด Polkadot ให้ชิ้นส่วนที่ค่อนข้างเปลือยเปล่า 3 ซึ่งตรงข้ามกับหมุดทางเดียวซึ่งโดยพื้นฐานแล้วคือการทำลาย tokens ในสายโซ่หนึ่งเพื่อสร้าง tokens ในอีกสายหนึ่งโดยไม่มี กลไกในการสนทนาเพื่อกู้คืน tokens ดั้งเดิมโพลคาดอท: วิสัยทัศน์สำหรับกรอบการทำงานแบบหลายห่วงโซ่ที่แตกต่างกัน ร่างที่ 1 4 โครงสร้างพื้นฐานทำให้ความซับซ้อนมากต้องได้รับการแก้ไขในระดับมิดเดิลแวร์ นี่เป็นการตัดสินใจอย่างมีสติโดยมีจุดประสงค์เพื่อลดความเสี่ยงในการพัฒนา ซอฟต์แวร์ที่จำเป็นในการพัฒนาภายในระยะเวลาอันสั้น และมีความมั่นใจในระดับดีในเรื่องความปลอดภัยและ ความทนทาน 3.1. ปรัชญาของ Polkadot Polkadot ควร มอบรากฐานที่แข็งแกร่งอย่างแท้จริงให้กับคุณ สร้างคลื่นลูกใหม่ของระบบฉันทามติทันที สเปกตรัมความเสี่ยงจากการออกแบบที่ครบกำหนดในการผลิต สู่ความคิดใหม่ๆ ด้วยการให้การรับประกันที่รัดกุมในเรื่องความปลอดภัย การแยกตัว และการสื่อสาร Polkadot สามารถทำได้ parachains ให้เลือกจากคุณสมบัติต่างๆ มากมาย แท้จริงแล้ว เราคาดการณ์ว่า blockchain การทดลองต่างๆ จะผลักดันคุณสมบัติของสิ่งที่ถือว่าสมเหตุสมผล วันนี้ เราเห็นอนุรักษ์นิยม เครือที่มีมูลค่าสูงคล้ายกับ Bitcoin หรือ Z-cash [20] อยู่ร่วมกันพร้อมกับมูลค่าที่ต่ำกว่า “theme-chains” (การตลาดที่สนุกสนานมาก) และเครือข่ายทดสอบ โดยมีค่าธรรมเนียมเป็นศูนย์หรือเกือบเป็นศูนย์ เราเห็นการเข้ารหัสอย่างสมบูรณ์ “มืด” กลุ่มเครือที่ดำเนินงานเคียงข้าง—และแม้กระทั่ง ให้บริการแก่—เครือข่ายแบบเปิดและใช้งานได้ดี เช่นที่ชอบ Ethereum เราเห็นการทดลองใหม่ๆ เครือข่ายที่ใช้ VM เช่น wasm ที่คิดตามเวลาแบบอัตนัย ห่วงโซ่ที่ถูกใช้เป็นวิธีหนึ่งในเอาท์ซอร์สปัญหาการคำนวณที่ยากจากห่วงโซ่ที่มีลักษณะคล้าย Ethereum ที่เป็นผู้ใหญ่มากขึ้น หรือเชนแบบ Bitcoin ที่จำกัดมากขึ้น ในการจัดการการอัพเกรดลูกโซ่ Polkadot จะทำโดยธรรมชาติ สนับสนุนโครงสร้างการกำกับดูแลบางประเภทซึ่งอาจอิงตาม เกี่ยวกับระบบการเมืองที่มั่นคงที่มีอยู่และมีแง่มุมสองสภาที่คล้ายกับสภากระดาษเหลือง [24] เช่น ผู้มีอำนาจขั้นสูงสุด ผู้ถือ token ที่มีความเชื่อถือได้จะมีการควบคุม "การลงประชามติ" เพื่อสะท้อนถึงผู้ใช้ ความจำเป็นในการพัฒนา แต่ความต้องการของนักพัฒนาในด้านความชอบธรรม เราคาดหวังว่าจะมีทิศทางที่สมเหตุสมผล สองห้องจากคณะกรรมการ "ผู้ใช้" (ประกอบด้วย ผูกมัด validators) และมีการจัดตั้งคณะกรรมการ "ด้านเทคนิค" ของนักพัฒนาลูกค้ารายใหญ่และผู้เล่นในระบบนิเวศ ที่ เนื้อหาของผู้ถือ token จะรักษาความชอบธรรมขั้นสูงสุดและก่อให้เกิดความยิ่งใหญ่ในการขยาย ปรับพารามิเตอร์ แทนที่หรือยุบโครงสร้างนี้ ซึ่งเป็นสิ่งที่เรา อย่าสงสัยในความจำเป็นในที่สุด: ตามคำพูดของทเวน “รัฐบาลและผ้าอ้อมต้องเปลี่ยนบ่อยๆและเพื่อ เหตุผลเดียวกัน” ในขณะที่การกำหนดพารามิเตอร์ใหม่โดยทั่วไปเป็นเรื่องเล็กน้อยในการจัดเตรียมภายในกลไกฉันทามติที่ใหญ่กว่า การเปลี่ยนแปลงเชิงคุณภาพมากกว่า เช่น การแทนที่และการเพิ่มจะ มีแนวโน้มว่าจะต้องเป็น “คำสั่งซอฟต์เดครี” ที่ไม่อัตโนมัติ (เช่น ผ่านการบัญญัติมาตรฐานของหมายเลขบล็อกและ hash ของเอกสารที่ระบุโปรโตคอลใหม่อย่างเป็นทางการ) หรือจำเป็นต้องมีกลไกฉันทามติหลักเพื่อให้มี ภาษาที่อุดมสมบูรณ์เพียงพอที่จะอธิบายแง่มุมใด ๆ ของตัวเอง ซึ่งอาจจำเป็นต้องเปลี่ยนแปลง อันหลังเป็นเป้าหมายสุดท้าย อย่างไรก็ตาม อดีตมีแนวโน้มที่จะถูกเลือกเพื่อที่จะ อำนวยความสะดวกในการพัฒนาไทม์ไลน์ที่เหมาะสม หลักคำสอนหลักของ Polkadot และกฎเกณฑ์ภายในนั้น เราประเมินการตัดสินใจออกแบบทั้งหมดคือ: น้อยที่สุด: Polkadot ควรมีฟังก์ชันการทำงานน้อยที่สุด ง่าย: ไม่ควรมีความซับซ้อนเพิ่มเติม ในโปรโตคอลพื้นฐานเกินกว่าที่จะสมเหตุสมผล ที่ถูกโหลดเข้าสู่มิดเดิลแวร์ วางผ่านก parachain หรือนำมาใช้ในการเพิ่มประสิทธิภาพในภายหลัง ทั่วไป: ไม่มีข้อกำหนดที่ไม่จำเป็น, ข้อจำกัด หรือควรวางข้อจำกัดไว้บนพาราเชน Polkadot ควรเป็นเตียงทดสอบสำหรับการพัฒนาระบบฉันทามติที่สามารถปรับให้เหมาะสมได้ผ่าน ทำให้แบบจำลองที่ส่วนขยายพอดีกับนามธรรมมากที่สุด แข็งแกร่ง: Polkadot ควรจัดให้มีพื้นฐาน ชั้นฐานที่มั่นคง นอกจากความสมบูรณ์ทางเศรษฐกิจแล้ว ยังหมายถึงการกระจายอำนาจเพื่อลดให้เหลือน้อยที่สุดอีกด้วย เวกเตอร์สำหรับการโจมตีที่ให้ผลตอบแทนสูง
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.
การเข้าร่วมใน Polkadot
มีบทบาทพื้นฐานสี่ประการในการบำรุงรักษา Polkadot เครือข่าย: ผู้ประสานงาน ชาวประมง ผู้เสนอชื่อ และ validator ใน การใช้งานที่เป็นไปได้อย่างหนึ่งของ Polkadot บทบาทหลัง จริงๆ แล้วอาจแบ่งออกเป็นสองบทบาท: พื้นฐาน validator และผู้รับประกันความพร้อม; นี้จะกล่าวถึงในมาตรา 6.5.3. ผู้รวบรวม ชาวประมง ผู้ตรวจสอบความถูกต้อง (กลุ่มนี้) ผู้ตรวจสอบความถูกต้อง (กลุ่มอื่นๆ) อนุมัติ กลายเป็น จอภาพ รายงาน ไม่ดี พฤติกรรมที่จะ ให้บล็อก ผู้สมัคร สำหรับ ผู้เสนอชื่อ รูปที่ 1 ปฏิสัมพันธ์ระหว่าง สี่บทบาทของ Polkadot 4.1. ผู้ตรวจสอบความถูกต้อง A validator คือค่าใช้จ่ายสูงสุดและ ช่วยปิดผนึกบล็อกใหม่บนเครือข่าย Polkadot บทบาทของ validator ขึ้นอยู่กับความผูกพันที่สูงเพียงพอ กำลังฝากอยู่แม้ว่าเราจะอนุญาตให้ฝ่ายที่ถูกผูกมัดอื่น ๆ ก็ตาม เสนอชื่อ validator หนึ่งรายการขึ้นไปเพื่อดำเนินการแทนพวกเขาและเป็น บางส่วนของพันธะของ validator ดังกล่าวอาจไม่จำเป็นต้องเป็นของ validator เอง แต่เป็นของสิ่งเหล่านี้ ผู้เสนอชื่อ validator ต้องรันการใช้งานไคลเอ็นต์ลูกโซ่รีเลย์ที่มีความพร้อมใช้งานและแบนด์วิธสูง ในแต่ละบล็อค โหนดจะต้องพร้อมที่จะยอมรับบทบาทของการให้สัตยาบัน บล็อกใหม่บน parachain ที่ได้รับการเสนอชื่อ กระบวนการนี้ เกี่ยวข้องกับการรับ การตรวจสอบ และการเผยแพร่ผู้สมัครอีกครั้ง บล็อก การเสนอชื่อนั้นเป็นสิ่งที่กำหนดไว้ล่วงหน้าแต่แทบจะคาดเดาไม่ได้ล่วงหน้ามาก เนื่องจาก validator ไม่สามารถ คาดหวังได้อย่างสมเหตุสมผลว่าจะรักษาการซิงโครไนซ์อย่างเต็มที่ ฐานข้อมูลของ parachains ทั้งหมด คาดว่า validator จะเสนอชื่องานคิดค้นสิ่งใหม่ที่แนะนำ บล็อก parachain ให้กับบุคคลที่สามหรือที่เรียกว่า collator เมื่อบล็อกพาราเชนใหม่ทั้งหมดได้รับการรับรองอย่างเหมาะสมโดยกลุ่มย่อย validator ที่ได้รับการแต่งตั้งแล้ว validators จากนั้นจะต้องให้สัตยาบันต่อบล็อกรีเลย์โซ่เอง สิ่งนี้เกี่ยวข้องกับ อัปเดตสถานะของคิวธุรกรรม (โดยพื้นฐานแล้ว ย้ายข้อมูลจากเอาต์พุตคิวของ parachain ไปยังอีกคิวหนึ่ง คิวอินพุตของ parachain) ประมวลผลธุรกรรมของ การทำธุรกรรมสายโซ่รีเลย์ที่ให้สัตยาบันที่กำหนดและให้สัตยาบัน บล็อกสุดท้าย รวมถึงการเปลี่ยนแปลงพาราเชนสุดท้ายด้วยโพลคาดอท: วิสัยทัศน์สำหรับกรอบการทำงานแบบหลายห่วงโซ่ที่แตกต่างกัน ร่างที่ 1 5 validator ไม่ปฏิบัติหน้าที่ของตนในการค้นหาฉันทามติ ภายใต้กฎของอัลกอริทึมฉันทามติที่เราเลือกจะถูกลงโทษ สำหรับความล้มเหลวครั้งแรกโดยไม่ตั้งใจ ก็ถือว่าผ่านแล้ว ระงับรางวัลของ validator ความล้มเหลวซ้ำแล้วซ้ำเล่าส่งผลให้พันธบัตรด้านความปลอดภัยลดลง (ผ่านการเผา) การกระทำที่เป็นอันตรายที่พิสูจน์ได้ เช่น การลงนามสองครั้งหรือ การสมคบคิดที่จะจัดให้มีการบล็อกที่ไม่ถูกต้องส่งผลให้สูญเสีย พันธะทั้งหมด (ซึ่งถูกเผาบางส่วนแต่ส่วนใหญ่ให้มา) แก่ผู้ให้ข้อมูลและผู้แสดงที่ซื่อสัตย์) ในแง่หนึ่ง validators มีความคล้ายคลึงกับกลุ่มการขุด ของ PoW ปัจจุบัน blockchains 4.2. ผู้เสนอชื่อ ผู้เสนอชื่อเป็นฝ่ายที่ถือหุ้น ที่มีส่วนในหลักประกันความปลอดภัยของ validator พวกเขา ไม่มีบทบาทเพิ่มเติมยกเว้นการวางทุนความเสี่ยงและเป็น เช่นเพื่อส่งสัญญาณว่าพวกเขาเชื่อถือ validator โดยเฉพาะ (หรือ ที่กำหนดไว้) ให้ดำเนินการด้วยความรับผิดชอบในการบำรุงรักษา เครือข่าย พวกเขาได้รับการเพิ่มหรือลดตามสัดส่วน ในเงินฝากตามการเติบโตของพันธบัตรนั้น พวกเขามีส่วนร่วม ร่วมกับผู้เปรียบเทียบ ถัดไป ผู้เสนอชื่ออยู่ในบางส่วน มีความรู้สึกคล้ายกับนักขุดของเครือข่าย PoW ในปัจจุบัน 4.3. ผู้รวบรวม. ผู้เรียกเก็บเงินธุรกรรม (ผู้เรียกเก็บเงินระยะสั้น) เป็นฝ่ายที่ช่วยเหลือ validators ในการผลิตที่ถูกต้อง บล็อกพาราเชน พวกเขารักษา "โหนดเต็ม" สำหรับ parachain เฉพาะ หมายความว่าพวกเขาเก็บทุกสิ่งที่จำเป็นไว้ ข้อมูลเพื่อให้สามารถเขียนบล็อกใหม่และดำเนินการได้ การทำธุรกรรมในลักษณะเดียวกับที่นักขุดทำบน PoW blockchains ปัจจุบัน ภายใต้สถานการณ์ปกติพวกเขา จะเปรียบเทียบและดำเนินธุรกรรมเพื่อสร้างเปิดผนึก บล็อกและจัดเตรียมไว้พร้อมกับความรู้เป็นศูนย์ หลักฐานสำหรับ validator หนึ่งคนขึ้นไปที่รับผิดชอบในปัจจุบัน เสนอบล็อกพาราเชน ลักษณะความสัมพันธ์ที่ชัดเจนระหว่างผู้ทำงานร่วมกัน ผู้เสนอชื่อ และ validators มีแนวโน้มที่จะเปลี่ยนแปลงไป เวลา. ในตอนแรก เราคาดหวังให้ผู้ทำงานร่วมกันทำงานอย่างใกล้ชิด ด้วย validators เนื่องจากจะมีเพียงไม่กี่รายการเท่านั้น (บางที พาราเชนเพียงอันเดียวที่มีปริมาณธุรกรรมน้อย ที่ การใช้งานไคลเอนต์ครั้งแรกจะรวม RPC เพื่ออนุญาต โหนด collator parachain เพื่อจัดหาโหนด (relaychain) validator โดยไม่มีเงื่อนไขพร้อมกับ parachain ที่ถูกต้องที่พิสูจน์ได้ บล็อก เป็นค่าใช้จ่ายในการบำรุงรักษาเวอร์ชันที่ซิงค์ของ พาราเชนทั้งหมดเพิ่มขึ้น เราคาดว่าจะเห็นเพิ่มเติม โครงสร้างพื้นฐานที่จะช่วยแยกออกจากกัน หน้าที่ของพรรคอิสระที่มีแรงจูงใจทางเศรษฐกิจ ในที่สุด เราคาดว่าจะเห็นกลุ่มผู้เปรียบเทียบที่แย่งชิงกัน เก็บค่าธรรมเนียมการทำธุรกรรมมากที่สุด ผู้สมรู้ร่วมคิดดังกล่าวอาจได้รับการว่าจ้างให้ให้บริการ validators เฉพาะเจาะจงในช่วงระยะเวลาหนึ่งสำหรับส่วนแบ่งรางวัลที่ได้รับอย่างต่อเนื่อง อีกทางหนึ่ง ผู้ประสานงาน “อิสระ” อาจเพียงแค่สร้าง ตลาดที่นำเสนอบล็อก parachain ที่ถูกต้องเพื่อแลกกับส่วนแบ่งการแข่งขันของรางวัลที่จ่ายทันที ในทำนองเดียวกัน กลุ่มผู้เสนอชื่อแบบกระจายอำนาจจะอนุญาตให้มีหลายกลุ่ม ผู้เข้าร่วมผูกพันเพื่อประสานงานและแบ่งปันหน้าที่ของก validator. ความสามารถในการรวมกลุ่มนี้ช่วยให้มั่นใจได้ถึงการมีส่วนร่วมแบบเปิด นำไปสู่ระบบการกระจายอำนาจมากขึ้น 4.4. ชาวประมง. ต่างจากอีกสองพรรคที่ยังเคลื่อนไหวอยู่ ชาวประมงไม่เกี่ยวข้องโดยตรงกับการเขียนบล็อก กระบวนการ แต่เป็น “นักล่าเงินรางวัล” ที่เป็นอิสระ ได้รับแรงบันดาลใจจากรางวัลใหญ่รางวัลเดียว เนื่องมาจาก การมีอยู่ของชาวประมง เราคาดว่าเหตุการณ์ความประพฤติไม่ดีจะเกิดขึ้นน้อยครั้ง และเมื่อเกิดขึ้นเพียงเพราะ ผู้ถูกผูกมัดประมาทกับการรักษาความปลอดภัยด้วยกุญแจลับ มากกว่าด้วยเจตนาร้าย ชื่อก็มา. จากความถี่ในการให้รางวัลที่คาดหวัง ข้อกำหนดขั้นต่ำในการเข้าร่วม และขนาดรางวัลในท้ายที่สุด ชาวประมงจะได้รับรางวัลจากการพิสูจน์อย่างทันท่วงทีว่า ฝ่ายที่ถูกผูกมัดอย่างน้อยหนึ่งฝ่ายกระทำการผิดกฎหมาย การกระทำที่ผิดกฎหมาย รวมถึงการลงนามสองช่วงตึกโดยแต่ละช่วงตึกมีผู้ปกครองที่ให้สัตยาบันคนเดียวกัน หรือในกรณีของพาราเชน จะช่วยให้สัตยาบันเป็นโมฆะ บล็อก เพื่อป้องกันการให้รางวัลมากเกินไปหรือการประนีประนอมและ การใช้รหัสลับของเซสชันอย่างผิดกฎหมาย ซึ่งเป็นรางวัลพื้นฐานสำหรับ การระบุข้อความที่ลงนามอย่างผิดกฎหมายของ validator เพียงข้อความเดียวคือ น้อยที่สุด รางวัลนี้จะเพิ่มขึ้นแบบไม่แสดงอาการเช่นกัน การยืนยันลายเซ็นที่ผิดกฎหมายจาก validators อื่นๆ ถือเป็นการโจมตีอย่างแท้จริง เส้นกำกับถูกตั้งค่า ที่ 66% ตามการยืนยันความปลอดภัยพื้นฐานของเราอย่างน้อยที่สุด สองในสามของ validators กระทำการอย่างมีเมตตา ชาวประมงค่อนข้างจะคล้ายกับ “โหนดเต็ม” ค่ะ ระบบ blockchain ในปัจจุบันที่ทรัพยากรต้องการ มีขนาดค่อนข้างเล็กและความมุ่งมั่นในเรื่องเวลาทำงานที่มั่นคง และแบนด์วิธก็ไม่จำเป็น ชาวประมงก็มีความแตกต่างกัน มากเท่าที่พวกเขาต้องโพสต์ความผูกพันเล็กน้อยพันธะนี้ป้องกัน การโจมตีของ sybil จากการเสียเวลาและการคำนวณ validators ทรัพยากร ถอนได้ทันทีคงไม่มี มากกว่าเทียบเท่ากับไม่กี่ดอลลาร์และอาจนำไปสู่ เพื่อได้รับผลอันมหาศาลจากการเห็นความประพฤติไม่ดี 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.
ภาพรวมการออกแบบ
ส่วนนี้มีวัตถุประสงค์เพื่อให้ภาพรวมโดยย่อของ ระบบโดยรวม การสำรวจอย่างละเอียดยิ่งขึ้นของ ระบบมีระบุไว้ในหัวข้อต่อไปนี้ 5.1. ฉันทามติ บนรีเลย์เชน Polkadot สำเร็จ ฉันทามติระดับต่ำเหนือชุดที่ตกลงร่วมกันถูกต้อง บล็อกผ่านอัลกอริธึม Byzantine Faulttolerant (BFT) แบบอะซิงโครนัสสมัยใหม่ อัลกอริทึมจะได้รับแรงบันดาลใจ โดย Tendermint ง่ายๆ [11] และอื่นๆ อีกมากมาย เกี่ยวข้องกับ HoneyBadgerBFT [14] หลังให้ ฉันทามติที่มีประสิทธิภาพและทนทานต่อข้อผิดพลาดเหนือกฎเกณฑ์ โครงสร้างพื้นฐานเครือข่ายที่มีข้อบกพร่อง โดยได้รับชุดของหน่วยงานที่ไม่เป็นอันตรายเป็นส่วนใหญ่หรือ validators สำหรับเครือข่ายสไตล์ Proof-of-authority (PoA) เพียงอย่างเดียว จะเพียงพอ แต่ Polkadot จินตนาการว่าเป็น อีกทั้งยังสามารถใช้งานเป็นเครือข่ายแบบเปิดและสาธารณะได้อย่างเต็มที่ สถานการณ์ที่ไม่มีองค์กรใดองค์กรหนึ่งหรือเชื่อถือได้ อำนาจที่จำเป็นในการบำรุงรักษา เช่นนี้เราจำเป็นต้องมี วิธีการกำหนดชุดของ validators และการสร้างแรงจูงใจ พูดตามตรง สำหรับสิ่งนี้ เราใช้การเลือกตาม PoS เกณฑ์ 5.2. การพิสูจน์เดิมพัน เราถือว่าเครือข่าย ก็จะมีวิธีการวัดว่า “เดิมพัน” เท่าไร มีบัญชีใดบัญชีหนึ่งโดยเฉพาะ เพื่อความสะดวกในการเปรียบเทียบกับ ระบบที่มีอยู่แล้วเราจะเรียกหน่วยวัดว่า “tokens” น่าเสียดายที่คำนี้น้อยกว่าอุดมคติสำหรับ a เหตุผลหลายประการ ไม่เพียงแต่เป็นเพียงสเกลาร์เท่านั้น มูลค่าที่เกี่ยวข้องกับบัญชี ไม่มีแนวคิดเกี่ยวกับ บุคลิกลักษณะ เราจินตนาการว่า validator ได้รับการเลือกตั้งไม่บ่อยนัก (มากที่สุด วันละครั้งแต่อาจจะแทบจะไม่เท่ากับไตรมาสละครั้ง) ผ่านโครงการ Nominated Proof-of-Stake (NPoS) การสร้างแรงจูงใจสามารถเกิดขึ้นได้ผ่านการจัดสรรตามสัดส่วนของโพลคาดอท: วิสัยทัศน์สำหรับกรอบการทำงานแบบหลายห่วงโซ่ที่แตกต่างกัน ร่างที่ 1 6 รีเลย์ โซ่ ฝูงผู้ตรวจสอบความถูกต้อง (แต่ละสีตามของมัน พาราเชนที่กำหนด) การทำธุรกรรม (ส่งโดย นักแสดงภายนอก) พาราเชน สะพาน พาราเชนเสมือนจริง (เช่น Ethereum) พาราเชน พาราเชน คิวและ I/O ธุรกรรมที่เผยแพร่ บล็อกการส่งผู้สมัคร ลำดับที่ 2 รีเลย์โซ่ ชุมชนพาราเชน บัญชี ธุรกรรมขาเข้า ธุรกรรมขาออก การทำธุรกรรมระหว่างกัน (จัดการโดย validators) ผู้รวบรวม บล็อกการแพร่กระจาย ชาวประมง รูปที่ 2. แผนผังสรุปของระบบ Polkadot สิ่งนี้แสดงให้ผู้เปรียบเทียบรวบรวมและเผยแพร่ธุรกรรมของผู้ใช้ รวมถึงการเผยแพร่ตัวเลือกบล็อกไปยังชาวประมงและ validators มันยัง แสดงให้เห็นว่าบัญชีสามารถโพสต์ธุรกรรมที่ดำเนินการจาก Parachain ผ่านทาง Relay-Chain ได้อย่างไร และต่อไปยัง parachain อื่นที่สามารถตีความได้ว่าเป็นธุรกรรมไปยังบัญชีที่นั่น เงินทุนที่มาจากการขยายฐาน token (สูงถึง 100% ต่อปีแต่มีแนวโน้มมากกว่าประมาณ 10%) ด้วยกัน ค่าธรรมเนียมการทำธุรกรรมใด ๆ ที่เรียกเก็บ ในขณะที่การขยายฐานการเงินมักจะนำไปสู่ภาวะเงินเฟ้อ เนื่องจากเจ้าของ token ทั้งหมด จะมีโอกาสที่ยุติธรรมในการเข้าร่วม ไม่มีผู้ถือ token รายใดที่ต้องทนทุกข์ทรมานจากการลดมูลค่าของพวกเขา การถือครองเมื่อเวลาผ่านไปหากพวกเขายินดีที่จะรับ บทบาทในกลไกฉันทามติ สัดส่วนเฉพาะ ของ tokens จะถูกกำหนดเป้าหมายสำหรับกระบวนการ staking ที่ ที่มีประสิทธิภาพ token การขยายฐานจะถูกปรับผ่าน กลไกตามตลาดเพื่อบรรลุเป้าหมายนี้ ผู้ตรวจสอบความถูกต้องมีความผูกพันอย่างมากจากการเดิมพันของพวกเขา ออก พันธบัตรของ validators จะคงอยู่เป็นเวลานานหลังจากที่หน้าที่ของ validators สิ้นสุดลง (อาจประมาณ 3 เดือน) ยาวขนาดนี้ ระยะเวลาชำระหนี้พันธบัตรช่วยให้เกิดพฤติกรรมที่ไม่เหมาะสมในอนาคตได้ ลงโทษจนถึงจุดตรวจโซ่เป็นระยะ การประพฤติมิชอบส่งผลให้เกิดการลงโทษ เช่น ลดหย่อน รางวัลหรือในกรณีที่จงใจประนีประนอม ความสมบูรณ์ของเครือข่าย validator สูญเสียบางส่วนหรือทั้งหมด ถือหุ้นกับ validators อื่นๆ ผู้ให้ข้อมูล หรือผู้มีส่วนได้ส่วนเสีย โดยรวม (ผ่านการเผา) ตัวอย่างเช่น validator ผู้พยายามที่จะให้สัตยาบันทั้งสองกิ่งของทางแยก (บางครั้ง ที่เรียกว่าการโจมตี "ระยะสั้น") อาจถูกระบุและ ลงโทษอย่างหลัง. การโจมตีระยะไกลแบบ “ไม่มีเดิมพัน”4 ได้รับการหลบเลี่ยงโดยใช้สลัก “จุดตรวจสอบ” แบบธรรมดา ซึ่งป้องกันการจัดระเบียบห่วงโซ่ที่เป็นอันตรายมากกว่า ความลึกของโซ่โดยเฉพาะ เพื่อให้แน่ใจว่าไคลเอ็นต์การซิงค์ใหม่ ย่อมไม่หลงผิดโซ่ตรวนเป็นธรรมดา “ฮาร์ดฟอร์ค” จะเกิดขึ้น (มากที่สุดในช่วงเวลาเดียวกันของ การชำระหนี้พันธบัตร validators) ที่ฮาร์ดโค้ดบล็อกจุดตรวจสอบล่าสุด hashes ลงในไคลเอนต์ สิ่งนี้เล่นได้ดีกับการวัดการลดรอยเท้าเพิ่มเติมของ "ความยาวโซ่จำกัด" หรือ การรีเซ็ตบล็อกการกำเนิดเป็นระยะ 5.3. Parachains และ Colators พาราเชนแต่ละตัวได้รับ ข้อกำหนดด้านความปลอดภัยที่คล้ายกันกับรีเลย์-เชน: ที่ ส่วนหัวของพาราเชนถูกผนึกไว้ภายในบล็อกรีเลย์-เชน การรับรองว่าไม่มีการปรับโครงสร้างองค์กรใหม่หรือ "การใช้จ่ายซ้ำซ้อน" ภายหลังการยืนยัน นี่เป็นการรับประกันความปลอดภัยที่คล้ายคลึงกับการรับประกันความปลอดภัยที่นำเสนอโดยไซด์เชนของ Bitcoin และการรวมเข้าด้วยกัน อย่างไรก็ตาม Polkadot ยังให้การรับประกันที่แข็งแกร่งว่าการเปลี่ยนสถานะของ parachains นั้นถูกต้อง นี้ เกิดขึ้นผ่านชุดของ validators ที่ถูกสุ่มแบบเข้ารหัสเป็นส่วนย่อย หนึ่งชุดย่อยต่อ parachain ซึ่งเป็นเซ็ตย่อยที่อาจแตกต่างกันไปในแต่ละบล็อก นี้ โดยทั่วไปการตั้งค่าจะบอกเป็นนัยว่าเวลาบล็อกของพาราเชนจะเป็นเช่นนั้น อย่างน้อยก็ตราบเท่าที่รีเลย์-เชน เฉพาะ วิธีการกำหนดการแบ่งพาร์ติชันอยู่นอกขอบเขต 4การโจมตีดังกล่าวเกิดขึ้นเมื่อศัตรูสร้างสายโซ่แห่งประวัติศาสตร์ใหม่ทั้งหมดตั้งแต่ช่วงกำเนิดเป็นต้นไป ผ่านการควบคุมก สัดส่วนการถือหุ้นที่ค่อนข้างไม่มีนัยสำคัญ ณ ที่ตั้ง พวกเขาสามารถค่อยๆ เพิ่มสัดส่วนการถือหุ้นเมื่อเทียบกับส่วนอื่นๆ ทั้งหมด ผู้มีส่วนได้ส่วนเสียเนื่องจากพวกเขาเป็นเพียงผู้มีส่วนร่วมอย่างแข็งขันในประวัติศาสตร์ทางเลือกของพวกเขา เนื่องจากไม่มีข้อจำกัดทางกายภาพที่แท้จริงในการสร้าง ของบล็อก (ต่างจาก PoW ที่ต้องใช้พลังงานการคำนวณค่อนข้างจริง) พวกเขาสามารถสร้างโซ่ที่ยาวกว่าโซ่จริงใน ช่วงเวลาค่อนข้างสั้นและอาจทำให้ยาวนานที่สุดและดีที่สุด โดยเข้ายึดสถานะมาตรฐานของเครือข่ายโพลคาดอท: วิสัยทัศน์สำหรับกรอบการทำงานแบบหลายห่วงโซ่ที่แตกต่างกัน ร่างที่ 1 7 ของเอกสารนี้แต่น่าจะอิงตามอย่างใดอย่างหนึ่ง กรอบการเปิดเผยการกระทำที่คล้ายกับ RanDAO [19] หรือ ใช้ข้อมูลที่รวมจากบล็อกก่อนหน้าของแต่ละพาราเชน ภายใต้การรักษาความปลอดภัยแบบเข้ารหัส hash เซ็ตย่อยของ validators ดังกล่าวจำเป็นต้องจัดเตรียม ตัวเลือกบล็อก parachain ซึ่งรับประกันว่าถูกต้อง (on ความเจ็บปวดจากการผูกมัด) ความถูกต้องหมุนรอบสอง จุดสำคัญ ประการแรกคือว่ามันใช้ได้จริง—นั่น การเปลี่ยนสถานะทั้งหมดได้รับการดำเนินการอย่างซื่อสัตย์และทั้งหมดนั้น ข้อมูลภายนอกที่อ้างอิง (เช่น ธุรกรรม) สามารถนำมารวมได้ ประการที่สอง ข้อมูลใดๆ ก็ตามที่อยู่ภายนอกตัวมัน ผู้สมัคร เช่น ธุรกรรมภายนอกเหล่านั้น มีความพร้อมใช้งานสูงเพียงพอเพื่อให้ผู้เข้าร่วมสามารถทำได้ ดาวน์โหลดและดำเนินการบล็อกด้วยตนเอง5 ผู้ตรวจสอบความถูกต้องอาจจัดเตรียมเฉพาะบล็อก "null" ที่ไม่มีข้อมูล "ธุรกรรม" ภายนอก แต่อาจเสี่ยงต่อการได้รับรางวัลลดลงหากทำเช่นนั้น พวกเขาทำงานเคียงข้างกัน โปรโตคอลการนินทา Parachain กับผู้เปรียบเทียบ - บุคคล ผู้เปรียบเทียบธุรกรรมเป็นบล็อกและให้หลักฐานที่ไม่โต้ตอบและไม่มีความรู้ว่าบล็อกนั้นถือเป็นลูกที่ถูกต้องของผู้ปกครอง (และทำธุรกรรมใด ๆ ค่าธรรมเนียมสำหรับปัญหาของพวกเขา) เหลือเพียงโปรโตคอล parachain เพื่อระบุโปรโตคอลของตนเอง วิธีการป้องกันสแปม: ไม่มีแนวคิดพื้นฐานของ "การวัดทรัพยากรคอมพิวเตอร์" หรือ "ค่าธรรมเนียมการทำธุรกรรม" กำหนดโดยรีเลย์โซ่ นอกจากนี้ยังไม่มีการบังคับใช้โดยตรงในเรื่องนี้โดยโปรโตคอลรีเลย์ลูกโซ่ (แม้ว่าจะเป็นเช่นนั้นก็ตาม) ไม่น่าเป็นไปได้ที่ผู้มีส่วนได้ส่วนเสียจะเลือกใช้ พาราเชนซึ่งไม่มีกลไกที่เหมาะสม) นี่เป็นการพยักหน้าอย่างชัดเจนถึงความเป็นไปได้ของเครือที่ไม่เหมือน Ethereum เช่น Bitcoin-like chain ซึ่งมีรูปแบบค่าธรรมเนียมที่ง่ายกว่ามากหรือรูปแบบการป้องกันสแปมอื่น ๆ ที่ยังไม่ได้เสนอ Polkadot รีเลย์เชนเองก็อาจมีอยู่เป็น Ethereum-บัญชีที่เหมือนกันและห่วงโซ่สถานะ อาจเป็น EVMอนุพันธ์ เนื่องจากโหนดรีเลย์โซ่จะต้องใช้ ทำการประมวลผลอื่น ๆ ที่สำคัญ ปริมาณธุรกรรม จะลดลงบางส่วนด้วยค่าธรรมเนียมการทำธุรกรรมจำนวนมาก และหากแบบจำลองการวิจัยของเราต้องการ ขีดจำกัดขนาดบล็อก 5.4. การสื่อสารระหว่างกัน องค์ประกอบสุดท้ายที่สำคัญของ Polkadot คือการสื่อสารระหว่างเครือข่าย ตั้งแต่ parachains สามารถมีช่องข้อมูลบางอย่างระหว่างพวกมันได้ เราอนุญาตให้ตัวเองพิจารณา Polkadot ก มัลติเชนที่ปรับขนาดได้ ในกรณีของ Polkadot การสื่อสารจะง่ายดายที่สุดเท่าที่จะเป็นไปได้: ธุรกรรมที่ดำเนินการใน parachain นั้น (ตามตรรกะของ chain นั้น) สามารถทำได้ ส่งผลต่อการส่งธุรกรรมไปยังพาราเชนที่สอง หรืออาจเป็นรีเลย์เชน เช่นเดียวกับการทำธุรกรรมภายนอก ในการผลิต blockchains พวกมันเป็นแบบอะซิงโครนัสอย่างสมบูรณ์ และไม่มีความสามารถที่แท้จริงสำหรับพวกเขาที่จะคืนสิ่งใด ๆ ข้อมูลประเภทต่างๆ กลับไปสู่ต้นกำเนิดของมัน ปลายทาง: ได้รับ ข้อมูลจากก่อนหน้านี้ validators ของบล็อก บัญชีได้รับโพสต์: รายการถูกลบออกจาก ทางเข้า Merkle tree บัญชีส่งโพสต์: รายการวางไว้ใน ทางออก Merkle tree เพื่อจุดหมายปลายทาง พาราเชน ทางออก ที่มา: หุ้น ข้อมูลที่มีบล็อกถัดไป validatorส หลักฐานการโพสต์เก็บไว้ใน Parachain ทางออก Merkle ต้นไม้ วางการอ้างอิงที่กำหนดเส้นทางแล้ว ในพาราเชนปลายทาง ทางเข้า Merkle tree ทางเข้า รูปที่ 3 การแสดงแผนผังพื้นฐาน ส่วนหลักของการกำหนดเส้นทางสำหรับการโพสต์ ธุรกรรม (”โพสต์”) เพื่อให้มั่นใจว่าการใช้งานมีความซับซ้อนน้อยที่สุด ความเสี่ยง และ น้อยที่สุด แจ็กเก็ตตรง ของ อนาคต สถาปัตยกรรมพาราเชน ธุรกรรมระหว่างเชนเหล่านี้คือ แยกไม่ออกจากธุรกรรมมาตรฐานที่ลงนามภายนอกอย่างมีประสิทธิภาพ ธุรกรรมมีส่วนต้นทางที่ให้ความสามารถในการระบุ parachain และ ที่อยู่ซึ่งอาจมีขนาดตามอำเภอใจ แตกต่างจากระบบปัจจุบันทั่วไป เช่น Bitcoin และ Ethereum ธุรกรรมระหว่างเครือข่ายไม่ได้มาพร้อมกับ "การชำระ" ค่าธรรมเนียมใดๆ ที่เกี่ยวข้อง การชำระเงินดังกล่าวจะต้องได้รับการจัดการผ่านตรรกะการเจรจาต่อรองบนพาราเชนต้นทางและปลายทาง มีระบบดังกล่าวที่เสนอมาเพื่อ Ethereum การเปิดตัว Serenity [7] เป็นวิธีง่ายๆ ของการจัดการการชำระเงินทรัพยากรข้ามสายโซ่ดังกล่าว เราถือว่าคนอื่นอาจมาถึงข้างหน้าในเวลาอันควร ธุรกรรม Interchain ได้รับการแก้ไขโดยใช้วิธีง่ายๆ กลไกการเข้าคิวตาม Merkle tree เพื่อให้มั่นใจ ความซื่อสัตย์ เป็นหน้าที่ของผู้ดูแลรีเลย์-โซ่ที่จะต้อง ย้ายธุรกรรมบนคิวเอาท์พุตของพาราเชนหนึ่งอัน เข้าไปในคิวอินพุตของพาราเชนปลายทาง ที่ ธุรกรรมที่ส่งผ่านจะถูกอ้างอิงบนรีเลย์-เชน แต่จะไม่สัมพันธ์กันธุรกรรม ay-chain เอง เพื่อป้องกันไม่ให้พาราเชนส่งสแปมพาราเชนอื่นด้วย ธุรกรรม จำเป็นต้องมีการส่งธุรกรรม ว่าคิวอินพุตของปลายทางไม่ใหญ่เกินไป เวลาสิ้นสุดของบล็อกก่อนหน้า ถ้าอินพุต คิวมีขนาดใหญ่เกินไปหลังจากการประมวลผลแบบบล็อก แล้วจะถือว่า "อิ่มตัว" และจะไม่มีการกำหนดเส้นทางธุรกรรมใด ๆ ภายในบล็อกต่อๆ ไปจนกระทั่งลดกลับไปต่ำกว่า ขีด จำกัด คิวเหล่านี้ได้รับการจัดการบนรีเลย์-เชน อนุญาตให้พาราเชนกำหนดความอิ่มตัวของกันและกัน สถานะ; วิธีนี้จะทำให้ความพยายามในการผ่านรายการธุรกรรมล้มเหลว ไปยังปลายทางที่จนตรอกอาจถูกรายงานพร้อมกัน (แม้ว่าจะไม่มีเส้นทางการส่งคืน แต่หากธุรกรรมรองล้มเหลวด้วยเหตุผลดังกล่าว ก็ไม่สามารถรายงานกลับได้ ไปยังผู้โทรเดิมและวิธีการกู้คืนอื่น ๆ จะต้องเกิดขึ้น) 5.5. Polkadot และ Ethereum เนื่องจาก Ethereum ความสมบูรณ์ของทัวริง เราคาดหวังว่าจะมีโอกาสมากมายสำหรับ Polkadot และ Ethereum ที่จะทำงานร่วมกันได้ อย่างน้อยก็อยู่ภายในขอบเขตความปลอดภัยที่อนุมานได้ง่าย กล่าวโดยย่อคือเราจินตนาการว่าการทำธุรกรรมจาก Polkadot สามารถลงนามโดย validators จากนั้นป้อนเข้า 5งานดังกล่าวอาจถูกแบ่งปันระหว่าง validators หรืออาจกลายเป็นงานที่กำหนดของชุด validators ที่เชื่อมโยงกันอย่างแน่นหนาที่เรียกว่า ผู้ค้ำประกันความพร้อม
โพลคาดอท: วิสัยทัศน์สำหรับกรอบการทำงานแบบหลายห่วงโซ่ที่แตกต่างกัน ร่างที่ 1 8 Ethereum โดยที่สามารถตีความและตรากฎหมายได้โดย สัญญาส่งต่อธุรกรรม ในอีกทางหนึ่ง เราคาดการณ์การใช้บันทึก (เหตุการณ์) ที่จัดรูปแบบพิเศษ มาจาก "สัญญาแยกส่วน" เพื่อให้สามารถตรวจสอบได้อย่างรวดเร็วว่าควรส่งต่อข้อความใดข้อความหนึ่ง 5.5.1. Polkadot ถึง Ethereum โดยการเลือกก BFT กลไกฉันทามติที่มี validators เกิดขึ้นจาก กลุ่มผู้มีส่วนได้เสียที่กำหนดผ่านการลงคะแนนเสียงอนุมัติ กลไก เราสามารถได้รับฉันทามติที่ปลอดภัยกับ การเปลี่ยนแปลงไม่บ่อยนักและจำนวนเล็กน้อยของ validators ในระบบที่มีทั้งหมด 144 validators ซึ่งเป็นเวลาบล็อกที่ 4 วินาทีและสิ้นสุด 900 บล็อก (อนุญาตให้เป็นอันตราย พฤติกรรมเช่นการลงคะแนนสองครั้งที่ต้องรายงานการลงโทษ และซ่อมแซมแล้ว) ความถูกต้องของบล็อกก็สมเหตุสมผล ถือว่าพิสูจน์แล้วด้วยลายเซ็นเพียง 97 ลายเซ็น (สองในสามของ 144 บวกหนึ่ง) และช่วงการตรวจสอบยืนยัน 60 นาทีต่อมาซึ่งไม่มีการฝากคำท้าทาย Ethereum สามารถโฮสต์ "สัญญาแบ่ง" ได้ สามารถรักษาผู้ลงนามได้ 144 รายและควบคุมโดย พวกเขา เนื่องจากการกู้คืนลายเซ็นดิจิทัลแบบ Elliptic Curve (ECDSA) ใช้เวลาเพียง 3,000 Gas ภายใต้ EVM และเนื่องจาก เราน่าจะต้องการให้การตรวจสอบเกิดขึ้นใน a เท่านั้น ส่วนใหญ่มากของ validators (แทนที่จะเป็นเอกฉันท์ทั้งหมด) ต้นทุนฐานของ Ethereum ยืนยันว่าเป็นคำสั่ง ได้รับการตรวจสอบอย่างถูกต้องว่ามาจากเครือข่าย Polkadot จะมีก๊าซไม่เกิน 300,000 รายการ หรือเพียง 6% ของ ขีดจำกัดก๊าซบล็อกทั้งหมดที่ 5.5M การเพิ่มจำนวน validators (ตามที่จำเป็นสำหรับการจัดการ) หลายสิบโซ่) ทำให้ต้นทุนนี้เพิ่มขึ้นอย่างหลีกเลี่ยงไม่ได้ เป็นที่คาดกันโดยทั่วไปว่าแบนด์วิดธ์การทำธุรกรรมของ Ethereum จะเพิ่มขึ้นเมื่อเวลาผ่านไปเมื่อเทคโนโลยีเติบโตและ โครงสร้างพื้นฐานดีขึ้น ประกอบกับความจริงที่ว่าไม่ใช่ validators ทั้งหมดต้องมีส่วนร่วม (เช่น เฉพาะระดับสูงสุดเท่านั้น validators ที่เดิมพันไว้อาจถูกเรียกใช้งานดังกล่าว) ขีดจำกัดของกลไกนี้ขยายออกไปพอสมควร สมมติว่ามีการหมุนรายวันของ validators ดังกล่าว (ซึ่งก็คือ ค่อนข้างอนุรักษ์นิยม—รายสัปดาห์หรือรายเดือนอาจยอมรับได้) จากนั้นต้นทุนในการบำรุงรักษาเครือข่าย Ethereum-สะพานส่งต่อนี้จะอยู่ที่ประมาณ 540,000 ค่าน้ำมันต่อวัน หรือ ณ ราคาน้ำมันปัจจุบันอยู่ที่ 45 เหรียญสหรัฐฯ ต่อปี ธุรกรรมพื้นฐานที่ส่งต่อเพียงอย่างเดียวบนสะพานจะมีค่าใช้จ่าย ประมาณ 0.11 ดอลลาร์; การคำนวณสัญญาเพิ่มเติมจะมีค่าใช้จ่าย มากขึ้นแน่นอน โดยการแบ่งแยกและการรวมกลุ่มธุรกรรม ร่วมกันค่าใช้จ่ายในการอนุญาตการบุกรุกสามารถได้อย่างง่ายดาย แบ่งปัน ลดต้นทุนต่อการทำธุรกรรมอย่างมาก หากจำเป็นต้องมีธุรกรรม 20 รายการก่อนที่จะส่งต่อ ค่าใช้จ่ายในการส่งต่อธุรกรรมพื้นฐานจะลดลง ประมาณ 0.01 ดอลลาร์ ทางเลือกหนึ่งที่น่าสนใจและราคาถูกกว่าสำหรับโมเดลสัญญาแบบหลายลายเซ็นนี้คือการใช้ลายเซ็นตามเกณฑ์เพื่อให้บรรลุความหมายการเป็นเจ้าของแบบหลายฝ่าย ในขณะที่แผนลายเซ็นเกณฑ์สำหรับ ECDSA มีราคาแพงในการคำนวณ สำหรับโครงการอื่นๆ เช่นลายเซ็น Schnorr นั้นสมเหตุสมผลมาก Ethereum วางแผนที่จะแนะนำสิ่งดั้งเดิมซึ่งจะทำให้เป็นเช่นนั้น โครงร่างราคาถูกเพื่อใช้ใน hardfork ของ Metropolis ที่กำลังจะมาถึง ถ้าใช้วิธีการดังกล่าวได้ก็จะต้องเสียค่าน้ำมัน สำหรับการส่งต่อธุรกรรม Polkadot ไปยัง Ethereum เครือข่ายจะลดลงอย่างมากจนเหลือใกล้ศูนย์ ค่าใช้จ่ายสูงกว่าต้นทุนพื้นฐานสำหรับการตรวจสอบความถูกต้อง ลงนามและดำเนินการธุรกรรมที่เกี่ยวข้อง ในโมเดลนี้ โหนด validator ของ Polkadot จะมี ที่จะทำอย่างอื่นนอกจากการลงนามข้อความ ในการรับธุรกรรมที่ส่งไปยังเครือข่าย Ethereum จริง ๆ เรา สมมติว่า validators ตัวใดตัวหนึ่งก็จะอาศัยอยู่ด้วย เครือข่าย Ethereum หรือมีแนวโน้มมากกว่านั้นคือค่าหัวเล็กน้อย มอบให้กับนักแสดงคนแรกที่ส่งต่อข้อความต่อไป ไปยังเครือข่าย (สามารถจ่ายค่าหัวเล็กน้อยให้กับ ผู้สร้างธุรกรรม) 5.5.2. Ethereum ถึง Polkadot การรับธุรกรรมให้เป็น ส่งต่อจาก Ethereum ไปยัง Polkadot ใช้แนวคิดง่ายๆ ของบันทึก เมื่อสัญญา Ethereum ต้องการส่งธุรกรรมไปยัง parachain เฉพาะของ Polkadot มันจำเป็นต้องเรียกเข้าสู่ "สัญญาแยกส่วน" พิเศษ สัญญาแบ่งออกจะต้องชำระเงินใด ๆ ที่อาจเป็นไปได้ จำเป็นและออกคำแนะนำในการบันทึกเพื่อให้สามารถพิสูจน์การมีอยู่ได้ผ่านการพิสูจน์ Merkle และการยืนยันว่าส่วนหัวของบล็อกที่เกี่ยวข้องนั้นถูกต้องและ ตามบัญญัติ ในสองเงื่อนไขหลัง ความถูกต้องอาจเป็น ตรงไปตรงมาที่สุดในการพิสูจน์ โดยหลักการแล้วข้อกำหนดเพียงอย่างเดียวคือสำหรับแต่ละโหนด Polkadot ที่ต้องการการพิสูจน์ (เช่น โหนด validator ที่ได้รับการแต่งตั้ง) เพื่อเรียกใช้อินสแตนซ์ที่ซิงโครไนซ์อย่างสมบูรณ์ของโหนด Ethereum มาตรฐาน น่าเสียดายที่นี่เป็นการพึ่งพาที่ค่อนข้างหนัก มากขึ้น วิธีน้ำหนักเบาก็จะใช้การพิสูจน์ง่ายๆว่า ส่วนหัวได้รับการประเมินอย่างถูกต้องโดยการจัดหาเฉพาะ ส่วนหนึ่งของการลองสถานะของ Ethereum จำเป็นต้องดำเนินการอย่างถูกต้อง ธุรกรรมในบล็อกและตรวจสอบว่าบันทึก (มีอยู่ในใบเสร็จรับเงินบล็อก) ถูกต้อง “เหมือน SPV”6 การพิสูจน์อาจต้องใช้ข้อมูลจำนวนมาก สะดวก โดยทั่วไปแล้วพวกเขาจะไม่จำเป็นต้องใช้ที่ ทั้งหมด: ระบบพันธะภายใน Polkadot จะอนุญาตให้มีการเชื่อมโยงได้ บุคคลที่สามในการส่งส่วนหัวที่เสี่ยงต่อการสูญเสีย พันธบัตรควรบุคคลที่สามอื่น ๆ (เช่น "ชาวประมง" ดู 6.2.3) ให้หลักฐานว่าส่วนหัวไม่ถูกต้อง (โดยเฉพาะอย่างยิ่งว่ารากของรัฐหรือรากรับเป็นผู้แอบอ้าง) บนเครือข่าย PoW ที่ยังไม่สิ้นสุด เช่น Ethereum ความเป็นมาตรฐานไม่สามารถพิสูจน์ได้อย่างแน่ชัด เพื่อแก้ไขปัญหานี้ แอปพลิเคชันที่พยายามพึ่งพาชนิดใดก็ตาม ของผลกระทบที่ขึ้นกับลูกโซ่ รอ "การยืนยัน" หลายครั้ง หรือจนกว่าธุรกรรมที่ขึ้นอยู่กับบางรายการ ความลึกเฉพาะภายในห่วงโซ่ เมื่อวันที่ Ethereum สิ่งนี้ ความลึกจะแตกต่างกันไปจาก 1 บล็อกสำหรับธุรกรรมที่มีค่าน้อยที่สุดโดยไม่มีปัญหาเครือข่ายที่ทราบ ไปจนถึง 1200 บล็อกเหมือนเดิม กรณีนี้ในระหว่างการเปิดตัว Frontier ครั้งแรกสำหรับการแลกเปลี่ยน บนเครือข่าย “Homestead” ที่เสถียร รูปนี้อยู่ที่ 120 บล็อกสำหรับการแลกเปลี่ยนส่วนใหญ่ และเราน่าจะรับไป พารามิเตอร์ที่คล้ายกัน ดังนั้น เรา สามารถ ลองจินตนาการดู ของเรา Polkadot-ด้าน Ethereumอินเทอร์เฟซมีฟังก์ชันง่ายๆ: เพื่อให้สามารถ ยอมรับส่วนหัวใหม่จากเครือข่าย Ethereum และตรวจสอบความถูกต้องของ PoW เพื่อให้สามารถยอมรับหลักฐานบางอย่างที่ บันทึกเฉพาะถูกปล่อยออกมาโดยสัญญาฝ่าวงล้อมฝั่ง Ethereum สำหรับส่วนหัวที่มีความลึกเพียงพอ (และส่งต่อ ข้อความที่เกี่ยวข้องภายใน Polkadot) และสุดท้าย เพื่อให้สามารถยอมรับข้อพิสูจน์ที่ได้รับการยอมรับก่อนหน้านี้แต่ ส่วนหัวที่ยังไม่ได้ตรากฎหมายมีรากการรับที่ไม่ถูกต้อง หากต้องการรับข้อมูลส่วนหัว Ethereum จริงๆ (และ การพิสูจน์ SPV หรือการหักล้างความถูกต้อง/ความถูกต้องตามบัญญัติ) เครือข่าย Polkadot สิ่งจูงใจในการส่งต่อ 6SPV อ้างอิงถึงการยืนยันการชำระเงินแบบง่ายใน Bitcoin และอธิบายวิธีการสำหรับลูกค้าในการตรวจสอบธุรกรรมในขณะที่เก็บไว้เท่านั้น สำเนาของส่วนหัวบล็อกทั้งหมดของห่วงโซ่ PoW ที่ยาวที่สุดโพลคาดอท: วิสัยทัศน์สำหรับกรอบการทำงานแบบหลายห่วงโซ่ที่แตกต่างกัน ร่างที่ 1 9 จำเป็นต้องมีข้อมูล ซึ่งอาจง่ายพอๆ กับการชำระเงิน (ได้รับทุนจากค่าธรรมเนียมที่เรียกเก็บจากฝั่ง Ethereum) ที่ชำระแล้ว ถึงใครก็ตามที่สามารถส่งต่อบล็อกที่เป็นประโยชน์ซึ่งมีส่วนหัวเป็นได้ ถูกต้อง ผู้ตรวจสอบความถูกต้องจะถูกเรียกให้เก็บข้อมูลที่เกี่ยวข้องกับบล็อกสองสามพันบล็อกล่าสุดเพื่อที่จะ สามารถจัดการ forks ได้ด้วยวิธีการบางอย่างของโปรโตคอลหรือผ่านสัญญาที่เก็บรักษาไว้บน โซ่รีเลย์ 5.6. Polkadot และ Bitcoin. Bitcoin การทำงานร่วมกัน นำเสนอความท้าทายที่น่าสนใจสำหรับ Polkadot: สิ่งที่เรียกว่า “หมุดสองทาง” จะเป็นโครงสร้างพื้นฐานที่มีประโยชน์ ให้มีที่ฝั่งทั้งสองเครือข่าย อย่างไรก็ตามเนื่องจาก ข้อจำกัดของ Bitcoin การให้หมุดดังกล่าวอย่างปลอดภัยคือ กิจการที่ไม่สำคัญ การส่งมอบธุรกรรมจาก โดยหลักการแล้ว Bitcoin ถึง Polkadot สามารถทำได้ด้วยกระบวนการที่คล้ายกับกระบวนการนั้นสำหรับ Ethereum; “ที่อยู่แยก” ควบคุมในทางใดทางหนึ่งโดย Polkadot validators ทำได้ รับ tokens ที่ถ่ายโอน (และข้อมูลที่ส่งไปพร้อมกับพวกเขา) สามารถจัดเตรียมหลักฐาน SPV ได้ด้วย oracles ที่เป็นแรงจูงใจ และ พร้อมระยะเวลายืนยันเงินรางวัลที่มอบให้ การระบุบล็อกที่ไม่เป็นที่ยอมรับซึ่งบ่งบอกถึงธุรกรรม ถูก "ใช้จ่ายสองเท่า" tokens ใดๆ ก็ตามที่เป็นเจ้าของใน โดยหลักการแล้ว “ที่อยู่แยก” จะถูกควบคุมโดย validators เดียวกันเหล่านั้นเพื่อการกระจายในภายหลัง อย่างไรก็ตาม ปัญหาคือวิธีที่สามารถควบคุมเงินฝากได้อย่างปลอดภัยจากชุดที่หมุนเวียน validator ไม่เหมือน Ethereum ซึ่งสามารถตัดสินใจได้ตามอำเภอใจ จากการรวมลายเซ็น Bitcoin มีความสำคัญอย่างยิ่ง มีข้อจำกัดมากขึ้น โดยลูกค้าส่วนใหญ่ยอมรับเฉพาะธุรกรรมที่มีลายเซ็นหลายลายเซ็นโดยมีได้สูงสุด 3 ฝ่าย การขยายเป็น 36 หรือหลายพันตามที่ต้องการในท้ายที่สุดนั้นเป็นไปไม่ได้ภายใต้ระเบียบการปัจจุบัน ทางเลือกหนึ่งคือแก้ไขโปรโตคอล Bitcoin เพื่อเปิดใช้งาน ฟังก์ชั่นดังกล่าวแม้จะเรียกว่า "ฮาร์ดฟอร์ก" ใน Bitcoin โลกเป็นเรื่องยากที่จะจัดให้มีการตัดสินจากความพยายามครั้งล่าสุด ความเป็นไปได้อย่างหนึ่งคือการใช้ลายเซ็นเกณฑ์ รูปแบบการเข้ารหัสเพื่อให้สาธารณะสามารถระบุตัวได้เพียงลำพัง กุญแจสำคัญที่จะควบคุมอย่างมีประสิทธิภาพโดย "ส่วน" ที่เป็นความลับหลายอัน บางส่วนหรือทั้งหมดต้องใช้เพื่อสร้างลายเซ็นที่ถูกต้อง ขออภัย รองรับลายเซ็นตามเกณฑ์ ด้วย ECDSA ของ Bitcoin นั้นมีราคาแพงในการคำนวณ สร้างและความซับซ้อนพหุนาม แผนการอื่นๆ เช่น ลายเซ็น Schnorr ให้ต้นทุนที่ต่ำกว่ามาก อย่างไรก็ตาม ไทม์ไลน์ที่อาจนำมาใช้ใน Bitcoin โปรโตคอลไม่แน่นอน เนื่องจากความปลอดภัยขั้นสูงสุดของเงินฝากขึ้นอยู่กับ จำนวน validators ที่ถูกผูกมัด อีกทางเลือกหนึ่งคือ ลดผู้ถือกุญแจแบบหลายลายเซ็นให้เหลือเพียงจำนวนมากเท่านั้น ชุดย่อยที่ถูกผูกมัดของทั้งหมด validators ดังกล่าวถึงเกณฑ์นั้น ลายเซ็นเป็นไปได้ (หรือที่แย่ที่สุดคือ Bitcoin เป็นภาษาท้องถิ่น สามารถลงนามหลายลายเซ็นได้) แน่นอนว่าสิ่งนี้จะช่วยลด จำนวนพันธบัตรทั้งหมดที่สามารถหักในการชดใช้หาก validators ประพฤติผิดกฎหมาย อย่างไรก็ตาม สิ่งนี้ เป็นการเสื่อมสลายอย่างงดงาม เพียงแต่กำหนดขอบเขตบนไว้ จำนวนเงินที่สามารถดำเนินการได้อย่างปลอดภัยระหว่าง สองเครือข่าย (หรือแท้จริงแล้ว % การสูญเสียควรถูกโจมตี) จาก validators สำเร็จ) ด้วยเหตุนี้ เราจึงเชื่อว่าการวาง Bitcoin การทำงานร่วมกันที่ปลอดภัยพอสมควร "parachain เสมือน" ไม่ใช่เรื่องไม่สมจริง ระหว่างทั้งสองเครือข่าย แม้ว่าจะเป็นความพยายามอย่างมากโดยมีไทม์ไลน์ที่ไม่แน่นอนและอาจเป็นไปได้ก็ตาม โดยต้องได้รับความร่วมมือจากผู้มีส่วนได้เสียภายในนั้น เครือข่าย
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.
โปรโตคอลโดยละเอียด
โปรโตคอลสามารถแบ่งออกเป็นสามอย่างคร่าว ๆ ชิ้นส่วน: กลไกฉันทามติ, ส่วนต่อประสานพาราเชน และการกำหนดเส้นทางธุรกรรมระหว่างลูกโซ่ 6.1. รีเลย์โซ่ การดำเนินงาน ที่ รีเลย์โซ่ จะ น่าจะเป็นห่วงโซ่ที่คล้ายกับ Ethereum ในวงกว้าง เป็นแบบรัฐโดยมีที่อยู่การแมปสถานะไปยังบัญชี ข้อมูล ส่วนใหญ่จะสมดุล และ (เพื่อป้องกันการเล่นซ้ำ) เคาน์เตอร์ธุรกรรม การวางบัญชีที่นี่บรรลุจุดประสงค์เดียว นั่นคือ เพื่อจัดเตรียมการบัญชีที่มีเอกลักษณ์เฉพาะตัว จำนวนเดิมพันในระบบ 7 จะมีความแตกต่างที่น่าสังเกตแม้ว่า: • ไม่สามารถปรับใช้สัญญาผ่านธุรกรรมได้ ต่อไปนี้จากความปรารถนาที่จะหลีกเลี่ยงการทำงานของแอปพลิเคชันบนรีเลย์เชนก็จะไม่เป็นเช่นนั้น สนับสนุนการนำสัญญาไปใช้สาธารณะ • การใช้ทรัพยากรคอมพิวเตอร์ (“แก๊ส”) ไม่ได้ถูกนำมาพิจารณา เนื่องจากมีเพียงฟังก์ชันเดียวที่เปิดให้ใช้งานทั่วไปเท่านั้น จะได้รับการแก้ไข เหตุผลเบื้องหลังการบัญชีก๊าซ ไม่ถืออีกต่อไป ด้วยเหตุนี้จึงจะมีค่าธรรมเนียมเพิ่มเติม ทุกกรณีช่วยให้มีประสิทธิภาพมากขึ้นจากกรณีใด ๆ การเรียกใช้โค้ดแบบไดนามิกที่อาจจำเป็นต้องดำเนินการ และรูปแบบธุรกรรมที่ง่ายกว่า • ฟังก์ชั่นพิเศษได้รับการสนับสนุนสำหรับสัญญาที่ระบุไว้ซึ่งช่วยให้สามารถดำเนินการอัตโนมัติและส่งออกข้อความเครือข่าย ในกรณีที่รีเลย์เชนมี VM และเป็นเช่นนั้น จาก EVM นั้น จะมีการปรับเปลี่ยนหลายอย่างเพื่อให้แน่ใจว่ามีความเรียบง่ายสูงสุด ก็น่าจะได้ มีสัญญาในตัวจำนวนหนึ่ง (คล้ายกับที่ ที่อยู่ 1-4 ใน Ethereum) เพื่ออนุญาตเฉพาะแพลตฟอร์ม หน้าที่ที่จะต้องจัดการรวมถึงสัญญาที่เป็นเอกฉันท์ validator สัญญาและสัญญาพาราเชน หากไม่ใช่ EVM ดังนั้นแบ็กเอนด์ WebAssembly [2] (wasm) จึงเป็นทางเลือกที่เป็นไปได้มากที่สุด ในกรณีนี้โดยรวม โครงสร้างจะคล้ายกัน แต่ก็ไม่จำเป็น สำหรับสัญญาในตัวที่มี Wasm เป็นเป้าหมายที่เป็นไปได้ สำหรับภาษาวัตถุประสงค์ทั่วไปมากกว่าที่ยังไม่บรรลุนิติภาวะ และภาษาที่จำกัดสำหรับ EVM การเบี่ยงเบนที่เป็นไปได้อื่นๆ จากโปรโตคอล Ethereum ปัจจุบันค่อนข้างเป็นไปได้ ตัวอย่างเช่น ความเรียบง่ายของ รูปแบบธุรกรรม-ใบเสร็จรับเงินช่วยให้สามารถดำเนินการแบบขนานของธุรกรรมที่ไม่มีความขัดแย้งภายในบล็อกเดียวกัน ตามที่เสนอสำหรับชุดการเปลี่ยนแปลง Serenity เป็นไปได้แม้ว่าจะไม่น่าเป็นไปได้ก็ตามที่เหมือนความสงบสุข โซ่ "บริสุทธิ์" ถูกปรับใช้เป็นรีเลย์-เชน เพื่อให้สามารถ สัญญาเฉพาะเพื่อจัดการสิ่งต่าง ๆ เช่น staking token สมดุลแทนที่จะทำให้สิ่งนั้นเป็นส่วนพื้นฐานของ โปรโตคอลของลูกโซ่ ปัจจุบันเรารู้สึกว่าไม่น่าจะเป็นเช่นนั้น จะนำเสนอความเรียบง่ายของโปรโตคอลที่ดีเยี่ยมพอสมควร คุ้มค่ากับความซับซ้อนและความไม่แน่นอนเพิ่มเติมที่เกี่ยวข้อง ในการพัฒนามัน 7เพื่อเป็นการแสดงจำนวนเงินที่ผู้ถือกำหนดต้องรับผิดชอบต่อความปลอดภัยโดยรวมของระบบ บัญชีเดิมพันเหล่านี้จะ เข้ารหัสมูลค่าทางเศรษฐกิจบางอย่างอย่างหลีกเลี่ยงไม่ได้ อย่างไรก็ตาม ควรเข้าใจว่าเนื่องจากไม่มีเจตนาที่จะใช้ค่าดังกล่าว ไม่ว่าด้วยวิธีใดก็ตามเพื่อวัตถุประสงค์ในการแลกเปลี่ยนสินค้าและบริการในโลกแห่งความเป็นจริง ควรสังเกตว่า tokens นั้นไม่เหมือนกับ สกุลเงินและด้วยเหตุนี้ รีเลย์เชนจึงยังคงรักษาปรัชญาที่ทำลายล้างเกี่ยวกับการใช้งานโพลคาดอท: วิสัยทัศน์สำหรับกรอบการทำงานแบบหลายห่วงโซ่ที่แตกต่างกัน ร่างที่ 1 10 มีฟังก์ชันการทำงานเล็กๆ น้อยๆ จำนวนหนึ่งที่จำเป็นสำหรับการจัดการกลไกฉันทามติ ชุด validator กลไกการตรวจสอบ และพาราเชน เหล่านี้ สามารถนำไปใช้ร่วมกันภายใต้โปรโตคอลเสาหิน อย่างไรก็ตาม ด้วยเหตุผลของการเพิ่มความเป็นโมดูลาร์ เราจึงอธิบายสิ่งเหล่านี้ว่าเป็น "สัญญา" ของรีเลย์-เชน สิ่งนี้ควร ให้เข้าใจว่าเป็นวัตถุ (ในความหมายของ การเขียนโปรแกรมเชิงวัตถุ) จัดการโดยกลไกฉันทามติของรีเลย์เชน แต่ไม่จำเป็นว่าจะเป็นเช่นนั้น พวกเขาถูกกำหนดให้เป็นโปรแกรมใน EVM-like opcodes หรือ แม้ว่าพวกเขาจะสามารถระบุที่อยู่ได้เป็นรายบุคคลผ่านทาง ระบบบัญชี 6.2. สัญญาการปักหลัก สัญญานี้จะรักษาชุด validator มันจัดการ: • บัญชีใดในปัจจุบัน validators; • ซึ่งพร้อมที่จะกลายเป็น validators ในระยะสั้น แจ้งให้ทราบล่วงหน้า; • บัญชีใดที่มีการเสนอชื่อเดิมพัน validator; • คุณสมบัติของแต่ละอย่างรวมถึงปริมาณ staking อัตราการจ่ายเงินและที่อยู่ที่ยอมรับได้ และตัวตนระยะสั้น (เซสชัน) อนุญาตให้บัญชีลงทะเบียนความปรารถนาที่จะเป็น ผูกมัด validator (พร้อมกับข้อกำหนด) เพื่อเสนอชื่อตัวตนบางส่วน และสำหรับ validators ผูกมัดที่มีอยู่แล้ว เพื่อลงทะเบียนความปรารถนาที่จะออกจากสถานะนี้ มันยัง รวมถึงเครื่องจักรสำหรับกลไกการตรวจสอบและการกำหนดมาตรฐาน 6.2.1. เดิมพัน-token สภาพคล่อง เป็นที่พึงปรารถนาโดยทั่วไป มี staking tokens ทั้งหมดมากที่สุดเท่าที่จะเป็นไปได้ เดิมพันภายในการดำเนินงานบำรุงรักษาเครือข่ายตั้งแต่นั้นมา สิ่งนี้เชื่อมโยงโดยตรงกับความปลอดภัยของเครือข่ายกับ "มูลค่าหลักทรัพย์ตามราคาตลาด" โดยรวมของ staking token นี้ได้อย่างง่ายดาย ได้รับการจูงใจด้วยการเพิ่มสกุลเงินและแจกจ่ายรายได้ให้กับผู้ที่เข้าร่วมในฐานะ validators อย่างไรก็ตาม การทำเช่นนี้ทำให้เกิดปัญหา: ถ้า token ถูกล็อคอยู่ในสัญญาการปักหลักภายใต้การลงโทษของการลดลง ส่วนสำคัญจะคงอยู่ได้อย่างเพียงพอได้อย่างไร ของเหลวเพื่อให้สามารถค้นพบราคาได้? คำตอบประการหนึ่งสำหรับเรื่องนี้คือการอนุญาตให้ทำสัญญาอนุพันธ์ที่ตรงไปตรงมา โดยรักษาความปลอดภัย tokens ที่เปลี่ยนกันได้บนหุ้นอ้างอิง token นี่เป็นเรื่องยากที่จะจัดการในลักษณะที่ไว้วางใจได้ นอกจากนี้ tokens อนุพันธ์เหล่านี้ไม่สามารถได้รับการปฏิบัติอย่างเท่าเทียมกันด้วยเหตุผลเดียวกันกับที่ว่าพันธบัตรรัฐบาลยูโรโซนที่แตกต่างกันไม่สามารถทดแทนได้: คือโอกาสที่สินทรัพย์อ้างอิงจะล้มเหลวและกลายเป็น ไร้ค่า กับรัฐบาลยูโรโซนอาจมี ค่าเริ่มต้น ด้วย validator-เดิมพัน tokens validator อาจ กระทำการอันมุ่งร้ายและถูกลงโทษ ตามหลักการของเรา เราเลือกวิธีแก้ปัญหาที่ง่ายที่สุด: ไม่ใช่ token ทั้งหมดจะถูกเดิมพัน นี่ก็จะหมายความอย่างนั้น สัดส่วนบางส่วน (อาจ 20%) ของ tokens จะถูกบังคับให้ยังคงเป็นของเหลว แม้ว่าสิ่งนี้จะไม่สมบูรณ์แบบจากมุมมองด้านความปลอดภัย แต่ก็ไม่น่าจะสร้างความแตกต่างขั้นพื้นฐานได้ ความปลอดภัยของเครือข่าย 80% ของการชดใช้ที่เป็นไปได้จากการยึดพันธบัตรจะยังคงสามารถทำได้ เทียบกับ “กรณีที่สมบูรณ์แบบ” 100% staking อัตราส่วนระหว่างเงินเดิมพันและของเหลว tokens สามารถกำหนดเป้าหมายได้อย่างง่ายดายผ่านกลไกการประมูลแบบย้อนกลับ โดยพื้นฐานแล้ว token ผู้ถือสนใจที่จะเป็น validator แต่ละคนจะโพสต์ข้อเสนอในสัญญา staking ที่ระบุ อัตราการจ่ายเงินขั้นต่ำที่พวกเขาจะต้องได้รับ ส่วนหนึ่ง ในตอนต้นของแต่ละเซสชัน (เซสชันจะ เกิดขึ้นเป็นประจำบางทีอาจเกิดขึ้นครั้งละครั้ง) validator ช่องจะถูกเติมตามแต่ละช่อง validator เดิมพันและอัตราการจ่ายเงิน อัลกอริทึมหนึ่งที่เป็นไปได้ เพราะนี่จะเป็นการเอาผู้ที่มีข้อเสนอต่ำที่สุด เป็นตัวแทนเดิมพันไม่สูงกว่ายอดเดิมพันทั้งหมดที่ตั้งเป้าหมายไว้ หารด้วยจำนวนช่องและไม่ต่ำกว่าขอบล่างของจำนวนนั้น หากไม่สามารถเติมช่องได้ ขอบเขตล่างสามารถลดลงซ้ำๆ ได้ด้วยปัจจัยบางอย่างเพื่อให้เกิดความพึงพอใจ 6.2.2. การเสนอชื่อ เป็นไปได้ที่จะเสนอชื่ออย่างไม่ไว้วางใจ staking tokens ให้กับ validator ที่ใช้งานอยู่ โดยมอบให้พวกเขา ความรับผิดชอบของหน้าที่ validators การเสนอชื่อผลงาน ผ่านระบบอนุมัติ-ลงคะแนนเสียง ผู้ที่จะเป็นผู้เสนอชื่อแต่ละคนสามารถโพสต์คำแนะนำในสัญญา staking ได้ การแสดงตัวตน validator อย่างน้อยหนึ่งรายการภายใต้เจ้าของ ความรับผิดชอบที่พวกเขาพร้อมที่จะมอบความไว้วางใจ ในแต่ละเซสชั่นพันธบัตรของผู้เสนอชื่อจะกระจายออกไป แสดงโดย validator หนึ่งรายการขึ้นไป อัลกอริธึมการกระจายปรับให้เหมาะสมสำหรับชุด validators ของผลรวมที่เทียบเท่ากัน พันธบัตร พันธบัตรของผู้เสนอชื่อจะอยู่ภายใต้ความรับผิดชอบที่มีประสิทธิภาพของ validator aและได้รับดอกเบี้ยหรือประสบ ลดโทษตามสมควร 6.2.3. การยึดพันธบัตร / การเผา พฤติกรรม validator บางอย่างส่งผลให้มีการลดความผูกพันลง ถ้า พันธบัตรจะลดลงต่ำกว่าขั้นต่ำที่อนุญาต เซสชันสิ้นสุดก่อนกำหนดและเซสชันอื่นเริ่มต้นขึ้น รายการพฤติกรรมที่ไม่เหมาะสม validator ที่ได้รับโทษอย่างครบถ้วน รวมถึง: • เป็นส่วนหนึ่งของกลุ่มพาราเชนที่ไม่สามารถให้ได้ ฉันทามติเกี่ยวกับความถูกต้องของบล็อกพาราเชน • กระตือรือร้นในการลงนามเพื่อความถูกต้องของสิ่งที่ไม่ถูกต้อง บล็อกพาราเชน • ไม่สามารถจัดหาเพย์โหลดขาออกได้ก่อนหน้านี้ โหวตว่าใช้ได้; • การไม่ใช้งานในระหว่างกระบวนการฉันทามติ; • ตรวจสอบความถูกต้องของบล็อกรีเลย์-เชนบนส้อมของคู่แข่ง พฤติกรรมที่ไม่เหมาะสมบางกรณีอาจคุกคามความสมบูรณ์ของเครือข่าย (เช่น การเซ็นชื่อบล็อก parachain ที่ไม่ถูกต้อง และการตรวจสอบหลายด้านของทางแยก) และด้วยเหตุนี้จึงส่งผลให้มีการเนรเทศอย่างมีประสิทธิผลโดยการลดพันธะทั้งหมดลง ใน กรณีอื่นๆ ที่ร้ายแรงน้อยกว่า (เช่น การไม่มีการใช้งานตามฉันทามติ กระบวนการ) หรือกรณีที่ไม่สามารถระบุความผิดได้แน่ชัด (เป็นส่วนหนึ่งของกลุ่มที่ขาดประสิทธิภาพ) ส่วนน้อย ของพันธบัตรอาจถูกปรับแทนได้ ในกรณีหลังนี้ ทำงานได้ดีกับการปั่นกลุ่มย่อยเพื่อให้แน่ใจว่าเป็นอันตราย โหนดต้องสูญเสียมากกว่าโหนดใจดีที่เสียหายอย่างมาก ในบางกรณี (เช่น การตรวจสอบ multi-fork และไม่ถูกต้อง การลงนามบล็อกย่อย) validators ไม่สามารถตรวจจับพฤติกรรมที่ไม่เหมาะสมของกันและกันได้อย่างง่ายดายเนื่องจากมีการตรวจสอบอย่างต่อเนื่อง ของแต่ละบล็อกพาราเชนจะเป็นงานที่ยากลำบากเกินไป ที่นี่ มีความจำเป็นต้องขอความช่วยเหลือจากฝ่ายภายนอก กระบวนการตรวจสอบเพื่อตรวจสอบและรายงานพฤติกรรมที่ไม่เหมาะสมดังกล่าว ทุกฝ่ายจะได้รับรางวัลจากการรายงานกิจกรรมดังกล่าว คำว่า “ชาวประมง” มีต้นกำเนิดมาจากสิ่งที่ไม่น่าเป็นไปได้ ของรางวัลดังกล่าว เนื่องจากกรณีเหล่านี้มักมีความร้ายแรงมาก เราจึงคิดว่าสามารถจ่ายรางวัลใดๆ ได้อย่างง่ายดายจากพันธบัตรที่ถูกยึด โดยทั่วไปแล้ว เราชอบที่จะรักษาสมดุลของการเผาไหม้ (เช่น ลดจนเหลืออะไรเลย) ด้วยการจัดสรรใหม่ แทนที่จะเป็น พยายามจัดสรรการขายส่ง สิ่งนี้มีผลกระทบจาก
โพลคาดอท: วิสัยทัศน์สำหรับกรอบการทำงานแบบหลายห่วงโซ่ที่แตกต่างกัน ร่างที่ 1 11 การเพิ่มมูลค่าโดยรวมของ token เพื่อชดเชย เครือข่ายโดยทั่วไปในระดับหนึ่งมากกว่าเฉพาะเจาะจง ฝ่ายที่เกี่ยวข้องกับการค้นพบ นี่เป็นเรื่องความปลอดภัยเป็นหลัก กลไก: เงินจำนวนมากที่เกี่ยวข้องอาจนำไปสู่การจูงใจพฤติกรรมที่รุนแรงและเฉียบพลันได้ทั้งหมด มอบให้กับเป้าหมายเดียว โดยทั่วไป สิ่งสำคัญคือรางวัลจะต้องมีจำนวนมากพอที่จะทำให้การตรวจสอบคุ้มค่าสำหรับเครือข่าย แต่ก็ไม่มากจนเกินไปที่จะชดเชยค่าใช้จ่ายในการเผชิญหน้า อาชญากร "ระดับอุตสาหกรรม" ที่มีเงินทุนดีและจัดการอย่างดี การแฮ็กการโจมตี validator ผู้โชคร้ายบางตัวเพื่อบังคับพฤติกรรมที่ไม่เหมาะสม ด้วยวิธีนี้จำนวนเงินที่เรียกร้องโดยทั่วไปควรเป็นจำนวนไม่ มากกว่าความผูกพันโดยตรงของผู้หลงทาง validator เกรงว่าก แรงจูงใจอันชั่วร้ายเกิดจากการประพฤติผิดและรายงานตัวเพื่อรับเงินรางวัล สิ่งนี้สามารถต่อสู้ได้อย่างชัดเจน ผ่านข้อกำหนดพันธะโดยตรงขั้นต่ำสำหรับการเป็น validator หรือโดยนัยโดยการให้ความรู้แก่ผู้เสนอชื่อว่า validators ที่มีพันธบัตรเพียงเล็กน้อยไม่มีแรงจูงใจที่ดี ประพฤติตัวดี 6.3. Parachain Registry Parachain แต่ละอันถูกกำหนดไว้แล้ว รีจิสทรีนี้ มันเป็นโครงสร้างคล้ายฐานข้อมูลที่ค่อนข้างเรียบง่ายและเก็บข้อมูลทั้งแบบคงที่และไดนามิก แต่ละโซ่ ข้อมูลคงที่รวมถึงดัชนีลูกโซ่ (แบบง่าย จำนวนเต็ม) พร้อมด้วยเอกลักษณ์ของโปรโตคอลการตรวจสอบ วิธีการแยกแยะระหว่างชนชั้นต่างๆ ของ parachain เพื่อให้อัลกอริธึมการตรวจสอบความถูกต้องถูกต้อง ดำเนินการโดย validators ส่งต่อผู้สมัครที่ถูกต้อง การพิสูจน์แนวคิดเบื้องต้นจะเน้นไปที่การวาง อัลกอริธึมการตรวจสอบใหม่เข้าสู่ไคลเอนต์โดยต้องมีการฮาร์ดฟอร์กของโปรโตคอลในแต่ละครั้งอย่างมีประสิทธิภาพ มีการเพิ่มคลาสของโซ่เพิ่มเติม ท้ายที่สุดแล้วแม้ว่า อาจเป็นไปได้ที่จะระบุอัลกอริธึมการตรวจสอบความถูกต้อง วิธีการที่เข้มงวดและมีประสิทธิภาพเพียงพอที่ลูกค้าจะเป็น สามารถทำงานร่วมกับพาราเชนใหม่ได้อย่างมีประสิทธิผลโดยไม่ต้องมี ฮาร์ดฟอร์ก แนวทางหนึ่งที่เป็นไปได้คือการระบุ อัลกอริธึมการตรวจสอบความถูกต้องของพาราเชนที่ได้รับการยอมรับอย่างดี ภาษาที่เป็นกลางและคอมไพล์ตามแพลตฟอร์ม เช่น WebAssembly จำเป็นต้องมีการวิจัยเพิ่มเติมเพื่อพิจารณา ไม่ว่าจะเป็นไปได้จริงหรือไม่ แต่ถ้าเป็นเช่นนั้นก็สามารถนำมาซึ่ง ด้วยข้อได้เปรียบอันมหาศาลของการขับไล่ฮาร์ดฟอร์ก เพื่อความดี ข้อมูลแบบไดนามิกรวมถึงลักษณะของระบบการกำหนดเส้นทางธุรกรรมที่ต้องมีข้อตกลงระดับโลกดังกล่าว เป็นคิวทางเข้าของ parachain (อธิบายไว้ในส่วน 6.6) รีจิสทรีสามารถเพิ่ม parachains ได้เท่านั้น ผ่านการลงประชามติเต็มรูปแบบ สิ่งนี้สามารถจัดการได้ ภายในแต่น่าจะวางไว้ภายนอกมากกว่า สัญญาลงประชามติเพื่ออำนวยความสะดวกในการนำกลับมาใช้ใหม่ตาม องค์ประกอบการกำกับดูแลทั่วไปเพิ่มเติม พารามิเตอร์ที่จะ ข้อกำหนดในการลงคะแนนเสียง (เช่น องค์ประชุมที่ต้องการ เสียงข้างมาก จำเป็น) สำหรับการลงทะเบียนโซ่เพิ่มเติมและอื่น ๆ การอัพเกรดระบบที่เป็นทางการน้อยลงจะมีการกำหนดไว้ใน "ต้นแบบ รัฐธรรมนูญ” แต่มีแนวโน้มว่าจะเป็นไปตามประเพณีที่ค่อนข้างเป็นธรรม เส้นทางอย่างน้อยในตอนแรก สูตรที่แม่นยำหมดแล้ว ขอบเขตสำหรับงานปัจจุบัน แต่เช่น มากสุดสองในสามที่จะผ่านด้วยมากกว่าหนึ่งในสามของระบบทั้งหมด การลงคะแนนเสียงในทางบวกอาจเป็นจุดเริ่มต้นที่สมเหตุสมผล การดำเนินการเพิ่มเติม ได้แก่ การระงับและการถอดพาราเชน หวังว่าการระงับจะไม่เกิดขึ้น เกิดขึ้นอย่างไรก็ตามมันถูกออกแบบให้มีการป้องกันน้อยที่สุด มีปัญหาที่รักษาไม่หายในระบบตรวจสอบความถูกต้องของพาราเชน ตัวอย่างที่ชัดเจนที่สุดที่อาจเป็นไปได้ be need คือความแตกต่างที่เป็นเอกฉันท์ที่สำคัญระหว่างการใช้งานที่ทำให้ validators ไม่สามารถตกลงกันได้ ความถูกต้องหรือบล็อก ผู้ตรวจสอบความถูกต้องจะได้รับการสนับสนุนให้ใช้ การใช้งานไคลเอนต์หลายตัวเพื่อที่จะสามารถทำได้ เพื่อทราบปัญหาดังกล่าวก่อนการยึดพันธบัตร เนื่องจากการระงับเป็นมาตรการฉุกเฉิน ก็คงเป็นเช่นนั้น ภายใต้การอุปถัมภ์ของการลงคะแนนแบบไดนามิก validator มากกว่าการลงประชามติ การกลับมาใหม่จะเป็นไปได้ทั้งสองอย่าง จาก validators หรือการลงประชามติ การถอดพาราเชนออกทั้งหมดจะเกิดขึ้นเท่านั้น หลังจากการลงประชามติและด้วยซึ่งจะต้องมีการ ระยะเวลาผ่อนผันที่สำคัญเพื่อให้เกิดการเปลี่ยนแปลงอย่างเป็นระเบียบ ไม่ว่าจะเป็นเครือข่ายแบบสแตนด์อโลนหรือเป็นส่วนหนึ่งของเครือข่ายอื่น ฉันทามติ-ระบบ ระยะเวลาผ่อนผันน่าจะเป็นของ ลำดับของเดือนและมีแนวโน้มที่จะกำหนดตามลำดับในการลงทะเบียน parachain ตามลำดับที่แตกต่างกัน Parachains สามารถเพลิดเพลินกับช่วงเวลาผ่อนผันที่แตกต่างกันตาม ความต้องการของพวกเขา 6.4. บล็อกรีเลย์ซีล การปิดผนึกหมายถึงโดยพื้นฐานแล้ว ถึงกระบวนการกำหนดรูปแบบบัญญัติ; นั่นคือข้อมูลพื้นฐาน แปลงซึ่งแม็ปต้นฉบับให้เป็นสิ่งที่มีเอกลักษณ์และมีความหมายโดยพื้นฐาน ภายใต้ห่วงโซ่ PoW การปิดผนึกเป็นคำพ้องความหมายสำหรับการขุดอย่างมีประสิทธิผล ในกรณีของเรา มันเกี่ยวข้องกับการรวบรวมข้อความที่ลงนามจาก validators เกี่ยวกับความถูกต้อง ความพร้อมใช้งาน และมาตรฐานของ บล็อกรีเลย์โซ่โดยเฉพาะและบล็อกพาราเชนนั้น มันเป็นตัวแทน กลไกของอัลกอริธึมฉันทามติ BFT พื้นฐานอยู่นอกขอบเขตสำหรับงานปัจจุบัน เราจะ แทนที่จะอธิบายโดยใช้คำดั้งเดิมซึ่งถือว่าก การสร้างเครื่องรัฐที่เป็นเอกฉันท์ ในที่สุดเราก็คาดหวัง ได้รับแรงบันดาลใจจากความเห็นพ้องต้องกันของ BFT ที่มีแนวโน้มหลายประการ อัลกอริธึมในแกนกลาง Tangaora [9] (ตัวแปร BFT ของ แพ [16]), เทนเดอร์มิ้นต์ [11] และ HoneyBadgerBFT [14] อัลกอริธึมจะต้องบรรลุข้อตกลงบนหลาย parachains แบบขนาน ดังนั้นจึงแตกต่างจากปกติ blockchain กลไกฉันทามติ เราถือว่าครั้งหนึ่ง ถึงฉันทามติแล้ว เราก็สามารถบันทึกฉันทามติได้ ในข้อพิสูจน์ที่หักล้างไม่ได้ซึ่งสามารถให้ได้โดยบุคคลใดบุคคลหนึ่ง ผู้เข้าร่วมนั้น เราก็ถือเอาพฤติกรรมที่ไม่เหมาะสมนั้นด้วย ภายในโปรโตคอลโดยทั่วไปสามารถลดลงเหลือเพียงเล็กน้อยได้ กลุ่มที่มีผู้เข้าร่วมประพฤติตัวไม่เหมาะสมเพื่อลด ความเสียหายของหลักประกันเมื่อต้องจัดการกับการลงโทษ8 หลักฐานซึ่งอยู่ในรูปแบบของข้อความที่ลงนามของเรา จะถูกวางไว้ในส่วนหัวของบล็อกสายโซ่รีเลย์ไว้ด้วยกัน กับฟิลด์อื่น ๆ บางอย่างไม่น้อยไปกว่ารูท statetrie ของรีเลย์-เชนและทรานแซคชัน-ทรีรูท ที่ การปิดผนึก กระบวนการ ใช้เวลา สถานที่ ภายใต้ ก โสด การสร้างฉันทามติ กลไก ที่อยู่ ทั้งสองอย่าง ที่ บล็อกของรีเลย์โซ่และบล็อกของพาราเชนที่ทำขึ้น ส่วนหนึ่งของเนื้อหาของรีเลย์: parachains จะไม่ถูก "กระทำ" แยกกันโดยกลุ่มย่อยแล้วจึงเปรียบเทียบ ในภายหลัง สิ่งนี้ส่งผลให้เกิดกระบวนการที่ซับซ้อนมากขึ้นสำหรับรีเลย์เชน แต่ช่วยให้เราสามารถบรรลุฉันทามติของระบบทั้งหมดได้ในขั้นตอนเดียว ลดเวลาแฝงและอนุญาต สำหรับข้อกำหนดด้านความพร้อมใช้งานของข้อมูลที่ค่อนข้างซับซ้อน ได้แก่ มีประโยชน์สำหรับกระบวนการกำหนดเส้นทางด้านล่าง 8แผนงานที่เป็นเอกฉันท์ตาม PoS BFT ที่มีอยู่ เช่น Tendermint BFT และ Slasher ดั้งเดิมจะตอบสนองการยืนยันเหล่านี้
โพลคาดอท: วิสัยทัศน์สำหรับกรอบการทำงานแบบหลายห่วงโซ่ที่แตกต่างกัน ร่างที่ 1 12 สถานะของเครื่องฉันทามติของผู้เข้าร่วมแต่ละคนอาจ จำลองเป็นตารางอย่างง่าย (2 มิติ) ผู้เข้าร่วมแต่ละคน (validator) มีชุดข้อมูลอยู่ในแบบฟอร์ม ของคำแถลงที่ลงนาม (“โหวต”) จากผู้เข้าร่วมคนอื่นๆ เกี่ยวกับตัวเลือกบล็อกพาราเชนแต่ละตัวรวมถึงตัวเลือกบล็อกรีเลย์ ชุดข้อมูลมีสองชิ้น ของข้อมูล: มีจำหน่าย: ไม่ นี้ validator มี ทางออก ข้อมูลธุรกรรมโพสต์จากบล็อกนี้ดังนั้น พวกเขาสามารถตรวจสอบผู้สมัคร parachain ได้อย่างถูกต้องในบล็อกต่อไปนี้หรือไม่ พวกเขาอาจจะลงคะแนนเสียง 1 (รู้จัก) หรือ 0 (ยังไม่ทราบ) เมื่อพวกเขา โหวต 1 พวกเขามุ่งมั่นที่จะลงคะแนนเสียงในทำนองเดียวกัน ส่วนที่เหลือของกระบวนการนี้ ต่อมาโหวตว่าไม่ได้ ความเคารพ นี่เป็นเหตุสำหรับการลงโทษ ความถูกต้อง: บล็อกพาราเชนถูกต้องและเป็นทั้งหมด ข้อมูลอ้างอิงภายนอก (เช่น ธุรกรรม) ใช้ได้เหรอ? สิ่งนี้เกี่ยวข้องเฉพาะกับ validators ที่ได้รับมอบหมายให้กับ parachain ที่พวกเขากำลังลงคะแนนอยู่ พวกเขาอาจลงคะแนนเสียง 1 (ถูกต้อง), -1 (ไม่ถูกต้อง) หรือ 0 (ยังไม่ทราบ) เมื่อพวกเขาลงคะแนนเสียงไม่เป็นศูนย์พวกเขาก็ มุ่งมั่นที่จะลงคะแนนเสียงด้วยวิธีนี้สำหรับส่วนที่เหลือของ กระบวนการ ต่อมาโหวตไม่เคารพเรื่องนี้ เป็นเหตุให้ลงโทษ validators ทั้งหมดต้องส่งการโหวต สามารถส่งคะแนนเสียงอีกครั้งได้ โดยต้องผ่านเกณฑ์ตามกฎข้างต้น ความก้าวหน้าของ ฉันทามติอาจจำลองเป็นอัลกอริธึมฉันทามติมาตรฐาน BFT หลายอันเหนือแต่ละ parachain ที่เกิดขึ้นแบบขนาน เนื่องจากสิ่งเหล่านี้อาจถูกขัดขวางโดยค่อนข้าง มีผู้ประสงค์ร้ายส่วนน้อยที่กระจุกตัวอยู่ กลุ่มพาราเชนกลุ่มเดียว มีมติโดยรวมอยู่ สร้างแบ็คสต็อปเพื่อจำกัดสถานการณ์ที่เลวร้ายที่สุดจาก การหยุดชะงักของบล็อกพาราเชนที่เป็นโมฆะเพียงหนึ่งบล็อกขึ้นไป (และ รอบการลงโทษผู้รับผิดชอบ) กฎพื้นฐานสำหรับความถูกต้องของแต่ละบล็อก (ที่อนุญาตให้ชุดรวมของ validators โดยรวมมาถึง ฉันทามติว่าจะกลายเป็นผู้สมัคร parachain ที่ไม่เหมือนใคร ที่จะอ้างอิงจากการถ่ายทอดตามรูปแบบบัญญัติ): • ต้องมีคะแนนเสียงอย่างน้อยสองในสามของ validators ในทางบวก และไม่มีการลงคะแนนเสียงในทางลบ; • ต้องมี validators มากกว่าหนึ่งในสามลงคะแนนเชิงบวกต่อความพร้อมใช้งานของข้อมูลคิวขาออก หากมีการลงคะแนนเสียงเชิงบวกอย่างน้อยหนึ่งครั้งและเชิงลบอย่างน้อยหนึ่งรายการ เงื่อนไขพิเศษจะถูกสร้างขึ้น และทั้งชุดของ validators ต้องลงคะแนนเพื่อตัดสิน หากมีผู้ประสงค์ร้ายหรือหากมีเหตุบังเอิญ ส้อม นอกเหนือจากการลงคะแนนเสียงที่ถูกต้องและไม่ถูกต้องแล้ว การลงคะแนนเสียงประเภทที่สาม ได้รับอนุญาตเทียบเท่ากับการลงคะแนนเสียงทั้งสองอย่างหมายความว่า โหนดมีความคิดเห็นที่ขัดแย้งกัน ทั้งนี้อาจมีสาเหตุมาจาก เจ้าของโหนดใช้งานหลายอย่างซึ่งทำ ไม่เห็นด้วย ซึ่งบ่งบอกถึงความคลุมเครือที่เป็นไปได้ในระเบียบการ หลังจากการโหวตทั้งหมดจะนับจากชุด validator ทั้งหมด หาก ความคิดเห็นที่แพ้ก็มีสัดส่วนเล็กน้อยเป็นอย่างน้อย (ถึง เป็นพารามิเตอร์; มากที่สุดครึ่งหนึ่ง อาจจะน้อยกว่าอย่างเห็นได้ชัด) ของคะแนนเสียงของผู้มีความเห็นเป็นผู้ชนะให้ถือว่า เป็นส้อมพาราเชนโดยไม่ได้ตั้งใจ และพาราเชนจะถูกระงับโดยอัตโนมัติจากกระบวนการฉันทามติ มิฉะนั้นเราจะถือว่ามันเป็นการกระทำที่เป็นอันตรายและลงโทษ ชนกลุ่มน้อยที่ลงคะแนนเสียงแสดงความเห็นแย้ง ข้อสรุปคือชุดลายเซ็นที่สาธิต ความเป็นมาตรฐาน บล็อกรีเลย์-โซ่อาจถูกปิดผนึก และกระบวนการปิดผนึกบล็อกต่อไปก็เริ่มขึ้น 6.5. การปรับปรุงสำหรับการซีลบล็อกรีเลย์ ในขณะที่ วิธีการปิดผนึกนี้รับประกันการทำงานของระบบได้ดี แต่ก็ไม่ได้ขยายขนาดออกไปมากนัก เนื่องจากข้อมูลสำคัญของพาราเชนทุกอันจะต้องมีข้อมูลของมัน รับประกันความพร้อมใช้งานมากกว่าหนึ่งในสามของ validators ทั้งหมด ซึ่งหมายความว่าทุกๆ รอยเท้าความรับผิดชอบของ validator เติบโตขึ้นเมื่อมีการเพิ่มโซ่มากขึ้น ในขณะที่ข้อมูลมีอยู่ในเครือข่ายเปิดฉันทามติ โดยพื้นฐานแล้วเป็นปัญหาที่ยังไม่ได้รับการแก้ไข มีวิธีบรรเทาค่าใช้จ่ายที่วางไว้บนโหนด validator ง่ายๆ อย่างหนึ่ง วิธีแก้ปัญหาคือการตระหนักว่าในขณะที่ validators ต้องแบกรับ ความรับผิดชอบต่อความพร้อมของข้อมูล ไม่จำเป็นต้องจัดเก็บ สื่อสาร หรือทำซ้ำข้อมูลด้วยตนเอง ไซโลข้อมูลทุติยภูมิ ซึ่งอาจเกี่ยวข้องกับ (หรือแม้แต่ส่วนใหญ่) เดียวกัน) ผู้เปรียบเทียบที่รวบรวมข้อมูลนี้สามารถจัดการได้ งานรับประกันความพร้อมโดย validators มอบดอกเบี้ย/รายได้ส่วนหนึ่งในการชำระเงิน อย่างไรก็ตาม แม้ว่าสิ่งนี้อาจซื้อความสามารถในการปรับขนาดระดับกลาง แต่ก็ยังไม่ได้ช่วยแก้ปัญหาที่ซ่อนอยู่ ตั้งแต่ การเพิ่มเชนโดยทั่วไปจะต้องใช้ validators เพิ่มเติม การใช้ทรัพยากรเครือข่ายอย่างต่อเนื่อง (โดยเฉพาะในแง่ของแบนด์วิดท์) จะเพิ่มขึ้นตามกำลังสองของ ที่โซ่ซึ่งเป็นทรัพย์สินที่ไม่สามารถป้องกันได้ในระยะยาว ในที่สุดเราก็มีแนวโน้มที่จะทุบตีหัวของเราต่อไป ขัดต่อข้อจำกัดพื้นฐานซึ่งระบุไว้ว่าสำหรับ เครือข่ายฉันทามติที่จะถือว่ามีความปลอดภัย ข้อกำหนดแบนด์วิธที่กำลังดำเนินอยู่นั้นเป็นลำดับทั้งหมด validators คูณข้อมูลอินพุตทั้งหมด ทั้งนี้ก็เนื่องมาจาก การไร้ความสามารถของเครือข่ายที่ไม่น่าเชื่อถือในการกระจายงานการจัดเก็บข้อมูลไปยังโหนดต่างๆ ที่มีอยู่อย่างเหมาะสม นอกเหนือจากงานการประมวลผลที่สามารถแจกจ่ายได้อย่างเห็นได้ชัด 6.5.1. ขอแนะนำความหน่วง วิธีหนึ่งในการทำให้สิ่งนี้อ่อนลง กฎคือการผ่อนคลายแนวคิดเรื่องความฉับไว ด้วยการกำหนดให้มีการลงคะแนนเสียง 33%+1 validators สำหรับความพร้อมใช้งานในท้ายที่สุดเท่านั้น และไม่ใช่ในทันที เราจึงสามารถใช้การเผยแพร่ข้อมูลแบบเอ็กซ์โปเนนเชียลได้ดีขึ้น และช่วยให้การแลกเปลี่ยนข้อมูลถึงจุดสูงสุดได้ ความเท่าเทียมกันที่สมเหตุสมผล (แม้ว่าจะไม่ได้รับการพิสูจน์) อาจจะเป็น: (1) เวลาแฝง = ผู้เข้าร่วม × ลูกโซ่ ภายใต้รุ่นปัจจุบัน ขนาดของระบบจะปรับขนาด ด้วยจำนวนโซ่เพื่อให้แน่ใจว่าการประมวลผลเป็น กระจาย; เนื่องจากแต่ละเชนจะต้องมีอย่างน้อยหนึ่ง validator และเราจะแก้ไขการยืนยันความพร้อมเป็นค่าคงที่ สัดส่วน validators จากนั้นผู้เข้าร่วมก็เติบโตขึ้นเช่นเดียวกัน ด้วยจำนวนโซ่ เราจบลงด้วย: (2) เวลาแฝง = ขนาด 2 หมายความว่าเมื่อระบบเติบโตขึ้น แบนด์วิดท์ที่ต้องการและค่าหน่วงเวลาจนกว่าจะทราบความพร้อมใช้งานทั่วทั้งระบบ เครือข่ายซึ่งอาจมีลักษณะเป็นตัวเลขด้วย ของบล็อกก่อนจุดสิ้นสุด เพิ่มขึ้นตามกำลังสอง นี่คือ ปัจจัยการเติบโตที่สำคัญและอาจกลายเป็นอุปสรรคสำคัญและบังคับให้เราเข้าสู่กระบวนทัศน์ "ไม่ราบเรียบ" เช่นการเขียน “Polkadotes” หลายรายการลงในลำดับชั้น สำหรับการกำหนดเส้นทางโพสต์หลายระดับผ่านแผนผังของรีเลย์เชน
โพลคาดอท: วิสัยทัศน์สำหรับกรอบการทำงานแบบหลายห่วงโซ่ที่แตกต่างกัน ร่างที่ 1 13 6.5.2. การมีส่วนร่วมของประชาชน อีกหนึ่งทิศทางที่เป็นไปได้ คือการชักชวนให้ประชาชนมีส่วนร่วมในกระบวนการผ่านก ระบบการร้องเรียนขนาดเล็ก คล้ายกับชาวประมงที่นั่น อาจเป็นบุคคลภายนอกเพื่อทำหน้าที่ตำรวจ validators ที่อ้างสิทธิ์ ความพร้อมใช้งาน หน้าที่ของพวกเขาคือค้นหาผู้ที่ดูเหมือนจะไม่สามารถแสดงให้เห็นถึงความพร้อมดังกล่าวได้ ในการทำเช่นนั้นพวกเขา สามารถยื่นเรื่องร้องเรียนเล็กๆ น้อยๆ ไปยัง validators อื่นๆ ได้ ปตท.หรือ อาจใช้พันธบัตรเดิมพันเพื่อบรรเทาการโจมตีของซีบิล ซึ่งจะทำให้ระบบไร้ประโยชน์อย่างมาก 6.5.3. ผู้รับประกันความพร้อมใช้งาน เส้นทางสุดท้ายก็คงจะเป็น เสนอชื่อชุดที่สองของ validators ที่ถูกผูกมัดเป็น "ความพร้อมใช้งาน ผู้ค้ำประกัน” สิ่งเหล่านี้จะถูกเชื่อมโยงเช่นเดียวกับ validators ปกติ และอาจนำมาจากชุดเดียวกันด้วยซ้ำ (แต่ถ้าเป็นเช่นนั้น พวกเขาจะถูกเลือกเป็นระยะเวลานาน อย่างน้อยต่อเซสชัน) ไม่เหมือนกับ validators ปกติเลย จะไม่สลับระหว่างพาราเชน แต่จะสลับ จัดตั้งกลุ่มเดียวเพื่อยืนยันความพร้อมใช้งานของข้อมูลอินเตอร์เชนที่สำคัญทั้งหมด นี่เป็นข้อได้เปรียบในการผ่อนคลายความเท่าเทียมกันระหว่างผู้เข้าร่วมและเครือข่าย โดยพื้นฐานแล้วโซ่สามารถทำได้ เติบโต (พร้อมกับชุดโซ่เดิม validator) ในขณะที่ ผู้เข้าร่วมและโดยเฉพาะผู้ที่มีส่วนร่วมในพินัยกรรมความพร้อมใช้ของข้อมูล สามารถคงอยู่ในบรรทัดย่อยน้อยที่สุด และค่อนข้างจะคงที่ 6.5.4. การตั้งค่าของผู้รวบรวม สิ่งสำคัญประการหนึ่งของเรื่องนี้ ระบบคือเพื่อให้แน่ใจว่ามีการคัดเลือกที่ดีต่อสุขภาพของ ผู้ทำงานร่วมกันสร้างบล็อกในพาราเชนที่กำหนด ถ้าก ผู้เปรียบเทียบเดี่ยวควบคุม parachain จากนั้นก็มีการโจมตีบ้าง เป็นไปได้มากขึ้นเนื่องจากความน่าจะเป็นของการขาด ความพร้อมใช้งานของข้อมูลภายนอกจะชัดเจนน้อยลง ทางเลือกหนึ่งคือการถ่วงน้ำหนักบล็อกพาราเชนแบบเทียมเข้าไป กลไกการสุ่มหลอกเพื่อสนับสนุนผู้เปรียบเทียบที่หลากหลาย ในกรณีแรกเราจะต้อง ซึ่งเป็นส่วนหนึ่งของกลไกฉันทามติที่ validator เห็นชอบ ตัวเลือกบล็อกพาราเชนระบุว่า "หนักกว่า" ในทำนองเดียวกัน เราต้องจูงใจ validators ให้พยายามทำ แนะนำบล็อกที่มีน้ำหนักมากที่สุดที่พวกเขาหาได้ ซึ่งอาจเป็นได้ ทำโดยการแบ่งส่วนของรางวัลตามสัดส่วนน้ำหนักของผู้สมัคร เพื่อให้ผู้สมรู้ร่วมคิดได้รับความยุติธรรมอย่างสมเหตุสมผล โอกาสที่ผู้สมัครของพวกเขาจะถูกเลือกให้เป็นผู้ชนะ ผู้สมัครที่เป็นเอกฉันท์ เราจะกำหนดน้ำหนักเฉพาะของ a ตัวเลือกบล็อก parachain กำหนดฟังก์ชันสุ่มที่เชื่อมต่อกับแต่ละ collator เช่น การเอา การวัดระยะทาง XOR ระหว่างที่อยู่ของผู้เปรียบเทียบ และหมายเลขสุ่มเทียมที่ปลอดภัยด้วยการเข้ารหัส กำหนดไว้ใกล้กับจุดที่สร้างบล็อก (หรือที่เรียกว่า “ตั๋วที่ชนะ”) สิ่งนี้ให้แต่ละอย่างมีประสิทธิผล ผู้ประสานงาน (หรือโดยเฉพาะอย่างยิ่ง ที่อยู่ของผู้ประสานงานแต่ละคน) โอกาสสุ่มที่บล็อกผู้สมัครของพวกเขาจะ "ชนะ" มากกว่า อื่น ๆ ทั้งหมด เพื่อบรรเทาการโจมตีของ sybil ของผู้รวบรวมรายเดียว "การขุด" ที่อยู่ที่ใกล้กับตั๋วที่ชนะและด้วยเหตุนี้ เป็นรายการโปรดในแต่ละบล็อก เราจะเพิ่มความเฉื่อยให้กับที่อยู่ของผู้เปรียบเทียบ นี่อาจจะง่ายพอ ๆ กับการเรียกร้อง เพื่อให้มีจำนวนเงินพื้นฐานอยู่ในที่อยู่ มากขึ้น แนวทางที่หรูหราคือการชั่งน้ำหนักความใกล้ชิดกับ ตั๋วที่ชนะด้วยจำนวนเงินที่จอดอยู่ที่ ที่อยู่ที่เป็นปัญหา ในขณะที่การสร้างแบบจำลองยังไม่เสร็จสิ้น ค่อนข้างเป็นไปได้ที่กลไกนี้จะช่วยได้มาก ผู้มีส่วนได้ส่วนเสียรายย่อยเพื่อร่วมสมทบทุน 6.5.5. บล็อกน้ำหนักเกิน หากชุด validator ถูกบุกรุก พวกเขาอาจสร้างและเสนอบล็อกซึ่งแม้ว่า ถูกต้อง ใช้เวลาในการดำเนินการมากเกินไป และ ตรวจสอบ นี่เป็นปัญหาเนื่องจากกลุ่ม validator สามารถทำได้ สร้างบล็อกขึ้นมาอย่างสมเหตุสมผลซึ่งใช้เวลานานมากในการ ดำเนินการเว้นแต่ว่าข้อมูลบางอย่างจะทราบอยู่แล้วว่าอนุญาตให้มีทางลัดเช่น การแยกตัวประกอบขนาดใหญ่ สำคัญ หากผู้เปรียบเทียบรายเดียวทราบข้อมูลนั้นแล้ว พวกเขาจะมีข้อได้เปรียบที่ชัดเจนในการได้รับเป็นของตัวเอง ผู้สมัครยอมรับตราบเท่าที่คนอื่นกำลังยุ่งอยู่กับการประมวลผลบล็อกเก่า เราเรียกบล็อกเหล่านี้ว่ามีน้ำหนักเกิน การป้องกัน validators การส่งและตรวจสอบบล็อกเหล่านี้ส่วนใหญ่อยู่ภายใต้การปกปิดเช่นเดียวกับสำหรับ บล็อกที่ไม่ถูกต้อง แม้ว่าจะมีข้อแม้เพิ่มเติม: เนื่องจาก เวลาที่ใช้ในการดำเนินการบล็อก (และสถานะเป็น น้ำหนักเกิน) เป็นเรื่องส่วนตัว ซึ่งเป็นผลลัพธ์สุดท้ายของการลงคะแนนเสียง พฤติกรรมที่ไม่เหมาะสมจะตกเป็น 3 ค่ายหลัก หนึ่ง ความเป็นไปได้ก็คือบล็อกนั้นไม่มีน้ำหนักเกินแน่นอน— ในกรณีนี้มากกว่าสองในสามประกาศว่าทำได้ ดำเนินการบล็อกภายในขีดจำกัด (เช่น 50% ของเวลาทั้งหมดที่อนุญาตระหว่างบล็อก) อีกประการหนึ่งก็คือ บล็อกคือ dน้ำหนักเกินอย่างแน่นอน - นี่จะเป็นถ้ามากกว่านั้น สองในสามประกาศว่าพวกเขาไม่สามารถดำเนินการบล็อกได้ ภายในขอบเขตดังกล่าว ความเป็นไปได้สุดท้ายประการหนึ่งค่อนข้างจะเท่าเทียมกัน การแบ่งความคิดเห็นระหว่าง validators ในกรณีนี้เราก็ได้ เลือกทำโทษตามสมควร เพื่อให้แน่ใจว่า validators สามารถคาดการณ์ได้ว่าจะเกิดขึ้นเมื่อใด เสนอบล็อกที่มีน้ำหนักเกิน อาจสมเหตุสมผลที่จะกำหนดให้พวกเขาเผยแพร่ข้อมูลเกี่ยวกับประสิทธิภาพของตนเองสำหรับแต่ละบล็อก เป็นระยะเวลาพอสมควร สิ่งนี้ควรทำให้พวกเขาสามารถกำหนดโปรไฟล์ความเร็วในการประมวลผลได้ เมื่อเทียบกับคนรอบข้างที่จะตัดสินพวกเขา 6.5.6. ประกันสะสมทรัพย์. ยังคงมีประเด็นหนึ่งสำหรับ validators: ไม่เหมือนกับเครือข่าย PoW เพื่อตรวจสอบผู้ประสานงาน เพื่อความถูกต้อง พวกเขาจะต้องดำเนินการธุรกรรมในนั้นจริงๆ ผู้เปรียบเทียบที่เป็นอันตรายสามารถป้อนบล็อกที่ไม่ถูกต้องหรือมีน้ำหนักเกินให้กับ validators ทำให้เกิดความเศร้าโศก (สิ้นเปลือง ทรัพยากรของพวกเขา) และเรียกร้องค่าเสียโอกาสที่สำคัญที่อาจเกิดขึ้น เพื่อบรรเทาปัญหานี้ เราเสนอกลยุทธ์ง่ายๆ เกี่ยวกับ ส่วนหนึ่งของ validators ประการแรก ผู้สมัครบล็อกพาราเชนถูกส่งไป ถึง validators จะต้องลงนามจากบัญชีลูกโซ่รีเลย์ ด้วยเงินทุน หากไม่เป็นเช่นนั้น validator ควรจะลดลง มันทันที ประการที่สอง ผู้สมัครดังกล่าวควรได้รับลำดับความสำคัญโดยการรวมกัน (เช่น การคูณ) ของ จำนวนเงินในบัญชีถึงขีดจำกัดบางส่วน จำนวนบล็อกก่อนหน้านี้ที่ผู้เปรียบเทียบได้เสนอสำเร็จในอดีต (ไม่ต้องพูดถึงบล็อกใด ๆ ก่อนหน้านี้ การลงโทษ) และปัจจัยความใกล้ชิดต่อการชนะ ตั๋วตามที่กล่าวไว้ก่อนหน้านี้ หมวกควรจะเหมือนกัน เป็นค่าเสียหายเชิงลงโทษที่จ่ายให้กับ validator ในกรณีนี้ ของพวกเขาส่งบล็อกที่ไม่ถูกต้อง เพื่อไม่ให้ผู้เปรียบเทียบส่งผู้สมัครบล็อกที่ไม่ถูกต้องหรือมีน้ำหนักเกินไปที่ validators validator ใดๆ อาจ วางธุรกรรมในบล็อกถัดไป รวมถึงบล็อกที่สิ้นสุดโดยกล่าวหาว่ามีพฤติกรรมที่ไม่เหมาะสมซึ่งส่งผลให้มีการโอนเงินบางส่วนหรือทั้งหมดในผู้ค้ำประกันที่ประพฤติมิชอบ ขอแสดงความเสียใจต่อ validator ที่ได้รับความเดือดร้อน ธุรกรรมประเภทนี้จะดำเนินการล่วงหน้าเพื่อให้แน่ใจว่าผู้ประสานงานไม่สามารถทำได้ นำเงินออกก่อนที่จะมีการลงโทษ จำนวน เงินที่โอนเป็นค่าเสียหายยังเป็นพารามิเตอร์แบบไดนามิก
โพลคาดอท: วิสัยทัศน์สำหรับกรอบการทำงานแบบหลายห่วงโซ่ที่แตกต่างกัน ร่างที่ 1 14 ที่จะสร้างแบบจำลอง แต่น่าจะเป็นสัดส่วนของรางวัลบล็อก validator เพื่อสะท้อนระดับความเศร้าโศกที่เกิดขึ้น ถึง ป้องกันไม่ให้ validators ที่เป็นอันตรายยึดเงินของผู้ร่วมสมทบโดยพลการ ผู้เรียกเก็บเงินอาจอุทธรณ์คำตัดสินของ validator โดยมีคณะลูกขุนของ validators ที่ได้รับการสุ่มเลือกเป็นการตอบแทน เพื่อวางเงินมัดจำเล็กน้อย หากพวกเขาพบว่าเข้าข้าง validator เงินฝากนั้นก็จะถูกใช้ไปโดยพวกเขา ถ้าไม่เช่นนั้น เงินฝากจะถูกส่งคืนและ validator ถูกปรับ (เนื่องจาก validator อยู่ในตำแหน่งโค้งมากกว่ามาก ความปรารถนาดี คงจะค่อนข้างหนัก) 6.6. อินเตอร์เชน การทำธุรกรรม การกำหนดเส้นทาง อินเตอร์เชน การกำหนดเส้นทางธุรกรรมเป็นหนึ่งในการบำรุงรักษาที่สำคัญ งานของรีเลย์เชนและ validators นี่คือ ตรรกะที่ควบคุมว่าธุรกรรมที่ผ่านรายการ (มักเรียกสั้น ๆ ว่า "โพสต์") ได้รับจากการเป็นผลลัพธ์ที่ต้องการอย่างไร จาก parachain ต้นทางหนึ่งไปสู่การเป็นอินพุตที่ไม่สามารถต่อรองได้ของ parachain ปลายทางอื่นโดยปราศจากความเชื่อถือ ข้อกำหนด เราเลือกถ้อยคำข้างต้นอย่างระมัดระวัง สะดุดตาเรา ไม่จำเป็นต้องมีการทำธุรกรรมในแหล่งที่มา parachain เพื่ออนุมัติโพสต์นี้อย่างชัดเจน เท่านั้น ข้อจำกัดที่เราวางไว้กับโมเดลของเราก็คือพาราเชน ต้องจัดให้มีบรรจุเป็นส่วนหนึ่งของบล็อกโดยรวม การประมวลผลเอาต์พุต โพสต์ซึ่งเป็นผลลัพธ์ของ การดำเนินการของบล็อก โพสต์เหล่านี้มีโครงสร้างเป็นคิว FIFO หลายรายการ ที่ จำนวนรายการเรียกว่าฐานเส้นทางและอาจเป็น ประมาณ 16 ปี โดยเฉพาะอย่างยิ่งตัวเลขนี้แสดงถึงปริมาณ ของพาราเชนที่เราสามารถรองรับได้โดยไม่ต้องหันไปพึ่ง การกำหนดเส้นทางแบบหลายเฟส เริ่มแรก Polkadot จะสนับสนุนสิ่งนี้ ประเภทของการกำหนดเส้นทางโดยตรง อย่างไรก็ตาม เราจะสรุปเส้นทางที่เป็นไปได้ กระบวนการกำหนดเส้นทางแบบหลายเฟส (“ไฮเปอร์-เราต์ติ้ง”) เป็นวิธีการ ของการขยายขนาดให้เกินชุดพาราเชนเริ่มต้น เรา ถือว่า นั่น ทั้งหมด ผู้เข้าร่วม รู้ ที่ การจัดกลุ่มย่อยสำหรับสองบล็อกถัดไป n, n + 1 โดยสรุปคือ ระบบกำหนดเส้นทางเป็นไปตามขั้นตอนเหล่านี้: • CollatorS: ติดต่อสมาชิกของ V alidators[n][S] • CollatorS: สำหรับแต่ละกลุ่มย่อย: ตรวจสอบที่ มีสมาชิก V alidators[n][s] อย่างน้อย 1 คนติดต่อกัน • ผู้เรียกเก็บเงิน: สำหรับแต่ละกลุ่มย่อย: ถือว่า egress[n −1][s][S] พร้อมใช้งาน (โพสต์ที่เข้ามาทั้งหมด ข้อมูลเป็น 'S' จากบล็อกที่แล้ว) • ผู้เรียกเก็บเงิน: เขียนผู้สมัครบล็อก b สำหรับ S: (b.header, b.ext, b.proof, b.receipt, b.egress) • ผู้เรียกเก็บเงิน: ส่ง หลักฐาน ข้อมูล หลักฐาน[S] = (b.header, b.ext, b.proof, b.receipt) ถึง V alidators[n][S] • CollatorS: ตรวจสอบข้อมูลธุรกรรมภายนอก b.ext มีให้สำหรับผู้ทำงานร่วมกันคนอื่นๆ และ validators • ผู้เรียกเก็บเงิน: สำหรับ แต่ละ กลุ่มย่อย ส: ส่ง ทางออก ข้อมูล ทางออก[n][S][s] = (b.header, b.receipt, b.egress[s]) ถึง ที่ การรับ กลุ่มย่อย สมาชิก ของ ถัดไป บล็อก ตัวแก้ไข V[n + 1][s] • V alidatorV : เชื่อมต่อสมาชิกชุดเดียวกันทั้งหมดล่วงหน้า สำหรับบล็อกถัดไป: ให้ N = Chain[n + 1][V ]; เชื่อมต่อ ทั้งหมด validators v โดยที่ Chain[n + 1][v] = N • V alidatorV : เปรียบเทียบข้อมูลขาเข้าทั้งหมดสำหรับสิ่งนี้ บล็อก: สำหรับ แต่ละ กลุ่มย่อย ส: ดึงข้อมูล egress[n −1][s][Chain[n][V ]] รับจาก validators v อื่นๆ โดยที่ Chain[n][v] = Chain[n][V ] อาจจะผ่านการสุ่มเลือก validators อื่นๆ เพื่อพิสูจน์ความพยายาม • V alidatorV : ยอมรับหลักฐานของผู้สมัครสำหรับสิ่งนี้ บล็อกหลักฐาน [เชน [n] [V ]] ความถูกต้องของการบล็อกการลงคะแนนเสียง • V alidatorV : ยอมรับข้อมูลทางออกของผู้สมัครสำหรับ บล็อกถัดไป: สำหรับแต่ละกลุ่มย่อย ให้ยอมรับ ทางออก[n][s][N] ความพร้อมใช้งานของบล็อกการลงคะแนนเสียง เผยแพร่ซ้ำในหมู่ผู้สนใจ validators v เช่นนั้น เชน[n + 1][v] = เชน[n + 1][V ] • V alidatorV : จนกว่าจะมีมติ โดยที่: egress[n][from][to] คือคิวทางออกปัจจุบัน ข้อมูลสำหรับการโพสต์จาก parachain 'จาก' ถึง parachain 'ถึง' ในหมายเลขบล็อก 'n' CollatorS คือ collator สำหรับ parachain S. V alidators[n][s] คือเซตของ validators สำหรับ parachain s ที่บล็อกหมายเลข n ในทางกลับกัน Chain[n][v] คือ parachain ซึ่ง validator v ถูกกำหนดให้กับบล็อกหมายเลข n block.egress[to] คือทางออก คิวของโพสต์จากบล็อกบล็อกพาราเชนบางบล็อกที่มี ปลายทางคือพาราเชน เนื่องจากผู้เรียกเก็บเงินเก็บค่าธรรมเนียม (ธุรกรรม) ตาม บล็อกของพวกเขากลายเป็นมาตรฐานที่พวกเขาได้รับแรงจูงใจให้ทำ ตรวจสอบให้แน่ใจว่าสำหรับปลายทางบล็อกถัดไปแต่ละกลุ่มย่อย สมาชิกทราบถึงคิวขาออกจากปัจจุบัน บล็อก Validators จะได้รับแรงจูงใจเพียงเพื่อสร้างฉันทามติเกี่ยวกับบล็อก (parachain) เท่านั้น เนื่องจากพวกเขาไม่สนใจเกี่ยวกับเรื่องนี้มากนัก บล็อกของผู้เปรียบเทียบรายใดกลายเป็น Canonical ในที่สุด ใน โดยหลักการแล้ว validator สามารถสร้างความจงรักภักดีกับผู้สมรู้ร่วมคิดและสมรู้ร่วมคิดเพื่อลดโอกาสของผู้สมรู้ร่วมคิดคนอื่น ๆ การบล็อกกลายเป็นที่ยอมรับ อย่างไรก็ตาม นี่ก็เป็นเรื่องที่ยากทั้งคู่ ที่จะจัดให้เนื่องจากการสุ่มเลือกส่วนของ validators สำหรับ parachains และสามารถป้องกันได้ด้วยการลดค่าธรรมเนียมที่ต้องจ่ายสำหรับบล็อก parachain ที่เก็บไว้ กระบวนการฉันทามติ 6.6.1. ความพร้อมใช้งานของข้อมูลภายนอก มั่นใจของพาราเชน ข้อมูลภายนอกที่มีอยู่จริงเป็นปัญหาที่ยืนต้นด้วย ระบบกระจายอำนาจที่มีจุดมุ่งหมายเพื่อกระจายภาระงานไปทั่ว เครือข่าย หัวใจสำคัญของปัญหาคือความพร้อม ปัญหาที่ระบุว่าเนื่องจากเป็นไปไม่ได้ สร้างหลักฐานความพร้อมแบบไม่โต้ตอบหรือทุกประเภท ของการพิสูจน์ความไม่พร้อมใช้งาน เพื่อให้ระบบ BFT ทำงานได้อย่างถูกต้อง ตรวจสอบการเปลี่ยนแปลงใด ๆ ที่มีความถูกต้องขึ้นอยู่กับ ความพร้อมใช้งานของข้อมูลภายนอกบางส่วนจำนวนสูงสุด ของโหนดไบแซนไทน์ที่ยอมรับได้ บวกหนึ่งโหนดของระบบ จะต้องยืนยันถึงข้อมูลที่มีอยู่ เพื่อให้ระบบขยายขนาดอย่างเหมาะสม เช่น Polkadot สิ่งนี้ เชิญชวนให้เกิดปัญหา: ถ้าสัดส่วนคงที่ของ validators จะต้องยืนยันถึงความมีอยู่ของข้อมูลและสมมติ ว่า validators ต้องการจัดเก็บข้อมูลจริงก่อนที่จะยืนยันว่าข้อมูลนั้นพร้อมใช้งาน แล้วเราจะหลีกเลี่ยงได้อย่างไร ปัญหาความต้องการแบนด์วิธ/พื้นที่เก็บข้อมูลที่เพิ่มขึ้นตามขนาดระบบ (และจำนวน validators) คำตอบหนึ่งที่เป็นไปได้คือต้องมีชุดแยกต่างหาก ของ validators (ผู้ค้ำประกันความพร้อมจำหน่าย) ซึ่งมีคำสั่งซื้อเพิ่มขึ้น ใต้เชิงเส้นด้วยขนาด Polkadot โดยรวม นี่คือ อธิบายไว้ใน 6.5.3 เราก็มีเคล็ดลับรองเช่นกัน ในฐานะกลุ่ม ผู้เปรียบเทียบมีแรงจูงใจที่แท้จริงเพื่อให้แน่ใจว่าข้อมูลทั้งหมดนั้นถูกต้อง มีให้สำหรับพาราเชนที่พวกเขาเลือกเนื่องจากไม่มีมัน ไม่สามารถเขียนบล็อกเพิ่มเติมจากที่สามารถทำได้ เก็บค่าธรรมเนียมการทำธุรกรรม ผู้รวบรวมยังจัดตั้งกลุ่มขึ้นมา ซึ่งสมาชิกมีความหลากหลาย (เนื่องจากลักษณะการสุ่มของ parachain validator กลุ่ม) ไม่สำคัญที่จะเข้าและง่าย
โพลคาดอท: วิสัยทัศน์สำหรับกรอบการทำงานแบบหลายห่วงโซ่ที่แตกต่างกัน ร่างที่ 1 15 เพื่อพิสูจน์ ผู้เปรียบเทียบล่าสุด (อาจเป็นสองสามพันบล็อกสุดท้าย) จึงได้รับอนุญาตให้ออกข้อท้าทายได้ ความพร้อมใช้งานของข้อมูลภายนอกสำหรับพาราเชนเฉพาะ บล็อกไปที่ validators เพื่อความสัมพันธ์เล็กๆ น้อยๆ ผู้ตรวจสอบจะต้องติดต่อผู้ที่มาจากกลุ่มย่อย validator ที่เห็นได้ชัดว่าละเมิด ซึ่งเป็นผู้ให้การเป็นพยานและรับและส่งคืนข้อมูลไปยังผู้เปรียบเทียบหรือยกระดับ สำคัญโดยการให้การเป็นพยานถึงการขาดความพร้อมใช้งาน (การปฏิเสธโดยตรงที่จะให้ข้อมูลถือเป็นความผิดในการผูกมัด ดังนั้นพฤติกรรมที่ไม่เหมาะสม validator มีแนวโน้มเพียง ยกเลิกการเชื่อมต่อ) และติดต่อ validators เพิ่มเติม เพื่อทำการทดสอบเดียวกัน ในกรณีหลังคือพันธบัตรของผู้ค้ำประกัน จะถูกส่งกลับ เมื่อถึงโควรัมของ validators ที่สามารถสร้างคำรับรองที่ไม่พร้อมใช้งานดังกล่าวได้ครบแล้ว พวกเขาก็จะได้รับการเผยแพร่ กลุ่มย่อยที่ประพฤติตัวไม่เหมาะสมจะถูกลงโทษ และบล็อกจะถูกเปลี่ยนกลับ 6.6.2. การกำหนดเส้นทางโพสต์ ส่วนหัวของ Parachain แต่ละอันประกอบด้วย ทางออก-ไตร-รูท; นี่คือรากของไตรที่มี bins ฐานเส้นทาง แต่ละ bin เป็นรายการที่ต่อกัน ของโพสต์ทางออก อาจมีการเตรียมหลักฐาน Merkle ไว้ทั่ว parachain validators เพื่อพิสูจน์ว่า parachain โดยเฉพาะ block มีคิวทางออกเฉพาะสำหรับ parachain ปลายทางเฉพาะ ที่จุดเริ่มต้นของการประมวลผลบล็อกพาราเชนแต่ละอัน คิวทางออกของ parachain อื่นที่ถูกผูกไว้กับบล็อกดังกล่าวคือ รวมเข้ากับคิวทางเข้าของบล็อกของเรา เราถือว่าแข็งแกร่ง อาจเป็น CSPR9 ซึ่งเป็นคำสั่งย่อยเพื่อให้บรรลุการดำเนินการตามที่กำหนดซึ่งไม่มีการเล่นพรรคเล่นพวกระหว่างกัน การจับคู่บล็อกพาราเชน ผู้รวบรวมคำนวณคิวใหม่ และระบายคิวทางออกตามพาราเชน ตรรกะ เนื้อหาของคิวทางเข้าถูกเขียนอย่างชัดเจน เข้าไปในบล็อกพาราเชน สิ่งนี้มีจุดประสงค์หลักสองประการ: ประการแรก หมายความว่าพาราเชนสามารถซิงโครไนซ์ได้อย่างน่าเชื่อถือโดยแยกออกจากพาราเชนอื่นๆ ประการที่สอง มันทำให้การขนส่งข้อมูลง่ายขึ้นหากทางเข้าทั้งหมด คิวไม่สามารถประมวลผลได้ในบล็อกเดียว validators และผู้ทำงานร่วมกันสามารถประมวลผลบล็อกต่อไปนี้ได้ โดยไม่ต้องสืบค้นข้อมูลคิวเป็นพิเศษ หากคิวทางเข้าของ Parachain อยู่เหนือเกณฑ์ จำนวนเงินเมื่อสิ้นสุดการประมวลผลบล็อก จากนั้นจะมีการทำเครื่องหมายไว้ อิ่มตัวบนรีเลย์เชนและไม่สามารถส่งข้อความเพิ่มเติมได้ จัดส่งไปให้จนกว่าจะเคลียร์ได้ หลักฐานจาก Merkle คือ ใช้เพื่อแสดงให้เห็นถึงความเที่ยงตรงในการปฏิบัติงานของผู้ประสานงานใน หลักฐานของบล็อกพาราเชน 6.6.3. วิจารณ์. ข้อบกพร่องเล็กๆ น้อยๆ ประการหนึ่งที่เกี่ยวข้องกับพื้นฐานนี้ กลไกคือการโจมตีหลังระเบิด นี่คือที่ทั้งหมด parachains ส่งจำนวนโพสต์สูงสุดที่เป็นไปได้ ไปยังพาราเชนโดยเฉพาะ ขณะนี้สิ่งนี้เชื่อมโยงเป้าหมายไว้ เข้าคิวพร้อมกัน ไม่มีความเสียหายเกิดขึ้นซ้ำแล้วซ้ำอีก การโจมตี DoS ธุรกรรมมาตรฐาน ใช้งานได้ปกติพร้อมชุดซิงโครไนซ์อย่างดีและ ผู้เปรียบเทียบที่ไม่เป็นอันตรายและ validators สำหรับ N parachains เรารวม N × M validators และ L collators ต่อพาราเชน สามารถแบ่งเส้นทางข้อมูลทั้งหมดต่อบล็อกเป็น: เครื่องมือตรวจสอบความถูกต้อง: M −1+L+L: M −1 สำหรับอีก validators ในชุดพาราเชน L สำหรับแต่ละคอลเลเตอร์จะมีบล็อกพาราเชนให้เลือก และ L ตัวที่สองสำหรับแต่ละคอลเลเตอร์ ของบล็อกถัดไปที่ต้องการเพย์โหลดทางออกของบล็อกก่อนหน้า (อันหลังนี้เป็นเหมือนกรณีที่เลวร้ายที่สุดมากกว่า การดำเนินการเนื่องจากมีแนวโน้มว่าผู้เรียกเก็บเงินจะแบ่งปันข้อมูลดังกล่าว ข้อมูล) Collator: M +kN: M สำหรับการเชื่อมต่อไปยังแต่ละที่เกี่ยวข้อง บล็อก parachain validator, kN สำหรับการเพาะ payloads ทางออกไปยังชุดย่อยบางส่วนของ parachain แต่ละกลุ่ม validator กลุ่มสำหรับ บล็อกถัดไป (และอาจมีผู้เปรียบเทียบบางคนที่ชื่นชอบ) ดังนั้นเส้นทางข้อมูลต่อโหนดจึงเติบโตเป็นเส้นตรง ด้วยความซับซ้อนโดยรวมของระบบ ขณะนี้เป็น สมเหตุสมผล เนื่องจากระบบขยายเป็น parachains นับร้อยหรือหลายพัน ความล่าช้าในการสื่อสารบางอย่างอาจมีอยู่ ดูดซึมเพื่อแลกกับอัตราการเติบโตของความซับซ้อนที่ลดลง ในกรณีนี้ อาจใช้อัลกอริธึมการกำหนดเส้นทางแบบหลายเฟส เพื่อลดจำนวนเส้นทางทันที โดยเสียค่าใช้จ่ายในการแนะนำบัฟเฟอร์การจัดเก็บข้อมูลและเวลาแฝง 6.6.4. การกำหนดเส้นทางไฮเปอร์คิวบ์ การกำหนดเส้นทางไฮเปอร์คิวบ์เป็นกลไกที่ส่วนใหญ่สามารถสร้างเป็นส่วนขยายของ กลไกการกำหนดเส้นทางพื้นฐานที่อธิบายไว้ข้างต้น โดยพื้นฐานแล้ว แทนที่จะเพิ่มการเชื่อมต่อโหนดด้วยจำนวนพาราเชนและโหนดกลุ่มย่อย เราจะเติบโตด้วยเท่านั้น ลอการิทึมของพาราเชน กระทู้อาจมีการส่งต่อระหว่าง การต่อคิวของพาราเชนหลายตัวระหว่างทางเพื่อส่งมอบขั้นสุดท้าย การกำหนดเส้นทางนั้นถูกกำหนดไว้และเรียบง่าย เราเริ่มต้นด้วย การจำกัดจำนวนถังขยะในคิวเข้า/ออก แทนที่จะเป็นจำนวนพาราเชนทั้งหมด เป็นฐานเส้นทาง (b) . โดยจะกำหนดเป็นตัวเลข ของการเปลี่ยนแปลง parachains โดยที่เลขชี้กำลังการกำหนดเส้นทาง (e) จะถูกยกขึ้นแทน ภายใต้โมเดลนี้ ปริมาณข้อความของเรา เติบโตไปพร้อมกับ O(be) โดยวิถีทางยังคงไม่เปลี่ยนแปลง และเวลาแฝง (หรือจำนวนบล็อกที่จำเป็นสำหรับการจัดส่ง) ด้วย O(อี) โมเดลการกำหนดเส้นทางของเราคือไฮเปอร์คิวบ์ของมิติ e โดยแต่ละด้านของลูกบาศก์มีตำแหน่งที่เป็นไปได้ b แต่ละบล็อก เรากำหนดเส้นทางข้อความตามแกนเดียว เรา สลับแกนในลักษณะวนรอบ จึงรับประกันเวลาการส่งมอบในกรณีที่เลวร้ายที่สุดของบล็อก e เป็นส่วนหนึ่งของการประมวลผลพาราเชนที่ถูกผูกไว้จากต่างประเทศ ข้อความที่พบในคิวขาเข้าจะถูกส่งไปยังถังขยะของคิวขาออกที่เหมาะสมทันที โดยกำหนดให้ หมายเลขบล็อกปัจจุบัน (และมิติการกำหนดเส้นทาง) นี้ กระบวนการจำเป็นต้องมีการถ่ายโอนข้อมูลเพิ่มเติมสำหรับการกระโดดแต่ละครั้ง บนเส้นทางการจัดส่ง อย่างไรก็ตาม นี่เป็นปัญหาในตัวมันเอง ซึ่งอาจบรรเทาลงได้โดยใช้วิธีอื่น ของการจัดส่งเพย์โหลดข้อมูลและรวมถึงการอ้างอิงเท่านั้น แทนที่จะเป็นเพย์โหลดเต็มของโพสต์ในโพสต์ทรี ตัวอย่างของการกำหนดเส้นทางไฮเปอร์คิวบ์สำหรับระบบ ด้วย 4 parachains b = 2 และ e = 2 อาจเป็น: เฟส 0 ในแต่ละข้อความ M: • sub0: ถ้า Mdest ∈{2, 3} ให้ sendTo(2) อย่างอื่นเก็บไว้ • sub1: ถ้า Mdest ∈{2, 3} ให้ sendTo(3) อย่างอื่นเก็บไว้ • sub2: ถ้า Mdest ∈{0, 1} ให้ sendTo(0) อย่างอื่นเก็บไว้ • sub3: ถ้า Mdest ∈{0, 1} ให้ sendTo(1) อย่างอื่นเก็บไว้ ระยะที่ 1 ในแต่ละข้อความ M: • sub0: ถ้า Mdest ∈{1, 3} ให้ sendTo(1) อย่างอื่นเก็บไว้ • sub1: ถ้า Mdest ∈{0, 2} ให้ sendTo(0) อย่างอื่นเก็บไว้ • sub2: ถ้า Mdest ∈{1, 3} ให้ sendTo(3) อย่างอื่นเก็บไว้ • sub3: ถ้า Mdest ∈{0, 2} ให้ sendTo(2) อย่างอื่นเก็บไว้ มิติทั้งสองนี้มองเห็นได้ง่ายเป็นอันดับแรก ดัชนีปลายทางสองบิต สำหรับบล็อกแรกนั้น ใช้บิตลำดับที่สูงกว่าเพียงอย่างเดียว ข้อเสนอบล็อกที่สอง ด้วยบิตลำดับต่ำ เมื่อทั้งสองเกิดขึ้น (โดยพลการ สั่งซื้อ) จากนั้นโพสต์จะถูกส่งไป 9 การสุ่มหลอกที่ปลอดภัยด้วยการเข้ารหัส
โพลคาดอท: วิสัยทัศน์สำหรับกรอบการทำงานแบบหลายห่วงโซ่ที่แตกต่างกัน ร่างที่ 1 16 6.6.5. เพิ่ม Serendipity ให้สูงสุด การเปลี่ยนแปลงขั้นพื้นฐานอย่างหนึ่ง ข้อเสนอจะเห็นจำนวนรวมคงที่ของ c2 −c validators ด้วย c−1 validators ในแต่ละกลุ่มย่อย แต่ละบล็อกมากกว่า มีการแบ่งพาร์ติชันใหม่แบบไม่มีโครงสร้างของ validators ในหมู่พาราเชน แทนที่จะเป็นกลุ่มย่อยพาราเชนแต่ละกลุ่ม validator แต่ละรายการจะได้รับการกำหนดให้มีเอกลักษณ์และแตกต่าง กลุ่มย่อย parachain ในบล็อกต่อไปนี้ นี้จะ นำไปสู่ค่าคงที่ระหว่างสองช่วงตึกใดๆ สำหรับค่าใดๆ ก็ตาม Parachain สองคู่ มี validators สองอันอยู่ ได้สลับความรับผิดชอบของ Parachain แม้ว่าสิ่งนี้จะไม่สามารถใช้เพื่อรับประกันความพร้อมใช้งานได้อย่างสมบูรณ์ (validator ตัวเดียวจะดรอป ofine เป็นครั้งคราว แม้ว่า เมตตากรุณา) แต่ก็สามารถเพิ่มประสิทธิภาพกรณีทั่วไปได้ แนวทางนี้ไม่ได้ปราศจากภาวะแทรกซ้อน การเพิ่มพาราเชนก็จำเป็นต้องมีการปรับโครงสร้างองค์กรใหม่ด้วย ของชุด validator นอกจากนี้จำนวนของ validators ซึ่งเชื่อมโยงกับกำลังสองของจำนวน parachains เริ่มจากเล็กๆ น้อยๆ และเติบโตไปไกลในที่สุด เร็วเกินไป จนไม่สามารถป้องกันได้หลังจากใช้พาราเชนไปประมาณ 50 อัน สิ่งเหล่านี้ไม่ใช่ปัญหาพื้นฐาน ในกรณีแรก การจัดระเบียบชุด validator ใหม่เป็นสิ่งที่ต้องมี ทำเป็นประจำอยู่แล้ว เกี่ยวกับขนาดของ validator ตั้งค่า เมื่อเล็กเกินไป อาจกำหนด validator หลายรายการได้ ไปยังพาราเชนเดียวกัน โดยใช้ตัวประกอบจำนวนเต็มกับ รวมทั้งหมด validators กลไกการกำหนดเส้นทางแบบหลายเฟส เช่น Hypercube Routing ที่จะกล่าวถึงใน 6.6.4 บรรเทาความต้องการสำหรับ validators จำนวนมาก เมื่อมีโซ่จำนวนมาก 6.7. การตรวจสอบ Parachain วัตถุประสงค์หลักของ validator คือการเป็นพยานในฐานะนักแสดงที่มีความผูกพันกันเป็นอย่างดีว่าเป็นนักพาราเชน การบล็อกนั้นถูกต้อง รวมถึงแต่ไม่จำกัดเพียงการเปลี่ยนแปลงสถานะ ธุรกรรมภายนอกใดๆ ที่รวมอยู่ด้วย การดำเนินการของ โพสต์ที่รออยู่ในคิวทางเข้าและสถานะสุดท้าย ของคิวขาออก กระบวนการนี้ค่อนข้างง่าย เมื่อ validator ปิดผนึกบล็อกก่อนหน้า พวกเขาจะเป็นอิสระ เพื่อเริ่มทำงานเพื่อจัดหาบล็อกพาราเชนที่เหมาะสม ผู้สมัครรับฉันทามติรอบต่อไป เริ่มแรก validator ค้นหาตัวเลือกบล็อกพาราเชนผ่านตัวเชื่อมโยงพาราเชน (อธิบายต่อไป) หรือหนึ่งรายการ ของ co-validators ของมัน ข้อมูลผู้สมัครบล็อกพาราเชน รวมถึงส่วนหัวของบล็อก ส่วนหัวของบล็อกก่อนหน้า ข้อมูลอินพุตภายนอกใดๆ ที่รวมอยู่ (สำหรับ Ethereum และ Bitcoin ข้อมูลดังกล่าวจะเรียกว่าธุรกรรม อย่างไรก็ตาม โดยหลักการแล้วอาจรวมถึงโครงสร้างข้อมูลที่กำหนดเองเพื่อวัตถุประสงค์ที่กำหนดเอง) ข้อมูลคิวขาออก และข้อมูลภายในเพื่อพิสูจน์ความถูกต้องของการเปลี่ยนแปลงสถานะ (สำหรับ Ethereum นี่จะเป็นโหนด Trie สถานะ/หน่วยเก็บข้อมูลต่างๆ ที่จำเป็นในการดำเนินการแต่ละธุรกรรม) หลักฐานการทดลองแสดงชุดข้อมูลแบบเต็มสำหรับบล็อก Ethereum ล่าสุด สูงสุดไม่กี่ร้อย KiB พร้อมกันหากยังไม่ได้ดำเนินการ validator จะเป็น พยายามดึงข้อมูลที่เกี่ยวข้องกับการเปลี่ยนแปลงของบล็อกก่อนหน้า โดยเริ่มจากบล็อกก่อนหน้า validators และหลังจากนั้นจากการลงนามของ validators ทั้งหมด ความพร้อมใช้งานของข้อมูล เมื่อ validator ได้รับการบล็อกผู้สมัครดังกล่าวแล้ว จากนั้นพวกเขาจะตรวจสอบภายในเครื่อง กระบวนการตรวจสอบความถูกต้องมีอยู่ภายในโมดูล validator ของคลาส parachain ก โมดูลซอฟต์แวร์ที่มีความละเอียดอ่อนที่ต้องเขียน สำหรับการดำเนินการใด ๆ ของ Polkadot (แม้ว่าโดยหลักการแล้ว ไลบรารีที่มี C ABI สามารถเปิดใช้งานไลบรารีเดียวได้ ร่วมกันระหว่างการนำไปปฏิบัติด้วยความเหมาะสม ความปลอดภัยที่ลดลงจากการมีการดำเนินการ "อ้างอิง" เพียงรายการเดียว) กระบวนการนี้ใช้ส่วนหัวของบล็อกก่อนหน้าและยืนยันตัวตนผ่านรีเลย์เชนที่ตกลงกันเมื่อเร็ว ๆ นี้ บล็อกที่ควรบันทึก hash เมื่อตรวจสอบความถูกต้องของส่วนหัวพาเรนต์แล้ว Parachain ที่เฉพาะเจาะจง ฟังก์ชันการตรวจสอบความถูกต้องของคลาสอาจถูกเรียก นี่เป็นฟังก์ชันเดียวที่ยอมรับช่องข้อมูลจำนวนหนึ่ง (ประมาณ ที่ให้ไว้ก่อนหน้านี้) และส่งคืนบูลีนแบบง่าย ประกาศความถูกต้องของบล็อก ฟังก์ชั่นการตรวจสอบความถูกต้องส่วนใหญ่จะตรวจสอบก่อน ฟิลด์ส่วนหัวซึ่งสามารถได้รับโดยตรงจาก บล็อกหลัก (เช่น parent hash, number) กำลังติดตาม สิ่งนี้จะเติมโครงสร้างข้อมูลภายในใด ๆ เช่น จำเป็นในการประมวลผลธุรกรรมและ/หรือโพสต์ สำหรับห่วงโซ่ที่มีลักษณะคล้าย Ethereum จำนวนนี้คือการเติม a ลองใช้ฐานข้อมูลพร้อมโหนดที่จำเป็นสำหรับ การทำธุรกรรมเต็มรูปแบบ โซ่ประเภทอื่นอาจมี หน้าอื่น ๆกลไกการชดใช้ เมื่อเสร็จแล้ว โพสต์ทางเข้าและธุรกรรมภายนอก (หรืออะไรก็ตามที่เป็นตัวแทนข้อมูลภายนอก) จะเป็นเช่นนั้น ตราขึ้นและสมดุลตามข้อกำหนดของโซ่ (ก ค่าเริ่มต้นที่สมเหตุสมผลอาจต้องกำหนดให้มีการโพสต์ทางเข้าทั้งหมด ประมวลผลก่อนที่จะให้บริการธุรกรรมภายนอก อย่างไรก็ตาม สิ่งนี้ควรเป็นไปตามตรรกะของ Parachain ในการตัดสินใจ) ด้วยการตรากฎหมายนี้ จะมีชุดโพสต์ทางออก สร้างขึ้นและจะได้รับการยืนยันว่าสิ่งเหล่านี้ตรงกันจริงๆ ผู้สมัครของผู้สมรู้ร่วมคิด ในที่สุดก็มีประชากรอย่างเหมาะสม ส่วนหัวจะถูกตรวจสอบกับส่วนหัวของผู้สมัคร ด้วยบล็อกผู้สมัครที่ได้รับการตรวจสอบความถูกต้องครบถ้วน validator จากนั้นสามารถลงคะแนนให้ hash ของส่วนหัวและส่งข้อมูลการตรวจสอบที่จำเป็นทั้งหมดไปยัง co-validators ในกลุ่มย่อย 6.7.1. เครื่องสะสมพาราเชน Parachain collators คือผู้ปฏิบัติงานที่ไม่มีพันธะผูกพัน ซึ่งทำหน้าที่ส่วนใหญ่ของนักขุด บนเครือข่าย blockchain ในปัจจุบัน พวกมันมีความเฉพาะเจาะจง ไปยังพาราเชนโดยเฉพาะ เพื่อที่จะดำเนินการพวกเขาจะต้อง รักษาทั้งรีเลย์-เชนและซิงโครไนซ์อย่างเต็มที่ พาราเชน ความหมายที่ชัดเจนของ "การซิงโครไนซ์อย่างเต็มที่" จะขึ้นอยู่กับคลาสของ parachain แม้ว่าจะรวมถึงสถานะปัจจุบันของคิวทางเข้าของ parachain ก็ตาม ในกรณีของ Ethereum อย่างน้อยก็เกี่ยวข้องกับการบำรุงรักษาด้วย ฐานข้อมูล Merkle-tree ของสองสามช่วงตึกสุดท้าย แต่อาจ รวมถึงโครงสร้างข้อมูลอื่นๆ มากมาย รวมถึง Bloom ตัวกรองสำหรับการมีอยู่ของบัญชี ข้อมูลครอบครัว การบันทึก เอาต์พุตและตารางการค้นหาแบบย้อนกลับสำหรับหมายเลขบล็อก นอกจากจะทำให้โซ่ทั้งสองประสานกันแล้ว ต้อง "จับปลา" สำหรับธุรกรรมด้วยการรักษาคิวธุรกรรมและยอมรับธุรกรรมที่ได้รับการตรวจสอบอย่างถูกต้อง จากเครือข่ายสาธารณะ ด้วยคิวและห่วงโซ่มันคือ สามารถสร้างบล็อกผู้สมัครใหม่สำหรับ validators ที่เลือกในแต่ละบล็อก (ซึ่งทราบข้อมูลประจำตัวเนื่องจากรีเลย์เชนซิงโครไนซ์) และส่งบล็อกเหล่านั้นพร้อมกับ ข้อมูลเสริมต่างๆ เช่น หลักฐานความถูกต้อง ผ่านทาง เครือข่ายเพียร์ สำหรับปัญหาดังกล่าว ระบบจะเก็บค่าธรรมเนียมทั้งหมดที่เกี่ยวข้องกับธุรกรรมที่รวมไว้ เศรษฐศาสตร์ต่างๆ หมุนเวียนไปรอบ ๆ นี้ การจัดการ ในตลาดที่มีการแข่งขันสูงนั่นเอง เป็นส่วนเกินของผู้ค้ำประกันก็เป็นไปได้ว่าการทำธุรกรรม จะมีการแชร์ค่าธรรมเนียมกับ parachain validators เพื่อสร้างแรงจูงใจ การรวมบล็อกของผู้ประสานงานโดยเฉพาะ ในทำนองเดียวกัน
โพลคาดอท: วิสัยทัศน์สำหรับกรอบการทำงานแบบหลายห่วงโซ่ที่แตกต่างกัน ร่างที่ 1 17 ผู้เรียกเก็บเงินบางรายอาจเพิ่มค่าธรรมเนียมที่จำเป็นด้วยซ้ำ จะต้องชำระเพื่อทำให้บล็อกน่าสนใจยิ่งขึ้น validatorส. ในกรณีนี้ ตลาดธรรมชาติควรก่อตัวขึ้น ด้วยการทำธุรกรรมที่จ่ายค่าธรรมเนียมสูงกว่าการข้ามคิว และรวมเข้าเป็นลูกโซ่ได้เร็วขึ้น 6.8. เครือข่าย. การสร้างเครือข่ายบน blockchains แบบดั้งเดิม เช่น Ethereum และ Bitcoin มีข้อกำหนดที่ค่อนข้างง่าย ธุรกรรมและบล็อกทั้งหมดถูกถ่ายทอดในรูปแบบซุบซิบที่ไม่มีทิศทาง การซิงโครไนซ์มีส่วนเกี่ยวข้องมากกว่าโดยเฉพาะ ด้วย Ethereum แต่ในความเป็นจริงแล้วตรรกะนี้มีอยู่ใน กลยุทธ์เพียร์มากกว่าโปรโตคอลเองซึ่งแก้ไขได้กับข้อความคำขอและคำตอบบางประเภท ในขณะที่ Ethereum มีความคืบหน้าในการนำเสนอโปรโตคอลปัจจุบันด้วยโปรโตคอล devp2p ซึ่งอนุญาตสำหรับหลาย ๆ คน โปรโตคอลย่อยที่จะมัลติเพล็กซ์ผ่านการเชื่อมต่อแบบเพียร์เดียว จึงมีเพียร์โอเวอร์เลย์เดียวกันที่รองรับหลาย ๆ ตัว โปรโตคอล p2p พร้อมกัน ส่วน Ethereum ของ โปรโตคอลยังคงค่อนข้างง่ายและ p2p โปรโตคอลในขณะที่ยังไม่เสร็จสิ้นกับความสำคัญ ฟังก์ชันการทำงานที่ขาดหายไป เช่น การสนับสนุน QoS น่าเศร้าที่ความปรารถนาที่จะสร้างโปรโตคอล “web 3” ที่แพร่หลายมากขึ้นเป็นส่วนใหญ่ ล้มเหลว โดยมีเพียงโครงการเดียวที่ใช้โครงการนี้อย่างชัดเจน ได้รับทุนจากการขายฝูงชน Ethereum ข้อกำหนดสำหรับ Polkadot ค่อนข้างสำคัญกว่า แทนที่จะเป็นเครือข่ายที่เหมือนกันทั้งหมด Polkadot มีผู้เข้าร่วมหลายประเภท โดยแต่ละประเภทมีข้อกำหนดที่แตกต่างกันตามรูปแบบเพื่อนและเครือข่ายที่หลากหลาย “ช่องทาง” ที่ผู้เข้าร่วมมักจะพูดคุยถึง ข้อมูลเฉพาะ นี่หมายถึงการซ้อนทับเครือข่ายที่มีโครงสร้างมากขึ้นอย่างมาก—และโปรโตคอลที่รองรับ— คงจะจำเป็น นอกจากนี้ ความสามารถในการขยายเพื่อรองรับการเพิ่มในอนาคต เช่น "ลูกโซ่" รูปแบบใหม่อาจเกิดขึ้น เองจำเป็นต้องมีโครงสร้างการซ้อนทับแบบใหม่ ขณะที่การอภิปรายเชิงลึกเกี่ยวกับวิธีการสร้างเครือข่าย โปรโตคอลอาจดูอยู่นอกขอบเขตของเอกสารนี้ การวิเคราะห์ข้อกำหนดบางอย่างมีความสมเหตุสมผล เราทำได้ โดยคร่าวๆ แบ่งผู้เข้าร่วมเครือข่ายของเราออกเป็นสองชุด (รีเลย์-เชน, พาราเชน) แต่ละชุดย่อยทั้งสามชุด เราทำได้ ยังระบุด้วยว่าผู้เข้าร่วมพาราเชนแต่ละคนเป็นเพียงเท่านั้น สนใจที่จะพูดคุยระหว่างกันเองแทนที่จะเป็นฝ่ายตรงข้าม ผู้เข้าร่วมใน parachachas อื่น: • ผู้เข้าร่วมรีเลย์เชน: • ผู้ตรวจสอบความถูกต้อง: P แบ่งออกเป็นเซตย่อย P[s] สำหรับแต่ละเซต พาราเชน • ผู้รับประกันความพร้อมใช้งาน: A (ซึ่งอาจแสดงโดยผู้ตรวจสอบความถูกต้องในรูปแบบพื้นฐานของโปรโตคอล) • ไคลเอนต์รีเลย์เชน: M (หมายเหตุ สมาชิกแต่ละคน. ชุดพาราเชนก็มีแนวโน้มที่จะเป็นสมาชิกของ M ด้วย) • ผู้เข้าร่วมพาราเชน: • ตัวประสานพาราเชน: C[0], C[1], . . . • ชาวประมงพาราเชน: F[0], F[1], . . • ไคลเอนต์ Parachain: S[0], S[1], . . . • Parachain light-client: L[0], L[1], . . . โดยทั่วไปเราจะตั้งชื่อคลาสของการสื่อสารโดยเฉพาะ มักจะเกิดขึ้นระหว่างสมาชิกของชุดเหล่านี้: • พี | ก <-> ป | ตอบ: ที่ เต็ม ชุด ของ validators/ผู้ค้ำประกัน ต้อง เป็น เชื่อมต่อกันดี ถึง บรรลุฉันทามติ • P[s] <-> C[s] | P[s]: validator แต่ละคนในฐานะสมาชิกของกลุ่ม parachain ที่กำหนดจะมีแนวโน้มที่จะนินทา กับสมาชิกคนอื่นๆ และผู้ร่วมงานด้วย ของพาราเชนนั้นเพื่อค้นหาและแบ่งปันตัวเลือกบล็อก • A <-> P[s] | ซี | ตอบ: ผู้รับประกันความพร้อมในการให้บริการแต่ละราย จะต้องรวบรวม cross-chain ที่ไวต่อฉันทามติ ข้อมูลจาก validators ที่ได้รับมอบหมาย; ผู้ประสานงาน อาจเพิ่มโอกาสในการได้รับฉันทามติด้วย บล็อกโดยการโฆษณากับผู้รับประกันความพร้อม เมื่อได้รับแล้วข้อมูลจะถูกจ่ายไป ผู้ค้ำประกันรายอื่นเพื่ออำนวยความสะดวกในการตกลงกัน • P[s] <-> A | P[s']: Parachain validators จะ จำเป็นต้องรวบรวมข้อมูลอินพุตเพิ่มเติมจากชุดก่อนหน้าของ validators หรือผู้รับประกันความพร้อมใช้งาน • F[s] <-> P: เมื่อรายงาน ชาวประมงอาจส่ง การเรียกร้องกับผู้เข้าร่วมคนใด ๆ • ม <-> ม | ป | ตอบ: ไคลเอนต์รีเลย์เชนทั่วไปจะจ่ายข้อมูลจาก validators และผู้ค้ำประกัน • ส[s] <-> ส[s] | ป[s] | ตอบ: ไคลเอนต์ Parachain กระจายข้อมูลจาก validator/guarantors • L[s] <-> L[s] | S[s]: ไคลเอนต์ Parachain light เบิกจ่ายข้อมูลจากลูกค้าเต็มจำนวน เพื่อให้มั่นใจว่ากลไกการขนส่งมีประสิทธิภาพ “แฟลต” เครือข่ายซ้อนทับ - เช่น devp2p ของ Ethereum โดยที่แต่ละอัน โหนดไม่ (โดยพลการ) ไม่แยกแยะความเหมาะสมของมัน เพื่อนร่วมงานไม่น่าจะเหมาะสม ขยายออกได้พอสมควร กลไกการคัดเลือกและการค้นพบเพื่อนน่าจะจำเป็น ให้รวมอยู่ในระเบียบการและเชิงรุกด้วย การวางแผนมองล่วงหน้าเพื่อให้แน่ใจว่ามีเพื่อนที่เหมาะสม เป็นคอนเน็ก "โดยบังเอิญ"ในเวลาที่เหมาะสม กลยุทธ์ที่ชัดเจนในการคัดเลือกผู้ร่วมงานจะแตกต่างกันสำหรับผู้เข้าร่วมแต่ละชั้นเรียน: เพื่อการปรับขนาดที่เหมาะสม multi-chain ผู้ทำงานร่วมกันจะต้องดำเนินการอย่างต่อเนื่อง เชื่อมต่อกับ validators ที่ได้รับการเลือกตั้งตามนั้นหรือจะ ต้องการข้อตกลงที่กำลังดำเนินการกับชุดย่อยของ validators เพื่อให้แน่ใจว่าจะไม่ถูกตัดการเชื่อมต่อในช่วงเวลาส่วนใหญ่ที่ไม่มีประโยชน์สำหรับ validator นั้น ผู้รวบรวมจะพยายามรักษาไว้โดยธรรมชาติ หรือการเชื่อมต่อที่เสถียรยิ่งขึ้นไปยังผู้รับประกันความพร้อมใช้งาน กำหนดไว้เพื่อให้แน่ใจว่ามีการเผยแพร่อย่างรวดเร็วของความเห็นพ้องต้องกัน ข้อมูล ผู้รับประกันความพร้อมส่วนใหญ่จะมุ่งเป้าไปที่การรักษา การเชื่อมต่อที่เสถียรระหว่างกันและกับ validators (สำหรับข้อมูลที่เป็นเอกฉันท์และข้อมูล Parachain ที่มีความสำคัญเป็นเอกฉันท์ซึ่ง พวกเขายืนยัน) เช่นเดียวกับผู้เปรียบเทียบบางคน (สำหรับ parachain ข้อมูล) และชาวประมงและลูกค้าบางส่วน (สำหรับการกระจายตัว ข้อมูล) ผู้ตรวจสอบความถูกต้องมักจะมองหา validators อื่นๆ โดยเฉพาะที่อยู่ในกลุ่มย่อยเดียวกันและ ผู้ประสานงานที่สามารถจัดหาตัวเลือกบล็อกพาราเชนให้พวกเขาได้ ชาวประมงตลอดจนรีเลย์โซ่และพาราเชนทั่วไป โดยทั่วไปลูกค้าจะมุ่งหวังที่จะรักษาการเชื่อมต่อที่เปิดไว้กับ validator หรือผู้ค้ำประกัน แต่มีโหนดอื่นๆ ที่คล้ายกันอีกมากมาย แก่ตนเองเป็นอย่างอื่น Parachain light client มีเป้าหมายที่จะเชื่อมต่อกับไคลเอนต์แบบเต็มของ parachain ในทำนองเดียวกัน หากไม่ใช่เพียงไคลเอ็นต์ light-client ของ parachain อื่นๆ 6.8.1. ปัญหาของเพื่อนปั่น. ในข้อเสนอโปรโตคอลพื้นฐาน แต่ละชุดย่อยเหล่านี้เปลี่ยนแปลงแบบสุ่มอย่างต่อเนื่องกับแต่ละบล็อกตามที่ validators มอบหมายให้ตรวจสอบ การเปลี่ยนพาราเชนจะถูกสุ่มเลือก นี้สามารถ เป็นปัญหาที่ควรต้องมีโหนดที่แตกต่างกัน (ไม่ใช่เพียร์) ส่งข้อมูลระหว่างกัน ก็ต้องพึ่งเช่นกัน เครือข่ายเพียร์ที่มีการกระจายอย่างเป็นธรรมและเชื่อมต่ออย่างดี
โพลคาดอท: วิสัยทัศน์สำหรับกรอบการทำงานแบบหลายห่วงโซ่ที่แตกต่างกัน ร่างที่ 1 18 ตรวจสอบให้แน่ใจว่าระยะทางกระโดด (และความล่าช้าที่เลวร้ายที่สุด) จะเพิ่มขึ้นตามลอการิทึมของขนาดเครือข่ายเท่านั้น (โปรโตคอลที่คล้ายกับ Kademlia [13] อาจช่วยได้ที่นี่) หรือต้องทำอย่างใดอย่างหนึ่ง แนะนำเวลาบล็อกที่นานขึ้นเพื่อให้การเจรจาการเชื่อมต่อที่จำเป็นเกิดขึ้นเพื่อรักษาเพียร์เซ็ตไว้ สะท้อนถึงความต้องการการสื่อสารในปัจจุบันของโหนด ทั้งสองวิธีไม่ใช่วิธีแก้ปัญหาที่ดี: ใช้เวลาบล็อกนาน การถูกบังคับบนเครือข่ายอาจทำให้ไร้ประโยชน์ได้ การใช้งานและโซ่โดยเฉพาะ แม้กระทั่งงานที่สมบูรณ์แบบ และเครือข่ายที่เชื่อมต่อจะส่งผลให้เกิดการสิ้นเปลืองอย่างมาก ของแบนด์วิธเมื่อขยายขนาดเนื่องจากมีโหนดที่ไม่สนใจ เพื่อส่งต่อข้อมูลไปอย่างไร้ประโยชน์ให้กับพวกเขา แม้ว่าทั้งสองทิศทางอาจเป็นส่วนหนึ่งของสารละลาย การเพิ่มประสิทธิภาพที่เหมาะสมเพื่อช่วยลดเวลาแฝงให้เหลือน้อยที่สุด คือการจำกัดความผันผวนของ parachain เหล่านี้ validator ชุด หรือกำหนดความเป็นสมาชิกใหม่เฉพาะระหว่างชุดของบล็อก (เช่น ในกลุ่ม 15 ซึ่งใน 4 วินาที เวลาบล็อกจะหมายถึงการเปลี่ยนแปลงการเชื่อมต่อเพียงครั้งเดียวต่อ นาที) หรือหมุนเวียนสมาชิกแบบเพิ่มขึ้น เช่น เปลี่ยนแปลงทีละสมาชิก (เช่น ถ้ามี ได้รับมอบหมาย 15 validators ให้กับแต่ละ parachain ดังนั้นโดยเฉลี่ยแล้วจะใช้เวลาหนึ่งนาทีเต็มระหว่างค่าที่ไม่ซ้ำกันโดยสิ้นเชิง ชุด) โดยการจำกัดจำนวนการเลิกใช้งานเพียร์ และรับรองว่าการเชื่อมต่อเพียร์ที่ได้เปรียบจะทำไปด้วยดี ก้าวหน้าผ่านการคาดเดาได้บางส่วนของพาราเชน เราสามารถช่วยให้แน่ใจว่าแต่ละโหนดจะคงไว้อย่างถาวร การคัดเลือกเพื่อนโดยบังเอิญ 6.8.2. เส้นทางสู่โปรโตคอลเครือข่ายที่มีประสิทธิภาพ คงจะ. ความพยายามในการพัฒนาที่มีประสิทธิผลและสมเหตุสมผลมากที่สุดจะมุ่งเน้นไปที่การใช้โปรโตคอลที่มีอยู่แล้วมากกว่าการเผยแพร่ ของเราเอง มีโปรโตคอลฐานเพียร์ทูเพียร์หลายตัว เราอาจใช้หรือเพิ่มรวมถึง devp2p ของ Ethereum ของตัวเองด้วย [22], libp2p ของ IPFS [1] และ GNUnet ของ GNU [4] การทบทวนระเบียบการเหล่านี้ฉบับสมบูรณ์และความเกี่ยวข้องสำหรับการสร้าง เครือข่ายเพียร์แบบโมดูลาร์ที่รองรับการรับประกันโครงสร้างบางอย่าง การควบคุมเพียร์แบบไดนามิก และโปรโตคอลย่อยที่ขยายได้ อยู่นอกเหนือขอบเขตของเอกสารนี้ แต่จะเป็น ขั้นตอนสำคัญในการใช้งาน Polkadot 7. การปฏิบัติจริงของพิธีสาร 7.1. การชำระเงินธุรกรรมระหว่างกัน ในขณะที่ยิ่งใหญ่ ปริมาณความเป็นอิสระและความเรียบง่ายนั้นได้มาจากการลดความต้องการเฟรมเวิร์กการบัญชีทรัพยากรการคำนวณแบบองค์รวม เช่น ก๊าซของ Ethereum สิ่งนี้ทำให้เกิดคำถามสำคัญ: หากไม่มีก๊าซ แล้วพาราเชนหนึ่งตัวจะเป็นอย่างไร หลีกเลี่ยง parachain อื่นจากการบังคับให้ทำการคำนวณหรือไม่ ในขณะที่เราสามารถพึ่งพาคิวการเข้าหลังธุรกรรมได้ บัฟเฟอร์เพื่อป้องกันไม่ให้ห่วงโซ่หนึ่งส่งสแปมด้วย ข้อมูลธุรกรรม ไม่มีกลไกที่เท่าเทียมกันในโปรโตคอลเพื่อป้องกันสแปมในการประมวลผลธุรกรรม นี่เป็นปัญหาที่เหลืออยู่ในระดับที่สูงขึ้น ตั้งแต่โซ่ตรวน มีอิสระที่จะแนบซีแมนทิกส์ตามอำเภอใจกับขาเข้า ข้อมูลธุรกรรมโพสต์เราสามารถรับประกันได้ว่าการคำนวณ จะต้องชำระก่อนที่จะเริ่ม ในลักษณะเดียวกันกับ โมเดลที่ดำเนินการโดย Ethereum ความสงบ เราสามารถจินตนาการได้ สัญญา "แตกหัก" ภายใน parachain ซึ่งอนุญาตให้ validator รับประกันการชำระเงินเพื่อแลกกับ การจัดหาทรัพยากรการประมวลผลในปริมาณเฉพาะ ทรัพยากรเหล่านี้อาจวัดได้ในรูปของก๊าซ แต่ยังอาจเป็นโมเดลที่แปลกใหม่บางอย่าง เช่น เวลาในการดำเนินการแบบอัตนัยหรือแบบจำลองค่าธรรมเนียมแบบ Bitcoin ที่เหมือนค่าธรรมเนียม ด้วยตัวมันเองสิ่งนี้ไม่มีประโยชน์นักเนื่องจากเราไม่สามารถสรุปได้ว่าผู้เรียกแบบ off-chain นั้นว่างสำหรับพวกเขา กลไกคุณค่าใดก็ตามที่ได้รับการยอมรับจากการบุกรุก สัญญา อย่างไรก็ตาม เราสามารถจินตนาการถึงสัญญา "ฝ่าวงล้อม" รองในห่วงโซ่แหล่งที่มาได้ สัญญาทั้งสองร่วมกันจะสร้างสะพานที่รับรู้ซึ่งกันและกันและ ให้ความเท่าเทียมกันของมูลค่า (การปักหลัก-tokens ใช้ได้กับ แต่ละรายการสามารถนำไปใช้ชำระดุลการชำระเงินได้) การโทรเข้าสายโซ่อื่นจะหมายถึงการมอบฉันทะ ผ่านสะพานแห่งนี้ซึ่งจะให้หนทางในการ การเจรจาการถ่ายโอนมูลค่าระหว่างเครือข่ายเพื่อที่จะ ชำระค่าทรัพยากรการคำนวณที่จำเป็นสำหรับพาราเชนปลายทาง 7.2. เพิ่มเติม โซ่. ในขณะที่ ที่ นอกจากนี้ ของ ก parachain เป็นการดำเนินการที่ค่อนข้างถูก มันไม่ฟรี พาราเชนที่มากขึ้นหมายถึง validators ต่อพาราเชนที่น้อยลง และในที่สุด validators จำนวนมากขึ้นแต่ละอันมี a พันธบัตรเฉลี่ยลดลง ในขณะที่ปัญหาเรื่องการบังคับค่าใช้จ่ายในการโจมตี Parachain น้อยลงก็บรรเทาลงได้ ชาวประมง validator ที่กำลังเติบโต กำหนดกำลังสำคัญ ระดับเวลาแฝงที่สูงขึ้นเนื่องจากกลไกของความเห็นพ้องต้องกันท็อด นอกจากนี้พาราเชนแต่ละอัน นำมาซึ่งความโศกเศร้า validators พร้อมด้วย อัลกอริธึมการตรวจสอบที่หนักเกินไป ด้วยเหตุนี้ จะมี "ราคา" บางส่วนที่ validators และ/หรือชุมชนผู้มีส่วนได้ส่วนเสียจะดึงข้อมูลออกมาเพื่อ เพิ่มพาราเชนใหม่ ตลาดสำหรับโซ่นี้จะ อาจเห็นการเพิ่มอย่างใดอย่างหนึ่ง: • เครือข่ายที่มีแนวโน้มว่าจะมีการจ่ายเงินสุทธิเป็นศูนย์ (ในแง่ของการล็อคหรือการเผา staking tokens) ที่จะสร้างเป็นส่วนหนึ่ง (เช่น เครือเครือข่ายสมาคม Doge-chains, เชนเฉพาะแอป); • เครือข่ายที่ส่งมอบคุณค่าที่แท้จริงให้กับเครือข่าย ผ่านการเพิ่มฟังก์ชันการทำงานเฉพาะที่ยุ่งยาก เพื่อไปยังที่อื่น (เช่น การรักษาความลับ ความสามารถในการขยายภายใน การเชื่อมโยงการบริการ) โดยพื้นฐานแล้วชุมชนของผู้มีส่วนได้ส่วนเสียจะต้อง ได้รับการจูงใจให้เพิ่มเครือข่ายย่อย—ทั้งทางการเงินหรือ ด้วยความปรารถนาที่จะเพิ่มโซ่ที่โดดเด่นให้กับรีเลย์ คาดว่าเครือใหม่ที่เพิ่มเข้ามาจะมีมาก ระยะเวลาแจ้งสั้นสำหรับการถอด ทำให้สามารถโซ่ใหม่ได้ ทดลองได้โดยไม่ต้องเสี่ยงต่อการประนีประนอม การนำเสนอคุณค่าระยะกลางหรือระยะยาว 8. บทสรุป เราได้สรุปแนวทางที่อาจนำไปใช้ในการเขียน โปรโตคอลหลายสายโซ่ที่ต่างกันและปรับขนาดได้พร้อมศักยภาพที่จะเข้ากันได้แบบย้อนหลังกับบางโปรโตคอลที่มีอยู่แล้ว blockchain เครือข่าย ภายใต้ระเบียบการดังกล่าวผู้เข้าร่วม ทำงานเพื่อประโยชน์ส่วนตนที่รู้แจ้งเพื่อสร้างระบบโดยรวมที่สามารถขยายออกไปในลักษณะที่ฟรีเป็นพิเศษและไม่มีค่าใช้จ่ายทั่วไปสำหรับผู้ใช้ที่มีอยู่ มาจากการออกแบบมาตรฐาน blockchain เราได้ให้ โครงร่างคร่าวๆ ของสถาปัตยกรรมที่จะต้องรวมไว้ด้วย ลักษณะของผู้เข้าร่วม สิ่งจูงใจทางเศรษฐกิจ และกระบวนการที่พวกเขาต้องมีส่วนร่วม เรามี ระบุการออกแบบขั้นพื้นฐานและหารือถึงจุดแข็งและ ข้อจำกัด; ดังนั้นเราจึงมีแนวทางเพิ่มเติมซึ่ง อาจบรรเทาข้อจำกัดเหล่านั้นและส่งผลให้ได้รับโซลูชัน blockchain ที่ปรับขนาดได้อย่างเต็มที่โพลคาดอท: วิสัยทัศน์สำหรับกรอบการทำงานแบบหลายห่วงโซ่ที่แตกต่างกัน ร่างที่ 1 19 8.1. เนื้อหาที่ขาดหายไปและคำถามเปิด การฟอร์กเครือข่ายนั้นมีความเป็นไปได้เสมอจากการใช้งานโปรโตคอลที่แตกต่างกัน การฟื้นตัวจากการดังกล่าว ไม่ได้กล่าวถึงเงื่อนไขพิเศษ เนื่องจากเครือข่ายจะต้องมีระยะเวลาสรุปที่ไม่เป็นศูนย์ มันไม่ควรเป็นปัญหาใหญ่ในการกู้คืนจากการฟอร์กของรีเลย์เชน แต่จะต้องมีการผสานรวมอย่างระมัดระวัง โปรโตคอลฉันทามติ การยึดพันธบัตรและการให้รางวัลในทางกลับกันมี ไม่ได้รับการสำรวจอย่างลึกซึ้ง ในปัจจุบันเราถือว่ารางวัล มีให้ภายใต้เกณฑ์ผู้ชนะ - รับทั้งหมด: สิ่งนี้อาจไม่ มอบรูปแบบการสร้างแรงจูงใจที่ดีที่สุดสำหรับชาวประมง กระบวนการเปิดเผยข้อผูกพันในระยะเวลาอันสั้นจะทำให้ชาวประมงจำนวนมาก เพื่อรับรางวัลโดยมีการแจกรางวัลอย่างยุติธรรมมากขึ้น อย่างไรก็ตามกระบวนการนี้อาจนำไปสู่เวลาแฝงเพิ่มเติมใน การค้นพบพฤติกรรมที่ไม่เหมาะสม 8.2. รับทราบ ขอบคุณมากสำหรับทั้งหมด ผู้พิสูจน์อักษรที่ได้ช่วยทำความเข้าใจเรื่องนี้อย่างคลุมเครือ รูปร่างเรียบร้อย โดยเฉพาะ Peter Czaban, Bj¨orn วากเนอร์, เคน แคปเปลอร์, โรเบิร์ต ฮาเบอร์ไมเออร์, วิตาลิก บูเทริน, เรโต้ ทริงเกอร์ และแจ็ค ปีเตอร์สสัน ขอบคุณทุกคน คนที่มีส่วนสนับสนุนความคิดหรือจุดเริ่มต้น ด้วยเหตุนี้ Marek Kotewicz และ Aeron Buchanan จึงสมควรได้รับการกล่าวถึงเป็นพิเศษ และขอบคุณทุกคนสำหรับความช่วยเหลือของพวกเขา ระหว่างทาง ข้อผิดพลาดทั้งหมดเป็นของฉันเอง บางส่วนของงานนี้ รวมถึงการวิจัยเบื้องต้นเกี่ยวกับ อัลกอริธึมฉันทามติได้รับทุนบางส่วนจากอังกฤษ รัฐบาลภายใต้โครงการ Innovate UK