La Nueva Implementación Para El Servicio De Mezcla De Coinjoin De Bitcoin Mejora La Resistencia Del Sybil

.jpg El boletín de Bitcoin Optech proporciona a los lectores un resumen de alto nivel de las noticias técnicas más importantes que suceden en Bitcoin, junto con las características que les ayudan a aprender más. Para ayudar a nuestros lectores a mantenerse al día con Bitcoin, estamos volviendo a publicar la última edición de este boletín a continuación. Recuerde registrarse para recibir este contenido directamente en su bandeja de entrada.

El boletín de esta semana sigue una descripción previa de las bonos de lealtad en un Joinket e incluye nuestras secciones regulares con el resumen de una reunión del club de revés de Bitcoin Core PR, sugerencias de preparación para la raíz principal, anuncios de lanzamiento y candidatos para su lanzamiento y descripciones de cambios notables en proyectos populares de infraestructura.

Noticias

Implementación de los enlaces de lealtad: JoinKeTet 0.9.0 La implementación de Coinjoin incluye soporte para valores de lealtad. Como se describió anteriormente en el boletín de noticias # 57, los títulos mejoran la resistencia a la siebración del sistema de unión de unión, lo que aumenta la capacidad de los cebadores de coinjoín («tomadores») de elegir a los proveedores de liquidez únicos («fabricantes»). Unos días después del lanzamiento, más de 50 BTC (actualmente valorados en más de $ 2 millones de dólares) se colocaron en valores de fidelidad de timelocked. Aunque la implementación específica es exclusiva de un comodilla, el diseño general puede ser útil en otros protocolos descentralizados construidos en Bitcoin.

Bitcoin Core PR Review Club

En esta sección mensual, resumimos una reunión de destino de Bitcoin Core PR Review Club, destacando algunas de las preguntas y respuestas importantes. Haga clic en una pregunta a continuación para ver un resumen de respuesta de la reunión.

Preferir Use TxIndex Si está disponible para GetTransaction es un PR de Jameson LOPP que mejora el rendimiento de GetTransaction (y por extensión, getTrawTransaction RPC para los usuarios) utilizando la transacción del índice (TIINDEX) cuando sea posible. Este cambio corrige una pérdida de rendimiento inesperada en la que una llamada a GetTrawTransaction en un nodo habilitado para TIINDEX es significativamente más lento al llamar con el hash de bloque que incluye la transacción. El Club de Revisión evaluó la causa de este problema de desempeño al comparar los pasos para recuperar una transacción con y sin Tiindex.

¿Cuáles son las diferentes formas de recuperar una transacción de disco? La transacción se puede recuperar de MOMPOOL (si no está confirmada), recuperando todo el bloque de disco y busca la transacción o usando TIINDEX para buscar solo la transacción del disco. ¿Por qué crees que el rendimiento es peor cuando se suministra el hash de bloque (cuando TIINDEX está habilitado)? Los participantes adivinaban que el cuello de botella estaba en la deserialización del bloque. Otro proceso exclusivo para recuperar todo el bloque, aunque menos tiempo que requiere mucho tiempo es una investigación lineal a lo largo de la lista de transacciones. Si estamos buscando la transacción de hash de bloque, ¿cuáles son los pasos? ¿Cuántos datos están deserializados? Primero, utilizamos el índice de bloques para encontrar el desplazamiento de archivos y bytes requerido para acceder al bloque. Luego buscamos y desercializamos todo el bloque y examinamos la lista de transacciones hasta que encuentre una coincidencia. Esto implica la deserialización de aproximadamente 1-2 MB de datos. Si estamos buscando la transacción usando TIINDEX, ¿cuáles son los pasos? ¿Cuántos datos están deserializados? El TIINDEX se mapea desde la ID de transacción al archivo, la posición del bloque (similar al índice de bloques) y el desplazamiento dentro del archivo BLK *.dat donde comienza la transacción. Buscamos y deserializamos el encabezado de bloques y la transacción. El encabezado es 80B y nos permite devolver el hash desde el bloque al usuario (que no se almacena información en el TIINDEX). La transacción puede ser de cualquier tamaño, pero generalmente es miles de veces más pequeñas que el bloque. La primera versión de esta PR incluía un cambio de comportamiento: cuando se suministra un bloque_index incorrecto a GetTransaction, busque y devuelva el TX de alguna manera utilizando el TIINDEX. ¿Crees que este cambio es una mejora y debería incluirse en esta PR? Los participantes estuvieron de acuerdo en que podría ser útil, pero engañoso, y notificar al usuario sobre la entrada incorrecta del hash de bloqueo sería mejor. También observaron que una mejora de rendimiento y un cambio de comportamiento se dividirían mejor en PRS separados.

Preparación para TAPROOT # 8: Nencias con múltiples firmas

