Precio de Bitcoin Precio de Bitcoin
Ctrl+D Precio de Bitcoin
ads
Casa > USDC > Info

Observación Dorada | Progreso de Utreexo

Author:

Time:

Resumen del progreso de Utreexo Este artículo presentará las ventajas de Utreexo y la medida en que estas ventajas se han materializado, y explicará el progreso significativo realizado en las últimas aplicaciones de Utreexo, pero se necesitará un largo proceso para popularizar esta tecnología. En la última conferencia de demostración en julio de 2020, señalamos que en el futuro, el proyecto Utreexo puede aplicar el acumulador Utreexo a btcd, que es la implementación BTC del lenguaje Go. Estoy feliz porque la implementación ya está disponible para otra demostración. En esta versión, se puede demostrar un nuevo patrón de nodos podados denominado "Nodo de estado denso". En abril de 2020, se publicó un artículo "ELI5: Utreexo——A Capacity Expansion Solution". Este artículo presentó las siguientes ventajas de los nodos de estado denso: 1. El nuevo modo de nodo completo solo ocupa unos pocos kilobytes, lo que permite que los nodos hdd se sincronicen tan rápido como los nodos ssd. 2. Puede realizar la descarga paralela del bloque inicial. 3. Dado que actualmente se utiliza la base de datos de Google, a través de nodos de estado denso, el consenso se puede lograr independientemente de la base de datos, lo que fortalece la seguridad de BTC. 4. La aplicación de Utreexo no conducirá a la bifurcación de BTC. En cuanto al estado de desarrollo actual, los puntos 3 y 4 ya se han realizado, el punto 1 solo se ha realizado parcialmente, debido a la existencia de datos que no son de Utreexo, el tamaño del nodo aún no se puede reducir a kilobytes y el punto 2 todavía está trabajando duro para lograr. ¿Por qué es importante el punto 3? Desde hace varios años, una de las prioridades para mejorar la seguridad de BTC ha sido eliminar cualquier dependencia externa sobre este. Las dependencias externas se refieren a confiar en un código que los desarrolladores de Bitcoin no escribieron, y estos son códigos necesarios para que funcione el software de Bitcoin. Para cualquier proyecto que dependa en gran medida de la seguridad, intente evitar confiar en código externo, ya que pueden crear vulnerabilidades. Para minimizar este riesgo, se revisa todo el código externo dependiente y se conserva una copia del código revisado. Sin embargo, este no es un enfoque perfecto, y sería mejor si los desarrolladores de BTC escribieran, probaran y revisaran directamente el código. Por esta razón, los desarrolladores de BTC han eliminado varios códigos que creaban dependencias externas, como el código OpenSSH. Actualmente, el código externo más dependiente es la base de datos que almacena el conjunto de salida no gastado (conjunto UTXO) y el índice de bloque. Ahora BTC usa la base de datos "LevelDB" de Google. LevelDB no debe tener lagunas en el código, lo cual es fundamental para la seguridad de BTC. Si hay una vulnerabilidad en LevelDB, puede dar lugar a un gasto doble o bifurcación accidental. De hecho, BTC usó Berkeley DB antes de LevelDB. En 2013, hubo una laguna en la aplicación de Berkeley DB en el nodo central de Bitcoin, lo que provocó que el antiguo nodo de billetera fallara al leer el bloque 225430, lo que resultó en una bifurcación inesperada. El UTXO mencionado anteriormente es un sistema de pago para BTC. El conjunto UTXO es muy importante para mantener la seguridad de BTC, porque constituye directamente el consenso de BTC, y eliminar LevelDB mejorará en gran medida su capacidad para resistir los riesgos. La realización del punto 3 requiere una base de datos porque la colección de UTXO contiene más de 60 millones de UTXO. Estos UTXO deben registrarse y se puede acceder a ellos rápidamente, ya que una velocidad de acceso demasiado lenta reducirá la velocidad de descarga del bloque inicial. El acceso rápido a grandes volúmenes de datos segmentados a menudo hace uso de bases de datos. Sin embargo, con los nodos de estado denso de Utreexo, no hay necesidad de una base de datos. En cambio, necesitamos que el remitente de UTXO proporcione datos de UTXO y el acumulador de Utreexo para probar la existencia de UTXO. De esta forma, en la implementación del nodo de estado denso de Utreexo, no es necesario reservar el conjunto UTXO. Esto permite que LevelDB se elimine de otra parte crítica del consenso de BTC. Para la expansión de la cadena principal, la siguiente es la comparación entre el método de verificación de bloques existente y la verificación de bloques de nodos de estado denso de Utreexo: El productor de música electrónica deadmau5 y la empresa de tecnología financiera Zytara llegaron a una cooperación: noticias del 15 de junio, el productor de música electrónica deadmau5 y financiero La empresa de tecnología Zytara llegó a una cooperación de marca. Zytara permitirá a los fanáticos de deadmau5 obtener tarjetas de débito físicas y virtuales diseñadas a medida de deadmau5 que se pueden usar en más de 45 millones de comerciantes en todo el mundo. Además, a través de la aplicación fintech de la marca deadmau5, los fanáticos pueden acceder a la tienda en línea de deadmau5 para comprar su mercadería, entradas para conciertos y mercadería en el juego. (Beincrypto) [2022/6/15 4:28:23] La única diferencia aquí es que la verificación del último bloque no accede a la base de datos. En cambio, usa Utreexo para validar bloques. Los cambios de código son mínimos, ya que la mayoría de las funciones de validación de bloques siguen siendo las mismas. Después de verificar la prueba del acumulador, los datos UTXO verificados (requeridos para el bloque de verificación) se convertirán en "UtxoViewpoint", que es la estructura de caché de colección UTXO existente, que es equivalente a CCoinsView del nodo central de Bitcoin, y luego el UTXO los datos se pasarán a la función Validar para los bloques existentes. La importancia del punto 4 En un sistema descentralizado como BTC, agregar nuevas funciones requiere bifurcaciones, y las bifurcaciones conllevan grandes riesgos. Las bifurcaciones duras de BTC son en gran medida imposibles porque no vale la pena bifurcarlas para una característica. Las bifurcaciones suaves también son difíciles de lograr porque requieren mucho apoyo de la comunidad. Por otro lado, si se puede agregar una nueva función directamente sin bifurcarse, la implementación de esta función será mucho más simple. Por ejemplo, los relés de bloque comprimido BIP-152 se adoptan ampliamente sin bifurcación. Para BIP-152, los nodos pueden elegir unirse, porque la propuesta no es obligatoria, y los nodos que no eligen unirse no necesitan hacer ningún cambio. Implementación del punto 4 Este es el punto más fácil de implementar, ya que se resolvió cuando Tadge Dryja escribió por primera vez el artículo de Utreexo. Evitamos las bifurcaciones blandas mediante el uso de nodos de transición llamados "nodos puente", que pueden conectar nuevos nodos Utreexo y nodos BTC actuales. Cuando un nodo que no es utreexo está conectado a un nodo puente, la función del nodo puente es la misma que la del nodo completo BTC actual. Sin embargo, después de conectar un nodo Utreexo al nodo puente, proporcionará la prueba Utreexo del bloque normal, que también se proporcionará a un nodo que no sea Utreexo. El artículo publicado en abril mencionó que el binario Utreexo estará codificado y solo puede conectarse al nodo puente que ejecutamos para evitar interferir con la red de prueba BTC. La importancia del punto 1 Para ejecutar un nodo completo, el conjunto UTXO mencionado anteriormente es una condición necesaria. Sin embargo, después de que más y más nodos adopten este conjunto, y la unidad de BTC se pueda dividir en otras más finas y pequeñas, el conjunto UTXO será más grande. Actualmente, el tamaño del conjunto UTXO es de aproximadamente 4 GB, pero para dispositivos económicos, este tamaño puede continuar aumentando más allá de las capacidades de procesamiento de estos dispositivos. Si BTC puede usarse ampliamente, es muy importante reducir el tamaño del conjunto UTXO. En el nodo BTC actual, cuando un bloque hace referencia a cualquier UTXO, el nodo necesita obtener la UTXO, ya sea a través del disco duro o de la memoria caché. Si la velocidad del disco duro del nodo es lenta, causará problemas, que también es uno de los cuellos de botella actuales de BTC. Para los nodos eliminados, esta es una restricción aún mayor, ya que cada UTXO almacenado en caché se escribe en el disco cuando se elimina un bloque. El desarrollador de BTC, Pieter Wuille, también señaló este problema, la velocidad de sincronización de los nodos podados es más lenta que la de los nodos no podados. Los nodos de estado denso de Utreexo permiten una sincronización más rápida porque no se requieren lecturas de disco para el conjunto UTXO. Esto muestra que en cualquier almacenamiento, ya sea una unidad de estado sólido basada en el protocolo NVMe u otras unidades de disco duro, los nodos de estado denso de Utreexo pueden ejercer el mismo rendimiento. Progreso actual en el punto 1. El tamaño completo del nodo no se ha reducido a unos pocos kilobytes, porque los metadatos de los encabezados de bloque ocupan cientos de megabytes. A pesar de la pequeña huella del estado de la cadena, no se debe ignorar el tamaño de otros datos si se quiere lograr el objetivo. En esta versión, el objetivo es reducirse a unos pocos cientos de megabytes. La siguiente figura compara el estado de cadena del nodo de estado denso de Utreexo y el nodo central de Bitcoin. Como se muestra en la figura anterior, el tamaño de estado de cadena del nodo de estado compacto de Utreexo es de solo 424 bytes, por lo que hay un error de redondeo para el tamaño de estado de cadena en el nodo. De hecho, el archivo peers.json utilizado para volver a conectar nodos conocidos para reinicios ocupa 205 kb, que es aproximadamente 483 veces el tamaño de chainstate. A continuación, se compara la diferencia de rendimiento entre el nodo central de Bitcoin podado y el nodo de estado denso de Utreexo, y se observan las velocidades de lectura y escritura de los SSD y otros discos duros basados ​​en el protocolo NVMe. Esta prueba especificará el nodo de estado compacto del nodo para conectarse a un nodo de puente Utreexo local diferente para leer datos del SSD según el protocolo NVMe para la evaluación comparativa. Suponiendo que se hayan verificado los primeros 1 864 000 bloques en el nodo Bitcoin Core, aplique la misma configuración al nodo de estado denso. Después de que la red de prueba 3 alcanza la altura de bloque de 1906000, se completa la prueba. En esta prueba se utilizó el siguiente hardware: CPU: AMD Ryzen 3600 Memoria: Samsung 32GB DDR4 2666MHz SSD basado en el protocolo NVMe como nodo de servicio local: 2TB Sandisk ULTRA .2 NVMe .2 SSD basado en el protocolo NVMe como nodo de prueba: 1TB HP SSD Disco duro del nodo de prueba EX950 M.2: Western Digital WD10EZEX-22BN5A0 1TB 7200RPM Los siguientes son los indicadores enviados al nodo Bitcoin Core: -prune=550 -connect=127.0.0.1-disablewallet-blocksonly -testnet Para el nodo Bitcoin Core, Se necesitaron 784 segundos para ejecutarse en el SSD basado en el protocolo NVMe y 1066 segundos en los otros discos duros. Para el nodo de estado denso de Utreexo, se necesitan 1643 segundos para ejecutarse en el SSD basado en el protocolo NVMe y 1700 segundos para ejecutarse en otros discos duros. Tenga en cuenta que, en lo que respecta a la implementación actual del nodo de estado denso de Utreexo, aún quedan muchas optimizaciones de rendimiento por realizar. Actualmente es más lento que el núcleo de bitcoin porque bifurcamos un nodo btcd que es mucho más lento. Publicaremos una versión y un artículo centrado en el rendimiento más adelante. ¿Por qué es tan importante el punto 2? Para evitar confusiones, este artículo se refiere a descargas paralelas a nivel de cadena. Esto significa que un solo nodo validará varios bloques al mismo tiempo, digamos 100001 a 200000 y luego 200001 a 300000. El punto 2 no se refiere a las descargas paralelas a nivel de bloque, en esta descarga paralela se verifican en paralelo las firmas de transacción de los bloques, lo cual se ha implementado en los nodos core de btcd y Bitcoin. En informática, la paralelización se refiere a la ejecución simultánea de múltiples procesos. Esto puede mejorar la utilización del hardware inactivo, como la CPU, y el rendimiento puede aumentar si el hardware está inactivo. En los últimos años, el desarrollo de la CPU ha encontrado dificultades para aumentar la frecuencia del reloj debido a limitaciones físicas. Por lo tanto, la gente está más preocupada por aumentar la cantidad de núcleos que por aumentar la frecuencia del reloj. En respuesta a esta situación, el desarrollo de software también ha realizado los cambios correspondientes, enfatizando cada vez más la paralelización, el propósito es hacer un uso completo de más núcleos de CPU. Paralelizar la descarga del bloque inicial puede reducir en gran medida el tiempo necesario para sincronizar un nodo completo, lo que facilita que los usuarios individuales ejecuten un nodo completo. Más nodos harán que la red BTC sea más resistente a los ataques. Desde esta perspectiva, la paralelización también puede aumentar la seguridad de BTC. Avance actual en el punto 2 La validación de cualquier bloque requiere el conjunto de UTXO del bloque anterior. Por ejemplo, si estamos validando el bloque 501, necesitamos el conjunto de UTXO del bloque 500. Sin embargo, para obtener el conjunto UTXO del bloque 500, se requiere el conjunto UTXO del bloque 499. Esto creará un problema, es decir, el bloque de génesis codificado de forma rígida que se remonta a BTC, lo que dificulta la realización de la paralelización a nivel de cadena. Con Utreexo, este problema es más fácil de resolver, porque el conjunto UTXO es solo de unos pocos cientos de bytes en lugar de unos pocos kilobytes. Esto nos permite codificar toda la representación del conjunto UTXO en el software como punto de partida para la verificación paralela. Tenga en cuenta que pueden aparecer nodos maliciosos y enviar conjuntos UTXO falsos. Sin embargo, esto no reduce nuestros requisitos de seguridad, ya que tenemos varios núcleos de CPU y podemos verificar desde el bloque génesis hasta la altura del bloque 499. Después de eso, continuaremos con la verificación desde el bloque 501, haciendo pleno uso de los núcleos de CPU inactivos. Después de completar el paso anterior, verificamos los bloques para verificar que los conjuntos UTXO del bloque 499 y el bloque 500 coincidan. Por lo tanto, la representación del conjunto UTXO codificado de forma rígida solo se usa como una sugerencia para mejorar la velocidad de procesamiento y, de hecho, se verificarán todos los bloques. Para admitir este tipo de paralelización a nivel de cadena, la base de código debe admitir que varios estados de cadena estén activos. La principal dificultad de tener varios estados de cadena (incluso dos) es tener que registrar varios conjuntos de UTXO. El conjunto UTXO requiere una base de datos, y debe haber un caché del conjunto en el disco, para que la velocidad de lectura pueda acelerarse.Bajo esta condición, los requisitos de hardware para ejecutar nodos serán mayores. Sin embargo, los nodos de estado denso de Utreexo pueden almacenar conjuntos de UTXO incluso sin una base de datos, por lo que esto no es un problema. Se está logrando el objetivo de tener múltiples estados de cadena. Para los nodos de estado denso de Utreexo, la carga de trabajo se reduce considerablemente porque no es necesario crear una base de datos para cada estado de cadena, por lo que puede tener varios estados de cadena. Para los nodos btcd, ingrese Blockchain para acceder a la base de datos de CChainstate En la actualidad, todavía estamos estudiando cómo cada chainstate debe manejar los mensajes de red p2p, probando diferentes métodos, como usar dos administradores de descarga de bloques iniciales, o registrar cada par de chainstate La solicitud emitida por el bloque, pero el proceso para lograr este objetivo aún es muy largo. Errores en esta versión La versión actual no es compatible con la reorganización de blockchain y mempool.

