Algorand: Skalierung byzantinischer Vereinbarungen für Kryptowährungen

Por Jing Chen and Silvio Micali · 2017

Resumen

Un libro de contabilidad público es una secuencia de datos a prueba de manipulaciones que todos pueden leer y ampliar. Los libros públicos tienen innumerables y convincentes usos. Pueden asegurar, a simple vista, todo tipo de transacciones —como títulos, ventas y pagos— en el orden exacto en que ocurren. Los libros públicos no sólo frenan la corrupción, sino que también permiten aplicaciones muy sofisticadas, como criptomonedas y smart contracts. Se proponen revolucionar la forma en que una sociedad democrática opera. Sin embargo, tal como se implementan actualmente, su escalabilidad es deficiente y no pueden alcanzar su potencial. Algorand es una forma verdaderamente democrática y eficiente de implementar un libro de contabilidad público. A diferencia del anterior implementaciones basadas en prueba de trabajo, requiere una cantidad insignificante de cálculo, y genera un historial de transacciones que no se “bifurcará” con una probabilidad abrumadoramente alta. Algorand se basa en un acuerdo bizantino de transmisión de mensajes (novedoso y súper rápido). Para ser más concretos, describiremos Algorand únicamente como una plataforma monetaria.

Zusammenfassung

Ein öffentliches Hauptbuch ist eine manipulationssichere Datenfolge, die von jedem gelesen und ergänzt werden kann. Öffentliche Hauptbücher haben unzählige und überzeugende Verwendungsmöglichkeiten. Sie können alle Arten vor aller Augen sichern von Transaktionen – wie Titeln, Verkäufen und Zahlungen – in der genauen Reihenfolge, in der sie stattfinden. Öffentliche Hauptbücher dämmen nicht nur Korruption ein, sondern ermöglichen auch hochentwickelte Anwendungen – wie z Kryptowährungen und smart contracts. Sie werden die Art und Weise einer demokratischen Gesellschaft revolutionieren betreibt. In der derzeit implementierten Form sind sie jedoch schlecht skalierbar und können ihr Potenzial nicht ausschöpfen. Algorand ist eine wirklich demokratische und effiziente Möglichkeit, ein öffentliches Hauptbuch zu implementieren. Im Gegensatz zu früher Implementierungen, die auf Arbeitsnachweisen basieren, erfordern einen vernachlässigbaren Rechenaufwand und generiert einen Transaktionsverlauf, der mit überwältigend hoher Wahrscheinlichkeit nicht „verzweigt“ wird. Algorand basiert auf einer (neuen und superschnellen) byzantinischen Vereinbarung zur Nachrichtenübermittlung. Der Konkretheit halber beschreiben wir Algorand nur als Geldplattform.

Introducción

El dinero es cada vez más virtual. Se ha estimado que alrededor del 80% de los Estados Unidos Los dólares hoy solo existen como asientos contables [5]. Otros instrumentos financieros están siguiendo el ejemplo. En un mundo ideal, en el que pudiéramos contar con una entidad central de confianza universal, inmune Ante todos los posibles ciberataques, el dinero y otras transacciones financieras podrían ser únicamente electrónicas. Desafortunadamente, no vivimos en un mundo así. En consecuencia, las criptomonedas descentralizadas, como como Bitcoin [29], y sistemas “smart contract”, como Ethereum, se han propuesto [4]. en El corazón de estos sistemas es un libro de contabilidad compartido que registra de manera confiable una secuencia de transacciones, ∗Esta es la versión más formal (y asincrónica) del artículo ArXiv del segundo autor [24], un artículo basado en el de Gorbunov y Micali [18]. Las tecnologías de Algorand son objeto de las siguientes solicitudes de patente: US62/117,138 US62/120,916 US62/142,318 US62/218,817 US62/314,601 PCT/US2016/018300 US62/326,865 62/331,654 US62/333,340 US62/343,369 US62/344,667 US62/346,775 US62/351,011 US62/653,482 US62/352,195 US62/363,970 US62/369,447 US62/378,753 US62/383,299 US62/394,091 US62/400,361 US62/403,403 US62/410,721 US62/416,959 US62/422,883 US62/455,444 US62/458,746 US62/459,652 US62/460,928 US62/465,931tan variados como pagos y contratos, de forma a prueba de manipulaciones. La tecnología elegida para garantizar dicha inviolabilidad es el blockchain. Las cadenas de bloques están detrás de aplicaciones como criptomonedas [29], aplicaciones financieras [4] e Internet de las cosas [3]. Varias técnicas para gestionar libros de contabilidad basados en blockchain se han propuesto: prueba de trabajo [29], prueba de participación [2], práctica tolerancia a fallos bizantinos [8], o alguna combinación. Sin embargo, en la actualidad, la gestión de los libros de contabilidad puede resultar ineficiente. Por ejemplo, Bitcoin proof-of-work El enfoque (basado en el concepto original de [14]) requiere una gran cantidad de cálculos y es un desperdicio. y escala mal [1]. Además, de facto concentra el poder en muy pocas manos. Por lo tanto, deseamos proponer un nuevo método para implementar un libro de contabilidad público que ofrezca la conveniencia y eficiencia de un sistema centralizado administrado por una autoridad confiable e inviolable, sin las ineficiencias y debilidades de las implementaciones descentralizadas actuales. Llamamos a nuestro enfoque Algorand, porque utilizamos aleatoriedad algorítmica para seleccionar, según el libro mayor construido hasta ahora, un conjunto de verificadores que están a cargo de construir el siguiente bloque de transacciones válidas. Naturalmente, Nos aseguramos de que dichas selecciones sean demostrablemente inmunes a manipulaciones e impredecibles hasta el momento. en el último momento, sino también que, en última instancia, sean universalmente claras. El enfoque de Algorand es bastante democrático, en el sentido de que ni en principio ni de facto crea diferentes clases de usuarios (como “mineros” y “usuarios comunes” en Bitcoin). En Algorand “todos el poder reside en el conjunto de todos los usuarios”. Una propiedad notable de Algorand es que su historial de transacciones puede bifurcarse sólo con cantidades muy pequeñas. probabilidad (por ejemplo, una entre un billón, es decir, o incluso 10-18). Algorand también puede abordar algunos temas legales. y preocupaciones políticas. El enfoque Algorand se aplica a blockchains y, más generalmente, a cualquier método de generación una secuencia de bloques a prueba de manipulaciones. De hecho, propusimos un nuevo método, alternativo y más eficiente que blockchains, eso puede ser de interés independiente. 1.1 Supuestos y problemas técnicos de Bitcoin Bitcoin es un sistema muy ingenioso y ha inspirado una gran cantidad de investigaciones posteriores. Sin embargo, También es problemático. Resumamos sus supuestos subyacentes y sus problemas técnicos, que En realidad, son compartidos por prácticamente todas las criptomonedas que, como Bitcoin, se basan en proof-of-work. Para este resumen, basta recordar que, en Bitcoin, un usuario puede poseer varias claves públicas de un esquema de firma digital, que el dinero está asociado con claves públicas y que un pago es un Firma digital que transfiere una cierta cantidad de dinero de una clave pública a otra. Esencialmente, Bitcoin organiza todos los pagos procesados en una cadena de bloques, B1, B2, . . ., cada uno compuesto por múltiples pagos, de modo que todos los pagos de B1, tomados en cualquier orden, seguidos de los de B2, en cualquier orden, etc., constituyen una secuencia de pagos válidos. Cada bloque se genera, en promedio, cada 10 minutos. Esta secuencia de bloques es una cadena, porque está estructurada de manera que garantice que cualquier cambio, incluso en un solo bloque, se filtra en todos los bloques posteriores, lo que facilita la detección de cualquier alteración de el historial de pagos. (Como veremos, esto se consigue incluyendo en cada bloque un código criptográfico hash del anterior). Dicha estructura de bloques se denomina blockchain. Supuesto: mayoría honesta de potencia computacional Bitcoin asume que no hay ningún malicioso entidad (ni una coalición de entidades maliciosas coordinadas) controla la mayoría de los procesos computacionales. energía dedicada a la generación de bloques. De hecho, dicha entidad podría modificar el blockchain,y así reescribir el historial de pagos, como le plazca. En particular, podría realizar un pago \(\wp\), obtener los beneficios pagados y luego “borrar” cualquier rastro de \(\wp\). Problema técnico 1: Desperdicio computacional Enfoque proof-of-work de Bitcoin para bloquear La generación requiere una cantidad extraordinaria de cálculos. Actualmente, con sólo unos pocos cientos miles de claves públicas en el sistema, las 500 supercomputadoras más poderosas solo pueden reunir apenas el 12,8% por ciento de la potencia computacional total requerida de los jugadores Bitcoin. esto La cantidad de cálculo aumentaría considerablemente si un número significativamente mayor de usuarios se unieran al sistema. Problema técnico 2: concentración de poder Hoy, debido a la exorbitante cantidad de cálculo requerido, un usuario, que intenta generar un nuevo bloque usando un escritorio normal (y mucho menos un teléfono celular), espera perder dinero. De hecho, para calcular un nuevo bloque con una computadora común, el costo esperado de la electricidad necesaria para impulsar el cálculo excede la recompensa esperada. Utilizando únicamente grupos de computadoras especialmente construidas (que no hacen nada más que "extraer nuevos bloques"), uno podría esperar obtener ganancias generando nuevos bloques. En consecuencia, hoy existen, de facto, dos clases disjuntas de usuarios: usuarios comunes, que solo realizan pagos, y grupos de minería especializados, que solo buscan nuevos bloques. Por lo tanto, no debería sorprender que, hasta hace poco, la potencia informática total de los bloques La generación se encuentra dentro de sólo cinco grupos. En tales condiciones, el supuesto de que la mayoría de los el poder computacional es honesto se vuelve menos creíble. Problema técnico 3: ambigüedad En Bitcoin, blockchain no es necesariamente único. De hecho su última porción a menudo se bifurca: el blockchain puede ser, digamos, B1,. . . , Bk, B′ k+1, B′ k+2, según un usuario, y B1, . . . , Bk, B′′ k+1, B′′ k+2, B′′ k+3 según otro usuario. Sólo después de varios bloques agregado a la cadena, ¿se puede estar razonablemente seguro de que los primeros k + 3 bloques serán los mismos? para todos los usuarios. Por tanto, no se puede confiar inmediatamente en los pagos contenidos en el último bloque de la cadena. Es más prudente esperar y ver si el bloque se vuelve lo suficientemente profundo en el blockchain y, por tanto, suficientemente estable. Por otra parte, también se han planteado preocupaciones sobre la aplicación de la ley y la política monetaria sobre Bitcoin.1 1.2 Algorand, en pocas palabras Configuración Algorand trabaja en un entorno muy difícil. Brevemente, (a) Entornos sin permiso y con permiso. Algorand funciona de manera eficiente y segura incluso en un entorno totalmente sin permisos, donde arbitrariamente muchos usuarios pueden unirse al sistema en cualquier momento, sin ningún tipo de investigación o permiso de ningún tipo. Por supuesto, Algorand funciona Aún mejor en un entorno autorizado. 1El (pseudo) anonimato que ofrecen los pagos Bitcoin puede utilizarse indebidamente para el lavado de dinero y/o la financiación. de personas criminales u organizaciones terroristas. Los billetes tradicionales o lingotes de oro, que en principio ofrecen una perfecta anonimato, debería plantear el mismo desafío, pero la fisicalidad de estas monedas ralentiza sustancialmente el movimiento del dinero. transferencias, a fin de permitir cierto grado de supervisión por parte de los organismos encargados de hacer cumplir la ley. La capacidad de “imprimir dinero” es uno de los poderes básicos de un Estado nación. Por lo tanto, en principio, la masiva La adopción de una moneda con flotación independiente puede limitar este poder. Sin embargo, actualmente Bitcoin está lejos de ser una amenaza para las políticas monetarias gubernamentales y, debido a sus problemas de escalabilidad, puede que nunca lo sea.(b) Entornos muy conflictivos. Algorand resiste a un Adversario muy poderoso, que puede (1) corromper instantáneamente a cualquier usuario que desee, en cualquier momento que desee, siempre que, en un entorno sin permisos, 2/3 del dinero en el sistema pertenece al usuario honesto. (En un entorno autorizado, independientemente del dinero, basta con que 2/3 de los usuarios sean honestos.) (2) controlar totalmente y coordinar perfectamente a todos los usuarios corruptos; y (3) programar la entrega de todos los mensajes, siempre que cada mensaje sea enviado por un usuario honesto llega al 95% de los usuarios honestos en un tiempo \(\lambda\)m, que depende únicamente del tamaño de m. Propiedades principales A pesar de la presencia de nuestro poderoso adversario, en Algorand • La cantidad de cálculo requerida es mínima. Básicamente, no importa cuántos usuarios haya presentes en el sistema, cada uno de los mil quinientos usuarios debe realizar como máximo unos segundos de cálculo. • Se genera un nuevo bloque en menos de 10 minutos y, de facto, nunca saldrá del blockchain. Por ejemplo, en la expectativa, el tiempo para generar un bloque en la primera realización es menor que Λ + 12,4\(\lambda\), donde Λ es el tiempo necesario para propagar un bloque, en un chisme entre pares manera, no importa qué tamaño de bloque se elija, y \(\lambda\) es el tiempo para propagar 1.500 mensajes 200Blong. (Dado que en un sistema verdaderamente descentralizado, Λ es esencialmente una latencia intrínseca, en Algorand el factor limitante en la generación de bloques es la velocidad de la red). La segunda realización tiene en realidad ha sido probado experimentalmente (¿por ?), lo que indica que un bloque se genera en menos de 40 segundos. Además, el blockchain de Algorand puede bifurcarse sólo con una probabilidad insignificante (es decir, menos de un en un billón), y así los usuarios pueden transmitir los pagos contenidos en un nuevo bloque tan pronto como el Aparece el bloque. • Todo el poder reside en los propios usuarios. Algorand es un verdadero sistema distribuido. En particular, no hay entidades exógenas (como los “mineros” en Bitcoin), que puedan controlar qué transacciones son reconocidos. Técnicas de Algorand. 1. Un nuevo y rápido protocolo de acuerdo bizantino. Algorand genera un nuevo bloque vía un nuevo protocolo de acuerdo bizantino (BA) binario criptográfico, de paso de mensajes, BA⋆. Protocolo BA⋆ no sólo satisface algunas propiedades adicionales (que discutiremos pronto), sino que también es muy rápido. En términos generales, su versión de entrada binaria consiste en un bucle de 3 pasos, en el que un jugador i envía un único envía un mensaje mi a todos los demás jugadores. Ejecutado en red completa y síncrona, con más siendo honestos más de 2/3 de los jugadores, con probabilidad > 1/3, después de cada bucle el protocolo termina en acuerdo. (Hacemos hincapié en que el protocolo BA⋆satisface la definición original de acuerdo bizantino de Pease, Shostak y Lamport [31], sin debilitamientos). Algorand aprovecha este protocolo BA binario para llegar a un acuerdo, en nuestras diferentes comunicaciones modelo, en cada nuevo bloque. Luego se certifica el bloque acordado, mediante un número prescrito de firma digital de los verificadores correspondientes, y se propaga a través de la red. 2. Ordenación criptográfica. Aunque es muy rápido, el protocolo BA⋆se beneficiaría de una mayor velocidad cuando lo juegan millones de usuarios. En consecuencia, Algorand elige a los jugadores de BA⋆para serun subconjunto mucho más pequeño del conjunto de todos los usuarios. Para evitar un tipo diferente de concentración de poder problema, cada nuevo bloque Br será construido y acordado, mediante una nueva ejecución de BA⋆, por un conjunto separado de verificadores seleccionados, SV r. En principio, seleccionar un conjunto de este tipo podría ser tan difícil como seleccionando Br directamente. Atravesamos este problema potencial mediante un enfoque que denominamos abarcar la perspicaz sugerencia de Maurice Herlihy, la clasificación criptográfica. La clasificación es la práctica de seleccionar funcionarios al azar de un gran conjunto de personas elegibles [6]. (Se practicó la clasificación a lo largo de los siglos: por ejemplo, por las repúblicas de Atenas, Florencia y Venecia. En la justicia moderna En estos sistemas, la selección aleatoria se utiliza a menudo para elegir a los jurados. El muestreo aleatorio también se ha utilizado recientemente. defendido para las elecciones por David Chaum [9].) En un sistema descentralizado, por supuesto, elegir el Las monedas aleatorias necesarias para seleccionar aleatoriamente los miembros de cada conjunto de verificador SV r son problemáticas. Por tanto, recurrimos a la criptografía para seleccionar cada conjunto de verificadores, de la población de todos los usuarios, de una manera que se garantiza que será automática (es decir, que no requiere intercambio de mensajes) y aleatoria. En esencia, utilizamos una función criptográfica para determinar automáticamente, a partir del bloque anterior Br−1, un usuario, el líder, encargado de proponer el nuevo bloque Br, y el verificador establece SV r, en encargado de llegar a un acuerdo sobre el bloque propuesto por el dirigente. Dado que los usuarios malintencionados pueden afectar la composición de Br−1 (por ejemplo, eligiendo algunos de sus pagos), construimos y utilizamos especialmente entradas adicionales para demostrar que el líder para el bloque r y el conjunto de verificador SV r son de hecho elegidos al azar. 3. La Cantidad (Semilla) Qr. Usamos el último bloque Br−1 en blockchain para determinar automáticamente el siguiente conjunto de verificadores y el líder a cargo de construir el nuevo bloque Hno. El desafío de este enfoque es que, con sólo elegir un pago ligeramente diferente en el En la ronda anterior, nuestro poderoso adversario obtiene un tremendo control sobre el siguiente líder. Incluso si el sólo controlaba 1/1000 de los jugadores/dinero en el sistema, podía garantizar que todos los líderes estuvieran malicioso. (Consulte la Sección 4.1 de Intuición). Este desafío es fundamental para todos los enfoques proof-of-stake, y, hasta donde sabemos, hasta el momento no se ha resuelto satisfactoriamente. Para enfrentar este desafío, construimos intencionalmente y actualizamos continuamente un sistema separado y cuidadosamente cantidad definida, Qr, que probablemente no sólo es impredecible, sino que tampoco puede ser influenciada por nuestro poderoso adversario. Podemos referirnos a Qr como la r-ésima semilla, ya que es de Qr que Algorand selecciona, mediante clasificación criptográfica secreta, todos los usuarios que desempeñarán un papel especial en la generación del bloque r. 4. Clasificación critográfica secreta y credenciales secretas. Utilizar aleatoriamente y sin ambigüedades el último bloque actual, Br-1, para elegir el conjunto de verificadores y el líder a cargo. de construir el nuevo bloque, Br, no es suficiente. Dado que Br−1 debe conocerse antes de generar Br, También se debe conocer la última cantidad no influenciable Qr−1 contenida en Br−1. En consecuencia, entonces son los verificadores y el líder encargado de calcular el bloque Br. Así, nuestro poderoso adversario podría corromperlos a todos inmediatamente, antes de que entablen cualquier discusión sobre Br, para obtener control total sobre el bloque que certifican. Para evitar este problema, los líderes (y en realidad también los verificadores) aprenden en secreto su papel, pero pueden calcular una credencial adecuada, capaz de demostrar a todos que efectivamente tienen ese rol. cuando Si un usuario se da cuenta en privado de que es el líder del siguiente bloque, primero reúne en secreto su propio nuevo bloque propuesto, y luego lo difunde (para que pueda ser certificado) junto con su propio credencial. De esta manera, aunque el Adversario se dará cuenta inmediatamente de quién es el líder del próximo bloque es, y aunque puede corromperlo de inmediato, será demasiado tarde para que el Adversario Influir en la elección de un nuevo bloque. De hecho, ya no puede “revocar” el mensaje del líder.de lo que un gobierno poderoso puede volver a encerrar en la botella un mensaje difundido viralmente por WikiLeaks. Como veremos, no podemos garantizar la unicidad del líder, ni que todos estén seguros de quién es el líder. es, ¡incluido el propio líder! Pero en Algorand se garantizará un progreso inequívoco. 5. Reemplazabilidad de jugadores. Después de proponer un nuevo bloque, el líder también podría “morir” (o ser corrompido por el Adversario), porque su trabajo está hecho. Pero, para los verificadores en SV r, las cosas son menos sencillo. En efecto, siendo el encargado de certificar el nuevo bloque Br con suficientes firmas, primero deben ejecutar un acuerdo bizantino sobre el bloque propuesto por el líder. El problema es que, No importa cuán eficiente sea, BA⋆requiere múltiples pasos y la honestidad de > 2/3 de sus jugadores. Esto es un problema porque, por razones de eficiencia, el conjunto de jugadores de BA⋆ consiste en el pequeño conjunto SV r seleccionados aleatoriamente entre el conjunto de todos los usuarios. Así, nuestro poderoso Adversario, aunque incapaz de corrompe 1/3 de todos los usuarios, ¡ciertamente puede corromper a todos los miembros de SV r! Afortunadamente, demostraremos que el protocolo BA⋆, ejecutado mediante la propagación de mensajes entre pares, es reemplazable por el jugador. Este novedoso requisito significa que el protocolo debe aplicarse correctamente y logra un consenso de manera eficiente incluso si cada uno de sus pasos es ejecutado por un proceso totalmente nuevo y aleatorio. conjunto de jugadores seleccionados independientemente. Así, con millones de usuarios, cada pequeño grupo de jugadores asociado a un paso de BA⋆muy probablemente tenga una intersección vacía con el siguiente conjunto. Además, los conjuntos de jugadores de diferentes pasos de BA⋆probablemente tendrán resultados totalmente diferentes. cardinalidades. Además, los miembros de cada grupo no saben quién será el próximo grupo de jugadores. ser, y no pasar en secreto ningún estado interno. La propiedad del jugador reemplazable es realmente crucial para derrotar al dinámico y muy poderoso Adversario que imaginamos. Creemos que los protocolos de jugadores reemplazables resultarán cruciales en muchos Contextos y aplicaciones. En particular, serán cruciales para ejecutar de forma segura pequeños subprotocolos. incrustado en un universo más grande de jugadores con un adversario dinámico, quien, siendo capaz de corromper incluso una pequeña fracción del total de jugadores, no tiene dificultad en corromper a todos los jugadores en el grupo más pequeño. subprotocolo. Una propiedad/técnica adicional: la honestidad perezosa Un usuario honesto sigue lo prescrito. instrucciones, que incluyen estar en línea y ejecutar el protocolo. Desde entonces, Algorand solo tiene una modesta requisito de computación y comunicación, estar en línea y ejecutar el protocolo “en el antecedentes” no es un sacrificio importante. Por supuesto, algunas “ausencias” entre jugadores honestos, como aquellas debido a una pérdida repentina de conectividad o la necesidad de reiniciar, se toleran automáticamente (porque siempre podemos considerar que esos pocos jugadores sean temporalmente maliciosos). Señalemos, sin embargo, que Algorand se puede adaptar simplemente para que funcione en un nuevo modelo, en el que los usuarios honestos puedan ser fuera de línea la mayor parte del tiempo. Nuestro nuevo modelo se puede presentar informalmente de la siguiente manera. Honestidad perezosa. En términos generales, un usuario i es vago pero honesto si (1) sigue todas las instrucciones prescritas. instrucciones, cuando se le pide que participe en el protocolo, y (2) se le pide que participe al protocolo sólo en raras ocasiones y con la debida antelación. Con una noción tan relajada de honestidad, podemos estar aún más seguros de que las personas honestas serán a mano cuando los necesitemos, y Algorand garantizan que, cuando este sea el caso, El sistema funciona de forma segura incluso si, en un momento dado, la mayoría de los jugadores participantes son maliciosos.1.3 Trabajo estrechamente relacionado Los enfoques de prueba de trabajo (como los citados [29] y [4]) son bastante ortogonales a los nuestros. Así son los enfoques basados en el acuerdo bizantino de transmisión de mensajes o en la práctica tolerancia a fallos bizantinos (como el citado [8]). De hecho, estos protocolos no pueden ejecutarse entre el conjunto de todos los usuarios y no pueden, en nuestro modelo, estar restringido a un conjunto adecuadamente pequeño de usuarios. De hecho, nuestro poderoso adversario mi corrompe inmediatamente a todos los usuarios involucrados en un pequeño conjunto encargado de ejecutar un protocolo BA. Nuestro enfoque podría considerarse relacionado con la prueba de participación [2], en el sentido de que el "poder" de los usuarios en la construcción de bloques es proporcional al dinero que poseen en el sistema (a diferencia de, digamos, el dinero que han puesto en “escrow”). El artículo más cercano al nuestro es el Sleepy Consensus Model of Pass and Shi [30]. Para evitar el cálculo pesado requerido en el enfoque proof-of-work, su artículo se basa (y amablemente) créditos) Clasificación criptográfica secreta de Algorand. Con este aspecto crucial en común, varios Existen diferencias significativas entre nuestros artículos. En particular, (1) Su configuración sólo está permitida. Por el contrario, Algorand también es un sistema sin permisos. (2) Usan un protocolo estilo Nakamoto y, por lo tanto, su blockchain se bifurca con frecuencia. aunque prescindiendo de proof-of-work, en su protocolo se le pide a un líder seleccionado en secreto que alargue el válido más largo (en un sentido más rico) blockchain. Por lo tanto, las bifurcaciones son inevitables y hay que esperar a que el bloque está lo suficientemente “profundo” en la cadena. De hecho, para lograr sus objetivos con un adversario capaces de corrupciones adaptativas, requieren que un bloque tenga una profundidad poli(N), donde N representa el Número total de usuarios del sistema. Observe que, incluso suponiendo que se pudiera producir un bloque en un minuto, si hubiera N = 1 millón de usuarios, entonces habría que esperar unos 2 millones de años para un bloque se convierta en N 2 de profundidad, y durante aproximadamente 2 años para que un bloque alcance N 2 de profundidad. Por el contrario, El blockchain de Algorand se bifurca solo con una probabilidad insignificante, a pesar de que el Adversario es corrupto. usuarios de forma inmediata y adaptable, y se puede confiar inmediatamente en sus nuevos bloques. (3) No manejan acuerdos bizantinos individuales. En cierto sentido, sólo garantizan “eventual consenso sobre una secuencia creciente de valores”. El suyo es un protocolo de replicación estatal, más bien que uno de BA, y no se puede utilizar para llegar a un acuerdo bizantino sobre un valor de interés individual. Por el contrario, Algorand también se puede utilizar sólo una vez, si así se desea, para permitir a millones de usuarios acceder rápidamente llegar a un acuerdo bizantino sobre un valor de interés específico. (4) Requieren relojes débilmente sincronizados. Es decir, los relojes de todos los usuarios están compensados por un pequeño tiempo. δ. Por el contrario, en Algorand, los relojes sólo necesitan tener (esencialmente) la misma "velocidad". (5) Su protocolo funciona con usuarios perezosos pero honestos o con la mayoría honesta de usuarios en línea. Amablemente le dan crédito a Algorand por plantear el problema de los usuarios honestos que se desconectan en masa y por presentando como respuesta el modelo de honestidad perezosa. Su protocolo no sólo funciona en los perezosos modelo de honestidad, sino también en su modelo adversario somnoliento, donde un adversario elige qué usuarios están en línea y cuáles fuera de línea, siempre que, en todo momento, la mayoría de los usuarios en línea sean honestos.2 2La versión original de su artículo en realidad consideraba sólo la seguridad en su modelo adversario y somnoliento. el versión original de Algorand, que precede a la suya, también preveía explícitamente asumir que una mayoría dada de los Los jugadores en línea siempre son honestos, pero lo excluyen explícitamente de su consideración, a favor del modelo de honestidad perezosa. (Por ejemplo, si en algún momento la mitad de los usuarios honestos deciden desconectarse, entonces la mayoría de los usuarios en línea puede muy bien ser malicioso. Por lo tanto, para evitar que esto suceda, el Adversario debería forzar la mayor parte de sus jugadores corruptos también se desconecten, lo que claramente va en contra de sus propios intereses.) Observe que un protocolo con una mayoría de jugadores perezosos pero honestos funciona bien si la mayoría de los usuarios en línea son siempre maliciosos. Esto es así, porque un número suficiente de jugadores honestos, sabiendo que van a ser cruciales en algún momento excepcional, elegirán no desconectarse en esos momentos, ni pueden ser forzados a desconectarse por el Adversario, ya que no sabe quién es el Los jugadores honestos cruciales podrían serlo.(6) Requieren una mayoría simple y honesta. Por el contrario, la versión actual de Algorand requiere una mayoría honesta de 2/3. Otro artículo cercano a nosotros es Ouroboros: A Provably Secure Proof-of-Stake Blockchain Protocol, por Kiayias, Russell, David y Oliynykov [20]. Además, su sistema apareció después del nuestro. También utiliza clasificación criptográfica para prescindir de la prueba de trabajo de manera demostrable. Sin embargo, sus El sistema es, nuevamente, un protocolo al estilo Nakamoto, en el que las bifurcaciones son inevitables y frecuentes. (Sin embargo, en su modelo, los bloqueos no tienen por qué ser tan profundos como en el modelo de consenso somnoliento). Además, su sistema se basa en los siguientes supuestos: en palabras de los propios autores, “(1) el La red es altamente sincrónica, (2) la mayoría de las partes interesadas seleccionadas están disponibles según sea necesario. para participar en cada época, (3) las partes interesadas no permanecen desconectadas durante largos períodos de tiempo, (4) la adaptabilidad de las corrupciones está sujeta a un pequeño retraso que se mide en rondas lineales en el parámetro de seguridad”. Por el contrario, Algorand, con una probabilidad abrumadora, no tiene bifurcación y no se basa en ninguno de estos 4 supuestos. En particular, en Algorand, el Adversario puede corrompe instantáneamente a los usuarios que quiere controlar.

Einführung

Geld wird immer virtueller. Es wurde geschätzt, dass etwa 80 % der Vereinigten Staaten Dollar existieren heute nur noch als Hauptbucheinträge [5]. Andere Finanzinstrumente ziehen nach. In einer idealen Welt, in der wir auf eine allgemein vertrauenswürdige zentrale Instanz zählen könnten, wären wir immun Um allen möglichen Cyber-Angriffen standzuhalten, könnten Geld- und andere Finanztransaktionen ausschließlich elektronisch abgewickelt werden. Leider leben wir nicht in einer solchen Welt. Dementsprechend sind dezentrale Kryptowährungen, wie z als Bitcoin [29] und „smart contract“-Systeme wie Ethereum wurden [4] vorgeschlagen. Bei Das Herzstück dieser Systeme ist ein gemeinsames Hauptbuch, das eine Abfolge von Transaktionen zuverlässig aufzeichnet. ∗Dies ist die formellere (und asynchronere) Version des ArXiv-Artikels des zweiten Autors [24], eines Artikels basiert auf dem von Gorbunov und Micali [18]. Die Technologien von Algorand sind Gegenstand des Folgenden Patentanmeldungen: US62/117.138 US62/120.916 US62/142.318 US62/218.817 US62/314.601 PCT/US2016/018300 US62/326.865 62/331.654 US62/333.340 US62/343.369 US62/344.667 US62/346.775 US62/351.011 US62/653.482 US62/352.195 US62/363.970 US62/369.447 US62/378.753 US62/383.299 US62/394.091 US62/400.361 US62/403.403 US62/410.721 US62/416.959 US62/422.883 US62/455.444 US62/458.746 US62/459.652 US62/460.928 US62/465.931so vielfältig wie Zahlungen und Verträge, und zwar auf manipulationssichere Weise. Die Technologie der Wahl Die Gewährleistung dieser Manipulationssicherheit ist blockchain. Blockchains stecken hinter Anwendungen wie Kryptowährungen [29], Finanzanwendungen [4] und das Internet der Dinge [3]. Mehrere Techniken Zur Verwaltung blockchain-basierter Ledger wurden vorgeschlagen: Proof of Work [29], Proof of Stake [2], praktische byzantinische Fehlertoleranz [8] oder eine Kombination davon. Derzeit kann die Verwaltung von Hauptbüchern jedoch ineffizient sein. Zum Beispiel proof-of-work von Bitcoin Der Ansatz (basierend auf dem ursprünglichen Konzept von [14]) erfordert einen großen Rechenaufwand und ist verschwenderisch und skaliert schlecht [1]. Darüber hinaus konzentriert es de facto die Macht in sehr wenigen Händen. Wir möchten daher eine neue Methode zur Implementierung eines öffentlichen Hauptbuchs vorschlagen, das Folgendes bietet: Bequemlichkeit und Effizienz eines zentralisierten Systems, das von einer vertrauenswürdigen und unantastbaren Autorität betrieben wird, ohne die Ineffizienzen und Schwächen aktueller dezentraler Implementierungen. Wir nennen unseren Ansatz Algorand, weil wir algorithmische Zufälligkeit verwenden, um basierend auf dem bisher erstellten Hauptbuch auszuwählen, eine Gruppe von Verifizierern, die für die Erstellung des nächsten Blocks gültiger Transaktionen verantwortlich sind. Natürlich, Wir stellen sicher, dass solche Auswahlen nachweislich vor Manipulationen geschützt und bis dahin unvorhersehbar sind in letzter Minute, sondern auch, dass sie letztendlich allgemein klar sind. Der Ansatz von Algorand ist durchaus demokratisch, weder im Prinzip noch de facto erstellt verschiedene Klassen von Benutzern (als „Miner“ und „normale Benutzer“ in Bitcoin). In Algorand „alle Die Macht liegt bei der Menge aller Benutzer.“ Eine bemerkenswerte Eigenschaft von Algorand ist, dass sein Transaktionsverlauf nur mit sehr kleinen Teilen möglich ist Wahrscheinlichkeit (z. B. eins zu einer Billion oder sogar 10−18). Algorand kann auch einige rechtliche Aspekte ansprechen und politische Bedenken. Der Algorand-Ansatz gilt für blockchains und allgemeiner für jede Generierungsmethode eine manipulationssichere Folge von Blöcken. Wir haben tatsächlich eine neue Methode vorgeschlagen – eine Alternative zu und effizienter als blockchains – das kann von unabhängigem Interesse sein. 1.1 Annahme und technische Probleme von Bitcoin Bitcoin ist ein sehr ausgeklügeltes System und hat viele weitere Forschungen inspiriert. Doch es ist auch problematisch. Fassen wir die zugrunde liegende Annahme und die technischen Probleme zusammen – welche werden tatsächlich von praktisch allen Kryptowährungen geteilt, die, wie Bitcoin, auf proof-of-work basieren. Für diese Zusammenfassung genügt es, sich daran zu erinnern, dass ein Benutzer in Bitcoin mehrere öffentliche Schlüssel besitzen kann eines digitalen Signatursystems, dass Geld mit öffentlichen Schlüsseln verknüpft ist und dass eine Zahlung eine ist Digitale Signatur, die einen Geldbetrag von einem öffentlichen Schlüssel auf einen anderen überträgt. Im Wesentlichen, Bitcoin organisiert alle verarbeiteten Zahlungen in einer Kette von Blöcken, B1, B2, . . ., jeweils bestehend aus mehreren Zahlungen, so dass alle Zahlungen von B1, in beliebiger Reihenfolge, gefolgt von denen von B2, in beliebiger Reihenfolge, usw. stellen eine Folge gültiger Zahlungen dar. Jeder Block wird im Durchschnitt alle 10 Minuten generiert. Bei dieser Abfolge von Blöcken handelt es sich um eine Kette, da sie so strukturiert ist, dass jede Änderung auch möglich ist in einem einzelnen Block, dringt in alle nachfolgenden Blöcke ein und erleichtert so das Erkennen von Änderungen die Zahlungshistorie. (Wie wir sehen werden, wird dies dadurch erreicht, dass in jeden Block ein kryptografischer Code eingefügt wird hash des vorherigen.) Eine solche Blockstruktur wird als blockchain bezeichnet. Annahme: Ehrliche Mehrheit der Rechenleistung Bitcoin geht davon aus, dass keine böswillige Absicht vorliegt Eine Entität (noch eine Koalition koordinierter böswilliger Entitäten) kontrolliert den Großteil der Rechenleistung Macht, die der Blockgenerierung gewidmet ist. Eine solche Entität wäre tatsächlich in der Lage, blockchain zu ändern,und so die Zahlungshistorie nach Belieben umschreiben. Es könnte insbesondere eine Zahlung \(\wp\) leisten, Erhalten Sie die bezahlten Leistungen und „löschen“ Sie dann jede Spur von \(\wp\). Technisches Problem 1: Rechenverschwendung Bitcoins proof-of-work-Ansatz zum Blockieren Die Generierung erfordert einen außerordentlichen Rechenaufwand. Derzeit sind es nur ein paar Hundert Tausende öffentliche Schlüssel im System können die 500 leistungsstärksten Supercomputer nur aufbringen lediglich 12,8 % der gesamten Rechenleistung, die von den Bitcoin-Spielern benötigt wird. Dies Der Rechenaufwand würde erheblich zunehmen, wenn deutlich mehr Benutzer dem System beitreten würden. Technisches Problem 2: Machtkonzentration Heute aufgrund der exorbitanten Menge an Berechnung erforderlich, ein Benutzer, der versucht, einen neuen Block mithilfe eines normalen Desktops zu generieren (geschweige denn a Handy), rechnet damit, Geld zu verlieren. Um einen neuen Block mit einem gewöhnlichen Computer zu berechnen, Die erwarteten Kosten für den für die Berechnung erforderlichen Strom übersteigen die erwartete Belohnung. Nur die Verwendung von Pools speziell gebauter Computer (die nichts anderes tun als „neue Blöcke abbauen“), einer könnte erwarten, durch die Generierung neuer Blöcke einen Gewinn zu erzielen. Dementsprechend sind es heute de facto zwei disjunkte Benutzerklassen: normale Benutzer, die nur Zahlungen leisten, und spezialisierte Mining-Pools, die nur nach neuen Blöcken suchen. Es sollte daher nicht überraschen, dass seit kurzem die gesamte Rechenleistung für Block Generation liegt in nur fünf Pools. Unter solchen Bedingungen ist die Annahme, dass eine Mehrheit der Rechenleistung ist ehrlich, wird weniger glaubwürdig. Technisches Problem 3: Mehrdeutigkeit In Bitcoin ist blockchain nicht unbedingt eindeutig. Tatsächlich sein letzter Teil verzweigt sich oft: Der blockchain kann – sagen wir – B1 sein, . . . , Bk, B′ k+1, B′ k+2, gem ein Benutzer und B1, . . . , Bk, B'' k+1, B'' k+2, B'' k+3 laut einem anderen Benutzer. Erst nach mehreren Blöcken Kann man einigermaßen sicher sein, dass die ersten k + 3 Blöcke gleich sind, wenn sie zur Kette hinzugefügt wurden? für alle Benutzer. Daher kann man sich nicht sofort auf die im letzten Block enthaltenen Zahlungen verlassen die Kette. Es ist sinnvoller abzuwarten und zu sehen, ob der Block ausreichend tief im Inneren sitzt blockchain und somit ausreichend stabil. Unabhängig davon wurden auch Bedenken hinsichtlich der Strafverfolgung und der Geldpolitik in Bezug auf Bitcoin.1 geäußert 1.2 Algorand, kurz und bündig Einstellung Algorand arbeitet in einer sehr schwierigen Umgebung. Kurz gesagt, (a) Erlaubnisfreie und erlaubte Umgebungen. Algorand funktioniert effizient und sicher in einer völlig erlaubnisfreien Umgebung, in der beliebig viele Benutzer dem beitreten dürfen System jederzeit und ohne jegliche Überprüfung oder Erlaubnis jeglicher Art zu öffnen. Natürlich funktioniert Algorand noch besser in einer zugelassenen Umgebung. 1Die durch Bitcoin-Zahlungen gebotene (Pseudo-)Anonymität kann zur Geldwäsche und/oder Finanzierung missbraucht werden von kriminellen Personen oder terroristischen Organisationen. Traditionelle Banknoten oder Goldbarren, die im Prinzip perfekt sind Anonymität sollte die gleiche Herausforderung darstellen, aber die Physizität dieser Währungen verlangsamt das Geld erheblich Übermittlungen, um ein gewisses Maß an Überwachung durch Strafverfolgungsbehörden zu ermöglichen. Die Fähigkeit, „Geld zu drucken“, ist eine der grundlegendsten Befugnisse eines Nationalstaats. Im Prinzip also das Massive Die Einführung einer unabhängig schwankenden Währung könnte diese Macht einschränken. Derzeit ist Bitcoin jedoch noch lange nicht da Es stellt eine Bedrohung für die staatliche Geldpolitik dar und wird es aufgrund seiner Skalierbarkeitsprobleme möglicherweise nie sein.(b) Sehr kontroverse Umgebungen. Algorand widersteht einem sehr mächtigen Gegner, der es kann (1) jeden Benutzer, den er möchte, zu jeder Zeit, die er möchte, sofort korrumpieren, vorausgesetzt, dass in a In einer erlaubnisfreien Umgebung gehören zwei Drittel des Geldes im System ehrlichen Benutzern. (In einem (In einer genehmigten Umgebung, unabhängig vom Geld, reicht es aus, dass 2/3 der Benutzer ehrlich sind.) (2) vollständige Kontrolle und perfekte Koordinierung aller beschädigten Benutzer; und (3) Planen Sie die Zustellung aller Nachrichten, vorausgesetzt, dass jede Nachricht von einem ehrlichen Benutzer gesendet wird erreicht 95 % der ehrlichen Nutzer innerhalb einer Zeit \(\lambda\)m, die allein von der Größe von m abhängt. Haupteigenschaften Trotz der Anwesenheit unseres mächtigen Gegners in Algorand • Der Rechenaufwand ist minimal. Im Wesentlichen egal, wie viele Benutzer es gibt Im System vorhanden, muss jeder der fünfzehnhundert Benutzer höchstens einige Sekunden ausführen Berechnung. • Ein neuer Block wird in weniger als 10 Minuten generiert und verlässt de facto nie den blockchain. Beispielsweise ist zu erwarten, dass die Zeit zum Generieren eines Blocks in der ersten Ausführungsform kürzer ist als Λ + 12,4\(\lambda\), wobei Λ die Zeit ist, die erforderlich ist, um einen Block in einem Peer-to-Peer-Klatsch zu verbreiten Mode, egal welche Blockgröße man wählt, und \(\lambda\) ist die Zeit, um 1.500 200B lange Nachrichten zu verbreiten. (Da in einem wirklich dezentralisierten System Λ im Wesentlichen eine intrinsische Latenz ist, in Algorand Der begrenzende Faktor bei der Blockgenerierung ist die Netzwerkgeschwindigkeit.) Die zweite Ausführungsform hat tatsächlich experimentell getestet (von?), was darauf hindeutet, dass ein Block in weniger als 40 generiert wird Sekunden. Darüber hinaus darf blockchain von Algorand nur mit vernachlässigbarer Wahrscheinlichkeit (d. h. weniger als eins) gegabelt werden in einer Billion), und so können Benutzer die in einem neuen Block enthaltenen Zahlungen weiterleiten, sobald die Block erscheint. • Die gesamte Macht liegt bei den Benutzern selbst. Algorand ist ein wirklich verteiltes System. Insbesondere Es gibt keine exogenen Einheiten (wie die „Miner“ in Bitcoin), die welche Transaktionen kontrollieren können werden anerkannt. Algorands Techniken. 1. Ein neues und schnelles Byzantinisches Abkommensprotokoll. Algorand generiert einen neuen Block über ein neues kryptografisches, nachrichtenweitergebendes, binäres Byzantine Agreement (BA)-Protokoll, BA⋆. Protokoll BA⋆erfüllt nicht nur einige zusätzliche Eigenschaften (auf die wir gleich noch eingehen werden), sondern ist auch sehr schnell. Grob gesagt besteht die Version mit Binäreingabe aus einer dreistufigen Schleife, in der ein Spieler eine Single sendet Nachricht mi an alle anderen Spieler. Ausgeführt in einem vollständigen und synchronen Netzwerk, mit mehr Wenn mehr als 2/3 der Spieler ehrlich sind, mit einer Wahrscheinlichkeit von > 1/3, endet das Protokoll nach jeder Schleife Vereinbarung. (Wir betonen, dass das Protokoll BA⋆der ursprünglichen Definition der byzantinischen Vereinbarung entspricht von Pease, Shostak und Lamport [31], ohne Abschwächungen.) Algorand nutzt dieses binäre BA-Protokoll, um in unserer unterschiedlichen Kommunikation eine Einigung zu erzielen Modell, auf jedem neuen Block. Der vereinbarte Block wird dann über eine vorgeschriebene Anzahl zertifiziert Digitale Signatur der entsprechenden Prüfer erstellt und über das Netzwerk verbreitet. 2. Kryptografische Sortierung. Obwohl es sehr schnell ist, würde das Protokoll BA⋆ von weiteren Vorteilen profitieren Geschwindigkeit, wenn sie von Millionen von Benutzern gespielt wird. Dementsprechend wählt Algorand die künftigen Spieler von BA⋆ auseine viel kleinere Teilmenge der Menge aller Benutzer. Um eine andere Art von Machtkonzentration zu vermeiden Problem, jeder neue Block Br wird durch eine neue Ausführung von BA⋆ konstruiert und vereinbart, durch einen separaten Satz ausgewählter Prüfer, SV r. Im Prinzip kann die Auswahl eines solchen Sets genauso schwierig sein wie Br direkt auswählen. Wir begegnen diesem potenziellen Problem mit einem Ansatz, den wir „umfassend“ nennen der aufschlussreiche Vorschlag von Maurice Herlihy, kryptografische Sortierung. Sortierung ist die Praxis von Auswahl von Beamten nach dem Zufallsprinzip aus einer großen Gruppe berechtigter Personen [6]. (Sortierung wurde geübt über Jahrhunderte hinweg: zum Beispiel durch die Republiken Athen, Florenz und Venedig. In der modernen Justiz Systeme werden bei der Auswahl der Jurys häufig Zufallsauswahlverfahren eingesetzt. In letzter Zeit gibt es auch Zufallsstichproben für Wahlen befürwortet von David Chaum [9].) In einem dezentralen System natürlich die Wahl der Es ist problematisch, zufällige Münzen zu verwenden, um die Mitglieder jedes Verifizierersatzes SV r zufällig auszuwählen. Wir greifen daher auf Kryptographie zurück, um jeden Verifizierersatz aus der Population aller Benutzer auszuwählen. auf eine Weise, die garantiert automatisch (d. h. ohne Nachrichtenaustausch) und zufällig erfolgt. Im Wesentlichen verwenden wir eine kryptografische Funktion, um den vorherigen Block automatisch zu ermitteln Br−1, ein Benutzer, der Leiter, der dafür verantwortlich ist, den neuen Block Br vorzuschlagen, und der Verifizierer SV r, in Aufgabe ist es, eine Einigung über den vom Vorsitzenden vorgeschlagenen Block zu erzielen. Da böswillige Benutzer Einfluss nehmen können Die Zusammensetzung von Br−1 (z. B. durch Auswahl einiger seiner Zahlungen) konstruieren und verwenden wir speziell Zusätzliche Eingaben, um zu beweisen, dass der Anführer für den r-ten Block und der Verifizierersatz SV r tatsächlich vorhanden sind zufällig ausgewählt. 3. Die Menge (Samen) Qr. Wir verwenden dazu den letzten Block Br−1 im blockchain Bestimmen Sie automatisch den nächsten Verifizierersatz und den Leiter, der für den Aufbau des neuen Blocks verantwortlich ist Br. Die Herausforderung bei diesem Ansatz besteht darin, dass durch die einfache Auswahl einer etwas anderen Zahlung im In der letzten Runde erlangt unser mächtiger Gegner eine enorme Kontrolle über den nächsten Anführer. Auch wenn er Obwohl er nur 1/1000 der Spieler/Gelder im System kontrollierte, konnte er sicherstellen, dass alle Anführer dies tun bösartig. (Siehe Abschnitt 4.1 zur Intuition.) Diese Herausforderung ist für alle proof-of-stake-Ansätze von zentraler Bedeutung. und nach unserem besten Wissen wurde es bis jetzt noch nicht zufriedenstellend gelöst. Um dieser Herausforderung gerecht zu werden, bauen wir gezielt und sorgfältig ein separates und kontinuierlich aktualisiertes System auf definierte Größe Qr, die nachweislich nicht nur unvorhersehbar, sondern auch nicht beeinflussbar ist mächtiger Gegner. Wir können Qr als den r-ten Samen bezeichnen, da Algorand von Qr auswählt, Über eine geheime kryptografische Sortierung werden alle Benutzer, die bei der Generierung eine besondere Rolle spielen, ermittelt rter Block. 4. Geheime krytografische Sortierung und geheime Anmeldeinformationen. Zufällige und eindeutige Verwendung des aktuellen letzten Blocks, Br−1, um den Verifizierersatz und den verantwortlichen Leiter auszuwählen Der Bau des neuen Blocks Br reicht nicht aus. Da Br−1 bekannt sein muss, bevor Br erzeugt wird, Auch die letzte in Br−1 enthaltene, nicht beeinflussbare Größe Qr−1 muss bekannt sein. Dementsprechend also sind die Verifizierer und der Leiter, der für die Berechnung des Blocks Br verantwortlich ist. Also unser mächtiger Gegner könnte sie alle sofort korrumpieren, bevor sie sich auf eine Diskussion über Br einlassen, um zu bekommen volle Kontrolle über den von ihnen zertifizierten Block. Um diesem Problem vorzubeugen, erfahren Führungskräfte (und eigentlich auch Prüfer) heimlich von ihrer Rolle, können es aber Berechnen Sie einen ordnungsgemäßen Berechtigungsnachweis, der in der Lage ist, jedem nachzuweisen, der diese Rolle tatsächlich innehat. Wann Ein Benutzer erkennt privat, dass er der Anführer für den nächsten Block ist, und baut zunächst heimlich seinen Block zusammen Er erstellt einen eigenen vorgeschlagenen neuen Block und verbreitet ihn dann zusammen mit seinem eigenen (damit er zertifiziert werden kann). Berechtigung. Auf diese Weise erkennt der Gegner jedoch sofort, wer der Anführer des nächsten ist Block ist, und obwohl er ihn sofort korrumpieren kann, wird es für den Gegner zu spät sein Einfluss auf die Wahl eines neuen Blocks haben. Tatsächlich kann er die Botschaft des Anführers nicht mehr „zurückrufen“.als eine mächtige Regierung eine von WikiLeaks viral verbreitete Botschaft zurück in die Flasche stecken kann. Wie wir sehen werden, können wir weder die Einzigartigkeit eines Anführers garantieren, noch dafür, dass jeder sicher ist, wer der Anführer ist ist, einschließlich des Anführers selbst! Aber in Algorand ist ein eindeutiger Fortschritt garantiert. 5. Spieleraustauschbarkeit. Nachdem er einen neuen Block vorgeschlagen hat, könnte der Anführer genauso gut „sterben“ (oder sterben). vom Gegner korrumpiert), weil seine Arbeit erledigt ist. Für die Verifizierer in SV r sind die Dinge jedoch weniger einfach. Da ich für die Beglaubigung des neuen Blocks Br mit ausreichend vielen Unterschriften verantwortlich bin, Sie müssen zunächst eine byzantinische Einigung über den vom Führer vorgeschlagenen Block herbeiführen. Das Problem ist, dass Egal wie effizient es ist, BA⋆erfordert mehrere Schritte und die Ehrlichkeit von > 2/3 seiner Spieler. Dies stellt ein Problem dar, da die Spielermenge von BA⋆aus Effizienzgründen aus der kleinen Menge SV r besteht wird zufällig aus der Menge aller Benutzer ausgewählt. So ist unser mächtiger Gegner zwar unfähig korrupt 1/3 aller Benutzer, kann sicherlich alle Mitglieder von SV r korrumpieren! Glücklicherweise werden wir beweisen, dass das Protokoll BA⋆, das durch die Verbreitung von Nachrichten auf Peer-to-Peer-Art ausgeführt wird, vom Spieler austauschbar ist. Diese neuartige Anforderung bedeutet, dass das Protokoll korrekt und korrekt ist erreicht effizient einen Konsens, auch wenn jeder seiner Schritte völlig neu und zufällig ausgeführt wird und unabhängig ausgewählter Satz von Spielern. Somit gibt es bei Millionen von Benutzern jeweils eine kleine Gruppe von Spielern einem Schritt von BA⋆ zugeordnet, hat höchstwahrscheinlich einen leeren Schnittpunkt mit der nächsten Menge. Darüber hinaus werden die Spielermengen verschiedener Schritte von BA⋆ wahrscheinlich völlig unterschiedlich sein Kardinalitäten. Darüber hinaus wissen die Mitglieder jeder Gruppe nicht, wer die nächste Spielergruppe sein wird sein und keinen inneren Zustand heimlich passieren. Die Eigenschaft des austauschbaren Spielers ist tatsächlich entscheidend, um den dynamischen und sehr mächtigen Spieler zu besiegen Gegner, den wir uns vorstellen. Wir glauben, dass sich Protokolle mit austauschbaren Playern in vielen Fällen als entscheidend erweisen werden Kontexte und Anwendungen. Sie werden insbesondere für die sichere Ausführung kleiner Unterprotokolle von entscheidender Bedeutung sein Eingebettet in ein größeres Spieleruniversum mit einem dynamischen Gegner, der selbst korrumpieren kann Ein kleiner Bruchteil der Gesamtzahl der Spieler hat keine Schwierigkeiten, alle Spieler in den kleineren zu korrumpieren Unterprotokoll. Eine zusätzliche Eigenschaft/Technik: Faule Ehrlichkeit Ein ehrlicher Benutzer befolgt seine Vorschriften Anweisungen, zu denen auch gehört, online zu sein und das Protokoll auszuführen. Seitdem ist Algorand nur bescheiden Rechen- und Kommunikationsanforderungen, Online-Sein und Ausführung des Protokolls „im Hintergrund“ ist kein großes Opfer. Natürlich gibt es auch ein paar „Abwesenheiten“ unter ehrlichen Spielern, wie z aufgrund eines plötzlichen Verbindungsverlusts oder der Notwendigkeit eines Neustarts werden automatisch toleriert (weil Wir können so wenige Spieler immer als vorübergehend böswillig betrachten. Wir weisen jedoch darauf hin, dass Algorand einfach angepasst werden kann, um in einem neuen Modell zu funktionieren, in dem ehrliche Benutzer vorhanden sind Die meiste Zeit offline. Unser neues Modell kann wie folgt informell vorgestellt werden. Faule Ehrlichkeit. Grob gesagt ist ein Benutzer faul, aber ehrlich, wenn er (1) alle seine Vorschriften befolgt Anweisungen, wenn er zur Teilnahme am Protokoll aufgefordert wird, und (2) er zur Teilnahme aufgefordert wird nur selten und mit entsprechender Vorankündigung auf das Protokoll eingehen. Mit einer so entspannten Vorstellung von Ehrlichkeit sind wir möglicherweise noch zuversichtlicher, dass ehrliche Menschen es sein werden zur Hand, wenn wir sie brauchen, und Algorand garantieren, dass, wenn dies der Fall ist, Das System arbeitet auch dann sicher, wenn zu einem bestimmten Zeitpunkt Die Mehrheit der teilnehmenden Spieler ist böswillig.1.3 Eng verwandte Arbeit Proof-of-Work-Ansätze (wie die zitierten [29] und [4]) sind ziemlich orthogonal zu unserem. So sind die Ansätze, die auf byzantinischer Vereinbarung zur Nachrichtenübermittlung oder praktischer byzantinischer Fehlertoleranz basieren (wie das zitierte [8]). Tatsächlich können diese Protokolle nicht von allen Benutzern ausgeführt werden und können auch nicht in unserem Modell auf eine entsprechend kleine Gruppe von Benutzern beschränkt sein. Tatsächlich ist unser mächtiger Gegner mein beschädigt sofort alle beteiligten Benutzer einer kleinen Gruppe, die tatsächlich ein BA-Protokoll ausführen soll. Unser Ansatz könnte als mit dem Proof of Stake [2] verknüpft betrachtet werden, in dem Sinne, dass die „Macht“ der Benutzer beim Blockaufbau ist proportional zu dem Geld, das sie im System besitzen (im Gegensatz zu – sagen wir – zu das Geld, das sie in ein „Treuhandkonto“ eingezahlt haben). Das Papier, das unserem am nächsten kommt, ist das Sleepy Consensus Model von Pass und Shi [30]. Um das zu vermeiden Der proof-of-work-Ansatz erfordert umfangreiche Berechnungen, auf die sich ihr Artikel (und freundlicherweise) stützt Credits) Algorands geheime kryptografische Sortierung. Mit diesem entscheidenden Aspekt haben mehrere gemeinsam Es bestehen erhebliche Unterschiede zwischen unseren Papieren. Insbesondere (1) Ihre Einstellung ist nur erlaubt. Im Gegensatz dazu ist Algorand auch ein erlaubnisloses System. (2) Sie verwenden ein Protokoll im Nakamoto-Stil, weshalb ihre blockchain häufig gegabelt werden. Obwohl Unter Verzicht auf proof-of-work wird in ihrem Protokoll ein heimlich ausgewählter Anführer gebeten, das zu verlängern längste gültige (in einem umfassenderen Sinne) blockchain. Gabelungen sind daher unvermeidlich und man muss darauf warten Der Block ist ausreichend „tief“ in der Kette. Tatsächlich, um ihre Ziele mit einem Gegner zu erreichen Da sie zu adaptiven Verfälschungen fähig sind, erfordern sie, dass ein Block poly(N) tief ist, wobei N das darstellt Gesamtzahl der Benutzer im System. Beachten Sie das, selbst wenn man davon ausgeht, dass ein Block erzeugt werden könnte Wenn es in einer Minute N = 1 Mio. Benutzer gäbe, müsste man etwa 2 Mio. Jahre darauf warten dass ein Block N-tief wird, und etwa zwei Jahre lang, bis ein Block N-tief wird. Im Gegensatz dazu Algorands blockchain gabelt sich nur mit vernachlässigbarer Wahrscheinlichkeit, auch wenn der Gegner korrupt ist Benutzer können sich sofort und anpassungsfähig an die neuen Blöcke wenden, auf die man sich sofort verlassen kann. (3) Sie behandeln keine einzelnen byzantinischen Verträge. In gewissem Sinne garantieren sie nur „letzterer Konsens über eine wachsende Reihe von Werten“. Es handelt sich vielmehr um ein Zustandsreplikationsprotokoll als ein BA-Wert und kann nicht verwendet werden, um eine byzantinische Einigung über einen individuellen Interessenwert zu erzielen. Im Gegensatz dazu kann Algorand bei Bedarf auch nur einmal verwendet werden, um Millionen von Benutzern schnell zu ermöglichen byzantinische Einigung über einen bestimmten Zinswert erzielen. (4) Sie erfordern schwach synchronisierte Uhren. Das heißt, die Uhren aller Benutzer sind um eine kleine Zeit verschoben δ. Im Gegensatz dazu müssen Uhren in Algorand nur (im Wesentlichen) die gleiche „Geschwindigkeit“ haben. (5) Ihr Protokoll funktioniert mit faulen, aber ehrlichen Benutzern oder mit der ehrlichen Mehrheit der Online-Benutzer. Sie danken Algorand dafür, dass er das Problem angesprochen hat, dass ehrliche Benutzer massenhaft offline gehen, und zwar dafür Als Antwort darauf wurde das Modell der faulen Ehrlichkeit vorgeschlagen. Ihr Protokoll funktioniert nicht nur bei Faulenzern Ehrlichkeitsmodell, aber auch in ihrem kontradiktorischen Sleepy-Modell, bei dem ein Gegner auswählt, welche Benutzer online sind und die offline sind, vorausgesetzt, dass die Mehrheit der Online-Nutzer jederzeit ehrlich ist.2 2Die ursprüngliche Version ihres Artikels betrachtete in ihrem kontradiktorischen, schläfrigen Modell tatsächlich nur Sicherheit. Die Die ursprüngliche Version von Algorand, die ihrer Vorgängerversion vorausgeht, sah auch ausdrücklich die Annahme vor, dass eine bestimmte Mehrheit der Online-Spieler sind immer ehrlich, haben dies jedoch zugunsten des Modells der faulen Ehrlichkeit ausdrücklich von der Betrachtung ausgeschlossen. (Wenn sich zum Beispiel irgendwann die Hälfte der ehrlichen Benutzer dafür entscheidet, offline zu gehen, dann die Mehrheit der Benutzer online kann sehr wohl bösartig sein. Um dies zu verhindern, sollte der Gegner die meisten seiner Kräfte erzwingen (Er hat auch korrupte Spieler dazu gebracht, offline zu gehen, was eindeutig seinem eigenen Interesse zuwiderläuft.) Beachten Sie, dass es sich um ein Protokoll mit einer Mehrheit handelt von faulen, aber ehrlichen Spielern funktioniert gut, wenn die Mehrheit der Online-Benutzer immer böswillig ist. Das ist so, weil Eine ausreichende Anzahl ehrlicher Spieler, die wissen, dass sie zu einem seltenen Zeitpunkt von entscheidender Bedeutung sein werden, werden wählen In diesen Momenten nicht offline zu gehen, noch kann der Gegner sie dazu zwingen, offline zu gehen, da er nicht weiß, wer das ist Entscheidend könnten ehrliche Spieler sein.(6) Sie erfordern eine einfache ehrliche Mehrheit. Im Gegensatz dazu erfordert die aktuelle Version von Algorand eine 2/3 ehrliche Mehrheit. Ein weiteres Papier in unserer Nähe ist Ouroboros: A Provably Secure Proof-of-Stake Blockchain Protocol, von Kiayias, Russell, David und Oliynykov [20]. Auch ihr System erschien nach unserem. Es auch nutzt kryptografische Sortierung, um auf nachweisbare Weise auf einen Arbeitsnachweis zu verzichten. Allerdings sind ihre Das System ist wiederum ein Protokoll im Nakamoto-Stil, bei dem Gabelungen sowohl unvermeidbar als auch häufig sind. (In ihrem Modell müssen die Blöcke jedoch nicht so tief sein wie im Sleepy-Consensus-Modell.) Darüber hinaus Ihr System basiert auf den folgenden Annahmen: In den Worten der Autoren selbst: „(1) die Das Netzwerk ist hochgradig synchron, (2) die Mehrheit der ausgewählten Stakeholder ist bei Bedarf verfügbar an jeder Epoche teilzunehmen, (3) die Stakeholder bleiben nicht für längere Zeit offline, (4) Die Adaptivität von Verfälschungen unterliegt einer kleinen Verzögerung, die in Runden linear gemessen wird der Sicherheitsparameter.“ Im Gegensatz dazu ist Algorand mit überwältigender Wahrscheinlichkeit forkfrei und stützt sich auf keine dieser vier Annahmen. Insbesondere in Algorand ist der Gegner dazu in der Lage die Benutzer, die er kontrollieren möchte, sofort korrumpieren.

Preliminares

2.1 Primitivas criptográficas Hashing ideal. Nos basaremos en una función criptográfica hash eficientemente computable, H, que asigna cadenas arbitrariamente largas a cadenas binarias de longitud fija. Siguiendo una larga tradición, modelamos H como un oracle aleatorio, esencialmente una función que asigna cada cadena posible s a una secuencia aleatoria y cadena binaria seleccionada independientemente (y luego fijada), H(s), de la longitud elegida. En este artículo, H tiene salidas de 256 bits de longitud. De hecho, dicha longitud es lo suficientemente corta como para hacer que el sistema eficiente y lo suficientemente largo para que el sistema sea seguro. Por ejemplo, queremos que H sea resistente a las colisiones. Es decir, debería ser difícil encontrar dos cadenas diferentes xey tales que H(x) = H(y). Cuando H es un oracle aleatorio con salidas de 256 bits de longitud, encontrar dicho par de cadenas es realmente difícil. (Probar al azar y confiar en la paradoja del cumpleaños requeriría 2256/2 = 2128 ensayos.) Firma Digital. Las firmas digitales permiten a los usuarios autenticar información entre sí sin compartir ninguna clave secreta. Un esquema de firma digital consta de tres rápidos algoritmos: un generador de claves probabilísticas G, un algoritmo de firma S y un algoritmo de verificación V. Dado un parámetro de seguridad k, un número entero suficientemente alto, un usuario i usa G para producir un par de Claves de k bits (es decir, cadenas): una clave pki "pública" y una clave de firma "secreta" coincidente. Fundamentalmente, un La clave pública no “traiciona” su correspondiente clave secreta. Es decir, incluso dado el conocimiento de pki, no otro que yo es capaz de calcular el esquí en menos de un tiempo astronómico. El usuario i utiliza ski para firmar mensajes digitalmente. Para cada mensaje posible (cadena binaria) m, primero hashes m y luego ejecuta el algoritmo S en las entradas H(m) y ski para producir la cadena de k bits sigpki(m) \(\triangleq\)S(H(m), esquí) .3 3Dado que H es resistente a colisiones, es prácticamente imposible que, al firmar uno “accidentalmente” un signo diferente. mensaje m′.La cadena binaria sigpki(m) se conoce como la firma digital de m (relativa a pki) y puede ser denotado más simplemente por sigi(m), cuando la clave pública pki se desprende del contexto. Cualquiera que conozca pki puede utilizarlo para verificar las firmas digitales producidas por i. Específicamente, en ingresa (a) la clave pública pki de un jugador i, (b) un mensaje m, y (c) una cadena s, es decir, la supuesta i firma digital del mensaje m, el algoritmo de verificación V genera SÍ o NO. Las propiedades que requerimos de un esquema de firma digital son: 1. Siempre se verifican las firmas legítimas: Si s = sigi(m), entonces V (pki, m, s) = Y ES; y 2. Las firmas digitales son difíciles de falsificar: sin conocimientos de esquí, el tiempo para encontrar una cadena como que V (pki, m, s) = Y ES, para un mensaje m nunca firmado por i, es astronómicamente largo. (Siguiendo los estrictos requisitos de seguridad de Goldwasser, Micali y Rivest [17], esto es cierto incluso si se puede obtener la firma de cualquier otro mensaje.) En consecuencia, para evitar que alguien más firme mensajes en su nombre, un jugador debe conservar su clave de firma secreta (de ahí el término "clave secreta") y para permitir que cualquiera verifique los mensajes Si firma, tengo interés en hacer pública su clave pki (de ahí el término “clave pública”). En general, un mensaje m no se puede recuperar a partir de su firma sigi(m). Para tratar virtualmente con firmas digitales que satisfacen la propiedad de “recuperabilidad” conceptualmente conveniente (es decir, Para garantizar que el firmante y el mensaje sean fácilmente computables a partir de una firma, definimos SIGpki(m) = (i, m, sigpki(m)) y SIGi(m) = (i, m, sigi(m)), si pki está claro. Firma digital única. También consideramos esquemas de firma digital (G, S, V) que satisfacen los siguiente propiedad adicional. 3. Unicidad. Es difícil encontrar cadenas pk′, m, s y s′ tales que ̸= s′ y V (pk′, m, s) = V (pk′, m, s′) = 1. (Tenga en cuenta que la propiedad de unicidad también se aplica a las cadenas pk′ que no se generan legítimamente claves públicas. Sin embargo, en particular, la propiedad de unicidad implica que, si se utilizara la generador de claves especificado G para calcular una clave pública pk junto con una clave secreta coincidente sk, y por lo tanto sabía sk, también le sería esencialmente imposible encontrar dos números digitales diferentes. firmas de un mismo mensaje en relación con pk.) Observaciones • Desde firmas únicas hasta funciones aleatorias verificables. En relación con lo digital esquema de firma con la propiedad de unicidad, el mapeo m \(\to\) H(sigi(m)) se asocia a cada cadena posible m, una cadena única, seleccionada aleatoriamente, de 256 bits, y la exactitud de esta El mapeo se puede probar con la firma sigi(m). Es decir, el esquema ideal de hashing y firma digital que satisface esencialmente la propiedad de unicidad. proporcionar una implementación elemental de una función aleatoria verificable, tal como se introdujo y por Micali, Rabin y Vadhan [27]. (Su implementación original fue necesariamente más compleja, ya que no se basaron en el hashing ideal).• Tres necesidades diferentes de firmas digitales. En Algorand, un usuario i depende de lo digital firmas para (1) Autenticar mis propios pagos. En esta aplicación, las claves pueden ser "a largo plazo" (es decir, utilizadas para firmar muchos mensajes durante un largo período de tiempo) y provienen de un esquema de firma ordinario. (2) Generar credenciales que demuestren que i tiene derecho a actuar en algunos pasos s de una ronda r. Aquí, Las claves pueden ser de largo plazo, pero deben provenir de un esquema que satisfaga la propiedad de unicidad. (3) Autenticar el mensaje que envío en cada paso en el que actúa. Aquí las claves deben ser efímero (es decir, destruido después de su primer uso), pero puede provenir de un esquema de firma ordinario. • Una simplificación de pequeño coste. Para simplificar, imaginamos que cada usuario i tenga una única clave a largo plazo. En consecuencia, dicha clave debe provenir de un esquema de firma con la unicidad propiedad. Esta simplicidad tiene un pequeño coste computacional. De hecho, normalmente son digitales únicos. Las firmas son ligeramente más caras de producir y verificar que las firmas ordinarias. 2.2 El libro público idealizado Algorand intenta imitar el siguiente sistema de pago, basado en un libro de contabilidad público idealizado. 1. El Estado Inicial. El dinero está asociado con claves públicas individuales (generadas de forma privada y propiedad de los usuarios). Dejando pk1, . . . , pkj sean las claves públicas iniciales y a1, . . . , aj sus respectivos cantidades iniciales de unidades monetarias, entonces el estado inicial es S0 = (pk1, a1), . . . , (pkj, aj), que se supone que es de conocimiento común en el sistema. 2. Pagos. Sea pk una clave pública que actualmente tiene \(\geq\)0 unidades monetarias, pk′ otra pública clave, y a′ un número no negativo no mayor que a. Entonces, un pago (válido) \(\wp\)es un pago digital firma, relativa a pk, que especifica la transferencia de a′ unidades monetarias de pk a pk′, juntas con alguna información adicional. En símbolos, \(\wp\)= SIGpk(pk, pk′, a′, I, H(I)), donde represento cualquier información adicional que se considere útil pero no confidencial (por ejemplo, tiempo información y un identificador de pago), y cualquier información adicional que se considere confidencial (p. ej., el motivo del pago, posiblemente las identidades de los propietarios de pk y pk′, etc.). Nos referimos a pk (o su propietario) como pagador, a cada pk′ (o su propietario) como beneficiario y a a′ como el monto del pago \(\wp\). Unirse gratis mediante pagos. Tenga en cuenta que los usuarios pueden unirse al sistema cuando lo deseen generando sus propios pares de claves pública/secreta. En consecuencia, la clave pública pk′ que aparece en el pago \(\wp\)anterior puede ser una clave pública recién generada que nunca había “poseído” dinero antes. 3. El libro mayor mágico. En el Sistema Idealizado, todos los pagos son válidos y aparecen en un formato a prueba de manipulaciones. lista L de conjuntos de pagos “publicados en el cielo” para que todos los vean: L = PAGO 1, PAGO 2, . . . ,Cada bloque PAY r+1 consta del conjunto de todos los pagos realizados desde la aparición del bloque PAGAR r. En el sistema ideal, aparece un nuevo bloque después de un período de tiempo fijo (o finito). Discusión. • Más pagos generales y resultados de transacciones no gastadas. De manera más general, si una clave pública pk posee una cantidad a, entonces un pago válido \(\wp\)de pk puede transferir las cantidades a′ 1, un' 2, . . ., respectivamente a las teclas pk′ 1, paquete′ 2, . . ., siempre que P ja' j \(\leq\)a. En Bitcoin y sistemas similares, el dinero propiedad de un paquete de clave pública se segrega en montos, y un pago \(\wp\)realizado por pk debe transferir dicho monto segregado a en su totalidad. Si pk desea transferir sólo una fracción a′ < a de a a otra clave, entonces también debe transferir la saldo, el resultado de la transacción no gastada, a otra clave, posiblemente pk mismo. Algorand también funciona con claves que tienen cantidades segregadas. Sin embargo, para centrarse en el aspectos novedosos de Algorand, es conceptualmente más sencillo ceñirse a nuestras formas de pago más simples y claves que tienen asociada una única cantidad. • Estado actual. El Esquema Idealizado no proporciona directamente información sobre la situación actual. estado del sistema (es decir, aproximadamente cuántas unidades monetarias tiene cada clave pública). Esta información es deducible del Magic Ledger. En el sistema ideal, un usuario activo almacena y actualiza continuamente la información de estado más reciente, o tendría que reconstruirlo, ya sea desde cero o desde la última vez que lo hizo. lo calculó. (En la próxima versión de este documento, aumentaremos Algorand para permitir su usuarios reconstruir el estado actual de manera eficiente.) • Seguridad y “Privacidad”. Las firmas digitales garantizan que nadie pueda falsificar un pago mediante otro usuario. En un pago \(\wp\), las claves públicas y el importe no están ocultas, pero sí la sensible información que soy. De hecho, solo H(I) aparece en \(\wp\), y dado que H es una función ideal hash, H(I) es un valor aleatorio de 256 bits y, por lo tanto, no hay forma de determinar qué era mejor que mediante simplemente adivinándolo. Sin embargo, para probar lo que yo era (por ejemplo, para probar el motivo del pago), el el pagador puede simplemente revelar I. La exactitud de la I revelada puede verificarse calculando H(I) y comparando el valor resultante con el último elemento de \(\wp\). De hecho, dado que H es resistente a colisiones, es difícil encontrar un segundo valor I′ tal que H(I) = H(I′). 2.3 Nociones y notaciones básicas Claves, usuarios y propietarios A menos que se especifique lo contrario, cada clave pública (“clave” para abreviar) es de largo plazo y relativa a un esquema de firma digital con la propiedad de unicidad. Una clave pública a la que me uno el sistema cuando otra clave pública j que ya está en el sistema realiza un pago a i. Para el color, personificamos las claves. Nos referimos a una clave i como “él”, decimos que es honesto, que envía y recibe mensajes, etc. Usuario es sinónimo de clave. Cuando queremos distinguir una clave de la persona a la que pertenece, utilizamos respectivamente los términos “clave digital” y “propietario”. Sistemas sin permiso y con permiso. Un sistema no tiene permiso si una clave digital está libre unirse en cualquier momento y un propietario puede poseer varias claves digitales; y está permitido, de lo contrario.Representación única Cada objeto en Algorand tiene una representación única. En particular, cada conjunto {(x, y, z, . . .) : x \(\in\)X, y \(\in\)Y, z \(\in\)Z, . . .} está ordenado de una manera preespecificada: por ejemplo, primero lexicográficamente en x, luego en y, etc. Relojes de la misma velocidad No existe un reloj global: cada usuario tiene su propio reloj. Relojes de usuario No es necesario sincronizarlo de ninguna manera. Sin embargo, suponemos que todos tienen la misma velocidad. Por ejemplo, cuando son las 12:00 p.m. según el reloj de un usuario i, pueden ser las 2:30 p.m. según el reloj de un usuario i. el reloj de otro usuario j, pero cuando serán las 12:01 según el reloj de i, serán las 2:31 según al reloj de j. Es decir, “un minuto es igual (suficientemente, esencialmente igual) para cada usuario”. Rondas Algorand está organizado en unidades lógicas, r = 0, 1, . . ., llamadas rondas. Usamos consistentemente superíndices para indicar rondas. Para indicar que una cantidad no numérica Q (por ejemplo, una cadena, una clave pública, un conjunto, una firma digital, etc.) se refiere a una r redonda, simplemente escribimos Qr. Sólo cuando Q sea un número genuino (a diferencia de una cadena binaria interpretable como un número), no escribimos Q(r), de modo que el símbolo r no pueda interpretarse como el exponente de Q. En (el comienzo de una) ronda r > 0, el conjunto de todas las claves públicas es PKr y el estado del sistema es Sr = norte yo, un(r) yo, . . .  : i \(\in\)PKro , donde un(r) yo es la cantidad de dinero disponible para la clave pública i. Tenga en cuenta que PKr es deducible de Sr, y que Sr también puede especificar otros componentes para cada clave pública i. Para la ronda 0, PK0 es el conjunto de claves públicas iniciales y S0 es el estado inicial. Tanto PK0 como Se supone que S0 es de conocimiento común en el sistema. Para simplificar, al comienzo de la ronda r, entonces son PK1, . . . , PKr y S1, . . . , Sr. En una ronda r, el estado del sistema pasa de Sr a Sr+1: simbólicamente, Ronda r: Sr −→Sr+1. Pagos En Algorand, los usuarios realizan pagos continuamente (y los difunden de la forma descrito en la subsección 2.7). Un pago \(\wp\) de un usuario i \(\in\)PKr tiene el mismo formato y semántica como en el Sistema Ideal. Es decir, \(\wp\)= SIGi(i, i′, a, I, H(I)) . El pago \(\wp\) es válido individualmente en una ronda r (es un pago redondo r, para abreviar) si (1) su monto a es menor o igual que a(r) i, y (2) no aparece en ningún conjunto de pagos oficial PAY r′ para r′ < r. (Como se explica a continuación, la segunda condición significa que \(\wp\) aún no ha entrado en vigor. Un conjunto de pagos redondos de i es colectivamente válido si la suma de sus montos es como máximo a(r) yo. Conjuntos de pago Un conjunto de pagos redondo r P es un conjunto de pagos redondos r tales que, para cada usuario i, los pagos de i en P (posiblemente ninguno) son colectivamente válidos. El conjunto de todos los pagos de la ronda r es PAY(r). Una r redonda el conjunto de pagos P es máximo si ningún superconjunto de P es un conjunto de pagos redondo-r. De hecho, sugerimos que un pago \(\wp\) también especifique una ronda \(\rho\), \(\wp\)= SIGi(\(\rho\), i, i′, a, I, H(I)) , y no puede ser válido en ninguna ronda fuera de [\(\rho\), \(\rho\) + k], para algún entero fijo no negativo k.4 4Esto simplifica verificar si \(\wp\) se ha vuelto “efectivo” (es decir, simplifica determinar si algún pago PAGAR r contiene \(\wp\). Cuando k = 0, si \(\wp\)= SIGi(r, i, i′, a, I, H(I)) y \(\wp\)/\(\in\)PAY r, entonces debo volver a enviar \(\wp\).Pagos oficiales Para cada ronda r, Algorand selecciona públicamente (de la manera que se describe más adelante) un solo pago (posiblemente vacío), PAY r, el pago oficial de la ronda. (Esencialmente, PAY r representa los pagos redondos-r que “realmente” han ocurrido). Como en el Sistema Ideal (y Bitcoin), (1) la única forma para que un nuevo usuario j ingrese al sistema es ser el destinatario de un pago perteneciente al conjunto de pagos oficial PAY r de una ronda r determinada; y (2) EL PAGO r determina el estado de la siguiente ronda, Sr+1, a partir del de la ronda actual, Sr. Simbólicamente, PAGO r : Sr −→Sr+1. Específicamente, 1. el conjunto de claves públicas de la ronda r + 1, PKr+1, consta de la unión de PKr y el conjunto de todas claves de beneficiario que aparecen, por primera vez, en los pagos de PAY r; y 2. la cantidad de dinero a(r+1) yo que posee un usuario i en la ronda r + 1 es la suma de ai(r), es decir, el cantidad de dinero que poseí en la ronda anterior (0 si i ̸\(\in\)PKr)— y la suma de las cantidades pagado a i de acuerdo con los pagos de PAY r. En resumen, al igual que en el Sistema Ideal, cada estatus Sr+1 es deducible del historial de pagos anterior: PAGA 0, . . . , PAGAR r. 2.4 Bloques y bloques probados En Algorand0, el bloque Br correspondiente a una ronda r especifica: r mismo; el conjunto de pagos de ronda r, PAGAR r; una cantidad Qr, por explicar, y el hash del bloque anterior, H(Br−1). Así, partiendo de algún bloque fijo B0, tenemos un blockchain tradicional: B1 = (1, PAGO 1, Q0, H(B0)), B2 = (2, PAGO 2, Q1, H(B1)), B3 = (3, PAGAR 3, Q2, H(B2)), . . . En Algorand, la autenticidad de un bloque en realidad está garantizada por una información separada, un “certificado de bloque” CERT r, que convierte a Br en un bloque probado, Br. El Libro Mayor Mágico, por lo tanto, se implementa mediante la secuencia de los bloques probados, B1, B2, . . . Discusión Como veremos, CERT r consta de un conjunto de firmas digitales para H(Br), las de un mayoría de los miembros de SV r, junto con una prueba de que cada uno de esos miembros pertenece efectivamente a SV r. Por supuesto, podríamos incluir los certificados CERT r en los propios bloques, pero resultaría conceptualmente más limpio para mantenerlo separado). En Bitcoin cada bloque debe satisfacer una propiedad especial, es decir, debe “contener una solución de un cripto rompecabezas”, lo que hace que la generación de bloques sea computacionalmente intensiva y ambas bifurcaciones sean inevitables. y no raro. Por el contrario, el blockchain de Algorand tiene dos ventajas principales: se genera con cálculo mínimo y no se bifurcará con una probabilidad abrumadoramente alta. Cada bloque Bi es finalice de forma segura tan pronto como entre en blockchain.2.5 Probabilidad de falla aceptable Para analizar la seguridad de Algorand especificamos la probabilidad, F, con la que estamos dispuestos a aceptar que algo sale mal (por ejemplo, que un conjunto de verificadores SV r no tiene una mayoría honesta). Como en el caso de la longitud de salida de la función criptográfica hash H, también F es un parámetro. Pero, como en ese caso, nos resulta útil establecer F en un valor concreto, para obtener una interpretación más intuitiva. comprender el hecho de que es realmente posible, en Algorand, disfrutar simultáneamente de suficiente seguridad y suficiente eficiencia. Para enfatizar que F es un parámetro que se puede configurar como se desee, en la primera y segundas realizaciones que establecemos respectivamente F = 10-12 y F = 10-18. Discusión Tenga en cuenta que 10-12 es en realidad menos de uno en un billón, y creemos que tal La elección de F es adecuada en nuestra aplicación. Enfaticemos que 10−12 no es la probabilidad con el que el Adversario puede falsificar los pagos de un usuario honesto. Todos los pagos son digitales. firmado y, por lo tanto, si se utilizan las firmas digitales adecuadas, la probabilidad de falsificar un pago es mucho menor que 10−12 y, de hecho, es esencialmente 0. El mal evento que estamos dispuestos a tolerar con probabilidad F es que Algorand se bifurca blockchain. Observe que, con nuestra configuración de F y rondas de un minuto de duración, se espera que ocurra una bifurcación en el blockchain de Algorand con la menor frecuencia posible. (aproximadamente) una vez cada 1,9 millones de años. Por el contrario, en Bitcoin, las bifurcaciones ocurren con bastante frecuencia. Una persona más exigente puede establecer F en un valor más bajo. Con este fin, en nuestra segunda realización consideramos establecer F en 10−18. Tenga en cuenta que, suponiendo que se genera un bloque cada segundo, 1018 es el número estimado de segundos que ha tardado el Universo hasta el momento: desde el Big Bang hasta el presente tiempo. Por lo tanto, con F = 10−18, si se genera un bloque en un segundo, se debería esperar que para la edad de el Universo para ver una bifurcación. 2.6 El modelo adversario Algorand está diseñado para ser seguro en un modelo muy conflictivo. Expliquemos. Usuarios honestos y maliciosos Un usuario es honesto si sigue todas las instrucciones de su protocolo, y es perfectamente capaz de enviar y recibir mensajes. Un usuario es malicioso (es decir, bizantino, en el sentido lenguaje de computación distribuida) si puede desviarse arbitrariamente de sus instrucciones prescritas. El adversario El Adversario es un algoritmo eficiente (técnicamente de tiempo polinómico), personificado por el color, que puede convertir inmediatamente en malicioso a cualquier usuario que quiera, en cualquier momento que quiera (sujeto). sólo hasta un límite superior al número de usuarios que puede corromper). El Adversario controla totalmente y coordina perfectamente a todos los usuarios maliciosos. Él toma todas las acciones en su nombre, incluyendo recibir y enviar todos sus mensajes, y puede permitirles desviarse de sus instrucciones prescritas de manera arbitraria. O simplemente puede aislar a un usuario corrupto que envía y recibir mensajes. Aclaremos que nadie más se entera automáticamente de que un usuario i es malicioso, aunque su malicia puede traslucirse por las acciones que el Adversario le hace realizar. Este poderoso adversario, sin embargo, • No tiene un poder computacional ilimitado y no puede forjar con éxito la tecnología digital. firma de un usuario honesto, salvo con probabilidad insignificante; y• No puede interferir de ninguna manera con el intercambio de mensajes entre usuarios honestos. Además, su capacidad para atacar a usuarios honestos está limitada por uno de los siguientes supuestos. Honestidad Mayoría del dinero Consideramos un continuo de Mayoría Honesta del Dinero (HMM) supuestos: es decir, para cada entero no negativo k y real h > 1/2, HHMk > h: los usuarios honestos en cada ronda r poseían una fracción mayor que h de todo el dinero en el sistema en la ronda r −k. Discusión. Suponiendo que todos los usuarios malintencionados coordinan perfectamente sus acciones (como si estuvieran controlados por una sola entidad, el Adversario) es una hipótesis bastante pesimista. Coordinación perfecta entre también. para muchos individuos es difícil de lograr. Quizás la coordinación sólo se produzca dentro de grupos separados. de jugadores maliciosos. Pero como no se puede estar seguro del nivel de coordinación, los usuarios malintencionados podemos disfrutar, más vale prevenir que lamentar. Asumir que el Adversario puede corromper a los usuarios de forma secreta, dinámica e inmediata también es pesimista. Después de todo, de manera realista, tomar el control total de las operaciones de un usuario debería llevar algún tiempo. El supuesto HMMk > h implica, por ejemplo, que si se implementa una ronda (en promedio) Entonces, en un minuto, la mayor parte del dinero en una ronda determinada permanecerá en manos honestas durante al menos dos horas, si k = 120, y al menos una semana, si k = 10.000. Tenga en cuenta que los supuestos de HMM y la mayoría honesta de potencia informática anterior Los supuestos están relacionados en el sentido de que, dado que la potencia informática se puede comprar con dinero, Si los usuarios malintencionados poseen la mayor parte del dinero, entonces pueden obtener la mayor parte de la potencia informática. 2.7 El modelo de comunicación Prevemos que la propagación de mensajes —es decir, “chismes entre pares”5— sea el único medio de comunicación. Supuesto Temporal: Entrega Oportuna de Mensajes en Toda la Red. Para En la mayor parte de este artículo asumimos que cada mensaje propagado llega a casi todos los usuarios honestos. de manera oportuna. Eliminaremos esta suposición en la Sección 10, donde tratamos la red. particiones, ya sean naturales o inducidas adversamente. (Como veremos, sólo asumimos entrega oportuna de mensajes dentro de cada componente conectado de la red). Una forma concreta de capturar la entrega oportuna de mensajes propagados (en toda la red) es lo siguiente: Para toda accesibilidad \(\rho\) > 95% y tamaño de mensaje \(\mu\) \(\in\)Z+, existe \(\lambda\) \(\rho\),\(\mu\) tal que, si un usuario honesto propaga el mensaje m de \(\mu\)-byte en el momento t, entonces m alcanza, en el tiempo t + \(\lambda\) \(\rho\),μ, al menos una fracción \(\rho\) de los usuarios honestos. 5Esencialmente, como en Bitcoin, cuando un usuario propaga un mensaje m, cada usuario activo i recibe m por primera vez, selecciona aleatoriamente e independientemente un número adecuadamente pequeño de usuarios activos, sus "vecinos", a quienes reenvía m, posiblemente hasta que reciba un reconocimiento de ellos. La propagación de m termina cuando ningún usuario recibe m por primera vez.La propiedad anterior, sin embargo, no puede soportar nuestro protocolo Algorand, sin prever explícitamente y por separado un mecanismo para obtener el último blockchain, por parte de otro usuario/depósito/etc. De hecho, para construir un nuevo bloque Br no sólo se debe contar con un conjunto adecuado de verificadores que reciban oportunamente la ronda r. mensajes, sino también los mensajes de rondas anteriores, para conocer Br-1 y todos los demás mensajes anteriores. bloques, lo cual es necesario para determinar si los pagos en Br son válidos. lo siguiente en cambio, basta con asumirlo. Supuesto de propagación de mensajes (MP): Para todo \(\rho\) > 95% y \(\mu\) \(\in\)Z+, existe \(\lambda\) \(\rho\),\(\mu\) tal que, para todos los tiempos t y todos los mensajes de \(\mu\)-byte m propagados por un usuario honesto antes de t −\(\lambda\) \(\rho\),\(\mu\), m es recibido, en el tiempo t, por al menos una fracción \(\rho\) de los usuarios honestos. El protocolo Algorand ′ en realidad instruye a cada uno de un pequeño número de usuarios (es decir, los verificadores de un paso dado de una ronda en Algorand ′, para propagar un mensaje separado de un tamaño (pequeño) prescrito, y necesitamos limitar el tiempo necesario para cumplir estas instrucciones. Lo hacemos enriqueciendo al MP suposición de la siguiente manera. Para todo n, \(\rho\) > 95% y \(\mu\) \(\in\)Z+, existe \(\lambda\)n,\(\rho\),\(\mu\) tal que, para todos los tiempos t y todos los \(\mu\)-byte mensajes m1, . . . , mn, cada uno propagado por un usuario honesto antes de t −\(\lambda\)n,\(\rho\),\(\mu\), m1, . . . , se reciben mn, en el tiempo t, por al menos una fracción \(\rho\) de los usuarios honestos. Nota • El supuesto anterior es deliberadamente simple, pero también más sólido de lo necesario en nuestro artículo.6 • Por simplicidad, asumimos \(\rho\) = 1 y, por lo tanto, dejamos de mencionar \(\rho\). • Asumimos pesimistamente que, siempre que no viole el supuesto MP, el Adversario controla totalmente la entrega de todos los mensajes. En particular, sin que los honestos se den cuenta usuarios, el Adversario puede decidir arbitrariamente qué jugador honesto recibe qué mensaje cuando, y acelerar arbitrariamente la entrega de cualquier mensaje que desee.7

Grundlagen

2.1 Kryptografische Primitive Ideales Hashing. Wir werden uns auf eine effizient berechenbare kryptografische hash-Funktion H verlassen, die ordnet beliebig lange Strings binären Strings fester Länge zu. Wir modeln einer langen Tradition folgend H als zufälliges oracle, im Wesentlichen eine Funktion, die jede mögliche Zeichenfolge s einem zufälligen und zuordnet unabhängig ausgewählte (und dann festgelegte) Binärzeichenfolge H(s) der gewählten Länge. In diesem Artikel hat H 256 Bit lange Ausgänge. Tatsächlich ist diese Länge kurz genug, um dies zu ermöglichen systemeffizient und lang genug, um das System sicher zu machen. Wir wollen zum Beispiel, dass H kollisionsresistent ist. Das heißt, es sollte schwierig sein, zwei verschiedene Zeichenfolgen x und y zu finden, sodass H(x) = H(y). Wenn H ein zufälliger oracle mit 256 Bit langen Ausgaben ist, ist das Finden eines solchen Zeichenfolgenpaars tatsächlich möglich schwierig. (Bei einem zufälligen Versuch und unter Berufung auf das Geburtstagsparadoxon wäre 2256/2 = 2128 erforderlich Versuche.) Digitales Signieren. Mithilfe digitaler Signaturen können Benutzer Informationen untereinander authentifizieren ohne irgendwelche geheimen Schlüssel weiterzugeben. Ein digitales Signaturschema besteht aus drei schnellen Algorithmen: ein probabilistischer Schlüsselgenerator G, ein Signierungsalgorithmus S und ein Verifizierungsalgorithmus V. Bei einem Sicherheitsparameter k, einer ausreichend hohen Ganzzahl, verwendet ein Benutzer i G, um ein Paar zu erzeugen k-Bit-Schlüssel (d. h. Zeichenfolgen): ein „öffentlicher“ Schlüssel PKI und ein passender „geheimer“ Signaturschlüssel Ski. Entscheidend ist, a Der öffentliche Schlüssel „verrät“ seinen entsprechenden geheimen Schlüssel nicht. Das heißt, selbst wenn man Kenntnisse über PKI hat, nein Jemand anderes als ich ist in der Lage, Ski in weniger als astronomischer Zeit zu berechnen. Benutzer i nutzt Ski, um Nachrichten digital zu signieren. Für jede mögliche Nachricht (Binärzeichenfolge) m, i zuerst hashes m und führt dann den Algorithmus S auf den Eingängen H(m) und Ski aus, um die k-Bit-Zeichenfolge zu erzeugen sigpki(m) \(\triangleq\)S(H(m), ski) .3 3Da H kollisionsresistent ist, ist es praktisch unmöglich, dass man durch das Signieren von m versehentlich etwas anderes „signiert“. Nachricht m′.Die Binärzeichenfolge sigpki(m) wird als digitale Signatur von m (relativ zu pki) von i bezeichnet und kann es sein einfacher mit sigi(m) bezeichnet, wenn der öffentliche Schlüssel pki aus dem Kontext klar hervorgeht. Jeder, der pki kennt, kann damit die von i erstellten digitalen Signaturen überprüfen. Konkret: auf gibt (a) den öffentlichen Schlüssel pki eines Spielers i, (b) eine Nachricht m und (c) eine Zeichenfolge s ein, d. h. i ist angeblich Wenn die digitale Signatur der Nachricht m vorliegt, gibt der Verifizierungsalgorithmus V entweder JA oder NEIN aus. Die Eigenschaften, die wir von einem digitalen Signaturschema benötigen, sind: 1. Legitime Signaturen werden immer verifiziert: Wenn s = sigi(m), dann V (pki, m, s) = Y ES; und 2. Digitale Signaturen sind schwer zu fälschen: Ohne Wissen über die Zeit, um eine solche Zeichenfolge zu finden dass V (pki, m, s) = Y ES für eine Nachricht m, die nie von i signiert wurde, astronomisch lang ist. (Aufgrund der strengen Sicherheitsanforderungen von Goldwasser, Micali und Rivest [17] ist dies wahr selbst wenn man die Signatur einer anderen Nachricht erhalten kann.) Um zu verhindern, dass jemand anderes Nachrichten in seinem Namen signiert, muss ein Spieler seinen behalten Der Signaturschlüssel ist geheim (daher der Begriff „geheimer Schlüssel“) und ermöglicht es jedem, die Nachrichten zu überprüfen Er unterschreibt, ich habe ein Interesse daran, seinen Schlüssel-PKI zu veröffentlichen (daher der Begriff „öffentlicher Schlüssel“). Im Allgemeinen ist eine Nachricht m nicht aus ihrer Signatur sigi(m) abrufbar. Um virtuell zu handeln mit digitalen Signaturen, die die konzeptionell praktische Eigenschaft „Abrufbarkeit“ erfüllen (d. h. zu garantieren, dass der Unterzeichner und die Nachricht aus einer Signatur leicht errechenbar sind, definieren wir SIGpki(m) = (i, m, sigpki(m)) und SIGi(m) = (i, m, sigi(m)), wenn pki klar ist. Einzigartiges digitales Signieren. Wir berücksichtigen auch digitale Signaturschemata (G, S, V), die die Anforderungen erfüllen folgende zusätzliche Eigenschaft. 3. Einzigartigkeit. Es ist schwierig, solche Zeichenfolgen pk′, m, s und s′ zu finden s ̸= s′ und V (pk′, m, s) = V (pk′, m, s′) = 1. (Beachten Sie, dass die Eindeutigkeitseigenschaft auch für Zeichenfolgen pk′ gilt, die nicht legitim generiert wurden öffentliche Schlüssel. Insbesondere impliziert die Einzigartigkeitseigenschaft jedoch, dass, wenn man die verwendet spezifizierter Schlüsselgenerator G, um einen öffentlichen Schlüssel pk zusammen mit einem passenden geheimen Schlüssel sk zu berechnen, Und so wusste Sk, dass es auch für ihn im Grunde unmöglich sein würde, zwei verschiedene digitale zu finden Signaturen derselben Nachricht relativ zu pk.) Bemerkungen • Von eindeutigen Signaturen bis hin zu überprüfbaren Zufallsfunktionen. Relativ zu einem digitalen Signaturschema mit der Eindeutigkeitseigenschaft, dem die Zuordnung m \(\to\) H(sigi(m)) zugeordnet ist jede mögliche Zeichenfolge m, eine eindeutige, zufällig ausgewählte 256-Bit-Zeichenfolge, und deren Richtigkeit Die Zuordnung kann anhand der Signatur sigi(m) nachgewiesen werden. Das heißt, ein ideales hashing- und digitales Signaturschema, das die Eindeutigkeitseigenschaft im Wesentlichen erfüllt stellen eine elementare Implementierung einer überprüfbaren Zufallsfunktion bereit, wie sie eingeführt wurde und von Micali, Rabin und Vadhan [27]. (Ihre ursprüngliche Implementierung war zwangsläufig komplexer, da sie sich nicht auf ideale hashing verlassen haben.)• Drei unterschiedliche Anforderungen an digitale Signaturen. In Algorand verlässt sich ein Benutzer auf digital Unterschriften für (1) Authentifizierung meiner eigenen Zahlungen. In dieser Anwendung können Schlüssel „langfristig“ (d. h. gewohnt) sein signieren viele Nachrichten über einen langen Zeitraum) und stammen aus einem gewöhnlichen Signaturschema. (2) Generieren von Anmeldeinformationen, die beweisen, dass i berechtigt ist, bei einigen Schritten einer Runde r zu handeln. Hier, Schlüssel können langfristig sein, müssen aber aus einem Schema stammen, das die Eindeutigkeitseigenschaft erfüllt. (3) Authentifizieren der Nachricht, die ich in jedem Schritt sendet, in dem er handelt. Hier müssen Schlüssel sein ephemer (d. h. nach der ersten Verwendung zerstört), können aber aus einem gewöhnlichen Signaturschema stammen. • Eine Vereinfachung mit geringem Aufwand. Der Einfachheit halber stellen wir uns vor, dass jeder Benutzer einen einzigen Langzeitschlüssel hat. Dementsprechend muss ein solcher Schlüssel aus einem Signaturschema mit Eindeutigkeit stammen Eigentum. Eine solche Einfachheit hat einen geringen Rechenaufwand. Normalerweise tatsächlich einzigartig digital Die Erstellung und Überprüfung von Signaturen ist etwas teurer als bei gewöhnlichen Signaturen. 2.2 Das idealisierte öffentliche Hauptbuch Algorand versucht, das folgende Zahlungssystem nachzuahmen, basierend auf einem idealisierten öffentlichen Hauptbuch. 1. Der Anfangsstatus. Geld ist mit einzelnen öffentlichen Schlüsseln verknüpft (privat generierte und Eigentum der Benutzer). Lassen Sie pk1, . . . , pkj seien die anfänglichen öffentlichen Schlüssel und a1, . . . , aj ihre jeweiligen Anfangsbeträge an Geldeinheiten, dann ist der Anfangsstatus S0 = (pk1, a1), . . . , (pkj, aj) , von dem angenommen wird, dass es im System allgemein bekannt ist. 2. Zahlungen. Sei pk ein öffentlicher Schlüssel, der derzeit \(\geq\)0 Geldeinheiten hat, und pk′ ein anderer öffentlicher Schlüssel Schlüssel und a′ eine nicht negative Zahl, die nicht größer als a ist. Dann ist eine (gültige) Zahlung \(\wp\)eine digitale Unterschrift, bezogen auf PK, die zusammen die Übertragung von a′-Geldeinheiten von PK auf PK′ angibt mit einigen Zusatzinformationen. In Symbolen, \(\wp\)= SIGpk(pk, pk′, a′, I, H(I)), Dabei steht „I“ für alle zusätzlichen Informationen, die als nützlich, aber nicht sensibel erachtet werden (z. B. Zeit). Informationen und eine Zahlungskennung) und ich alle zusätzlichen Informationen, die als vertraulich gelten (z. B. der Grund der Zahlung, möglicherweise die Identität der Eigentümer von pk und pk′ usw.). Wir bezeichnen pk (oder seinen Besitzer) als Zahler, jeden pk′ (oder seinen Besitzer) als Zahlungsempfänger und a′ als die Höhe der Zahlung \(\wp\). Kostenloser Beitritt über Zahlungen. Beachten Sie, dass Benutzer jederzeit dem System beitreten können Generieren ihrer eigenen öffentlichen/geheimen Schlüsselpaare. Dementsprechend ist der öffentliche Schlüssel pk′, der in erscheint Bei der oben genannten Zahlung kann es sich um einen neu generierten öffentlichen Schlüssel handeln, der noch nie Geld „besessen“ hat vor. 3. Das magische Hauptbuch. Im Idealized System sind alle Zahlungen gültig und manipulationssicher Liste L der Zahlungssätze, die „am Himmel veröffentlicht“ sind, damit jeder sie sehen kann: L = 1 ZAHLEN, 2 ZAHLEN, . . . ,Jeder Block PAY r+1 besteht aus der Menge aller Zahlungen, die seit dem Erscheinen des Blocks getätigt wurden ZAHLEN r. Im idealen System erscheint ein neuer Block nach einer festen (oder endlichen) Zeitspanne. Diskussion. • Allgemeinere Zahlungen und nicht ausgegebene Transaktionsausgabe. Allgemeiner gesagt, wenn es sich um einen öffentlichen Schlüssel handelt Besitzt pk einen Betrag a, so darf eine gültige Zahlung \(\wp\)von pk die Beträge a′ übertragen 1, ein‘ 2, . . ., jeweils zu den Tasten pk′ 1, Pk′ 2, . . ., solange P j a′ j \(\leq\)a. In Bitcoin und ähnlichen Systemen wird das Geld, das einem öffentlichen Schlüssel gehört, getrennt aufgeteilt Beträge und eine Zahlung \(\wp\)der pk müssen einen solchen abgesonderten Betrag in voller Höhe überweisen. Wenn pk nur einen Bruchteil a′ < a von a auf einen anderen Schlüssel übertragen möchte, muss er auch den übertragen Balance, die nicht ausgegebene Transaktionsausgabe, an einen anderen Schlüssel, möglicherweise pk selbst. Algorand funktioniert auch mit Schlüsseln mit getrennten Beträgen. Um sich jedoch auf die zu konzentrieren Aufgrund der neuen Aspekte von Algorand ist es konzeptionell einfacher, bei unseren einfacheren Zahlungsformen zu bleiben und Schlüssel, denen ein einzelner Betrag zugeordnet ist. • Aktueller Status. Das Idealisierte Schema liefert keine direkten Informationen über den Strom Status des Systems (d. h. ungefähr, wie viele Geldeinheiten jeder öffentliche Schlüssel hat). Diese Informationen ist aus dem Magic Ledger ableitbar. Im idealen System speichert und aktualisiert ein aktiver Benutzer kontinuierlich die neuesten Statusinformationen. oder er müsste es sonst rekonstruieren, entweder von Grund auf oder vom letzten Mal an habe es berechnet. (In der nächsten Version dieses Dokuments werden wir Algorand erweitern, um es zu ermöglichen Benutzer können den aktuellen Status effizient rekonstruieren.) • Sicherheit und „Privatsphäre“. Digitale Signaturen garantieren, dass niemand eine Zahlung fälschen kann ein anderer Benutzer. Bei einer Zahlung \(\wp\) sind nicht die öffentlichen Schlüssel und der Betrag verborgen, sondern die Sensiblen Informationen, die ich habe. Tatsächlich erscheint nur H(I) in \(\wp\), und da H eine ideale hash-Funktion ist, ist H(I) ist ein zufälliger 256-Bit-Wert, und daher gibt es keine Möglichkeit herauszufinden, um was ich besser war als um einfach nur erraten. Doch um zu beweisen, was ich getan habe (z. B. um den Grund für die Zahlung zu beweisen), war der Der Zahler kann nur I offenbaren. Die Richtigkeit des offenbarten I kann durch Berechnen von H(I) überprüft werden. und Vergleichen des resultierenden Werts mit dem letzten Element von \(\wp\). Da H tatsächlich stoßfest ist, Es ist schwierig, einen zweiten Wert I′ zu finden, so dass H(I) = H(I′). 2.3 Grundbegriffe und Notationen Schlüssel, Benutzer und Besitzer Sofern nicht anders angegeben, ist jeder öffentliche Schlüssel (kurz „Schlüssel“) langfristig und relativ zu einem digitalen Signaturschema mit der Eindeutigkeitseigenschaft. Ein öffentlicher Schlüssel, den ich hinzufüge das System, wenn ein anderer öffentlicher Schlüssel j, der sich bereits im System befindet, eine Zahlung an i vornimmt. Für die Farbe personifizieren wir Schlüssel. Wir bezeichnen einen Schlüssel i als „er“, sagen, dass ich ehrlich ist, dass ich sende und empfängt Nachrichten usw. Benutzer ist ein Synonym für Schlüssel. Wenn wir einen Schlüssel unterscheiden wollen von die Person, der es gehört, wir verwenden jeweils die Begriffe „digitaler Schlüssel“ und „Eigentümer“. Erlaubnislose und erlaubte Systeme. Ein System ist erlaubnislos, wenn ein digitaler Schlüssel frei ist jederzeit beitreten und ein Eigentümer kann mehrere digitale Schlüssel besitzen; und es ist erlaubt, sonst.Einzigartige Darstellung Jedes Objekt in Algorand hat eine eindeutige Darstellung. Insbesondere jede Menge {(x, y, z, . . .) : x \(\in\)X, y \(\in\)Y, z \(\in\)Z, . . .} wird auf eine vorab festgelegte Weise geordnet: z. B. zuerst lexikografisch in x, dann in y usw. Uhren mit gleicher Geschwindigkeit Es gibt keine globale Uhr, sondern jeder Benutzer hat seine eigene Uhr. Benutzeruhren müssen in keiner Weise synchronisiert werden. Wir gehen jedoch davon aus, dass sie alle die gleiche Geschwindigkeit haben. Wenn es beispielsweise laut der Uhr eines Benutzers i 12:00 Uhr ist, kann es entsprechend 14:30 Uhr sein die Uhr eines anderen Benutzers j, aber wenn es laut der Uhr von i 12:01 ist, ist es laut i 2:31 zu js Uhr. Das heißt: „Eine Minute ist für jeden Benutzer gleich (ausreichend, im Wesentlichen gleich).“ Runden Algorand ist in logischen Einheiten organisiert, r = 0, 1, . . ., sogenannte Runden. Wir verwenden konsequent hochgestellte Zeichen, um Runden anzuzeigen. Um anzuzeigen, dass eine nicht numerische Größe Q (z. B. eine Zeichenfolge, ein öffentlicher Schlüssel, ein Satz, eine digitale Signatur usw.) auf ein rundes r bezieht, schreiben wir einfach Qr. Nur wenn Q eine echte Zahl ist (im Gegensatz zu einer als Zahl interpretierbaren Binärzeichenfolge), tun Sie dies wir schreiben Q(r), sodass das Symbol r nicht als Exponent von Q interpretiert werden kann. Zu Beginn einer Runde r > 0 ist die Menge aller öffentlichen Schlüssel PKr und der Systemstatus ist Sr = n ich, ein(r) ich , . . .  : i \(\in\)PKro , wo a(r) ich ist der Geldbetrag, der dem öffentlichen Schlüssel i zur Verfügung steht. Beachten Sie, dass PKr daraus abgeleitet werden kann Sr, und dass Sr auch andere Komponenten für jeden öffentlichen Schlüssel i angeben kann. Für Runde 0 ist PK0 der Satz der anfänglichen öffentlichen Schlüssel und S0 der Anfangsstatus. Sowohl PK0 als auch Es wird davon ausgegangen, dass S0 im System allgemein bekannt sind. Der Einfachheit halber zu Beginn der Runde r, also sind PK1, . . . , PKr und S1, . . . , Sr. In einer Runde r geht der Systemstatus von Sr zu Sr+1 über: symbolisch, Runde r: Sr −→Sr+1. Zahlungen In Algorand führen die Benutzer kontinuierlich Zahlungen durch (und verbreiten diese auf diese Weise). beschrieben in Abschnitt 2.7). Eine Zahlung \(\wp\)eines Benutzers i \(\in\)PKr hat das gleiche Format und die gleiche Semantik wie im Idealen System. Nämlich, \(\wp\)= SIGi(i, i′, a, I, H(I)) . Die Zahlung \(\wp\)ist bei einer Runde r einzeln gültig (ist kurz eine Runde-R-Zahlung), wenn (1) ihr Betrag a ist kleiner oder gleich a(r) i , und (2) es erscheint in keinem offiziellen Gehaltssatz PAY r′ für r′ < r. (Wie unten erläutert, bedeutet die zweite Bedingung, dass \(\wp\) noch nicht wirksam geworden ist. Eine Menge von Rund-r-Zahlungen von i ist insgesamt gültig, wenn die Summe ihrer Beträge höchstens a(r) ist. ich . Gehaltssätze Ein Round-r-Zahlungssatz P ist ein Satz von Round-r-Zahlungen, sodass für jeden Benutzer i die Zahlungen erfolgen von i in P (möglicherweise keine) sind kollektiv gültig. Die Menge aller Round-r-Gehaltssätze ist PAY(r). Ein Rund-r Die Auszahlungsmenge P ist maximal, wenn keine Obermenge von P eine Round-R-Auszahlungsmenge ist. Wir schlagen tatsächlich vor, dass eine Zahlung \(\wp\)auch eine Runde \(\rho\) angibt, \(\wp\)= SIGi(\(\rho\), i, i′, a, I, H(I)) , und kann in keiner Runde außerhalb von [\(\rho\), \(\rho\) + k] für eine feste nichtnegative ganze Zahl k gültig sein.4 4Dies vereinfacht die Überprüfung, ob \(\wp\) „wirksam“ geworden ist (d. h. es vereinfacht die Bestimmung, ob ein Gehaltssatz vorliegt). PAY r enthält \(\wp\). Wenn k = 0, wenn \(\wp\)= SIGi(r, i, i′, a, I, H(I)) und \(\wp\)/\(\in\)PAY r, dann muss ich \(\wp\) erneut einreichen.Offizielle Gehaltssätze Für jede Runde r wählt Algorand öffentlich aus (auf eine später beschriebene Weise). ein einzelner (möglicherweise leerer) Payset, PAY r, der offizielle Payset der Runde. (Im Wesentlichen stellt PAY r dar die Round-R-Zahlungen, die „tatsächlich“ stattgefunden haben.) Wie im Idealen System (und Bitcoin) ist (1) die einzige Möglichkeit für einen neuen Benutzer, j das System zu betreten soll der Empfänger einer Zahlung sein, die zum offiziellen Gehaltssatz PAY r einer bestimmten Runde r gehört; und (2) PAY r bestimmt den Status der nächsten Runde, Sr+1, aus dem der aktuellen Runde, Sr. Symbolisch, PAY r : Sr −→Sr+1. Konkret: 1. Die Menge der öffentlichen Schlüssel der Runde r + 1, PKr+1, besteht aus der Vereinigung von PKr und der Menge aller Zahlungsempfängerschlüssel, die erstmals in den Zahlungen von PAY r auftauchen; und 2. der Geldbetrag a(r+1) ich dass ein Benutzer i in Runde r + 1 besitzt, ist die Summe von ai(r) – d. h. die Geldbetrag, den ich in der vorherigen Runde besaß (0, wenn i ̸\(\in\)PKr) – und die Summe der Beträge an i entsprechend den Zahlungen von PAY r gezahlt. Zusammenfassend ist, wie im Idealsystem, jeder Status Sr+1 aus der vorherigen Zahlungshistorie ableitbar: ZAHLEN 0, . . . , ZAHLEN r. 2.4 Blöcke und bewährte Blöcke In Algorand0 gibt der Block Br, der einem runden r entspricht, Folgendes an: r selbst; die Menge der Zahlungen von runde r, ZAHLE r; eine zu erklärende Größe Qr und der hash des vorherigen Blocks, H(Br−1). Ausgehend von einem festen Block B0 haben wir also ein traditionelles blockchain: B1 = (1, PAY 1, Q0, H(B0)), B2 = (2, PAY 2, Q1, H(B1)), B3 = (3, PAY 3, Q2, H(B2)), . . . In Algorand wird die Authentizität eines Blocks tatsächlich durch eine separate Information bestätigt, ein „Blockzertifikat“ CERT r, das Br in einen bewährten Block, Br, verwandelt. Das Magic Ledger ist daher wird durch die Reihenfolge der bewährten Blöcke umgesetzt, B1, B2, . . . Diskussion Wie wir sehen werden, besteht CERT r aus einem Satz digitaler Signaturen für H(Br), denen von a Mehrheit der Mitglieder des SV r, zusammen mit einem Nachweis, dass jedes dieser Mitglieder tatsächlich dazugehört zu SV r. Wir könnten natürlich die Zertifikate CERT r in die Blöcke selbst einbauen, aber wir werden es finden konzeptionell sauberer, um es getrennt zu halten.) In Bitcoin muss jeder Block eine spezielle Eigenschaft erfüllen, das heißt, er muss „eine Lösung von a enthalten Krypto-Puzzle“, was die Blockgenerierung rechenintensiv macht und beides unvermeidlich verzweigt und nicht selten. Im Gegensatz dazu hat blockchain von Algorand zwei Hauptvorteile: Es wird mit generiert minimaler Rechenaufwand, und es wird nicht mit überwältigend hoher Wahrscheinlichkeit gegabelt. Jeder Block Bi ist sicher endgültig, sobald es den blockchain betritt.2.5 Akzeptable Ausfallwahrscheinlichkeit Um die Sicherheit von Algorand zu analysieren, geben wir die Wahrscheinlichkeit F an, mit der wir dazu bereit sind Akzeptieren Sie, dass etwas schief geht (z. B. dass ein Verifizierersatz SV r keine ehrliche Mehrheit hat). Wie bei der Ausgabelänge der kryptografischen Funktion hash H ist auch F ein Parameter. Aber wie in diesem Fall finden wir es nützlich, F auf einen konkreten Wert zu setzen, um eine intuitivere Darstellung zu erhalten begreifen, dass es in Algorand tatsächlich möglich ist, gleichzeitig ausreichende Sicherheit zu genießen und ausreichende Effizienz. Zunächst möchte ich betonen, dass F ein Parameter ist, der beliebig eingestellt werden kann und zweite Ausführungsformen haben wir jeweils festgelegt F = 10−12 und F = 10−18 . Diskussion Beachten Sie, dass 10−12 tatsächlich weniger als eine von einer Billion ist, und wir glauben, dass dies der Fall ist Die Wahl von F ist für unsere Anwendung ausreichend. Wir möchten betonen, dass 10−12 nicht die Wahrscheinlichkeit ist mit dem der Gegner die Zahlungen eines ehrlichen Benutzers fälschen kann. Alle Zahlungen erfolgen digital signiert, und wenn die richtigen digitalen Signaturen verwendet werden, besteht daher eine hohe Wahrscheinlichkeit, dass eine Zahlung gefälscht wird weit niedriger als 10−12 und tatsächlich im Wesentlichen 0. Das schlimme Ereignis, das wir bereit sind zu tolerieren mit der Wahrscheinlichkeit F ist, dass sich blockchain von Algorand verzweigt. Beachten Sie, dass mit unserer Einstellung von F und Bei einminütigen Runden wird erwartet, dass eine Gabelung in blockchain von Algorand so selten wie möglich auftritt (ungefähr) einmal in 1,9 Millionen Jahren. Im Gegensatz dazu kommt es in Bitcoin recht häufig zu einer Verzweigung. Eine anspruchsvollere Person kann F auf einen niedrigeren Wert einstellen. Zu diesem Zweck in unserer zweiten Ausführungsform Wir überlegen, F auf 10−18 zu setzen. Beachten Sie, dass unter der Annahme, dass jede Sekunde ein Block generiert wird, 1018 ist die geschätzte Anzahl an Sekunden, die das Universum bisher benötigt hat: vom Urknall bis heute Zeit. Wenn also mit F = 10−18 ein Block in einer Sekunde erzeugt wird, sollte man mit dem Alter von rechnen Das Universum sieht eine Gabelung. 2.6 Das kontradiktorische Modell Algorand ist so konzipiert, dass es in einem sehr kontroversen Modell sicher ist. Lassen Sie es uns erklären. Ehrliche und böswillige Benutzer Ein Benutzer ist ehrlich, wenn er alle seine Protokollanweisungen befolgt und ist durchaus in der Lage, Nachrichten zu senden und zu empfangen. Ein Benutzer ist böswillig (d. h. byzantinisch). (Sprache des verteilten Rechnens), wenn er willkürlich von seinen vorgeschriebenen Anweisungen abweichen kann. Der Gegner Der Gegner ist ein effizienter (technisch gesehen polynomialer) Algorithmus, personifiziert durch Farbe, der jeden Benutzer, den er möchte, jederzeit und jederzeit böswillig machen kann (Subjekt nur bis zu einer Obergrenze der Anzahl der Benutzer, die er korrumpieren kann). Der Gegner kontrolliert und koordiniert alle böswilligen Benutzer vollständig. Er ergreift alle Maßnahmen in ihrem Namen, einschließlich des Empfangens und Versendens aller ihrer Nachrichten, und kann zulassen, dass sie davon abweichen ihre vorgeschriebenen Anweisungen auf willkürliche Weise. Oder er kann einfach einen beschädigten Benutzerversand isolieren und Empfangen von Nachrichten. Lassen Sie uns klarstellen, dass niemand sonst automatisch erfährt, dass ein Benutzer böswillig ist. Allerdings kann sich meine Böswilligkeit durch die Handlungen bemerkbar machen, die der Gegner von ihm verlangt. Dieser mächtige Gegner jedoch, • Verfügt über keine unbegrenzte Rechenleistung und kann das Digitale nicht erfolgreich fälschen Unterschrift eines ehrlichen Benutzers, außer mit vernachlässigbarer Wahrscheinlichkeit; Und• Darf in keiner Weise den Nachrichtenaustausch zwischen ehrlichen Benutzern beeinträchtigen. Darüber hinaus wird seine Fähigkeit, ehrliche Benutzer anzugreifen, durch eine der folgenden Annahmen eingeschränkt. Ehrlichkeit, Mehrheit des Geldes Wir betrachten ein Kontinuum der ehrlichen Mehrheit des Geldes (HMM). Annahmen: nämlich für jede nicht negative ganze Zahl k und reelles h > 1/2, HHMk > h: Die ehrlichen Benutzer in jeder Runde r besaßen einen Bruchteil größer als h des gesamten Geldes in das System bei Runde r −k. Diskussion. Vorausgesetzt, dass alle böswilligen Benutzer ihre Aktionen perfekt koordinieren (als ob sie kontrolliert würden). durch eine einzelne Entität, den Gegner) ist eine eher pessimistische Hypothese. Perfekte Koordination auch untereinander Für viele Menschen ist es schwierig, dies zu erreichen. Vielleicht findet die Koordination nur innerhalb separater Gruppen statt von böswilligen Spielern. Da man jedoch nicht sicher sein kann, wie gut die Koordination böswilliger Benutzer ist Vielleicht genießen Sie es, wir gehen besser auf Nummer sicher. Auch die Annahme, dass der Gegner Benutzer heimlich, dynamisch und sofort korrumpieren kann, ist möglich pessimistisch. Schließlich dürfte es realistisch gesehen einige Zeit dauern, bis man die vollständige Kontrolle über die Vorgänge eines Benutzers erlangt. Die Annahme HMMk > h impliziert beispielsweise, dass eine Runde (im Durchschnitt) durchgeführt wird In einer Minute bleibt dann der Großteil des Geldes einer bestimmten Runde in ehrlichen Händen mindestens zwei Stunden, wenn k = 120, und mindestens eine Woche, wenn k = 10.000. Beachten Sie die HMM-Annahmen und die vorherige ehrliche Mehrheit der Rechenleistung Annahmen hängen in dem Sinne zusammen, dass Rechenleistung mit Geld gekauft werden kann, Wenn böswillige Benutzer das meiste Geld besitzen, können sie auch den Großteil der Rechenleistung erhalten. 2.7 Das Kommunikationsmodell Wir gehen davon aus, dass die Verbreitung von Nachrichten – d. h. „Peer-to-Peer-Klatsch“5 – das einzige Mittel dafür ist Kommunikation. Vorübergehende Annahme: Rechtzeitige Zustellung von Nachrichten im gesamten Netzwerk. Für In den meisten Teilen dieses Artikels gehen wir davon aus, dass jede verbreitete Nachricht fast alle ehrlichen Benutzer erreicht rechtzeitig. Wir werden diese Annahme in Abschnitt 10 entfernen, wo wir uns mit Netzwerken befassen Partitionen, die entweder natürlich vorkommen oder durch Angriffe herbeigeführt werden. (Wie wir sehen werden, nehmen wir nur an rechtzeitige Zustellung von Nachrichten innerhalb jeder verbundenen Komponente des Netzwerks.) Eine konkrete Möglichkeit, die rechtzeitige Zustellung verbreiteter Nachrichten (im gesamten Netzwerk) zu erfassen, ist Folgendes: Für alle Erreichbarkeiten \(\rho\) > 95 % und Nachrichtengröße \(\mu\) \(\in\)Z+ gibt es \(\lambda\) \(\rho\),\(\mu\), so dass Wenn ein ehrlicher Benutzer zum Zeitpunkt t eine \(\mu\)-Byte-Nachricht m weiterleitet, dann erreicht m zum Zeitpunkt t + \(\lambda\) \(\rho\),\(\mu\) mindestens einen Bruchteil \(\rho\) der ehrlichen Benutzer. 5Im Wesentlichen, wie in Bitcoin, wenn ein Benutzer eine Nachricht m verbreitet, empfängt jeder aktive Benutzer m zum ersten Mal, wählt zufällig und unabhängig eine entsprechend kleine Anzahl aktiver Benutzer, seine „Nachbarn“, aus, an die er m weiterleitet, möglicherweise bis er eine Bestätigung von ihnen erhält. Die Weitergabe von m endet, wenn kein Benutzer empfängt Ich bin zum ersten Mal dabei.Die obige Eigenschaft kann jedoch unser Algorand-Protokoll nicht unterstützen, ohne explizit und separat einen Mechanismus vorzusehen, um die neueste blockchain zu erhalten – von einem anderen Benutzer/Depot usw. Um einen neuen Block Br zu konstruieren, muss nicht nur ein geeigneter Satz von Verifizierern die Runde r rechtzeitig erhalten Nachrichten, sondern auch die Nachrichten früherer Runden, um Br−1 und alle anderen vorherigen zu kennen Blöcke, die notwendig sind, um festzustellen, ob die Zahlungen in Br gültig sind. Folgendes Stattdessen reicht die Annahme aus. Annahme der Nachrichtenweitergabe (MP): Für alle \(\rho\) > 95 % und \(\mu\) \(\in\)Z+ gibt es \(\lambda\) \(\rho\),\(\mu\) so dass für alle Zeiten t und alle \(\mu\)-Byte-Nachrichten m, die von einem ehrlichen Benutzer vor t verbreitet wurden −\(\lambda\) \(\rho\),\(\mu\), m wird zum Zeitpunkt t von mindestens einem Bruchteil \(\rho\) der ehrlichen Benutzer empfangen. Das Protokoll Algorand weist tatsächlich jeden einer kleinen Anzahl von Benutzern (d. h. die Prüfer eines) an gegebener Schritt einer Runde in Algorand ′, um eine separate Nachricht einer (kleinen) vorgeschriebenen Größe zu verbreiten, und wir müssen die Zeit begrenzen, die zur Erfüllung dieser Anweisungen erforderlich ist. Wir tun dies, indem wir den MP bereichern Annahme wie folgt. Für alle n, \(\rho\) > 95 % und \(\mu\) \(\in\)Z+ gibt es \(\lambda\)n,\(\rho\),\(\mu\), so dass für alle Zeiten t und alle \(\mu\)-Byte gilt Nachrichten m1, . . . , mn, jeweils von einem ehrlichen Benutzer vor t −\(\lambda\)n,\(\rho\),\(\mu\), m1, . propagiert. . . , mn werden empfangen, bis zur Zeit t um mindestens einen Bruchteil \(\rho\) der ehrlichen Benutzer. Hinweis • Die obige Annahme ist bewusst einfach, aber auch stärker als in unserer Arbeit erforderlich.6 • Der Einfachheit halber gehen wir von \(\rho\) = 1 aus und verzichten daher auf die Erwähnung von \(\rho\). • Wir gehen pessimistisch davon aus, dass er, sofern er nicht gegen die MP-Annahme verstößt, der Gegner ist kontrolliert vollständig die Zustellung aller Nachrichten. Insbesondere ohne dass es von den Ehrlichen bemerkt wird Benutzer können den Gegner willkürlich entscheiden, welcher ehrliche Spieler wann welche Nachricht erhält, und die Zustellung jeder gewünschten Nachricht willkürlich beschleunigen.7

El Protocolo BA BA⋆ en un entorno tradicional

Como ya se destacó, el acuerdo bizantino es un ingrediente clave de Algorand. En efecto, es a través el uso de un protocolo BA tal que Algorand no se vea afectado por las bifurcaciones. Sin embargo, para estar seguros contra nuestra poderoso adversario, Algorand debe confiar en un protocolo BA que satisfaga la nueva capacidad de reemplazo del jugador. restricción. Además, para que Algorand sea eficiente, dicho protocolo BA debe ser muy eficiente. Los protocolos BA se definieron por primera vez para un modelo de comunicación idealizado, sincrónico completo. redes (redes SC). Este modelo permite un diseño y análisis más simples de los protocolos BA. 6Dado el porcentaje honesto h y la probabilidad de falla aceptable F, Algorand calcula un límite superior, N, al número máximo de miembros de verificadores en un paso. Por lo tanto, el supuesto de MP sólo necesita ser válido para n \(\leq\)N. Además, como se indicó, la suposición de MP se mantiene sin importar cuántos otros mensajes puedan propagarse junto con él. los mj. Sin embargo, como veremos, en Algorand los mensajes en se propagan en un tiempo esencialmente no superpuesto. intervalos, durante los cuales se propaga un solo bloque o, como máximo, N verificadores propagan un bloque pequeño (por ejemplo, 200B). mensaje. Por lo tanto, podríamos reformular el supuesto de MP de una manera más débil, pero también más compleja. 7Por ejemplo, puede aprender inmediatamente los mensajes enviados por jugadores honestos. Así, un usuario malintencionado i′, que es Cuando se le pide que propague un mensaje simultáneamente con un usuario honesto i, siempre puede elegir su propio mensaje m′ basándose en el mensaje m realmente propagado por i. Esta capacidad está relacionada con la prisa, en el lenguaje de la computación distribuida. literatura.En consecuencia, en esta sección, presentamos un nuevo protocolo BA, BA⋆, para redes SC e ignoramos la cuestión de la reemplazabilidad de los jugadores por completo. El protocolo BA⋆ es una aportación de valor independiente. De hecho, es el protocolo BA criptográfico más eficiente para redes SC conocido hasta el momento. Para usarlo dentro de nuestro protocolo Algorand, modificamos BA⋆ un poco, para tener en cuenta nuestros diferentes modelo de comunicación y contexto, pero asegúrese, en la sección X, de resaltar cómo se utiliza BA⋆ dentro de nuestro protocolo actual Algorand ′. Comenzamos recordando el modelo en el que opera BA⋆ y la noción de acuerdo bizantino. 3.1 Redes completas sincrónicas y adversarios coincidentes En una red SC, hay un reloj común, que hace tictac en cada integral en tiempos r = 1, 2,. . . En cada momento par, haga clic en r, cada jugador i envía instantánea y simultáneamente un único mensaje señor i,j (posiblemente el mensaje vacío) a cada jugador j, incluido él mismo. cada señor i,j se recibe en ese momento haga clic en r + 1 por parte del jugador j, junto con la identidad del remitente i. Nuevamente, en un protocolo de comunicación, un jugador es honesto si sigue todas sus instrucciones prescritas. instrucciones y maliciosas en caso contrario. Todos los jugadores maliciosos están totalmente controlados y perfectamente coordinado por el Adversario, quien, en particular, recibe inmediatamente todos los mensajes dirigidos a jugadores maliciosos y elige los mensajes que envían. El adversario puede convertir inmediatamente en malicioso a cualquier usuario honesto que desee en cualquier momento. quiere, sujeto únicamente a un posible límite superior t para el número de jugadores maliciosos. Es decir, el Adversario “no puede interferir con los mensajes ya enviados por un usuario honesto i”, que será Entregado como de costumbre. El Adversario también tiene la capacidad adicional de ver instantáneamente, en cada ronda par, el mensajes que envían los jugadores actualmente honestos, y utilizar instantáneamente esta información para elegir los mensajes que los jugadores maliciosos envían al mismo tiempo marcan. Observaciones • Poder Adversario. La configuración anterior es muy conflictiva. De hecho, en el acuerdo bizantino En la literatura, muchos entornos son menos conflictivos. Sin embargo, algunos escenarios más conflictivos han También se ha considerado, donde el Adversario, después de ver los mensajes enviados por un jugador honesto, en un momento dado haga clic en r, tiene la capacidad de borrar todos estos mensajes de la red, inmediatamente corrupto i, elija el mensaje que envía el ahora malicioso i en el momento de hacer clic en r y haga que Entregado como de costumbre. El poder previsto del Adversario coincide con el que tiene en nuestro entorno. • Abstracción Física. El modelo de comunicación previsto abstrae un modelo más físico, en el que cada par de jugadores (i, j) está unido por una línea de comunicación separada y privada li,j. Es decir, nadie más puede inyectar, interferir u obtener información sobre los mensajes enviados. li,j. La única manera que tiene el Adversario de tener acceso a li,j es corromper a i o j. • Privacidad y Autenticación. En las redes SC se garantiza la privacidad y autenticación de los mensajes. por suposición. Por el contrario, en nuestra red de comunicación, donde los mensajes se propagan De igual a igual, la autenticación está garantizada mediante firmas digitales y la privacidad es inexistente. Así, para adoptar el protocolo BA⋆ en nuestro entorno, cada mensaje intercambiado debe estar firmado digitalmente. (identificando además el estado en el que fue enviado). Afortunadamente, los protocolos de BA que utilizamos considere usar en Algorand no requiere privacidad de mensajes.3.2 La noción de un acuerdo bizantino La noción de acuerdo bizantino fue introducida por Pease Shostak y Lamport [31] para el Caso binario, es decir, cuando cada valor inicial consta de un bit. Sin embargo, se amplió rápidamente. a valores iniciales arbitrarios. (Ver las encuestas de Fischer [16] y Chor y Dwork [10].) Por un BA protocolo, nos referimos a uno de valor arbitrario. Definición 3.1. En una red síncrona, sea P un protocolo de n jugadores, cuyo conjunto de jugadores es común conocimiento entre los jugadores, t un entero positivo tal que n \(\geq\)2t + 1. Decimos que P es un valor arbitrario (respectivamente, binario) (n, t) -Protocolo de acuerdo bizantino con solidez \(\sigma\) \(\in\)(0, 1) si, para cada conjunto de valores V que no contiene el símbolo especial \(\bot\) (respectivamente, para V = {0, 1}), en un ejecución en la que como máximo t de los jugadores son maliciosos y en la que cada jugador i comienza con un valor inicial vi \(\in\)V , cada jugador honesto j se detiene con probabilidad 1, generando un valor outi \(\in\)V \(\cup\){\(\bot\)} de modo que se satisfagan, con probabilidad al menos \(\sigma\), las dos condiciones siguientes: 1. Acuerdo: Existe out \(\in\)V \(\cup\){\(\bot\)} tal que outi = out para todos los jugadores honestos i. 2. Consistencia: si, para algún valor v \(\in\)V, vi = v para todos los jugadores honestos, entonces out = v. Nos referimos a out como la salida de P y a cada outi como la salida del jugador i. 3.3 La notación BA # En nuestros protocolos de BA, un jugador debe contar cuántos jugadores le enviaron un mensaje determinado en un paso dado. En consecuencia, para cada valor posible v que podría enviarse,

s

yo(v) (o simplemente #i(v) cuando s está claro) es el número de jugadores j de los cuales he recibido v en el paso s. Recordando que un jugador i recibe exactamente un mensaje de cada jugador j, si el número de jugadores es n, entonces, para todos i y s, P v#s yo(v) = norte. 3.4 El protocolo binario BA BBA⋆ En esta sección presentamos un nuevo protocolo BA binario, BBA⋆, que se basa en la honestidad de más de dos tercios de los jugadores y es muy rápido: no importa lo que puedan hacer los jugadores maliciosos, cada ejecución de su bucle principal hace que los jugadores se pongan de acuerdo con una probabilidad de 1/3. Cada jugador tiene su propia clave pública de un esquema de firma digital que satisface la firma única. propiedad. Dado que este protocolo está diseñado para ejecutarse en una red completa síncrona, no hay Necesito que un jugador firme cada uno de sus mensajes. Las firmas digitales se utilizan para generar un bit aleatorio suficientemente común en el Paso 3. (En Algorand, Las firmas digitales también se utilizan para autenticar todos los demás mensajes). El protocolo requiere una configuración mínima: una cadena aleatoria común r, independiente de los jugadores llaves. (En Algorand, r en realidad se reemplaza por la cantidad Qr.) El protocolo BBA⋆ es un bucle de 3 pasos, donde los jugadores intercambian repetidamente valores booleanos y Diferentes jugadores pueden salir de este bucle en diferentes momentos. Un jugador i sale de este bucle propagándose, en algún paso, ya sea un valor especial 0∗ o un valor especial 1∗, instruyendo así a todos los jugadores a "fingir" que reciben respectivamente 0 y 1 de i en todos los pasos futuros. (Dicho alternativamente: asumirque el último mensaje recibido por un jugador j de otro jugador i fue un poco b. Luego, en cualquier paso en el que no recibe ningún mensaje de i, j actúa como si le hubiera enviado el bit b.) El protocolo utiliza un contador \(\gamma\), que representa cuántas veces se ha ejecutado su bucle de 3 pasos. Al comienzo de BBA⋆, \(\gamma\) = 0. (Se puede pensar en \(\gamma\) como un contador global, pero en realidad aumenta por cada jugador individual cada vez que se ejecuta el bucle.) Hay n \(\geq\)3t + 1, donde t es el número máximo posible de jugadores maliciosos. un binario la cadena x se identifica con el número entero cuya representación binaria (con posibles ceros iniciales) es x; y lsb(x) denota el bit menos significativo de x. Protocolo BBA⋆ (Comunicación) Paso 1. [Paso Coin-Fixed-To-0] Cada jugador i envía bi. 1.1 Si #1 i (0) \(\geq\)2t + 1, luego i establece bi = 0, envía 0∗, genera outi = 0, y SE DETIENE. 1.2 Si #1 i (1) \(\geq\)2t + 1, entonces, entonces i establece bi = 1. 1.3 De lo contrario, establezco bi = 0. (Comunicación) Paso 2. [Paso de moneda fijada a 1] Cada jugador i envía bi. 2.1 Si #2 i (1) \(\geq\)2t + 1, entonces i establece bi = 1, envía 1∗, salidas outi = 1, y SE DETIENE. 2.2 Si #2 i (0) \(\geq\)2t + 1, luego establezco bi = 0. 2.3 De lo contrario, establezco bi = 1. (Comunicación) Paso 3. [Paso lanzado genuinamente con moneda] Cada jugador i envía bi y SIGi(r, \(\gamma\)). 3.1 Si #3 i (0) \(\geq\)2t + 1, entonces i establece bi = 0. 3.2 Si #3 i (1) \(\geq\)2t + 1, entonces i establece bi = 1. 3.3 De lo contrario, dejando Si = {j \(\in\)N que le han enviado a i un mensaje adecuado en este paso 3 }, i establece bi = c \(\triangleq\)lsb(minj\(\in\)Si H(SIGi(r, \(\gamma\)))); aumenta \(\gamma\)i en 1; y regresa al Paso 1. Teorema 3.1. Siempre que n \(\geq\)3t + 1, BBA⋆ es un protocolo binario (n, t)-BA con solidez 1. En [26] se proporciona una demostración del teorema 3.1. Su adaptación a nuestro entorno y su reemplazabilidad del jugador. La propiedad es novedosa. Observación histórica Los protocolos BA binarios probabilísticos fueron propuestos por primera vez por Ben-Or en configuraciones asincrónicas [7]. El protocolo BBA⋆ es una adaptación novedosa, a nuestro entorno de clave pública, del Protocolo binario BA de Feldman y Micali [15]. Su protocolo fue el primero en funcionar de la manera esperada. número constante de pasos. Funcionó haciendo que los propios jugadores implementaran una moneda común, una noción propuesta por Rabin, quien la implementó a través de una parte externa de confianza [32].3.5 Consenso Graduado y el Protocolo CG Recordemos, para los valores arbitrarios, una noción de consenso mucho más débil que el acuerdo bizantino. Definición 3.2. Sea P un protocolo en el que el conjunto de todos los jugadores es de conocimiento común y cada uno El jugador i conoce en privado un valor inicial arbitrario v′. yo. Decimos que P es un protocolo de consenso graduado (n, t) si, en cada ejecución con n jugadores, en la mayoría de los cuales son maliciosos, cada jugador honesto deja de generar un par valor-grado (vi, gi), donde gi \(\in\){0, 1, 2}, para satisfacer las tres condiciones siguientes: 1. Para todos los jugadores honestos i y j, |gi −gj| \(\leq\)1. 2. Para todos los jugadores honestos i y j, gi, gj > 0 ⇒vi = vj. 3. Si v′ 1 = \(\cdots\) = v′ n = v para algún valor v, luego vi = v y gi = 2 para todos los jugadores honestos i. Nota histórica La noción de consenso gradual se deriva simplemente de la de consenso gradual. transmitido, presentado por Feldman y Micali en [15], al fortalecer la noción de un cruzado acuerdo, presentado por Dolev [12] y perfeccionado por Turpin y Coan [33].8 En [15], los autores también proporcionaron un protocolo de transmisión graduado de 3 pasos (n, t), Gradecast, para n\(\geq\)3t+1. Posteriormente se encontró un protocolo de transmisión graduado (n, t) más complejo para n > 2t+1. por Katz y Koo [19]. El siguiente protocolo de dos pasos GC consta de los dos últimos pasos de Gradecast, expresados en nuestro notación. Para enfatizar este hecho, y para coincidir con los pasos del protocolo Algorand ′ de la sección 4.1, respectivamente nombre 2 y 3 los pasos de GC. Protocolo GC Paso 2. Cada jugador que envío v′ Yo a todos los jugadores. Paso 3. Cada jugador i envía a todos los jugadores la cadena x si y solo si #2 yo (x) \(\geq\)2t + 1. Determinación de la producción. Cada jugador i genera el par (vi, gi) calculado de la siguiente manera: • Si, para alguna x, #3 i (x) \(\geq\)2t + 1, entonces vi = x y gi = 2. • Si, para alguna x, #3 i (x) \(\geq\)t + 1, entonces vi = x y gi = 1. • En caso contrario, vi = \(\bot\) y gi = 0. Teorema 3.2. Si n \(\geq\)3t + 1, entonces GC es un protocolo de transmisión graduado (n, t). La prueba se deriva inmediatamente de la del protocolo de calificaciones en [15] y, por lo tanto, se omite.9 8En esencia, en un protocolo de transmisión gradual, (a) el aporte de cada jugador es la identidad de un distinguido jugador, el remitente, que tiene un valor arbitrario v como entrada privada adicional, y (b) las salidas deben satisfacer el mismas propiedades 1 y 2 del consenso graduado, más la siguiente propiedad 3′: si el remitente es honesto, entonces vi = v y gi = 2 para todo jugador honesto i. 9De hecho, en su protocolo, en el paso 1, el remitente envía su propio valor privado v a todos los jugadores, y cada jugador i permite v′ Estoy compuesto por el valor que realmente recibió del remitente en el paso 1.3.6 El Protocolo BA⋆ Ahora describimos el protocolo BA de valor arbitrario BA⋆ a través del protocolo BA binario BBA⋆ y el protocolo de consenso graduado GC. A continuación, el valor inicial de cada jugador i es v′ yo. Protocolo BA⋆ Pasos 1 y 2. Cada jugador i ejecuta GC, en la entrada v′ i, para calcular un par (vi, gi). Paso 3,. . . Cada jugador i ejecuta BBA⋆—con entrada inicial 0, si gi = 2, y 1 en caso contrario—por lo que para calcular el bit outi. Determinación de la producción. Cada jugador i genera vi, si outi = 0, y \(\bot\) en caso contrario. Teorema 3.3. Siempre que n \(\geq\)3t + 1, BA⋆es un protocolo (n, t)-BA con solidez 1. Prueba. Primero demostramos la coherencia y luego el acuerdo. Prueba de coherencia. Supongamos que, para algún valor v \(\in\)V , v′ i = v. Entonces, por la propiedad 3 de Consenso calificado, después de la ejecución de GC, todos los jugadores honestos salen (v, 2). En consecuencia, 0 es la parte inicial de todos los jugadores honestos al final de la ejecución de BBA⋆. Así, por el Acuerdo propiedad del acuerdo bizantino binario, al final de la ejecución de BA⋆, outi = 0 para todos los honestos jugadores. Esto implica que la producción de cada jugador honesto i en BA⋆es vi = v. ✷ Prueba de Acuerdo. Dado que BBA⋆ es un protocolo BA binario, ya sea (A) outi = 1 para todo jugador honesto i, o (B) outi = 0 para todo jugador honesto i. En el caso A, todos los jugadores honestos generan \(\bot\) en BA⋆ y, por lo tanto, se cumple el acuerdo. Consideremos ahora el caso B. En En este caso, en la ejecución de BBA⋆, el bit inicial de al menos un jugador honesto i es 0. (De hecho, si El bit inicial de todos los jugadores honestos fuera 1, entonces, según la propiedad de consistencia de BBA⋆, tendríamos outj = 1 para todos los j honestos). En consecuencia, después de la ejecución de GC, i genera el par (v, 2) para algunos valor v. Por tanto, según la propiedad 1 del consenso graduado, gj > 0 para todos los jugadores honestos j. En consecuencia, por propiedad 2 del consenso graduado, vj = v para todos los jugadores honestos j. Esto implica que, al final de BA⋆, todo jugador honesto j produce v. Por lo tanto, el acuerdo también se cumple en el caso B. ✷ Dado que se mantienen tanto la coherencia como el acuerdo, BA⋆ es un protocolo BA de valor arbitrario. Nota histórica Turpin y Coan fueron los primeros en demostrar que, para n \(\geq\)3t+1, cualquier binario (n, t)-BA El protocolo se puede convertir en un protocolo de valor arbitrario (n, t) -BA. La reducción del valor arbitrario. Del acuerdo bizantino al acuerdo bizantino binario a través del consenso graduado es más modular y más limpio y simplifica el análisis de nuestro protocolo Algorand Algorand ′. Generalizando BA⋆para uso en Algorand Algorand funciona incluso cuando toda la comunicación se realiza a través de chismeando. Sin embargo, aunque se presenta en una red de comunicación tradicional y familiar, para Para permitir una mejor comparación con el estado de la técnica y una comprensión más fácil, el protocolo BA⋆funciona también en redes de chismes. De hecho, en nuestras realizaciones detalladas de Algorand, lo presentaremos directamente para las redes de chismes. También señalaremos que satisface la reemplazabilidad del jugador. propiedad que es crucial para que Algorand esté seguro en el modelo muy adversario previsto.

Cualquier protocolo reemplazable por un reproductor BA que funcione en una red de comunicación chismosa puede ser empleado de forma segura dentro del sistema inventivo Algorand. En particular, Micali y Vaikunthanatan Hemos ampliado BA⋆ para que funcione de manera muy eficiente también con una mayoría simple de jugadores honestos. eso El protocolo también podría usarse en Algorand.

Das BA-Protokoll BA⋆in einer traditionellen Umgebung

Wie bereits betont, ist das byzantinische Abkommen ein wesentlicher Bestandteil von Algorand. Tatsächlich ist es durch die Verwendung eines solchen BA-Protokolls, dass Algorand von Forks nicht beeinflusst wird. Um jedoch sicher vor unserem zu sein Der mächtige Gegner Algorand muss sich auf ein BA-Protokoll verlassen, das die Ersetzbarkeit neuer Spieler erfüllt Einschränkung. Damit Algorand effizient ist, muss ein solches BA-Protokoll außerdem sehr effizient sein. BA-Protokolle wurden zunächst für ein idealisiertes Kommunikationsmodell, synchrone Vollständigkeit, definiert Netzwerke (SC-Netzwerke). Ein solches Modell ermöglicht einen einfacheren Entwurf und eine einfachere Analyse von BA-Protokollen. 6Anhand des ehrlichen Prozentsatzes h und der akzeptablen Ausfallwahrscheinlichkeit F berechnet Algorand eine Obergrenze N, auf die maximale Anzahl von Prüfern in einem Schritt. Daher muss die MP-Annahme nur für n \(\leq\) N gelten. Darüber hinaus gilt die MP-Annahme, wie bereits erwähnt, unabhängig davon, wie viele andere Nachrichten gleichzeitig verbreitet werden die mjs. Wie wir jedoch sehen werden, werden Nachrichten in Algorand in im Wesentlichen nicht überlappender Zeit verbreitet Intervalle, in denen entweder ein einzelner Block propagiert wird oder höchstens N Verifizierer einen kleinen (z. B. 200B) propagieren Nachricht. Somit könnten wir die MP-Annahme auf eine schwächere, aber auch komplexere Weise umformulieren. 7Zum Beispiel kann er die Nachrichten, die ehrliche Spieler senden, sofort erfahren. Somit ist ein böswilliger Benutzer i′, wer ist Wenn ein ehrlicher Benutzer i aufgefordert wird, gleichzeitig eine Nachricht zu verbreiten, kann er immer seine eigene Nachricht m′ basierend darauf auswählen die Nachricht, die m tatsächlich von i verbreitet wurde. Diese Fähigkeit steht im Zusammenhang mit Rushing, im Sprachgebrauch verteilter Berechnungen Literatur.Dementsprechend stellen wir in diesem Abschnitt ein neues BA-Protokoll, BA⋆, für SC-Netzwerke und Ignorieren vor die Frage der Spielerersetzbarkeit insgesamt. Das Protokoll BA⋆ist ein Beitrag von gesondertem Wert. Tatsächlich ist es das bisher effizienteste kryptografische BA-Protokoll für SC-Netzwerke. Um es in unserem Algorand-Protokoll zu verwenden, modifizieren wir BA⋆ein wenig, um unseren Unterschieden Rechnung zu tragen Kommunikationsmodell und -kontext, aber achten Sie darauf, in Abschnitt X hervorzuheben, wie BA⋆ verwendet wird innerhalb unseres aktuellen Protokolls Algorand ′. Wir erinnern uns zunächst an das Modell, nach dem BA⋆ operiert, und an die Vorstellung einer byzantinischen Vereinbarung. 3.1 Synchrone vollständige Netzwerke und passende Gegner In einem SC-Netzwerk gibt es eine gemeinsame Uhr, die jeweils zu ganzzahligen Zeiten r = 1, 2, . tickt. . . Bei jedem geraden Klick auf r sendet jeder Spieler sofort und gleichzeitig eine Single Nachricht an Herrn i,j (möglicherweise die leere Nachricht) an jeden Spieler j, einschließlich sich selbst. Jeder Herr i,j wird empfangen Zu diesem Zeitpunkt klicken Sie auf r + 1 von Spieler j, zusammen mit der Identität des Absenders i. Auch in einem Kommunikationsprotokoll ist ein Spieler ehrlich, wenn er alle seine Anweisungen befolgt Anweisungen und sonst böswillig. Alle böswilligen Spieler werden vollständig und perfekt kontrolliert koordiniert durch den Gegner, der insbesondere alle an ihn gerichteten Nachrichten sofort erhält böswillige Spieler und wählt die Nachrichten aus, die sie senden. Der Angreifer kann jeden ehrlichen Benutzer, den er möchte, jederzeit bösartig machen Er will, vorbehaltlich nur einer möglichen Obergrenze t für die Anzahl böswilliger Spieler. Das heißt, Der Gegner „kann nicht in die Nachrichten eingreifen, die bereits von einem ehrlichen Benutzer i gesendet wurden“, was der Fall sein wird wie gewohnt geliefert. Der Gegner hat außerdem die zusätzliche Fähigkeit, in jeder geraden Runde sofort zu sehen, was Nachrichten, die die derzeit ehrlichen Spieler senden, und verwenden diese Informationen sofort zur Auswahl Die Nachrichten, die die böswilligen Spieler gleichzeitig senden, ticken. Bemerkungen • Gegnerische Macht. Die obige Einstellung ist sehr kontrovers. Tatsächlich im byzantinischen Abkommen In der Literatur sind viele Situationen weniger kontrovers. Es gibt jedoch einige kontroversere Einstellungen Es wurde auch in Betracht gezogen, dass der Gegner, nachdem er die von einem ehrlichen Spieler gesendeten Nachrichten gesehen hat, i Wenn Sie zu einem bestimmten Zeitpunkt auf r klicken, können Sie alle diese Nachrichten sofort aus dem Netzwerk löschen korruptes i, wählen Sie die Nachricht aus, die das jetzt böswillige i sendet, klicken Sie auf r und lassen Sie sie wie gewohnt geliefert. Die erwartete Macht des Gegners entspricht der, die er in unserer Umgebung hat. • Physikalische Abstraktion. Das geplante Kommunikationsmodell abstrahiert ein eher physisches Modell, bei dem jedes Spielerpaar (i, j) durch eine separate und private Kommunikationsleitung li,j verbunden ist. Das heißt, niemand sonst kann die übermittelten Nachrichten einschleusen, stören oder Informationen über sie erhalten li,j. Die einzige Möglichkeit für den Gegner, Zugriff auf li,j zu erhalten, besteht darin, entweder i oder j zu beschädigen. • Datenschutz und Authentifizierung. In SC-Netzwerken sind Nachrichtenvertraulichkeit und Authentifizierung gewährleistet durch Annahme. Im Gegensatz dazu in unserem Kommunikationsnetzwerk, wo Nachrichten verbreitet werden Von Peer zu Peer wird die Authentifizierung durch digitale Signaturen garantiert und es gibt keinen Datenschutz. Um das Protokoll BA⋆an unsere Umgebung anzupassen, sollte daher jede ausgetauschte Nachricht digital signiert sein (zur weiteren Identifizierung des Staates, in dem es gesendet wurde). Glücklicherweise sind die BA-Protokolle, die wir haben Erwägen Sie die Verwendung in Algorand erfordern keinen Datenschutz für Nachrichten.3.2 Die Idee eines byzantinischen Abkommens Der Begriff der byzantinischen Vereinbarung wurde von Pease Shostak und Lamport [31] für die eingeführt binärer Fall, das heißt, wenn jeder Anfangswert aus einem Bit besteht. Es wurde jedoch schnell erweitert auf beliebige Anfangswerte. (Siehe die Umfragen von Fischer [16] und Chor and Dwork [10].) Von einem BA Protokoll, wir meinen ein Protokoll mit beliebigem Wert. Definition 3.1. In einem synchronen Netzwerk sei P ein N-Spieler-Protokoll, dessen Spielersatz gemeinsam ist Wissen unter den Spielern, t eine positive ganze Zahl, so dass n \(\geq\)2t + 1. Wir sagen, dass P ein ist beliebiger Wert (bzw. binär) (n, t)-Byzantinisches Vereinbarungsprotokoll mit Solidität \(\sigma\) \(\in\)(0, 1) wenn für jede Menge von Werten V, die nicht das Sonderzeichen \(\bot\) enthält (bzw. für V = {0, 1}), in an Ausführung, bei der höchstens t der Spieler böswillig sind und bei der jeder Spieler mit einem beginnt Anfangswert vi \(\in\)V , jeder ehrliche Spieler j hält mit Wahrscheinlichkeit 1 an und gibt einen Wert outi \(\in\)V \(\cup\){\(\bot\)} aus um mit einer Wahrscheinlichkeit von mindestens \(\sigma\) die folgenden zwei Bedingungen zu erfüllen: 1. Übereinstimmung: Es existiert out \(\in\)V \(\cup\){\(\bot\)} mit outi = out für alle ehrlichen Spieler i. 2. Konsistenz: Wenn für einen Wert v \(\in\)V vi = v für alle ehrlichen Spieler ist, dann gilt out = v. Wir bezeichnen out als P-Output und jedes Outi als Player-i-Output. 3.3 Die BA-Notation # In unseren BA-Protokollen muss ein Spieler zählen, wie viele Spieler ihm eine bestimmte Nachricht gesendet haben einen bestimmten Schritt. Dementsprechend gilt für jeden möglichen Wert v, der gesendet werden könnte:

s

ich(v) (oder einfach #i(v), wenn s klar ist) ist die Anzahl der Spieler j, von denen i v in Schritt s erhalten hat. Denken Sie daran, dass ein Spieler i von jedem Spieler j genau eine Nachricht erhält, wenn die Anzahl der Spieler ist n, dann ist für alle i und s P v #s i(v) = n. 3.4 Das binäre BA-Protokoll BBA⋆ In diesem Abschnitt stellen wir ein neues binäres BA-Protokoll vor, BBA⋆, das auf der Ehrlichkeit von mehr basiert als zwei Drittel der Spieler und ist sehr schnell: Egal, was die böswilligen Spieler tun, Jede Ausführung der Hauptschleife bringt die Spieler mit einer Wahrscheinlichkeit von 1/3 zur Übereinstimmung. Jeder Spieler verfügt über seinen eigenen öffentlichen Schlüssel eines digitalen Signaturschemas, das der eindeutigen Signatur entspricht Eigentum. Da dieses Protokoll für die Ausführung in einem synchronen Gesamtnetzwerk vorgesehen ist, ist dies nicht der Fall Ich brauche einen Spieler, der jede seiner Nachrichten signiert. Digitale Signaturen werden verwendet, um in Schritt 3 ein ausreichend häufiges Zufallsbit zu generieren. (In Algorand, Digitale Signaturen werden auch zur Authentifizierung aller anderen Nachrichten verwendet.) Das Protokoll erfordert eine minimale Einrichtung: eine gemeinsame Zufallszeichenfolge r, unabhängig von den Spielern. Schlüssel. (In Algorand wird r tatsächlich durch die Größe Qr ersetzt.) Das Protokoll BBA⋆ist eine dreistufige Schleife, in der die Spieler wiederholt boolesche Werte austauschen Verschiedene Spieler können diese Schleife zu unterschiedlichen Zeiten verlassen. Ein Spieler verlässt diese Schleife durch Weitergabe, irgendwann entweder einen Sonderwert 0∗ oder einen Sonderwert 1∗ und weist damit alle Spieler an „Stellen Sie sich vor“, dass sie in allen zukünftigen Schritten jeweils 0 und 1 von i erhalten. (Alternativ gesagt: annehmendass die letzte Nachricht, die ein Spieler j von einem anderen Spieler i erhalten hat, ein bisschen b war. Dann, in jedem Schritt in dem er keine Nachricht von i erhält, verhält sich j so, als ob ich ihm das Bit b geschickt hätte.) Das Protokoll verwendet einen Zähler \(\gamma\), der angibt, wie oft seine dreistufige Schleife ausgeführt wurde. Zu Beginn von BBA⋆ ist \(\gamma\) = 0. (Man könnte sich \(\gamma\) als einen globalen Zähler vorstellen, aber er wird tatsächlich erhöht von jedem einzelnen Spieler jedes Mal, wenn die Schleife ausgeführt wird.) Es gibt n \(\geq\)3t + 1, wobei t die maximal mögliche Anzahl böswilliger Spieler ist. Eine Binärdatei Zeichenfolge x wird mit der Ganzzahl identifiziert, deren binäre Darstellung (mit möglichen führenden Nullen) x ist; und lsb(x) bezeichnet das niedrigstwertige Bit von x. Protokoll BBA⋆ (Kommunikation) Schritt 1. [Coin-Fixed-To-0-Schritt] Jeder Spieler sendet bi. 1.1 Wenn #1 i (0) \(\geq\)2t + 1, dann setzt i bi = 0, sendet 0∗, gibt outi = 0 aus, und HALTS. 1.2 Wenn #1 i (1) \(\geq\)2t + 1, dann setzt i bi = 1. 1.3 Ansonsten setzt i bi = 0. (Kommunikation) Schritt 2. [Coin-Fixed-To-1-Schritt] Jeder Spieler sendet Bi. 2.1 Wenn #2 i (1) \(\geq\)2t + 1, dann setzt i bi = 1, sendet 1∗, Ausgänge outi = 1, und HALTS. 2.2 Wenn #2 i (0) \(\geq\)2t + 1, dann setze ich bi = 0. 2.3 Ansonsten setzt i bi = 1. (Kommunikation) Schritt 3. [Münzen-echt umgedrehter Schritt] Jeder Spieler i sendet bi und SIGi(r, \(\gamma\)). 3.1 Wenn #3 i (0) \(\geq\)2t + 1, dann setzt i bi = 0. 3.2 Wenn #3 i (1) \(\geq\)2t + 1, dann setzt i bi = 1. 3.3 Ansonsten sei Si = {j \(\in\)N, die i in diesem Schritt 3 eine richtige Nachricht gesendet haben }, i setzt bi = c \(\triangleq\)lsb(minj\(\in\)Si H(SIGi(r, \(\gamma\)))); erhöht \(\gamma\)i um 1; und kehrt zu Schritt 1 zurück. Satz 3.1. Immer wenn n \(\geq\)3t + 1, ist BBA⋆ein binäres (n, t)-BA-Protokoll mit der Solidität 1. Ein Beweis von Satz 3.1 ist in [26] gegeben. Seine Anpassung an unsere Umgebung und seine Austauschbarkeit durch Spieler Eigentum sind neu. Historische Bemerkung Probabilistische binäre BA-Protokolle wurden erstmals von Ben-Or vorgeschlagen asynchrone Einstellungen [7]. Das Protokoll BBA⋆ist eine neuartige Anpassung des binäres BA-Protokoll von Feldman und Micali [15]. Ihr Protokoll war das erste, das wie erwartet funktionierte konstante Anzahl von Schritten. Es funktionierte dadurch, dass die Spieler selbst eine gemeinsame Münze einführten, eine von Rabin vorgeschlagene Idee, die sie über eine externe vertrauenswürdige Partei [32] implementierte.3.5 Abgestufter Konsens und das Protokoll GC Erinnern wir uns für willkürliche Werte an einen Konsensbegriff, der viel schwächer ist als die byzantinische Vereinbarung. Definition 3.2. Sei P ein Protokoll, in dem die Menge aller Spieler allgemein bekannt ist, und zwar jeder Spieler i kennt privat einen beliebigen Anfangswert v′ ich. Wir sagen, dass P ein (n, t)-gestuftes Konsensprotokoll ist, wenn bei jeder Ausführung mit n Spielern at Die meisten davon sind böswillig. Jeder ehrliche Spieler hört auf, ein Wert-Grade-Paar (vi, gi) auszugeben. wobei gi \(\in\){0, 1, 2}, um die folgenden drei Bedingungen zu erfüllen: 1. Für alle ehrlichen Spieler i und j gilt |gi −gj| \(\leq\)1. 2. Für alle ehrlichen Spieler i und j, gi, gj > 0 ⇒vi = vj. 3. Wenn v′ 1 = \(\cdots\) = v′ n = v für einen Wert v, dann ist vi = v und gi = 2 für alle ehrlichen Spieler i. Historische Anmerkung Der Begriff eines abgestuften Konsenses leitet sich einfach von dem eines abgestuften Konsenses ab Sendung, vorgebracht von Feldman und Micali in [15], indem sie die Vorstellung eines Kreuzfahrers stärkt Vereinbarung, eingeführt von Dolev [12] und verfeinert von Turpin und Coan [33].8 In [15] stellten die Autoren auch ein dreistufiges (n, t)-bewertetes Rundfunkprotokoll bereit, Gradecast, für n \(\geq\)3t+1. Später wurde ein komplexeres (n, t)-Graded-Broadcasting-Protokoll für n > 2t+1 gefunden von Katz und Koo [19]. Das folgende zweistufige Protokoll GC besteht aus den letzten beiden Schritten des Gradecasts, ausgedrückt in unserem Notation. Um diese Tatsache hervorzuheben und die Schritte des Protokolls Algorand ′ in Abschnitt 4.1 anzupassen, haben wir Nennen Sie jeweils 2 und 3 die Schritte von GC. Protokoll GC Schritt 2. Jeder Spieler i sendet v′ Ich an alle Spieler. Schritt 3. Jeder Spieler i sendet genau dann an alle Spieler die Zeichenfolge x, wenn #2 i (x) \(\geq\)2t + 1. Ausgabeermittlung. Jeder Spieler i gibt das wie folgt berechnete Paar (vi, gi) aus: • Wenn für ein x, #3 i (x) \(\geq\)2t + 1, dann gilt vi = x und gi = 2. • Wenn für ein x, #3 i (x) \(\geq\)t + 1, dann gilt vi = x und gi = 1. • Sonst gilt vi = \(\bot\)und gi = 0. Satz 3.2. Wenn n \(\geq\)3t + 1, dann ist GC ein (n, t)-abgestuftes Broadcast-Protokoll. Der Beweis folgt unmittelbar aus dem des Protokoll-Gradecasts in [15] und wird daher weggelassen.9 8Im Wesentlichen ist in einem abgestuften Rundfunkprotokoll (a) die Eingabe jedes Spielers die Identität eines Distinguished Spieler, der Absender, der einen beliebigen Wert v als zusätzliche private Eingabe hat, und (b) die Ausgaben müssen die erfüllen gleiche Eigenschaften 1 und 2 des abgestuften Konsenses, plus die folgende Eigenschaft 3′: Wenn der Absender ehrlich ist, dann gilt vi = v und gi = 2 für alle ehrlichen Spieler i. 9Tatsächlich sendet der Absender in seinem Protokoll in Schritt 1 seinen eigenen privaten Wert v an alle Spieler, und jeder Spieler i lässt zu v′ i besteht aus dem Wert, den er in Schritt 1 tatsächlich vom Absender erhalten hat.3.6 Das Protokoll BA⋆ Wir beschreiben nun das Arbiträrwert-BA-Protokoll BA⋆über das binäre BA-Protokoll BBA⋆und das Protokoll mit abgestuftem Konsens GC. Unten ist der Anfangswert jedes Spielers i v′ ich. Protokoll BA⋆ Schritte 1 und 2. Jeder Spieler i führt GC bei der Eingabe v′ aus i, um ein Paar (vi, gi) zu berechnen. Schritt 3, . . . Jeder Spieler i führt BBA⋆ aus – mit der anfänglichen Eingabe 0, wenn gi = 2, und 1 andernfalls – also um das Bit outi zu berechnen. Ausgabeermittlung. Jeder Spieler i gibt vi aus, wenn outi = 0, andernfalls \(\bot\). Satz 3.3. Immer wenn n \(\geq\)3t + 1, ist BA⋆ein (n, t)-BA-Protokoll mit der Solidität 1. Beweis. Wir beweisen zunächst die Konsistenz und dann die Übereinstimmung. Konsistenznachweis. Nehmen Sie an, dass für einen Wert v \(\in\)V v′ i = v. Dann, nach Eigenschaft 3 von Abgestufter Konsens, nach der GC-Ausführung geben alle ehrlichen Spieler aus (v, 2). Dementsprechend ist 0 das erste Stück aller ehrlichen Spieler am Ende der Ausführung von BBA⋆. Also durch die Vereinbarung Eigenschaft der binären byzantinischen Vereinbarung, am Ende der Ausführung von BA⋆, outi = 0 für alle ehrlich Spieler. Dies impliziert, dass die Ausgabe jedes ehrlichen Spielers i in BA⋆vi = v ist. ✷ Nachweis der Vereinbarung. Da BBA⋆ auch ein binäres BA-Protokoll ist (A) outi = 1 für alle ehrlichen Spieler i, oder (B) outi = 0 für alle ehrlichen Spieler i. Im Fall A geben alle ehrlichen Spieler \(\bot\)in BA⋆ aus, und somit gilt die Vereinbarung. Betrachten Sie nun Fall B. In In diesem Fall ist bei der Ausführung von BBA⋆ das Anfangsbit von mindestens einem ehrlichen Spieler i 0. (In der Tat, wenn Das anfängliche Bit aller ehrlichen Spieler war 1, dann hätten wir es aufgrund der Konsistenzeigenschaft von BBA⋆ outj = 1 für alle ehrlichen j.) Dementsprechend gibt i nach der Ausführung von GC das Paar (v, 2) für einige aus Wert v. Somit ist nach Eigenschaft 1 des abgestuften Konsenses gj > 0 für alle ehrlichen Spieler j. Dementsprechend von Eigenschaft 2 des abgestuften Konsenses, vj = v für alle ehrlichen Spieler j. Dies impliziert, dass am Ende BA⋆, jeder ehrliche Spieler j gibt v aus. Somit gilt Übereinstimmung auch im Fall B. ✷ Da sowohl Konsistenz als auch Übereinstimmung gelten, ist BA⋆ein BA-Protokoll mit beliebigem Wert. Historische Anmerkung Turpin und Coan waren die ersten, die zeigten, dass für n \(\geq\)3t+1 jedes binäre (n, t)-BA gilt Das Protokoll kann in ein (n, t)-BA-Protokoll mit beliebigem Wert umgewandelt werden. Die Reduzierung auf einen beliebigen Wert Die byzantinische Vereinbarung zur binären byzantinischen Vereinbarung über einen abgestuften Konsens ist modularer und sauberer und vereinfacht die Analyse unseres Algorand-Protokolls Algorand ′. Verallgemeinerung von BA⋆zur Verwendung in Algorand Algorand funktioniert auch dann, wenn die gesamte Kommunikation über erfolgt Klatschen. Allerdings, obwohl in einem traditionellen und vertrauten Kommunikationsnetzwerk präsentiert, so Um einen besseren Vergleich mit dem Stand der Technik und ein leichteres Verständnis zu ermöglichen, funktioniert das Protokoll BA⋆works auch in Klatschnetzwerken. Tatsächlich werden wir es in unseren detaillierten Ausführungsformen von Algorand vorstellen direkt für Klatschnetzwerke. Wir weisen auch darauf hin, dass es der Austauschbarkeit des Spielers gerecht wird Eigentum, das für die Sicherheit von Algorand im geplanten sehr kontradiktorischen Modell von entscheidender Bedeutung ist.

Jedes durch einen BA-Spieler austauschbare Protokoll, das in einem klatschenden Kommunikationsnetzwerk funktioniert, kann sein sicher im erfinderischen Algorand-System eingesetzt. Insbesondere Micali und Vaikunthanatan haben BA⋆ erweitert, um auch mit einer einfachen Mehrheit ehrlicher Spieler sehr effizient zu arbeiten. Das Auch das Protokoll könnte in Algorand verwendet werden.

Dos realizaciones de Algorand

Como se analizó, en un nivel muy alto, una ronda de Algorand idealmente se desarrolla de la siguiente manera. Primero, al azar El usuario seleccionado, el líder, propone y hace circular un nuevo bloque. (Este proceso incluye inicialmente seleccionar algunos líderes potenciales y luego garantizar que, al menos una buena fracción del tiempo, emerge un solo líder común.) En segundo lugar, se selecciona un comité de usuarios seleccionado al azar, y llega a un acuerdo bizantino sobre el bloque propuesto por el líder. (Este proceso incluye que cada paso del protocolo BA es dirigido por un comité seleccionado por separado). El bloque acordado luego es firmado digitalmente por un umbral determinado (TH) de miembros del comité. Estas firmas digitales Se circulan para que todos tengan la seguridad de cuál es el nuevo bloque. (Esto incluye hacer circular el credencial de los firmantes y autenticar solo el hash del nuevo bloque, asegurando que todos Se garantiza que aprenderá el bloque, una vez que se aclare su hash). En las dos secciones siguientes, presentamos dos realizaciones de Algorand, Algorand ′ 1 y Algorand ′ 2, que funcionan bajo el supuesto de que la mayoría de los usuarios son honestos. En la Sección 8 mostramos cómo adoptar estos encarnaciones para trabajar bajo una suposición honesta de mayoría del dinero. Algorand ′ 1 sólo prevé que > 2/3 de los miembros del comité sean honestos. Además, en Algorand ′ 1, el número de pasos para llegar a un acuerdo bizantino tiene un límite suficientemente alto número, de modo que se garantiza que se llegará a un acuerdo con una probabilidad abrumadora en un plazo número fijo de pasos (pero potencialmente requiere más tiempo que los pasos de Algorand ′ 2). en el caso remoto en el que aún no se llega a un acuerdo en el último paso, el comité acuerda la bloque vacío, que siempre es válido. Algorand ′ 2 prevé que el número de miembros honestos de un comité sea siempre mayor que el o igual a un umbral fijo tH (que garantiza que, con una probabilidad abrumadora, al menos 2/3 de los miembros del comité son honestos). Además, Algorand ′ 2 permite que el acuerdo bizantino alcanzarse en un número arbitrario de pasos (pero potencialmente en un tiempo más corto que Algorand ′ 1). Es fácil derivar muchas variantes de estas realizaciones básicas. En particular, es fácil, dado Algorand ′ 2, para modificar Algorand ′ 1 para permitir llegar a un acuerdo bizantino de forma arbitraria número de pasos. Ambas realizaciones comparten los siguientes núcleos, notaciones, nociones y parámetros comunes. 4.1 Un núcleo común Objetivos Idealmente, para cada ronda r, Algorand satisfaría las siguientes propiedades: 1. Perfecta corrección. Todos los usuarios honestos coinciden en el mismo bloque Br. 2. Integridad 1. Con probabilidad 1, el conjunto de pagos de Br, PAY r, es máximo.10 10Debido a que se define que los pagos contienen pagos válidos y que los usuarios honestos solo realizan pagos válidos, un máximo PAY r contiene los pagos "actualmente pendientes" de todos los usuarios honestos.Por supuesto, garantizar por sí solo la corrección perfecta es trivial: cada uno elige siempre el payset PAY r para estar vacío. Pero en este caso, el sistema tendría una completitud 0. Desafortunadamente, Garantizar tanto la exactitud como la integridad 1 no es fácil en presencia de información maliciosa. usuarios. Algorand adopta así un objetivo más realista. Informalmente, sea h el porcentaje de usuarios que son honestos, h > 2/3, el objetivo de Algorand es Garantizando, con abrumadora probabilidad, perfecta corrección e integridad cerca de h. Privilegiar la corrección sobre la integridad parece una opción razonable: los pagos no procesados en Una ronda se puede procesar en la siguiente, pero se deben evitar los tenedores, si es posible. Acuerdo bizantino liderado La corrección perfecta se puede garantizar de la siguiente manera. al principio de la ronda r, cada usuario i construye su propio bloque candidato Br i, y luego todos los usuarios llegan a Byzantine acuerdo sobre un bloque de candidatos. Según nuestra introducción, el protocolo BA empleado requiere una mayoría honesta de 2/3 y es jugador reemplazable. Cada uno de sus pasos puede ser ejecutado por un pequeño y conjunto de verificadores seleccionados al azar, que no comparten ninguna variable interna. Desafortunadamente, este enfoque no ofrece garantías de integridad. Esto es así porque el candidato Lo más probable es que los bloques de usuarios honestos sean totalmente diferentes entre sí. Así, en definitiva El bloque acordado siempre puede ser uno con un pago no máximo. De hecho, siempre puede ser el bloque vacío, B\(\varepsilon\), es decir, el bloque cuyo payset está vacío. Será el predeterminado, vacío. Algorand ′ evita este problema de integridad de la siguiente manera. Primero, se selecciona un líder para la ronda r, \(\ell\)r. Luego, \(\ell\)r propaga su propio bloque candidato, Br \(\ell\)r. Finalmente, los usuarios llegan a un acuerdo sobre el bloque en realidad reciben de \(\ell\)r. Porque, siempre que \(\ell\)r sea honesto, Perfecta Corrección e Integridad 1 ambos se mantienen, Algorand ′ asegura que \(\ell\)r es honesto con una probabilidad cercana a h. (Cuando el líder es malicioso, no nos importa si el bloque acordado tiene un conjunto de pagos vacío. Después de todo, un El líder malicioso \(\ell\)r siempre puede elegir maliciosamente a Br. \(\ell\)r para ser el bloque vacío, y luego honestamente propagarlo, obligando así a los usuarios honestos a aceptar el bloque vacío). Selección de líder En Algorand, el bloque r tiene la forma Br = (r, PAY r, Qr, H(Br−1). Como ya se mencionó en la introducción, la cantidad Qr−1 se construye cuidadosamente para que sea esencialmente no manipulable por nuestro muy poderoso Adversario. (Más adelante en esta sección, veremos proporcionar alguna intuición sobre por qué este es el caso.) Al comienzo de una ronda r, todos los usuarios saben blockchain hasta ahora, B0, . . . , Br−1, de donde deducen el conjunto de usuarios de cada ronda anterior: que es, PK1, . . . , PKr-1. Un líder potencial de la ronda r es un usuario i tal que .H SIGi r, 1, Qr−1 \(\leq\)p. Expliquemos. Tenga en cuenta que, dado que la cantidad Qr−1 es parte del bloque Br−1, y el subyacente El esquema de firma satisface la propiedad de unicidad, SIGi. r, 1, Qr−1 es una cadena binaria únicamente asociado a i y r. Por lo tanto, dado que H es un oracle aleatorio, H SIGi r, 1, Qr−1 es un aleatorio de 256 bits cadena larga asociada únicamente a i y r. El símbolo "." frente a h SIGi r, 1, Qr−1 es el punto decimal (en nuestro caso, binario), de modo que ri \(\triangleq\).H SIGi r, 1, Qr−1 es la expansión binaria de a Número aleatorio de 256 bits entre 0 y 1 asociado únicamente a i y r. Así, la probabilidad de que ri es menor o igual que p es esencialmente p. (Nuestro mecanismo de selección de líderes potenciales ha sido inspirado en el esquema de micropagos de Micali y Rivest [28].) La probabilidad p se elige de modo que, con una probabilidad abrumadora (es decir, 1 −F), al menos una El verificador potencial es honesto. (De hecho, se elige p como la probabilidad más pequeña).Tenga en cuenta que, dado que i es el único capaz de calcular sus propias firmas, sólo él puede determinar si es un verificador potencial de la ronda 1. Sin embargo, al revelar su propia credencial, \(\sigma\)r yo \(\triangleq\)SIGi r, 1, Qr−1 , puedo demostrarle a cualquiera que soy un verificador potencial de la ronda r. El líder \(\ell\)r se define como el líder potencial cuya credencial hashed es más pequeña que la hashed credencial de todos los demás líderes potenciales j: es decir, H(\(\sigma\)r,s \(\ell\)r ) \(\leq\)H(\(\sigma\)r,s j). Tenga en cuenta que, dado que un \(\ell\)r malicioso no puede revelar su credencial, el líder correcto de la ronda r puede nunca se sabrá, y que, salvo vínculos improbables, \(\ell\)r es de hecho el único líder de la ronda r. Por último, mencionemos un último pero importante detalle: un usuario i puede ser un líder potencial (y por tanto el líder) de una ronda r sólo si perteneció al sistema durante al menos k rondas. Esto garantiza la no manipulabilidad de Qr y de todas las cantidades Q futuras. De hecho, uno de los líderes potenciales en realidad determinará Qr. Selección del verificador Cada paso s > 1 de la ronda r es ejecutado por un pequeño conjunto de verificadores, SV r,s. Nuevamente, cada verificador i \(\in\)SV r,s se selecciona aleatoriamente entre los usuarios que ya están en el sistema k rondas antes de r, y nuevamente a través de la cantidad especial Qr−1. Específicamente, i \(\in\)PKr−k es un verificador en SV r,s, si .H SIGi r, s, Qr−1 \(\leq\)p′. Una vez más, sólo yo sé si pertenece al SV r,s, pero, si es así, podría demostrarlo mediante exhibiendo su credencial \(\sigma\)r,s yo \(\triangleq\)H(SIGi r, s, Qr−1 ). Un verificador i \(\in\)SV r,s envía un mensaje, mr,s yo, en paso s de la ronda r, y este mensaje incluye su credencial \(\sigma\)r,s i , para permitir a los verificadores del Nido paso para reconocer que el señor yo es un mensaje de paso legítimo. La probabilidad p′ se elige de manera que se asegure que, en SV r,s, siendo #good el número de usuarios honestos y #bad el número de usuarios maliciosos, con una probabilidad abrumadora los siguientes Se cumplen dos condiciones. Para la realización Algorand ′ 1: (1) #bueno > 2 \(\cdot\) #malo y (2) #bueno + 4 \(\cdot\) #malo < 2n, donde n es la cardinalidad esperada de SV r,s. Para la realización Algorand ′ 2: (1) #bueno > tH y (2) #bueno + 2#malo < 2tH, donde tH es un umbral especificado. Estas condiciones implican que, con una probabilidad suficientemente alta, (a) en el último paso del BA protocolo, habrá al menos un número determinado de jugadores honestos para firmar digitalmente el nuevo bloque Br, (b) sólo un bloque por ronda puede tener el número necesario de firmas, y (c) el BA utilizado El protocolo tiene (en cada paso) la mayoría honesta requerida de 2/3. Aclarando la generación de bloques Si el líder redondo-r \(\ell\)r es honesto, entonces el bloque correspondiente es de la forma hermano = r, PAGAR r, SIG\(\ell\)r Qr−1 , h Br-1 , donde el salario PAY r es máximo. (Recuerde que todos los pagos son, por definición, colectivamente válidos). De lo contrario (es decir, si \(\ell\)r es malicioso), Br tiene una de las dos formas posibles siguientes: hermano = r, PAGAR r, SIGi qr-1 , h Br-1 y Br = Br \(\varepsilon\) \(\triangleq\) r, \(\emptyset\), Qr−1, H Br-1 .En la primera forma, el PAGO r es un conjunto de pagos (no necesariamente máximo) y puede ser el PAGO r = \(\emptyset\); y yo soy un líder potencial de la ronda r. (Sin embargo, es posible que no sea el líder \(\ell\)r. Esto de hecho puede suceder si \(\ell\)r mantiene en secreto su credencial y no se revela.) La segunda forma surge cuando, en la ejecución de la ronda r del protocolo BA, todos los jugadores honestos genera el valor predeterminado, que es el bloque vacío Br \(\varepsilon\) en nuestra aplicación. (Por definición, la posible Las salidas de un protocolo BA incluyen un valor predeterminado, indicado genéricamente por \(\bot\). Ver sección 3.2.) Tenga en cuenta que, aunque los paysets están vacíos en ambos casos, Br = r, \(\emptyset\), SIGi qr-1 , h Br-1 y hermano \(\varepsilon\) son bloques sintácticamente diferentes y surgen en dos situaciones diferentes: respectivamente, “todos transcurrió sin problemas en la ejecución del protocolo BA”, y “algo salió mal en el Protocolo BA y se emitió el valor predeterminado”. Describamos ahora intuitivamente cómo se produce la generación del bloque Br en la ronda r de Algorand ′. En el primer paso, cada jugador elegible, es decir, cada jugador i \(\in\)PKr−k, verifica si es un potencial líder. Si este es el caso, entonces se me pregunta, utilizando todos los pagos que ha visto hasta ahora, y el actual blockchain, B0, . . . , Br−1, para preparar en secreto un conjunto de pagos máximo, PAY r yo y en secreto reúne su bloque candidato, Br = r, PAGAR r yo, SIGi qr-1 , h Br-1 . Es decir, no sólo él incluir en br i , como segundo componente, el conjunto de pagos recién preparado, pero también, como tercer componente, su propia firma de Qr−1, el tercer componente del último bloque, Br−1. Finalmente, propaga su mensaje redondo-r-paso-1, señor,1 i , que incluye (a) su bloque candidato Br i , (b) su firma apropiada de su bloque de candidatos (es decir, su firma del hash del Hno. i , y (c) su propia credencial \(\sigma\)r,1 yo, probando que de hecho es un verificador potencial de la ronda r. (Tenga en cuenta que, hasta que un i honesto produzca su mensaje mr,1 Yo, el Adversario no tiene idea de que soy un verificador potencial. Si quisiera corromper a líderes potenciales honestos, el Adversario también podría jugadores honestos al azar corruptos. Sin embargo, una vez que ve al señor,1 i, ya que contiene la credencial de i, el El adversario sabe y podría corromperme, pero no puede impedir que mr,1 i , que se propaga viralmente, de llegar a todos los usuarios del sistema). En el segundo paso, cada verificador seleccionado j \(\in\)SV r,2 intenta identificar al líder de la ronda. Específicamente, j toma las credenciales del paso 1, \(\sigma\)r,1 i1 , . . . , \(\sigma\)r,1 en , contenido en el mensaje adecuado del paso 1 mr,1 yo ha recibido; hashestablece todos, es decir, calcula H  \(\sigma\)r,1 i1  , . . . , h  \(\sigma\)r,1 en  ; encuentra la credencial, \(\sigma\)r,1 \(\ell\)j , cuyo hash es lexicográficamente mínimo; y considera \(\ell\)r j para ser el líder de la ronda r. Recordemos que cada credencial considerada es una firma digital de Qr−1, que SIGi r, 1, Qr−1 es determinado únicamente por i y Qr−1, que H es aleatorio oracle y, por tanto, que cada H(SIGi r, 1, Qr−1 es una cadena aleatoria de 256 bits de longitud única para cada líder potencial i de la ronda r. De esto podemos concluir que, si la cadena de 256 bits Qr−1 fuera aleatoria e independientemente seleccionado, entonces serían las credenciales hashed de todos los líderes potenciales de la ronda r. De hecho, todos Los líderes potenciales están bien definidos, al igual que sus credenciales (ya sean realmente calculadas o calculadas). no). Además, el conjunto de líderes potenciales de la ronda r es un subconjunto aleatorio de los usuarios de la ronda r −k, y un líder potencial honesto siempre construye y propaga adecuadamente su mensaje, señor yo, que contiene la credencial de i. Por lo tanto, dado que el porcentaje de usuarios honestos es h, no importa cuál sea el líderes potenciales maliciosos podrían hacer (por ejemplo, revelar u ocultar sus propias credenciales), el mínimo La credencial de líder potencial hashed pertenece a un usuario honesto, quien necesariamente es identificado por todos. ser el líder \(\ell\)r de la ronda r. En consecuencia, si la cadena de 256 bits Qr-1 fuera aleatoria y seleccionado independientemente, con probabilidad exactamente h (a) el líder \(\ell\)r es honesto y (b) \(\ell\)j = \(\ell\)r para todos verificadores honestos del paso 2 j. En realidad, las credenciales hashed se seleccionan, sí, al azar, pero dependen de Qr-1, que esno seleccionados de forma aleatoria e independiente. Sin embargo, demostraremos en nuestro análisis que Qr−1 es suficientemente no manipulable para garantizar que el líder de una ronda sea honesto con la probabilidad h′ suficientemente cerca de h: es decir, h′ > h2(1 + h −h2). Por ejemplo, si h = 80%, entonces h′ > 0,7424. Habiendo identificado al líder de la ronda (lo que hacen correctamente cuando el líder \(\ell\)r es honesto), La tarea de los verificadores del paso 2 es comenzar a ejecutar el BA utilizando como valores iniciales lo que ellos creen. ser el bloque del líder. En realidad, para minimizar la cantidad de comunicación requerida, un verificador j \(\in\)SV r,2 no utiliza como valor de entrada v′ j al protocolo bizantino, el bloque Bj que en realidad ha recibido de \(\ell\)j (el usuario j cree que es el líder), pero el líder, pero el hash de ese bloque, es decir, v′ j = H(Bi). Por lo tanto, al finalizar el protocolo BA, los verificadores del último paso no calcula el bloque redondo-r deseado Br, sino que calcula (autentica y propagar) H(Br). En consecuencia, dado que H(Br) está firmado digitalmente por un número suficiente de verificadores del último paso del protocolo BA, los usuarios del sistema se darán cuenta de que H(Br) es el hash del nuevo bloque. Sin embargo, también deben recuperar (o esperar, ya que la ejecución es bastante asincrónica) el bloquear Br en sí, que el protocolo garantiza que esté realmente disponible, sin importar cuál sea el adversario podría servir. Asincronía y sincronización Algorand ′ 1 y Algorand ′ 2 tienen un grado significativo de asincronía. Esto es así porque el Adversario tiene una gran libertad para programar la entrega de los mensajes que se envían. propagado. Además, ya sea que el número total de pasos en una ronda esté limitado o no, existe la varianza contribuye por el número de pasos realmente tomados. Tan pronto como conozca los certificados de B0,. . . , Br−1, un usuario i calcula Qr−1 y comienza a trabajar en la ronda r, comprobando si es un líder potencial o un verificador en algunos pasos de la ronda r. Suponiendo que debo actuar en el paso s, a la luz de la asincronía discutida, me baso en varios estrategias para asegurar que tenga suficiente información antes de actuar. Por ejemplo, podría esperar a recibir al menos un número determinado de mensajes de los verificadores de el paso anterior, o esperar un tiempo suficiente para asegurarse de que recibe los mensajes de suficiente muchos verificadores del paso anterior. La semilla Qr y el parámetro retrospectivo k Recuerde que, idealmente, las cantidades Qr deberían aleatorios e independientes, aunque bastará con que sean lo suficientemente no manipulables por el Adversario. A primera vista, podríamos elegir Qr−1 para que coincida con H PAGAR r-1 , y así evitar especifique Qr−1 explícitamente en Br−1. Un análisis elemental revela, sin embargo, que los usuarios malintencionados pueden aprovechar este mecanismo de selección.11 Algunos esfuerzos adicionales muestran que miles de otros 11Estamos al comienzo de la ronda r −1. Por lo tanto, Qr−2 = PAY r−2 se conoce públicamente y el Adversario se conoce en privado. sabe quiénes son los líderes potenciales que controla. Supongamos que el Adversario controla el 10% de los usuarios, y que, con una probabilidad muy alta, un usuario malintencionado w es el líder potencial de la ronda r −1. Es decir, suponer que h SIGw r-2, 1, Qr-2 es tan pequeño que es muy improbable que un líder potencial honesto sea realmente el líder de la ronda r −1. (Recuerde que, dado que elegimos líderes potenciales mediante un mecanismo secreto de clasificación criptográfica, El Adversario no sabe quiénes son los líderes potenciales honestos.) El Adversario, por lo tanto, está en la envidiable posición de elegir el pago PAY ′ que desea y hacer que se convierta en el pago oficial de la ronda r −1. Sin embargo, él puede hacer más. También puede asegurar que, con alta probabilidad, () uno de sus usuarios maliciosos será el líder también de la ronda r, para que pueda seleccionar libremente cuál será el PAGO r. (Y así sucesivamente. Al menos durante mucho tiempo, es decir, siempre y cuando estos eventos de alta probabilidad realmente ocurran.) Para garantizar (), el Adversario actúa de la siguiente manera. Deja PAGAR ′ sea el pago que prefiera el adversario para la ronda r −1. Luego, calcula H(PAY ′) y comprueba si, para algunos ya el jugador malicioso z, SIGz(r, 1, H(PAY ′)) es particularmente pequeño, es decir, lo suficientemente pequeño como para que con niveles muy altos probabilidad z será el líder de la ronda r. Si este es el caso, entonces le indica a w que elija su bloque candidato para seralternativas, basadas en cantidades de bloques tradicionales, son fácilmente explotables por el adversario para garantizar que los líderes maliciosos son muy frecuentes. En cambio, definimos específica e inductivamente nuestra marca. nueva cantidad Qr para poder demostrar que no es manipulable por el Adversario. Es decir, Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), si Br no es el bloque vacío, y Qr \(\triangleq\)H(Qr−1, r) en caso contrario. La intuición de por qué funciona esta construcción de Qr es la siguiente. Supongamos por un momento que Qr−1 se selecciona verdaderamente de forma aleatoria e independiente. Entonces, ¿lo será también Qr? Cuando \(\ell\)r es honesto el La respuesta es (en términos generales) sí. Esto es así porque H(SIG\(\ell\)r( \(\cdot\) ), r) : {0, 1}256 −→{0, 1}256 es una función aleatoria. Sin embargo, cuando \(\ell\)r es malicioso, Qr ya no se define unívocamente a partir de Qr−1 y \(\ell\)r. Hay al menos dos valores separados para Qr. Uno sigue siendo Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), y el otro es H(Qr−1, r). Primero argumentemos que, si bien la segunda opción es algo arbitraria, una segunda elección es absolutamente obligatoria. La razón de esto es que un \(\ell\)r malicioso siempre puede causar bloques candidatos totalmente diferentes para ser recibidos por los verificadores honestos del segundo paso.12 Una vez Si este es el caso, es fácil garantizar que el bloque finalmente acordado a través del protocolo BA de La ronda r será la predeterminada y, por lo tanto, no contendrá la firma digital Qr-1 de nadie. pero el sistema debe continuar y para ello necesita un líder para la ronda r. Si este líder es automáticamente y seleccionado abiertamente, entonces el Adversario lo corromperá trivialmente. Si es seleccionado por el anterior Qr−1 mediante el mismo proceso, \(\ell\)r volverá a ser el líder en la ronda r+1. Proponemos específicamente utilizar el mismo mecanismo secreto de clasificación criptográfica, pero aplicado a una nueva cantidad Q: a saber, H(Qr−1,r). Al tener esta cantidad como salida de H se garantiza que la salida sea aleatoria, e incluyendo r como segunda entrada de H, mientras que todos los demás usos de H tienen una o más de 3 entradas, “garantiza” que dicho Qr se selecciona de forma independiente. Nuevamente, nuestra elección específica de la alternativa Qr No importa, lo que importa es que \(\ell\)r tiene dos opciones para Qr y, por lo tanto, puede duplicar sus posibilidades. tener otro usuario malicioso como próximo líder. Las opciones para Qr pueden ser incluso más numerosas para el Adversario que controla un \(\ell\)r malicioso. Por ejemplo, sean x, y y z tres líderes potenciales maliciosos de la ronda r tales que h \(\sigma\)r,1 x  <H \(\sigma\)r,1 y  1. Observe que n1 << n, ya que necesitamos al menos un miembro honesto y honesto en SV r,1, pero al menos una mayoría de miembros honestos en cada SV r,s para s > 1. • h \(\in\)(0, 1): una constante mayor que 2/3. h es el índice de honestidad en el sistema. Es decir, el La fracción de usuarios honestos o dinero honesto, dependiendo del supuesto utilizado, en cada PKr es al menos h. • H: una función criptográfica hash, modelada como una oracle aleatoria. • \(\bot\): Una cadena especial de la misma longitud que la salida de H. • F \(\in\)(0, 1): el parámetro que especifica la probabilidad de error permitida. Una probabilidad \(\leq\)F es se considera “insignificante”, y una probabilidad \(\geq\)1 −F se considera “abrumadora”. • ph \(\in\)(0, 1): la probabilidad de que el líder de una ronda r, \(\ell\)r, sea honesto. Idealmente ph = h. con En caso de existencia del Adversario, el valor de ph será determinado en el análisis. • k \(\in\)Z+: el parámetro retrospectivo. Es decir, la ronda r −k es donde están los verificadores para la ronda r. elegido entre —es decir, SV r \(\subseteq\)PKr−k.15 • p1 \(\in\)(0, 1): para el primer paso de la ronda r, se elige un usuario en la ronda r −k para estar en SV r,1 con probabilidad p1 \(\triangleq\) n1 |P Kr−k|. • p \(\in\)(0, 1): para cada paso s > 1 de la ronda r, se elige un usuario en la ronda r −k para estar en SV r,s con probabilidad p \(\triangleq\) norte |P Kr−k|. • CERT r: el certificado del Br. Es un conjunto de firmas tH de H(Br) de verificadores adecuados en redondo r. • Br \(\triangleq\)(Br, CERT r) es un bloque probado. Un usuario i conoce Br si posee (y verifica con éxito) ambas partes del bloque probado. Tenga en cuenta que el CERT visto por diferentes usuarios puede ser diferente. • τ r i: la hora (local) en la que un usuario conoce a Br. En el protocolo Algorand cada usuario tiene su propio reloj. No es necesario sincronizar los relojes de diferentes usuarios, pero deben tener la misma velocidad. Sólo a efectos del análisis, consideramos un reloj de referencia y medimos el tiempo de los jugadores. tiempos relacionados con respecto al mismo. • ar,s yo y \(\beta\)r,s i: respectivamente, la hora (local) en la que un usuario i inicia y finaliza su ejecución de los Pasos de redondo r. • Λ y \(\lambda\): esencialmente, los límites superiores de, respectivamente, el tiempo necesario para ejecutar el Paso 1 y el tiempo necesario para cualquier otro paso del protocolo Algorand. El parámetro Λ limita el tiempo para propagar un único bloque de 1 MB. (En nuestra notación, Λ = \(\lambda\) \(\rho\),1MB. Recordando nuestra notación, que establecemos \(\rho\) = 1 por simplicidad, y que los bloques son elegido para que tenga como máximo 1 MB de longitud, tenemos Λ = \(\lambda\)1,1,1 MB.) 15Estrictamente hablando, “r −k” debería ser “max{0, r −k}”.El parámetro \(\lambda\) limita el tiempo para propagar un mensaje pequeño por verificador en un Paso s > 1. (Usando, como en Bitcoin, firmas de curvas elípticas con claves de 32B, un mensaje de verificación tiene una longitud de 200B. Así, en nuestra notación, \(\lambda\) = \(\lambda\)n,\(\rho\),200B.) Suponemos que Λ = O(\(\lambda\)). Nociones • Selección de verificador. Para cada ronda r y paso s > 1, SV r,s \(\triangleq\){i \(\in\)PKr−k : .H(SIGi(r, s, Qr−1)) \(\leq\)p}. cada uno El usuario i \(\in\)PKr−k calcula de forma privada su firma utilizando su clave a largo plazo y decide si i \(\in\)SV r,s o no. Si i \(\in\)SV r,s, entonces SIGi(r, s, Qr−1) es la credencial (r, s) de i, denotada de forma compacta por \(\sigma\)r,s yo. Para el primer paso de la ronda r, SV r,1 y \(\sigma\)r,1 yo se definen de manera similar, con p reemplazado por p1. el Los verificadores en SV r,1 son líderes potenciales. • Selección de líderes. El usuario i \(\in\)SV r,1 es el líder de la ronda r, denotada por \(\ell\)r, si H(\(\sigma\)r,1 i ) \(\leq\)H(\(\sigma\)r,1 j ) para todo potencial líderes j \(\in\)SV r,1. Siempre que se comparan los hashes de las credenciales de dos jugadores, en el improbable En caso de empates, el protocolo siempre rompe los lazos lexicográficamente de acuerdo con el (público a largo plazo). claves de los) líderes potenciales. Por definición, el valor hash de la credencial del jugador \(\ell\)r también es el más pequeño entre todos los usuarios en PKr−k. Tenga en cuenta que un líder potencial no puede decidir en privado si es el líder o no, sin ver las credenciales de los otros líderes potenciales. Dado que los valores hash son uniformes al azar, cuando SV r,1 no está vacío, \(\ell\)r siempre existe y es honesto con probabilidad al menos h. El parámetro n1 es lo suficientemente grande como para garantizar que cada SV r,1 no está vacío con una probabilidad abrumadora. • Estructura de bloques. Un bloque no vacío tiene la forma Br = (r, PAY r, SIG\(\ell\)r(Qr−1), H(Br−1)) y un bloque vacío es de la forma Br ǫ = (r, \(\emptyset\), Qr−1, H(Br−1)). Tenga en cuenta que un bloque no vacío aún puede contener un conjunto de pagos vacío PAY r, si no se produce ningún pago en esta ronda o si el líder es malicioso. Sin embargo, un bloque no vacío implica que la identidad de \(\ell\)r, su credencial \(\sigma\)r,1 \(\ell\)r y SIG\(\ell\)r(Qr−1) han sido revelados oportunamente. El protocolo garantiza que, si el líder es honesto, entonces el bloque no estará vacío con una probabilidad abrumadora. • Semilla Qr. Si Br no está vacío, entonces Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), en caso contrario Qr \(\triangleq\)H(Qr−1, r). Parámetros • Relaciones entre varios parámetros. — Los verificadores y líderes potenciales de la ronda r se seleccionan entre los usuarios de PKr−k, donde k se elige de modo que el adversario no pueda predecir Qr−1 en la ronda r −k −1 con probabilidad mejor que F: de lo contrario, podrá introducir usuarios maliciosos para la ronda r −k, todos los cuales serán líderes/verificadores potenciales en la ronda r, logrando

tener un líder malicioso o una mayoría maliciosa en SV r,s para algunos pasos deseados por él. — Para el Paso 1 de cada ronda r, se elige n1 de manera que con una probabilidad abrumadora, SV r,1 ̸= \(\emptyset\). • Ejemplos de opciones de parámetros importantes. — Las salidas de H tienen una longitud de 256 bits. — h = 80%, n1 = 35. — Λ = 1 minuto y \(\lambda\) = 10 segundos. • Inicialización del protocolo. El protocolo comienza en el momento 0 con r = 0. Como no existe "B-1" o "CERT -1", sintácticamente B-1 es un parámetro público con su tercer componente especificando Q-1, y todos los usuarios conozca B−1 en el tiempo 0.

Zwei Ausführungsformen von Algorand

Wie bereits erwähnt, läuft eine Runde Algorand auf sehr hohem Niveau idealerweise wie folgt ab. Zuerst ein Zufall Der ausgewählte Benutzer, der Leiter, schlägt einen neuen Block vor und verteilt ihn. (Dieser Prozess umfasst zunächst Wählen Sie einige potenzielle Führungskräfte aus und stellen Sie dann sicher, dass zumindest in einem guten Teil der Zeit a es entsteht ein einziger gemeinsamer Anführer.) Zweitens wird ein zufällig ausgewähltes Komitee von Benutzern ausgewählt, und erreicht eine byzantinische Einigung über den vom Führer vorgeschlagenen Block. (Dieser Prozess beinhaltet das Jeder Schritt des BA-Protokolls wird von einem separat ausgewählten Ausschuss geleitet.) Der vereinbarte Block wird dann von einer bestimmten Schwelle (TH) an Ausschussmitgliedern digital signiert. Diese digitalen Signaturen werden verteilt, so dass jeder sicher ist, welcher der neue Block ist. (Dazu gehört auch die Weitergabe der Anmeldeinformationen der Unterzeichner und Authentifizierung nur des hash des neuen Blocks, um sicherzustellen, dass jeder wird den Block garantiert lernen, sobald sein hash klargestellt ist.) In den nächsten beiden Abschnitten stellen wir zwei Ausführungsformen von Algorand, Algorand vor. 1 und Algorand ′ 2, die unter der Annahme der Mehrheit der ehrlichen Benutzer funktionieren. In Abschnitt 8 zeigen wir, wie man diese übernimmt Verkörperungen funktionieren unter der Annahme einer ehrlichen Mehrheit des Geldes. Algorand ′ 1 sieht lediglich vor, dass > 2/3 der Ausschussmitglieder ehrlich sind. Darüber hinaus in Algorand ′ 1 ist die Anzahl der Schritte zur Erzielung einer byzantinischen Einigung auf einen angemessen hohen Betrag begrenzt Zahl, so dass eine Einigung mit überwältigender Wahrscheinlichkeit innerhalb von a gewährleistet ist Feste Anzahl von Schritten (aber möglicherweise länger dauernd als die Schritte von Algorand ′ 2). Im In einem entfernten Fall, in dem bis zum letzten Schritt noch keine Einigung erzielt wurde, stimmt der Ausschuss dem zu leerer Block, der immer gültig ist. Algorand ′ 2 sieht vor, dass die Zahl der ehrlichen Mitglieder in einem Ausschuss immer größer ist als oder gleich einem festen Schwellenwert tH (was dies zumindest mit überwältigender Wahrscheinlichkeit garantiert). 2/3 der Ausschussmitglieder sind ehrlich). Darüber hinaus Algorand ′ 2 ermöglicht eine byzantinische Vereinbarung in einer beliebigen Anzahl von Schritten erreicht werden (aber möglicherweise in kürzerer Zeit als Algorand ′ 1). Viele Varianten dieser Grundausführungen lassen sich leicht ableiten. Insbesondere ist es einfach, gegeben Algorand ′ 2, um Algorand ′ zu ändern 1, um eine willkürliche byzantinische Einigung zu ermöglichen Anzahl der Schritte. Beide Ausführungsformen teilen den folgenden gemeinsamen Kern, die folgenden Notationen, Begriffe und Parameter. 4.1 Ein gemeinsamer Kern Ziele Idealerweise würde Algorand für jede Runde r die folgenden Eigenschaften erfüllen: 1. Perfekte Korrektheit. Alle ehrlichen Benutzer sind sich im selben Block einig, Br. 2. Vollständigkeit 1. Mit Wahrscheinlichkeit 1 ist die Lohnmenge von Br, PAY r, maximal.10 10Weil Gehaltssätze so definiert sind, dass sie gültige Zahlungen enthalten und ehrliche Benutzer nur gültige Zahlungen leisten dürfen, ein Maximum PAY r enthält die „aktuell ausstehenden“ Zahlungen aller ehrlichen Nutzer.Natürlich ist die Gewährleistung vollkommener Korrektheit allein trivial: Jeder wählt immer den Beamten Payset PAY r muss leer sein. Aber in diesem Fall hätte das System die Vollständigkeit 0. Leider Die Gewährleistung sowohl vollkommener Richtigkeit als auch Vollständigkeit 1 ist angesichts böswilliger Angriffe nicht einfach Benutzer. Algorand verfolgt somit eine realistischere Zielsetzung. Informell bezeichnet h den Prozentsatz der ehrlichen Benutzer, h > 2/3, ist das Ziel von Algorand Garantiert mit überwältigender Wahrscheinlichkeit vollkommene Korrektheit und Vollständigkeit nahe h. Der Richtigkeit Vorrang vor der Vollständigkeit zu geben, scheint eine vernünftige Entscheidung zu sein: Zahlungen werden nicht verarbeitet Eine Runde kann in der nächsten abgearbeitet werden, man sollte aber nach Möglichkeit auf Gabelungen verzichten. Geführtes byzantinisches Abkommen Perfekte Korrektheit kann wie folgt garantiert werden. Am Anfang In Runde r erstellt jeder Benutzer i seinen eigenen Kandidatenblock Br i , und dann erreichen alle Benutzer Byzantine Einigung über einen Kandidatenblock. Gemäß unserer Einführung erfordert das verwendete BA-Protokoll eine ehrliche 2/3-Mehrheit und ist durch Spieler austauschbar. Jeder seiner Schritte kann von einem kleinen und ausgeführt werden zufällig ausgewählte Gruppe von Verifizierern, die keine inneren Variablen gemeinsam haben. Leider gibt es für diesen Ansatz keine Vollständigkeitsgarantie. Das ist so, weil der Kandidat Die Blöcke der ehrlichen Benutzer unterscheiden sich höchstwahrscheinlich völlig voneinander. Somit ist das letztendlich Der vereinbarte Block kann immer einer mit einem nicht maximalen Gehaltssatz sein. Tatsächlich kann es immer so sein leerer Block, B\(\varepsilon\), d. h. der Block, dessen Payset leer ist. Nun, es wird die Standardeinstellung sein, leer. Algorand ′ vermeidet dieses Vollständigkeitsproblem wie folgt. Zunächst wird ein Anführer für die Runde r, \(\ell\)r, ausgewählt. Dann propagiert \(\ell\)r seinen eigenen Kandidatenblock, Br \(\ell\)r. Schließlich einigen sich die Nutzer auf die Sperre sie erhalten tatsächlich von \(\ell\)r. Denn wann immer \(\ell\)r ehrlich ist, vollkommene Korrektheit und Vollständigkeit 1 gilt beides, Algorand ′ stellt sicher, dass \(\ell\)r ehrlich ist mit einer Wahrscheinlichkeit nahe h. (Wenn der Anführer ist Böswillig ist es uns egal, ob der vereinbarte Block einer mit einem leeren Payset ist. Immerhin a böswilliger Anführer \(\ell\)r könnte sich immer böswillig für Br entscheiden \(\ell\)r der leere Block sein, und dann ehrlich verbreiten Sie es und zwingen Sie so die ehrlichen Benutzer, sich auf den leeren Block zu einigen.) Auswahl des Leiters In Algorand hat der r-te Block die Form Br = (r, PAY r, Qr, H(Br−1). Wie bereits in der Einleitung erwähnt, wird die Größe Qr−1 sorgfältig so konstruiert, dass sie ist im Wesentlichen nicht manipulierbar durch unseren sehr mächtigen Gegner. (Später in diesem Abschnitt werden wir Geben Sie eine Vorstellung davon, warum dies der Fall ist.) Zu Beginn einer Runde r kennen alle Benutzer das blockchain bisher, B0, . . . , Br−1, woraus sie die Menge der Benutzer jeder vorherigen Runde ableiten: das ist, PK1, . . . , PKr−1. Ein potenzieller Anführer der Runde r ist ein Benutzer, der so ist .H SIGi r, 1, Qr−1 \(\leq\)p . Lassen Sie es uns erklären. Beachten Sie, dass die Größe Qr−1 Teil des Blocks Br−1 und des zugrundeliegenden ist Das Signaturschema erfüllt die Eindeutigkeitseigenschaft SIGi r, 1, Qr−1 ist eindeutig eine Binärzeichenfolge verbunden mit i und r. Da H also ein zufälliger oracle ist, ist H SIGi r, 1, Qr−1 ist ein zufälliges 256-Bit lange Zeichenfolge, die eindeutig i und r zugeordnet ist. Das Symbol „.“ vor H SIGi r, 1, Qr−1 ist das Dezimalpunkt (in unserem Fall binär), so dass ri \(\triangleq\).H SIGi r, 1, Qr−1 ist die binäre Entwicklung von a Zufällige 256-Bit-Zahl zwischen 0 und 1, die eindeutig i und r zugeordnet ist. Somit ist die Wahrscheinlichkeit, dass ri kleiner oder gleich p ist im Wesentlichen p. (Unser Auswahlmechanismus für potenzielle Führungskräfte war inspiriert vom Mikrozahlungssystem von Micali und Rivest [28].) Die Wahrscheinlichkeit p wird so gewählt, dass mit überwältigender Wahrscheinlichkeit (d. h. 1 − F) mindestens eins vorliegt Der potenzielle Prüfer ist ehrlich. (Tatsächlich wird p so gewählt, dass es die kleinste derartige Wahrscheinlichkeit ist.)Beachten Sie, dass er allein dazu in der Lage ist, da ich der Einzige ist, der in der Lage ist, seine eigenen Signaturen zu berechnen Stellen Sie fest, ob er ein potenzieller Prüfer der ersten Runde ist. Indem Sie jedoch seine eigenen Qualifikationen offenlegen, \(\sigma\)r i \(\triangleq\)SIGi r, 1, Qr−1 , ich kann jedem beweisen, dass ich ein potenzieller Prüfer der Runde r bin. Der Anführer ist der potenzielle Anführer, dessen hashed-Berechtigung kleiner ist als der hashed-Berechtigungsnachweis aller anderen potenziellen Anführer j: das heißt, H(\(\sigma\)r,s \(\ell\)r ) \(\leq\)H(\(\sigma\)r,s j). Beachten Sie, dass, da ein böswilliger \(\ell\)r seinen Berechtigungsnachweis nicht preisgeben darf, der richtige Anführer der Runde r dies tun darf nie bekannt werden, und dass \(\ell\)r, sofern es keine unwahrscheinlichen Bindungen gibt, tatsächlich der einzige Anführer der Runde r ist. Lassen Sie uns abschließend noch ein letztes, aber wichtiges Detail ansprechen: Ein Benutzer kann ein potenzieller Anführer sein (und somit der Anführer) einer Runde r nur dann, wenn er mindestens k Runden dem System angehörte. Das garantiert die Nichtmanipulierbarkeit von Qr und allen zukünftigen Q-Größen. Tatsächlich einer der potenziellen Anführer wird tatsächlich Qr bestimmen. Auswahl des Verifizierers Jeder Schritt s > 1 der Runde r wird von einer kleinen Gruppe von Prüfern, SV r,s, ausgeführt. Auch hier wird jeder Verifizierer i \(\in\)SV r,s zufällig unter den Benutzern ausgewählt, die sich bereits in den k Runden des Systems befinden vor r und wiederum über die Sondergröße Qr−1. Konkret ist i \(\in\)PKr−k ein Verifizierer in SV r,s, wenn .H SIGi r, s, Qr−1 \(\leq\)p′ . Auch hier weiß nur ich, ob er zum SV r,s gehört, aber wenn das der Fall ist, könnte er es durch beweisen stellt seinen Berechtigungsnachweis \(\sigma\)r,s vor ich \(\triangleq\)H(SIGi r, s, Qr−1 ). Ein Prüfer i \(\in\)SV r,s sendet eine Nachricht, mr,s ich, in Schritte s der Runde r, und diese Nachricht enthält seine Anmeldeinformationen \(\sigma\)r,s i , um die Verifizierer für die zu aktivieren Nestschritt, um zu erkennen, dass Herr, S ich ist eine legitime Step-S-Nachricht. Die Wahrscheinlichkeit p′ wird so gewählt, dass sichergestellt ist, dass in SV r,s #good die Zahl von ist ehrliche Benutzer und #bad die Anzahl böswilliger Benutzer, mit überwältigender Wahrscheinlichkeit das Folgende Es gelten zwei Bedingungen. Zur Verkörperung Algorand ′ 1: (1) #gut > 2 \(\cdot\) #schlecht und (2) #gut + 4 \(\cdot\) #schlecht < 2n, wobei n die erwartete Kardinalität von SV r,s ist. Zur Verkörperung Algorand ′ 2: (1) #gut > tH und (2) #gut + 2#schlecht < 2tH, wobei tH ein festgelegter Schwellenwert ist. Diese Bedingungen implizieren, dass mit ausreichend hoher Wahrscheinlichkeit (a) im letzten Schritt des BA Protokoll wird es mindestens eine bestimmte Anzahl ehrlicher Spieler geben, die den neuen Block Br digital signieren, (b) nur ein Block pro Runde darf die erforderliche Anzahl an Signaturen haben und (c) die verwendete BA Das Protokoll verfügt (bei jedem Schritt) über die erforderliche ehrliche Zweidrittelmehrheit. Klärung der Blockgenerierung Wenn der Rund-R-Anführer \(\ell\)r ehrlich ist, dann der entsprechende Block ist von der Form Br = r, PAY r, SIG\(\ell\)r Qr−1 , H Br−1 , wobei der Payset PAY r maximal ist. (Denken Sie daran, dass alle Gehaltssätze per Definition kollektiv gültig sind.) Andernfalls (d. h. wenn \(\ell\)r böswillig ist) hat Br eine der folgenden zwei möglichen Formen: Br = r, ZAHLEN r, SIGi Qr−1 , H Br−1 und Br = Br \(\varepsilon\) \(\triangleq\) r, \(\emptyset\), Qr−1, H Br−1 .In der ersten Form ist PAY r eine (nicht unbedingt maximale) Gehaltsmenge und kann PAY r = \(\emptyset\) sein; und ich bin ein potenzieller Anführer der Runde r. (Allerdings bin ich möglicherweise nicht der Anführer. Dies kann tatsächlich passieren, wenn \(\ell\)r hält seinen Ausweis geheim und gibt sich nicht zu erkennen.) Die zweite Form entsteht, wenn bei der Round-R-Ausführung des BA-Protokolls alle ehrlichen Spieler auftreten Geben Sie den Standardwert aus, der der leere Block Br ist \(\varepsilon\) in unserer Anwendung. (Per Definition das Mögliche Ausgaben eines BA-Protokolls enthalten einen Standardwert, der allgemein mit \(\bot\) bezeichnet wird. Siehe Abschnitt 3.2.) Beachten Sie, dass Br =, obwohl die Gehaltssätze in beiden Fällen leer sind r, \(\emptyset\), SIGi Qr−1 , H Br−1 und Br \(\varepsilon\) sind syntaktisch unterschiedliche Blöcke und treten in zwei verschiedenen Situationen auf: bzw. „alle verlief reibungslos genug bei der Ausführung des BA-Protokolls“, und „etwas ist schief gelaufen BA-Protokoll und der Standardwert wurde ausgegeben“. Beschreiben wir nun intuitiv, wie die Generierung des Blocks Br in Runde r von Algorand ′ abläuft. Im ersten Schritt prüft jeder teilnahmeberechtigte Spieler, also jeder Spieler i \(\in\)PKr−k, ob er ein Potential ist Anführer. Wenn dies der Fall ist, dann wird ich gefragt, unter Verwendung aller Zahlungen, die er bisher gesehen hat, und die aktuell blockchain, B0, . . . , Br−1, um heimlich einen maximalen Zahlungssatz, PAY r, vorzubereiten ich, und zwar heimlich stellt seinen Kandidatenblock zusammen, Br = r, ZAHLEN r Ich, SIGi Qr−1 , H Br−1 . Das heißt, nicht nur er in Br einschließen i als zweite Komponente der soeben vorbereitete Lohnsatz, aber auch als dritte Komponente seine eigene Signatur von Qr−1, der dritten Komponente des letzten Blocks, Br−1. Schließlich propagiert er seine Runde-r-Schritt-1-Nachricht, mr,1 i , zu dem (a) sein Kandidatenblock Br gehört i, (b) seine ordnungsgemäße Unterschrift seines Kandidatenblocks (d. h. seine Unterschrift des hash von Br i und (c) sein eigener Ausweis \(\sigma\)r,1 ich, beweisen dass er tatsächlich ein potenzieller Verifizierer der Runde r ist. (Beachten Sie, dass, bis ein ehrlicher Herr seine Botschaft hervorbringt, 1 Ich, der Widersacher hat keine Ahnung, dass ich ein bin potenzieller Prüfer. Sollte er ehrliche potenzielle Anführer korrumpieren wollen, könnte der Widersacher dies auch tun korrupte zufällige ehrliche Spieler. Sobald er jedoch Herrn 1 sieht i , da es die Anmeldeinformationen von i enthält, die Der Gegner weiß es und könnte i korrumpieren, kann mr,1 aber nicht verhindern i , das viral verbreitet wird, von alle Benutzer im System erreichen.) Im zweiten Schritt versucht jeder ausgewählte Verifizierer j \(\in\)SV r,2, den Anführer der Runde zu identifizieren. Insbesondere nimmt j die Anmeldeinformationen für Schritt 1 an, \(\sigma\)r,1 i1 , . . . , \(\sigma\)r,1 in , enthalten in der richtigen Schritt-1-Nachricht mr,1 ich er hat empfangen; hashes alle, das heißt, berechnet H  \(\sigma\)r,1 i1  , . . . , H  \(\sigma\)r,1 in  ; findet den Ausweis, \(\sigma\)r,1 \(\ell\)j , dessen hash lexikographisch minimal ist; und überlegt \(\ell\)r j soll der Anführer der Runde r sein. Denken Sie daran, dass jeder betrachtete Berechtigungsnachweis eine digitale Signatur von Qr−1, also SIGi, ist r, 1, Qr−1 ist eindeutig durch i und Qr−1 bestimmt, dass H zufällig oracle ist und somit jedes H(SIGi r, 1, Qr−1 ist eine zufällige 256-Bit-lange Zeichenfolge, die für jeden potenziellen Anführer i der Runde r eindeutig ist. Daraus können wir schließen, dass die 256-Bit-Zeichenfolge Qr−1 selbst zufällig und unabhängig wäre ausgewählt, dann wären dies die hashed-Anmeldeinformationen aller potenziellen Anführer der Runde r. Tatsächlich alle Potenzielle Führungskräfte sind genau definiert, ebenso wie ihre Qualifikationen (ob tatsächlich berechnet oder nicht). nicht). Darüber hinaus ist die Menge potenzieller Anführer der Runde r eine zufällige Teilmenge der Benutzer der Runde r −k, und ein ehrlicher potenzieller Anführer, der seine Botschaft immer richtig formuliert und verbreitet, Herr ich, welches den Berechtigungsnachweis von i enthält. Da also der Prozentsatz der ehrlichen Benutzer h ist, egal was böswillige potenzielle Führungskräfte könnten das Mindeste tun (z. B. ihre eigenen Referenzen preisgeben oder verbergen). hashed Die Qualifikation als potenzieller Leiter gehört einem ehrlichen Benutzer, der unbedingt von jedem identifiziert werden kann der Anführer \(\ell\)r der Runde r sein. Wenn dementsprechend die 256-Bit-Zeichenfolge Qr−1 selbst zufällig wäre und unabhängig ausgewählt, mit Wahrscheinlichkeit genau h (a) der Anführer \(\ell\)r ist ehrlich und (b) \(\ell\)j = \(\ell\)r für alle Ehrliche Schritt-2-Prüfer j. In Wirklichkeit werden die hashed-Berechtigungsnachweise zwar zufällig ausgewählt, hängen aber von Qr-1 ab, was der Fall istnicht zufällig und unabhängig ausgewählt. Wir werden in unserer Analyse jedoch beweisen, dass Qr−1 gilt ausreichend nicht manipulierbar, um sicherzustellen, dass der Anführer einer Runde ehrlich mit der Wahrscheinlichkeit ist h′ hinreichend nahe bei h liegt: nämlich h′ > h2(1 + h − h2). Wenn beispielsweise h = 80 %, dann ist h′ > 0,7424. Nachdem sie den Anführer der Runde identifiziert haben (was sie richtig machen, wenn der Anführer ehrlich ist), Die Aufgabe der Schritt-2-Verifizierer besteht darin, mit der Ausführung des BA zu beginnen und dabei als Anfangswerte das zu verwenden, woran sie glauben der Block des Anführers sein. Um den Umfang der erforderlichen Kommunikation zu minimieren, Ein Verifizierer j \(\in\)SV r,2 verwendet nicht als seinen Eingabewert v′ j zum byzantinischen Protokoll, der Block Bj das Er hat tatsächlich von \(\ell\)j empfangen (der Benutzer j glaubt, der Anführer zu sein), aber der der Anführer, aber der hash dieses Blocks, also v′ j = H(Bi). Daher werden nach Beendigung des BA-Protokolls die Verifizierer des letzten Schritts nicht den gewünschten Round-r-Block Br berechnen, sondern berechnen (authentifizieren und propagieren) H(Br). Da H(Br) dementsprechend von ausreichend vielen Verifizierern digital signiert ist Im letzten Schritt des BA-Protokolls werden die Benutzer im System erkennen, dass H(Br) der hash des neuen ist blockieren. Sie müssen jedoch auch die Datei abrufen (oder darauf warten, da die Ausführung ziemlich asynchron ist). Blockieren Sie Br selbst, wodurch das Protokoll sicherstellt, dass es tatsächlich verfügbar ist, unabhängig vom Gegner könnte reichen. Asynchronität und Timing Algorand ′ 1 und Algorand ′ 2 weisen einen erheblichen Grad an Asynchronität auf. Dies liegt daran, dass der Gegner einen großen Spielraum bei der Planung der Zustellung der Nachrichten hat propagiert. Darüber hinaus gibt es eine Obergrenze dafür, ob die Gesamtzahl der Schritte in einer Runde begrenzt ist oder nicht Der Varianzbeitrag ergibt sich aus der Anzahl der tatsächlich unternommenen Schritte. Sobald er die Zertifikate B0 erlernt hat, . . . , Br−1, ein Benutzer i berechnet Qr−1 und beginnt zu arbeiten In Runde r prüft er, ob er ein potenzieller Anführer oder ein Prüfer in einigen Schritten von Runde r ist. Unter der Annahme, dass ich angesichts der besprochenen Asynchronität bei Schritt s handeln muss, verlasse ich mich auf verschiedene Strategien, um sicherzustellen, dass er über ausreichende Informationen verfügt, bevor er handelt. Beispielsweise könnte er warten, bis er mindestens eine bestimmte Anzahl von Nachrichten von den Prüfern von erhält Gehen Sie zum vorherigen Schritt über oder warten Sie ausreichend Zeit, um sicherzustellen, dass er die Nachrichten ausreichend erhält viele Verifizierer des vorherigen Schritts. Der Seed Qr und der Look-Back-Parameter k Denken Sie daran, dass im Idealfall die Größen Qr sein sollten zufällig und unabhängig, obwohl es ausreicht, dass sie ausreichend nicht manipulierbar sind der Gegner. Auf den ersten Blick könnten wir Qr−1 so wählen, dass es mit H übereinstimmt ZAHLEN Sie r−1 , und vermeiden Sie es daher spezifizieren Sie Qr−1 explizit in Br−1. Eine elementare Analyse zeigt jedoch, dass böswillige Benutzer möglicherweise Nutzen Sie diesen Auswahlmechanismus.11 Einige zusätzliche Anstrengungen zeigen, dass unzählige andere 11Wir stehen am Anfang der Runde r −1. Somit ist Qr−2 = PAY r−2 öffentlich bekannt und der Gegner privat weiß, wer die potenziellen Führungskräfte sind, die er kontrolliert. Gehen Sie davon aus, dass der Gegner 10 % der Benutzer kontrolliert dass mit sehr hoher Wahrscheinlichkeit ein böswilliger Benutzer w der potenzielle Anführer der Runde r −1 ist. Das heißt, nehmen Sie das an H SIGw r −2, 1, Qr−2 ist so gering, dass es höchst unwahrscheinlich ist, dass ein ehrlicher potenzieller Anführer dies tatsächlich tun wird Anführer der Runde r −1. (Da wir uns daran erinnern, dass wir potenzielle Anführer über einen geheimen kryptografischen Sortiermechanismus auswählen, Der Widersacher weiß nicht, wer die ehrlichen potenziellen Anführer sind.) Der Widersacher ist daher beneidenswert Position der Wahl des von ihm gewünschten Gehaltssatzes PAY′ und dass dieser zum offiziellen Gehaltssatz der Runde r −1 geworden ist. Allerdings er kann mehr. Er kann auch sicherstellen, dass mit hoher Wahrscheinlichkeit () einer seiner böswilligen Benutzer der Anführer sein wird auch der Runde r, so dass er frei wählen kann, wie hoch PAY r sein soll. (Und so weiter. Zumindest für eine lange Zeit, solange diese Ereignisse mit hoher Wahrscheinlichkeit tatsächlich eintreten.) Um () zu garantieren, verhält sich der Gegner wie folgt. Lass ZAHLEN‘ sei der vom Gegner bevorzugte Auszahlungssatz für Runde r −1. Dann berechnet er H(PAY ′) und prüft, ob für einige Der bereits böswillige Spieler z, SIGz(r, 1, H(PAY ′)) ist besonders klein, also klein genug, um sehr hoch zu sein Wahrscheinlichkeit z wird der Anführer der Runde r sein. Wenn dies der Fall ist, weist er w an, seinen Kandidatenblock auszuwählenAlternativen, die auf traditionellen Blockmengen basieren, können vom Gegner leicht ausgenutzt werden, um sicherzustellen dass böswillige Anführer sehr häufig sind. Vielmehr definieren wir unsere Marke gezielt und induktiv neue Größe Qr, um nachweisen zu können, dass sie vom Gegner nicht manipulierbar ist. Nämlich, Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), wenn Br nicht der leere Block ist, andernfalls Qr \(\triangleq\)H(Qr−1, r). Die Intuition, warum diese Konstruktion von Qr funktioniert, ist wie folgt. Nehmen Sie das für einen Moment an Qr−1 wird wirklich zufällig und unabhängig ausgewählt. Wird Qr dann auch so sein? Wenn \(\ell\)r ehrlich ist, dann Die Antwort lautet (grob gesagt) ja. Das liegt daran H(SIG\(\ell\)r( \(\cdot\) ), r) : {0, 1}256 −→{0, 1}256 ist eine Zufallsfunktion. Wenn \(\ell\)r jedoch böswillig ist, ist Qr nicht mehr eindeutig aus Qr−1 definiert und \(\ell\)r. Es gibt mindestens zwei separate Werte für Qr. Man bleibt weiterhin Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), und der andere ist H(Qr−1, r). Lassen Sie uns zunächst argumentieren, dass die zweite Wahl zwar etwas willkürlich ist, eine zweite Wahl ist unbedingt erforderlich. Der Grund dafür ist, dass ein böswilliger Fehler immer verursacht werden kann völlig unterschiedliche Kandidatenblöcke, die von den ehrlichen Prüfern des zweiten Schritts empfangen werden müssen.12 Einmal Ist dies der Fall, lässt sich leicht sicherstellen, dass der Block letztendlich über das BA-Protokoll vereinbart wird Runde r ist die Standardrunde und enthält daher keine digitale Signatur von Qr−1. Aber Das System muss weitermachen und dafür braucht es einen Anführer für Runde r. Wenn dieser Anführer automatisch ist und offen ausgewählt, dann wird ihn der Widersacher trivial korrumpieren. Wenn es vom vorherigen ausgewählt wird Qr−1 über den gleichen Prozess, dann wird \(\ell\)r in Runde r+1 wieder der Anführer sein. Wir schlagen dies ausdrücklich vor Verwenden Sie denselben geheimen kryptografischen Sortiermechanismus, der jedoch auf eine neue Q-Menge angewendet wird: nämlich H(Qr−1, r). Dadurch, dass diese Menge die Ausgabe von H ist, wird garantiert, dass die Ausgabe zufällig ist. und indem r als zweite Eingabe von H einbezogen wird, während alle anderen Verwendungen von H eine oder mehr als drei Eingaben haben, „garantiert“, dass ein solcher Qr unabhängig ausgewählt wird. Auch hier ist unsere spezifische Wahl des alternativen Qr spielt keine Rolle, wichtig ist, dass \(\ell\)r zwei Möglichkeiten für Qr hat und somit seine Chancen verdoppeln kann einen anderen böswilligen Benutzer als nächsten Anführer zu haben. Die Optionen für Qr könnten für den Gegner, der einen böswilligen \(\ell\)r kontrolliert, sogar noch zahlreicher sein. Nehmen wir zum Beispiel an, x, y und z seien drei böswillige potenzielle Anführer der Runde r, so dass H \(\sigma\)r,1 x  < H \(\sigma\)r,1 j  < H \(\sigma\)r,1 z  und H  \(\sigma\)r,1 z  ist besonders klein. Das heißt, so klein, dass eine gute Chance besteht, dass H  \(\sigma\)r,1 z  ist kleiner als die hashed-Referenz eines jeden ehrlichen potenziellen Anführers. Dann, indem Sie x bitten, seine zu verstecken Aufgrund seiner Qualifikation hat der Gegner gute Chancen, dass er der Anführer der Runde r −1 wird. Dies impliziert, dass er eine andere Option für Qr hat: nämlich SIGy Qr−1 . Ebenso kann der Gegner Bitten Sie sowohl x als auch y, ihre Anmeldeinformationen zurückzuhalten, damit z der Anführer der Runde r −1 wird und eine weitere Option für Qr zu gewinnen: nämlich SIGz Qr−1 . Natürlich ist die Wahrscheinlichkeit, dass diese und andere Optionen scheitern, ungleich Null, denn die Der Gegner kann den hash der digitalen Signaturen der ehrlichen potenziellen Benutzer nicht vorhersagen. Br−1 ich = (r −1, PAY ′, H(Br−2). Ansonsten hat er zwei weitere böswillige Benutzer x und y, die immer wieder eine neue Zahlung generieren \(\wp\)′, von einem zum anderen, bis für einen böswilligen Benutzer z (oder sogar für einen festen Benutzer z) H (SIGz (PAY ′ \(\cup\){\(\wp\)})) ist auch besonders klein. Dieses Experiment wird ziemlich schnell enden. Und wenn das der Fall ist, bittet uns der Gegner, einen Vorschlag zu machen der Kandidatenblock Br−1 ich = (r −1, PAY ′ \(\cup\){\(\wp\)}, H(Br−2). 12Um es beispielsweise einfach (aber extrem) zu halten: „Wenn die Zeit des zweiten Schritts bald abläuft“, könnte \(\ell\)r Senden Sie jedem Benutzer i direkt einen anderen Kandidatenblock Bi per E-Mail. Auf diese Weise können sie, wer auch immer die Schritt-2-Prüfer sein mögen wird völlig unterschiedliche Blöcke erhalten haben.Eine sorgfältige, Markov-Ketten-ähnliche Analyse zeigt dies, egal welche Optionen der Gegner wählt Solange er in Runde r −1 keine neuen Benutzer in das System aufnehmen kann, kann er die nicht verringern Wahrscheinlichkeit, dass ein ehrlicher Benutzer der Anführer der Runde r + 40 ist, liegt deutlich unter h. Dies ist der Grund dafür Wir fordern, dass die potenziellen Anführer der Runde r Benutzer sind, die bereits in Runde r − k existieren. Auf diese Weise kann sichergestellt werden, dass der Gegner in der Runde r − k die Wahrscheinlichkeit nicht wesentlich ändern kann Ein ehrlicher Benutzer wird zum Anführer von Round R. Tatsächlich spielt es keine Rolle, welche Benutzer er dem hinzufügt System in den Runden r −k bis r, sind sie nicht berechtigt, potenzielle Anführer zu werden (und erst recht die Anführer) der Runde r. Somit ist der Lookback-Parameter k letztlich ein Sicherheitsparameter. (Obwohl, Wie wir in Abschnitt 7 sehen werden, kann es sich auch um eine Art „Bequemlichkeitsparameter“ handeln.) Vergängliche Schlüssel Obwohl die Ausführung unseres Protokolls keinen Fork generieren kann, außer mit Mit vernachlässigbarer Wahrscheinlichkeit könnte der Gegner am r-ten Block nach dem legitimen eine Abzweigung erzeugen Block r wurde generiert. Sobald Br generiert wurde, hat der Gegner ungefähr erfahren, wer die Prüfer für jeden Schritt ist der Runde r sind. Somit könnte er sie alle korrumpieren und sie dazu zwingen, einen neuen Block zu zertifizieren f Br. Da dieser gefälschte Block möglicherweise erst nach dem legitimen Block weitergegeben wird, haben Benutzer dies getan Aufmerksamkeit würde sich nicht täuschen lassen.13 Nichtsdestotrotz, f Br wäre syntaktisch korrekt und wir verhindern wollen, dass sie hergestellt werden. Dies tun wir mittels einer neuen Regelung. Im Wesentlichen legen die Mitglieder des Verifizierers SV r,s eines Schritts s fest der Runde r verwenden kurzlebige öffentliche Schlüssel pkr,s ich um ihre Nachrichten digital zu signieren. Diese Schlüssel sind nur für den einmaligen Gebrauch bestimmt und ihre entsprechenden geheimen Schlüssel sind skr,s ich werden nach Gebrauch zerstört. Auf diese Weise, wenn ein Verifizierer vorhanden ist Da er später korrumpiert wird, kann der Gegner ihn nicht zwingen, etwas anderes zu unterzeichnen, als er ursprünglich unterzeichnet hat. Natürlich müssen wir sicherstellen, dass es für den Gegner unmöglich ist, einen neuen Schlüssel g zu berechnen PR,S ich und einen ehrlichen Benutzer davon überzeugen, dass es der richtige ephemere Schlüssel des Verifizierers i \(\in\)SV r,s ist, der in Schritt s verwendet werden soll. 4.2 Allgemeine Zusammenfassung von Notationen, Begriffen und Parametern Notationen • r \(\geq\)0: die aktuelle Rundenzahl. • s \(\geq\)1: die aktuelle Schrittnummer in Runde r. • Br: der in Runde r erzeugte Block. • PKr: die Menge der öffentlichen Schlüssel am Ende der Runde r −1 und am Anfang der Runde r. • Sr: der Systemstatus am Ende der Runde r −1 und am Anfang der Runde r.14 • PAY r: der in Br enthaltene Payset. • \(\ell\)r: Rund-R-Anführer. \(\ell\)r wählt den Payset PAY r der Runde r (und bestimmt den nächsten Qr). • Qr: der Startwert der Runde r, eine Menge (d. h. eine binäre Zeichenfolge), die am Ende der Runde r generiert wird und wird verwendet, um Verifizierer für Runde r + 1 auszuwählen. Qr ist unabhängig von den Gehaltssätzen in den Blöcken und kann nicht von \(\ell\)r manipuliert werden. 13Denken Sie daran, den Nachrichtensprecher eines großen Fernsehsenders zu korrumpieren und heute eine Wochenschau zu produzieren und auszustrahlen zeigt, wie Außenministerin Clinton die letzten Präsidentschaftswahlen gewann. Die meisten von uns würden es als Scherz erkennen. Aber Jemand, der aus dem Koma erwacht, könnte getäuscht werden. 14In einem System, das nicht synchron ist, ist der Begriff „das Ende der Runde r −1“ und „der Anfang der Runde r“ müssen sorgfältig definiert werden. Mathematisch werden PKr und Sr aus dem Ausgangszustand S0 und den Blöcken berechnet B1, . . . , Br−1.• SV r,s: die Menge der Verifizierer, die für die Schritte s der Runde r ausgewählt wurden. • SV r: die Menge der für Runde r gewählten Verifizierer, SV r = \(\cup\)s\(\geq\)1SV r,s. • MSV r,s und HSV r,s: die Menge der böswilligen Verifizierer bzw. die Menge der ehrlichen Verifizierer in SV r,s. MSV r,s \(\cup\)HSV r,s = SV r,s und MSV r,s ∩HSV r,s = \(\emptyset\). • n1 \(\in\)Z+ und n \(\in\)Z+: jeweils die erwartete Anzahl potenzieller Anführer in jedem SV r,1, und die erwartete Anzahl von Verifizierern in jedem SV r,s, für s > 1. Beachten Sie, dass n1 << n, da wir mindestens ein ehrliches ehrliches Mitglied in SV r,1 benötigen, aber zumindest eine Mehrheit ehrlicher Mitglieder in jedem SV r,s für s > 1. • h \(\in\)(0, 1): eine Konstante größer als 2/3. h ist das Ehrlichkeitsverhältnis im System. Das heißt, die Der Bruchteil der ehrlichen Benutzer oder des ehrlichen Geldes, abhängig von der verwendeten Annahme, in jedem PKr zumindest h. • H: eine kryptografische hash-Funktion, modelliert als zufällige oracle. • \(\bot\): Eine spezielle Zeichenfolge mit der gleichen Länge wie die Ausgabe von H. • F \(\in\)(0, 1): der Parameter, der die zulässige Fehlerwahrscheinlichkeit angibt. Eine Wahrscheinlichkeit \(\leq\)F ist als „vernachlässigbar“ und eine Wahrscheinlichkeit \(\geq\)1 −F gilt als „überwältigend“. • ph \(\in\)(0, 1): die Wahrscheinlichkeit, dass der Anführer einer Runde r, \(\ell\)r, ehrlich ist. Idealerweise ist pH = h. Mit Sobald der Gegner existiert, wird der pH-Wert in der Analyse ermittelt. • k \(\in\)Z+: der Lookback-Parameter. Das heißt, in Runde r − k befinden sich die Verifizierer für Runde r ausgewählt aus – nämlich SV r \(\subseteq\)PKr−k.15 • p1 \(\in\)(0, 1): Für den ersten Schritt der Runde r wird ein Benutzer in Runde r −k ausgewählt, der im SV r,1 mit ist Wahrscheinlichkeit p1 \(\triangleq\) n1 |P Kr−k|. • p \(\in\)(0, 1): Für jeden Schritt s > 1 der Runde r wird ein Benutzer in Runde r −k ausgewählt, der im SV r,s mit ist Wahrscheinlichkeit p \(\triangleq\) n |P Kr−k|. • CERT r: das Zertifikat für Br. Es handelt sich um eine Reihe von Signaturen von H(Br) von geeigneten Prüfern in rund r. • Br \(\triangleq\)(Br, CERT r) ist ein bewährter Block. Ein Benutzer kennt Br, wenn er beide Teile des bewährten Blocks besitzt (und erfolgreich verifiziert). Beachten Sie, dass die von verschiedenen Benutzern angezeigten CERT-Werte unterschiedlich sein können. • τ r i: die (lokale) Zeit, zu der ein Benutzer Br kennt. Im Algorand-Protokoll hat jeder Benutzer sein eigenes eigene Uhr. Die Uhren verschiedener Benutzer müssen nicht synchronisiert sein, sondern müssen die gleiche Geschwindigkeit haben. Lediglich zum Zweck der Analyse betrachten wir eine Referenzuhr und messen die verwandte Zeiten in Bezug darauf. • \(\alpha\)r,s ich und \(\beta\)r,s i: jeweils die (lokale) Zeit, zu der ein Benutzer i seine Ausführung von Schritten beginnt und beendet rund r. • Λ und \(\lambda\): im Wesentlichen die Obergrenzen für die Zeit, die zum Ausführen von Schritt 1 bzw. benötigt wird die Zeit, die für jeden anderen Schritt des Algorand-Protokolls benötigt wird. Der Parameter Λ begrenzt die Zeit, die für die Ausbreitung eines einzelnen 1-MB-Blocks benötigt wird, nach oben. (In unserer Notation, Λ = \(\lambda\) \(\rho\),1MB. Erinnern wir uns an unsere Notation, dass wir der Einfachheit halber \(\rho\) = 1 setzen und dass Blöcke dies sind so gewählt, dass es höchstens 1 MB lang ist, gilt Λ = \(\lambda\)1,1,1 MB.) 15Genau genommen sollte „r −k“ „max{0, r −k}“ sein.Der Parameter \(\lambda\) begrenzt die Zeit zur Verbreitung einer kleinen Nachricht pro Verifizierer in einem Schritt s > 1. (Bei Verwendung von elliptischen Kurvensignaturen mit 32B Schlüsseln, wie in Bitcoin, ist eine Verifizierernachricht 200B lang. Somit ist in unserer Notation \(\lambda\) = \(\lambda\)n,\(\rho\),200B.) Wir gehen davon aus, dass Λ = O(\(\lambda\)). Vorstellungen • Prüferauswahl. Für jede Runde r und Schritt s > 1 gilt SV r,s \(\triangleq\){i \(\in\)PKr−k : .H(SIGi(r, s, Qr−1)) \(\leq\)p}. Jeder Benutzer i \(\in\)PKr−k berechnet privat seine Signatur unter Verwendung seines Langzeitschlüssels und entscheidet, ob i \(\in\)SV r,s oder nicht. Wenn i \(\in\)SV r,s, dann ist SIGi(r, s, Qr−1) der (r, s)-Berechtigungsnachweis von i, kompakt bezeichnet von \(\sigma\)r,s ich . Für den ersten Schritt der Runde r, SV r,1 und \(\sigma\)r,1 ich sind ähnlich definiert, wobei p durch p1 ersetzt wird. Die Verifizierer in SV r,1 sind potenzielle Führungskräfte. • Auswahl des Leiters. Benutzer i \(\in\)SV r,1 ist der Anführer der Runde r, bezeichnet mit \(\ell\)r, wenn H(\(\sigma\)r,1 i ) \(\leq\)H(\(\sigma\)r,1 j ) für alle Potentiale Leiter j \(\in\)SV r,1. Immer wenn die hashes der Referenzen zweier Spieler verglichen werden, ist das unwahrscheinlich Im Falle von Bindungen bricht das Protokoll Bindungen immer lexikographisch entsprechend der (langfristigen Öffentlichkeit) auf Schlüssel der potenziellen Führungskräfte. Per Definition ist der hash-Wert der Anmeldeinformationen des Spielers auch der kleinste unter allen Benutzern in PKr−k. Beachten Sie, dass ein potenzieller Anführer nicht privat entscheiden kann, ob er der Anführer ist oder nicht. ohne die Referenzen der anderen potenziellen Führungskräfte zu sehen. Da die hash-Werte zufällig einheitlich sind, existiert und ist \(\ell\)r immer, wenn SV r,1 nicht leer ist ehrlich mit Wahrscheinlichkeit mindestens h. Der Parameter n1 ist groß genug, um sicherzustellen, dass jeder SV r,1 ist mit überwältigender Wahrscheinlichkeit nicht leer. • Blockstruktur. Ein nicht leerer Block hat die Form Br = (r, PAY r, SIG\(\ell\)r(Qr−1), H(Br−1)) und ist ein leerer Block hat die Form Br ǫ = (r, \(\emptyset\), Qr−1, H(Br−1)). Beachten Sie, dass ein nicht leerer Block immer noch einen leeren Payset PAY r enthalten kann, wenn keine Zahlung erfolgt in dieser Runde oder wenn der Anführer böswillig ist. Ein nicht leerer Block impliziert jedoch, dass die Identität von \(\ell\)r, sein Ausweis \(\sigma\)r,1 \(\ell\)r und SIG\(\ell\)r(Qr−1) wurden alle rechtzeitig enthüllt. Das Protokoll garantiert Wenn der Anführer ehrlich ist, wird der Block mit überwältigender Wahrscheinlichkeit nicht leer sein. • Seed Qr. Wenn Br nicht leer ist, dann ist Qr \(\triangleq\)H(SIG\(\ell\)r(Qr−1), r), andernfalls ist Qr \(\triangleq\)H(Qr−1, r). Parameter • Beziehungen zwischen verschiedenen Parametern. — Die Verifizierer und potenziellen Leiter der Runde r werden aus den Benutzern in PKr−k ausgewählt, wobei k so gewählt ist, dass der Gegner Qr−1 nicht in der Runde r −k −1 vorhersagen kann mit einer Wahrscheinlichkeit besser als F: Andernfalls kann er böswillige Benutzer einführen für Runde r − k, die alle potenzielle Anführer/Verifizierer in Runde r sein werden und erfolgreich sind

Einen böswilligen Anführer oder eine böswillige Mehrheit in SV r,s für einige Schritte zu haben, ist erwünscht von ihn. — Für Schritt 1 jeder Runde r wird n1 so gewählt, dass mit überwältigender Wahrscheinlichkeit SV r,1 ̸= \(\emptyset\). • Beispielhafte Auswahl wichtiger Parameter. — Die Ausgänge von H sind 256 Bit lang. — h = 80 %, n1 = 35. — Λ = 1 Minute und \(\lambda\) = 10 Sekunden. • Initialisierung des Protokolls. Das Protokoll beginnt zum Zeitpunkt 0 mit r = 0. Da es weder „B−1“ noch „CERT −1“ gibt, Syntaktisch ist B−1 ein öffentlicher Parameter, dessen dritte Komponente Q−1 und alle Benutzer angibt kenne B−1 zum Zeitpunkt 0.

Algorand ′

1 En esta sección, construimos una versión de Algorand ′ que funciona bajo el siguiente supuesto. Supuesto honesto de la mayoría de los usuarios: Más de 2/3 de los usuarios en cada PKr son honestos. En la Sección 8, mostramos cómo reemplazar el supuesto anterior con la deseada Mayoría Honesta de Suposición de dinero. 5.1 Notaciones y parámetros adicionales Notaciones • m \(\in\)Z+: el número máximo de pasos en el protocolo BA binario, múltiplo de 3. • Lr \(\leq\)m/3: una variable aleatoria que representa el número de ensayos de Bernoulli necesarios para ver un 1, cuando cada ensayo es 1 con probabilidad ph 2 y hay como máximo m/3 ensayos. Si todas las pruebas fallan entonces Lr\(\triangleq\)m/3. Lr se utilizará para limitar el tiempo necesario para generar el bloque Br. • tH = 2n 3 + 1: el número de firmas necesarias en las condiciones finales del protocolo. • CERT r: el certificado del Br. Es un conjunto de firmas tH de H(Br) de verificadores adecuados en redondo r. Parámetros • Relaciones entre varios parámetros. — Para cada paso s > 1 de la ronda r, se elige n de modo que, con una probabilidad abrumadora, |VHS r,s| > 2|MSV r,s| y |VHS r,s| + 4|MSV r,s| < 2n. Cuanto más cercano a 1 esté el valor de h, menor debe ser n. En particular, utilizamos (variantes de) Chernofflimits para garantizar que las condiciones deseadas se mantengan con una probabilidad abrumadora. — m se elige de modo que Lr < m/3 con una probabilidad abrumadora. • Ejemplos de opciones de parámetros importantes. —F = 10−12. — n \(\approx\)1500, k = 40 y m = 180.5.2 Implementación de claves efímeras en Algorand ′ 1 Como ya se mencionó, deseamos que un verificador i \(\in\)SV r,s firme digitalmente su mensaje mr,s yo de paso s en la ronda r, relativa a una clave pública efímera pkr,s i, usando una clave secreta efímera skr,s yo eso él rápidamente destruye después de usarlo. Por lo tanto, necesitamos un método eficiente para garantizar que cada usuario pueda verificar que pkr,s yo es de hecho la clave a utilizar para verificar la firma del señor i yo. Lo hacemos mediante un (al mejor según nuestro conocimiento) nuevo uso de esquemas de firma basados en la identidad. En un nivel alto, en tal esquema, una autoridad central A genera una clave maestra pública, PMK, y una clave maestra secreta correspondiente, SMK. Dada la identidad, U, de un jugador U, A calcula, a través de SMK, una clave de firma secreta skU relativa a la clave pública U, y de forma privada proporciona skU a U. (De hecho, en un esquema de firma digital basado en identidad, ¡la clave pública de un usuario U es la propia U!) De esta manera, si A destruye SMK después de calcular las claves secretas de los usuarios que desea habilitar para produce firmas digitales y no guarda ninguna clave secreta calculada, entonces U es el único que puede firmar digitalmente mensajes relativos a la clave pública U. Por lo tanto, cualquiera que conozca el "nombre de U", conoce automáticamente la clave pública de U y, por lo tanto, puede verificar las firmas de U (posiblemente usando también el clave maestra pública PMK). En nuestra aplicación, la autoridad A es el usuario i, y el conjunto de todos los posibles usuarios U coincide con el par de paso redondo (r, s) en —digamos— S = {i}\(\times\){r′, . . . , r′ +106}\(\times\){1, . . . , m+3}, donde r′ es un dato ronda, y m + 3 el límite superior del número de pasos que pueden ocurrir dentro de una ronda. esto camino, pkr, s yo \(\triangleq\)(i, r, s), para que todos vean la firma de i SIGr,s pkr yo (señor, s yo) puedo, con abrumador probabilidad, verifíquela inmediatamente para el primer millón de rondas r después de r′. En otras palabras, primero genero PMK y SMK. Luego, publicita que PMK es el amo de i. clave pública para cualquier ronda r \(\in\)[r′, r′ + 106], y utiliza SMK para producir y almacenar el secreto de forma privada clave skr,s yo para cada tripleta (i, r, s) \(\in\)S. Hecho esto, destruye SMK. Si determina que no es parte de SV r,s, entonces puedo dejar skr,s yo solo (ya que el protocolo no requiere que se autentique cualquier mensaje en el Paso s de la ronda r). De lo contrario, primero uso skr,s yo para firmar digitalmente su mensaje mr,s yo, y luego destruye skr,s yo. Tenga en cuenta que puedo publicar su primera clave maestra pública cuando ingresa por primera vez al sistema. Es decir, el mismo pago \(\wp\) que trae i al sistema (en una ronda r′ o en una ronda cercana a r′), también puede especifique, a petición de i, que la clave maestra pública de i para cualquier ronda r \(\in\)[r′, r′ + 106] es PMK —por ejemplo, mediante incluyendo un par de la forma (PMK, [r′, r′ + 106]). También tenga en cuenta que, dado que m + 3 es el número máximo de pasos en una ronda, suponiendo que una ronda toma un minuto, el alijo de claves efímeras así producidas durará casi dos años. al mismo Con el tiempo, estas claves secretas efímeras no tardarán mucho en producirse. Usando una curva elíptica basada En un sistema con 32B de claves, cada clave secreta se calcula en unos pocos microsegundos. Por tanto, si m + 3 = 180, entonces, las 180 millones de claves secretas se pueden calcular en menos de una hora. Cuando la ronda actual se acerca a r′ + 106, para manejar los próximos millones de rondas, i genera un nuevo par (PMK′, SMK′) e informa cuál será su próximo alijo de claves efímeras mediante —por ejemplo— teniendo SIGi(PMK′, [r′ + 106 + 1, r′ + 2 \(\cdot\) 106 + 1]) entrar en un nuevo bloque, ya sea como “transacción” separada o como información adicional que es parte de un pago. Al hacerlo, Les informo a todos que deben usar PMK′ para verificar mis firmas efímeras en el próximo millones de rondas. Etcétera. (Tenga en cuenta que, siguiendo este enfoque básico, otras formas de implementar claves efímeras sin El uso de firmas basadas en identidad es ciertamente posible. Por ejemplo, a través de Merkle trees.16) 16En este método, genero un par de claves secretas públicas (pkr,s yo, skr, s yo ) para cada par de pasos redondos (r, s) en —digamos—Ciertamente son posibles otras formas de implementar claves efímeras, por ejemplo, a través de Merkle trees. 5.3 Coincidiendo con los pasos de Algorand ′ 1 con los de BA⋆ Como decíamos, una ronda en Algorand′ 1 tiene como máximo m + 3 pasos. Paso 1. En este paso, cada líder potencial i calcula y propaga su bloque candidato Br yo, junto con su propia credencial, \(\sigma\)r,1 yo. Recuerde que esta credencial identifica explícitamente a i. Esto es así porque \(\sigma\)r,1 yo \(\triangleq\)SIGi(r, 1, Qr−1). El verificador potencial también propaga, como parte de su mensaje, su firma digital adecuada de H(Br). yo). Al no tratarse de un pago o de una credencial, esta firma de i es relativa a su público efímero. llave pkr,1 i: es decir, propaga sigpkr,1 yo (H(Br yo )). Dadas nuestras convenciones, en lugar de propagar Br yo y sigpkr,1 yo (H(Br i )), podría haber propagado SIGpkr,1 yo (H(Br yo )). Sin embargo, en nuestro análisis necesitamos tener acceso explícito a sigpkr,1 yo (H(Br yo )). Pasos 2. En este paso, cada verificador i establece \(\ell\)r Ser el líder potencial cuya credencial hashed es el más pequeño, y Br i será el bloque propuesto por \(\ell\)r yo. Dado que, en aras de la eficiencia, desea ponerse de acuerdo sobre H(Br), en lugar de hacerlo directamente sobre Br, propaga el mensaje que habría propagado en el primer paso de BA⋆con valor inicial v′ yo = H(Br yo). Es decir, propaga v′ yo, tras firmarlo efímeramente, claro. (Es decir, después de firmarlo en relación con el efímero derecho clave pública, que en este caso es pkr,2 i .) Por supuesto también, también transmito su propia credencial. Dado que el primer paso de BA⋆consiste en el primer paso del protocolo de consenso graduado GC, Paso 2 de Algorand ′ corresponde al primer paso de GC. Pasos 3. En este paso, cada verificador i \(\in\)SV r,2 ejecuta el segundo paso de BA⋆. Es decir, envía el El mismo mensaje que habría enviado en el segundo paso de GC. Una vez más, mi mensaje es efímero. firmado y acompañado de mi credencial. (De ahora en adelante, omitiremos decir que un verificador firma efímeramente su mensaje y también propaga su credencial.) Paso 4. En este paso, cada verificador i \(\in\)SV r,4 calcula la salida de GC, (vi, gi), y efímeramente firma y envía el mismo mensaje que habría enviado en el tercer paso de BA⋆, es decir, en el primer paso de BBA⋆, con el bit inicial 0 si gi = 2 y 1 en caso contrario. Paso s = 5, . . . , m + 2. Tal paso, si alguna vez se alcanza, corresponde al paso s −1 de BA⋆ y, por tanto, a paso s −3 de BBA⋆. Dado que nuestro modelo de propagación es suficientemente asíncrono, debemos tener en cuenta la posibilidad que, en medio de tal paso s, un verificador i \(\in\)SV r,s es alcanzado por información que lo prueba ese bloque Br ya ha sido elegido. En este caso, i detiene su propia ejecución de la ronda r de Algorand ′, y comienza a ejecutar sus instrucciones de ronda-(r + 1). {r', . . . , r′ + 106} \(\times\) {1, . . . , metro + 3}. Luego ordena estas claves públicas de forma canónica, almacena la j-ésima pública ingresa la j-ésima hoja de un Merkle tree y calcula el valor raíz Ri, que publica. Cuando quiere firmar un mensaje relativo a la clave pkr,s yo , no solo proporciono la firma real, sino también la ruta de autenticación para pkr,s yo en relación con Ri. Observe que esta ruta de autenticación también prueba que pkr,s yo se almacena en la j-ésima hoja. El resto del Los detalles se pueden completar fácilmente.En consecuencia, las instrucciones de un verificador i \(\in\)SV r,s, además de las instrucciones correspondientes al Paso s −3 de BBA⋆, incluya verificar si la ejecución de BBA⋆ se ha detenido en una etapa anterior Paso s′. Dado que BBA⋆sólo puede detenerse en un paso Coin-Fixed-to-0 o en un paso Coin-Fixed-to-1, el las instrucciones distinguen si A (Condición final 0): s′ −2 ≡0 mod 3, o B (Condición final 1): s′ −2 ≡1 mod 3. De hecho, en el caso A, el bloque Br no está vacío y, por lo tanto, se necesitan instrucciones adicionales para asegúrese de que i reconstruya adecuadamente Br, junto con su certificado adecuado CERT r. En el caso B, el bloque Br está vacío y, por lo tanto, se me indica que establezca Br = Br \(\varepsilon\) = (r, \(\emptyset\), H(Qr−1, r), H(Br−1)), y para calcular CERT r. Si, durante la ejecución del paso s, no veo ninguna evidencia de que el bloque Br ya haya sido generado, luego envía el mismo mensaje que habría enviado en el paso s −3 de BBA⋆. Paso m + 3. Si durante el paso m + 3, i \(\in\)SV r,m+3 ve que el bloque Br ya fue generado en un paso previo s′, luego procede tal como se explicó anteriormente. De lo contrario, en lugar de enviar el mismo mensaje que habría enviado en el paso m de BBA⋆, i es recibió instrucciones, basándose en la información que poseía, de calcular Br y su correspondiente certificado CERT r. Recuerde, de hecho, que elevamos en m + 3 el número total de pasos de una ronda. 5.4 El protocolo real Recuerde que, en cada paso s de una ronda r, un verificador i \(\in\)SV r,s utiliza su par de claves secretas públicas de largo plazo para presentar su credencial, \(\sigma\)r,s yo \(\triangleq\)SIGi(r, s, Qr−1), así como SIGi qr-1 en caso s = 1. Verificador i utiliza su efímera clave secreta skr,s yo para firmar su mensaje (r, s) mr,s yo. Por simplicidad, cuando r y s son claro, escribimos esigi(x) en lugar de sigpkr,s i (x) para denotar la firma efímera propia de un valor x en el paso s de la ronda r, y escriba ESIGi(x) en lugar de SIGpkr,s i (x) para denotar (i, x, esigi(x)). Paso 1: bloquear la propuesta Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza su propio Paso 1 de la ronda r tan pronto como conoce Br−1. • El usuario i calcula Qr−1 a partir del tercer componente de Br−1 y comprueba si i \(\in\)SV r,1 o no. • Si i /\(\in\)SV r,1, entonces i detiene su propia ejecución del Paso 1 de inmediato. • Si i \(\in\)SV r,1, es decir, si i es un líder potencial, entonces cobra los pagos redondos r que han se le ha propagado hasta el momento y calcula un pago máximo PAY r yo de ellos. A continuación, él calcula su “bloque de candidatos” fr. i = (r, PAGAR r i , SIGi(Qr−1), H(Br−1)). Finalmente, calcula el mensaje señor,1 yo = (Hermano yo , esigi(H(Br i )), \(\sigma\)r,1 i ), destruye su efímera clave secreta skr,1 yo, y luego propaga mr,1 yo.Observación. En la práctica, para acortar la ejecución global del Paso 1, es importante que el (r, 1)- Los mensajes se propagan selectivamente. Es decir, para cada usuario i en el sistema, para el primer (r, 1)- mensaje que alguna vez recibe y verifica con éxito,17 el jugador i lo propaga como de costumbre. Para todos los otros (r, 1): mensajes que el jugador i recibe y verifica con éxito, los propaga solo si el hash El valor de la credencial que contiene es el más pequeño entre los valores hash de las credenciales contenidas. en todos los mensajes (r, 1) que ha recibido y verificado con éxito hasta el momento. Además, como sugiere Según Georgios Vlachos, es útil que cada líder potencial i también propague su credencial \(\sigma\)r,1 yo por separado: esos pequeños mensajes viajan más rápido que los bloques, aseguran la propagación oportuna del mr,1 j's donde las credenciales contenidas tienen valores hash pequeños, mientras que aquellas con valores hash grandes desaparecer rápidamente. Paso 2: El primer paso del Protocolo de Consenso Graduado GC Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza su propio Paso 2 de la ronda r tan pronto como conoce Br−1. • El usuario i calcula Qr−1 a partir del tercer componente de Br−1 y comprueba si i \(\in\)SV r,2 o no. • Si i /\(\in\)SV r,2 entonces i detiene su propia ejecución del Paso 2 de inmediato. • Si i \(\in\)SV r,2, entonces después de esperar un tiempo t2 \(\triangleq\) \(\lambda\) + Λ, i actúa de la siguiente manera. 1. Encuentra al usuario \(\ell\)tal que H(\(\sigma\)r,1 \(\ell\)) \(\leq\)H(\(\sigma\)r,1 j ) para todas las credenciales \(\sigma\)r,1 j que son parte de los mensajes (r, 1) verificados con éxito que ha recibido hasta ahora.a 2. Si ha recibido de \(\ell\) un mensaje válido mr,1 \(\ell\) = (Hermano \(\ell\), esig\(\ell\)(H(Br \(\ell\))), \(\sigma\)r,1 \(\ell\)),b entonces me pongo v′ yo \(\triangleq\)H(Br \(\ell\)); de lo contrario establezco v′ yo \(\triangleq\) \(\bot\). 3. Calculo el mensaje mr,2 yo \(\triangleq\)(ESIGi(v′ i), \(\sigma\)r,2 i ),c destruye su efímera clave secreta skr,2 i y luego propaga mr,2 yo. aEsencialmente, el usuario i decide en privado que el líder de la ronda r es el usuario \(\ell\). bNuevamente, las firmas del jugador \(\ell\) y los hashes se verifican con éxito y PAGA r \(\ell\)en Br \(\ell\)es un pago válido para round r —aunque no compruebo si PAY r \(\ell\)es máximo para \(\ell\)o no. cEl mensaje señor,2 yo señala a ese jugador que considero v′ i debe ser el hash del siguiente bloque, o considera el siguiente bloque para estar vacío. 17Es decir, todas las firmas son correctas y tanto el bloque como su hash son válidos —aunque no compruebo si el pago incluido es máximo para su proponente o no.

Paso 3: el segundo paso de GC Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza su propio Paso 3 de la ronda r tan pronto como conoce Br−1. • El usuario i calcula Qr−1 a partir del tercer componente de Br−1 y comprueba si i \(\in\)SV r,3 o no. • Si i /\(\in\)SV r,3, entonces i detiene su propia ejecución del Paso 3 de inmediato. • Si i \(\in\)SV r,3, entonces después de esperar un tiempo t3 \(\triangleq\)t2 + 2\(\lambda\) = 3\(\lambda\) + Λ, i actúa de la siguiente manera. 1. Si existe un valor v′ ̸= \(\bot\) tal que, entre todos los mensajes válidos mr,2 j él ha recibido, más de 2/3 de ellos son de la forma (ESIGj(v′), \(\sigma\)r,2 j ), sin contradicción alguna,a luego calcula el mensaje mr,3 yo \(\triangleq\)(ESIGi(v′), \(\sigma\)r,3 yo). De lo contrario, calcula mr,3 yo \(\triangleq\) (ESIGi(\(\bot\)), \(\sigma\)r,3 yo). 2. Destruyo su efímera clave secreta skr,3 i y luego propaga mr,3 yo. aEs decir, no ha recibido dos mensajes válidos que contengan ESIGj(v′) y un ESIGj(v′′) diferente respectivamente, de un jugador j. Aquí y de aquí en adelante, excepto en las Condiciones Finales que se definen más adelante, siempre que un jugador honesto quiere mensajes de una forma determinada, los mensajes que se contradicen entre sí nunca se cuentan ni se consideran válidos.Paso 4: Salida de GC y el primer paso de BBA⋆ Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza su propio Paso 4 de la ronda r tan pronto como conoce Br−1. • El usuario i calcula Qr−1 a partir del tercer componente de Br−1 y comprueba si i \(\in\)SV r,4 o no. • Si i /\(\in\)SV r,4, entonces i detiene su propia ejecución del Paso 4 de inmediato. • Si i \(\in\)SV r,4, entonces después de esperar un tiempo t4 \(\triangleq\)t3 + 2\(\lambda\) = 5\(\lambda\) + Λ, i actúa de la siguiente manera. 1. Calcula vi y gi, la salida de GC, de la siguiente manera. (a) Si existe un valor v′ ̸= \(\bot\) tal que, entre todos los mensajes válidos mr,3 j el tiene recibidos, más de 2/3 de ellos son de la forma (ESIGj(v′), \(\sigma\)r,3 j ), luego establece vi \(\triangleq\)v′ y gi \(\triangleq\)2. (b) En caso contrario, si existe un valor v′ ̸= \(\bot\) tal que, entre todos los mensajes válidos señor,3 j ha recibido, más de 1/3 de ellos son de la forma (ESIGj(v′), \(\sigma\)r,3 j), entonces establece vi \(\triangleq\)v′ y gi \(\triangleq\)1.a (c) En caso contrario, establece vi \(\triangleq\)H(Br ǫ ) y gi \(\triangleq\)0. 2. Calcula bi, la entrada de BBA⋆, de la siguiente manera: bi \(\triangleq\)0 si gi = 2, y bi \(\triangleq\)1 en caso contrario. 3. Calcula el mensaje mr,4 yo \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,4 i ), destruye su efímero clave secreta skr,4 i y luego propaga mr,4 yo. aSe puede demostrar que v′ en el caso (b), si existe, debe ser única.

Paso s, 5 \(\leq\)s \(\leq\)m + 2, s −2 ≡0 mod 3: un paso de BBA⋆ con moneda fijada a 0 Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza sus propios Pasos de la ronda r tan pronto como conoce Br−1. • El usuario i calcula Qr−1 a partir del tercer componente de Br−1 y comprueba si i \(\in\)SV r,s. • Si i /\(\in\)SV r,s, entonces i detiene su propia ejecución del Paso s inmediatamente. • Si i \(\in\)SV r,s entonces actúa de la siguiente manera. – Espera hasta que haya transcurrido un tiempo ts \(\triangleq\)ts−1 + 2\(\lambda\) = (2s −3)\(\lambda\) + Λ. – Condición final 0: Si, durante dicha espera y en cualquier momento, existe una cadena v ̸= \(\bot\)y un paso s′ tal que (a) 5 \(\leq\)s′ \(\leq\)s, s′ −2 ≡0 mod 3, es decir, el paso s′ es un paso fijo con moneda a 0, (b) he recibido al menos tH = 2n 3 + 1 mensajes válidos mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ),a y (c) He recibido un mensaje válido mr,1 j = (Hermano j , esigj(H(Br j )), \(\sigma\)r,1 j ) con v = H(Br j), entonces, detengo su propia ejecución de los Pasos s (y de hecho de la ronda r) inmediatamente sin propagar cualquier cosa; establece Br = Br j; y establece su propio CERT r para que sea el conjunto de mensajes señor,s′−1 j del subpaso (b).b – Condición final 1: Si, durante dicha espera y en cualquier momento, existe una paso s′ tal que (a’) 6 \(\leq\)s′ \(\leq\)s, s′ −2 ≡1 mod 3, es decir, el paso s′ es un paso fijo con moneda a 1, y (b’) he recibido al menos tH mensajes válidos mr,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ),c entonces, detengo su propia ejecución de los Pasos s (y de hecho de la ronda r) inmediatamente sin propagar cualquier cosa; establece Br = Br ǫ ; y establece su propio CERT r para que sea el conjunto de mensajes señor,s′−1 j del subpaso (b’). – De lo contrario, al final de la espera, el usuario i hace lo siguiente. Establece vi como el voto mayoritario de los vj en los segundos componentes de todos los votos válidos. señor, s-1 j que ha recibido. Calcula bi de la siguiente manera. Si más de 2/3 de todos los mr,s−1 válidos j que ha recibido son de la forma (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), luego establece bi \(\triangleq\)0. De lo contrario, si más de 2/3 de todos los mr,s−1 válidos j que ha recibido son de la forma (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), luego establece bi \(\triangleq\)1. De lo contrario, establece bi \(\triangleq\)0. Calcula el mensaje mr,s yo \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), destruye su efímero clave secreta skr,s i y luego propaga mr,s yo. aUn mensaje de este tipo del jugador j se cuenta incluso si el jugador i también ha recibido un mensaje de j firmando por 1. Cosas similares para la condición final 1. Como se muestra en el análisis, esto se hace para garantizar que todos los usuarios honestos sepan Br dentro del tiempo \(\lambda\) entre sí. El usuario i ahora conoce a Br y sus propios acabados redondos. Todavía ayuda a propagar mensajes como usuario genérico, pero no inicia ninguna propagación como verificador (r, s). En particular, ha ayudado a difundir todos los mensajes en su CERT r, que es suficiente para nuestro protocolo. Tenga en cuenta que también debería establecer bi \(\triangleq\)0 para el protocolo BA binario, pero bi De todos modos, no es necesario en este caso. Cosas similares para todas las instrucciones futuras. cEn este caso, no importa cuáles sean los vj.Paso s, 6 \(\leq\)s \(\leq\)m + 2, s −2 ≡1 mod 3: un paso de BBA⋆ con moneda fijada a 1 Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza sus propios Pasos de la ronda r tan pronto como conoce Br−1. • El usuario i calcula Qr−1 a partir del tercer componente de Br−1 y comprueba si i \(\in\)SV r,s o no. • Si i /\(\in\)SV r,s, entonces i detiene su propia ejecución del Paso s inmediatamente. • Si i \(\in\)SV r,s entonces hace lo siguiente. – Espera hasta que haya transcurrido un tiempo ts \(\triangleq\)(2s −3)\(\lambda\) + Λ. – Condición final 0: Las mismas instrucciones que los pasos Coin-Fixed-To-0. – Condición final 1: Las mismas instrucciones que los pasos Coin-Fixed-To-0. – De lo contrario, al final de la espera, el usuario i hace lo siguiente. Establece vi como el voto mayoritario de los vj en los segundos componentes de todos los votos válidos. señor, s-1 j que ha recibido. Calcula bi de la siguiente manera. Si más de 2/3 de todos los mr,s−1 válidos j que ha recibido son de la forma (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), luego establece bi \(\triangleq\)0. De lo contrario, si más de 2/3 de todos los mr,s−1 válidos j que ha recibido son de la forma (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), luego establece bi \(\triangleq\)1. En caso contrario, establece bi \(\triangleq\)1. Calcula el mensaje mr,s yo \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), destruye su efímero clave secreta skr,s i y luego propaga mr,s yo.

Paso s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ≡2 mod 3: un paso de BBA⋆ genuinamente lanzado al aire Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza sus propios Pasos de la ronda r tan pronto como conoce Br−1. • El usuario i calcula Qr−1 a partir del tercer componente de Br−1 y comprueba si i \(\in\)SV r,s o no. • Si i /\(\in\)SV r,s, entonces i detiene su propia ejecución del Paso s inmediatamente. • Si i \(\in\)SV r,s entonces hace lo siguiente. – Espera hasta que haya transcurrido un tiempo ts \(\triangleq\)(2s −3)\(\lambda\) + Λ. – Condición final 0: Las mismas instrucciones que los pasos Coin-Fixed-To-0. – Condición final 1: Las mismas instrucciones que los pasos Coin-Fixed-To-0. – De lo contrario, al final de la espera, el usuario i hace lo siguiente. Establece vi como el voto mayoritario de los vj en los segundos componentes de todos los votos válidos. señor, s-1 j que ha recibido. Calcula bi de la siguiente manera. Si más de 2/3 de todos los mr,s−1 válidos j que ha recibido son de la forma (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), luego establece bi \(\triangleq\)0. De lo contrario, si más de 2/3 de todos los mr,s−1 válidos j que ha recibido son de la forma (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), luego establece bi \(\triangleq\)1. De lo contrario, sea SV r,s−1 yo ser el conjunto de (r, s −1)-verificadores de quienes ha recibido una mensaje señor, s-1 j . Él establece bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1 yo H(\(\sigma\)r,s−1 j )). Calcula el mensaje mr,s yo \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), destruye su efímero clave secreta skr,s i y luego propaga mr,s yo.

Paso m + 3: El último paso de BBA⋆a Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza su propio Paso m + 3 de la ronda r tan pronto como conoce Br−1. • El usuario i calcula Qr−1 a partir del tercer componente de Br−1 y comprueba si i \(\in\)SV r,m+3 o no. • Si i /\(\in\)SV r,m+3, entonces i detiene su propia ejecución del Paso m + 3 de inmediato. • Si i \(\in\)SV r,m+3 entonces hace lo siguiente. – Espera hasta que haya transcurrido un tiempo tm+3 \(\triangleq\)tm+2 + 2\(\lambda\) = (2m + 3)\(\lambda\) + Λ. – Condición final 0: Las mismas instrucciones que los pasos Coin-Fixed-To-0. – Condición final 1: Las mismas instrucciones que los pasos Coin-Fixed-To-0. – De lo contrario, al final de la espera, el usuario i hace lo siguiente. Él establece i \(\triangleq\)1 y Br \(\triangleq\)Br ǫ. Calcula el mensaje mr,m+3 yo = (ESIGi(outi), ESIGi(H(Br)), \(\sigma\)r,m+3 yo ), destruye su clave secreta efímera skr,m+3 yo y luego propaga mr,m+3 yo para certificar Br.b aCon una probabilidad abrumadora, BBA⋆ha terminado antes de este paso, y especificamos este paso para que esté completo. Un certificado b del Paso m + 3 no tiene que incluir ESIGi(outi). Lo incluimos sólo por uniformidad: el Los certificados ahora tienen un formato uniforme sin importar en qué paso se generen.Reconstrucción del bloque Round-r por parte de no verificadores Instrucciones para cada usuario i en el sistema: El usuario i comienza su propia ronda tan pronto como lo sepa. Br-1, y espera información del bloque de la siguiente manera. – Si, durante dicha espera y en cualquier momento, existe una cadena v y un paso s′ tal eso (a) 5 \(\leq\)s′ \(\leq\)m + 3 con s′ −2 ≡0 mod 3, (b) he recibido al menos tH mensajes válidos mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ), y (c) He recibido un mensaje válido mr,1 j = (Hermano j , esigj(H(Br j )), \(\sigma\)r,1 j ) con v = H(Br j), entonces, detengo su propia ejecución de la ronda r inmediatamente; establece Br = Br j; y establece su propio CERT r ser el conjunto de mensajes mr,s′−1 j del subpaso (b). – Si, durante dicha espera y en cualquier momento, existe un paso s′ tal que (a’) 6 \(\leq\)s′ \(\leq\)m + 3 con s′ −2 ≡1 mod 3, y (b’) he recibido al menos tH mensajes válidos mr,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ), entonces, detengo su propia ejecución de la ronda r inmediatamente; establece Br = Br ǫ; y establece su propio CERT r ser el conjunto de mensajes mr,s′−1 j del subpaso (b’). – Si, durante dicha espera y en cualquier momento, he recibido al menos tH mensajes válidos señor,m+3 j = (ESIGj(1), ESIGj(H(Br ǫ )), \(\sigma\)r,m+3 j ), entonces detengo su propia ejecución de la ronda r inmediatamente, establece Br = Br ǫ y establece su propio CERT r como el conjunto de mensajes mr,m+3 j por 1 y H(Br ǫ). 5.5 Análisis de Algorand ′ 1 Introducimos las siguientes notaciones para cada ronda r \(\geq\)0, utilizadas en el análisis. • Sea T r el momento en que el primer usuario honesto conoce Br−1. • Sea Ir+1 el intervalo [T r+1, T r+1 + \(\lambda\)]. Tenga en cuenta que T 0 = 0 por la inicialización del protocolo. Para cada s \(\geq\)1 y i \(\in\)SV r,s, recuerde que \(\alpha\)r, s yo y \(\beta\)r,s yo son respectivamente la hora de inicio y la hora de finalización de los pasos s del jugador i. Además, recuerde que ts = (2s −3)\(\lambda\) + Λ para cada 2 \(\leq\)s \(\leq\)m + 3. Además, sean I0 \(\triangleq\){0} y t1 \(\triangleq\)0. Finalmente, recuerde que Lr \(\leq\)m/3 es una variable aleatoria que representa el número de ensayos de Bernoulli. necesario para ver un 1, cuando cada prueba es 1 con probabilidad ph 2 y hay como máximo m/3 ensayos. si todo las pruebas fallan entonces Lr \(\triangleq\)m/3. En el análisis ignoramos el tiempo de cálculo, ya que de hecho es insignificante en relación con el tiempo necesario. para propagar mensajes. En cualquier caso, al usar \(\lambda\) y Λ ligeramente mayores, el tiempo de cálculo puede incorporarse directamente al análisis. La mayoría de las afirmaciones siguientes son válidas “con abrumadora probabilidad”, y es posible que no enfaticemos repetidamente este hecho en el análisis.5.6 Teorema principal Teorema 5.1. Las siguientes propiedades se mantienen con una probabilidad abrumadora para cada ronda r \(\geq\)0: 1. Todos los usuarios honestos coinciden en el mismo bloque Br. 2. Cuando el líder \(\ell\)r es honesto, el bloque Br es generado por \(\ell\)r, Br contiene un pago máximo recibido por \(\ell\)r por tiempo \(\alpha\)r,1 \(\ell\)r , T r+1 \(\leq\)T r + 8\(\lambda\) + Λ y todos los usuarios honestos conocen Br en el tiempo intervalo Ir+1. 3. Cuando el líder \(\ell\)r es malicioso, T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ y todos los usuarios honestos saben Br en el intervalo de tiempo Ir+1. 4. ph = h2(1 + h −h2) para Lr, y el líder \(\ell\)r es honesto con probabilidad al menos ph. Antes de demostrar nuestro teorema principal, hagamos dos observaciones. Observaciones. • Generación de bloques y latencia verdadera. El tiempo para generar el bloque Br se define como T r+1 −T r. Es decir, se define como la diferencia entre la primera vez que un usuario honesto aprende Br y la primera vez que un usuario honesto aprende Br−1. Cuando el líder de la ronda r es honesto, la Propiedad 2 es nuestra El teorema principal garantiza que el tiempo exacto para generar Br es 8\(\lambda\) + Λ tiempo, sin importar qué el valor preciso de h > 2/3 puede ser. Cuando el líder es malicioso, la Propiedad 3 implica que el El tiempo esperado para generar Br está limitado por ( 12 ph + 10)\(\lambda\) + Λ, de nuevo no importa la precisión valor de h.18 Sin embargo, el tiempo esperado para generar Br depende del valor preciso de h. De hecho, según la Propiedad 4, ph = h2(1 + h −h2) y el líder es honesto con probabilidad al menos ph, por lo tanto E[T r+1 −T r] \(\leq\)h2(1 + h −h2) \(\cdot\) (8\(\lambda\) + Λ) + (1 −h2(1 + h −h2))(( 12 h2(1 + h −h2) + 10)\(\lambda\) + Λ). Por ejemplo, si h = 80%, entonces E[T r+1 −T r] \(\leq\)12,7\(\lambda\) + Λ. • \(\lambda\) frente a Λ. Tenga en cuenta que el tamaño de los mensajes enviados por los verificadores en un paso Algorand ′ está dominado por la longitud de las claves de firma digital, que pueden permanecer fijas, incluso cuando el número de usuarios es enorme. También tenga en cuenta que, en cualquier paso s > 1, el mismo número esperado n de verificadores se puede utilizar ya sea que el número de usuarios sea 100K, 100M o 100M. Esto es así porque n únicamente depende de hy F. En resumen, por lo tanto, salvo una necesidad repentina de aumentar la longitud de la clave secreta, el valor de \(\lambda\) debe permanecer igual sin importar cuán grande sea el número de usuarios en el futuro previsible. Por el contrario, para cualquier tasa de transacción, el número de transacciones crece con el número de usuarios. Por lo tanto, para procesar todas las transacciones nuevas de manera oportuna, el tamaño de un bloque debe también crece con el número de usuarios, lo que hace que Λ también crezca. Por lo tanto, a largo plazo, deberíamos haber \(\lambda\) << Λ. En consecuencia, es apropiado tener un coeficiente mayor para \(\lambda\), y en realidad un coeficiente de 1 para Λ. Demostración del teorema 5.1. Probamos las propiedades 1 a 3 por inducción: suponiendo que se cumplan para la ronda r −1 (sin pérdida de generalidad, se cumplen automáticamente para la “ronda -1” cuando r = 0), los probamos para redondo r. 18Efectivamente, E[T r+1 −T r] \(\leq\)(6E[Lr] + 10)\(\lambda\) + Λ = (6 \(\cdot\) 2 ph + 10)\(\lambda\) + Λ = ( 12 ph + 10)\(\lambda\) + Λ.Dado que Br−1 está definido únicamente por la hipótesis inductiva, el conjunto SV r,s está definido únicamente para cada paso s de la ronda r. Por la elección de n1, SV r,1 ̸= \(\emptyset\) con abrumadora probabilidad. nosotros ahora Enuncie los siguientes dos lemas, demostrados en las Secciones 5.7 y 5.8. Durante toda la inducción y en En las pruebas de los dos lemas, el análisis de la ronda 0 es casi el mismo que el del paso inductivo, y resaltaremos las diferencias cuando ocurran. Lema 5.2. [Lema de integridad] Suponiendo que las propiedades 1 a 3 se mantienen para la ronda r-1, cuando el líder \(\ell\)r es honesto, con una probabilidad abrumadora, • Todos los usuarios honestos están de acuerdo en el mismo bloque Br, que es generado por \(\ell\)r y contiene un máximo pago recibido por \(\ell\)r en el momento \(\alpha\)r,1 \(\ell\)r \(\in\)Ir; y • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ y todos los usuarios honestos conocen Br en el intervalo de tiempo Ir+1. Lema 5.3. [Lema de solidez] Suponiendo que las propiedades 1 a 3 se mantienen para la ronda r −1, cuando el líder \(\ell\)r es malicioso, con una probabilidad abrumadora, todos los usuarios honestos coinciden en el mismo bloque Br, T r+1 \(\leq\) T r + (6Lr + 10)\(\lambda\) + Λ y todos los usuarios honestos conocen Br en el intervalo de tiempo Ir+1. Las propiedades 1 a 3 se mantienen aplicando los lemas 5.2 y 5.3 a r = 0 y al paso inductivo. Finalmente, Reformulamos la Propiedad 4 como el siguiente lema, demostrado en la Sección 5.9. Lema 5.4. Dadas las propiedades 1 a 3 para cada ronda antes de r, ph = h2(1 + h −h2) para Lr, y la El líder \(\ell\)r es honesto con probabilidad al menos ph. Combinando los tres lemas anteriores, se cumple el teorema 5.1. ■ El siguiente lema establece varias propiedades importantes sobre la ronda r dada la inductiva. hipótesis, y se utilizará en las pruebas de los tres lemas anteriores. Lema 5.5. Supongamos que las propiedades 1 a 3 se mantienen para la ronda r −1. Para cada paso s \(\geq\)1 de la ronda r y cada verificador honesto i \(\in\)HSV r,s, tenemos que (a) \(\alpha\)r,s yo \(\in\)Ir; (b) si el jugador i ha esperado una cantidad de tiempo ts, entonces \(\beta\)r,s yo \(\in\)[T r + ts, T r + \(\lambda\) + ts] para r > 0 y \(\beta\)r,s yo = ts para r = 0; y (c) si el jugador i ha esperado una cantidad de tiempo ts, entonces en el tiempo \(\beta\)r,s Yo, ha recibido todos los mensajes. enviado por todos los verificadores honestos j \(\in\)HSV r,s′ para todos los pasos s′ < s. Además, para cada paso s \(\geq\)3, tenemos que (d) no existen dos jugadores diferentes i, i′ \(\in\)SV r,s y dos valores diferentes v, v′ del mismo longitud, tal que ambos jugadores han esperado una cantidad de tiempo ts, más de 2/3 de todo el mensajes válidos mr,s−1 j El jugador que recibo ha firmado por v, y más de 2/3 de todos los válidos. mensajes señor, s-1 j El jugador que recibe i′ ha firmado por v′. Prueba. La propiedad (a) se deriva directamente de la hipótesis inductiva, ya que el jugador i conoce Br−1 en el intervalo de tiempo Ir y comienza sus propios pasos de inmediato. La propiedad (b) se sigue directamente de (a): ya que El jugador i ha esperado una cantidad de tiempo ts antes de actuar, \(\beta\)r,s. yo = \(\alpha\)r,s yo + ts. Tenga en cuenta que \(\alpha\)r,s yo = 0 para r = 0. Ahora demostramos la propiedad (c). Si s = 2, entonces por la Propiedad (b), para todos los verificadores j \(\in\)HSV r,1 tenemos \(\beta\)r,s yo = \(\alpha\)r,s yo + ts \(\geq\)T r + ts = T r + \(\lambda\) + Λ \(\geq\) \(\beta\)r,1 j + Λ.Dado que cada verificador j \(\in\)HSV r,1 envía su mensaje en el tiempo \(\beta\)r,1 j y el mensaje llega a todos los honestos usuarios en como máximo Λ tiempo, por tiempo \(\beta\)r,s yo jugador he recibido los mensajes enviados por todos los verificadores en HSV r,1 como se desee. Si s > 2, entonces ts = ts−1 + 2\(\lambda\). Por la propiedad (b), para todos los pasos s′ < s y todos los verificadores j \(\in\)HSV r,s′, \(\beta\)r,s yo = \(\alpha\)r,s yo + ts \(\geq\)T r + ts = T r + ts−1 + 2\(\lambda\) \(\geq\)T r + ts′ + 2\(\lambda\) = T r + \(\lambda\) + ts′ + \(\lambda\) \(\geq\) \(\beta\)r,s′ j + \(\lambda\). Dado que cada verificador j \(\in\)HSV r,s′ envía su mensaje en el instante \(\beta\)r,s′ j y el mensaje llega a todos los honestos usuarios en como máximo \(\lambda\) tiempo, por tiempo \(\beta\)r,s yo jugador he recibido todos los mensajes enviados por todos los verificadores honestos en HSV r,s′ para todos s′ < s. Por tanto, se cumple la propiedad (c). Finalmente, demostramos la propiedad (d). Tenga en cuenta que los verificadores j \(\in\)SV r,s−1 firman como máximo dos cosas en Paso s −1 usando sus claves secretas efímeras: un valor vj de la misma longitud que la salida del hash función, y también un poco bj \(\in\){0, 1} si s −1 \(\geq\)4. Por eso en el enunciado del lema requerimos que v y v′ tengan la misma longitud: muchos verificadores pueden haber firmado ambos un valor hash v y un bit b, por lo que ambos pasan el umbral de 2/3. Supongamos, en aras de la contradicción, que existen los verificadores deseados i, i′ y los valores v, v′. Tenga en cuenta que algunos verificadores maliciosos en MSV r,s−1 pueden haber firmado tanto v como v′, pero cada uno honesto El verificador en HSV r,s−1 ha firmado como máximo uno de ellos. Por la propiedad (c), tanto i como i′ han recibido todos los mensajes enviados por todos los verificadores honestos en HSV r,s−1. Sea HSV r,s−1(v) el conjunto de verificadores (r, s −1) honestos que han firmado v, MSV r,s−1 yo el conjunto de verificadores (r, s −1) maliciosos de los cuales he recibido un mensaje válido, y MSV r,s−1 yo (v) el subconjunto de MSV r,s−1 yo de quien he recibido una firma de mensaje válida v. Por los requisitos para i y v, tenemos relación \(\triangleq\)|HSV r,s−1(v)| + |VMS r,s−1 yo (v)| |VHS r,s−1| + |VMS r,s−1 yo |

2 3. (1) Primero mostramos |VMS r,s−1 yo (v)| \(\leq\)|VHS r,s−1(v)|. (2) Suponiendo lo contrario, por las relaciones entre los parámetros, con una probabilidad abrumadora |VHS r,s−1| > 2|MSV r,s−1| \(\geq\)2|VSM r,s−1 yo |, por lo tanto relación < |HSV r,s−1(v)| + |VMS r,s−1 yo (v)| 3|VSM r,s−1 yo | < 2|MSV r,s−1 yo (v)| 3|VSM r,s−1 yo | \(\leq\)2 3, Contradicción con la desigualdad 1. A continuación, por la desigualdad 1 tenemos 2|VHS r,s−1| + 2|MSV r,s−1 yo | < 3|VHS r,s−1(v)| + 3|MSV r,s−1 yo (v)| \(\leq\) 3|VHS r,s−1(v)| + 2|MSV r,s−1 yo | + |VMS r,s−1 yo (v)|. Combinando con la desigualdad 2, 2|VHS r,s−1| < 3|VHS r,s−1(v)| + |VMS r,s−1 yo (v)| \(\leq\)4|VHS r,s−1(v)|, lo que implica |VHS r,s−1(v)| > 1 2|VHS r,s−1|.De manera similar, por los requisitos para i′ y v′, tenemos |VHS r,s−1(v′)| > 1 2|VHS r,s−1|. Dado que un verificador honesto j \(\in\)HSV r,s−1 destruye su efímera clave secreta skr,s−1 j antes de propagar En su mensaje, el Adversario no puede falsificar la firma de j por un valor que j no firmó, después aprender que j es un verificador. Por lo tanto, las dos desigualdades anteriores implican |HSV r,s−1| \(\geq\)|VHS r,s−1(v)| + |VHS r,s−1(v′)| > |HSV r,s−1|, una contradicción. En consecuencia, los i, i′, v, v′ deseados no existen, y La propiedad (d) se mantiene. ■ 5.7 El lema de la completitud Lema 5.2. [Lema de integridad, reformulado] Suponiendo que las propiedades 1–3 se mantienen para la ronda r−1, cuando el líder \(\ell\)r es honesto, con una probabilidad abrumadora, • Todos los usuarios honestos están de acuerdo en el mismo bloque Br, que es generado por \(\ell\)r y contiene un máximo pago recibido por \(\ell\)r en el momento \(\alpha\)r,1 \(\ell\)r \(\in\)Ir; y • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ y todos los usuarios honestos conocen Br en el intervalo de tiempo Ir+1. Prueba. Según la hipótesis inductiva y el Lema 5.5, para cada paso s y verificador i \(\in\)HSV r,s, \(\alpha\)r, s yo \(\in\)Ir. A continuación analizamos el protocolo paso a paso. Paso 1. Por definición, todo verificador honesto i \(\in\)HSV r,1 propaga el mensaje deseado mr,1 yo en tiempo \(\beta\)r,1 yo = \(\alpha\)r,1 yo, donde señor,1 yo = (Hermano yo , esigi(H(Br i )), \(\sigma\)r,1 yo), hermano i = (r, PAGAR r i , SIGi(Qr−1), H(Br−1)), y PAGAR r i es un conjunto de pagos máximo entre todos los pagos que i ha visto en el tiempo \(\alpha\)r,1 yo. Paso 2. Fijar arbitrariamente un verificador honesto i \(\in\)HSV r,2. Según el Lema 5.5, cuando el jugador i termina esperando en el momento \(\beta\)r,2 yo = \(\alpha\)r,2 yo + t2, ha recibido todos los mensajes enviados por los verificadores en HSV r,1, incluidos señor, 1 \(\ell\)r. Según la definición de \(\ell\)r, no existe otro jugador en PKr−k cuya credencial sea hash el valor es menor que H(\(\sigma\)r,1 \(\ell\)r). Por supuesto, el Adversario puede corromper a \(\ell\)r después de ver que H(\(\sigma\)r,1 \(\ell\)r) es muy pequeño, pero para entonces el jugador \(\ell\)r ha destruido su clave efímera y el mensaje mr,1 \(\ell\)r ha sido propagado. Por lo tanto, el verificador i establece que su propio líder sea el jugador \(\ell\)r. En consecuencia, en el momento \(\beta\)r,2 yo, verificador i propaga mr,2 yo = (ESIGi(v′ i), \(\sigma\)r,2 i ), donde v′ yo = H(Br \(\ell\)r). Cuando r = 0, la única diferencia es que \(\beta\)r,2 yo = t2 en lugar de estar en un rango. Se pueden decir cosas similares para pasos futuros y No los enfatizaré nuevamente. Paso 3. Fijar arbitrariamente un verificador honesto i \(\in\)HSV r,3. Según el Lema 5.5, cuando el jugador i termina esperando en el momento \(\beta\)r,3 yo = \(\alpha\)r,3 yo + t3, ha recibido todos los mensajes enviados por los verificadores en HSV r,2. Por las relaciones entre los parámetros, con abrumadora probabilidad |HSV r,2| > 2|MSV r,2|. Además, ningún verificador honesto firmaría mensajes contradictorios, y el Adversario no puede falsificar la firma de un verificador honesto después de que éste haya destruido su correspondiente clave secreta efímera. Por lo tanto, más de 2/3 de todos los mensajes (r, 2) válidos que he recibido son de verificadores honestos y de la forma mr,2 j = (ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,2 j ), sin contradicción. En consecuencia, en el momento \(\beta\)r,3 yo jugador que propaga mr,3 yo = (ESIGi(v′), \(\sigma\)r,3 i ), donde v′ = H(Br \(\ell\)r).Paso 4. Fijar arbitrariamente un verificador honesto i \(\in\)HSV r,4. Según el Lema 5.5, el jugador i ha recibido todos mensajes enviados por los verificadores en HSV r,3 cuando termina de esperar en el momento \(\beta\)r,4 yo = \(\alpha\)r,4 yo +t4. Similar a Paso 3, más de 2/3 de todos los mensajes (r, 3) válidos que he recibido son de verificadores honestos y de la forma señor,3 j = (ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,3 j). En consecuencia, el jugador i establece vi = H(Br \(\ell\)r), gi = 2 y bi = 0. En el momento \(\beta\)r,4 yo = \(\alpha\)r,4 yo +t4 se propaga señor,4 yo = (ESIGi(0), ESIGi(H(Br \(\ell\)r)), \(\sigma\)r,4 yo). Paso 5. Fijar arbitrariamente un verificador honesto i \(\in\)HSV r,5. Según el Lema 5.5, el jugador que tendría recibido todos los mensajes enviados por los verificadores en HSV r,4 si ha esperado hasta el momento \(\alpha\)r,5 yo +t5. Tenga en cuenta que |VHS r,4| \(\geq\)tH.19 También tenga en cuenta que todos los verificadores en HSV r,4 han firmado para H(Br \(\ell\)r). Como |MSV r,4| < tH, no existe v′ ̸= H(Br \(\ell\)r) que podría haber sido firmado por tH verificadores en SV r,4 (que necesariamente serían maliciosos), por lo que el jugador i no se detiene antes de haber recibido mensajes válidos mr,4 j = (ESIGj(0), ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,4 j). Sea T el momento en que ocurre este último evento. Algunos de esos mensajes pueden ser de jugadores malintencionados, pero debido a |MSV r,4| < tH, al menos uno de ellos es de un verificador honesto en HSV r,4 y se envía después de un tiempo T r +t4. En consecuencia, T \(\geq\)T r +t4 > T r +\(\lambda\)+Λ \(\geq\) \(\beta\)r,1 \(\ell\)r +Λ, y para cuando T el jugador i también haya recibido el mensaje señor,1 \(\ell\)r. Según la construcción del protocolo, el jugador i se detiene en el momento \(\beta\)r,5 yo = T sin propagar cualquier cosa; establece Br = Br \(\ell\)r; y establece su propio CERT r como el conjunto de (r, 4) mensajes para 0 y H(Br \(\ell\)r) que ha recibido. Paso s > 5. De manera similar, para cualquier paso s > 5 y cualquier verificador i \(\in\)HSV r,s, el jugador i tendría recibido todos los mensajes enviados por los verificadores en HSV r,4 si ha esperado hasta el momento \(\alpha\)r,s yo + ts. por el Mismo análisis, el jugador i se detiene sin propagar nada, estableciendo Br = Br \(\ell\)r (y estableciendo el suyo propio CERT r correctamente). Por supuesto, es posible que los verificadores maliciosos no se detengan y propaguen datos arbitrarios. mensajes, sino porque |MSV r,s| < tH, por inducción ningún otro v′ podría ser firmado por los verificadores tH en cualquier paso 4 \(\leq\)s′ < s, por lo tanto los verificadores honestos sólo se detienen porque han recibido tH válido (r, 4) -mensajes para 0 y H(Br) \(\ell\)r). Reconstrucción del Bloque Ronda-r. El análisis del Paso 5 se aplica a un honesto genérico. usuario i casi sin ningún cambio. De hecho, el jugador i comienza su propia ronda r en el intervalo Ir y sólo se detendrá en un momento T cuando haya recibido tH mensajes (r, 4) válidos para H(Br) \(\ell\)r). otra vez porque al menos uno de esos mensajes es de verificadores honestos y se envía después del tiempo T r + t4, el jugador i tiene también recibió mr,1 \(\ell\)r por el tiempo T. Así establece Br = Br \(\ell\)r con el CERT r adecuado. Sólo queda demostrar que todos los usuarios honestos terminan su ronda r dentro del intervalo de tiempo Ir+1. Según el análisis del Paso 5, todo verificador honesto i \(\in\)HSV r,5 conoce Br en o antes de \(\alpha\)r,5 yo + t5 \(\leq\) Tr + \(\lambda\) + t5 = Tr + 8\(\lambda\) + Λ. Dado que T r+1 es el momento en que el primer usuario honesto conoce Br, tenemos Tr+1 \(\leq\)Tr + 8\(\lambda\) + Λ como se desee. Además, cuando el jugador conoce a Br, ya ha ayudado a propagar los mensajes en su CERT r. Tenga en cuenta que todos esos mensajes serán recibidos por todos los usuarios honestos dentro del tiempo \(\lambda\), incluso si 19Estrictamente hablando, esto sucede con una probabilidad muy alta pero no necesariamente abrumadora. Sin embargo, esto La probabilidad afecta ligeramente el tiempo de ejecución del protocolo, pero no afecta su corrección. Cuando h = 80%, entonces |VHS r,4| \(\geq\)tH con probabilidad 1 −10−8. Si este evento no ocurre, entonces el protocolo continuará por otro 3 pasos. Como la probabilidad de que esto no ocurra en dos pasos es insignificante, el protocolo terminará en el Paso 8. En Como se esperaba, entonces, el número de pasos necesarios es casi 5.El jugador fue el primero en propagarlos. Además, siguiendo el análisis anterior tenemos Tr+1 \(\geq\)Tr + t4 \(\geq\) \(\beta\)r,1 \(\ell\)r + Λ, por lo tanto todos los usuarios honestos han recibido mr,1 \(\ell\)r por tiempo T r+1 + \(\lambda\). En consecuencia, todos los usuarios honestos conocen Br en el intervalo de tiempo Ir+1 = [T r+1, T r+1 + \(\lambda\)]. Finalmente, para r = 0 en realidad tenemos T 1 \(\leq\)t4 + \(\lambda\) = 6\(\lambda\) + Λ. Combinando todo junto, El lema 5.2 se cumple. ■ 5.8 El lema de la solidez Lema 5.3. [Lema de solidez, reformulado] Suponiendo que las propiedades 1 a 3 se mantienen para la ronda r −1, cuando el líder \(\ell\)r es malicioso, con una probabilidad abrumadora, todos los usuarios honestos coinciden en el mismo bloque Br, T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ y todos los usuarios honestos conocen Br en el intervalo de tiempo Ir+1. Prueba. Consideramos las dos partes del protocolo, GC y BBA⋆, por separado. GC. Por la hipótesis inductiva y por el Lema 5.5, para cualquier paso s \(\in\){2, 3, 4} y cualquier paso honesto verificador i \(\in\)HSV r,s, cuando el jugador i actúa en el momento \(\beta\)r,s yo = \(\alpha\)r,s yo + ts, ha recibido todos los mensajes enviados por todos los verificadores honestos en los pasos s′ < s. Distinguimos dos posibles casos para el paso 4. Caso 1. Ningún verificador i \(\in\)HSV r,4 establece gi = 2. En este caso, por definición bi = 1 para todos los verificadores i \(\in\)HSV r,4. Es decir, comienzan con un acuerdo sobre 1 en el protocolo binario BA. Es posible que no tengan un acuerdo sobre sus vi, pero esto no importa como veremos en el binario BA. Caso 2. Existe un verificador ˆi \(\in\)HSV r,4 tal que gˆi = 2. En este caso demostramos que (1) gi \(\geq\)1 para todo i \(\in\)HSV r,4, (2) existe un valor v′ tal que vi = v′ para todo i \(\in\)HSV r,4, y (3) existe un mensaje válido mr,1 \(\ell\) de algún verificador \(\ell\) \(\in\)SV r,1 tal que v′ = H(Br \(\ell\)). De hecho, dado que el jugador ˆi es honesto y establece gˆi = 2, más de 2/3 de todos los mensajes válidos mr,3 j ha recibido son por el mismo valor v′ ̸= \(\bot\), y ha puesto vˆi = v′. Por la Propiedad (d) en el Lema 5.5, para cualquier otro verificador (r, 4) i honesto, no puede ser más de 2/3 de todos los mensajes válidos mr,3 j que i′ ha recibido son del mismo valor v′′ ̸= v′. En consecuencia, si i establece gi = 2, debe ser que i también ha visto > 2/3 de la mayoría para v′ y establece vi = v′, como se desee. Consideremos ahora un verificador arbitrario i \(\in\)HSV r,4 con gi < 2. Similar al análisis de Propiedad (d) en el Lema 5.5, debido a que el jugador ˆi ha visto > 2/3 de mayoría para v′, más de 1 2|VHS r,3| honesto (r, 3)-los verificadores han firmado v′. Porque he recibido todos los mensajes de verificadores honestos (r, 3) de tiempo \(\beta\)r,4 yo = \(\alpha\)r,4 yo + t4, en particular ha recibido más de 1 2|VHS r,3| mensajes de ellos para v′. Porque |HSV r,3| > 2|MSV r,3|, i ha visto > 1/3 de mayoría para v′. En consecuencia, jugador i establece gi = 1 y se cumple la propiedad (1). ¿El jugador i necesariamente establece vi = v′? Supongamos que existe un valor diferente v′′ ̸= \(\bot\)tal que El jugador i también ha visto > 1/3 de mayoría para v′′. Algunos de esos mensajes pueden ser de origen malicioso. verificadores, pero al menos uno de ellos es de algún verificador honesto j \(\in\)HSV r,3: de hecho, porque |VHS r,3| > 2|MSV r,3| y he recibido todos los mensajes de HSV r,3, el conjunto de malware Los verificadores de quienes he recibido un mensaje (r, 3) válido cuentan para < 1/3 de todos los válidos. mensajes que ha recibido.Por definición, el jugador j debe haber visto > 2/3 de la mayoría para v′′ entre todos los mensajes (r, 2) válidos. él ha recibido. Sin embargo, ya sabemos que algunos otros verificadores honestos (r, 3) han visto 2/3 de mayoría para v′ (porque firmaron v′). Según la propiedad (d) del Lema 5.5, esto no puede sucede y tal valor v′′ no existe. Por lo tanto, el jugador i debe haber configurado vi = v′ como deseaba, y la propiedad (2) se mantiene. Finalmente, dado que algunos verificadores honestos (r, 3) han visto > 2/3 de mayoría para v′, algunos (en realidad, más de la mitad de los verificadores (r, 2) honestos firmaron por v′ y propagaron sus mensajes. Según la construcción del protocolo, aquellos verificadores (r, 2) honestos deben haber recibido una evaluación válida. mensaje señor,1 \(\ell\) de algún jugador \(\ell\) \(\in\)SV r,1 con v′ = H(Br \(\ell\)), por lo que se cumple la propiedad (3). BBA⋆. Nuevamente distinguimos dos casos. Caso 1. Todos los verificadores i \(\in\)HSV r,4 tienen bi = 1. Esto sucede siguiendo el Caso 1 del CG. Como |MSV r,4| < tH, en este caso no hay verificador en SV r,5 podría recopilar o generar tH mensajes (r, 4) válidos para el bit 0. Por lo tanto, no hay ningún verificador honesto en HSV r,5 Se detendría porque conoce un bloque que no está vacío. Además, aunque hay al menos tH mensajes (r, 4) válidos para el bit 1, s′ = 5 no satisface s′ −2 ≡1 mod 3, por lo tanto ningún verificador honesto en HSV r,5 se detendría porque sabe Br = Br ǫ. En cambio, cada verificador i \(\in\)HSV r,5 actúa en el momento \(\beta\)r,5 yo = \(\alpha\)r,5 yo + t5, cuando haya recibido todo mensajes enviados por HSV r,4 siguiendo el Lema 5.5. Así, el jugador i ha visto > 2/3 de mayoría para 1 y establece bi = 1. En el paso 6, que es un paso de moneda fijada en 1, aunque s′ = 5 satisface s′ −2 ≡0 mod 3, hay no existen mensajes (r, 4) válidos para el bit 0, por lo que ningún verificador en HSV r,6 se detendría porque él conoce un bloque no vacío Br. Sin embargo, con s′ = 6, s′ −2 ≡1 mod 3 y existen |VHS r,5| \(\geq\)tH mensajes válidos (r, 5) para el bit 1 de HSV r,5. Para cada verificador i \(\in\)HSV r,6, siguiendo el Lema 5.5, en o antes del tiempo \(\alpha\)r,6 yo + t6 jugador i ha recibido todos los mensajes de HSV r,5, por lo tanto me detengo sin propagar nada y configuro Br = Br ǫ. Su CERT r es el conjunto de tH mensajes (r, 5) válidos mr,5 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 j) recibido por él cuando se detiene. A continuación, deje que el jugador i sea un verificador honesto en un paso s > 6 o un usuario honesto genérico (es decir, no verificador). De manera similar a la prueba del Lema 5.2, el jugador i establece Br = Br ǫ y establece el suyo CERT r será el conjunto de tH mensajes (r, 5) válidos mr,5 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 j) él tiene recibido. Finalmente, similar al Lema 5.2, Tr+1 \(\leq\) mín. i\(\in\)HSV r,6 \(\alpha\)r,6 yo + t6 \(\leq\)T r + \(\lambda\) + t6 = T r + 10\(\lambda\) + Λ, y todos los usuarios honestos conocen Br en el intervalo de tiempo Ir+1, porque el primer usuario honesto que Sabe que Br ha ayudado a propagar los mensajes (r, 5) en su CERT r. Caso 2. Existe un verificador ˆi \(\in\)HSV r,4 con bˆi = 0. Esto sucede después del Caso 2 de GC y es el caso más complejo. Según el análisis de GC, en este caso existe un mensaje válido mr,1 \(\ell\) tal que vi = H(Br \(\ell\)) para todo i \(\in\)HSV r,4. Nota que los verificadores en HSV r,4 pueden no tener un acuerdo sobre sus bi. Para cualquier paso s \(\in\){5, . . . , m + 3} y verificador i \(\in\)HSV r,s, por el Lema 5.5 jugador i habría recibió todos los mensajes enviados por todos los verificadores honestos en HSV r,4 \(\cup\) \(\cdots\) \(\cup\)HSV r,s−1 si ha esperado por tiempo ts.Consideremos ahora el siguiente evento E: existe un paso s∗\(\geq\)5 tal que, por primera vez tiempo en el binario BA, algún jugador i∗\(\in\)SV r,s∗ (ya sea malicioso u honesto) debería detenerse sin propagar nada. Usamos “should stop” para enfatizar el hecho de que, si el jugador i∗ es malicioso, entonces puede fingir que no debe detenerse según el protocolo y propagar mensajes elegidos por el adversario. Además, según la construcción del protocolo, ya sea (E.a) i∗es capaz de recopilar o generar al menos tH mensajes válidos mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ) para los mismos v y s′, con 5 \(\leq\)s′ \(\leq\)s∗ y s′ −2 ≡0 mod 3; o (E.b) i∗es capaz de recopilar o generar al menos tH mensajes válidos mr,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ) para el mismo s′, con 6 \(\leq\)s′ \(\leq\)s∗ y s′ −2 ≡1 mod 3. Porque los mensajes honestos (r, s′ −1) son recibidos por todos los verificadores (r, s′) honestos antes de han terminado de esperar en los Pasos s′, y debido a que el Adversario recibe todo a más tardar el Usuarios honestos, sin pérdida de generalidad tenemos s′ = s∗ y el jugador i∗ es malicioso. Tenga en cuenta que No requerimos que el valor v en E.a sea el hash de un bloque válido: como quedará claro en el análisis, v = H(Br \(\ell\)) en este subevento. A continuación analizamos primero el caso 2 después del evento E, y luego mostramos que el valor de s∗es esencialmente distribuido en consecuencia a Lr (por lo tanto, el evento E ocurre antes del Paso m + 3 con abrumador probabilidad dadas las relaciones de los parámetros). Para empezar, para cualquier paso 5 \(\leq\)s < s∗, cada verificador honesto i \(\in\)HSV r,s ha esperado el tiempo ts y ha establecido vi como el voto mayoritario de la mensajes (r, s−1) válidos que ha recibido. Desde que el jugador i recibió todos los mensajes honestos (r, s−1) siguiendo el Lema 5.5, ya que todos los verificadores honestos en HSV r,4 han firmado H(Br \(\ell\)) siguiente caso 2 de GC, y desde |HSV r,s−1| > 2|MSV r,s−1| para cada s, por inducción tenemos ese jugador i ha establecido vi = H(Br \(\ell\)). Lo mismo vale para todo verificador honesto i \(\in\)HSV r,s∗ que no se detiene sin propagar cualquier cosa. Ahora consideramos el Paso s∗ y distinguimos cuatro subcasos. Caso 2.1.a. El evento E.a ocurre y existe un verificador honesto i′ \(\in\)HSV r,s∗ que debería También parar sin propagar nada. En este caso, tenemos s∗−2 ≡0 mod 3 y el Paso s∗ es un paso Coin-Fixed-To-0. Por definición, el jugador i′ ha recibido al menos tH mensajes (r, s∗−1) válidos de la forma (ESIGj(0), ESIGj(v), \(\sigma\)r,s∗−1 j ). Dado que todos los verificadores en HSV r,s∗−1 han firmado H(Br \(\ell\)) y |MSV r,s∗−1| < tH, tenemos v = H(Br \(\ell\)). Dado que al menos tH −|MSV r,s∗−1| \(\geq\)1 de los (r, s∗−1)-mensajes recibidos por i′ para 0 y v son enviados por verificadores en HSV r,s∗−1 después del tiempo T r +ts∗−1 \(\geq\)T r +t4 \(\geq\)T r +\(\lambda\)+Λ \(\geq\) \(\beta\)r,1 \(\ell\) +Λ, jugador i′ ha recibido mr,1 \(\ell\) en el momento en que recibe esos (r, s∗−1)-mensajes. Así jugador i′ se detiene sin propagar nada; establece Br = Br \(\ell\); y establece su propio CERT r como el conjunto de mensajes válidos (r, s∗−1) para 0 y v que ha recibido. A continuación, demostramos que cualquier otro verificador i \(\in\)HSV r,s∗ se ha detenido en Br = Br \(\ell\), o ha establecido bi = 0 y propagado (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s yo). De hecho, porque el Paso s∗ es la primera vez que algún verificador debe detenerse sin propagar nada, no existe un paso s′ < s∗ con s′ −2 ≡1 mod 3 tal que tH (r, s′ −1)-verificadores tengan signo 1. En consecuencia, ningún verificador en HSV r,s∗ se detiene con Br = Br ǫ.Además, como todos los verificadores honestos en los pasos {4, 5, . . . , s∗−1} han firmado H(Br \(\ell\)), no hay no existe un paso s′ \(\leq\)s∗ con s′ −2 ≡0 mod 3 tal que tH (r, s′ −1)-verificadores hayan firmado algunos v′′ ̸= H(Br \(\ell\)) —de hecho, |MSV r,s′−1| < tH. En consecuencia, ningún verificador en HSV r,s∗se detiene con Br ̸= Br ǫ y Br ̸= Br \(\ell\). Es decir, si un jugador i \(\in\)HSV r,s∗ se ha detenido sin propagando cualquier cosa, debe haber establecido Br = Br \(\ell\). Si un jugador i \(\in\)HSV r,s∗ ha esperado el tiempo ts∗ y ha propagado un mensaje en el tiempo \(\beta\)r,s∗ yo = \(\alpha\)r,s∗ yo + ts∗, ha recibido todos los mensajes de HSV r,s∗−1, incluyendo al menos tH −|MSV r,s∗−1| de ellos para 0 y v. Si he visto > 2/3 de mayoría por 1, entonces él ha visto más de 2(tH −|MSV r,s∗−1|) (r, s∗−1)-mensajes válidos para 1, con más que 2tH −3|MSV r,s∗−1| de ellos de verificadores (r, s∗−1) honestos. Sin embargo, esto implica |VHS r,s∗−1| \(\geq\)tH−|MSV r,s∗−1|+2tH−3|MSV r,s∗−1| > 2n−4|MSV r,s∗−1|, contradiciendo el hecho de que |VHS r,s∗−1| + 4|MSV r,s∗−1| < 2n, que proviene de las relaciones de los parámetros. En consecuencia, no veo > 2/3 mayoría para 1, y establece bi = 0 porque el paso s∗ es un paso fijado con moneda a 0. como tenemos visto, vi = H(Br \(\ell\)). Así i propaga (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s i ) como queríamos espectáculo. Para el Paso s∗+ 1, dado que el jugador i′ ha ayudado a propagar los mensajes en su CERT r en o antes del tiempo \(\alpha\)r,s∗ yo' + ts∗, todos los verificadores honestos en HSV r,s∗+1 han recibido al menos tH mensajes válidos (r, s∗−1) para el bit 0 y el valor H(Br \(\ell\)) en o antes de que hayan terminado esperando. Además, los verificadores en HSV r,s∗+1 no se detendrán antes de recibir aquellos (r, s∗−1)- mensajes, porque no existe ningún otro tH válido (r, s′ −1)-mensajes para el bit 1 con s′ −2 ≡1 mod 3 y 6 \(\leq\)s′ \(\leq\)s∗+ 1, según la definición del Paso s∗. En particular, paso s∗+ 1 en sí mismo es un paso Coin-Fixed-To-1, pero no se ha propagado ningún verificador honesto en HSV r,s∗ un mensaje para 1, y |MSV r,s∗| < tH. Así, todos los verificadores honestos en HSV r,s∗+1 se detienen sin propagar nada y establecen Br = hermano \(\ell\): como antes, han recibido mr,1 \(\ell\) antes de recibir los mensajes (r, s∗−1) deseados.20 Lo mismo puede decirse de todos los verificadores honestos en pasos futuros y de todos los usuarios honestos en general. En particular, todos saben Br = Br \(\ell\) dentro del intervalo de tiempo Ir+1 y Tr+1 \(\leq\) \(\alpha\)r,s∗ yo' + ts∗\(\leq\)T r + \(\lambda\) + ts∗. Caso 2.1.b. El evento E.b ocurre y existe un verificador honesto i′ \(\in\)HSV r,s∗ que debería También parar sin propagar nada. En este caso tenemos s∗−2 ≡1 mod 3 y el paso s∗ es un paso fijo con moneda a 1. El análisis es similar al Caso 2.1.a y se han omitido muchos detalles. 20 Si \(\ell\) es malicioso, podría enviar al señor 1 \(\ell\) tarde, esperando que algunos usuarios/verificadores honestos no hayan recibido mr,1 \(\ell\) todavía cuando reciban el certificado deseado para ello. Sin embargo, dado que el verificador ˆi \(\in\)HSV r,4 ha establecido bˆi = 0 y vˆi = H(Br \(\ell\)), como antes tenemos que más de la mitad de los verificadores honestos i \(\in\)HSV r,3 han fijado vi = H(Br \(\ell\)). Esto implica además más de la mitad de los verificadores honestos i \(\in\)HSV r,2 han fijado vi = H(Br \(\ell\)), y todos esos verificadores (r, 2) han recibido mr,1 \(\ell\). como el El adversario no puede distinguir a un verificador de un no verificador, no puede apuntar a la propagación de mr,1 \(\ell\) a (r, 2)-verificadores sin que los no verificadores lo vean. De hecho, con alta probabilidad, más de la mitad (o una buena fracción constante) de todos los usuarios honestos han visto mr,1 \(\ell\) después de esperar t2 desde el comienzo de su propia ronda r. De aquí en adelante, el tiempo \(\lambda\)′ necesario para mr,1 \(\ell\) para llegar a los usuarios honestos restantes es mucho menor que Λ, y por simplicidad no escríbalo en el análisis. Si 4\(\lambda\) \(\geq\) \(\lambda\)′ entonces el análisis se realiza sin ningún cambio: al final del Paso 4, todos los usuarios honestos habrían recibido mr,1 \(\ell\). Si el tamaño del bloque se vuelve enorme y 4\(\lambda\) < \(\lambda\)′, entonces en los Pasos 3 y 4, el protocolo podría pedir a cada verificador que esperara \(\lambda\)′/2 en lugar de 2\(\lambda\), y el análisis continúa manteniéndose.Como antes, el jugador i′ debe haber recibido al menos tH mensajes (r, s∗−1) válidos de la forma (ESIGj(1), ESIGj(vj), \(\sigma\)r,s∗−1 j ). Nuevamente por la definición de s∗, no existe un paso 5 \(\leq\)s′ < s∗con s′ −2 ≡0 mod 3, donde al menos tH (r, s′ −1)-verificadores tienen signo 0 y lo mismo v. Así el jugador i′ se detiene sin propagar nada; establece Br = Br ǫ; y conjuntos su propio CERT r es el conjunto de mensajes (r, s∗−1) válidos para el bit 1 que ha recibido. Además, cualquier otro verificador i \(\in\)HSV r,s∗ se ha detenido en Br = Br ǫ , o ha puesto bi = 1 y propagado (ESIGi(1), ESIGi(vi), \(\sigma\)r,s∗ yo ). Dado que el jugador i′ ha ayudado a propagar los mensajes (r, s∗−1) en su CERT r en el tiempo \(\alpha\)r,s∗ yo' + ts∗, nuevamente todos los verificadores honestos en HSV r,s∗+1 se detiene sin propagar nada y establece Br = Br ǫ . Del mismo modo, todo honesto. los usuarios saben Br = Br ǫ dentro del intervalo de tiempo Ir+1 y Tr+1 \(\leq\) \(\alpha\)r,s∗ yo' + ts∗\(\leq\)T r + \(\lambda\) + ts∗. Caso 2.2.a. El evento E.a ocurre y no existe un verificador honesto i′ \(\in\)HSV r,s∗que También debería parar sin propagar nada. En este caso, tenga en cuenta que el jugador i∗ podría tener un CERT r válido i∗compuesto por el tH deseado (r, s∗−1) -mensajes que el Adversario puede recopilar o generar. Sin embargo, los maliciosos Es posible que los verificadores no ayuden a propagar esos mensajes, por lo que no podemos concluir que la información honesta los usuarios los recibirán en el tiempo \(\lambda\). De hecho, |MSV r,s∗−1| de esos mensajes pueden ser de verificadores maliciosos (r, s∗−1), que no propagaron sus mensajes en absoluto y solo enviaron a los verificadores maliciosos en el paso s∗. Similar al Caso 2.1.a, aquí tenemos s∗−2 ≡0 mod 3, el Paso s∗ es un paso Coin-Fixed-To-0, y los mensajes (r, s∗−1) en CERT r i∗son para el bit 0 y v = H(Br \(\ell\)). De hecho, todo honesto Los verificadores (r, s∗−1) firman v, por lo que el adversario no puede generar tH mensajes (r, s∗−1) válidos. para una v′ diferente. Además, todos los verificadores (r, s∗) honestos han esperado el tiempo ts∗ y no ven > 2/3 de la mayoría para el bit 1, nuevamente porque |HSV r,s∗−1| + 4|MSV r,s∗−1| < 2n. Así, todo verificador honesto i \(\in\)HSV r,s∗conjuntos bi = 0, vi = H(Br \(\ell\)) por mayoría de votos, y propaga mr,s∗ yo = (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s∗ yo ) en el momento \(\alpha\)r,s∗ yo + ts∗. Consideremos ahora los verificadores honestos en el paso s∗+ 1 (que es un paso de moneda fijada en 1). si el El adversario realmente envía los mensajes en CERT r i∗a algunos de ellos y les hace detenerse, entonces similar al Caso 2.1.a, todos los usuarios honestos saben Br = Br \(\ell\)dentro del intervalo de tiempo Ir+1 y Tr+1 \(\leq\)Tr + \(\lambda\) + ts∗+1. De lo contrario, todos los verificadores honestos en el Paso s∗+1 han recibido todos los mensajes (r, s∗) para 0 y H(Br \(\ell\)) de HSV r,s∗después del tiempo de espera ts∗+1, lo que conduce a una mayoría > 2/3, porque |VHS r,s∗| > 2|MSV r,s∗|. Así, todos los verificadores en HSV r,s∗+1 propagan sus mensajes para 0 y H(Br \(\ell\)) en consecuencia. Tenga en cuenta que los verificadores en HSV r,s∗+1 no se detienen en Br = Br \(\ell\), porque el paso s∗+ 1 no es un paso de moneda fijada a 0. Consideremos ahora los verificadores honestos en el paso s∗+2 (que es un paso de moneda genuinamente lanzada al aire). Si el Adversario envía los mensajes en CERT r i∗a algunos de ellos y hace que se detengan, por otra parte, todos los usuarios honestos saben Br = Br \(\ell\) dentro del intervalo de tiempo Ir+1 y T r+1 \(\leq\)T r + \(\lambda\) + ts∗+2.De lo contrario, todos los verificadores honestos en el Paso s∗+ 2 han recibido todos los mensajes (r, s∗+ 1) para 0 y H(Br \(\ell\)) de HSV r,s∗+1 después del tiempo de espera ts∗+2, lo que conduce a una mayoría > 2/3. Así todos ellos propagan sus mensajes para 0 y H(Br \(\ell\)) en consecuencia: eso es lo que hacen En este caso, no “lanzar una moneda”. Nuevamente, tenga en cuenta que no paran sin propagarse, porque el Paso s∗+ 2 no es un paso Coin-Fixed-To-0. Finalmente, para los verificadores honestos en el Paso s∗+3 (que es otro paso de Coin-Fixed-To-0), todos de ellos habrían recibido al menos tH mensajes válidos para 0 y H(Br \(\ell\)) de HSV s∗+2, si realmente esperan el tiempo ts∗+3. Por lo tanto, si el adversario envía o no los mensajes en CERT r i∗a cualquiera de ellos, todos los verificadores en HSV r,s∗+3 terminan en Br = Br \(\ell\), sin propagar cualquier cosa. Dependiendo de cómo actúe el Adversario, algunos de ellos pueden tener su propio CERT r que consta de esos (r, s∗−1) mensajes en CERT r i∗, y los demás tienen su propio CERT r que consta de esos mensajes (r, s∗+ 2). En cualquier caso, todos los usuarios honestos. saber Br = Br \(\ell\) dentro del intervalo de tiempo Ir+1 y T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3. Caso 2.2.b. El evento E.b ocurre y no existe un verificador honesto i′ \(\in\)HSV r,s∗que También debería parar sin propagar nada. El análisis en este caso es similar a los del Caso 2.1.b y Caso 2.2.a, por lo que muchos detalles han sido omitidos. En particular, CERT r i∗consiste en los tH mensajes (r, s∗−1) deseados para el bit 1 que el Adversario puede recolectar o generar, s∗−2 ≡1 mod 3, el Paso s∗es un Paso Coin-Fixed-To-1, y ningún verificador honesto (r, s∗) podría haber visto > 2/3 de mayoría para 0. Por lo tanto, cada verificador i \(\in\)HSV r,s∗ establece bi = 1 y propaga mr,s∗ yo = (ESIGi(1), ESIGi(vi), \(\sigma\)r,s∗ yo ) en el momento \(\alpha\)r,s∗ yo + ts∗. Similar al Caso 2.2.a, en como máximo 3 pasos más (es decir, el protocolo alcanza el Paso s∗+3, que es otro paso Coin-Fixed-To-1), todos los usuarios honestos saben Br = Br ǫ dentro del intervalo de tiempo Ir+1. Además, T r+1 puede ser \(\leq\)T r+\(\lambda\)+ts∗+1, o \(\leq\)T r+\(\lambda\)+ts∗+2, o \(\leq\)T r + \(\lambda\) + ts∗+3, dependiendo de cuándo es la primera vez que un verificador honesto puede detener sin propagarse. Combinando los cuatro subcasos, tenemos que todos los usuarios honestos conocen Br dentro del intervalo de tiempo Ir+1, con T r+1 \(\leq\)T r + \(\lambda\) + ts∗ en los Casos 2.1.a y 2.1.b, y T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 en los Casos 2.2.a y 2.2.b. Queda por el límite superior s∗ y por lo tanto T r+1 para el Caso 2, y lo hacemos considerando cómo muchas veces los pasos de la moneda genuinamente lanzada se ejecutan en el protocolo: es decir, De hecho, algunos verificadores honestos han lanzado una moneda al aire. En particular, arregle arbitrariamente un paso s′ de moneda genuinamente lanzada (es decir, 7 \(\leq\)s′ \(\leq\)m + 2 y s′ −2 ≡2 mod 3), y sea \(\ell\)′ \(\triangleq\)arg minj\(\in\)SV r,s′−1 H(\(\sigma\)r,s′−1 j ). Por ahora supongamos s′ < s∗, porque de lo contrario ningún verificador honesto lanza una moneda en el Paso s′, de acuerdo con lo anterior discusiones. Según la definición de SV r,s′−1, el valor hash de la credencial de \(\ell\)′ es también el más pequeño entre todos los usuarios en PKr-k. Dado que la función hash es una oracle aleatoria, idealmente el jugador \(\ell\)′ es honesto con probabilidad al menos h. Como mostraremos más adelante, incluso si el Adversario hace lo mejor que puede para predecir el salida del oracle aleatorio e inclina la probabilidad, el jugador \(\ell\)′ sigue siendo honesto con la probabilidadal menos ph = h2(1 + h −h2). A continuación consideramos el caso en el que eso realmente sucede: es decir, \(\ell\)′ \(\in\)HSV r,s′−1. Tenga en cuenta que cada verificador honesto i \(\in\)HSV r,s′ ha recibido todos los mensajes de HSV r,s′−1 por tiempo \(\alpha\)r,s′ yo + ts′. Si el jugador i necesita lanzar una moneda (es decir, no ha visto > 2/3 de la mayoría durante el mismo bit b \(\in\){0, 1}), luego establece bi = lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )). Si existe otro honesto verificador i′ \(\in\)HSV r,s′ que ha visto > 2/3 de mayoría para un bit b \(\in\){0, 1}, entonces por Propiedad (d) del Lema 5.5, ningún verificador honesto en HSV r,s′ habría visto > 2/3 de mayoría por un tiempo b′ ̸= b. Desde lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )) = b con probabilidad 1/2, todos los verificadores honestos en HSV r,s′ alcanzan un acuerdo sobre b con probabilidad 1/2. Por supuesto, si dicho verificador i′ no existe, entonces todos verificadores honestos en HSV r,s′ están de acuerdo en el bit lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )) con probabilidad 1. Combinando la probabilidad para \(\ell\)′ \(\in\)HSV r,s′−1, tenemos que los verificadores honestos en HSV r,s′ llegar a un acuerdo sobre un bit b \(\in\){0, 1} con probabilidad al menos ph 2 = h2(1+h−h2) 2 . Además, por inducción en el voto mayoritario como antes, todos los verificadores honestos en HSV r,s′ tienen sus vi establecidos ser H(Br \(\ell\)). Por lo tanto, una vez que se llega a un acuerdo sobre b en el Paso s′, T r+1 es ya sea \(\leq\)T r + \(\lambda\) + ts′+1 o \(\leq\)T r + \(\lambda\) + ts′+2, dependiendo de si b = 0 o b = 1, siguiendo el análisis de los Casos 2.1.a y 2.1.b. en En particular, no se ejecutará ningún otro paso de moneda genuinamente lanzada: es decir, los verificadores en Dichos pasos aún verifican que son los verificadores y, por lo tanto, esperan, pero todos se detendrán sin propagar cualquier cosa. En consecuencia, antes del Paso s∗, el número de veces que se ejecutan los pasos Coin-GenuinelyFlipped se distribuye según la variable aleatoria Lr. Dejándose pasar ser el último paso de moneda genuinamente lanzada según Lr, mediante la construcción del protocolo tenemos s′ = 4 + 3Lr. ¿Cuándo debe el Adversario realizar el Paso s∗ si quiere retrasar T r+1 tanto como posible? Incluso podemos suponer que el Adversario conoce de antemano la realización de Lr. si s∗> s′ entonces es inútil, porque los verificadores honestos ya han llegado a un acuerdo en Paso s′. Sin duda, en este caso s∗ sería s′ +1 o s′ +2, nuevamente dependiendo de si b = 0 o b = 1. Sin embargo, estos son en realidad los Casos 2.1.a y 2.1.b, y el T r+1 resultante es exactamente el igual que en ese caso. Más precisamente, T r+1 \(\leq\)T r + \(\lambda\) + ts∗\(\leq\)T r + \(\lambda\) + ts′+2. Si s∗< s′ −3 —es decir, s∗ está antes del penúltimo paso de la moneda genuinamente lanzada— entonces por el análisis de los Casos 2.2.a y 2.2.b, T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 < T r + \(\lambda\) + ts′. Es decir, el Adversario en realidad está haciendo que el acuerdo sobre Br se realice más rápido. Si s∗= s′ −2 o s′ −1, es decir, el paso Coin-Fixed-To-0 o el paso Coin-Fixed-To-1 inmediatamente antes del Paso s′; luego, mediante el análisis de los cuatro subcasos, los verificadores honestos en Los pasos s′ ya no pueden lanzar monedas porque se han detenido sin propagarse, o haber visto > 2/3 de mayoría para el mismo bit b. Por lo tanto tenemos T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 \(\leq\)T r + \(\lambda\) + ts′+2.En resumen, no importa cuál sea, tenemos T r+1 \(\leq\)T r + \(\lambda\) + ts′+2 = T r + \(\lambda\) + t3Lr+6 = Tr + \(\lambda\) + (2(3Lr + 6) −3)\(\lambda\) + Λ = Tr + (6Lr + 10)\(\lambda\) + Λ, como queríamos mostrar. El peor caso es cuando s∗= s′ −1 y ocurre el Caso 2.2.b. Combinando los casos 1 y 2 del protocolo binario BA, se cumple el lema 5.3. ■ 5.9 Seguridad de la semilla Qr y probabilidad de un líder honesto Queda por demostrar el Lema 5.4. Recuerde que los verificadores de la ronda r se toman de PKr−k y se eligen según la cantidad Qr−1. El motivo de la introducción del parámetro retrospectivo k es asegurarse de que, en la ronda r −k, cuando el Adversario pueda agregar nuevos usuarios maliciosos para PKr−k, no puede predecir la cantidad Qr−1 excepto con una probabilidad insignificante. Tenga en cuenta que el La función hash es una oracle aleatoria y Qr−1 es una de sus entradas al seleccionar verificadores para la ronda r. Por lo tanto, no importa cuántos usuarios maliciosos se agreguen a PKr-k, desde el punto de vista del Adversario cada uno de ellos todavía está seleccionado para ser verificador en un paso de la ronda r con la probabilidad requerida p (o p1 para el Paso 1). Más precisamente, tenemos el siguiente lema. Lema 5.6. Con k = O(log1/2 F), para cada ronda r, con una probabilidad abrumadora el Adversario no consultó Qr−1 al oracle aleatorio en la ronda r −k. Prueba. Procedemos por inducción. Supongamos que para cada ronda \(\gamma\) < r, el Adversario no consultó Q\(\gamma\)−1 al oracle aleatorio en la ronda \(\gamma\) −k.21 Considere el siguiente juego mental jugado por el Adversario en la ronda r −k, tratando de predecir Qr−1. En el Paso 1 de cada ronda \(\gamma\) = r −k, . . . , r −1, dado un Q\(\gamma\)−1 específico no consultado al azar oracle, ordenando los jugadores i \(\in\)PK\(\gamma\)−k según los valores de hash H(SIGi(\(\gamma\), 1, Q\(\gamma\)−1)) Cada vez más, obtenemos una permutación aleatoria sobre PK\(\gamma\)−k. Por definición, el líder \(\ell\) \(\gamma\) es el primer usuario en la permutación y es honesto con probabilidad h. Además, cuando PK\(\gamma\)−k es grande suficiente, para cualquier número entero x \(\geq\)1, la probabilidad de que los primeros x usuarios en la permutación sean todos malicioso pero el (x + 1)st es honesto es (1 −h)xh. Si \(\ell\) \(\gamma\) es honesto, entonces Q\(\gamma\) = H(SIG\(\ell\) \(\gamma\)(Q\(\gamma\)−1), \(\gamma\)). Como el adversario no puede falsificar la firma de \(\ell\) \(\gamma\), Q\(\gamma\) se distribuye uniformemente al azar desde el punto de vista del Adversario y, excepto con probabilidad exponencialmente pequeña,22 no fue consultado a H en la ronda r −k. Dado que cada Q\(\gamma\)+1, Q\(\gamma\)+2, . . . , Qr−1 respectivamente es la salida de H con Q\(\gamma\), Q\(\gamma\)+1, . . . , Qr−2 como una de las entradas, todos parecen aleatorios para el Adversario y el Adversario no podría haber consultado Qr−1 a H en redondear r −k. En consecuencia, el único caso en el que el adversario puede predecir Qr−1 con buena probabilidad en la ronda r−k es cuando todos los líderes \(\ell\)r−k, . . . , \(\ell\)r−1 son maliciosos. Consideremos nuevamente una ronda \(\gamma\) \(\in\){r−k . . . , r-1} y la permutación aleatoria sobre PK\(\gamma\)−k inducida por los valores hash correspondientes. si por algunos x \(\geq\)2, los primeros x −1 usuarios en la permutación son todos maliciosos y el x-ésimo es honesto, entonces el El adversario tiene x opciones posibles para Q\(\gamma\): cualquiera de la forma H(SIGi(Q\(\gamma\)−1, \(\gamma\))), donde i es una de 21 Como k es un número entero pequeño, sin pérdida de generalidad se puede suponer que las primeras k rondas del protocolo se ejecutan en un entorno seguro y la hipótesis inductiva es válida para esas rondas. 22Es decir, exponencial en la longitud de la salida de H. Tenga en cuenta que esta probabilidad es mucho menor que F.los primeros usuarios maliciosos x−1, al convertir al jugador i en el líder real de la ronda \(\gamma\); o H(Q\(\gamma\)−1, \(\gamma\)), por forzando B\(\gamma\) = B\(\gamma\) ǫ . De lo contrario, el líder de la ronda \(\gamma\) será el primer usuario honesto en la permutación. y Qr−1 se vuelve impredecible para el Adversario. ¿Cuál de las x opciones anteriores de Q\(\gamma\) debería perseguir el adversario? Para ayudar al adversario Responda esta pregunta, en el juego mental en realidad lo hacemos más poderoso de lo que realmente es, como sigue. En primer lugar, en realidad, el Adversario no puede calcular el hash de la cuenta de un usuario honesto. firma, por lo que no puede decidir, para cada Q\(\gamma\), el número x(Q\(\gamma\)) de usuarios maliciosos al principio de la permutación aleatoria en la ronda \(\gamma\) + 1 inducida por Q\(\gamma\). En el juego mental, le damos la números x(Q\(\gamma\)) gratis. En segundo lugar, en realidad, tener los primeros x usuarios en la permutación todos Ser malicioso no significa necesariamente que todos puedan convertirse en líderes, porque el hash Los valores de sus firmas también deben ser menores que p1. Hemos ignorado esta limitación en el ámbito mental. juego, dándole al Adversario aún más ventajas. Es fácil ver que en el juego mental, la opción óptima para el Adversario, denotada por ˆQ\(\gamma\), es el que produce la secuencia más larga de usuarios maliciosos al comienzo del proceso aleatorio permutación en ronda \(\gamma\) + 1. De hecho, dado un Q\(\gamma\) específico, el protocolo no depende de Q\(\gamma\)−1 ya y el Adversario sólo puede centrarse en la nueva permutación en la ronda \(\gamma\) + 1, que tiene la misma distribución para el número de usuarios maliciosos al principio. En consecuencia, en cada ronda \(\gamma\), el ˆQ\(\gamma\) mencionado anteriormente le da el mayor número de opciones para Q\(\gamma\)+1 y por lo tanto maximiza la probabilidad de que los líderes consecutivos sean todos maliciosos. Por lo tanto, en el juego mental el Adversario sigue una Cadena de Markov desde la ronda r −k para redondear r −1, siendo el espacio de estados {0} \(\cup\){x : x \(\geq\)2}. El estado 0 representa el hecho de que el El primer usuario en la permutación aleatoria en la ronda actual \(\gamma\) es honesto, por lo tanto el Adversario falla el juego de predicción de Qr−1; y cada estado x \(\geq\)2 representa el hecho de que los primeros x −1 usuarios en el Las permutaciones son maliciosas y el x-ésimo es honesto, por lo que el Adversario tiene x opciones para Q\(\gamma\). el Las probabilidades de transición P(x, y) son las siguientes. • P(0, 0) = 1 y P(0, y) = 0 para cualquier y \(\geq\)2. Es decir, el adversario falla el juego una vez que la primera El usuario en la permutación se vuelve honesto. • P(x, 0) = hx para cualquier x \(\geq\)2. Es decir, con probabilidad hx, todas las x permutaciones aleatorias tienen sus primeros usuarios son honestos, por lo que el Adversario falla el juego en la siguiente ronda. • Para cualquier x \(\geq\)2 e y \(\geq\)2, P(x, y) es la probabilidad de que, entre las x permutaciones aleatorias inducido por las opciones x de Q\(\gamma\), la secuencia más larga de usuarios maliciosos al comienzo de algunas de ellas son y −1, por lo que el Adversario tiene y opciones para Q\(\gamma\)+1 en la siguiente ronda. Es decir, P(x, y) = y-1 x yo=0 (1 −h)ih !x − y-2 x yo=0 (1 −h)ih !x = (1 −(1 −h)y)x −(1 −(1 −h)y−1)x. Tenga en cuenta que el estado 0 es el único estado absorbente en la matriz de transición P, y todos los demás estados x tiene una probabilidad positiva de llegar a 0. Estamos interesados en acotar superiormente el número k de rondas necesarias para que la Cadena de Markov converja a 0 con una probabilidad abrumadora: es decir, no No importa en qué estado comience la cadena, con una probabilidad abrumadora el adversario pierde el juego. y no logra predecir Qr−1 en la ronda r −k. Considere la matriz de transición P (2) \(\triangleq\)P \(\cdot\) P después de dos rondas. Es fácil ver que P (2)(0, 0) = 1 y P (2)(0, x) = 0 para cualquier x \(\geq\)2. Para cualquier x \(\geq\)2 e y \(\geq\)2, como P(0, y) = 0, tenemos P(2)(x, y) = P(x, 0)P(0, y) + x z\(\geq\)2 P(x, z)P(z, y) = x z\(\geq\)2 P(x, z)P(z, y).Haciendo ¯h \(\triangleq\)1 −h, tenemos P(x, y) = (1 −¯hy)x −(1 −¯hy−1)x y P(2)(x, y) = x z\(\geq\)2 [(1 −¯hz)x −(1 −¯hz−1)x][(1 −¯hy)z −(1 −¯hy−1)z]. A continuación calculamos el límite de P (2)(x,y) P(x,y) cuando h llega a 1, es decir, ¯h llega a 0. Tenga en cuenta que el valor más alto El orden de ¯h en P(x, y) es ¯hy−1, con coeficiente x. En consecuencia, Lim h \(\to\) 1 P(2)(x, y) P(x, y) = límite ¯h \(\to\) 0 P(2)(x, y) P(x,y) = límite ¯h \(\to\) 0 P(2)(x, y) x¯hy−1 + O(¯hy) = Lim ¯h \(\to\) 0 pag z\(\geq\)2[x¯hz−1 + O(¯hz)][z¯hy−1 + O(¯hy)] x¯hy−1 + O(¯hy) = límite ¯h \(\to\) 0 2x¯hy + O(¯hy+1) x¯hy−1 + O(¯hy) = Lim ¯h \(\to\) 0 2x¯hy x¯hy−1 = lím ¯h \(\to\) 0 2¯h = 0. Cuando h es suficientemente cercano a 1,23 tenemos P(2)(x, y) P(x,y) \(\leq\)1 2 para cualquier x \(\geq\)2 y y \(\geq\)2. Por inducción, para cualquier k > 2, P (k) \(\triangleq\)P k es tal que • P (k)(0, 0) = 1, P (k)(0, x) = 0 para cualquier x \(\geq\)2, y • para cualquier x \(\geq\)2 e y \(\geq\)2, P (k)(x, y) = P (k−1)(x, 0)P(0, y) + x z\(\geq\)2 P (k−1)(x, z)P(z, y) = x z\(\geq\)2 P (k−1)(x, z)P(z, y) \(\leq\) x z\(\geq\)2 P(x,z) 2k-2 \(\cdot\) P(z, y) = P (2)(x, y) 2k-2 \(\leq\)P(x,y) 2k-1. Como P(x, y) \(\leq\)1, después de 1−log2 F rondas, la probabilidad de transición a cualquier estado y \(\geq\)2 es insignificante, comenzando con cualquier estado x \(\geq\)2. Aunque hay muchos estados de este tipo y, es fácil ver que Lim y→+∞ P(x, y) P(x, y + 1) = Lim y→+∞ (1 −¯hy)x −(1 −¯hy−1)x (1 −¯hy+1)x −(1 −¯hy)x = Lim y→+∞ ¯hy−1 −¯hy ¯hy −¯hy+1 = 1 ¯h = 1 1-h. Por lo tanto, cada fila x de la matriz de transición P disminuye como una secuencia geométrica con tasa 1 1-h > 2 cuando y es lo suficientemente grande, y lo mismo se aplica a P (k). En consecuencia, cuando k es lo suficientemente grande pero aún del orden de log1/2 F, P y\(\geq\)2 P (k)(x, y) < F para cualquier x \(\geq\)2. Es decir, con una probabilidad abrumadora el Adversario pierde el juego y no logra predecir Qr−1 en la ronda r −k. Para h \(\in\)(2/3, 1], un más Un análisis complejo muestra que existe una constante C ligeramente mayor que 1/2, tal que es suficiente para tomar k = O(logC F). Por tanto, se cumple el Lema 5.6. ■ Lema 5.4. (reformulado) Dadas las propiedades 1 a 3 para cada ronda antes de r, ph = h2(1 + h −h2) para Lr, y el líder \(\ell\)r es honesto con probabilidad al menos ph. 23Por ejemplo, h = 80% como lo sugieren las elecciones específicas de parámetros.

Prueba. Siguiendo el Lema 5.6, el Adversario no puede predecir Qr−1 en la ronda r −k excepto con probabilidad insignificante. Tenga en cuenta que esto no significa que la probabilidad de que un líder honesto sea h para cada ronda. De hecho, dado Qr-1, dependiendo de cuántos usuarios maliciosos haya al comienzo de la permutación aleatoria de PKr−k, el Adversario puede tener más de una opción para Qr y por lo tanto puede aumentar la probabilidad de que haya un líder malicioso en la ronda r + 1; nuevamente le estamos dando algunas ventajas poco realistas como en el Lema 5.6, para simplificar el análisis. Sin embargo, para cada Qr−1 que el Adversario no consultó a H en la ronda r −k, para cualquier x \(\geq\)1, con probabilidad (1 −h)x−1h, el primer usuario honesto ocurre en la posición x en el resultado permutación aleatoria de PKr−k. Cuando x = 1, la probabilidad de que haya un líder honesto en la ronda r + 1 es de hecho h; mientras que cuando x = 2, el Adversario tiene dos opciones para Qr y la probabilidad resultante es h2. Sólo considerando estos dos casos tenemos que la probabilidad de que un líder honesto en ronda r + 1 es al menos h \(\cdot\) h + (1 −h)h \(\cdot\) h2 = h2(1 + h −h2) como se desee. Tenga en cuenta que la probabilidad anterior sólo considera la aleatoriedad en el protocolo de la ronda r −k para redondear r. Cuando se tiene en cuenta toda la aleatoriedad desde la ronda 0 hasta la ronda r, Qr−1 es aún menos predecible para el Adversario y la probabilidad de un líder honesto en la ronda r + 1 es de menos h2(1 + h −h2). Reemplazando r + 1 con r y desplaza todo hacia atrás una ronda, el líder \(\ell\)r es honesto con una probabilidad de al menos h2(1 + h −h2), como se desee. De manera similar, en cada paso de una moneda lanzada genuinamente al aire, el “líder” de ese paso, es decir, el verificador. en SV r,s cuya credencial tiene el valor hash más pequeño, es honesta con probabilidad al menos h2(1 + h-h2). Así, ph = h2(1 + h −h2) para Lr y el Lema 5.4 se cumple. ■

Algorand ′

1 In diesem Abschnitt erstellen wir eine Version von Algorand ′, die unter der folgenden Annahme arbeitet. Annahme: Ehrliche Mehrheit der Benutzer: Mehr als 2/3 der Benutzer in jedem PKr sind ehrlich. In Abschnitt 8 zeigen wir, wie man die obige Annahme durch die gewünschte ehrliche Mehrheit ersetzt Geldannahme. 5.1 Zusätzliche Notationen und Parameter Notationen • m \(\in\)Z+: die maximale Anzahl von Schritten im binären BA-Protokoll, ein Vielfaches von 3. • Lr \(\leq\)m/3: eine Zufallsvariable, die die Anzahl der Bernoulli-Versuche darstellt, die erforderlich sind, um eine 1 zu sehen, wenn jeder Versuch 1 mit der Wahrscheinlichkeit ph ist 2 und es gibt höchstens m/3-Versuche. Wenn alle Versuche scheitern, dann Lr \(\triangleq\)m/3. Lr wird verwendet, um die Zeit, die zum Generieren des Blocks Br benötigt wird, nach oben zu begrenzen. • tH = 2n 3 + 1: die Anzahl der Signaturen, die in den Endbedingungen des Protokolls erforderlich sind. • CERT r: das Zertifikat für Br. Es handelt sich um eine Reihe von Signaturen von H(Br) von geeigneten Prüfern in rund r. Parameter • Beziehungen zwischen verschiedenen Parametern. — Für jeden Schritt s > 1 der Runde r wird n so gewählt, dass mit überwältigender Wahrscheinlichkeit |HSV r,s| > 2|MSV r,s| und |HSV r,s| + 4|MSV r,s| < 2n. Je näher der Wert von h an 1 liegt, desto kleiner muss n sein. Insbesondere verwenden wir (Varianten von) Chernoff-Grenzen, um sicherzustellen, dass die gewünschten Bedingungen mit überwältigender Wahrscheinlichkeit eintreten. — m wird so gewählt, dass mit überwältigender Wahrscheinlichkeit Lr < m/3 ist. • Beispielhafte Auswahl wichtiger Parameter. — F = 10−12. — n \(\approx\)1500, k = 40 und m = 180.5.2 Implementierung kurzlebiger Schlüssel in Algorand ′ 1 Wie bereits erwähnt, wünschen wir uns, dass ein Verifizierer i \(\in\)SV r,s seine Nachricht mr,s digital signiert ich Schritt s in Runde r, relativ zu einem kurzlebigen öffentlichen Schlüssel pkr,s i , unter Verwendung eines kurzlebigen geheimen Schlüssels skr,s ich das Er zerstört sofort nach dem Gebrauch. Wir brauchen daher eine effiziente Methode, um sicherzustellen, dass jeder Benutzer dies tun kann Überprüfen Sie, ob pkr,s ich ist in der Tat der Schlüssel, mit dem ich die Unterschrift von Herrn, S. überprüfen kann ich . Wir tun dies nach bestem Wissen und Gewissen unseres Wissens) neue Verwendung identitätsbasierter Signaturverfahren. Auf hoher Ebene generiert in einem solchen Schema eine zentrale Behörde A einen öffentlichen Hauptschlüssel, PMK, und einen entsprechenden geheimen Hauptschlüssel, SMK. Angesichts der Identität U eines Spielers U berechnet A: Über SMK wird ein geheimer Signaturschlüssel skU relativ zum öffentlichen Schlüssel U bereitgestellt und skU privat an ihn weitergegeben U. (Tatsächlich ist in einem identitätsbasierten digitalen Signaturschema der öffentliche Schlüssel eines Benutzers U U selbst!) Auf diese Weise zerstört A SMK, nachdem er die geheimen Schlüssel der Benutzer berechnet hat, die er aktivieren möchte Digitale Signaturen erstellen und keinen berechneten geheimen Schlüssel aufbewahren, dann ist U der Einzige, der dies tut kann Nachrichten relativ zum öffentlichen Schlüssel U digital signieren. Somit kann jeder, der „Us Namen“ kennt, kennt automatisch den öffentlichen Schlüssel von U und kann daher die Signaturen von U überprüfen (möglicherweise auch unter Verwendung des öffentlicher Hauptschlüssel PMK). In unserer Anwendung ist die Autorität A der Benutzer i, und die Menge aller möglichen Benutzer U stimmt mit überein das Rundschrittpaar (r, s) in — sagen wir — S = {i}\(\times\){r′, . . . , r′ +106}\(\times\){1, . . . , m+3}, wobei r′ gegeben ist Runde und m + 3 die Obergrenze für die Anzahl der Schritte, die innerhalb einer Runde auftreten dürfen. Dies Weg, pkr,s ich \(\triangleq\)(i, r, s), sodass jeder die Signatur von i sieht, SIGr,s pkr,s ich (Herr, S ich ) kann, mit Überwältigung Wahrscheinlichkeit, überprüfen Sie es sofort für die ersten Millionen Runden r nach r′. Mit anderen Worten: Ich erzeuge zunächst PMK und SMK. Dann macht er bekannt, dass PMK mein Meister ist öffentlichen Schlüssel für jede Runde r \(\in\)[r′, r′ + 106] und verwendet SMK, um das Geheimnis privat zu erzeugen und zu speichern Schlüssel skr,s ich für jedes Tripel (i, r, s) \(\in\)S. Wenn das erledigt ist, zerstört er SMK. Wenn er feststellt, dass dies nicht der Fall ist Teil von SV r,s, dann kann ich skr,s verlassen ich allein (da das Protokoll nicht verlangt, dass er sich authentifiziert jede Nachricht in Schritt s der Runde r). Ansonsten verwende ich zuerst skr,s ich seine Nachricht digital signieren mr,s ich , und zerstört dann skr,s ich . Beachten Sie, dass ich seinen ersten öffentlichen Hauptschlüssel veröffentlichen kann, wenn er das System zum ersten Mal betritt. Das heißt, Die gleiche Zahlung \(\wp\), die i in das System bringt (in einer Runde r′ oder in einer Runde nahe r′), kann auch Geben Sie auf Wunsch von i an, dass der öffentliche Hauptschlüssel von i für jede Runde r \(\in\)[r′, r′ + 106] PMK ist – z. B. by einschließlich eines Paares der Form (PMK, [r′, r′ + 106]). Beachten Sie auch, dass m + 3 die maximale Anzahl von Schritten in einer Runde ist, vorausgesetzt, dass eine Runde erfolgt dauert eine Minute, der so hergestellte Vorrat an kurzlebigen Schlüsseln reicht für fast zwei Jahre. Gleichzeitig Mit der Zeit wird die Herstellung dieser kurzlebigen Geheimschlüssel nicht allzu lange dauern. Unter Verwendung einer elliptischen Kurve Bei einem System mit 32B Schlüsseln wird jeder geheime Schlüssel in wenigen Mikrosekunden berechnet. Wenn also m + 3 = 180, Dann können alle 180 Millionen geheimen Schlüssel in weniger als einer Stunde berechnet werden. Wenn sich die aktuelle Runde r′ + 106 nähert, um die nächsten Millionen Runden zu bewältigen, d generiert ein neues (PMK′, SMK′)-Paar und informiert über seinen nächsten Vorrat an kurzlebigen Schlüsseln – zum Beispiel – mit SIGi(PMK′, [r′ + 106 + 1, r′ + 2 \(\cdot\) 106 + 1]) geben Sie einen neuen Block ein, entweder als separate „Transaktion“ oder als zusätzliche Information, die Teil einer Zahlung ist. Dadurch Ich informiere jeden darüber, dass er/sie im nächsten Schritt PMK′ verwenden soll, um die ephemeren Signaturen von i zu überprüfen Millionen Schuss. Und so weiter. (Beachten Sie, dass es nach diesem grundlegenden Ansatz auch andere Möglichkeiten gibt, ephemere Schlüssel ohne zu implementieren Der Einsatz identitätsbasierter Signaturen ist durchaus möglich. Zum Beispiel über Merkle trees.16) 16Bei dieser Methode generiert i ein öffentlich-geheimes Schlüsselpaar (pkr,s ich, skr,s ich ) für jedes Rundenschrittpaar (r, s) in — sagen wir —Andere Möglichkeiten zur Implementierung ephemerer Schlüssel sind sicherlich möglich – z. B. über Merkle trees. 5.3 Passend zu den Schritten von Algorand ′ 1 mit denen von BA⋆ Wie gesagt, eine Runde in Algorand ′ 1 hat höchstens m + 3 Schritte. Schritt 1. In diesem Schritt berechnet und propagiert jeder potenzielle Anführer i seinen Kandidatenblock Br ich, zusammen mit seinem eigenen Ausweis, \(\sigma\)r,1 ich . Denken Sie daran, dass dieser Berechtigungsnachweis i explizit identifiziert. Das ist so, weil \(\sigma\)r,1 ich \(\triangleq\)SIGi(r, 1, Qr−1). Der potenzielle Verifizierer verbreitet als Teil seiner Nachricht auch seine ordnungsgemäße digitale Signatur von H(Br.) ich). Da es sich bei dieser Signatur nicht um eine Zahlung oder einen Ausweis handelt, bezieht sie sich auf seine flüchtige Öffentlichkeit Schlüssel VE,1 i: das heißt, er propagiert sigpkr,1 ich (H(Br ich )). Angesichts unserer Konventionen, anstatt Br. zu propagieren ich und sigpkr,1 ich (H(Br i)), er hätte es tun können propagierte SIGpkr,1 ich (H(Br ich )). In unserer Analyse benötigen wir jedoch expliziten Zugriff darauf sigpkr,1 ich (H(Br ich )). Schritte 2. In diesem Schritt legt jeder Verifizierer \(\ell\)r fest Ich möchte der potenzielle Anführer sein, dessen Qualifikation hash ist ist der kleinste und Br i soll der von \(\ell\)r vorgeschlagene Block sein ich . Da wir aus Gründen der Effizienz Wenn er sich auf H(Br) und nicht direkt auf Br einigen möchte, propagiert er die Botschaft, die er haben möchte propagiert im ersten Schritt von BA⋆mit Anfangswert v′ i = H(Br ich). Das heißt, er propagiert v′ ich, natürlich erst nach kurzer Unterzeichnung. (Nämlich nach der Unterzeichnung relativ zum rechten Ephemeren Öffentlicher Schlüssel, in diesem Fall pkr,2 i .) Selbstverständlich übermittelt auch ich seinen eigenen Ausweis. Da der erste Schritt von BA⋆aus dem ersten Schritt des abgestuften Konsensprotokolls GC besteht, Schritt 2 von Algorand ′ entspricht dem ersten Schritt von GC. Schritte 3. In diesem Schritt führt jeder Prüfer i \(\in\)SV r,2 den zweiten Schritt von BA⋆ aus. Das heißt, er sendet die Dieselbe Nachricht, die er im zweiten Schritt von GC gesendet hätte. Auch hier ist meine Botschaft vergänglich unterschrieben und mit meinem Ausweis versehen. (Von nun an werden wir es unterlassen, zu sagen, dass es sich um einen Verifizierer handelt unterzeichnet flüchtig seine Nachricht und verbreitet auch seine Beglaubigung.) Schritt 4. In diesem Schritt berechnet jeder Verifizierer i \(\in\)SV r,4 die Ausgabe von GC (vi, gi) und ephemer signiert und sendet die gleiche Nachricht, die er im dritten Schritt von BA⋆ gesendet hätte, also im erster Schritt von BBA⋆, mit Anfangsbit 0, wenn gi = 2, andernfalls 1. Schritt s = 5, . . . , m + 2. Ein solcher Schritt, falls jemals erreicht, entspricht dem Schritt s −1 von BA⋆ und damit Schritt s −3 von BBA⋆. Da unser Ausbreitungsmodell ausreichend asynchron ist, müssen wir die Möglichkeit berücksichtigen dass mitten in einem solchen Schritt s ein Verifizierer i \(\in\)SV r,s durch Informationen erreicht wird, die ihn beweisen dieser Block Br wurde bereits ausgewählt. In diesem Fall stoppt i seine eigene Ausführung von Runde r Algorand ′ und beginnt mit der Ausführung seiner Round-(r + 1)-Anweisungen. {R', . . . , r′ + 106} \(\times\) {1, . . . , m + 3}. Dann ordnet er diese öffentlichen Schlüssel auf kanonische Weise an und speichert den J-ten öffentlich Geben Sie das j-te Blatt eines Merkle tree ein und berechnen Sie den Wurzelwert Ri, den er veröffentlicht. Wenn er unterschreiben will eine Nachricht relativ zum Schlüssel pkr,s ich , i stellt nicht nur die eigentliche Signatur bereit, sondern auch den Authentifizierungspfad für pkr,s ich relativ zu Ri. Beachten Sie, dass dieser Authentifizierungspfad auch beweist, dass pkr,s ich wird im j-ten Blatt gespeichert. Der Rest Details können einfach ausgefüllt werden.Dementsprechend sind die Anweisungen eines Verifizierers i \(\in\)SV r,s, zusätzlich zu den entsprechenden Anweisungen Zu Schritt s −3 von BBA⋆ gehört auch die Prüfung, ob die Ausführung von BBA⋆ in einem früheren Zustand angehalten wurde Schritt s′. Da BBA⋆nur anhalten kann, ist ein Coin-Fixed-to-0-Schritt oder ein Coin-Fixed-to-1-Schritt Anweisungen unterscheiden, ob A (Endbedingung 0): s′ −2 ≡0 mod 3, oder B (Endbedingung 1): s′ −2 ≡1 mod 3. Tatsächlich ist im Fall A der Block Br nicht leer und daher sind zusätzliche Anweisungen erforderlich Stellen Sie sicher, dass ich Br zusammen mit dem richtigen Zertifikat CERT r ordnungsgemäß rekonstruiere. Im Fall B, Der Block Br ist leer und daher wird i angewiesen, Br = Br zu setzen \(\varepsilon\) = (r, \(\emptyset\), H(Qr−1, r), H(Br−1)), und um CERT r zu berechnen. Wenn i während seiner Ausführung von Schritt s keine Hinweise darauf sieht, dass der Block Br bereits vorhanden ist generiert wurde, sendet er dieselbe Nachricht, die er in Schritt s −3 von BBA⋆ gesendet hätte. Schritt m + 3. Wenn i \(\in\)SV r,m+3 während Schritt m + 3 erkennt, dass der Block Br bereits in generiert wurde einen vorherigen Schritt s′, dann geht er genauso vor wie oben erklärt. Anstatt die gleiche Nachricht zu senden, die er in Schritt m von BBA⋆ gesendet hätte, ist i angewiesen, auf der Grundlage der in seinem Besitz befindlichen Informationen Br und dessen entsprechende Werte zu berechnen Zertifikat CERT r. Denken Sie daran, dass wir die Gesamtzahl der Schritte einer Runde um m + 3 nach oben begrenzen. 5.4 Das eigentliche Protokoll Denken Sie daran, dass in jedem Schritt s einer Runde r ein Verifizierer i \(\in\)SV r,s sein langfristiges öffentlich-geheimes Schlüsselpaar verwendet seinen Ausweis vorlegen, \(\sigma\)r,s ich \(\triangleq\)SIGi(r, s, Qr−1) sowie SIGi Qr−1 im Fall s = 1. Verifier i verwendet seinen kurzlebigen geheimen Schlüssel skr,s ich seine (r,s)-Nachricht unterschreiben mr,s ich . Der Einfachheit halber, wenn r und s sind klar, wir schreiben esigi(x) statt sigpkr,s i (x), um die eigentliche ephemere Signatur eines Wertes zu bezeichnen x in Schritt s der Runde r und schreibe ESIGi(x) anstelle von SIGpkr,s i (x) zur Bezeichnung von (i, x, esigi(x)). Schritt 1: Vorschlag blockieren Anleitung für jeden Benutzer i \(\in\)PKr−k: Benutzer i startet seinen eigenen Schritt 1 der Runde r, sobald er kennt Br−1. • Benutzer i berechnet Qr−1 aus der dritten Komponente von Br−1 und prüft, ob i \(\in\)SV r,1 oder nicht. • Wenn i /\(\in\)SV r,1, stoppt i sofort seine eigene Ausführung von Schritt 1. • Wenn i \(\in\)SV r,1, das heißt, wenn i ein potenzieller Anführer ist, dann kassiert er die runden Zahlungen, die er hat wurde ihm bisher propagiert und berechnet einen maximalen Payset PAY r ich von ihnen. Als nächstes er berechnet seinen „Kandidatenblock“ Br i = (r, PAY r i , SIGi(Qr−1), H(Br−1)). Schließlich rechnet er die Nachricht Herr,1 ich = (Br ich, esigi(H(Br i )), \(\sigma\)r,1 i ), zerstört seinen ephemeren geheimen Schlüssel skr,1 ich, und dann propagiert mr,1 ich .Bemerkung. Um die globale Ausführung von Schritt 1 zu verkürzen, ist es in der Praxis wichtig, dass (r, 1)- Nachrichten werden selektiv verbreitet. Das heißt, für jeden Benutzer i im System gilt für den ersten (r, 1)- Die Nachricht, die er jemals erhält und erfolgreich verifiziert,17 verbreitet der Spieler wie gewohnt. Für alle Andere (r, 1)-Nachrichten, die Spieler i empfängt und erfolgreich verifiziert, er verbreitet sie nur, wenn die hash Der Wert der darin enthaltenen Anmeldeinformationen ist der kleinste unter den hash Werten der enthaltenen Anmeldeinformationen in allen (r, 1)-Nachrichten, die er bisher erhalten und erfolgreich verifiziert hat. Darüber hinaus, wie vorgeschlagen von Georgios Vlachos ist es nützlich, dass jeder potenzielle Anführer i auch seine Qualifikation \(\sigma\)r,1 propagiert ich separat: Diese kleinen Nachrichten verbreiten sich schneller als Blöcke und stellen eine rechtzeitige Ausbreitung des mr,1 sicher j’s wobei die enthaltenen Anmeldeinformationen kleine hash-Werte haben, während solche mit großen hash-Werten erstellt werden verschwinden schnell. Schritt 2: Der erste Schritt des Graded Consensus Protocol GC Anleitung für jeden Benutzer i \(\in\)PKr−k: Benutzer i startet seinen eigenen Schritt 2 der Runde r, sobald er kennt Br−1. • Benutzer i berechnet Qr−1 aus der dritten Komponente von Br−1 und prüft, ob i \(\in\)SV r,2 oder nicht. • Wenn i /\(\in\)SV r,2, stoppt i sofort seine eigene Ausführung von Schritt 2. • Wenn i \(\in\)SV r,2, verhält sich i nach einer Wartezeit von t2 \(\triangleq\) \(\lambda\) + Λ wie folgt. 1. Er findet den Benutzer \(\ell\)so dass H(\(\sigma\)r,1 \(\ell\)) \(\leq\)H(\(\sigma\)r,1 j ) für alle Referenzen \(\sigma\)r,1 j die Teil davon sind die erfolgreich verifizierten (r, 1)-Nachrichten, die er bisher erhalten hat.a 2. Wenn er von \(\ell\)eine gültige Nachricht erhalten hat, mr,1 \(\ell\) = (Br \(\ell\), esig\(\ell\)(H(Br \(\ell\))), \(\sigma\)r,1 \(\ell\)),b dann setzt i v′ i \(\triangleq\)H(Br \(\ell\)); sonst setze ich v′ ich \(\triangleq\) \(\bot\). 3. i berechnet die Nachricht mr,2 ich \(\triangleq\)(ESIGi(v′ i), \(\sigma\)r,2 i ),c zerstört seinen ephemeren Geheimschlüssel skr,2 i und propagiert dann mr,2 ich . aIm Wesentlichen entscheidet Benutzer i privat, dass der Anführer der Runde r Benutzer \(\ell\) ist. bAuch hier wurden die Unterschriften von Spieler \(\ell\) und die hashes alle erfolgreich verifiziert und ZAHLEN r \(\ell\)in Br \(\ell\)ist ein gültiger Gehaltssatz für rundes r – obwohl ich nicht prüfe, ob PAY r \(\ell\)ist maximal für \(\ell\)oder nicht. cDie Nachricht mr,2 ich signalisiert, dass der Spieler v′ betrachtet i sei der hash des nächsten Blocks oder betrachte den nächsten Block soll leer sein. 17Das heißt, alle Signaturen sind korrekt und sowohl der Block als auch sein hash sind gültig – obwohl ich das nicht prüfe ob der enthaltene Gehaltssatz für seinen Antragsteller maximal ist oder nicht.

Schritt 3: Der zweite Schritt der GC Anleitung für jeden Benutzer i \(\in\)PKr−k: Benutzer i startet seinen eigenen Schritt 3 der Runde r, sobald er kennt Br−1. • Benutzer i berechnet Qr−1 aus der dritten Komponente von Br−1 und prüft, ob i \(\in\)SV r,3 oder nicht. • Wenn i /\(\in\)SV r,3, stoppt i sofort seine eigene Ausführung von Schritt 3. • Wenn i \(\in\)SV r,3, verhält sich i nach einer Wartezeit von t3 \(\triangleq\)t2 + 2\(\lambda\) = 3\(\lambda\) + Λ wie folgt. 1. Wenn es einen Wert v′ ̸= \(\bot\) gibt, so dass unter allen gültigen Nachrichten mr,2 j er hat erhalten, mehr als 2/3 davon haben die Form (ESIGj(v′), \(\sigma\)r,2 j ), ohne jeden Widerspruch,a dann berechnet er die Nachricht mr,3 ich \(\triangleq\)(ESIGi(v′), \(\sigma\)r,3 ich). Andernfalls berechnet er mr,3 ich \(\triangleq\) (ESIGi(\(\bot\)), \(\sigma\)r,3 ich). 2. Ich zerstöre seinen kurzlebigen geheimen Schlüssel skr,3 i und propagiert dann mr,3 ich . aDas heißt, er hat keine zwei gültigen Nachrichten erhalten, die ESIGj(v′′) bzw. ein anderes ESIGj(v′′) enthalten. von einem Spieler j. Hier und von nun an, außer in den später definierten Endbedingungen, wann immer ein ehrlicher Spieler Will Nachrichten einer bestimmten Form, werden widersprüchliche Nachrichten niemals gezählt oder als gültig angesehen.Schritt 4: Ausgabe von GC und der erste Schritt von BBA⋆ Anleitung für jeden Benutzer i \(\in\)PKr−k: Benutzer i startet seinen eigenen Schritt 4 der Runde r, sobald er kennt Br−1. • Benutzer i berechnet Qr−1 aus der dritten Komponente von Br−1 und prüft, ob i \(\in\)SV r,4 oder nicht. • Wenn i /\(\in\)SV r,4, dann stoppt i seine eigene Ausführung von Schritt 4 sofort. • Wenn i \(\in\)SV r,4, verhält sich i nach einer Wartezeit von t4 \(\triangleq\)t3 + 2\(\lambda\) = 5\(\lambda\) + Λ wie folgt. 1. Er berechnet vi und gi, die Ausgabe von GC, wie folgt. (a) Wenn es einen Wert v′ ̸= \(\bot\) gibt, so dass unter allen gültigen Nachrichten mr,3 j er hat empfangen, mehr als 2/3 davon haben die Form (ESIGj(v′), \(\sigma\)r,3 j ), dann setzt er vi \(\triangleq\)v′ und gi \(\triangleq\)2. (b) Andernfalls, wenn unter allen gültigen Nachrichten ein Wert v′ ̸= \(\bot\)existiert Herr,3 j er erhalten hat, haben mehr als 1/3 davon die Form (ESIGj(v′), \(\sigma\)r,3 j), dann er setzt vi \(\triangleq\)v′ und gi \(\triangleq\)1.a (c) Ansonsten setzt er vi \(\triangleq\)H(Br ǫ ) und gi \(\triangleq\)0. 2. Er berechnet bi, die Eingabe von BBA⋆, wie folgt: bi \(\triangleq\)0, wenn gi = 2, andernfalls bi \(\triangleq\)1. 3. Er berechnet die Nachricht mr,4 ich \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,4 i ), zerstört sein Vergängliches geheimer Schlüssel skr,4 i und propagiert dann mr,4 ich . aEs kann bewiesen werden, dass das v′ im Fall (b), falls vorhanden, eindeutig sein muss.

Schritt s, 5 \(\leq\)s \(\leq\)m + 2, s −2 ≡0 mod 3: Ein Coin-Fixed-To-0-Schritt von BBA⋆ Anleitung für jeden Benutzer i \(\in\)PKr−k: Benutzer i startet seine eigenen Schritte s der Runde r, sobald er kennt Br−1. • Benutzer i berechnet Qr−1 aus der dritten Komponente von Br−1 und prüft, ob i \(\in\)SV r,s. • Wenn i /\(\in\)SV r,s, stoppt i sofort seine eigene Ausführung von Schritt s. • Wenn i \(\in\)SV r,s, dann verhält er sich wie folgt. – Er wartet, bis eine Zeitspanne ts \(\triangleq\)ts−1 + 2\(\lambda\) = (2s −3)\(\lambda\) + Λ verstrichen ist. – Endbedingung 0: Wenn während dieses Wartens und zu irgendeinem Zeitpunkt ein string v ̸= \(\bot\)und ein Schritt s′ so dass (a) 5 \(\leq\)s′ \(\leq\)s, s′ −2 ≡0 mod 3 – das heißt, Schritt s′ ist ein Coin-Fixed-To-0-Schritt, (b) Ich habe mindestens tH erhalten = 2n 3 + 1 gültige Nachrichten mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ),a und (c) Ich habe eine gültige Nachricht mr,1 erhalten j = (Br j , esigj(H(Br j )), \(\sigma\)r,1 j ) mit v = H(Br j), dann stoppt i seine eigene Ausführung von Schritt s (und tatsächlich von Runde r) sofort ohne irgendetwas verbreiten; setzt Br = Br j ; und legt sein eigenes CERT r als Nachrichtenmenge fest mr,s′−1 j des Unterschritts (b).b – Endbedingung 1: Wenn während des Wartens und zu irgendeinem Zeitpunkt ein Schritt s′ so dass (a’) 6 \(\leq\)s′ \(\leq\)s, s′ −2 ≡1 mod 3 – das heißt, Schritt s′ ist ein Coin-Fixed-To-1-Schritt, und (b’) i hat mindestens die gültigen Nachrichten mr,s′−1 erhalten j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ),c dann stoppt i seine eigene Ausführung von Schritt s (und tatsächlich von Runde r) sofort ohne irgendetwas verbreiten; setzt Br = Br ǫ ; und legt sein eigenes CERT r als Nachrichtenmenge fest mr,s′−1 j des Teilschritts (b‘). – Andernfalls führt Benutzer i am Ende der Wartezeit Folgendes aus. Er setzt vi als Mehrheitsvotum der vjs in den zweiten Komponenten aller gültigen Stimmen mr,s−1 j ’s hat er erhalten. Er berechnet bi wie folgt. Wenn mehr als 2/3 aller gültigen mr,s−1 j ’s, die er erhalten hat, sind von der Form (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), dann setzt er bi \(\triangleq\)0. Andernfalls, wenn mehr als 2/3 aller gültigen mr,s−1 j ’s, die er erhalten hat, sind von der Form (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), dann setzt er bi \(\triangleq\)1. Andernfalls setzt er bi \(\triangleq\)0. Er berechnet die Nachricht mr,s ich \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), zerstört sein Vergängliches geheimer Schlüssel skr,s i , und dann propagiert mr,s ich . aEine solche Nachricht von Spieler j wird auch dann gezählt, wenn Spieler i auch eine Nachricht von j erhalten hat, der für 1 signiert. Ähnliches gilt für Endbedingung 1. Wie in der Analyse gezeigt, geschieht dies, um sicherzustellen, dass alle ehrlichen Benutzer Bescheid wissen Br innerhalb der Zeit \(\lambda\) voneinander. bUser i kennt jetzt Br und seine eigenen Rundenabschlüsse. Als allgemeiner Benutzer hilft er immer noch bei der Verbreitung von Nachrichten, aber initiiert keine Ausbreitung als (r, s)-Verifizierer. Insbesondere hat er dazu beigetragen, alle in ihm enthaltenen Botschaften zu verbreiten CERT r, was für unser Protokoll ausreicht. Beachten Sie, dass er auch für das binäre BA-Protokoll bi \(\triangleq\)0 festlegen sollte, aber bi wird in diesem Fall ohnehin nicht benötigt. Ähnliches gilt für alle zukünftigen Anweisungen. cIn diesem Fall spielt es keine Rolle, um welche VJs es sich handelt.Schritt s, 6 \(\leq\)s \(\leq\)m + 2, s −2 ≡1 mod 3: Ein Coin-Fixed-To-1-Schritt von BBA⋆ Anleitung für jeden Benutzer i \(\in\)PKr−k: Benutzer i startet seine eigenen Schritte s der Runde r, sobald er kennt Br−1. • Benutzer i berechnet Qr−1 aus der dritten Komponente von Br−1 und prüft, ob i \(\in\)SV r,s oder nicht. • Wenn i /\(\in\)SV r,s, stoppt i sofort seine eigene Ausführung von Schritt s. • Wenn i \(\in\)SV r,s, dann macht er Folgendes. – Er wartet, bis eine Zeitspanne ts \(\triangleq\)(2s −3)\(\lambda\) + Λ verstrichen ist. – Endbedingung 0: Die gleichen Anweisungen wie bei den Schritten „Coin-Fixed-To-0“. – Endbedingung 1: Die gleichen Anweisungen wie bei den Schritten „Coin-Fixed-To-0“. – Andernfalls führt Benutzer i am Ende der Wartezeit Folgendes aus. Er setzt vi als Mehrheitsvotum der vjs in den zweiten Komponenten aller gültigen Stimmen mr,s−1 j ’s hat er erhalten. Er berechnet bi wie folgt. Wenn mehr als 2/3 aller gültigen mr,s−1 j ’s, die er erhalten hat, sind von der Form (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), dann setzt er bi \(\triangleq\)0. Andernfalls, wenn mehr als 2/3 aller gültigen mr,s−1 j ’s, die er erhalten hat, sind von der Form (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), dann setzt er bi \(\triangleq\)1. Andernfalls setzt er bi \(\triangleq\)1. Er berechnet die Nachricht mr,s ich \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), zerstört sein Vergängliches geheimer Schlüssel skr,s i , und dann propagiert mr,s ich .

Schritt s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ≡2 mod 3: Ein münzecht umgedrehter Schritt von BBA⋆ Anleitung für jeden Benutzer i \(\in\)PKr−k: Benutzer i startet seine eigenen Schritte s der Runde r, sobald er kennt Br−1. • Benutzer i berechnet Qr−1 aus der dritten Komponente von Br−1 und prüft, ob i \(\in\)SV r,s oder nicht. • Wenn i /\(\in\)SV r,s, stoppt i sofort seine eigene Ausführung von Schritt s. • Wenn i \(\in\)SV r,s, dann macht er Folgendes. – Er wartet, bis eine Zeitspanne ts \(\triangleq\)(2s −3)\(\lambda\) + Λ verstrichen ist. – Endbedingung 0: Die gleichen Anweisungen wie bei den Schritten „Coin-Fixed-To-0“. – Endbedingung 1: Die gleichen Anweisungen wie bei den Schritten „Coin-Fixed-To-0“. – Andernfalls führt Benutzer i am Ende der Wartezeit Folgendes aus. Er setzt vi als Mehrheitsvotum der vjs in den zweiten Komponenten aller gültigen Stimmen mr,s−1 j ’s hat er erhalten. Er berechnet bi wie folgt. Wenn mehr als 2/3 aller gültigen mr,s−1 j ’s, die er erhalten hat, sind von der Form (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), dann setzt er bi \(\triangleq\)0. Andernfalls, wenn mehr als 2/3 aller gültigen mr,s−1 j ’s, die er erhalten hat, sind von der Form (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), dann setzt er bi \(\triangleq\)1. Ansonsten sei SV r,s−1 ich sei die Menge der (r, s −1)-Verifizierer, von denen er ein gültiges erhalten hat Nachricht mr,s−1 j . Er setzt bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1 ich H(\(\sigma\)r,s−1 j )). Er berechnet die Nachricht mr,s ich \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ), zerstört sein Vergängliches geheimer Schlüssel skr,s i , und dann propagiert mr,s ich .

Schritt m + 3: Der letzte Schritt von BBA⋆a Anleitung für jeden Benutzer i \(\in\)PKr−k: Benutzer i startet seinen eigenen Schritt m + 3 der Runde r, sobald er kennt Br−1. • Benutzer i berechnet Qr−1 aus der dritten Komponente von Br−1 und prüft, ob i \(\in\)SV r,m+3 oder nicht. • Wenn i /\(\in\)SV r,m+3, dann stoppt i sofort seine eigene Ausführung von Schritt m + 3. • Wenn i \(\in\)SV r,m+3, dann macht er Folgendes. – Er wartet, bis eine Zeitspanne tm+3 \(\triangleq\)tm+2 + 2\(\lambda\) = (2m + 3)\(\lambda\) + Λ vergangen ist. – Endbedingung 0: Die gleichen Anweisungen wie bei den Schritten „Coin-Fixed-To-0“. – Endbedingung 1: Die gleichen Anweisungen wie bei den Schritten „Coin-Fixed-To-0“. – Andernfalls führt Benutzer i am Ende der Wartezeit Folgendes aus. Er stellt i \(\triangleq\)1 und Br \(\triangleq\)Br dar ǫ. Er berechnet die Nachricht mr,m+3 ich = (ESIGi(outi), ESIGi(H(Br)), \(\sigma\)r,m+3 ich ), zerstört seine Vergänglicher geheimer Schlüssel skr,m+3 ich , und propagiert dann mr,m+3 ich Br.b. zertifizieren aMit überwältigender Wahrscheinlichkeit ist BBA⋆vor diesem Schritt beendet, und wir geben diesen Schritt der Vollständigkeit halber an. Ein BA-Zertifikat aus Schritt m + 3 muss ESIGi(outi) nicht enthalten. Wir schließen es nur aus Gründen der Einheitlichkeit ein: das Zertifikate haben nun ein einheitliches Format, unabhängig davon, in welchem Schritt sie generiert werden.Rekonstruktion des Round-r-Blocks durch Nicht-Verifizierer Anleitung für jeden Benutzer i im System: Benutzer i startet seine eigene Runde, sobald er es weiß Br−1 und wartet wie folgt auf Blockinformationen. – Wenn während dieses Wartens und zu irgendeinem Zeitpunkt eine Zeichenfolge v und ein Schritt s′ wie z das (a) 5 \(\leq\)s′ \(\leq\)m + 3 mit s′ −2 ≡0 mod 3, (b) i hat mindestens die gültigen Nachrichten mr,s′−1 erhalten j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ), und (c) Ich habe eine gültige Nachricht mr,1 erhalten j = (Br j , esigj(H(Br j )), \(\sigma\)r,1 j ) mit v = H(Br j), dann stoppt i sofort seine eigene Ausführung von Runde r; setzt Br = Br j; und legt sein eigenes CERT r fest die Menge der Nachrichten mr,s′−1 sein j des Unterschritts (b). – Wenn während dieses Wartens und zu irgendeinem Zeitpunkt ein Schritt s′ existiert, so dass (a’) 6 \(\leq\)s′ \(\leq\)m + 3 mit s′ −2 ≡1 mod 3, und (b’) i hat mindestens die gültigen Nachrichten mr,s′−1 erhalten j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ), dann stoppt i sofort seine eigene Ausführung von Runde r; setzt Br = Br ǫ; und legt sein eigenes CERT r fest die Menge der Nachrichten mr,s′−1 sein j des Teilschritts (b‘). – Wenn ich während dieser Wartezeit und zu irgendeinem Zeitpunkt mindestens die gültigen Nachrichten erhalten habe Herr,m+3 j = (ESIGj(1), ESIGj(H(Br ǫ )), \(\sigma\)r,m+3 j ), dann stoppt i seine eigene Ausführung der Runde r setzt sofort Br = Br ǫ und setzt sein eigenes CERT r auf die Menge der Nachrichten mr,m+3 j für 1 und H(Br ǫ ). 5.5 Analyse von Algorand ′ 1 Wir führen die folgenden Notationen für jede Runde r \(\geq\)0 ein, die in der Analyse verwendet wird. • Sei T r der Zeitpunkt, zu dem der erste ehrliche Benutzer Br−1 kennt. • Sei Ir+1 das Intervall [T r+1, T r+1 + \(\lambda\)]. Beachten Sie, dass T 0 = 0 durch die Initialisierung des Protokolls. Erinnern Sie sich daran für jedes s \(\geq\)1 und i \(\in\)SV r,s \(\alpha\)r,s ich und \(\beta\)r,s ich sind jeweils die Startzeit und die Endzeit der Schritte s von Spieler i. Darüber hinaus Denken Sie daran, dass ts = (2s −3)\(\lambda\) + Λ für jedes 2 \(\leq\)s \(\leq\)m + 3. Außerdem seien I0 \(\triangleq\){0} und t1 \(\triangleq\)0. Denken Sie abschließend daran, dass Lr \(\leq\)m/3 eine Zufallsvariable ist, die die Anzahl der Bernoulli-Versuche darstellt benötigt, um eine 1 zu sehen, wenn jeder Versuch 1 mit der Wahrscheinlichkeit ph ist 2 und es gibt höchstens m/3-Versuche. Wenn alle Versuche scheitern, dann ist Lr \(\triangleq\)m/3. Bei der Analyse ignorieren wir die Rechenzeit, da sie im Verhältnis zur benötigten Zeit tatsächlich vernachlässigbar ist um Nachrichten zu verbreiten. In jedem Fall kann die Berechnungszeit durch die Verwendung etwas größerer \(\lambda\) und Λ verkürzt werden direkt in die Analyse einfließen. Die meisten der folgenden Aussagen treffen „mit überwältigender Mehrheit“ zu Wahrscheinlichkeit“, und wir betonen diese Tatsache möglicherweise nicht wiederholt in der Analyse.5.6 Hauptsatz Satz 5.1. Die folgenden Eigenschaften gelten mit überwältigender Wahrscheinlichkeit für jede Runde r \(\geq\)0: 1. Alle ehrlichen Benutzer stimmen dem gleichen Block zu, Br. 2. Wenn der Anführer \(\ell\)r ehrlich ist, wird der Block Br von \(\ell\)r erzeugt, Br enthält einen maximalen Payset empfangen von \(\ell\)r bis zur Zeit \(\alpha\)r,1 \(\ell\)r , T r+1 \(\leq\)T r + 8\(\lambda\) + Λ und alle ehrlichen Benutzer kennen Br in der Zeit Intervall Ir+1. 3. Wenn der Anführer \(\ell\)r böswillig ist, gilt T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ und alle ehrlichen Benutzer kennen Br im Zeitintervall Ir+1. 4. ph = h2(1 + h −h2) für Lr, und der Anführer \(\ell\)r ist mit einer Wahrscheinlichkeit von mindestens ph ehrlich. Bevor wir unseren Hauptsatz beweisen, machen wir zwei Bemerkungen. Bemerkungen. • Blockgenerierung und echte Latenz. Die Zeit zum Erzeugen des Blocks Br ist als T r+1 − T r definiert. Das heißt, es ist definiert als der Unterschied zwischen dem ersten Mal, wenn ein ehrlicher Benutzer Br lernt, und Das erste Mal lernt ein ehrlicher Benutzer Br−1. Wenn der Round-R-Anführer ehrlich ist, ist Eigentum 2 unser Der Hauptsatz garantiert, dass die genaue Zeit zur Erzeugung von Br 8\(\lambda\) + Λ Zeit beträgt, egal was passiert Der genaue Wert von h > 2/3 kann sein. Wenn der Anführer böswillig ist, impliziert Eigenschaft 3, dass der Die erwartete Zeit zur Erzeugung von Br ist durch ( 12) begrenzt ph + 10)\(\lambda\) + Λ, wiederum unabhängig von der Genauigkeit Wert von h.18 Allerdings hängt die erwartete Zeit zur Erzeugung von Br vom genauen Wert von h ab. Tatsächlich ist nach Eigenschaft 4 ph = h2(1 + h − h2) und der Anführer ist zumindest in Bezug auf die Wahrscheinlichkeit ehrlich ph, also E[T r+1 −T r] \(\leq\)h2(1 + h −h2) \(\cdot\) (8\(\lambda\) + Λ) + (1 −h2(1 + h −h2))(( 12 h2(1 + h −h2) + 10)\(\lambda\) + Λ). Wenn beispielsweise h = 80 %, dann ist E[T r+1 −T r] \(\leq\)12,7\(\lambda\) + Λ. • \(\lambda\) vs. Λ. Beachten Sie, dass die Größe der von den Verifizierern in einem Schritt gesendeten Nachrichten Algorand ′ dominiert durch die Länge der digitalen Signaturschlüssel, die auch bei der Anzahl der Schlüssel fest bleiben kann Benutzer ist enorm. Beachten Sie außerdem, dass in jedem Schritt s > 1 die gleiche erwartete Anzahl n von Verifizierern erwartet wird kann unabhängig davon verwendet werden, ob die Anzahl der Benutzer 100.000, 100 Millionen oder 100 Millionen beträgt. Das liegt daran, dass n allein hängt von h und F ab. Zusammenfassend lässt sich sagen, dass, sofern nicht plötzlich die Notwendigkeit besteht, die Länge des geheimen Schlüssels zu erhöhen, Der Wert von \(\lambda\) sollte derselbe bleiben, egal wie groß die Anzahl der Benutzer ist absehbare Zukunft. Im Gegensatz dazu wächst bei jeder Transaktionsrate die Anzahl der Transaktionen mit der Anzahl der Transaktionen Benutzer. Um alle neuen Transaktionen zeitnah verarbeiten zu können, sollte daher die Größe eines Blocks erforderlich sein wachsen auch mit der Anzahl der Benutzer, wodurch auch Λ wächst. Auf lange Sicht hätten wir das also tun sollen \(\lambda\) << Λ. Dementsprechend ist es angemessen, einen größeren Koeffizienten für \(\lambda\) zu haben, und zwar tatsächlich einen Koeffizienten von 1 für Λ. Beweis von Satz 5.1. Wir beweisen die Eigenschaften 1–3 durch Induktion: unter der Annahme, dass sie für die Runde r −1 gelten (Ohne Beschränkung der Allgemeinheit gelten sie automatisch für „Runde -1“, wenn r = 0), wir beweisen sie für rund r. 18Tatsächlich ist E[T r+1 −T r] \(\leq\)(6E[Lr] + 10)\(\lambda\) + Λ = (6 \(\cdot\) 2 ph + 10)\(\lambda\) + Λ = ( 12 ph + 10)\(\lambda\) + Λ.Da Br−1 durch die Induktionshypothese eindeutig definiert ist, ist auch die Menge SV r,s eindeutig definiert für jeden Schritt s der Runde r. Durch die Wahl von n1 ist SV r,1 ̸= \(\emptyset\)mit überwältigender Wahrscheinlichkeit. Wir jetzt Geben Sie die folgenden zwei Lemmata an, die in den Abschnitten 5.7 und 5.8 bewiesen wurden. Während der Induktion und in die Beweise der beiden Lemmata, die Analyse für Runde 0 ist fast die gleiche wie der Induktionsschritt, und wir werden die Unterschiede hervorheben, wenn sie auftreten. Lemma 5.2. [Vollständigkeitslemma] Angenommen, die Eigenschaften 1–3 gelten für Runde r−1, wenn der Anführer \(\ell\)r ist ehrlich, mit überwältigender Wahrscheinlichkeit, • Alle ehrlichen Benutzer stimmen dem gleichen Block Br zu, der von \(\ell\)r erzeugt wird und ein Maximum enthält Gehaltssatz, den \(\ell\)r zum Zeitpunkt \(\alpha\)r,1 erhalten hat \(\ell\)r \(\in\)Ir; und • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ und alle ehrlichen Benutzer kennen Br im Zeitintervall Ir+1. Lemma 5.3. [Gesundheits-Lemma] Angenommen, die Eigenschaften 1–3 gelten für Runde r −1, wenn der Anführer \(\ell\)r ist bösartig, mit überwältigender Wahrscheinlichkeit sind sich alle ehrlichen Benutzer auf denselben Block Br, T r+1 \(\leq\) einig T r + (6Lr + 10)\(\lambda\) + Λ und alle ehrlichen Benutzer kennen Br im Zeitintervall Ir+1. Die Eigenschaften 1–3 gelten durch Anwendung der Lemmata 5.2 und 5.3 auf r = 0 und auf den Induktionsschritt. Schließlich, Wir formulieren Eigenschaft 4 als das folgende Lemma, das in Abschnitt 5.9 bewiesen wurde. Lemma 5.4. Gegeben sind die Eigenschaften 1–3 für jede Runde vor r, ph = h2(1 + h −h2) für Lr und die Anführer \(\ell\)r ist mit Wahrscheinlichkeit mindestens ph ehrlich. Kombiniert man die oben genannten drei Lemmata miteinander, gilt Satz 5.1. ■ Das folgende Lemma gibt mehrere wichtige Eigenschaften der Runde r bei gegebener Induktivität an Hypothese und wird in den Beweisen der oben genannten drei Lemmata verwendet. Lemma 5.5. Gehen Sie davon aus, dass die Eigenschaften 1–3 für Runde r −1 gelten. Für jeden Schritt s \(\geq\)1 der Runde r und Jeder ehrliche Verifizierer i \(\in\)HSV r,s, das haben wir (a) \(\alpha\)r,s ich \(\in\)Ir; (b) wenn Spieler i eine Zeitspanne ts gewartet hat, dann \(\beta\)r,s ich \(\in\)[T r + ts, T r + \(\lambda\) + ts] für r > 0 und \(\beta\)r,s ich = ts für r = 0; und (c) Wenn Spieler i eine Zeitspanne ts gewartet hat, dann nach der Zeit \(\beta\)r,s i , er hat alle Nachrichten erhalten gesendet von allen ehrlichen Verifizierern j \(\in\)HSV r,s′ für alle Schritte s′ < s. Darüber hinaus haben wir das für jeden Schritt s \(\geq\)3 (d) es gibt keine zwei verschiedenen Spieler i, i′ \(\in\)SV r,s und zwei verschiedene Werte v, v′ derselben Länge, so dass beide Spieler eine Zeitspanne ts gewartet haben, mehr als 2/3 aller gültige Nachrichten mr,s−1 j Spieler, den ich erhalte, haben für v unterschrieben, und mehr als 2/3 aller gültigen Nachrichten mr,s−1 j Spieler i′ erhält, hat für v′ unterschrieben. Nachweisen. Eigenschaft (a) folgt direkt aus der Induktionshypothese, da Spieler i Br−1 im kennt Zeitintervall Ir und beginnt sofort mit seinen eigenen Schritten. Eigenschaft (b) folgt direkt aus (a): da Spieler i hat eine gewisse Zeit ts gewartet, bevor er gehandelt hat, \(\beta\)r,s ich = \(\alpha\)r,s ich + ts. Beachten Sie, dass \(\alpha\)r,s ich = 0 für r = 0. Wir beweisen nun Eigenschaft (c). Wenn s = 2, dann gilt nach Eigenschaft (b) für alle Verifizierer j \(\in\)HSV r,1 \(\beta\)r,s ich = \(\alpha\)r,s ich + ts \(\geq\)T r + ts = T r + \(\lambda\) + Λ \(\geq\) \(\beta\)r,1 j + Λ.Da jeder Prüfer j \(\in\)HSV r,1 seine Nachricht zum Zeitpunkt \(\beta\)r,1 sendet j und die Botschaft erreicht alle ehrlich Benutzer in höchstens Λ Zeit, nach Zeit \(\beta\)r,s ich Player Ich habe die von allen Verifizierern gesendeten Nachrichten erhalten HSV r,1 nach Wunsch. Wenn s > 2, dann ist ts = ts−1 + 2\(\lambda\). Nach Eigenschaft (b) gilt für alle Schritte s′ < s und alle Verifizierer j \(\in\)HSV r,s′, \(\beta\)r,s ich = \(\alpha\)r,s ich + ts \(\geq\)T r + ts = T r + ts−1 + 2\(\lambda\) \(\geq\)T r + ts′ + 2\(\lambda\) = T r + \(\lambda\) + ts′ + \(\lambda\) \(\geq\) \(\beta\)r,s′ j + \(\lambda\). Da jeder Prüfer j \(\in\)HSV r,s′ seine Nachricht zum Zeitpunkt \(\beta\)r,s′ sendet j und die Botschaft erreicht alle ehrlich Benutzer in höchstens \(\lambda\) Zeit, nach Zeit \(\beta\)r,s ich Spieler, ich habe alle Nachrichten erhalten, die von allen ehrlichen Prüfern gesendet wurden im HSV r,s′ für alle s′ < s. Somit gilt Eigenschaft (c). Abschließend beweisen wir Eigenschaft (d). Beachten Sie, dass die Verifizierer j \(\in\)SV r,s−1 höchstens zwei Dinge unterschreiben Schritt s −1 unter Verwendung ihrer ephemeren geheimen Schlüssel: ein Wert vj mit der gleichen Länge wie die Ausgabe des hash-Funktion und auch ein Bit bj \(\in\){0, 1}, wenn s −1 \(\geq\)4. Deshalb in der Aussage des Lemmas wir erfordern, dass v und v′ die gleiche Länge haben: Viele Prüfer haben möglicherweise beide einen hash-Wert signiert v und ein Bit b, also überschreiten beide die 2/3-Schwelle. Nehmen Sie aus Gründen der Widersprüchlichkeit an, dass es die gewünschten Verifizierer i, i′ und die Werte v, v′ gibt. Beachten Sie, dass einige böswillige Verifizierer in MSV r,s−1 möglicherweise sowohl v als auch v′ signiert haben, aber alle ehrlich Prüfer im HSV r,s−1 hat höchstens einen davon unterzeichnet. Nach Eigenschaft (c) haben sowohl i als auch i′ erhalten Alle Nachrichten, die von allen ehrlichen Verifizierern im HSV r,s−1 gesendet werden. Sei HSV r,s−1(v) die Menge der ehrlichen (r, s −1)-Verifizierer, die v signiert haben, MSV r,s−1 ich das Set von böswilligen (r, s −1)-Verifizierern, von denen ich eine gültige Nachricht erhalten habe, und MSV r,s−1 ich (v) die Teilmenge von MSV r,s−1 ich Von wem ich eine gültige Nachrichtensignatur erhalten habe v. Durch die Anforderungen für i und v, wir haben Verhältnis \(\triangleq\)|HSV r,s−1(v)| + |MSV r,s−1 ich (v)| |HSV r,s−1| + |MSV r,s−1 ich |

2 3. (1) Wir zeigen zuerst |MSV r,s−1 ich (v)| \(\leq\)|HSV r,s−1(v)|. (2) Wenn man aufgrund der Beziehungen zwischen den Parametern mit überwältigender Wahrscheinlichkeit etwas anderes annimmt |HSV r,s−1| > 2|MSV r,s−1| \(\geq\)2|MSV r,s−1 ich |, also Verhältnis < |HSV r,s−1(v)| + |MSV r,s−1 ich (v)| 3|MSV r,s−1 ich | < 2|MSV r,s−1 ich (v)| 3|MSV r,s−1 ich | \(\leq\)2 3, widersprüchliche Ungleichung 1. Als nächstes haben wir nach Ungleichung 1 2|HSV r,s−1| + 2|MSV r,s−1 ich | < 3|HSV r,s−1(v)| + 3|MSV r,s−1 ich (v)| \(\leq\) 3|HSV r,s−1(v)| + 2|MSV r,s−1 ich | + |MSV r,s−1 ich (v)|. In Kombination mit Ungleichung 2, 2|HSV r,s−1| < 3|HSV r,s−1(v)| + |MSV r,s−1 ich (v)| \(\leq\)4|HSV r,s−1(v)|, was impliziert |HSV r,s−1(v)| > 1 2|HSV r,s−1|.In ähnlicher Weise gilt aufgrund der Anforderungen für i′ und v′ |HSV r,s−1(v′)| > 1 2|HSV r,s−1|. Da ein ehrlicher Verifizierer j \(\in\)HSV r,s−1 seinen ephemeren geheimen Schlüssel skr,s−1 zerstört j vor der Vermehrung In seiner Botschaft kann der Gegner die Signatur von j nicht für einen Wert fälschen, den j nicht signiert hat lernen, dass j ein Verifizierer ist. Somit implizieren die beiden obigen Ungleichungen |HSV r,s−1| \(\geq\)|HSV r,s−1(v)| + |HSV r,s−1(v′)| > |HSV r,s−1|, ein Widerspruch. Dementsprechend existieren die gewünschten i, i′, v, v′ nicht, und Eigenschaft (d) gilt. ■ 5.7 Das Vollständigkeitslemma Lemma 5.2. [Vollständigkeitslemma, angepasst] Unter der Annahme, dass die Eigenschaften 1–3 für Runde r−1 gelten, wenn der Anführer ist mit überwältigender Wahrscheinlichkeit ehrlich, • Alle ehrlichen Benutzer stimmen dem gleichen Block Br zu, der von \(\ell\)r erzeugt wird und ein Maximum enthält Gehaltssatz, den \(\ell\)r zum Zeitpunkt \(\alpha\)r,1 erhalten hat \(\ell\)r \(\in\)Ir; und • T r+1 \(\leq\)T r + 8\(\lambda\) + Λ und alle ehrlichen Benutzer kennen Br im Zeitintervall Ir+1. Nachweisen. Nach der Induktionshypothese und Lemma 5.5 gilt für jeden Schritt s und Verifizierer i \(\in\)HSV r,s, \(\alpha\)r,s ich \(\in\)Ir. Nachfolgend analysieren wir das Protokoll Schritt für Schritt. Schritt 1. Per Definition verbreitet jeder ehrliche Verifizierer i \(\in\)HSV r,1 die gewünschte Nachricht mr,1 ich bei Zeit \(\beta\)r,1 ich = \(\alpha\)r,1 ich, wo Herr,1 ich = (Br ich, esigi(H(Br i )), \(\sigma\)r,1 ich), Br i = (r, PAY r i , SIGi(Qr−1), H(Br−1)), und ZAHLEN r i ist eine maximale Auszahlungsmenge aller Zahlungen, die ich bis zum Zeitpunkt \(\alpha\)r,1 gesehen habe ich . Schritt 2. Legen Sie willkürlich einen ehrlichen Verifizierer i \(\in\)HSV r,2 fest. Nach Lemma 5.5, wenn Spieler i fertig ist Warten zum Zeitpunkt \(\beta\)r,2 ich = \(\alpha\)r,2 ich + t2 hat er alle von Verifizierern in HSV r,1 gesendeten Nachrichten erhalten, einschließlich Herr,1 \(\ell\)r . Nach der Definition von \(\ell\)r gibt es in PKr−k keinen anderen Spieler, dessen Anmeldeinformationen hash sind. Wert ist kleiner als H(\(\sigma\)r,1 \(\ell\)r ). Natürlich kann der Gegner \(\ell\)r korrumpieren, nachdem er gesehen hat, dass H(\(\sigma\)r,1 \(\ell\)r ) ist sehr klein, aber zu diesem Zeitpunkt hat Spieler \(\ell\)r seinen kurzlebigen Schlüssel und die Nachricht mr,1 zerstört \(\ell\)r wurde propagiert. Daher setzt der Verifizierer seinen eigenen Anführer als Spieler \(\ell\)r. Dementsprechend zum Zeitpunkt \(\beta\)r,2 ich, Verifizierer propagiert mr,2 ich = (ESIGi(v′ i), \(\sigma\)r,2 i), wobei v′ i = H(Br \(\ell\)r). Wenn r = 0, der einzige Unterschied ist das \(\beta\)r,2 ich = t2 anstatt in einem Bereich zu liegen. Ähnliches lässt sich für zukünftige Schritte und uns sagen Ich werde sie nicht noch einmal betonen. Schritt 3. Legen Sie willkürlich einen ehrlichen Verifizierer i \(\in\)HSV r,3 fest. Nach Lemma 5.5, wenn Spieler i fertig ist Warten zum Zeitpunkt \(\beta\)r,3 ich = \(\alpha\)r,3 ich + t3 hat er alle von Verifizierern in HSV r,2 gesendeten Nachrichten erhalten. Aufgrund der Beziehungen zwischen den Parametern mit überwältigender Wahrscheinlichkeit |HSV r,2| > 2|MSV r,2|. Darüber hinaus würde kein ehrlicher Prüfer widersprüchliche Botschaften unterzeichnen, und zwar den Widersacher Die Unterschrift eines ehrlichen Prüfers kann nicht gefälscht werden, nachdem dieser seine Korrespondenz vernichtet hat vergänglicher geheimer Schlüssel. Somit stammen mehr als 2/3 aller gültigen (r, 2)-Nachrichten, die ich erhalten habe, von ehrliche Prüfer und der Form mr,2 j = (ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,2 j ), ohne Widerspruch. Dementsprechend zum Zeitpunkt \(\beta\)r,3 ich Spieler, den ich mr,3 propagiere ich = (ESIGi(v′), \(\sigma\)r,3 i ), wobei v′ = H(Br \(\ell\)r).Schritt 4. Bestimmen Sie willkürlich einen ehrlichen Verifizierer i \(\in\)HSV r,4. Nach Lemma 5.5 hat Spieler i alles erhalten Nachrichten, die von Verifizierern in HSV r,3 gesendet werden, wenn er zum Zeitpunkt \(\beta\)r,4 mit dem Warten fertig ist ich = \(\alpha\)r,4 ich + t4. Ähnlich wie Schritt 3: Mehr als 2/3 aller gültigen (r, 3)-Nachrichten, die ich erhalten habe, stammen von ehrlichen Verifizierern und der Form mr,3 j = (ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,3 j). Dementsprechend setzt Spieler i vi = H(Br \(\ell\)r), gi = 2 und bi = 0. Zum Zeitpunkt \(\beta\)r,4 ich = \(\alpha\)r,4 ich +t4 propagiert er Herr,4 ich = (ESIGi(0), ESIGi(H(Br \(\ell\)r)), \(\sigma\)r,4 ich). Schritt 5. Legen Sie willkürlich einen ehrlichen Verifizierer i \(\in\)HSV r,5 fest. Nach Lemma 5.5 hätte Spieler ich hat alle von den Verifizierern in HSV r,4 gesendeten Nachrichten erhalten, wenn er bis zum Zeitpunkt \(\alpha\)r,5 gewartet hat ich + t5. Beachten Sie das |HSV r,4| \(\geq\)tH.19 Beachten Sie außerdem, dass alle Prüfer in HSV r,4 für H(Br.) unterschrieben haben \(\ell\)r). Als |MSV r,4| < tH, es existiert kein v′ ̸= H(Br \(\ell\)r), die von tH hätte unterzeichnet werden können Verifizierer in SV r,4 (die notwendigerweise böswillig wären), sodass Spieler i nicht aufhört, bevor er es getan hat Ich habe die gültigen Nachrichten erhalten, Herr,4 j = (ESIGj(0), ESIGj(H(Br \(\ell\)r)), \(\sigma\)r,4 j). Sei T die Zeit, wann Letzteres geschieht. Einige dieser Nachrichten stammen möglicherweise von böswilligen Spielern, aber weil |MSV r,4| < tH, mindestens einer davon stammt von einem ehrlichen Prüfer im HSV r,4 und wird nach einiger Zeit gesendet T r + t4. Dementsprechend ist T \(\geq\)T r +t4 > T r +\(\lambda\)+Λ \(\geq\) \(\beta\)r,1 \(\ell\)r +Λ, und bis zur Zeit T hat Spieler i auch erhalten die Nachricht Herr,1 \(\ell\)r . Aufgrund der Konstruktion des Protokolls stoppt Spieler i zum Zeitpunkt \(\beta\)r,5 ich = T ohne irgendetwas verbreiten; setzt Br = Br \(\ell\)r; und setzt sein eigenes CERT r auf die Menge der (r, 4)-Nachrichten für 0 und H(Br \(\ell\)r), die er erhalten hat. Schritt s > 5. In ähnlicher Weise hätte ich für jeden Schritt s > 5 und jeden Verifizierer i \(\in\)HSV r,s den Spieler i alle von den Verifizierern in HSV r,4 gesendeten Nachrichten erhalten, wenn er bis zum Zeitpunkt \(\alpha\)r,s gewartet hat ich + ts. Durch die Dieselbe Analyse, Spieler i stoppt, ohne etwas zu verbreiten, und setzt Br = Br \(\ell\)r (und seine eigenen einstellen CERT r ordnungsgemäß). Natürlich dürfen die böswilligen Verifizierer nicht aufhören und sich willkürlich verbreiten Nachrichten, sondern weil |MSV r,s| < tH, durch Induktion konnte kein anderes v′ von den Verifizierern signiert werden in jedem Schritt 4 \(\leq\)s′ < s, die ehrlichen Verifizierer hören also nur auf, weil sie das Gültige erhalten haben (r, 4)-Nachrichten für 0 und H(Br \(\ell\)r). Rekonstruktion des Round-r-Blocks. Die Analyse von Schritt 5 gilt für eine generische Ehrlichkeit Benutzer i fast ohne Änderung. Tatsächlich beginnt Spieler i seine eigene Runde r im Intervall Ir und stoppt erst zu einem Zeitpunkt T, wenn er tH gültige (r, 4)-Nachrichten für H(Br.) erhalten hat \(\ell\)r). Wieder weil Mindestens eine dieser Nachrichten stammt von ehrlichen Prüfern und wird nach der Zeit T r + t4 gesendet, die Spieler i hat erhielt auch mr,1 \(\ell\)r durch die Zeit T. Somit setzt er Br = Br \(\ell\)r mit dem richtigen CERT r. Es bleibt nur noch zu zeigen, dass alle ehrlichen Benutzer ihre Runde r innerhalb des Zeitintervalls Ir+1 beenden. Durch die Analyse von Schritt 5 kennt jeder ehrliche Verifizierer i \(\in\)HSV r,5 Br am oder vor \(\alpha\)r,5 ich + t5 \(\leq\) T r + \(\lambda\) + t5 = T r + 8\(\lambda\) + Λ. Da T r+1 der Zeitpunkt ist, zu dem der erste ehrliche Benutzer ir Br kennt, haben wir T r+1 \(\leq\)T r + 8\(\lambda\) + Λ wie gewünscht. Darüber hinaus hat der Spieler, wenn er Br kennt, bereits dabei geholfen, die Nachrichten zu verbreiten sein CERT r. Beachten Sie, dass alle diese Nachrichten innerhalb der Zeit \(\lambda\) von allen ehrlichen Benutzern empfangen werden, auch wenn 19 Streng genommen geschieht dies mit sehr hoher Wahrscheinlichkeit, aber nicht unbedingt mit überwältigender Wahrscheinlichkeit. Allerdings ist dies Die Wahrscheinlichkeit wirkt sich geringfügig auf die Laufzeit des Protokolls aus, hat jedoch keinen Einfluss auf seine Richtigkeit. Wenn h = 80 %, dann |HSV r,4| \(\geq\)tH mit Wahrscheinlichkeit 1 −10−8. Wenn dieses Ereignis nicht eintritt, wird das Protokoll für ein anderes fortgesetzt 3 Schritte. Da die Wahrscheinlichkeit, dass dies nicht in zwei Schritten geschieht, vernachlässigbar ist, endet das Protokoll bei Schritt 8 Erwartungsgemäß beträgt die Anzahl der erforderlichen Schritte also fast 5.Spieler ir waren der erste Spieler, der sie propagierte. Darüber hinaus haben wir nach der obigen Analyse T r+1 \(\geq\)T r + t4 \(\geq\) \(\beta\)r,1 \(\ell\)r + Λ, also haben alle ehrlichen Benutzer mr,1 erhalten \(\ell\)r durch die Zeit T r+1 + \(\lambda\). Dementsprechend Alle ehrlichen Benutzer kennen Br im Zeitintervall Ir+1 = [T r+1, T r+1 + \(\lambda\)]. Schließlich gilt für r = 0 tatsächlich T 1 \(\leq\)t4 + \(\lambda\) = 6\(\lambda\) + Λ. Alles zusammen kombinieren, Es gilt Lemma 5.2. ■ 5.8 Das Soliditäts-Lemma Lemma 5.3. [Gesundheits-Lemma, angepasst] Unter der Annahme, dass die Eigenschaften 1–3 für Runde r −1 gelten, wenn Der Anführer \(\ell\) ist böswillig, mit überwältigender Wahrscheinlichkeit stimmen alle ehrlichen Benutzer dem gleichen Block zu Br, T r+1 \(\leq\)T r + (6Lr + 10)\(\lambda\) + Λ und alle ehrlichen Benutzer kennen Br im Zeitintervall Ir+1. Nachweisen. Wir betrachten die beiden Teile des Protokolls, GC und BBA⋆, getrennt. GC. Nach der induktiven Hypothese und nach Lemma 5.5, für jeden Schritt s \(\in\){2, 3, 4} und jeden ehrlichen Verifizierer i \(\in\)HSV r,s, wenn Spieler i zum Zeitpunkt \(\beta\)r,s agiert ich = \(\alpha\)r,s ich + ts, er hat alle gesendeten Nachrichten erhalten von allen ehrlichen Prüfern in den Schritten s′ < s. Für Schritt 4 unterscheiden wir zwei mögliche Fälle. Fall 1. Kein Verifizierer i \(\in\)HSV r,4 setzt gi = 2. In diesem Fall gilt per Definition bi = 1 für alle Verifizierer i \(\in\)HSV r,4. Das heißt, sie beginnen mit einem Vereinbarung über 1 im binären BA-Protokoll. Sie haben möglicherweise keine Einigung über ihre Vis, aber das spielt keine Rolle, wie wir im binären BA sehen werden. Fall 2. Es gibt einen Verifizierer ˆi \(\in\)HSV r,4 mit gˆi = 2. In diesem Fall zeigen wir das (1) gi \(\geq\)1 für alle i \(\in\)HSV r,4, (2) Es gibt einen Wert v′ mit vi = v′ für alle i \(\in\)HSV r,4 und (3) Es existiert eine gültige Nachricht mr,1 \(\ell\) von einem Verifizierer \(\ell\) \(\in\)SV r,1 mit v′ = H(Br \(\ell\)). Da Spieler ˆi ehrlich ist und gˆi = 2 setzt, sind tatsächlich mehr als 2/3 aller gültigen Nachrichten mr,3 j er hat are für den gleichen Wert v′ ̸= \(\bot\) erhalten, und er hat vˆi = v′ gesetzt. Nach Eigenschaft (d) in Lemma 5.5 kann es für jeden anderen ehrlichen (r, 4)-Verifizierer i nicht mehr sein als 2/3 aller gültigen Nachrichten mr,3 j die i′ erhalten hat, sind für den gleichen Wert v′′ ̸= v′. Wenn i dementsprechend gi = 2 setzt, muss es sein, dass ich auch > 2/3 Mehrheit für v′ gesehen und gesetzt habe vi = v′, wie gewünscht. Betrachten Sie nun einen beliebigen Verifizierer i \(\in\)HSV r,4 mit gi < 2. Ähnlich wie bei der Analyse von Property (d) in Lemma 5.5, weil Spieler ˆi > 2/3 Mehrheit für v′ gesehen hat, mehr als 1 2|HSV r,3| ehrlich (r, 3)-Verifizierer haben v′ signiert. Weil ich alle Nachrichten von ehrlichen (r, 3)-Verifizierern von erhalten habe Zeit \(\beta\)r,4 ich = \(\alpha\)r,4 ich + t4, er hat insbesondere mehr als 1 erhalten 2|HSV r,3| Nachrichten von ihnen für v′. Weil |HSV r,3| > 2|MSV r,3|, i hat > ​​1/3 Mehrheit für v′ gesehen. Dementsprechend, Spieler i setzt gi = 1 und Eigenschaft (1) gilt. Setzt Spieler i unbedingt vi = v′? Angenommen, es gibt einen anderen Wert v′′ ̸= \(\bot\)so dass Spieler i hat auch > 1/3 Mehrheit für v'' gesehen. Einige dieser Nachrichten könnten von böswilligen Absendern stammen Prüfer, aber mindestens einer von ihnen stammt von einem ehrlichen Prüfer j \(\in\)HSV r,3: tatsächlich, weil |HSV r,3| > 2|MSV r,3| und ich habe alle Nachrichten von HSV r,3 erhalten, der Schadsoftware Verifizierer, von denen ich eine gültige (r, 3)-Nachricht erhalten habe, zählen < 1/3 aller gültigen Nachrichten, die er erhalten hat.Per Definition muss Spieler j > 2/3 Mehrheit für v'' unter allen gültigen (r, 2)-Nachrichten gesehen haben er hat erhalten. Wir haben jedoch bereits festgestellt, dass einige andere ehrliche (r, 3)-Verifizierer dies gesehen haben 2/3 Mehrheit für v′ (weil sie v′ unterzeichnet haben). Aufgrund der Eigenschaft (d) von Lemma 5.5 ist dies nicht möglich passieren und ein solcher Wert v'' existiert nicht. Somit muss Spieler i wie gewünscht vi = v′ gesetzt haben, und Eigenschaft (2) gilt. Angesichts der Tatsache, dass einige ehrliche (r, 3)-Prüfer eine Mehrheit von > 2/3 für v′ gesehen haben, sind einige (eigentlich) Mehr als die Hälfte der ehrlichen (r, 2)-Verifizierer haben für v′ unterschrieben und ihre Botschaften verbreitet. Durch die Konstruktion des Protokolls müssen diese ehrlichen (r, 2)-Verifizierer eine gültige Gültigkeit erhalten haben Nachricht an Herrn,1 \(\ell\) von irgendeinem Spieler \(\ell\) \(\in\)SV r,1 mit v′ = H(Br \(\ell\)), daher gilt Eigenschaft (3). BBA⋆. Wir unterscheiden wieder zwei Fälle. Fall 1. Alle Verifizierer i \(\in\)HSV r,4 haben bi = 1. Dies geschieht nach Fall 1 von GC. Als |MSV r,4| < tH, in diesem Fall kein Prüfer im SV r,5 könnte die gültigen (r, 4)-Nachrichten für Bit 0 sammeln oder generieren. Daher kein ehrlicher Verifizierer im HSV r,5 würde aufhören, weil er einen nicht leeren Block Br kennt. Darüber hinaus erfüllt s′ = 5 nicht, obwohl es mindestens tH gültige (r, 4)-Nachrichten für Bit 1 gibt s′ −2 ≡1 mod 3, daher würde kein ehrlicher Verifizierer im HSV r,5 aufhören, weil er Br = Br weiß ǫ. Stattdessen agiert jeder Prüfer i \(\in\)HSV r,5 zum Zeitpunkt \(\beta\)r,5 ich = \(\alpha\)r,5 ich + t5, bis er alles erhalten hat Von HSV r,4 gesendete Nachrichten gemäß Lemma 5.5. Somit hat Spieler, den ich gesehen habe, > 2/3 Mehrheit für 1 und setzt bi = 1. In Schritt 6, der ein Coin-Fixed-To-1-Schritt ist, erfüllt dort s′ −2 ≡0 mod 3, obwohl s′ = 5 Es existieren keine gültigen (r, 4)-Nachrichten für Bit 0, daher würde kein Verifizierer im HSV r,6 anhalten, weil er kennt einen nicht leeren Block Br. Mit s′ = 6 ist jedoch s′ −2 ≡1 mod 3 und es existiert |HSV r,5| \(\geq\)tH gültige (r, 5)-Nachrichten für Bit 1 von HSV r,5. Für jeden Verifizierer i \(\in\)HSV r,6, gemäß Lemma 5.5, zum oder vor dem Zeitpunkt \(\alpha\)r,6 ich + t6 Spieler i hat alle Nachrichten von HSV r,5 erhalten, daher stoppt i, ohne etwas weiterzugeben, und setzt Br = Br ǫ. Sein CERT r ist die Menge der gültigen (r, 5)-Nachrichten mr,5 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 j) von ihm empfangen, wenn er anhält. Lassen Sie den Spieler als Nächstes entweder ein ehrlicher Prüfer in einem Schritt s > 6 oder ein allgemeiner ehrlicher Benutzer sein (d. h. Nichtprüfer). Ähnlich wie beim Beweis von Lemma 5.2 setzt Spieler i Br = Br ǫ und legt sein eigenes fest CERT r soll die Menge der gültigen (r, 5)-Nachrichten mr,5 sein j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,5 j ) er hat erhalten. Schließlich, ähnlich wie in Lemma 5.2, T r+1 \(\leq\) min i\(\in\)HSV r,6 \(\alpha\)r,6 ich + t6 \(\leq\)T r + \(\lambda\) + t6 = T r + 10\(\lambda\) + Λ, und alle ehrlichen Benutzer kennen Br im Zeitintervall Ir+1, denn der erste ehrliche Benutzer ist wer weiß, dass Br dabei geholfen hat, die (r, 5)-Nachrichten in seinem CERT r zu verbreiten. Fall 2. Es existiert ein Verifizierer ˆi \(\in\)HSV r,4 mit bˆi = 0. Dies geschieht im Anschluss an Fall 2 von GC und ist der komplexere Fall. Durch die Analyse von GC, in diesem Fall liegt eine gültige Nachricht mr,1 vor \(\ell\) so dass vi = H(Br \(\ell\)) für alle i \(\in\)HSV r,4. Hinweis dass die Prüfer im HSV r,4 möglicherweise keine Einigung über ihre Bi’s haben. Für jeden Schritt s \(\in\){5, . . . , m + 3} und Verifier i \(\in\)HSV r,s, nach Lemma 5.5 Spieler hätte ich hat alle von allen ehrlichen Verifizierern in HSV r,4 \(\cup\) \(\cdots\) \(\cup\)HSV r,s−1 gesendeten Nachrichten erhalten, wenn er gewartet hat für die Zeit ts.Wir betrachten nun das folgende Ereignis E: Es gibt einen Schritt s∗\(\geq\)5, so dass zum ersten Mal Zeit in der binären BA sollte ein Spieler i∗\(\in\)SV r,s∗ (egal ob böswillig oder ehrlich) aufhören ohne etwas zu verbreiten. Wir verwenden „sollte aufhören“, um die Tatsache hervorzuheben, dass, wenn Spieler i∗ böswillig ist, dann darf er so tun, als ob er nicht protokollarisch aufhören dürfe und Botschaften nach Wahl des Gegners verbreiten. Darüber hinaus auch durch die Konstruktion des Protokolls (E.a) i∗ist in der Lage, mindestens die gültigen Nachrichten mr,s′−1 zu sammeln oder zu generieren j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ) für dasselbe v und s′, mit 5 \(\leq\)s′ \(\leq\)s∗und s′ −2 ≡0 mod 3; oder (E.b) i∗ist in der Lage, mindestens die gültigen Nachrichten mr,s′−1 zu sammeln oder zu generieren j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ) für dasselbe s′, mit 6 \(\leq\)s′ \(\leq\)s∗und s′ −2 ≡1 mod 3. Denn die ehrlichen (r, s′ −1)-Nachrichten werden von allen ehrlichen (r, s′)-Verifizierern vor ihnen empfangen sind mit dem Warten in Schritt s′ fertig, und weil der Gegner alles spätestens am erhält Ehrliche Benutzer, ohne Beschränkung der Allgemeinheit gilt s′ = s∗und Spieler i∗ ist bösartig. Beachten Sie das wir brauchten nicht, dass der Wert v in E.a der hash eines gültigen Blocks ist: wie noch deutlich wird in der Analyse ist v = H(Br \(\ell\)) in diesem Unterereignis. Im Folgenden analysieren wir zunächst Fall 2 nach Ereignis E und zeigen dann, dass der Wert von s∗ im Wesentlichen ist entsprechend auf Lr verteilt (also geschieht Ereignis E vor Schritt m + 3 mit Überwältigung). Wahrscheinlichkeit angesichts der Beziehungen für Parameter). Zunächst gilt für jeden Schritt 5 \(\leq\)s < s∗: Jeder ehrliche Verifizierer i \(\in\)HSV r,s hat die Zeit ts abgewartet und vi als Mehrheitsvotum der gesetzt gültige (r, s−1)-Nachrichten, die er erhalten hat. Seit Spieler i habe ich alle ehrlichen (r, s−1)-Nachrichten erhalten nach Lemma 5.5, da alle ehrlichen Verifizierer in HSV r,4 H(Br.) unterzeichnet haben \(\ell\)) folgenden Fall 2 von GC, und da |HSV r,s−1| > 2|MSV r,s−1| für jedes s haben wir per Induktion diesen Spieler i eingestellt hat vi = H(Br \(\ell\)). Das Gleiche gilt für jeden ehrlichen Verifizierer i \(\in\)HSV r,s∗, der nicht aufhört, ohne zu propagieren irgendetwas. Nun betrachten wir Schritt s∗ und unterscheiden vier Unterfälle. Fall 2.1.a. Das Ereignis E.a tritt ein und es gibt einen ehrlichen Verifizierer i′ \(\in\)HSV r,s∗, der das tun sollte auch aufhören, ohne etwas zu verbreiten. In diesem Fall gilt s∗−2 ≡0 mod 3 und Schritt s∗ ist ein Coin-Fixed-To-0-Schritt. Von Definition: Spieler i′ hat mindestens tH gültige (r, s∗−1)-Nachrichten der Form erhalten (ESIGj(0), ESIGj(v), \(\sigma\)r,s∗−1 j ). Da alle Verifizierer in HSV r,s∗−1 H(Br.) signiert haben \(\ell\)) und |MSV r,s∗−1| < tH, wir haben v = H(Br \(\ell\)). Da mindestens tH −|MSV r,s∗−1| \(\geq\)1 der von i′ empfangenen (r, s∗−1)-Nachrichten für 0 und v werden von Verifizierern in HSV r,s∗−1 nach der Zeit T r +ts∗−1 \(\geq\)T r +t4 \(\geq\)T r +\(\lambda\)+Λ \(\geq\) \(\beta\)r,1 gesendet \(\ell\) +Λ, Spieler i′ hat mr,1 erhalten \(\ell\) bis er diese (r, s∗−1)-Nachrichten erhält. Also Spieler i′ bleibt stehen, ohne etwas zu verbreiten; setzt Br = Br \(\ell\); und setzt sein eigenes CERT r auf das Menge gültiger (r, s∗−1)-Nachrichten für 0 und v, die er empfangen hat. Als nächstes zeigen wir, dass jeder andere Verifizierer i \(\in\)HSV r,s∗ entweder mit Br = Br gestoppt hat \(\ell\), oder hat bi = 0 gesetzt und propagiert (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s ich). In der Tat, weil Schritt s∗ Es ist das erste Mal, dass ein Verifizierer anhält, ohne etwas zu verbreiten, aber das ist nicht der Fall Es gibt einen Schritt s′ < s∗mit s′ −2 ≡1 mod 3, sodass tH (r, s′ −1)-Verifizierer das Vorzeichen 1 haben. Dementsprechend stoppt kein Verifizierer im HSV r,s∗mit Br = Br ǫ.Darüber hinaus gilt, dass alle ehrlichen Prüfer in den Schritten {4, 5, . . . , s∗−1} haben das Vorzeichen H(Br \(\ell\)) gibt es Es gibt keinen Schritt s′ \(\leq\)s∗mit s′ −2 ≡0 mod 3, sodass tH (r, s′ −1)-Verifizierer vorzeichenbehaftet sind einige v′′ ̸= H(Br \(\ell\)) – tatsächlich |MSV r,s′−1| < tH. Dementsprechend stoppt kein Verifizierer im HSV r,s∗ mit Br ̸= Br ǫ und Br ̸= Br \(\ell\). Das heißt, wenn ein Spieler i \(\in\)HSV r,s∗ ohne angehalten hat Wenn er etwas propagiert, muss er Br = Br gesetzt haben \(\ell\). Wenn ein Spieler i \(\in\)HSV r,s∗die Zeit ts∗abgewartet und zur Zeit eine Nachricht verbreitet hat \(\beta\)r,s∗ ich = \(\alpha\)r,s∗ ich + ts∗, er hat alle Nachrichten vom HSV r,s∗−1 erhalten, darunter mindestens tH −|MSV r,s∗−1| davon für 0 und v. Wenn ich > 2/3 Mehrheit für 1 gesehen habe, dann er hat mehr als 2(tH −|MSV r,s∗−1|) gültige (r, s∗−1)-Nachrichten für 1 gesehen, mit mehr als 2tH −3|MSV r,s∗−1| davon von ehrlichen (r, s∗−1)-Verifizierern. Dies impliziert jedoch |HSV r,s∗−1| \(\geq\)tH−|MSV r,s∗−1|+2tH−3|MSV r,s∗−1| > 2n−4|MSV r,s∗−1|, widersprüchlich die Tatsache, dass |HSV r,s∗−1| + 4|MSV r,s∗−1| < 2n, was sich aus den Beziehungen für die Parameter ergibt. Dementsprechend sehe ich nicht > 2/3 Mehrheit für 1, und er setzt bi = 0, weil Schritt s∗ ein Coin-Fixed-To-0-Schritt ist. So wie wir es getan haben gesehen, vi = H(Br \(\ell\)). Somit propagiert i (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s i ) wie wir es wollten zeigen. Für Schritt s∗+ 1, da Spieler i′ dabei geholfen hat, die Nachrichten in seinem CERT r zu verbreiten am oder vor der Zeit \(\alpha\)r,s∗ ich‘ + ts∗, alle ehrlichen Prüfer im HSV r,s∗+1 haben mindestens erhalten tH gültige (r, s∗−1)-Nachrichten für Bit 0 und Wert H(Br \(\ell\)) am oder bevor sie fertig sind warten. Darüber hinaus werden Verifizierer in HSV r,s∗+1 nicht aufhören, bevor sie diese (r, s∗−1)- erhalten. Nachrichten, da keine anderen gültigen (r, s′ −1)-Nachrichten für Bit 1 mit existieren s′ −2 ≡1 mod 3 und 6 \(\leq\)s′ \(\leq\)s∗+ 1, nach der Definition von Schritt s∗. Insbesondere Step s∗+ 1 selbst ist ein Coin-Fixed-To-1-Schritt, aber kein ehrlicher Verifizierer im HSV r,s∗hat sich verbreitet eine Nachricht für 1 und |MSV r,s∗| < tH. Somit stoppen alle ehrlichen Verifizierer im HSV r,s∗+1, ohne etwas zu propagieren, und setzen Br = Br \(\ell\): wie zuvor haben sie mr,1 erhalten \(\ell\) bevor sie die gewünschten (r, s∗−1)-Nachrichten erhalten.20 Das Gleiche gilt für alle ehrlichen Prüfer in zukünftigen Schritten und alle ehrlichen Benutzer im Allgemeinen. Insbesondere wissen sie alle, dass Br = Br ist \(\ell\)innerhalb des Zeitintervalls Ir+1 und T r+1 \(\leq\) \(\alpha\)r,s∗ ich‘ + ts∗\(\leq\)T r + \(\lambda\) + ts∗. Fall 2.1.b. Das Ereignis E.b tritt ein und es gibt einen ehrlichen Verifizierer i′ \(\in\)HSV r,s∗, der das tun sollte auch aufhören, ohne etwas zu verbreiten. In diesem Fall haben wir s∗−2 ≡1 mod 3 und Schritt s∗ ist ein Coin-Fixed-To-1-Schritt. Die Analyse ähnelt Fall 2.1.a und viele Details wurden weggelassen. 20Wenn er böswillig ist, könnte er Herrn1 aussenden \(\ell\) zu spät, in der Hoffnung, dass einige ehrliche Benutzer/Prüfer mr,1 nicht erhalten haben \(\ell\) noch wenn sie dafür das gewünschte Zertifikat erhalten. Da der Verifizierer ˆi \(\in\)HSV r,4 jedoch bˆi = 0 und vˆi = H(Br \(\ell\)), wie bevor wir wissen, dass mehr als die Hälfte der ehrlichen Verifizierer i \(\in\)HSV r,3 vi = H(Br \(\ell\)). Dies impliziert noch mehr mehr als die Hälfte der ehrlichen Verifizierer i \(\in\)HSV r,2 haben vi = H(Br \(\ell\)), und diese (r, 2)-Verifizierer haben alle mr,1 erhalten \(\ell\). Als die Der Gegner kann einen Verifizierer nicht von einem Nichtverifizierer unterscheiden, er kann die Ausbreitung von mr,1 nicht ins Visier nehmen \(\ell\) zu (r, 2)-Verifizierern ohne dass die Nichtprüfer es sehen. Tatsächlich ist mit hoher Wahrscheinlichkeit mehr als die Hälfte (oder ein guter konstanter Bruchteil) aller ehrlichen Benutzer haben mr,1 gesehen \(\ell\) nachdem sie vom Beginn ihrer eigenen Runde r an auf t2 gewartet haben. Von hier an ist die Zeit \(\lambda\)′, die für mr,1 benötigt wird \(\ell\) um die verbleibenden ehrlichen Benutzer zu erreichen, ist viel kleiner als Λ, und der Einfachheit halber tun wir dies nicht Schreiben Sie es in der Analyse auf. Wenn 4\(\lambda\) \(\geq\) \(\lambda\)′, dann wird die Analyse ohne jegliche Änderung durchgeführt: am Ende von Schritt 4 alle Ehrliche Benutzer hätten mr,1 erhalten \(\ell\). Wenn die Größe des Blocks enorm wird und 4\(\lambda\) < \(\lambda\)′, dann in den Schritten 3 und 4: Das Protokoll könnte jeden Prüfer auffordern, auf \(\lambda\)′/2 statt auf 2\(\lambda\) zu warten, und die Analyse bleibt bestehen.Wie zuvor muss Spieler i′ mindestens tH gültige (r, s∗−1)-Nachrichten der Form erhalten haben (ESIGj(1), ESIGj(vj), \(\sigma\)r,s∗−1 j ). Auch hier gibt es aufgrund der Definition von s∗ keine Stufe 5 \(\leq\)s′ < s∗mit s′ −2 ≡0 mod 3, wobei mindestens tH (r, s′ −1)-Verifizierer 0 vorzeichenbehaftet haben und das gleiche v. Somit stoppt Spieler i′, ohne etwas zu propagieren; setzt Br = Br ǫ; und Sets sein eigenes CERT r sei die Menge der gültigen (r, s∗−1)-Nachrichten für Bit 1, die er empfangen hat. Darüber hinaus hat jeder andere Verifizierer i \(\in\)HSV r,s∗ entweder mit Br = Br aufgehört ǫ , oder hat bi = gesetzt 1 und propagiert (ESIGi(1), ESIGi(vi), \(\sigma\)r,s∗ ich ). Seit Spieler i′ bei der Verbreitung mitgeholfen hat die (r, s∗−1)-Nachrichten in seinem CERT r nach Zeit \(\alpha\)r,s∗ ich‘ + ts∗, wieder alle ehrlichen Prüfer drin HSV r,s∗+1 stoppt, ohne etwas zu propagieren, und setzt Br = Br ǫ . Ebenso alles ehrlich Benutzer wissen, dass Br = Br ist ǫ innerhalb des Zeitintervalls Ir+1 und T r+1 \(\leq\) \(\alpha\)r,s∗ ich‘ + ts∗\(\leq\)T r + \(\lambda\) + ts∗. Fall 2.2.a. Das Ereignis E.a tritt ein und es gibt keinen ehrlichen Verifizierer i′ \(\in\)HSV r,s∗who sollte auch aufhören, ohne etwas zu verbreiten. Beachten Sie in diesem Fall, dass Spieler i∗ über ein gültiges CERT r verfügen könnte i∗bestehend aus dem gewünschten tH (r, s∗−1)-Nachrichten, die der Gegner sammeln oder generieren kann. Allerdings ist das böswillig Prüfer helfen möglicherweise nicht dabei, diese Botschaften zu verbreiten, daher können wir nicht zu dem Schluss kommen, dass dies ehrlich ist Benutzer erhalten sie rechtzeitig \(\lambda\). Tatsächlich ist |MSV r,s∗−1| dieser Nachrichten stammen möglicherweise von böswillige (r, s∗−1)-Verifizierer, die ihre Nachrichten überhaupt nicht verbreiteten, sondern nur verschickten sie an die böswilligen Verifizierer in Schritt s∗ weiter. Ähnlich wie in Fall 2.1.a gilt hier s∗−2 ≡0 mod 3, Schritt s∗ist ein Coin-Fixed-To-0-Schritt, und die (r, s∗−1)-Nachrichten in CERT r i∗are für Bit 0 und v = H(Br \(\ell\)). In der Tat, alles ehrlich (r, s∗−1)-Verifizierer signieren v, daher kann der Gegner keine gültigen (r, s∗−1)-Nachrichten generieren für ein anderes v′. Darüber hinaus haben alle ehrlichen (r, s∗)-Verifizierer die Zeit ts∗ abgewartet und sehen keine > 2/3 Mehrheit für Bit 1, wiederum weil |HSV r,s∗−1| + 4|MSV r,s∗−1| < 2n. Also jeder ehrliche Prüfer i \(\in\)HSV r,s∗sets bi = 0, vi = H(Br \(\ell\)) mit Stimmenmehrheit und propagiert mr,s∗ ich = (ESIGi(0), ESIGi(H(Br \(\ell\))), \(\sigma\)r,s∗ ich ) zum Zeitpunkt \(\alpha\)r,s∗ ich + ts∗. Betrachten Sie nun die ehrlichen Verifizierer in Schritt s∗+ 1 (was ein Coin-Fixed-To-1-Schritt ist). Wenn die Der Gegner sendet die Nachrichten tatsächlich in CERT r i∗zu einigen von ihnen und veranlasst sie dazu Stopp, dann ähnlich wie in Fall 2.1.a, alle ehrlichen Benutzer wissen Br = Br \(\ell\)innerhalb des Zeitintervalls Ir+1 und T r+1 \(\leq\)T r + \(\lambda\) + ts∗+1. Ansonsten haben alle ehrlichen Verifizierer in Schritt s∗+1 alle (r, s∗)-Nachrichten für 0 und erhalten H(Br \(\ell\)) aus HSV r,s∗nach Wartezeit ts∗+1, was zu > 2/3 Mehrheit führt, weil |HSV r,s∗| > 2|MSV r,s∗|. Somit verbreiten alle Verifizierer im HSV r,s∗+1 ihre Nachrichten für 0 und H(Br \(\ell\)) entsprechend. Beachten Sie, dass die Verifizierer in HSV r,s∗+1 nicht mit Br = Br aufhören \(\ell\), weil Schritt s∗+ 1 kein Coin-Fixed-To-0-Schritt ist. Betrachten Sie nun die ehrlichen Verifizierer in Schritt s∗+2 (bei dem es sich um einen Coin-Echt-Flipped-Schritt handelt). Wenn der Gegner die Nachrichten in CERT r sendet i∗zu einigen von ihnen und bringt sie zum Anhalten, Andererseits wissen alle ehrlichen Benutzer, dass Br = Br ist \(\ell\)innerhalb des Zeitintervalls Ir+1 und T r+1 \(\leq\)T r + \(\lambda\) + ts∗+2.Ansonsten haben alle ehrlichen Prüfer in Schritt s∗+ 2 alle (r, s∗+ 1)-Nachrichten für erhalten 0 und H(Br \(\ell\)) aus HSV r,s∗+1 nach Wartezeit ts∗+2, was zu > 2/3 Mehrheit führt. Somit verbreiten sie alle ihre Botschaften für 0 und H(Br \(\ell\)) dementsprechend: das tun sie in diesem Fall nicht „eine Münze werfen“. Beachten Sie erneut, dass sie nicht aufhören, ohne sich zu verbreiten. weil Schritt s∗+ 2 kein Coin-Fixed-To-0-Schritt ist. Schließlich für die ehrlichen Verifizierer in Schritt s∗+3 (was ein weiterer Coin-Fixed-To-0-Schritt ist): alle von ihnen hätten mindestens die gültigen Nachrichten für 0 und H(Br.) erhalten \(\ell\)) aus HSV s∗+2, wenn sie wirklich die Zeit ts∗+3 warten. Also, ob der Gegner die Nachrichten sendet oder nicht in CERT r i∗zu jedem von ihnen stoppen alle Verifizierer in HSV r,s∗+3 mit Br = Br \(\ell\), ohne irgendetwas verbreiten. Abhängig davon, wie sich der Gegner verhält, kann es sein, dass einige von ihnen dies tun ihr eigenes CERT r bestehend aus diesen (r, s∗−1)-Nachrichten in CERT r i∗, und die anderen haben ihr eigenes CERT r bestehend aus diesen (r, s∗+ 2)-Nachrichten. Auf jeden Fall alle ehrlichen Nutzer weiß Br = Br \(\ell\)innerhalb des Zeitintervalls Ir+1 und T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3. Fall 2.2.b. Ereignis E.b tritt ein und es gibt keinen ehrlichen Verifizierer i′ \(\in\)HSV r,s∗who sollte auch aufhören, ohne etwas zu verbreiten. Die Analyse in diesem Fall ähnelt der in Fall 2.1.b und Fall 2.2.a, daher viele Details wurden weggelassen. Insbesondere CERT r i∗besteht aus den tH gewünschten (r, s∗−1)-Nachrichten für Bit 1, das der Gegner sammeln oder erzeugen kann, s∗−2 ≡1 mod 3, Schritt s∗ist a Coin-Fixed-To-1-Schritt, und kein ehrlicher (r, s∗)-Verifizierer hätte > 2/3 Mehrheit für 0 sehen können. Somit setzt jeder Verifizierer i \(\in\)HSV r,s∗ bi = 1 und propagiert mr,s∗ ich = (ESIGi(1), ESIGi(vi), \(\sigma\)r,s∗ ich ) zum Zeitpunkt \(\alpha\)r,s∗ ich + ts∗. Ähnlich wie in Fall 2.2.a, in höchstens 3 weiteren Schritten (d. h. dem Protokoll erreicht Schritt s∗+3, was ein weiterer Coin-Fixed-To-1-Schritt ist), wissen alle ehrlichen Benutzer, dass Br = Br ist ǫ innerhalb des Zeitintervalls Ir+1. Darüber hinaus kann T r+1 \(\leq\)T r+\(\lambda\)+ts∗+1 oder \(\leq\)T r+\(\lambda\)+ts∗+2 sein, oder \(\leq\)T r + \(\lambda\) + ts∗+3, je nachdem, wann ein ehrlicher Prüfer zum ersten Mal in der Lage ist, aufzuhören ohne sich zu verbreiten. Durch die Kombination der vier Unterfälle haben wir festgestellt, dass alle ehrlichen Benutzer Br innerhalb des Zeitintervalls kennen Ir+1, mit T r+1 \(\leq\)T r + \(\lambda\) + ts∗in den Fällen 2.1.a und 2.1.b, und T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 in den Fällen 2.2.a und 2.2.b. Es bleibt die Obergrenze von s∗ und damit T r+1 für Fall 2, und wir tun dies, indem wir überlegen, wie Oftmals werden die Coin-Genuinely-Flipped-Schritte tatsächlich im Protokoll ausgeführt: das heißt, Einige ehrliche Prüfer haben tatsächlich eine Münze geworfen. Legen Sie insbesondere willkürlich einen Coin-Echt-umgedrehten Schritt s′ fest (d. h. 7 \(\leq\) s′ \(\leq\) m + 2 und s′ −2 ≡2 mod 3) und sei \(\ell\)′ \(\triangleq\)arg minj\(\in\)SV r,s′−1 H(\(\sigma\)r,s′−1 j ). Nehmen wir zunächst an, dass s′ < s∗, denn sonst wirft kein ehrlicher Verifizierer in Schritt s′ tatsächlich eine Münze, heißt es weiter oben Diskussionen. Nach der Definition von SV r,s′−1 ist der hash-Wert des Berechtigungsnachweises von \(\ell\)′ auch der kleinste unter ihnen alle Benutzer in PKr−k. Da es sich bei der Funktion hash um eine zufällige Funktion oracle handelt, ist Spieler \(\ell\)′ im Idealfall ehrlich Wahrscheinlichkeit mindestens h. Wie wir später zeigen werden, auch wenn der Gegner sein Bestes versucht, das vorherzusagen Ausgabe des Zufalls oracle und Neigung der Wahrscheinlichkeit, Spieler \(\ell\)′ ist immer noch ehrlich mit der Wahrscheinlichkeitmindestens ph = h2(1 + h −h2). Im Folgenden betrachten wir den Fall, in dem dies tatsächlich geschieht: Das heißt, \(\ell\)′ \(\in\)HSV r,s′−1. Beachten Sie, dass jeder ehrliche Verifizierer i \(\in\)HSV r,s′ alle Nachrichten von HSV r,s′−1 bis erhalten hat Zeit \(\alpha\)r,s′ ich + ts′. Wenn Spieler i eine Münze werfen muss (d. h. er hat nicht mehr als 2/3 Mehrheit dafür gesehen). das gleiche Bit b \(\in\){0, 1}), dann setzt er bi = lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )). Wenn es einen anderen Ehrlichen gibt Verifizierer i′ \(\in\)HSV r,s′, der > 2/3 Mehrheit für ein Bit b \(\in\){0, 1} gesehen hat, dann durch Eigenschaft (d) von Lemma 5.5 hätte kein ehrlicher Verifizierer im HSV r,s′ eine Zeit lang eine Mehrheit von > 2/3 gesehen b′ ̸= b. Da lsb(H(\(\sigma\)r,s′−1 \(\ell\)′ )) = b mit Wahrscheinlichkeit 1/2, alle ehrlichen Prüfer im HSV r,s′ erreichen eine Übereinstimmung über b mit Wahrscheinlichkeit 1/2. Wenn ein solcher Verifizierer i′ nicht existiert, dann natürlich alle Ehrliche Verifizierer in HSV r,s′ sind sich über das Bit lsb(H(\(\sigma\)r,s′−1) einig \(\ell\)′ )) mit Wahrscheinlichkeit 1. Wenn wir die Wahrscheinlichkeit für \(\ell\)′ \(\in\)HSV r,s′−1 kombinieren, erhalten wir, dass die ehrlichen Verifizierer in HSV r,s′ eine Einigung über ein Bit b \(\in\){0, 1} mit einer Wahrscheinlichkeit von mindestens ph erzielen 2 = h2(1+h−h2) 2 . Darüber hinaus durch Induktion auf der Mehrheitsabstimmung wie zuvor haben alle ehrlichen Verifizierer im HSV r,s′ ihre vi’s festgelegt sein H(Br \(\ell\)). Sobald also in Schritt s′ eine Einigung über b erzielt wird, ist T r+1 entweder \(\leq\)T r + \(\lambda\) + ts′+1 oder \(\leq\)T r + \(\lambda\) + ts′+2, abhängig davon, ob b = 0 oder b = 1, entsprechend der Analyse der Fälle 2.1.a und 2.1.b. In Insbesondere wird kein weiterer Coin-Genuinely-Flipped-Schritt ausgeführt: das heißt, die Verifizierer in Solche Schritte überprüfen immer noch, ob sie die Verifizierer sind, und warten daher, aber ohne sie werden sie alle aufhören irgendetwas verbreiten. Dementsprechend wird vor Schritt s∗ die Anzahl der Ausführungen der Coin-GenuinelyFlipped-Schritte entsprechend der Zufallsvariablen Lr verteilt. Schritt s′ vermieten laut Lr der letzte Coin-Echt-Flipped-Schritt bei der Konstruktion des Protokolls sein wir haben s′ = 4 + 3Lr. Wann sollte der Gegner den Schritt durchführen, wenn er T r+1 so lange verzögern möchte möglich? Wir können sogar davon ausgehen, dass der Gegner die Verwirklichung von Lr im Voraus kennt. Wenn s∗> s′, dann ist es nutzlos, weil sich die ehrlichen Prüfer bereits geeinigt haben Schritt s′. Natürlich wäre s∗ in diesem Fall s′ +1 oder s′ +2, wiederum abhängig davon, ob b = 0 oder b = 1. Dies trifft jedoch tatsächlich auf die Fälle 2.1.a und 2.1.b zu, und das resultierende T r+1 ist genau das das Gleiche wie in diesem Fall. Genauer gesagt, T r+1 \(\leq\)T r + \(\lambda\) + ts∗\(\leq\)T r + \(\lambda\) + ts′+2. Wenn s∗< s′ −3 – das heißt, s∗ liegt vor dem vorletzten Coin-Echt-Flipped-Schritt – dann durch die Analyse der Fälle 2.2.a und 2.2.b, T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 < T r + \(\lambda\) + ts′. Das heißt, der Gegner sorgt tatsächlich dafür, dass die Vereinbarung über Br schneller zustande kommt. Wenn s∗= s′ −2 oder s′ −1 – also der Coin-Fixed-To-0-Schritt oder der Coin-Fixed-To-1-Schritt unmittelbar vor Schritt s′ – dann durch die Analyse der vier Unterfälle die ehrlichen Prüfer in Schritte s′ können keine Münzen mehr werfen, weil sie entweder angehalten haben, ohne sich fortzupflanzen, oder > 2/3 Mehrheit für das gleiche Bit gesehen haben b. Deshalb haben wir T r+1 \(\leq\)T r + \(\lambda\) + ts∗+3 \(\leq\)T r + \(\lambda\) + ts′+2.Zusammenfassend lässt sich sagen, dass wir, egal was s∗ ist, haben T r+1 \(\leq\)T r + \(\lambda\) + ts′+2 = T r + \(\lambda\) + t3Lr+6 = T r + \(\lambda\) + (2(3Lr + 6) −3)\(\lambda\) + Λ = T r + (6Lr + 10)\(\lambda\) + Λ, wie wir zeigen wollten. Der schlimmste Fall ist, wenn s∗= s′ −1 und Fall 2.2.b eintritt. Durch die Kombination der Fälle 1 und 2 des binären BA-Protokolls gilt Lemma 5.3. ■ 5.9 Sicherheit des Seed Qr und Wahrscheinlichkeit eines ehrlichen Führers Es bleibt Lemma 5.4 zu beweisen. Denken Sie daran, dass die Verifizierer in Runde r aus PKr−k und stammen werden entsprechend der Größe Qr−1 gewählt. Der Grund für die Einführung des Lookback-Parameters k Ziel ist es, sicherzustellen, dass der Gegner in der Runde r −k in der Lage ist, neue böswillige Benutzer hinzuzufügen zu PKr−k kann er die Größe Qr−1 nur mit vernachlässigbarer Wahrscheinlichkeit vorhersagen. Beachten Sie, dass die Die Funktion hash ist eine zufällige Funktion oracle und Qr−1 ist eine ihrer Eingaben bei der Auswahl von Verifizierern für Runde r. Unabhängig davon, wie böswillig Benutzer zu PKr-k hinzugefügt werden, gilt dies aus Sicht des Gegners für jeden Einer von ihnen wird immer noch als Verifizierer in einem Schritt der Runde r mit der erforderlichen Wahrscheinlichkeit p (oder) ausgewählt p1 für Schritt 1). Genauer gesagt haben wir das folgende Lemma. Lemma 5.6. Mit k = O(log1/2 F), für jede Runde r, mit überwältigender Wahrscheinlichkeit der Gegner hat Qr−1 in der Runde r −k nicht an den Zufallsgenerator oracle abgefragt. Nachweisen. Wir gehen per Induktion vor. Nehmen Sie an, dass der Gegner für jede Runde \(\gamma\) < r keine Abfrage durchgeführt hat Q\(\gamma\)−1 zum zufälligen oracle zurück in Runde \(\gamma\) −k.21 Betrachten Sie das folgende mentale Spiel, das von gespielt wird der Gegner in Runde r −k, der versucht, Qr−1 vorherzusagen. In Schritt 1 jeder Runde \(\gamma\) = r −k, . . . , r −1, gegeben ein spezifisches Q\(\gamma\)−1, das nicht an den Zufallsgenerator abgefragt wird oracle, indem die Spieler i \(\in\)PK\(\gamma\)−k gemäß den hash Werten H(SIGi(\(\gamma\), 1, Q\(\gamma\)−1)) geordnet werden zunehmend erhalten wir eine zufällige Permutation über PK\(\gamma\)−k. Per Definition ist der Anführer \(\ell\) \(\gamma\) der erster Benutzer in der Permutation und ist ehrlich mit der Wahrscheinlichkeit h. Darüber hinaus, wenn PK\(\gamma\)−k groß ist Genug, für jede ganze Zahl x \(\geq\) 1, die Wahrscheinlichkeit, dass die ersten x Benutzer in der Permutation alle sind bösartig, aber der (x + 1)st ist ehrlich, ist (1 −h)xh. Wenn \(\ell\) \(\gamma\) ehrlich ist, dann ist Q\(\gamma\) = H(SIG\(\ell\) \(\gamma\)(Q\(\gamma\)−1), \(\gamma\)). Da der Gegner die Signatur nicht fälschen kann von \(\ell\) \(\gamma\) ist Q\(\gamma\) aus der Sicht des Gegners gleichmäßig und zufällig verteilt und, außer mit exponentiell kleiner Wahrscheinlichkeit22 wurde bei Runde r −k nicht nach H abgefragt. Da jeder Q\(\gamma\)+1, Q\(\gamma\)+2, . . . , Qr−1 ist jeweils die Ausgabe von H mit Q\(\gamma\), Q\(\gamma\)+1, . . . , Qr−2 als einer der Eingänge, Für den Gegner sehen sie alle zufällig aus und der Gegner hätte Qr−1 nicht an H abfragen können rund r −k. Dementsprechend ist dies der einzige Fall, in dem der Gegner Qr−1 mit guter Wahrscheinlichkeit in der Runde vorhersagen kann r−k ist, wenn alle Anführer \(\ell\)r−k, . . . , \(\ell\)r−1 sind bösartig. Betrachten Sie erneut eine Runde \(\gamma\) \(\in\){r−k . . . , r−1} und die zufällige Permutation über PK\(\gamma\)−k, die durch die entsprechenden hash-Werte induziert wird. Wenn für einige x \(\geq\)2, die ersten x −1 Benutzer in der Permutation sind alle böswillig und der x-te ist ehrlich, dann ist der Der Gegner hat x mögliche Auswahlmöglichkeiten für Q\(\gamma\): entweder in der Form H(SIGi(Q\(\gamma\)−1, \(\gamma\))), wobei i eine davon ist 21Da k eine kleine ganze Zahl ist, kann man ohne Beschränkung der Allgemeinheit davon ausgehen, dass die ersten k Runden des Protokolls ausgeführt werden in einer sicheren Umgebung und die induktive Hypothese gilt für diese Runden. 22Das heißt, exponentiell in der Länge der Ausgabe von H. Beachten Sie, dass diese Wahrscheinlichkeit viel kleiner als F ist.die ersten x−1 böswilligen Benutzer, indem Spieler i zum eigentlichen Anführer der Runde \(\gamma\) gemacht wird; oder H(Q\(\gamma\)−1, \(\gamma\)), durch erzwingt B\(\gamma\) = B\(\gamma\) ǫ . Andernfalls ist der Anführer der Runde \(\gamma\) der erste ehrliche Benutzer in der Permutation und Qr−1 wird für den Gegner unvorhersehbar. Welche der oben genannten x Optionen von Q\(\gamma\) sollte der Gegner verfolgen? Um dem Gegner zu helfen Um diese Frage zu beantworten, machen wir ihn im mentalen Spiel tatsächlich mächtiger als er tatsächlich ist wie folgt. Erstens kann der Gegner in Wirklichkeit nicht den hash eines ehrlichen Benutzers berechnen Signatur, kann daher nicht für jedes Q\(\gamma\) die Anzahl x(Q\(\gamma\)) der böswilligen Benutzer zu Beginn bestimmen der zufälligen Permutation in Runde \(\gamma\) + 1, die durch Q\(\gamma\) induziert wird. Im mentalen Spiel geben wir ihm das Zahlen x(Q\(\gamma\)) kostenlos. Zweitens: In der Realität sind es alle ersten x Benutzer in der Permutation Böswillig zu sein bedeutet nicht unbedingt, dass sie alle zum Anführer gemacht werden können, denn die hash Werte ihrer Signaturen müssen ebenfalls kleiner als p1 sein. Wir haben diese Einschränkung im Mentalen ignoriert Spiel, was dem Gegner noch mehr Vorteile verschafft. Es ist leicht zu erkennen, dass im mentalen Spiel die optimale Option für den Gegner, bezeichnet mit ˆQ\(\gamma\), ist derjenige, der zu Beginn des Zufalls die längste Folge böswilliger Benutzer erzeugt Permutation in Runde \(\gamma\) + 1. Tatsächlich hängt das Protokoll bei einem bestimmten Q\(\gamma\) nicht von Q\(\gamma\)−1 ab mehr und der Gegner kann sich ausschließlich auf die neue Permutation in Runde \(\gamma\) + 1 konzentrieren, die das hat gleiche Verteilung für die Anzahl böswilliger Benutzer zu Beginn. Dementsprechend in jeder Runde \(\gamma\), das oben erwähnte ˆQ\(\gamma\) gibt ihm die größte Anzahl an Optionen für Q\(\gamma\)+1 und maximiert somit die Wahrscheinlichkeit, dass die aufeinanderfolgenden Anführer alle böswillig sind. Daher folgt der Gegner im mentalen Spiel einer Markov-Kette aus Runde r − k um r −1 zu runden, wobei der Zustandsraum {0} \(\cup\){x : x \(\geq\)2} ist. Zustand 0 stellt die Tatsache dar, dass die Der erste Benutzer in der zufälligen Permutation in der aktuellen Runde \(\gamma\) ist ehrlich, daher scheitert der Gegner Spiel zur Vorhersage von Qr−1; und jeder Zustand x \(\geq\)2 stellt die Tatsache dar, dass die ersten x −1 Benutzer im Permutationen sind bösartig und das x-te ist ehrlich, daher hat der Gegner x Optionen für Q\(\gamma\). Die Übergangswahrscheinlichkeiten P(x, y) sind wie folgt. • P(0, 0) = 1 und P(0, y) = 0 für jedes y \(\geq\)2. Das heißt, der Gegner scheitert beim ersten Mal am Spiel Der Benutzer in der Permutation wird ehrlich. • P(x, 0) = hx für jedes x \(\geq\)2. Das heißt, mit der Wahrscheinlichkeit hx haben alle x zufälligen Permutationen Da ihre ersten Benutzer ehrlich sind, scheitert der Gegner in der nächsten Runde am Spiel. • Für jedes x \(\geq\)2 und y \(\geq\)2 ist P(x, y) die Wahrscheinlichkeit, dass unter den x zufälligen Permutationen Induziert durch die x-Optionen von Q\(\gamma\), der längsten Sequenz böswilliger Benutzer zu Beginn einige davon sind y −1, daher hat der Gegner in der nächsten Runde y Optionen für Q\(\gamma\)+1. Das heißt, P(x, y) = y−1 X i=0 (1 −h)ih !x − y−2 X i=0 (1 −h)ih !x = (1 −(1 −h)y)x −(1 −(1 −h)y−1)x. Beachten Sie, dass Zustand 0 der einzige absorbierende Zustand in der Übergangsmatrix P und in jedem anderen Zustand ist x hat eine positive Wahrscheinlichkeit, gegen 0 zu gehen. Wir sind daran interessiert, die Zahl k von nach oben zu begrenzen Runden, die benötigt werden, damit die Markov-Kette mit überwältigender Wahrscheinlichkeit gegen 0 konvergiert: das heißt, nein Egal in welchem Zustand die Kette beginnt, mit überwältigender Wahrscheinlichkeit verliert der Gegner das Spiel und kann Qr−1 in der Runde r −k nicht vorhersagen. Betrachten Sie die Übergangsmatrix P (2) \(\triangleq\)P \(\cdot\) P nach zwei Runden. Es ist leicht zu erkennen, dass P (2)(0, 0) = 1 und P (2)(0, x) = 0 für jedes x \(\geq\)2. Für jedes x \(\geq\)2 und y \(\geq\)2 gilt, da P(0, y) = 0 P (2)(x, y) = P(x, 0)P(0, y) + X z\(\geq\)2 P(x, z)P(z, y) = X z\(\geq\)2 P(x, z)P(z, y).Wenn ¯h \(\triangleq\)1 −h gilt, gilt P(x, y) = (1 −¯hy)x −(1 −¯hy−1)x und P (2)(x, y) = X z\(\geq\)2 [(1 −¯hz)x −(1 −¯hz−1)x][(1 −¯hy)z −(1 −¯hy−1)z]. Nachfolgend berechnen wir den Grenzwert von P (2)(x,y) P (x,y) wenn h auf 1 geht – das heißt, ¯h geht auf 0. Beachten Sie, dass die höchste Ordnung von ¯h in P(x, y) ist ¯hy−1, mit Koeffizient x. Dementsprechend lim h \(\to\) 1 P (2)(x, y) P(x, y) = lim ¯h \(\to\) 0 P (2)(x, y) P(x, y) = lim ¯h \(\to\) 0 P (2)(x, y) x¯hy−1 + O(¯hy) = lim ¯h \(\to\) 0 P z\(\geq\)2[x¯hz−1 + O(¯hz)][z¯hy−1 + O(¯hy)] x¯hy−1 + O(¯hy) = lim ¯h \(\to\) 0 2x¯hy + O(¯hy+1) x¯hy−1 + O(¯hy) = lim ¯h \(\to\) 0 2x¯hy x¯hy−1 = lim ¯h \(\to\) 0 2¯h = 0. Wenn h hinreichend nahe bei 1,23 liegt, haben wir P (2)(x, y) P(x, y) \(\leq\)1 2 für jedes x \(\geq\)2 und y \(\geq\)2. Nach Induktion gilt für jedes k > 2 P (k) \(\triangleq\)P k, so dass • P (k)(0, 0) = 1, P (k)(0, x) = 0 für jedes x \(\geq\)2 und • für jedes x \(\geq\)2 und y \(\geq\)2, P (k)(x, y) = P (k−1)(x, 0)P(0, y) + X z\(\geq\)2 P (k−1)(x, z)P(z, y) = X z\(\geq\)2 P (k−1)(x, z)P(z, y) \(\leq\) X z\(\geq\)2 P(x, z) 2k−2 \(\cdot\) P(z, y) = P (2)(x, y) 2k−2 \(\leq\)P(x, y) 2k−1 . Da P(x, y) \(\leq\)1 ist, ist die Übergangswahrscheinlichkeit in einen beliebigen Zustand y \(\geq\)2 nach 1−log2 F-Runden vernachlässigbar, beginnend mit einem beliebigen Zustand x \(\geq\)2. Obwohl es viele solcher Zustände gibt, ist das leicht zu erkennen lim y→+∞ P(x, y) P(x, y + 1) = lim y→+∞ (1 −¯hy)x −(1 −¯hy−1)x (1 −¯hy+1)x −(1 −¯hy)x = lim y→+∞ ¯hy−1 −¯hy ¯hy −¯hy+1 = 1 ¯h = 1 1 − Std. Daher nimmt jede Zeile x der Übergangsmatrix P als geometrische Folge mit der Rate ab 1 1−h > 2 wenn y groß genug ist, und das Gleiche gilt für P (k). Dementsprechend ist k aber immer noch groß genug in der Größenordnung von log1/2 F, P y\(\geq\)2 P (k)(x, y) < F für jedes x \(\geq\)2. Das heißt, mit überwältigender Wahrscheinlichkeit Der Gegner verliert das Spiel und kann Qr−1 in Runde r −k nicht vorhersagen. Für h \(\in\)(2/3, 1], ein mehr Eine komplexe Analyse zeigt, dass es eine Konstante C gibt, die etwas größer als 1/2 ist, sodass sie ausreicht um k = O(logC F) zu nehmen. Somit gilt Lemma 5.6. ■ Lemma 5.4. (angepasst) Gegebene Eigenschaften 1–3 für jede Runde vor r, ph = h2(1 + h −h2) für Lr, und der Anführer \(\ell\)r ist mit Wahrscheinlichkeit mindestens ph ehrlich. 23Zum Beispiel ist h = 80 %, wie aus der spezifischen Auswahl der Parameter hervorgeht.

Beweis. Nach Lemma 5.6 kann der Gegner Qr−1 nicht zurück zur Runde r −k vorhersagen, außer mit vernachlässigbare Wahrscheinlichkeit. Beachten Sie, dass dies nicht bedeutet, dass die Wahrscheinlichkeit eines ehrlichen Anführers h ist jede Runde. In der Tat, angesichts von Qr-1, abhängig davon, wie viele böswillige Benutzer zu Beginn vorhanden sind Durch die zufällige Permutation von PKr−k kann der Gegner mehr als eine Option für Qr und haben Dadurch kann die Wahrscheinlichkeit eines böswilligen Anführers in Runde r + 1 erhöht werden – wir geben ihn wiederum an einige unrealistische Vorteile wie in Lemma 5.6, um die Analyse zu vereinfachen. Allerdings gilt für jedes Qr−1, das vom Gegner in der Runde r −k nicht an H abgefragt wurde, für Jedes x \(\geq\)1, mit der Wahrscheinlichkeit (1 −h)x−1h, tritt der erste ehrliche Benutzer an Position x im Ergebnis auf zufällige Permutation von PKr−k. Wenn x = 1, beträgt die Wahrscheinlichkeit eines ehrlichen Anführers in Runde r + 1 tatsächlich h; Wenn hingegen x = 2, hat der Gegner zwei Optionen für Qr und die resultierende Wahrscheinlichkeit ist h2. Nur wenn wir diese beiden Fälle berücksichtigen, haben wir die Wahrscheinlichkeit eines ehrlichen Anführers in der Runde r + 1 ist mindestens h \(\cdot\) h + (1 − h)h \(\cdot\) h2 = h2(1 + h − h2) wie gewünscht. Beachten Sie, dass die obige Wahrscheinlichkeit nur die Zufälligkeit im Protokoll ab Runde r − k berücksichtigt r runden. Wenn die gesamte Zufälligkeit von Runde 0 bis Runde r berücksichtigt wird, ist Qr−1 noch weniger vorhersehbar für den Gegner und die Wahrscheinlichkeit eines ehrlichen Anführers in Runde r + 1 liegt bei mindestens h2(1 + h −h2). Ersetzt man r + 1 durch r und verschiebt alles um eine Runde zurück, den Anführer \(\ell\)r ist ehrlich mit einer Wahrscheinlichkeit von mindestens h2(1 + h − h2), wie gewünscht. In ähnlicher Weise ist in jedem Coin-Echt-Flipped-Schritt s der „Anführer“ dieses Schritts – das ist der Verifizierer in SV r,s, dessen Credential den kleinsten hash-Wert hat, ist mit einer Wahrscheinlichkeit von mindestens h2(1 +) ehrlich h − h2). Somit ist ph = h2(1 + h −h2) für Lr und es gilt Lemma 5.4. ■

Algorand ′

2 En esta sección, construimos una versión de Algorand ′ que funciona bajo el siguiente supuesto. Supuesto honesto de la mayoría de los usuarios: Más de 2/3 de los usuarios en cada PKr son honestos. En la Sección 8, mostramos cómo reemplazar el supuesto anterior con la deseada Mayoría Honesta de Suposición de dinero. 6.1 Notaciones y parámetros adicionales para Algorand ′ 2 Notaciones • \(\mu\) \(\in\)Z+: un límite superior pragmático para el número de pasos que, con una probabilidad abrumadora, En realidad, se tomará en una ronda. (Como veremos, el parámetro \(\mu\) controla cuántos efímeros claves que un usuario prepara con antelación para cada ronda.) • Lr: una variable aleatoria que representa el número de ensayos de Bernoulli necesarios para ver un 1, cuando cada la prueba es 1 con probabilidad ph 2 . Lr se utilizará para limitar el tiempo necesario para generar bloque br. • tH: un límite inferior para el número de verificadores honestos en un paso s > 1 de la ronda r, tal que con probabilidad abrumadora (dados n y p), hay > tH verificadores honestos en SV r,s. Parámetros • Relaciones entre varios parámetros. — Para cada paso s > 1 de la ronda r, se elige n de modo que, con una probabilidad abrumadora,

|VHS r,s| > tH y |VHS r,s| + 2|MSV r,s| < 2tH. Tenga en cuenta que las dos desigualdades anteriores juntas implican |HSV r,s| > 2|MSV r,s|: es decir, hay Hay una mayoría honesta de 2/3 entre los verificadores seleccionados. Cuanto más cercano a 1 esté el valor de h, menor debe ser n. En particular, utilizamos (variantes de) Chernofflimits para garantizar que las condiciones deseadas se mantengan con una probabilidad abrumadora. • Ejemplos de opciones de parámetros importantes. - F = 10-18. — n \(\approx\)4000, tH \(\approx\)0,69n, k = 70. 6.2 Implementación de claves efímeras en Algorand ′ 2 Recuerde que un verificador i \(\in\)SV r,s firma digitalmente su mensaje mr,s yo del paso s en la ronda r, en relación con una clave pública efímera pkr,s i, usando una clave secreta efímera skr,s yo que rápidamente destruye después de usarlo. Cuando el número de pasos posibles que puede tomar una ronda está limitado a un determinado entero \(\mu\), ya hemos visto cómo manejar prácticamente claves efímeras. Por ejemplo, como nosotros lo he explicado en Algorand ′ 1 (donde \(\mu\) = m + 3), para manejar todas sus posibles claves efímeras, desde una ronda r′ a una ronda r′ + 106, i genera un par (PMK, SMK), donde PMK public master clave de un esquema de firma basado en identidad, y SMK su correspondiente clave maestra secreta. Usuario yo publicita PMK y utiliza SMK para generar la clave secreta de cada posible clave pública efímera (y destruye SMK después de haberlo hecho). El conjunto de claves públicas efímeras de i para lo relevante rondas es S = {i} \(\times\) {r′, . . . , r′ + 106} \(\times\) {1, . . . , \(\mu\)}. (Como se analizó, a medida que se acerca la ronda r′ + 106, "Actualizo" su par (PMK, SMK).) En la práctica, si \(\mu\) es lo suficientemente grande, una ronda de Algorand ′ 2 no tomará más de \(\mu\) pasos. en principio, sin embargo, existe la remota posibilidad de que, durante alguna ronda r el número de pasos realmente tomado excederá \(\mu\). Cuando esto suceda, no podría firmar su mensaje, Sr. yo para cualquier paso s > \(\mu\), porque ha preparado de antemano sólo \(\mu\) claves secretas para la ronda r. Además, él no pudo preparar y publicar un nuevo alijo de claves efímeras, como se discutió antes. De hecho, hacer por lo tanto, necesitaría insertar una nueva clave maestra pública PMK′ en un nuevo bloque. Pero, ¿debería redondearse r? Si toma más y más pasos, no se generarán nuevos bloques. Sin embargo, existen soluciones. Por ejemplo, puedo usar la última clave efímera de la ronda r, pkr,μ yo , como sigue. Genera otro alijo de pares de claves para la ronda r, por ejemplo, (1) generando otro par de claves maestras (PMK, SMK); (2) usar este par para generar otras, digamos, 106 claves efímeras, sk r,μ+1 yo , . . . , sk r,μ+106 yo , correspondiente a los pasos \(\mu\)+1, ..., \(\mu\)+106 de la ronda r; (3) usando skr,μ yo a digitalmente signo PMK (y cualquier mensaje (r, \(\mu\)) si i \(\in\)SV r,\(\mu\)), relativo a pkr,\(\mu\) yo ; y (4) borrar SMK y skr, \(\mu\) yo . ¿Debería convertirme en verificador en un paso \(\mu\) + s con s \(\in\){1, . . . , 106}, luego firmo digitalmente su (r, \(\mu\) + s)- mensaje señor, \(\mu\)+s yo en relación con su nuevo paquete de claves r,μ+s yo = (i, r, \(\mu\) + s). Por supuesto, para verificar esta firma. de i, otros deben estar seguros de que esta clave pública corresponde a la nueva clave maestra pública PMK de i. Así, además de esta firma, i transmite su firma digital de PMK en relación con pkr,μ yo . Por supuesto, este enfoque se puede repetir tantas veces como sea necesario, si se redondea r continuar ¡Para más y más pasos! La última clave secreta efímera se utiliza para autenticar un nuevo público maestro. clave y, por lo tanto, otro alijo de claves efímeras para la ronda r. Etcétera.6.3 El protocolo real Algorand ′ 2 Recuerde nuevamente que, en cada paso s de una ronda r, un verificador i \(\in\)SV r,s usa su secreto público de largo plazo. par de claves para producir su credencial, \(\sigma\)r,s yo \(\triangleq\)SIGi(r, s, Qr−1), así como SIGi qr-1 en el caso s = 1. El verificador i utiliza su par de claves efímeras (pkr,s yo, skr, s i ), para firmar cualquier otro mensaje m que pueda ser requerido. Para simplificar, escribimos esigi(m), en lugar de sigpkr,s. i (m), para denotar lo efímero propio de i firma de m en este paso y escriba ESIGi(m) en lugar de SIGpkr,s i (m) \(\triangleq\)(i, m, esigi(m)). Paso 1: bloquear la propuesta Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza su propio Paso 1 de la ronda r tan pronto como haya CERT r−1, que permite i calcular sin ambigüedades H(Br−1) y Qr−1. • El usuario i utiliza Qr−1 para comprobar si i \(\in\)SV r,1 o no. Si i /\(\in\)SV r,1, no hace nada para el Paso 1. • Si i \(\in\)SV r,1, es decir, si i es un líder potencial, entonces hace lo siguiente. (a) Si he visto B0, . . . , Br−1 mismo (cualquier Bj = Bj ǫ se puede derivar fácilmente de su valor hash en CERT j y por lo tanto se supone "visto"), luego cobra los pagos redondos r que han se le ha propagado hasta el momento y calcula un pago máximo PAY r yo de ellos. (b) Si no he visto todo B0, . . . , Br−1 todavía, luego establece PAY r yo = \(\emptyset\). (c) A continuación, i calcula su “bloque de candidatos” Br. i = (r, PAGAR r i , SIGi(Qr−1), H(Br−1)). (c) Finalmente, i calcula el mensaje mr,1 yo = (Hermano yo , esigi(H(Br i )), \(\sigma\)r,1 i ), destruye su efímero clave secreta skr,1 i y luego propaga dos mensajes, mr,1 yo y (SIGi(Qr−1), \(\sigma\)r,1 yo), por separado pero simultáneamente.a aCuando i es el líder, SIGi(Qr−1) permite que otros calculen Qr = H(SIGi(Qr−1), r).

Propagación selectiva Para acortar la ejecución global del Paso 1 y toda la ronda, es importante que (r, 1)- Los mensajes se propagan selectivamente. Es decir, para cada usuario j en el sistema, • Para el primer mensaje (r, 1) que recibe y verifica con éxitoa, si contiene un bloque o es solo una credencial y una firma de Qr−1, el jugador j lo propaga como de costumbre. • Para todos los demás mensajes (r, 1) que el jugador j recibe y verifica con éxito, propaga solo si el valor hash de la credencial que contiene es el más pequeño entre los valores hash de las credenciales contenidas en todos los mensajes (r, 1) que ha recibido y verificado con éxito para lejos. • Sin embargo, si j recibe dos mensajes diferentes de la forma mr,1 yo del mismo jugador i,b él descarta el segundo sin importar cuál sea el valor hash de la credencial de i. Tenga en cuenta que, bajo propagación selectiva, es útil que cada líder potencial i propague su credencial \(\sigma\)r,1 yo por separado del señor 1 i :c esos pequeños mensajes viajan más rápido que los bloques, asegúrese propagación oportuna del mr,1 i es donde las credenciales contenidas tienen valores pequeños hash, mientras que hacer que aquellos con valores hash grandes desaparezcan rápidamente. aEs decir, todas las firmas son correctas y, si es de la forma mr,1 i, tanto el bloque como su hash son válidos —Aunque j no comprueba si el conjunto de pagos incluido es máximo para i o no. bLo que significa que soy malicioso. cAgradecemos a Georgios Vlachos por sugerir esto.Paso 2: El primer paso del Protocolo de Consenso Graduado GC Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza su propio Paso 2 de la ronda r tan pronto como haya CERT r-1. • El usuario i espera un tiempo máximo t2 \(\triangleq\) \(\lambda\) + Λ. Mientras espero, actúo de la siguiente manera. 1. Después de esperar el tiempo 2\(\lambda\), encuentra al usuario \(\ell\)tal que H(\(\sigma\)r,1 \(\ell\)) \(\leq\)H(\(\sigma\)r,1 j) para todos credenciales \(\sigma\)r,1 j que son parte de los mensajes (r, 1) verificados con éxito que ha recibido hasta ahora.a 2. Si el tiene recibido un bloquear Br-1, cual partidos el hash valor H(Br−1) contenido en CERT r−1,b y si ha recibido de \(\ell\)un mensaje válido mr,1 \(\ell\) = (hermano \(\ell\), esig\(\ell\)(H(Br \(\ell\))), \(\sigma\)r,1 \(\ell\)),c entonces dejo de esperar y establezco v′ yo \(\triangleq\)(H(Br \(\ell\)), \(\ell\)). 3. De lo contrario, cuando se acaba el tiempo t2, i establece v′ yo \(\triangleq\) \(\bot\). 4. Cuando el valor de v′ Se ha configurado i, calcula Qr−1 a partir de CERT r−1 y verifica si i \(\in\)SV r,2 o no. 5. Si i \(\in\)SV r,2, i calcula el mensaje mr,2 yo \(\triangleq\)(ESIGi(v′ i), \(\sigma\)r,2 i ),d destruye su efímero clave secreta skr,2 i y luego propaga mr,2 yo. De lo contrario, me detengo sin propagarme. cualquier cosa. aEsencialmente, el usuario i decide en privado que el líder de la ronda r es el usuario \(\ell\). bPor supuesto, si CERT r−1 indica que Br−1 = Br−1 ǫ , entonces ya he “recibido” Br−1 en el momento en que él ha CERT r-1. cNuevamente, las firmas del jugador \(\ell\) y los hashes se verifican con éxito y PAGAN r \(\ell\)en Br \(\ell\)es un pago válido para round r —aunque no compruebo si PAY r \(\ell\)es máximo para \(\ell\)o no. si hermano \(\ell\)contiene un conjunto de pagos vacío, entonces en realidad no hay necesidad de que i vea Br−1 antes de verificar si Br \(\ell\)es válido o no. dEl mensaje mr,2 yo indica que el jugador i considera el primer componente de v′ i será el hash del siguiente bloque, o considera que el siguiente bloque está vacío.

Paso 3: el segundo paso de GC Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza su propio Paso 3 de la ronda r tan pronto como haya CERT r-1. • El usuario i espera un tiempo máximo t3 \(\triangleq\)t2 + 2\(\lambda\) = 3\(\lambda\) + Λ. Mientras espero, actúo como sigue. 1. Si existe un valor v tal que haya recibido al menos tH mensajes válidos mr,2 j de la forma (ESIGj(v), \(\sigma\)r,2 j ), sin contradicción alguna,a luego deja de esperar y pone v′ = v. 2. De lo contrario, cuando se acaba el tiempo t3, establece v′ = \(\bot\). 3. Cuando se ha establecido el valor de v′, i calcula Qr−1 a partir de CERT r−1 y verifica si i \(\in\)SV r,3 o no. 4. Si i \(\in\)SV r,3, entonces i calcula el mensaje mr,3 yo \(\triangleq\)(ESIGi(v′), \(\sigma\)r,3 i ), destruye su clave secreta efímera skr,3 i y luego propaga mr,3 yo. De lo contrario, me detengo sin propagar cualquier cosa. aEs decir, no ha recibido dos mensajes válidos que contengan ESIGj(v) y un ESIGj(ˆv) diferente respectivamente, de un jugador j. Aquí y de aquí en adelante, excepto en las Condiciones Finales que se definen más adelante, siempre que un jugador honesto quiere mensajes de una forma determinada, los mensajes que se contradicen entre sí nunca se cuentan ni se consideran válidos.

Paso 4: Salida de GC y el primer paso de BBA⋆ Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza su propio Paso 4 de la ronda r tan pronto como termina su propio Paso 3. • El usuario i espera una cantidad máxima de tiempo 2\(\lambda\).a Mientras espera, i actúa de la siguiente manera. 1. Calcula vi y gi, la salida de GC, de la siguiente manera. (a) Si existe un valor v′ ̸= \(\bot\) tal que haya recibido al menos tH mensajes válidos señor,3 j = (ESIGj(v′), \(\sigma\)r,3 j ), luego deja de esperar y establece vi \(\triangleq\)v′ y gi \(\triangleq\)2. b) Si ha recibido al menos los mensajes válidos mr,3 j = (ESIGj(\(\bot\)), \(\sigma\)r,3 j ), luego se detiene esperando y establece vi \(\triangleq\) \(\bot\) y gi \(\triangleq\)0.b (c) En caso contrario, cuando se acabe el tiempo 2\(\lambda\), si existe un valor v′ ̸= \(\bot\) tal que tenga recibido al menos ⌈tH 2 ⌉mensajes válidos mr,j j = (ESIGj(v′), \(\sigma\)r,3 j ), luego establece vi \(\triangleq\)v′ y gi \(\triangleq\)1.c (d) De lo contrario, cuando se acaba el tiempo 2\(\lambda\), establece vi \(\triangleq\) \(\bot\) y gi \(\triangleq\)0. 2. Cuando se han establecido los valores vi y gi, i calcula bi, la entrada de BBA⋆, de la siguiente manera: bi \(\triangleq\)0 si gi = 2, y bi \(\triangleq\)1 en caso contrario. 3. i calcula Qr−1 a partir de CERT r−1 y comprueba si i \(\in\)SV r,4 o no. 4. Si i \(\in\)SV r,4, calcula el mensaje mr,4 yo \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,4 i ), destruye su clave secreta efímera skr,4 i , y propaga mr,4 yo. De lo contrario, me detengo sin propagarme. cualquier cosa. aPor lo tanto, la cantidad total máxima de tiempo desde que i comienza su Paso 1 de la ronda r podría ser t4 \(\triangleq\)t3 + 2\(\lambda\) = 5\(\lambda\) + Λ. bEl hecho de que el paso (b) esté o no en el protocolo no afecta su exactitud. Sin embargo, la presencia del Paso (b) permite que el Paso 4 finalice en menos de 2\(\lambda\) si un número suficiente de verificadores del Paso 3 han “firmado \(\bot\)”. cSe puede demostrar que v′ en este caso, si existe, debe ser única.Paso s, 5 \(\leq\)s \(\leq\)m + 2, s −2 ≡0 mod 3: un paso de BBA⋆ con moneda fijada a 0 Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza sus propios Pasos de la ronda r tan pronto como termina su propio Paso s −1. • El usuario i espera una cantidad máxima de tiempo 2\(\lambda\).a Mientras espera, i actúa de la siguiente manera. – Condición final 0: Si en algún punto existe una cadena v ̸= \(\bot\) y un paso s′ tal que (a) 5 \(\leq\)s′ \(\leq\)s, s′ −2 ≡0 mod 3, es decir, el paso s′ es un paso fijo con moneda a 0, (b) he recibido al menos tH mensajes válidos mr,s′−1 j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ),b y (c) he recibido un mensaje válido (SIGj(Qr−1), \(\sigma\)r,1 j ) siendo j el segundo componente de v, entonces, i deja de esperar y finaliza su propia ejecución de los Pasos s (y de hecho de la ronda r) inmediatamente sin propagar nada como verificador (r, s); establece que H(Br) sea el primero componente de v; y establece su propio CERT r como el conjunto de mensajes mr,s′−1 j del paso (b) junto con (SIGj(Qr−1), \(\sigma\)r,1 j ).c – Condición final 1: Si en algún punto existe un paso s′ tal que (a’) 6 \(\leq\)s′ \(\leq\)s, s′ −2 ≡1 mod 3, es decir, el paso s′ es un paso fijo con moneda a 1, y (b’) he recibido al menos tH mensajes válidos mr,s′−1 j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ),d entonces, i deja de esperar y finaliza su propia ejecución del Paso s (y de hecho de la ronda r) correctamente. lejos sin propagar nada como verificador (r, s); establece Br = Br ǫ ; y establece el suyo CERT r será el conjunto de mensajes mr,s′−1 j del subpaso (b’). – Si en cualquiera punto el tiene recibido en menos tH válido señor, s-1 j es de el forma (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), luego deja de esperar y establece bi \(\triangleq\)1. – Si en cualquiera punto el tiene recibido en menos tH válido señor, s-1 j es de el forma (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), pero no están de acuerdo en la misma v, entonces se detiene esperando y establece bi \(\triangleq\)0. – En caso contrario, cuando se acaba el tiempo 2\(\lambda\), i establece bi \(\triangleq\)0. – Cuando se ha establecido el valor bi, i calcula Qr−1 a partir de CERT r−1 y comprueba si i \(\in\)SV r,s. – Si i \(\in\)SV r,s, i calcula el mensaje mr,s yo \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ) siendo vi el valor que ha calculado en el Paso 4, destruye su efímera clave secreta skr,s yo, y luego propaga señor, s yo. De lo contrario, me detengo sin propagar nada. aPor lo tanto, la cantidad total máxima de tiempo desde que i comienza su Paso 1 de la ronda r podría ser ts \(\triangleq\)ts−1 + 2\(\lambda\) = (2s −3)\(\lambda\) + Λ. bDicho mensaje del jugador j se cuenta incluso si el jugador i también ha recibido un mensaje de j firmando por 1. Cosas similares para la condición final 1. Como se muestra en el análisis, esto es para garantizar que todos los usuarios honestos sepan CERT r dentro del tiempo \(\lambda\) entre sí. El usuario i ahora conoce H(Br) y sus propios acabados redondos r. Sólo necesita esperar hasta que Br esté realmente bloqueado. propagado a él, lo que puede llevar algún tiempo adicional. Todavía ayuda a propagar mensajes como usuario genérico. pero no inicia ninguna propagación como verificador (r, s). En particular, ha ayudado a difundir todos los mensajes en su CERT r, que es suficiente para nuestro protocolo. Tenga en cuenta que también debería establecer bi \(\triangleq\)0 para el protocolo BA binario, pero bi no es necesario en este caso de todos modos. Cosas similares para todas las instrucciones futuras. dEn este caso, no importa cuáles sean los vj. 65Paso s, 6 \(\leq\)s \(\leq\)m + 2, s −2 ≡1 mod 3: un paso de BBA⋆ con moneda fijada a 1 Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza sus propios Pasos de la ronda r tan pronto como termina su propio Paso s −1. • El usuario i espera un tiempo máximo de 2\(\lambda\). Mientras espero, actúo de la siguiente manera. – Condición final 0: Las mismas instrucciones que en un paso Coin-Fixed-To-0. – Condición final 1: Las mismas instrucciones que en un paso Coin-Fixed-To-0. – Si en cualquiera punto el tiene recibido en menos tH válido señor, s-1 j es de el forma (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), luego deja de esperar y establece bi \(\triangleq\)0.a – En caso contrario, cuando se acaba el tiempo 2\(\lambda\), i establece bi \(\triangleq\)1. – Cuando se ha establecido el valor bi, i calcula Qr−1 a partir de CERT r−1 y comprueba si i \(\in\)SV r,s. – Si i \(\in\)SV r,s, i calcula el mensaje mr,s yo \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ) siendo vi el valor que ha calculado en el Paso 4, destruye su efímera clave secreta skr,s yo, y luego propaga señor, s yo. De lo contrario, me detengo sin propagar nada. aTenga en cuenta que recibir tH mensajes válidos (r, s −1) firmados para 1 significaría la Condición Final 1. Paso s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ≡2 mod 3: un paso de BBA⋆ genuinamente lanzado al aire Instrucciones para cada usuario i \(\in\)PKr−k: El usuario i comienza sus propios Pasos de la ronda r tan pronto como termina su propio paso s −1. • El usuario i espera un tiempo máximo de 2\(\lambda\). Mientras espero, actúo de la siguiente manera. – Condición final 0: Las mismas instrucciones que en un paso Coin-Fixed-To-0. – Condición final 1: Las mismas instrucciones que en un paso Coin-Fixed-To-0. – Si en cualquiera punto el tiene recibido en menos tH válido señor, s-1 j es de el forma (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), luego deja de esperar y establece bi \(\triangleq\)0. – Si en cualquiera punto el tiene recibido en menos tH válido señor, s-1 j es de el forma (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), luego deja de esperar y establece bi \(\triangleq\)1. – De lo contrario, cuando se acabe el tiempo 2\(\lambda\), dejar que SV r,s−1 yo ser el conjunto de (r, s −1)-verificadores de a quien ha recibido un mensaje válido mr,s−1 j , i establece bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1 yo H(\(\sigma\)r,s−1 j )). – Cuando se ha establecido el valor bi, i calcula Qr−1 a partir de CERT r−1 y comprueba si i \(\in\)SV r,s. – Si i \(\in\)SV r,s, i calcula el mensaje mr,s yo \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i ) siendo vi el valor que ha calculado en el Paso 4, destruye su efímera clave secreta skr,s yo, y luego propaga señor, s yo. De lo contrario, me detengo sin propagar nada. Observación. En principio, como se considera en la subsección 6.2, el protocolo puede tomar arbitrariamente muchos pasos en alguna ronda. Si esto sucede, como se discutió, un usuario i \(\in\)SV r,s con s > \(\mu\) ha agotado

su alijo de claves efímeras pregeneradas y tiene que autenticar su mensaje (r, s) mr,s yo por un “cascada” de claves efímeras. Por lo tanto, el mensaje se vuelve un poco más largo y la transmisión de estos es más larga. Los mensajes tardarán un poco más. En consecuencia, después de tantos pasos de una ronda determinada, el valor de el parámetro \(\lambda\) aumentará ligeramente automáticamente. (Pero vuelve al \(\lambda\) original una vez que se introduce un nuevo Se produce un bloque y comienza una nueva ronda.) Reconstrucción del bloque Round-r por parte de no verificadores Instrucciones para cada usuario i en el sistema: El usuario i comienza su propia ronda r tan pronto como haya CERT r-1. • Sigo las instrucciones de cada paso del protocolo, participo en la propagación de todos. mensajes, pero no inicia ninguna propagación en un paso si no es un verificador en el mismo. • i termina su propia ronda r ingresando ya sea la Condición Final 0 o la Condición Final 1 en alguna paso, con el correspondiente CERT r. • A partir de ahí, comienza su ronda r + 1 mientras espera recibir el bloque Br real (a menos que ya lo recibió), cuyo hash H(Br) ha sido fijado por CERT r. De nuevo, si CERT r indica que Br = Br ǫ, i conoce a Br en el momento en que tiene CERT r. 6.4 Análisis de Algorand ′ 2 El análisis de Algorand ′ 2 se deriva fácilmente del de Algorand ′ 1. Esencialmente, en Algorand ′ 2, con probabilidad abrumadora, (a) todos los usuarios honestos están de acuerdo en el mismo bloque Br; el líder de un nuevo El bloque es honesto con probabilidad al menos ph = h2(1 + h −h2).

Algorand ′

2 In diesem Abschnitt erstellen wir eine Version von Algorand ′, die unter der folgenden Annahme arbeitet. Annahme: Ehrliche Mehrheit der Benutzer: Mehr als 2/3 der Benutzer in jedem PKr sind ehrlich. In Abschnitt 8 zeigen wir, wie man die obige Annahme durch die gewünschte ehrliche Mehrheit ersetzt Geldannahme. 6.1 Zusätzliche Notationen und Parameter für Algorand ′ 2 Notationen • \(\mu\) \(\in\)Z+: eine pragmatische Obergrenze für die Anzahl der Schritte, die mit überwältigender Wahrscheinlichkeit wird tatsächlich in einer Runde genommen. (Wie wir sehen werden, steuert der Parameter \(\mu\), wie viele ephemere Schlüssel, die ein Benutzer im Voraus für jede Runde vorbereitet.) • Lr: eine Zufallsvariable, die die Anzahl der Bernoulli-Versuche darstellt, die erforderlich sind, um jeweils eine 1 zu sehen Versuch ist 1 mit Wahrscheinlichkeit ph 2 . Lr wird verwendet, um die für die Generierung benötigte Zeit nach oben zu begrenzen Block Br. • tH: eine Untergrenze für die Anzahl ehrlicher Verifizierer in einem Schritt s > 1 der Runde r, so dass mit Überwältigende Wahrscheinlichkeit (vorausgesetzt n und p), es gibt > tH ehrliche Verifizierer in SV r,s. Parameter • Beziehungen zwischen verschiedenen Parametern. — Für jeden Schritt s > 1 der Runde r wird n so gewählt, dass mit überwältigender Wahrscheinlichkeit

|HSV r,s| > tH und |HSV r,s| + 2|MSV r,s| < 2tH. Beachten Sie, dass die beiden obigen Ungleichungen zusammen |HSV r,s| implizieren > 2|MSV r,s|: das heißt, dort ist eine 2/3 ehrliche Mehrheit unter den ausgewählten Prüfern. Je näher der Wert von h an 1 liegt, desto kleiner muss n sein. Insbesondere verwenden wir (Varianten von) Chernoff-Grenzen, um sicherzustellen, dass die gewünschten Bedingungen mit überwältigender Wahrscheinlichkeit eintreten. • Beispielhafte Auswahl wichtiger Parameter. — F = 10−18. — n \(\approx\)4000, tH \(\approx\)0,69n, k = 70. 6.2 Implementierung kurzlebiger Schlüssel in Algorand ′ 2 Denken Sie daran, dass ein Verifizierer i \(\in\)SV r,s seine Nachricht mr,s digital signiert ich der Schritte s in Runde r, relativ zu ein kurzlebiger öffentlicher Schlüssel pkr,s i , unter Verwendung eines kurzlebigen geheimen Schlüssels skr,s ich dass er sofort zerstört nach der Verwendung. Wenn die Anzahl der möglichen Schritte, die eine Runde machen darf, durch eine bestimmte Grenze begrenzt ist Ganzzahl \(\mu\) haben wir bereits gesehen, wie man ephemere Schlüssel praktisch handhabt. Zum Beispiel, wie wir habe erklärt in Algorand ′ 1 (wobei \(\mu\) = m + 3), um alle seine möglichen kurzlebigen Schlüssel zu verarbeiten Eine Runde r′ zu einer Runde r′ + 106, i erzeugt ein Paar (PMK, SMK), wobei PMK öffentlicher Master ist Schlüssel eines identitätsbasierten Signaturschemas und SMK sein entsprechender geheimer Hauptschlüssel. Benutzer i veröffentlicht PMK und verwendet SMK, um den geheimen Schlüssel jedes möglichen kurzlebigen öffentlichen Schlüssels zu generieren (und zerstört danach SMK). Der Satz der kurzlebigen öffentlichen Schlüssel von i für das relevante Runden ist S = {i} \(\times\) {r′, . . . , r′ + 106} \(\times\) {1, . . . , \(\mu\)}. (Wie besprochen, wenn sich die Runde r′ + 106 nähert, Ich „aktualisiere“ sein Paar (PMK, SMK).) In der Praxis ergibt sich, wenn \(\mu\) groß genug ist, eine Runde von Algorand ′ 2 dauert nicht mehr als \(\mu\)-Schritte. In Prinzipiell besteht jedoch die entfernte Möglichkeit, dass für einige Runden die Anzahl der Schritte r ist tatsächlich eingenommen wird \(\mu\) überschreiten. Wenn das passiert, könnte ich seine Nachricht nicht unterschreiben, Herr ich für jeder Schritt s > \(\mu\), da er im Voraus nur \(\mu\) geheime Schlüssel für Runde r vorbereitet hat. Außerdem, er konnte, wie bereits besprochen, keinen neuen Vorrat an kurzlebigen Schlüsseln vorbereiten und veröffentlichen. Tatsächlich zu tun Daher müsste er einen neuen öffentlichen Hauptschlüssel PMK′ in einen neuen Block einfügen. Aber sollte r runden Wenn Sie immer mehr Schritte ausführen, werden keine neuen Blöcke generiert. Es gibt jedoch Lösungen. Zum Beispiel kann ich den letzten kurzlebigen Schlüssel der Runde r, pkr,\(\mu\) verwenden ich , wie folgt. Er generiert einen weiteren Vorrat an Schlüsselpaaren für Runde r – z. B. indem er (1) ein weiteres generiert Hauptschlüsselpaar (PMK, SMK); (2) Verwenden dieses Paares, um weitere, sagen wir, 106 kurzlebige Schlüssel zu generieren, sk r,\(\mu\)+1 ich , . . . , sk r,\(\mu\)+106 ich , entsprechend den Schritten \(\mu\)+1, ..., \(\mu\)+106 der Runde r; (3) mit skr,\(\mu\) ich zu digital Vorzeichen PMK (und jede (r, \(\mu\))-Nachricht, wenn i \(\in\)SV r,\(\mu\)), relativ zu pkr,\(\mu\) ich ; und (4) Löschen von SMK und skr,\(\mu\) ich . Soll ich in einem Schritt \(\mu\) + s mit s \(\in\){1, . . . , 106}, dann unterschreibe ich digital seine (r, \(\mu\) + s)- Nachricht mr,\(\mu\)+s ich relativ zu seinem neuen Schlüssel pk r,\(\mu\)+s ich = (i, r, \(\mu\) + s). Natürlich, um diese Signatur zu überprüfen Von i müssen andere sicher sein, dass dieser öffentliche Schlüssel dem neuen öffentlichen Hauptschlüssel PMK von i entspricht. Somit übermittelt i zusätzlich zu dieser Signatur seine digitale Signatur von PMK relativ zu pkr,\(\mu\) ich . Natürlich kann dieser Ansatz so oft wie nötig wiederholt werden, falls die Runde fortgesetzt wird für immer mehr Schritte! Der letzte ephemere geheime Schlüssel wird zur Authentifizierung einer neuen Master-Öffentlichkeit verwendet Schlüssel und damit ein weiterer Vorrat an kurzlebigen Schlüsseln für Runde r. Und so weiter.6.3 Das eigentliche Protokoll Algorand ′ 2 Erinnern Sie sich noch einmal daran, dass in jedem Schritt s einer Runde r ein Verifizierer i \(\in\)SV r,s sein langfristiges öffentliches Geheimnis verwendet Schlüsselpaar, um seinen Ausweis zu erzeugen, \(\sigma\)r,s ich \(\triangleq\)SIGi(r, s, Qr−1) sowie SIGi Qr−1 im Fall s = 1. Verifier i verwendet sein kurzlebiges Schlüsselpaar (pkr,s ich, skr,s i ), um jede andere Nachricht zu signieren erforderlich. Der Einfachheit halber schreiben wir esigi(m) statt sigpkr,s i (m), um die eigentliche Vergänglichkeit von i zu bezeichnen Signatur von m in diesem Schritt und schreiben Sie ESIGi(m) anstelle von SIGpkr,s i (m) \(\triangleq\)(i, m, esigi(m)). Schritt 1: Vorschlag blockieren Anweisungen für jeden Benutzer i \(\in\)PKr−k: Benutzer i beginnt seinen eigenen Schritt 1 der Runde r, sobald er dies getan hat CERT r−1, was es i ermöglicht, H(Br−1) und Qr−1 eindeutig zu berechnen. • Benutzer i verwendet Qr−1, um zu prüfen, ob i \(\in\)SV r,1 oder nicht. Wenn i /\(\in\)SV r,1, tut er für Schritt 1 nichts. • Wenn i \(\in\)SV r,1, das heißt, wenn i ein potenzieller Anführer ist, dann tut er Folgendes. (a) Wenn ich B0 gesehen habe, . . . , Br−1 selbst (jedes Bj = Bj ǫ kann leicht aus seinem hash-Wert abgeleitet werden in CERT j und wird daher als „gesehen“ angenommen), dann sammelt er die Round-R-Zahlungen ein, die er erhalten hat wurde ihm bisher propagiert und berechnet einen maximalen Payset PAY r ich von ihnen. (b) Wenn ich nicht alle B0 gesehen habe, . . . , Br−1 noch, dann setzt er PAY r ich = \(\emptyset\). (c) Als nächstes berechne ich seinen „Kandidatenblock“ Br i = (r, PAY r i , SIGi(Qr−1), H(Br−1)). (c) Schließlich berechnet i die Nachricht mr,1 ich = (Br ich, esigi(H(Br i )), \(\sigma\)r,1 i ), zerstört sein Vergängliches geheimer Schlüssel skr,1 i und verbreitet dann zwei Nachrichten, mr,1 ich und (SIGi(Qr−1), \(\sigma\)r,1 ich), getrennt, aber gleichzeitig.a aWenn i der Anführer ist, ermöglicht SIGi(Qr−1) anderen die Berechnung von Qr = H(SIGi(Qr−1), r).

Selektive Vermehrung Um die globale Ausführung von Schritt 1 und der gesamten Runde zu verkürzen, ist es wichtig, dass die (r, 1)- Nachrichten werden selektiv verbreitet. Das heißt, für jeden Benutzer j im System • Für die erste (r, 1)-Nachricht, die er jemals empfängt und erfolgreich überprüft, ob sie Folgendes enthält ein Block oder nur ein Berechtigungsnachweis und eine Signatur von Qr−1 ist, propagiert Spieler j ihn wie gewohnt. • Für alle anderen (r, 1)-Nachrichten, die Spieler j empfängt und erfolgreich verifiziert, propagiert er Dies gilt nur, wenn der hash-Wert der darin enthaltenen Anmeldeinformationen der kleinste unter den hash-Werten ist der in allen (r, 1)-Nachrichten enthaltenen Anmeldeinformationen, die er erhalten hat, und hat dies erfolgreich überprüft weit. • Empfängt j jedoch zwei verschiedene Nachrichten der Form mr,1 ich vom selben Spieler i,b er verwirft den zweiten, unabhängig vom hash-Wert der Anmeldeinformationen von i. Beachten Sie, dass es bei der selektiven Propagierung nützlich ist, dass jeder potenzielle Anführer seinen eigenen propagiert Ausweis \(\sigma\)r,1 ich getrennt von Herrn,1 i :c Diese kleinen Nachrichten verbreiten sich schneller als Blöcke, stellen Sie sicher rechtzeitige Ausbreitung des Herrn,1 i ist dort, wo die enthaltenen Anmeldeinformationen kleine hash-Werte haben, während Lassen Sie solche mit großen hash-Werten schnell verschwinden. aDas heißt, alle Signaturen sind korrekt und wenn es sich um die Form mr,1 handelt i , sowohl der Block als auch sein hash sind gültig – obwohl j nicht prüft, ob der enthaltene Gehaltssatz für i maximal ist oder nicht. bWas bedeutet, dass ich böswillig bin. cWir danken Georgios Vlachos für diesen Vorschlag.Schritt 2: Der erste Schritt des Graded Consensus Protocol GC Anweisungen für jeden Benutzer i \(\in\)PKr−k: Benutzer i beginnt seinen eigenen Schritt 2 der Runde r, sobald er dies getan hat CERT r−1. • Benutzer i wartet maximal t2 \(\triangleq\) \(\lambda\) + Λ. Während ich warte, verhalte ich mich wie folgt. 1. Nachdem er die Zeit 2\(\lambda\) abgewartet hat, findet er den Benutzer \(\ell\)so dass H(\(\sigma\)r,1 \(\ell\)) \(\leq\)H(\(\sigma\)r,1 j) für alle Referenzen \(\sigma\)r,1 j die Teil der erfolgreich verifizierten (r, 1)-Nachrichten sind, die er erhalten hat bisher.a 2. Wenn er hat erhalten a blockieren Br−1, welche Streichhölzer die hash Wert H(Br−1) im CERT r−1,b enthalten ist und ob er von \(\ell\)eine gültige Nachricht mr,1 erhalten hat \(\ell\) = (Br \(\ell\), esig\(\ell\)(H(Br \(\ell\))), \(\sigma\)r,1 \(\ell\)),c dann hört i auf zu warten und setzt v′ i \(\triangleq\)(H(Br \(\ell\)), \(\ell\)). 3. Andernfalls, wenn die Zeit t2 abläuft, setzt i v′ ich \(\triangleq\) \(\bot\). 4. Wenn der Wert von v′ i wurde gesetzt, i berechnet Qr−1 aus CERT r−1 und prüft, ob i \(\in\)SV r,2 oder nicht. 5. Wenn i \(\in\)SV r,2, berechnet i die Nachricht mr,2 ich \(\triangleq\)(ESIGi(v′ i), \(\sigma\)r,2 i ),d zerstört sein Vergängliches geheimer Schlüssel skr,2 i und propagiert dann mr,2 ich . Ansonsten höre ich auf, ohne mich weiterzuverbreiten irgendetwas. aIm Wesentlichen entscheidet Benutzer i privat, dass der Anführer der Runde r Benutzer \(\ell\) ist. bNatürlich, wenn CERT r−1 anzeigt, dass Br−1 = Br−1 ǫ , dann habe ich Br−1 in dem Moment, in dem er es hat, bereits „erhalten“. CERT r−1. cAuch hier sind die Unterschriften von Spieler \(\ell\) und die hashes alle erfolgreich verifiziert und ZAHLEN r \(\ell\)in Br \(\ell\)ist ein gültiger Gehaltssatz für rundes r – obwohl ich nicht prüfe, ob PAY r \(\ell\)ist maximal für \(\ell\)oder nicht. Wenn Br \(\ell\)enthält dann einen leeren Gehaltssatz Eigentlich ist es nicht nötig, dass ich Br−1 sehe, bevor ich verifiziere, ob Br \(\ell\)ist gültig oder nicht. dDie Nachricht mr,2 ich signalisiert, dass Spieler i die erste Komponente von v′ betrachtet i soll der hash des nächsten Blocks sein, oder betrachtet den nächsten Block als leer.

Schritt 3: Der zweite Schritt der GC Anweisungen für jeden Benutzer i \(\in\)PKr−k: Benutzer i beginnt seinen eigenen Schritt 3 der Runde r, sobald er dies getan hat CERT r−1. • Benutzer i wartet maximal t3 \(\triangleq\)t2 + 2\(\lambda\) = 3\(\lambda\) + Λ. Während ich warte, verhalte ich mich wie folgt. 1. Wenn ein Wert v existiert, so dass er mindestens die gültigen Nachrichten mr,2 erhalten hat j von die Form (ESIGj(v), \(\sigma\)r,2 j ), ohne jeden Widerspruch,a dann hört er auf zu warten und setzt v′ = v. 2. Ansonsten setzt er nach Ablauf der Zeit t3 v′ = \(\bot\). 3. Wenn der Wert von v′ festgelegt wurde, berechnet i Qr−1 aus CERT r−1 und prüft, ob i \(\in\)SV r,3 oder nicht. 4. Wenn i \(\in\)SV r,3, dann berechnet i die Nachricht mr,3 ich \(\triangleq\)(ESIGi(v′), \(\sigma\)r,3 i ), zerstört seine Vergänglicher geheimer Schlüssel skr,3 i und propagiert dann mr,3 ich . Ansonsten höre ich ohne auf irgendetwas verbreiten. aDas heißt, er hat keine zwei gültigen Nachrichten erhalten, die ESIGj(v) bzw. ein anderes ESIGj(ˆv) enthalten. von einem Spieler j. Hier und von nun an, außer in den später definierten Endbedingungen, wann immer ein ehrlicher Spieler Will Nachrichten einer bestimmten Form, werden widersprüchliche Nachrichten niemals gezählt oder als gültig angesehen.

Schritt 4: Ausgabe von GC und der erste Schritt von BBA⋆ Anleitung für jeden Benutzer i \(\in\)PKr−k: Benutzer i startet seinen eigenen Schritt 4 der Runde r, sobald er beendet seinen eigenen Schritt 3. • Benutzer i wartet maximal 2\(\lambda\).a Während des Wartens verhält sich i wie folgt. 1. Er berechnet vi und gi, die Ausgabe von GC, wie folgt. (a) Wenn es einen Wert v′ ̸= \(\bot\) gibt, so dass er mindestens die gültigen Nachrichten erhalten hat Herr,3 j = (ESIGj(v′), \(\sigma\)r,3 j ), dann hört er auf zu warten und setzt vi \(\triangleq\)v′ und gi \(\triangleq\)2. (b) Wenn er mindestens die gültigen Nachrichten mr,3 erhalten hat j = (ESIGj(\(\bot\)), \(\sigma\)r,3 j ), dann bleibt er stehen wartet und setzt vi \(\triangleq\) \(\bot\)und gi \(\triangleq\)0.b (c) Ansonsten, wenn die Zeit 2\(\lambda\) abläuft, wenn es einen Wert v′ ̸= \(\bot\) gibt, den er hat mindestens ⌈tH erhalten 2 ⌉gültige Nachrichten mr,j j = (ESIGj(v′), \(\sigma\)r,3 j ), dann setzt er vi \(\triangleq\)v′ und gi \(\triangleq\)1.c (d) Andernfalls, wenn die Zeit 2\(\lambda\) abläuft, setzt er vi \(\triangleq\) \(\bot\)und gi \(\triangleq\)0. 2. Wenn die Werte vi und gi festgelegt wurden, berechnet i bi, die Eingabe von BBA⋆, wie folgt: bi \(\triangleq\)0, wenn gi = 2, andernfalls bi \(\triangleq\)1. 3. i berechnet Qr−1 aus CERT r−1 und prüft, ob i \(\in\)SV r,4 oder nicht. 4. Wenn i \(\in\)SV r,4, berechnet er die Nachricht mr,4 ich \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,4 i ), zerstört seine Vergänglicher geheimer Schlüssel skr,4 i , und propagiert mr,4 ich . Ansonsten höre ich auf, ohne mich weiterzuverbreiten irgendetwas. aSomit könnte die maximale Gesamtzeit seit Beginn von Schritt 1 der Runde r t4 \(\triangleq\)t3 + 2\(\lambda\) = 5\(\lambda\) + Λ betragen. bOb Schritt (b) im Protokoll enthalten ist oder nicht, hat keinen Einfluss auf dessen Richtigkeit. Das Vorhandensein von Schritt (b) ermöglicht, dass Schritt 4 in weniger als 2\(\lambda\) Zeit endet, wenn ausreichend viele Prüfer von Schritt 3 „\(\bot\) signiert“ haben. cEs kann bewiesen werden, dass das v′ in diesem Fall, falls vorhanden, eindeutig sein muss.Schritt s, 5 \(\leq\)s \(\leq\)m + 2, s −2 ≡0 mod 3: Ein Coin-Fixed-To-0-Schritt von BBA⋆ Anleitung für jeden Benutzer i \(\in\)PKr−k: Benutzer i startet seine eigenen Schritte s der Runde r, sobald er beendet seinen eigenen Schritt s −1. • Benutzer i wartet maximal 2\(\lambda\).a Während des Wartens verhält sich i wie folgt. – Endbedingung 0: Wenn an irgendeinem Punkt eine Zeichenfolge v ̸= \(\bot\)und ein Schritt s′ existiert, so dass (a) 5 \(\leq\)s′ \(\leq\)s, s′ −2 ≡0 mod 3 – das heißt, Schritt s′ ist ein Coin-Fixed-To-0-Schritt, (b) i hat mindestens die gültigen Nachrichten mr,s′−1 erhalten j = (ESIGj(0), ESIGj(v), \(\sigma\)r,s′−1 j ),b und (c) i hat eine gültige Nachricht erhalten (SIGj(Qr−1), \(\sigma\)r,1 j ), wobei j der zweite ist Komponente von v, dann hört i auf zu warten und beendet seine eigene Ausführung von Schritt s (und tatsächlich auch von Runde r) sofort, ohne etwas als (r, s)-Verifizierer zu propagieren; setzt H(Br) als erstes Komponente von v; und setzt sein eigenes CERT r auf die Menge der Nachrichten mr,s′−1 j von Schritt (b) zusammen mit (SIGj(Qr−1), \(\sigma\)r,1 j ).c – Endbedingung 1: Wenn es an irgendeinem Punkt einen Schritt s′ gibt, so dass (a’) 6 \(\leq\)s′ \(\leq\)s, s′ −2 ≡1 mod 3 – das heißt, Schritt s′ ist ein Coin-Fixed-To-1-Schritt, und (b’) i hat mindestens die gültigen Nachrichten mr,s′−1 erhalten j = (ESIGj(1), ESIGj(vj), \(\sigma\)r,s′−1 j ),d dann hört i auf zu warten und beendet seine eigene Ausführung von Schritt s (und tatsächlich auch von Runde r) richtig weg, ohne etwas als (r, s)-Verifizierer zu propagieren; setzt Br = Br ǫ ; und legt sein eigenes fest CERT r soll die Menge der Nachrichten mr,s′−1 sein j des Teilschritts (b‘). – Wenn bei irgendein Punkt er hat erhalten bei am wenigsten tH gültig mr,s−1 j ’s von die Formular (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), dann hört er auf zu warten und setzt bi \(\triangleq\)1. – Wenn bei irgendein Punkt er hat erhalten bei am wenigsten tH gültig mr,s−1 j ’s von die Formular (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), aber sie sind sich nicht auf dasselbe v einig, dann hört er auf wartet und setzt bi \(\triangleq\)0. – Ansonsten setzt i nach Ablauf der Zeit 2\(\lambda\) bi \(\triangleq\)0. – Wenn der Wert bi gesetzt wurde, berechnet i Qr−1 aus CERT r−1 und prüft, ob i \(\in\)SV r,s. – Wenn i \(\in\)SV r,s, berechnet i die Nachricht mr,s ich \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i) mit vi Der Wert, den er in Schritt 4 berechnet hat, zerstört seinen kurzlebigen Geheimschlüssel skr,s ich, und dann propagiert mr,s ich . Andernfalls höre ich auf, ohne etwas zu verbreiten. aSomit könnte die maximale Gesamtzeit seit Beginn von Schritt 1 der Runde r ts \(\triangleq\)ts−1 + 2\(\lambda\) = sein (2s −3)\(\lambda\) + Λ. bEine solche Nachricht von Spieler j wird auch dann gezählt, wenn Spieler i auch eine Nachricht von j erhalten hat, der für 1 signiert. Ähnliches gilt für Endbedingung 1. Wie in der Analyse gezeigt, soll damit sichergestellt werden, dass alle ehrlichen Benutzer Bescheid wissen CERT r innerhalb der Zeit \(\lambda\) voneinander entfernt. cUser i kennt jetzt H(Br) und seine eigenen Rundenenden. Er muss nur warten, bis der eigentliche Block Br ist an ihn weitergeleitet, was einige Zeit in Anspruch nehmen kann. Als allgemeiner Benutzer hilft er immer noch bei der Verbreitung von Nachrichten. löst aber keine Ausbreitung als (r, s)-Verifizierer aus. Insbesondere hat er dabei geholfen, alle Botschaften zu verbreiten sein CERT r, was für unser Protokoll ausreicht. Beachten Sie, dass er auch für das binäre BA-Protokoll bi \(\triangleq\)0 festlegen sollte, aber bi wird in diesem Fall sowieso nicht benötigt. Ähnliches gilt für alle zukünftigen Anweisungen. dIn diesem Fall spielt es keine Rolle, um welche VJs es sich handelt. 65Schritt s, 6 \(\leq\)s \(\leq\)m + 2, s −2 ≡1 mod 3: Ein Coin-Fixed-To-1-Schritt von BBA⋆ Anleitung für jeden Benutzer i \(\in\)PKr−k: Benutzer i startet seine eigenen Schritte s der Runde r, sobald er beendet seinen eigenen Schritt s −1. • Benutzer i wartet maximal 2\(\lambda\). Während ich warte, verhalte ich mich wie folgt. – Endbedingung 0: Dieselben Anweisungen wie in einem Coin-Fixed-To-0-Schritt. – Endbedingung 1: Die gleichen Anweisungen wie in einem Coin-Fixed-To-0-Schritt. – Wenn bei irgendein Punkt er hat erhalten bei am wenigsten tH gültig mr,s−1 j ’s von die Formular (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), dann hört er auf zu warten und setzt bi \(\triangleq\)0.a – Andernfalls, wenn die Zeit 2\(\lambda\) abläuft, setzt i bi \(\triangleq\)1. – Wenn der Wert bi gesetzt wurde, berechnet i Qr−1 aus CERT r−1 und prüft, ob i \(\in\)SV r,s. – Wenn i \(\in\)SV r,s, berechnet i die Nachricht mr,s ich \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i) mit vi Der Wert, den er in Schritt 4 berechnet hat, zerstört seinen kurzlebigen Geheimschlüssel skr,s ich, und dann propagiert mr,s ich . Andernfalls höre ich auf, ohne etwas zu verbreiten. aBeachten Sie, dass der Empfang gültiger (r, s −1)-Nachrichten mit der Signatur 1 die Endbedingung 1 bedeuten würde. Schritt s, 7 \(\leq\)s \(\leq\)m + 2, s −2 ≡2 mod 3: Ein münzecht umgedrehter Schritt von BBA⋆ Anleitung für jeden Benutzer i \(\in\)PKr−k: Benutzer i startet seine eigenen Schritte s der Runde r, sobald er beendet seinen eigenen Schritt s −1. • Benutzer i wartet maximal 2\(\lambda\). Während ich warte, verhalte ich mich wie folgt. – Endbedingung 0: Dieselben Anweisungen wie in einem Coin-Fixed-To-0-Schritt. – Endbedingung 1: Die gleichen Anweisungen wie in einem Coin-Fixed-To-0-Schritt. – Wenn bei irgendein Punkt er hat erhalten bei am wenigsten tH gültig mr,s−1 j ’s von die Formular (ESIGj(0), ESIGj(vj), \(\sigma\)r,s−1 j ), dann hört er auf zu warten und setzt bi \(\triangleq\)0. – Wenn bei irgendein Punkt er hat erhalten bei am wenigsten tH gültig mr,s−1 j ’s von die Formular (ESIGj(1), ESIGj(vj), \(\sigma\)r,s−1 j ), dann hört er auf zu warten und setzt bi \(\triangleq\)1. – Andernfalls, wenn die Zeit 2\(\lambda\) abläuft, gilt SV r,s−1 ich sei die Menge der (r, s −1)-Verifizierer aus wem er eine gültige Nachricht erhalten hat mr,s−1 j , i setzt bi \(\triangleq\)lsb(minj\(\in\)SV r,s−1 ich H(\(\sigma\)r,s−1 j )). – Wenn der Wert bi gesetzt wurde, berechnet i Qr−1 aus CERT r−1 und prüft, ob i \(\in\)SV r,s. – Wenn i \(\in\)SV r,s, berechnet i die Nachricht mr,s ich \(\triangleq\)(ESIGi(bi), ESIGi(vi), \(\sigma\)r,s i) mit vi Der Wert, den er in Schritt 4 berechnet hat, zerstört seinen kurzlebigen Geheimschlüssel skr,s ich, und dann propagiert mr,s ich . Andernfalls höre ich auf, ohne etwas zu verbreiten. Bemerkung. Im Prinzip kann das Protokoll, wie in Unterabschnitt 6.2 dargelegt, beliebig viele annehmen Schritte in einer Runde. Sollte dies passieren, wie besprochen, ist ein Benutzer i \(\in\)SV r,s mit s > \(\mu\) erschöpft

seinen Vorrat an vorgenerierten kurzlebigen Schlüsseln und muss seine (r, s)-Nachricht mr,s authentifizieren ich von a „Kaskade“ vergänglicher Schlüssel. Dadurch wird meine Nachricht etwas länger und die Übermittlung dieser Daten länger Nachrichten werden etwas länger dauern. Dementsprechend ist nach so vielen Schritten einer bestimmten Runde der Wert von Der Parameter \(\lambda\) erhöht sich automatisch leicht. (Aber es kehrt erneut zum ursprünglichen \(\lambda\) zurück Block wird produziert und eine neue Runde beginnt.) Rekonstruktion des Round-r-Blocks durch Nicht-Verifizierer Anleitung für jeden Benutzer i im System: Benutzer i startet seine eigene Runde r, sobald er sie hat CERT r−1. • Ich befolge die Anweisungen jedes Schritts des Protokolls und beteilige mich an der Verbreitung aller Nachrichten, initiiert jedoch keine Weitergabe in einem Schritt, wenn er darin kein Verifizierer ist. • i beendet seine eigene Runde r, indem er in einigen Fällen entweder die Endbedingung 0 oder die Endbedingung 1 eingibt Schritt, mit dem entsprechenden CERT r. • Von da an beginnt er seine Runde r + 1, während er darauf wartet, den eigentlichen Block Br zu erhalten (es sei denn er hat es bereits erhalten), dessen hash H(Br) von CERT r festgelegt wurde. Nochmals, wenn CERT r gibt an, dass Br = Br ǫ, das i weiß Br, sobald er CERT r hat. 6.4 Analyse von Algorand ′ 2 Die Analyse von Algorand ′ 2 lässt sich leicht aus dem von Algorand ′ ableiten 1. Im Wesentlichen in Algorand ′ 2, mit überwältigende Wahrscheinlichkeit, (a) alle ehrlichen Benutzer stimmen dem gleichen Block Br zu; der Anführer eines neuen Block ist mit einer Wahrscheinlichkeit von mindestens ph = h2(1 + h − h2) ehrlich.

Manejo de usuarios honestos sin conexión

Como decíamos, un usuario honesto sigue todas las instrucciones prescritas, entre las que se incluye la de estar en línea. y ejecutar el protocolo. Esto no es una carga importante en Algorand, ya que el cálculo y El ancho de banda requerido por un usuario honesto es bastante modesto. Sin embargo, señalemos que Algorand puede modificarse fácilmente para que funcione en dos modelos, en los que los usuarios honestos pueden estar desconectados en grandes números. Antes de discutir estos dos modelos, señalemos que, si el porcentaje de jugadores honestos fueran 95%, Algorand aún podría ejecutarse configurando todos los parámetros asumiendo que h = 80%. En consecuencia, Algorand continuaría funcionando correctamente incluso si como máximo la mitad de los jugadores honestos decidió desconectarse (de hecho, un caso importante de “absentismo”). De hecho, en cualquier momento, al menos El 80% de los jugadores online serían honestos. De la participación continua a la honestidad perezosa Como vimos, Algorand ′ 1 y Algorand ′ 2 elegir el parámetro retrospectivo k. Demostremos ahora que elegir k adecuadamente grande permite eliminar el requisito de Participación Continua. Este requisito garantiza una propiedad crucial: a saber, que el protocolo BA subyacente BBA⋆tiene una mayoría honesta adecuada. Expliquemos ahora lo perezoso La honestidad proporciona una forma alternativa y atractiva de satisfacer esta propiedad.

Recuerde que un usuario i es vago pero honesto si (1) sigue todas las instrucciones prescritas, cuando se le pide que participe en el protocolo, y (2) se le pide que participe únicamente en el protocolo muy raramente —por ejemplo, una vez a la semana— con un aviso previo adecuado y potencialmente recibiendo recompensas cuando participa. Para permitir que Algorand trabaje con dichos reproductores, basta con “elegir los verificadores del ronda actual entre los usuarios que ya están en el sistema en una ronda mucho anterior”. En efecto, recuerda que los verificadores para una ronda r se eligen entre los usuarios de la ronda r −k, y las selecciones se realizan en función sobre la cantidad Qr−1. Tenga en cuenta que una semana consta de aproximadamente 10.000 minutos y suponga que un Una ronda dura aproximadamente (por ejemplo, en promedio) 5 minutos, por lo que una semana tiene aproximadamente 2000 rondas. asumir que, en algún momento, un usuario desea planificar su tiempo y saber si va a estar un verificador en la próxima semana. El protocolo ahora elige los verificadores para una ronda r entre los usuarios en redondee r −k −2, 000, y las selecciones se basan en Qr−2,001. En la ronda r, el jugador que ya conozco los valores Qr−2.000, . . . , Qr−1, ya que en realidad son parte de blockchain. Entonces, para cada M entre 1 y 2000, i es un verificador en un paso s de la ronda r + M si y sólo si .H SIGi r + M, s, Qr+M−2,001 \(\leq\)p. Así, para comprobar si va a ser llamado a actuar como verificador en las próximas 2.000 rondas, debo calcular \(\sigma\)M,s yo = SIGi r + M, s, Qr+M−2,001 para M = 1 a 2, 000 y para cada paso s, y verifique si .H(\(\sigma\)M,s yo ) \(\leq\)p para algunos de ellos. Si calcular una firma digital toma un milisegundo, entonces Toda esta operación le llevará aproximadamente 1 minuto de cálculo. Si no es seleccionado como verificador En cualquiera de estas rondas, entonces puede desconectarse con una “conciencia honesta”. ¿Había estado continuamente hubiera participado, ¡básicamente habría dado 0 pasos en las siguientes 2000 rondas de todos modos! Si, en cambio, es seleccionado para ser verificador en una de estas rondas, luego se prepara (por ejemplo, obteniendo todos la información necesaria) para actuar como un verificador honesto en la ronda adecuada. Al actuar así, un verificador potencial perezoso pero honesto sólo deja de participar en la propagación. de mensajes. Pero la propagación de mensajes suele ser sólida. Además, los pagadores y los beneficiarios de Se espera que los pagos propagados recientemente estén en línea para observar qué sucede con sus pagos. y así participarán en la propagación del mensaje, si son honestos.

Umgang mit ehrlichen Offline-Benutzern

Wie bereits erwähnt, befolgt ein ehrlicher Benutzer alle ihm vorgeschriebenen Anweisungen, einschließlich der Anweisungen, online zu sein und Ausführen des Protokolls. Dies stellt in Algorand keine große Belastung dar, da die Berechnung und Die von einem ehrlichen Benutzer benötigte Bandbreite ist recht bescheiden. Dennoch möchten wir darauf hinweisen, dass Algorand dies kann lässt sich leicht modifizieren, um in zwei Modellen zu funktionieren, in denen ehrliche Benutzer offline sein können tolle Zahlen. Bevor wir diese beiden Modelle diskutieren, möchten wir darauf hinweisen, dass der Prozentsatz ehrlicher Spieler groß ist 95 % betrugen, konnte Algorand immer noch ausgeführt werden, indem alle Parameter eingestellt wurden, wobei stattdessen davon ausgegangen wurde, dass h = 80 % ist. Demnach würde Algorand auch bei höchstens der Hälfte der ehrlichen Spieler weiterhin einwandfrei funktionieren entschied sich dafür, offline zu gehen (in der Tat ein schwerwiegender Fall von „Abwesenheit“). Zumindest zu jedem Zeitpunkt 80 % der Online-Spieler wären ehrlich. Von der kontinuierlichen Teilnahme zur faulen Ehrlichkeit Wie wir gesehen haben, Algorand ′ 1 und Algorand ′ 2 wählen der Lookback-Parameter k. Lassen Sie uns nun zeigen, dass die richtige Wahl von k das Entfernen ermöglicht die Anforderung der kontinuierlichen Teilnahme. Diese Anforderung gewährleistet eine entscheidende Eigenschaft: nämlich dass das zugrunde liegende BA-Protokoll BBA⋆eine angemessene ehrliche Mehrheit hat. Lassen Sie uns nun erklären, wie faul Ehrlichkeit bietet eine alternative und attraktive Möglichkeit, diese Immobilie zufriedenzustellen.

Denken Sie daran, dass ein Benutzer faul, aber ehrlich ist, wenn (1) er alle ihm vorgeschriebenen Anweisungen befolgt er wird gebeten, am Protokoll teilzunehmen, und (2) er wird gebeten, nur am Protokoll teilzunehmen sehr selten – z. B. einmal pro Woche – mit angemessener Vorankündigung und möglicherweise erheblichem Empfang Belohnungen, wenn er mitmacht. Damit Algorand mit solchen Playern arbeiten kann, reicht es lediglich aus, „die Verifizierer der auszuwählen.“ aktuelle Runde unter den Benutzern, die bereits in einer viel früheren Runde im System waren.“ Denken Sie daran Die Verifizierer für eine Runde r werden aus den Benutzern in Runde r − k ausgewählt und die Auswahl erfolgt basierend auf der Größe Qr−1. Beachten Sie, dass eine Woche aus etwa 10.000 Minuten besteht, und gehen Sie davon aus, dass a Eine Runde dauert etwa (z. B. im Durchschnitt) 5 Minuten, eine Woche hat also etwa 2.000 Runden. Angenommen dass ein Benutzer irgendwann seine Zeit planen und wissen möchte, ob er es sein wird ein Gutachter in der kommenden Woche. Das Protokoll wählt nun die Verifizierer für eine Runde aus den Benutzern aus runden r −k −2.000 ab, und die Auswahlen basieren auf Qr−2.001. In Runde R, Spieler, den ich bereits kenne die Werte Qr−2.000, . . . , Qr−1, da sie tatsächlich Teil von blockchain sind. Dann gilt für jedes M zwischen 1 und 2.000 ist i genau dann ein Verifizierer in einem Schritt s der Runde r + M, wenn .H SIGi r + M, s, Qr+M−2.001 \(\leq\)p . Ich muss also prüfen, ob er in den nächsten 2.000 Runden als Prüfer berufen wird Berechnen Sie \(\sigma\)M,s ich = SIGi r + M, s, Qr+M−2.001 für M = 1 bis 2.000 und für jeden Schritt s und überprüfen ob .H(\(\sigma\)M,s ich ) \(\leq\)p für einige von ihnen. Wenn die Berechnung einer digitalen Signatur eine Millisekunde dauert, dann Dieser gesamte Vorgang wird etwa 1 Minute Rechenzeit in Anspruch nehmen. Wenn er nicht als Prüfer ausgewählt wird In jeder dieser Runden kann er mit „ehrlichem Gewissen“ offline gehen. Hatte er ununterbrochen teilgenommen hätte, hätte er in den nächsten 2.000 Runden ohnehin im Wesentlichen 0 Schritte gemacht! Wenn stattdessen Er wird in einer dieser Runden als Prüfer ausgewählt und bereitet sich dann darauf vor (z. B. indem er alle Informationen erhält die erforderlichen Informationen), um bei der richtigen Runde als ehrlicher Prüfer zu fungieren. Durch dieses Verhalten entgeht mir als fauler, aber ehrlicher potenzieller Prüfer nur die Beteiligung an der Verbreitung von Nachrichten. Aber die Nachrichtenweitergabe ist normalerweise robust. Darüber hinaus sind die Zahler und Zahlungsempfänger von Von kürzlich propagierten Zahlungen wird erwartet, dass sie online sind, um zu beobachten, was mit ihren Zahlungen passiert. und somit werden sie sich an der Nachrichtenverbreitung beteiligen, wenn sie ehrlich sind.

Protocolo Algorand ′ con Mayoría Honesta de Dinero

Ahora, finalmente, mostramos cómo reemplazar el supuesto de la Mayoría Honesta de Usuarios con el supuesto mucho más Suposición significativa de Mayoría Honesta del Dinero. La idea básica es (en formato proof-of-stake) “seleccionar un usuario i \(\in\)PKr−k para que pertenezca a SV r,s con un peso (es decir, poder de decisión) proporcional a la cantidad de dinero que posee yo.”24 Según nuestra suposición HMM, podemos elegir si esa cantidad debe poseerse en la ronda r −k o al (inicio de) la ronda r. Suponiendo que no nos importe la participación continua, optamos por la última elección. (Para eliminar la participación continua, habríamos optado por la primera opción. Mejor dicho, por la cantidad de dinero que se posee en la ronda r −k −2, 000.) Hay muchas maneras de implementar esta idea. La forma más sencilla sería mantener cada tecla como máximo 1 unidad de dinero y luego seleccionar al azar n usuarios i de PKr−k tal que a(r) yo = 1. 24Deberíamos decir PKr−k−2.000 para reemplazar la participación continua. Por simplicidad, ya que uno puede desear requerir participación continua de todos modos, usamos PKr−k como antes, para llevar un parámetro menos.

La siguiente implementación más simple La siguiente implementación más simple puede ser exigir que cada clave pública posea una cantidad máxima de dinero M, para algún M fijo. El valor M es lo suficientemente pequeño en comparación con la cantidad total de dinero en el sistema, de modo que la probabilidad de que una clave pertenezca al conjunto de verificador de más de un el paso en —digamos— k rondas es insignificante. Entonces, una clave i \(\in\)PKr−k, poseer una cantidad de dinero a(r) yo en la ronda r, se elige que pertenezca a SV r,s si .H SIGi r, s, Qr−1 \(\leq\)p \(\cdot\) a(r) yo m . Y todo continúa como antes. Una implementación más compleja La última implementación "obligó a un participante rico en el sistema a poseer muchas claves". Una implementación alternativa, que se describe a continuación, generaliza la noción de estatus y considera cada usuario i constará de K + 1 copias (i, v), cada una de las cuales se selecciona independientemente para ser un verificador, y será dueño de su propia llave efímera (pkr,s i,v, skr,s i,v) en un paso s de una ronda r. El valor K depende sobre la cantidad de dinero a(r) yo propiedad de i en la ronda r. Veamos ahora con mayor detalle cómo funciona dicho sistema. Número de copias Sea n la cardinalidad esperada objetivo de cada conjunto de verificadores, y sea a(r) yo Sea la cantidad de dinero que posee un usuario i en la ronda r. Sea Ar la cantidad total de dinero que se posee por los usuarios en PKr−k en la ronda r, es decir, ar = x i\(\in\)PKr−k un(r) yo. Si i es un usuario en PKr−k, entonces las copias de i son (i, 1), . . . , (yo, K + 1), donde k = $ n \(\cdot\) a(r) yo ar % . Ejemplo. Sea n = 1.000, Ar = 109 y a(r) yo = 3,7 millones. Entonces, k = 103 \(\cdot\) (3,7 \(\cdot\) 106) 109  = ⌊3.7⌋= 3 . Verificadores y Credenciales Sea yo un usuario en PKr−k con K + 1 copias. Para cada v = 1, . . . , K, copia (i, v) pertenece automáticamente a SV r,s. Es decir, mi credencial es \(\sigma\)r,s i,v \(\triangleq\)SIGi((i, v), r, s, Qr−1), pero la condición correspondiente pasa a ser .H(\(\sigma\)r,s i,v) \(\leq\)1, que es siempre cierto. Para la copia (i, K + 1), para cada paso s de la ronda r, i verifica si .H SIGi (yo, K + 1), r, s, Qr−1 \(\leq\)a(r) yo norte Ar-K.

Si es así, la copia (i, K + 1) pertenece a SV r,s. Para probarlo, propago la credencial. \(\sigma\)r,1 i,K+1 = SIGi (yo, K + 1), r, s, Qr−1 . Ejemplo. Como en el ejemplo anterior, sea n = 1K, a(r) yo = 3,7M, Ar = 1B, y i tiene 4 copias: (i, 1), . . . , (yo, 4). Entonces, las primeras 3 copias pertenecen a SV r,s automáticamente. Para el cuarto, conceptualmente, Algorand ′ lanza de forma independiente una moneda sesgada, cuya probabilidad de obtener Cara es 0,7. Copiar (i, 4) se selecciona si y sólo si el lanzamiento de la moneda es Cara. (Por supuesto, este lanzamiento de moneda sesgado se implementa hashing, firmando y comparando, como Lo he hecho todo el tiempo en este artículo, para permitirme probar su resultado.) Negocios como siempre Habiendo explicado cómo se seleccionan los verificadores y cómo se obtienen sus credenciales. Calculado en cada paso de una ronda r, la ejecución de una ronda es similar a la ya explicada.

Protokoll Algorand ′ mit ehrlicher Mehrheit des Geldes

Wir zeigen nun endlich, wie man die Annahme „Ehrliche Mehrheit der Benutzer“ durch viel mehr ersetzen kann sinnvolle Annahme der ehrlichen Mehrheit des Geldes. Die Grundidee ist (in einer proof-of-stake-Variante) „um einen Benutzer i \(\in\)PKr−k auszuwählen, der zu SV r,s gehört, mit einem Gewicht (d. h. Entscheidungskraft) proportional zu der Geldbetrag, der mir gehört.“24 Durch unsere HMM-Annahme können wir entscheiden, ob dieser Betrag in der Runde r − k gehalten werden soll oder zu Beginn der Runde r. Vorausgesetzt, dass uns eine kontinuierliche Teilnahme nichts ausmacht, entscheiden wir uns dafür die letztere Wahl. (Um die kontinuierliche Teilnahme zu eliminieren, hätten wir uns für die erstere Option entschieden. Besser gesagt, für den Geldbetrag, der bei rund r −k −2.000 liegt.) Es gibt viele Möglichkeiten, diese Idee umzusetzen. Der einfachste Weg wäre, jede Taste gedrückt zu halten höchstens 1 Geldeinheit und wähle dann zufällig n Benutzer i aus PKr−k aus, so dass a(r) ich = 1. 24Wir sollten PKr−k−2.000 sagen, um die kontinuierliche Teilnahme zu ersetzen. Der Einfachheit halber, da man es vielleicht verlangen möchte Bei kontinuierlicher Teilnahme verwenden wir wie zuvor PKr−k, um einen Parameter weniger zu tragen.

Die nächsteinfachste Implementierung Die nächsteinfachere Implementierung könnte darin bestehen, zu verlangen, dass jeder öffentliche Schlüssel einen Höchstbetrag besitzt Geldmenge M für ein bestimmtes festes M. Der Wert M ist klein genug im Vergleich zum Gesamtbetrag von Geld im System, so dass die Wahrscheinlichkeit, dass ein Schlüssel zur Verifizierermenge gehört, größer als eins ist Schritt in – sagen wir – k Runden ist vernachlässigbar. Dann ist ein Schlüssel i \(\in\)PKr−k, der einen Geldbetrag a(r) besitzt ich in Runde r, wird ausgewählt, um zu SV r,s zu gehören, wenn .H SIGi r, s, Qr−1 \(\leq\)p \(\cdot\) a(r) ich M . Und alles läuft wie bisher ab. Eine komplexere Implementierung Die letzte Implementierung „zwingte einen reichen Teilnehmer des Systems, viele Schlüssel zu besitzen“. Eine alternative Implementierung, die unten beschrieben wird, verallgemeinert den Begriff Status und Überlegung Jeder Benutzer i soll aus K + 1 Kopien (i, v) bestehen, von denen jede unabhängig als Verifizierer ausgewählt wird. und wird seinen eigenen vergänglichen Schlüssel besitzen (pkr,s i,v, skr,s i,v) in einem Schritt s einer Runde r. Der Wert K hängt davon ab über den Geldbetrag a(r) ich im besitz von i in rund r. Sehen wir uns nun genauer an, wie ein solches System funktioniert. Anzahl der Exemplare Sei n die angestrebte erwartete Kardinalität jedes Verifizierersatzes und sei a(r) ich sei der Geldbetrag, der einem Benutzer i in Runde r gehört. Sei Ar der Gesamtbetrag des Geldes, das man besitzt von den Benutzern in PKr−k in Runde r, d. h. Ar = X i\(\in\)P Kr−k a(r) ich . Wenn i ein Benutzer in PKr−k ist, dann sind die Kopien von i (i, 1), . . . , (i, K + 1), wo K = $ n \(\cdot\) a(r) ich Ar % . Beispiel. Sei n = 1.000, Ar = 109 und a(r) ich = 3,7 Millionen. Dann, K = 103 \(\cdot\) (3,7 \(\cdot\) 106) 109  = ⌊3,7⌋= 3 . Prüfer und Anmeldeinformationen Sei ich ein Benutzer in PKr−k mit K + 1 Kopien. Für jedes v = 1, . . . , K, copy (i, v) gehört automatisch zu SV r,s. Das heißt, meine Qualifikation ist \(\sigma\)r,s i,v \(\triangleq\)SIGi((i, v), r, s, Qr−1), aber die entsprechende Bedingung wird .H(\(\sigma\)r,s i,v) \(\leq\)1, also immer wahr. Für copy (i, K + 1) prüft i für jeden Schritt s der Runde r, ob .H SIGi (i, K + 1), r, s, Qr−1 \(\leq\)a(r) ich n Ar −K .

Wenn ja, gehört Kopie (i, K + 1) zu SV r,s. Um es zu beweisen, gebe ich den Berechtigungsnachweis weiter \(\sigma\)r,1 i,K+1 = SIGi (i, K + 1), r, s, Qr−1 . Beispiel. Wie im vorherigen Beispiel sei n = 1K, a(r) ich = 3,7M, Ar = 1B und i hat 4 Kopien: (i, 1), . . . , (i, 4). Dann gehören die ersten 3 Kopien automatisch zu SV r,s. Für den 4. Konzeptionell wirft Algorand ′ unabhängig eine voreingenommene Münze, deren Kopfwahrscheinlichkeit 0,7 beträgt. Kopieren (i, 4) wird genau dann ausgewählt, wenn der Münzwurf „Kopf“ ist. (Natürlich wird dieser voreingenommene Münzwurf durch hashdurch hashing, signieren und vergleichen umgesetzt – wie wir Dies habe ich in dieser Arbeit die ganze Zeit über getan – um es mir zu ermöglichen, sein Ergebnis zu beweisen.) Alles wie gewohnt Nachdem erklärt wurde, wie Prüfer ausgewählt werden und welche Qualifikationen sie haben Bei jedem Schritt einer Runde r berechnet, ähnelt die Ausführung einer Runde der bereits erläuterten.

Manejo de bifurcaciones

Habiendo reducido la probabilidad de bifurcaciones a 10−12 o 10−18, es prácticamente innecesario manejar ellos en la remota posibilidad de que ocurran. Algorand, sin embargo, también puede emplear varias bifurcaciones. Procedimientos de resolución, con o sin constancia de trabajo. Una forma posible de indicar a los usuarios que resuelvan las bifurcaciones es la siguiente: • Siga la cadena más larga si un usuario ve varias cadenas. • Si hay más de una cadena más larga, siga aquella que tenga un bloque no vacío al final. si Todos tienen bloques vacíos al final, considere sus penúltimos bloques. • Si hay más de una cadena más larga con bloques no vacíos al final, digamos que las cadenas son de longitud r, siga aquel cuyo líder del bloque r tenga la credencial más pequeña. Si hay vínculos, siga aquel cuyo bloque r tenga el valor hash más pequeño. Si todavía hay empates, siga las aquel cuyo bloque r está ordenado lexicográficamente como el primero.

Umgang mit Forks

Da die Wahrscheinlichkeit von Forks auf 10−12 oder 10−18 reduziert wurde, ist die Handhabung praktisch unnötig sie in der entfernten Chance, dass sie auftreten. Algorand kann jedoch auch verschiedene Forks verwenden Abwicklungsverfahren, mit oder ohne Arbeitsnachweis. Eine Möglichkeit, die Benutzer anzuweisen, Forks aufzulösen, ist wie folgt: • Folgen Sie der längsten Kette, wenn ein Benutzer mehrere Ketten sieht. • Wenn es mehr als eine längste Kette gibt, folgen Sie der Kette mit einem nicht leeren Block am Ende. Wenn Alle von ihnen haben am Ende leere Blöcke, betrachten Sie die vorletzten Blöcke. • Wenn es mehr als eine längste Kette mit nicht leeren Blöcken am Ende gibt, sagen wir, dass es sich um Ketten handelt der Länge r, folgen Sie demjenigen, dessen Anführer von Block r den kleinsten Berechtigungsnachweis hat. Wenn es Unentschieden gibt, Folgen Sie demjenigen, dessen Block r selbst den kleinsten hash-Wert hat. Wenn es immer noch Unentschieden gibt, befolgen Sie die Anweisungen einer, dessen Block r lexikographisch der erste ist.

Manejo de particiones de red

Como se dijo, asumimos que los tiempos de propagación de los mensajes entre todos los usuarios de la red están limitados por \(\lambda\) y Λ. Esta no es una suposición sólida, ya que la Internet actual es rápida y sólida, y los valores reales de estos parámetros son bastante razonables. Aquí, señalemos que Algorand ′ 2 continúa funcionando incluso si Internet ocasionalmente se divide en dos partes. El caso cuando Internet está dividida en más de dos partes. 10.1 Particiones Físicas En primer lugar, la partición puede deberse a motivos físicos. Por ejemplo, un gran terremoto puede terminarán por romper por completo la conexión entre Europa y América. En este caso, el Los usuarios malintencionados también están particionados y no hay comunicación entre las dos partes. Así

Habrá dos Adversarios, uno para la parte 1 y el otro para la parte 2. Cada Adversario todavía intenta romper el protocolo por su parte. Supongamos que la partición ocurre en medio de la ronda r. Entonces cada usuario sigue siendo seleccionado como verificador basado en PKr−k, con la misma probabilidad que antes. Sea HSV r,s yo y MSV r,s yo respectivamente sea el conjunto de verificadores honestos y maliciosos en un paso s en la parte i \(\in\){1, 2}. tenemos |VHS r,s 1 | + |MSV r,s 1 | + |VHS r,s 2 | + |MSV r,s 2 | = |VHS r,s| + |MSV r,s|. Tenga en cuenta que |HSV r,s| + |MSV r,s| < |VHS r,s| + 2|MSV r,s| < 2tH con una probabilidad abrumadora. Si alguna parte i tiene |HSV r,s yo | + |MSV r,s yo | \(\geq\)tH con probabilidad no despreciable, por ejemplo, 1%, entonces el probabilidad de que |HSV r,s 3-i| + |MSV r,s 3-i| \(\geq\)tH es muy bajo, por ejemplo, 10−16 cuando F = 10−18. En este caso, también podemos tratar la parte más pequeña como si estuviera fuera de línea, porque no habrá suficientes verificadores en esta parte para generar firmas tH para certificar un bloque. Consideremos la parte más amplia, digamos la parte 1, sin pérdida de generalidad. Aunque |HSV r,s| < tH con probabilidad insignificante en cada paso s, cuando la red está particionada, |HSV r,s 1 | puede ser menor que tH con alguna probabilidad no despreciable. En este caso el adversario podrá, con alguna otra probabilidad no despreciable, fuerce el protocolo binario BA en una bifurcación en la ronda r, con un bloque no vacío Br y el bloque vacío Br ǫ ambos con tH firmas válidas.25 Por ejemplo, en un Pasos Coin-Fixed-To-0, todos los verificadores en HSV r,s 1 firmó para el bit 0 y H(Br), y propagó sus mensajes. Todos los verificadores en MSV r,s 1 También firmaron 0 y H(Br), pero retuvieron sus mensajes. porque |VHS r,s 1 | + |MSV r,s 1 | \(\geq\)tH, el sistema tiene suficientes firmas para certificar al Hno. Sin embargo, desde el Los verificadores maliciosos retienen sus firmas, los usuarios ingresan al paso s + 1, que es un paso Coin-Fixed-To1. Porque |HSV r,s 1 | < tH debido a la partición, los verificadores en HSV r,s+1 1 no lo vi firmas para el bit 0 y todos firmaron para el bit 1. Todos los verificadores en MSV r,s+1 1 hizo lo mismo. porque |VHS r,s+1 1 | + |MSV r,s+1 1 | \(\geq\)tH, el sistema tiene suficientes firmas para certificar a Br ǫ. El adversario luego crea una bifurcación liberando las firmas de MSV r,s 1 para 0 y H(Br). En consecuencia, habrá dos Qr, definidas por los bloques correspondientes de la ronda r. Sin embargo, la bifurcación no continuará y sólo una de las dos ramas podrá crecer en la ronda r + 1. Instrucciones adicionales para Algorand ′ 2. Al ver un bloque Br no vacío y el bloque vacío bloque Br ǫ , sigue al no vacío (y el Qr definido por él). De hecho, al indicar a los usuarios que utilicen el bloque no vacío en el protocolo, si una gran cantidad cantidad de usuarios honestos en PKr+1−k se dan cuenta de que hay una bifurcación al comienzo de la ronda r +1, entonces la El bloque vacío no tendrá suficientes seguidores y no crecerá. Supongamos que el adversario logra dividir a los usuarios honestos para que algunos usuarios honestos vean Br (y quizás Br ǫ), y algunos sólo ven hermano ǫ. Debido a que el Adversario no puede decir cuál de ellos será un verificador siguiendo a Br y cuál será un verificador siguiendo al Hno. ǫ , los usuarios honestos se dividen aleatoriamente y cada uno de ellos sigue se convierte en un verificador (ya sea con respecto a Br o con respecto a Br ǫ) en un paso s > 1 con probabilidad pág. Para los usuarios maliciosos, cada uno de ellos puede tener dos oportunidades de convertirse en verificador, una con Br y el otro con Br ǫ, cada uno con probabilidad p de forma independiente. Sea HSV r+1,s 1;Br sea el conjunto de verificadores honestos en el paso s de la ronda r+1 después de Br. Otras notaciones como HSV r+1,s 1;Brǫ , MSV r+1,s 1;Br y MSV r+1,s 1;Brǫ se definen de manera similar. Por Chernoffbound, es fácil 25No es posible tener una bifurcación con dos bloques no vacíos con o sin particiones, excepto con cantidades insignificantes. probabilidad.para ver que con abrumadora probabilidad, |VHS r+1,s 1;Br | + |VHS r+1,s 1;Brǫ | + |MSV r+1,s 1;Br | + |MSV r+1,s 1;Brǫ | < 2tH. En consecuencia, las dos sucursales no pueden tener las firmas adecuadas que certifiquen un bloque para la ronda. r + 1 en el mismo paso s. Además, dado que las probabilidades de selección para dos pasos s y s′ son las iguales y las selecciones son independientes, también con una probabilidad abrumadora |VHS r+1,s 1;Br | + |MSV r+1,s 1;Br | + |VHS r+1,s′ 1;Brǫ | + |MSV r+1,s′ 1;Brǫ | < 2tH, para dos pasos cualesquiera s y s′. Cuando F = 10−18, por unión ligada, siempre y cuando el Adversario no pueda particionar a los usuarios honestos durante mucho tiempo (digamos 104 pasos, que son más de 55 horas con \(\lambda\) = 10 segundos26), con alta probabilidad (digamos 1−10−10) como máximo una rama tendrá las firmas adecuadas para certificar un bloque en la ronda r + 1. Finalmente, si la partición física ha creado dos partes con aproximadamente el mismo tamaño, entonces la probabilidad de que |HSV r,s yo | + |MSV r,s yo | \(\geq\)tH es pequeño para cada parte i. Tras un análisis similar, incluso si el Adversario logra crear una bifurcación con alguna probabilidad no despreciable en cada parte para la ronda r, como máximo una de las cuatro ramas puede crecer en la ronda r + 1. 10.2 Partición adversaria En segundo lugar, la partición puede ser causada por el Adversario, de modo que los mensajes propagados por los usuarios honestos en una parte no llegará directamente a los usuarios honestos de la otra parte, pero el Adversario puede reenviar mensajes entre las dos partes. Aún así, una vez que un mensaje de uno parte llega a un usuario honesto en la otra parte, se propagará en esta última como de costumbre. si el El adversario está dispuesto a gastar mucho dinero, es posible que pueda hackear el Internet y particionarlo así por un tiempo. El análisis es similar al de la parte más grande de la partición física anterior (la más pequeña parte se puede considerar que tiene población 0): el Adversario puede ser capaz de crear una bifurcación y cada usuario honesto sólo ve una de las ramas, pero como máximo una rama puede crecer. 10.3 Particiones de red en suma Aunque pueden ocurrir particiones de red y puede ocurrir una bifurcación en una ronda debajo de las particiones, No hay ninguna ambigüedad persistente: una bifurcación dura muy poco y, de hecho, dura como máximo una ronda. en todas las partes de la partición excepto como máximo una, los usuarios no pueden generar un nuevo bloque y, por lo tanto, (a) darse cuenta de que hay una partición en la red y (b) nunca confiar en bloques que "desaparecerán". Agradecimientos En primer lugar, nos gustaría agradecer a Sergey Gorbunov, coautor del citado sistema Democoin. Nuestro más sincero agradecimiento a Maurice Herlihy por muchas discusiones esclarecedoras, por señalar señaló que la canalización mejorará el rendimiento de Algorand y mejorará en gran medida el 26 Tenga en cuenta que un usuario finaliza un paso s sin esperar 2\(\lambda\) tiempo sólo si ha visto al menos tH firmas para el mismo mensaje. Cuando no hay suficientes firmas, cada paso durará 2\(\lambda\).

exposición de una versión anterior de este artículo. Muchas gracias a Sergio Rajsbaum, por sus comentarios sobre una versión anterior de este documento. Muchas gracias a Vinod Vaikuntanathan por varias discusiones profundas. y percepciones. Muchas gracias a Yossi Gilad, Rotem Hamo, Georgios Vlachos y Nickolai Zeldovich. por comenzar a probar estas ideas y por muchos comentarios y discusiones útiles. Silvio Micali quisiera agradecer personalmente a Ron Rivest por innumerables debates y orientación. en investigación criptográfica durante más de 3 décadas, por ser coautor del citado sistema de micropagos que ha inspirado uno de los mecanismos de selección de verificadores de Algorand. Esperamos llevar esta tecnología al siguiente nivel. Mientras tanto el viaje y el compañerismo Son muy divertidos, por lo que estamos muy agradecidos.

Umgang mit Netzwerkpartitionen

Wie gesagt gehen wir davon aus, dass die Ausbreitungszeiten von Nachrichten zwischen allen Benutzern im Netzwerk durch \(\lambda\) und Λ begrenzt sind. Dies ist keine starke Annahme, da das heutige Internet schnell und robust ist Die tatsächlichen Werte dieser Parameter sind durchaus angemessen. Lassen Sie uns hier darauf hinweisen, dass Algorand ′ 2 funktioniert weiterhin, auch wenn das Internet gelegentlich in zwei Teile geteilt wurde. Der Fall, wenn Das Internet ist in mehr als zwei Teile unterteilt. 10.1 Physische Partitionen Erstens kann die Teilung physikalische Ursachen haben. Zum Beispiel kann es zu einem großen Erdbeben kommen Am Ende wird die Verbindung zwischen Europa und Amerika völlig zerstört. In diesem Fall ist die böswillige Benutzer werden ebenfalls aufgeteilt und es findet keine Kommunikation zwischen den beiden Teilen statt. Also

Es wird zwei Gegner geben, einen für Teil 1 und einen für Teil 2. Jeder Gegner versucht es immer noch Brechen Sie das Protokoll in seinem eigenen Teil. Nehmen Sie an, dass die Teilung in der Mitte der Runde r erfolgt. Dann wird jeder Benutzer noch als ausgewählt Verifizierer basierend auf PKr−k, mit der gleichen Wahrscheinlichkeit wie zuvor. Lass den HSV r,s ich und MSV r,s ich bzw sei die Menge der ehrlichen und böswilligen Verifizierer in einem Schritt s in Teil i \(\in\){1, 2}. Wir haben |HSV r,s 1 | + |MSV r,s 1 | + |HSV r,s 2 | + |MSV r,s 2 | = |HSV r,s| + |MSV r,s|. Beachten Sie, dass |HSV r,s| + |MSV r,s| < |HSV r,s| + 2|MSV r,s| < 2tH mit überwältigender Wahrscheinlichkeit. Wenn ein Teil i |HSV r,s hat ich | + |MSV r,s ich | \(\geq\)tH mit nicht vernachlässigbarer Wahrscheinlichkeit, z. B. 1 %, dann ist die Wahrscheinlichkeit, dass |HSV r,s 3−i| + |MSV r,s 3−i| \(\geq\)tH ist sehr niedrig, z. B. 10−16, wenn F = 10−18. In diesem Fall, Wir können den kleineren Teil genauso gut als offline betrachten, da nicht genügend Verifizierer vorhanden sein werden Dieser Teil dient zum Generieren der Signaturen zur Zertifizierung eines Blocks. Betrachten wir den größeren Teil, sagen wir Teil 1, ohne die Allgemeingültigkeit zu verlieren. Obwohl |HSV r,s| < tH mit vernachlässigbarer Wahrscheinlichkeit in jedem Schritt s, wenn das Netzwerk partitioniert ist, |HSV r,s 1 | kann sein kleiner als tH mit einer nicht zu vernachlässigenden Wahrscheinlichkeit. In diesem Fall kann der Gegner mit einigen Andere nicht vernachlässigbare Wahrscheinlichkeiten zwingen das binäre BA-Protokoll in Runde r zu einer Verzweigung mit einem nicht leeren Block Br und dem leeren Block Br ǫ beide haben die gültigen Unterschriften.25 Beispielsweise in a Coin-Fixed-To-0-Schritte s, alle Verifizierer in HSV r,s 1 für Bit 0 und H(Br) signiert und weitergegeben Nachrichten. Alle Prüfer in MSV r,s 1 unterzeichneten ebenfalls 0 und H(Br), hielten ihre Nachrichten jedoch zurück. Weil |HSV r,s 1 | + |MSV r,s 1 | \(\geq\)tH, das System verfügt über genügend Unterschriften, um Br zu zertifizieren. Da jedoch die böswillige Verifizierer haben ihre Signaturen zurückgehalten, die Benutzer geben Schritt s + 1 ein, bei dem es sich um einen Coin-Fixed-To1-Schritt handelt. Weil |HSV r,s 1 | < tH aufgrund der Partition, die Prüfer im HSV r,s+1 1 habe das nicht gesehen Signaturen für Bit 0 und alle signierten für Bit 1. Alle Prüfer in MSV r,s+1 1 habe das Gleiche getan. Weil |HSV r,s+1 1 | + |MSV r,s+1 1 | \(\geq\)tH, das System verfügt über genügend Unterschriften, um Br zu zertifizieren ǫ. Der Gegner erstellt dann einen Fork, indem er die Signaturen von MSV r,s freigibt 1 für 0 und H(Br). Dementsprechend gibt es zwei Qr, die durch die entsprechenden Blöcke der Runde r definiert werden. Allerdings die Gabelung wird nicht fortgesetzt und nur einer der beiden Zweige darf in Runde r + 1 wachsen. Zusätzliche Anweisungen für Algorand ′ 2. Wenn man einen nicht leeren Block sieht, ist Br und der leere Block Br ǫ , folgen Sie dem nicht leeren (und dem dadurch definierten Qr). In der Tat, indem die Benutzer angewiesen werden, den nicht leeren Block im Protokoll zu verwenden, wenn dieser groß ist Anzahl der ehrlichen Benutzer in PKr+1−k erkennen, dass es zu Beginn der Runde r +1 eine Abzweigung gibt, dann Ein leerer Block hat nicht genügend Follower und wächst nicht. Angenommen, der Gegner schafft es Partitionieren Sie die ehrlichen Benutzer so, dass einige ehrliche Benutzer Br (und möglicherweise Br) sehen ǫ), und manche sehen nur Br ǫ. Weil der Gegner nicht sagen kann, welcher von ihnen als Verifizierer nach Br fungieren wird und welcher wird nach Br. ein Prüfer sein ǫ , die ehrlichen Benutzer werden zufällig aufgeteilt und jeder von ihnen bleibt stehen wird zum Verifizierer (entweder in Bezug auf Br oder in Bezug auf Br ǫ) in einem Schritt s > 1 mit Wahrscheinlichkeit p. Für die böswilligen Benutzer hat jeder von ihnen möglicherweise zwei Chancen, Prüfer zu werden, eine mit Br und der andere mit Br ǫ, jeweils mit Wahrscheinlichkeit p unabhängig. Sei HSV r+1,s 1;Br sei die Menge der ehrlichen Verifizierer in den Schritten s der Runde r+1 nach Br. Andere Notationen wie HSV r+1,s 1;Brǫ , MSV r+1,s 1;Br und MSV r+1,s 1;Brǫ sind ähnlich definiert. Bei Chernoffbound ist es einfach 25Eine Abzweigung mit zwei nicht leeren Blöcken ist weder mit noch ohne Partitionen möglich, außer mit vernachlässigbaren Wahrscheinlichkeit.das mit überwältigender Wahrscheinlichkeit zu sehen, |HSV r+1,s 1;Br | + |HSV r+1,s 1;Brǫ | + |MSV r+1,s 1;Br | + |MSV r+1,s 1;Brǫ | < 2tH. Dementsprechend können die beiden Zweige nicht beide über die richtigen Signaturen verfügen, die einen Block für eine Runde bescheinigen r + 1 im gleichen Schritt s. Da außerdem die Auswahlwahrscheinlichkeiten für zwei Schritte s und s′ sind gleich und die Auswahlen sind unabhängig, auch mit überwältigender Wahrscheinlichkeit |HSV r+1,s 1;Br | + |MSV r+1,s 1;Br | + |HSV r+1,s′ 1;Brǫ | + |MSV r+1,s′ 1;Brǫ | < 2tH, für zwei beliebige Schritte s und s′. Wenn F = 10−18, durch die Vereinigung gebunden, solange der Gegner dies nicht kann Partitionieren Sie die ehrlichen Benutzer über einen langen Zeitraum (z. B. 104 Schritte, was mehr als 55 Stunden mit \(\lambda\) = 10 entspricht). Sekunden26), mit hoher Wahrscheinlichkeit (sagen wir 1−10−10) wird höchstens ein Zweig die richtigen Signaturen haben um einen Block in Runde r + 1 zu zertifizieren. Wenn die physische Partition schließlich zwei Teile mit ungefähr der gleichen Größe erstellt hat, dann ist die Wahrscheinlichkeit, dass |HSV r,s ich | + |MSV r,s ich | \(\geq\)tH ist für jeden Teil i klein. Nach einer ähnlichen Analyse, selbst wenn es dem Gegner gelingt, in jedem Teil eine Abzweigung mit einer nicht zu vernachlässigenden Wahrscheinlichkeit zu schaffen für Runde r darf höchstens einer der vier Zweige in Runde r + 1 wachsen. 10.2 Gegnerische Teilung Zweitens kann die Partitionierung durch den Angreifer verursacht werden, sodass sich die Nachrichten verbreiten durch die ehrlichen Benutzer in einem Teil erreichen die ehrlichen Benutzer im anderen Teil nicht direkt, sondern Der Gegner ist in der Lage, Nachrichten zwischen den beiden Teilen weiterzuleiten. Dennoch einmal eine Nachricht von einem Wenn ein Teil einen ehrlichen Benutzer im anderen Teil erreicht, wird er dort wie üblich weitergegeben. Wenn die Ist der Gegner bereit, viel Geld auszugeben, ist es denkbar, dass er in der Lage ist, das zu hacken Internet und Partitionierung für eine Weile so. Die Analyse ähnelt der für den größeren Teil in der physischen Partition oben (der kleinere). Teil kann als Population 0 betrachtet werden): Der Gegner kann möglicherweise eine Abzweigung erstellen und Jeder ehrliche Benutzer sieht nur einen der Zweige, es darf aber höchstens ein Zweig wachsen. 10.3 Netzwerkpartitionen im Überblick Obwohl es zu Netzwerkpartitionen kommen kann und eine Verzweigung in einer Runde unter Partitionen stattfinden kann, gibt es sie Es besteht keine bleibende Unklarheit: Eine Gabelung ist sehr kurzlebig und dauert tatsächlich höchstens eine einzige Runde. In Alle Teile der Partition außer höchstens einem, können die Benutzer keinen neuen Block generieren und somit (a) erkennen, dass es eine Partition im Netzwerk gibt und (b) sich niemals auf Blöcke verlassen, die „verschwinden“. Danksagungen Wir möchten zunächst Sergey Gorbunov danken, Mitautor des zitierten Democoin-Systems. Der aufrichtigste Dank geht an Maurice Herlihy für die vielen aufschlussreichen Diskussionen und die Hinweise heraus, dass Pipelining die Durchsatzleistung von Algorand verbessern wird, und für eine erhebliche Verbesserung der 26Beachten Sie, dass ein Benutzer einen Schritt s nur beendet, ohne 2\(\lambda\) Zeit zu warten, wenn er mindestens die Signaturen dafür gesehen hat gleiche Nachricht. Wenn nicht genügend Signaturen vorhanden sind, dauert jeder Schritt 2\(\lambda\).

Darstellung einer früheren Version dieser Arbeit. Vielen Dank an Sergio Rajsbaum für seine Kommentare zu eine frühere Version dieses Artikels. Vielen Dank an Vinod Vaikuntanathan für die zahlreichen intensiven Diskussionen und Erkenntnisse. Vielen Dank an Yossi Gilad, Rotem Hamo, Georgios Vlachos und Nickolai Zeldovich für den Beginn, diese Ideen zu testen, und für viele hilfreiche Kommentare und Diskussionen. Silvio Micali möchte sich persönlich bei Ron Rivest für die unzähligen Gespräche und Anleitungen bedanken in der kryptografischen Forschung über mehr als drei Jahrzehnte, für die Mitautoren des genannten Mikrozahlungssystems Dies hat einen der Verifizierer-Auswahlmechanismen von Algorand inspiriert. Wir hoffen, diese Technologie auf die nächste Stufe zu bringen. Inzwischen das Reisen und die Kameradschaft machen großen Spaß, wofür wir sehr dankbar sind.