Una serie sobre cómo los desarrolladores y los proveedores de servicios pueden prepararse para la activación de la raíz futura a la altura del bloque 709.632.

En la última columna de la semana, escribimos sobre múltiplesignatures y tenemos un ejemplo utilizando Musig2. Nuestra descripción parece haber sido técnicamente correcta, pero varias cripografías que contribuyeron a Musig2 se preocuparon de que la forma en que sugerimos usarlo, sea peligroso. Actualizamos nuestra descripción para resolver sus inquietudes inmediatas y luego comenzamos a investigar el problema con más detalle. En esta publicación, veremos lo que aprendimos que puede ser el mayor desafío para implementar múltiplessinactos de manera segura: evite la recurrencia recurrente.

Para validar una firma en Bitcoin, complete una ecuación conocida públicamente con la firma, el mensaje que se firmó (por ejemplo, una transacción), su clave pública y una nonce pública. Solo es posible equilibrar esta ecuación si conoce su clave privada y la forma privada de no. Por lo tanto, cualquier persona que ve una ecuación equilibrada considera la firma de ese mensaje válido y la clave pública.

La motivación para incluir la firma y el mensaje en la ecuación es obvio. La clave pública es un sustituto de su clave privada. ¿Para qué es el público noruego? Si no estaba allí, todos los demás valores en la ecuación, excepto su clave privada, lo que significa que podríamos usar álgebra básica para resolver este valor desconocido. Pero el álgebra no puede resolver dos valores desconocidos, por lo que la forma privada de nove sirve para mantener su secreto privado clave. Y, como su clave pública, es un sustituto de su clave privada en la ecuación de la firma, la forma pública de la nove reemplaza su forma privada.

NCE En este contexto no solo se usan números una vez, sino números que se deben usar solo una vez. Si reutiliza la misma nonce con dos firmas diferentes, las dos ecuaciones de firma se pueden combinar, el no se puede cancelar y alguien puede resolver nuevamente el único valor desconocido que queda su clave privada. Si utiliza la derivación estándar BIP32 (no se endureció la derivación), lo que probablemente hará casi todas las carteras de Multisignature, entonces la revelación de una clave privada significa la revelación de todas las otras claves privadas en el mismo camino BIP32 (y posiblemente de otras maneras también). Esto significa que una cartera multisignatural que ha recibido bitcoins para cien direcciones diferentes tendrá cada una de estas direcciones comprometidas al suscriptor que reutiliza incluso a una sola nonce.

Carteras de firma individuales o aquellas que usan scripts basados ??en Multisig, pueden usar un truco simple para evitar la reutilización de Mongs: hacen que su mensaje depende del mensaje que están firmando. Si hay algún cambio en el mensaje, el inconveniente cambia y, por lo tanto, nunca reutiliza un inconveniente.

Las firmas múltiples no pueden usar este truco. Requieren que cada garante contribuya no solo a una firma parcial, sino también con un público parcial nórdico. Los mongs públicos parciales se combinan para producir un nórdico público agregado que se incluye con el mensaje que se debe firmar.

Esto significa que no es seguro usar el mismo nonce parcial más de una vez, incluso si la transacción sigue siendo la misma. Si, la segunda vez que se suscribe, una de sus garantes cambia su noce parcial (alterando el agregado no a), su segunda firma parcial será efectivamente para un mensaje diferente. Esto revela tu clave privada. Dado que es increíblemente circular para cada parte hacer que su NOCCE privada dependa de todos los nores públicos parciales en la otra parte, no hay un truco simple para evitar la reutilización de multisensinaturas.

a primera vista, esto no parece un gran problema. Haz que los firmantes administren un nuevo no aleatorio, cada vez que necesiten firmar algo. Es más difícil golpear lo que parece porque al menos 2012, las personas han encontrado bitcoin perdiendo errores en carteras que dependían de la generación de no pacientes aleatorios.

Pero incluso si una cartera genera nores aleatorios de alta calidad, debe asegurarse de que cada NOTA solo se usa a lo sumo una vez. Esto puede ser un verdadero desafío. En la versión original de nuestra columna la semana pasada, describimos una cartera de frío compatible con MUSIG2 o un dispositivo de firma de hardware que crearía una gran cantidad de noces en su primera ejecución. La billetera o dispositivo deberían asegurarse de que cada uno de estos mongs nunca se use con más de una firma parcial. Aunque parece simple, lo suficiente como para aumentar un contador cada vez que se usa una nove, puede ser un verdadero desafío cuando se trata de todos los formularios, como el software y el hardware, puede fallar por accidente, por no mencionar cómo pueden verse afectados por externos y posiblemente maliciosos. intervenciones.

