Intercambio de Ethereum Intercambio de Ethereum
Ctrl+D Intercambio de Ethereum
ads

Algoritmo aleatorio de Ethereum 2.0

Author:

Time:

Introducción Si quieres aprender a bailar shuffle, estás en el lugar equivocado. Pero confía en mí, mezclar en Eth2 es igual de emocionante. La lista aleatoria es una operación básica en Ethereum 2.0. Se utiliza principalmente para seleccionar verificadores pseudoaleatoriamente para formar un comité en cada intervalo de 12 segundos y para seleccionar al proponente del bloque de la cadena de balizas en cada intervalo. Shuffle parece bastante sencillo. Aunque tiene algunas trampas a tener en cuenta, estas trampas se entienden muy bien en informática. El patrón oro es probablemente la combinación Fisher-Yeats. Entonces, ¿por qué no lo usamos en Eth2? Lo explicaré en detalle al final del artículo, pero en resumen: cliente ligero. El algoritmo de barajado que usamos es swap-or-not, no Fisher-Yates. Esta elección se basa en el papel que se usó originalmente para construir el esquema de cifrado. Recientemente reescribí nuestra implementación en el cliente Eth2 Teku, así que quería escribirlo mientras estaba caliente. Algoritmo de intercambio o no barajar Proceso de operación de una ronda El barajado se realiza en rondas. El proceso de cada ronda es el mismo, así que solo demostraré el proceso de una ronda a continuación, es mucho más simple de lo que parece. Elija un punto de pivote y encuentre el primer índice de espejo Primero, elegimos un índice de pivote p, que se selecciona de forma pseudoaleatoria en función de las rondas y algunos otros datos iniciales. Después de seleccionar el eje, se fija en la ronda. Datos: El TVL de Ethereum Bridge alcanzó los 14,77 mil millones de dólares estadounidenses: Jinse Finance informó que los datos de Dune Analytics mostraron que el TVL actual de Ethereum Bridge alcanzó los 14,77 mil millones de dólares estadounidenses. Entre ellos, los cinco puentes con el volumen de bloqueo más alto son Polygon Bridges ($ 4,434 mil millones), Fantom Anyswap Bridge ($ 3,787 mil millones), Avalanche Bridge ($ 3,734 mil millones), Arbitrum Bridges ($ 2,092 mil millones), Optimism Bridges ($ 260 millones). [2021/10/13 20:26:21] Basándonos en este punto de pivote, seleccionamos un índice de espejo m1 en el punto medio entre p y 0, es decir, m1=p/2. (En aras de la explicación, ignoraremos el problema de los molestos errores de redondeo por uno.) Punto de pivote y primer índice de espejo desde el primer índice de espejo hasta el punto de pivote, reemplazo o no Para el índice de espejo m1 y el índice de pivote p Para cada índice entre , decidimos al azar si realizar el reemplazo de esos elementos. Por ejemplo, para el índice i1, si elegimos no reemplazar, continuamos seleccionando el siguiente índice. Si decidimos reemplazar, reemplazamos el elemento de la lista en i1 con el de i1', es decir, su imagen en el índice espejo. Es decir, i1 se reemplaza por i1'=m1-(i1-m1), de modo que las distancias de i1 e i1' a m1 son iguales. La escala de activos de DeFIL, una plataforma de préstamos FIL descentralizada basada en Ethereum, supera los 500 millones de yuanes: según el sitio web de Gasnow, a partir de 2021.5.20 yuanes. La reducción de Gwei ha dado lugar a transacciones activas de protocolos DeFi basados ​​en la cadena Ethereum, entre ellos, DeFIL, una plataforma de préstamos FIL descentralizada basada en Ethereum, ha depositado activos que superan los 500 000 000 yenes. DeFIL es un protocolo de préstamo descentralizado de Filecoin basado en Ethereum. Los usuarios que participan en el depósito de FIL pueden obtener ingresos por intereses y el token de gobernanza de la plataforma DFL, y DFL puede continuar realizando minería de participación. [2021/5/26 22:45:19] Hacemos lo mismo para cada índice entre m1 y p Un intercambio -o-no decisión. La decisión de cambiar o no desde el índice del primer espejo hasta el pivote calcula el índice del segundo espejo Después de tomar todas las decisiones de índice de m1 a p, ahora encontramos el índice del segundo espejo con m2 como el punto medio, es decir, el punto con la misma distancia a p y al final de la lista. Eso es m2=m1+n/2. La tarifa de gas promedio de Ethereum alcanzó un nuevo máximo de 462 Gwei: el 26 de noviembre, según el etherscan del navegador Ethereum, la tarifa de gas promedio para las transferencias en la cadena Ethereum alcanzó los 462 Gwei, o alrededor de $ 5,07, y la tarifa de gas más alta fue de 509 Gwei, o alrededor de $ 5,59. Un nuevo máximo en los últimos días. [2020/11/26 22:11:56] El índice del segundo espejo es desde el punto de pivote hasta el segundo espejo, reemplazar o no. Finalmente, repetimos el proceso de intercambio o no, considerando todos los puntos al pivote p para reemplazar La decisión de p al segundo espejo m2. Si elegimos no reemplazar, continuamos con el siguiente. Si elegimos reemplazar, reemplazamos el elemento en j1 ​​con su imagen especular en j1 'en el índice espejo m2. La decisión de cambiar o no del pivote al índice del segundo espejo se combina Al final de la ronda, hemos considerado todos los índices entre m1 y m2, es decir, la mitad de todos los índices, y si se reemplazan o No, cada índice tiene un índice específico en la otra mitad. Por lo tanto, todos los índices han sido considerados una vez para reemplazo o no. La siguiente ronda comienza con rondas crecientes (o decrecientes) para que tengamos un nuevo índice de pivote, y luego comienza a recorrer el proceso descrito anteriormente. Dinámica | Parity Technologies recibió cinco millones de yuanes de la Fundación Ethereum: según informes de ethnews, la Fundación Ethereum anunció recientemente una inversión de cinco millones de dólares en Parity Technologies, diciendo que este último es el principal contribuyente técnico al proyecto Ethereum. [2019/1/8] El proceso de pasar de un espejo a otro en la misma ronda es interesante. Al decidir si reemplazar, el algoritmo elegirá hábilmente el índice candidato o el más alto del espejo. Por. Significa que cuando está debajo del eje, se selecciona i_1 en lugar de i_1', cuando está arriba del eje, se selecciona i_k' en lugar de i_k. Esto significa que podemos iterar sobre los índices en la lista de manera flexible: podemos separar 0 a m1 y p a m2 en dos bucles separados, o combinar ambos en el mismo bucle de m1 a m2, como lo describí anteriormente (e implementé ) en este papel. El resultado es el mismo en ambos sentidos: no importa si considero i_1 o espejo i_1'; la sustitución o no da el mismo resultado. Rondas En Eth2, el proceso anterior se realizará 90 veces. El documento original menciona que se necesitan rondas de 6lgN para "comenzar a mostrar un buen margen de seguridad en los ataques criptográficos selectivos (CCA)", donde N es la longitud de la lista. En la especificación comentada de Vitalik, dice que "los expertos en criptografía sugieren que podemos proporcionar suficiente seguridad con rondas de 4log2N". La investigación muestra: los indios están más interesados ​​en Ethereum que en Bitcoin: según Quartz, el proveedor de servicios de Internet gratuito Jana mostró en su último informe móvil convencional que los indios están más interesados ​​en Ethereum que en Bitcoin. En los últimos cinco meses, ethereum representó el 34,4 por ciento de las búsquedas relacionadas con criptomonedas, mientras que bitcoin representó solo el 4,5 por ciento. Otro volumen de búsqueda representa el 21,4% de NEM. Dash, NEO, Litecoin, Ripple y Monero también están en la lista. Quartz señaló que las estadísticas de Jana se basan en un análisis de los términos de búsqueda de criptomonedas en la aplicación móvil del navegador mCent de la compañía y las visitas a los intercambios, y por lo tanto, es posible que no representen completamente las búsquedas en todo el mercado de criptomonedas. [2018/4/5] El número máximo absoluto de verificadores en Eth2, es decir, el número máximo de veces que necesitamos barajar la lista, es de aproximadamente 222 (4,2 millones). El valor estimado dado por Vitalik es de 88 rondas y el valor estimado en el documento es de 92 rondas (suponiendo que lg es el logaritmo natural). Así que ahora estamos en un rango más o menos correcto, especialmente porque es muy probable que no terminemos con tantos validadores activos. Ajustar las rondas en función de la longitud de la lista podría tener resultados interesantes, pero no lo haríamos, podría ser una optimización innecesaria. Curiosamente, cuando Least Authority auditó la especificación de Beacon Chain, inicialmente encontraron que había un sesgo en el barajado que selecciona a los proponentes de bloques (ver Problema F). Pero resultó que por error usaron una configuración aleatoria con solo 10 rondas. Cuando aumentaron la configuración aleatoria a 90 rondas (el número que usamos en la red principal), el sesgo desapareció. El algoritmo de reproducción aleatoria (pseudo) requiere que elijamos aleatoriamente un punto de pivote en cada ronda y elijamos aleatoriamente si reemplazamos cada elemento en cada ronda. En Eth2, definitivamente generamos aleatoriedad a partir de un valor semilla, por lo que la misma semilla siempre producirá el mismo resultado de barajado. El índice del eje se genera realizando un hash SHA2 de 8 bytes en la semilla concatenada con la ronda, y el índice del eje se genera con los ocho bytes del hash SHA2 del valor semilla, que se concatena con la ronda, por lo que generalmente cambia cada ronda. Los bits decisivos utilizados para decidir si reemplazar un elemento se extraen de los siguientes elementos: el hash SHA256 de la semilla, la ronda, el índice del elemento en la lista. Eficiencia Este algoritmo de reproducción aleatoria es mucho más lento que el algoritmo de Fisher-Yates. Si el algoritmo de Fisher-Yates necesita N veces de barajado, nuestro algoritmo necesita 90N/4 veces en promedio. También tenemos que considerar la generación de pseudoaleatoriedad, que es la parte más cara del algoritmo. Fisher-Yates necesita una aleatoriedad cercana a Nlog2N dígitos, y necesitamos 90 (log2N+N/2) dígitos, de acuerdo con el rango de valores de N que necesitamos en Eth2, los dígitos en exceso son muchos (cuando N es un millón, Eth2 necesita aproximadamente el doble de N). ¿Por qué elegir el algoritmo swap-or-not?, si la eficiencia no es alta, ¿por qué elegir esta implementación? Mezclar elementos individuales La brillantez de este algoritmo es que si solo nos interesan unos pocos índices, no necesitamos calcular la mezcla de toda la lista. De hecho, podemos usar este algoritmo en un solo índice para averiguar qué índice se reemplazará. Entonces, si queremos saber dónde se ha barajado el elemento en el índice 217, podemos ejecutar el algoritmo solo para ese índice, sin barajar la lista completa. Además, a la inversa, si quisiéramos saber qué elemento se barajó en el índice 217, podríamos ejecutar el algoritmo a la inversa para encontrar el elemento 217 (inverso significa ejecutar las rondas de mayor a menor, no de menor a mayor). En resumen, podemos calcular dónde se barajó el elemento i y de dónde vino el elemento i (usando la operación inversa) en tiempo constante, y el tiempo de cálculo no depende de la longitud de la lista. Fisher-Yates shuffle no tiene esta propiedad y no puede mezclar un solo índice, a menudo necesitan mezclar repetidamente la lista completa. Lo que está escrito en la especificación Eth2 es cómo se aplica el algoritmo para barajar un solo índice. De hecho, mezclar toda la lista a la vez es solo una optimización de la misma. Si queremos, podemos barajar solo un elemento de la lista a la vez: (al revés) ejecutar el barajado para encontrar qué elemento termina en el índice 0, ejecutar otro barajar para encontrar qué elemento termina en el índice 1, y así sucesivamente. La razón por la que no hacemos eso es simplemente porque la decisión de intercambiar o no requiere generar un hash de 256 bits a la vez, y tirar 255 bits así sería un desperdicio. Si usamos un oráculo o hash de 1 bit, barajar un elemento de la lista es tan eficiente como barajar la lista completa. Sea un verdadero cliente "ligero" La razón por la que esta función tiene sentido se debe al cliente ligero. Los clientes ligeros son equivalentes a los observadores de la cadena de balizas y la cadena de fragmentos Eth2. No almacenan el estado completo, pero esperan acceder de forma segura a los datos de la cadena. Un paso necesario para verificar que sus datos son correctos, es decir, que no se ha producido ningún fraude, es el cálculo del comité que da fe de los datos. Eso es usar el algoritmo aleatorio, y no queremos que el cliente ligero tenga que almacenar o mezclar toda la lista de validadores. Al cambiar o no mezclar, solo pueden realizar cálculos en un pequeño subconjunto de los miembros del comité que necesitan, lo que mejorará en gran medida la eficiencia general. Historia Si le gusta la naturaleza arqueológica de GitHub tanto como a mí, puede consultar la discusión sobre la búsqueda original del algoritmo aleatorio para Eth2 aquí, y el ganador final se anuncia aquí. Si desea ver el algoritmo de barajar de intercambiar o no desde otro ángulo, puede echar un vistazo a una explicación más visual publicada por Protolambda. La última imagen es cuando escuché a Justin Drake hablar sobre cambiar o no barajar en EthCC en 2019, mientras implementaba la primera versión de cambiar o no barajar en el cliente de Teku (todavía se llamaba Artemis en ese momento). .{ }

Tags:

Binance Download
DeFi Weekly | Un grupo de usuarios anónimos de Uniswap lanzaron conjuntamente el token comunitario UNII

1. El valor de mercado total de DeFi es de 14,27 mil millones de dólares estadounidenses, YFI cayó un 9.

YAM v3: ¿Qué reinicios necesitan atención?

El 11 del mes pasado, se lanzó YAM. Solo un día después, se descubrió una laguna en el protocolo YAM.

9.27 Cotizaciones nocturnas: preste atención a las oportunidades de compra bajas en el rango de impacto

El artículo es una contribución de Biquan Beiming, columnista de Jinse Finance and Economics, y sus comentarios solo representan sus puntos de vista personales.

Algoritmo aleatorio de Ethereum 2.0

Introducción Si quieres aprender a bailar shuffle, estás en el lugar equivocado. Pero confía en mí.

Nueva jugabilidad de GameFi: token social COIN y el surgimiento del "E-Den Syndicate" detrás de él

Creo que usted, como yo, nunca ha oído hablar de Marguerite deCourcelle.

ads