Tags:

USDC
Comentarios en la portada de Jingshen: RMB digital optimiza el sistema de pago de divisas de mi país

Título original: Digital RMB optimiza el sistema de pago de divisas de mi paísDesde el inicio del trabajo de investigación y desarrollo en 2014 hasta la prueba pública en 2020.

Informe: la moneda digital CBDC del banco central puede cubrir 1/5 de la población mundial en los próximos tres años.

El 27 de enero de 2021, el Banco de Pagos Internacionales (BIS, por sus siglas en inglés) publicó los resultados de la tercera encuesta sobre la moneda digital del banco central (CBDC), con "¿Listo, listo.

Mire las oportunidades de mercado ocultas en la pista DEX de dYdX y 1 pulgada

Desde la perspectiva de las categorías de productos, todavía hay muchas oportunidades enormes escondidas en la pista DEX. DEX es rojo. Desde 2021.

Observación Dorada | Progreso de Utreexo

Resumen del progreso de Utreexo Este artículo presentará las ventajas de Utreexo y la medida en que estas ventajas se han materializado.

Cómo identificar las vulnerabilidades de los contratos de Ethereum y evitar las "mantas en blanco"

Título original: Cómo identificar los contratos de Ethereum para evitar la "manta"Sin embargo.

5 lecturas obligadas por la noche | Migración V2 de Basis

1. Actualización de EIP-1559: la destrucción anual por valor de miles de millones de ETH trae un mercado alcista de preciosUn informe del fondo de inversión en criptomonedas Grayscale el jueves predijo que EIP-1559.

Observación Dorada | Mitad mar y mitad llama: ¿Pueden las monedas de privacidad convertirse en el "nuevo motor" del mercado alcista?

Se probará el código del protocolo de privacidad de Litecoin MimbleWimble, el fundador de Grayscale y el fundador de DCG, BarrySilbert, pidieron una sola moneda de privacidad.

ads