Tal vez la forma más fácil de una cartera, reducir el riesgo de reutilización de la falta de tiempo es almacenarlos para el menor tiempo posible. Nuestro ejemplo de la última semana ha sugerido almacenar mongs durante meses o años, lo que no solo crea muchas oportunidades para algo incorrecto, sino que también requiere la grabación de mongs en un medio de almacenamiento persistente que se puede respaldar y restaurar o colocar un estado inesperado. Una forma alternativa de usar Musig2 crearía solo monos a pedido, como cuando se recibió un PSBT. Las personas no podrían mantenerse en la memoria volátil por el corto período de tiempo en el que se necesitaban y, por lo tanto, se destruyeron automáticamente (no reutilizables) en varios casos de evento inesperado, como la falla del software o la pérdida de energía.

Aún así, las cripografías que trabajan en este problema parecen estar muy preocupadas por la falta de una forma infalible de evitar la reutilización continua en el protocolo original de Musig (Musig1) y Musig2. MUSIG-DN (NONCE determinista) ofrece una solución, pero es compleja y lenta (una implementación alfa toma casi un segundo crear una prueba de increta en un Intel I7 de 2.9 GHz; No sabemos cuánto tiempo puede tomar esto en un Dispositivo de firma de hardware de 16 MHz con un procesador mucho menos sofisticado).

Nuestros consejos para cualquiera que esté implementando la firma multisignante está considerando una visita a la sala de IRC # SECP256K1 u otro lugar donde los criptógrafos de Bitcoin cumplen y describen sus planes antes de realizar grandes inversiones de tiempo o recursos.

Lanza y candidatos para el lanzamiento

Nuevos lanzamientos y candidatos para el lanzamiento de los proyectos populares de infraestructura de Bitcoin. Considere actualizar a nuevas versiones o ayudar a probar los candidatos para su lanzamiento.

C-LIGHTNING 0.10.1 es una versión que contiene una serie de nuevas características, múltiples correcciones de errores y algunas actualizaciones para los protocolos de desarrollo (incluidos el doble financiamiento y ofertas). Bitcoin Core 22.0RC2 es un candidato de lanzamiento para la próxima versión principal de esta implementación de nodos completos y su portafolio asociado y otro software. Los principales cambios en esta nueva versión incluyen soporte para conexiones I2P, eliminación de soporte para Tor Versión 2 Conexiones y soporte mejorado para portafolios de hardware.

Cambios notables en Código y documentación

Cambios notables esta semana en Bitcoin Core, C-Lightning, Eclair, LND, Rightning, LIBSECP256K1, Interfaz de Wallet Hardware (HWI), Rust Bitcoin, servidor BTCPAY, Bitcoin (BIPS) y propuestas de mejora de los pernos de relámpago.

Bitcoin Core # 21528 tiene como objetivo mejorar la propagación P2P de las direcciones de audición de nodos completos. La exposición a un conjunto diverso de direcciones es importante para que estemos protegidos contra las particiones de la red, como los ataques de Eclipse. Cuando los nodos básicos de Bitcoin reciben un mensaje de dirección que contiene 10 o menos direcciones, se refieren a 1 o 2 puntos. Esta es la técnica principal utilizada para los direcciones automáticamente actuales, por lo que se enviaron a pares que no retransmitieron estas direcciones de manera efectiva interrumpirían o crearían un «agujero negro» en la extensión de la red. Si bien no se pueden evitar las fallas de la propagación en el caso malicioso, este parche mejora la propagación de la dirección para casos honestos, como para las conexiones de retransmisión de bloques o los clientes de luz. Esta actualización se identifica si una conexión de entrada es un candidato para reenviar las direcciones según el envío de un mensaje relacionado con la dirección por la conexión, como ADDR, ADDRV2 o GETADDR. Este cambio de comportamiento puede ser problemático si hay software en la red que depende de la recepción de los mensajes de dirección, pero nunca inicia un mensaje relacionado con la dirección. Por lo tanto, el autor tenía cuidado de hacer circular este cambio propuesto antes de fusionarse, incluida la publicación en la lista de correo y buscar otros clientes de código abierto para confirmar la compatibilidad. LND # 5484 le permite almacenar todos los datos en una base de datos de una sola base de datos ETCD. Esto mejora las implementaciones de alta disponibilidad, instantáneamente los cambios en el liderazgo de clústeres. La documentación de agrupación de LND correspondiente se trató anteriormente en el Newsletter No. 157. Rust-Lightning # 1004 Añade un nuevo evento a PAGOFORMADO QUE le permite rastrear cuando se ha referido con éxito un pago. Debido a que el enrutamiento exitoso puede generar tasas para el nodo, esto le permite rastrear estos ingresos para los registros contables del usuario. BTCPAY Server # 2730 hace que el valor sea opcional al generar facturas. Esto simplifica el flujo de pago en los casos en que el operador delege la elección del valor al usuario, por ejemplo, completando una cuenta.

Encuentra la publicación original aquí.

Firme el boletín de Bitcoin Optech directamente para recibir este contenido directamente en su bandeja de entrada entre sí.

Compartir