Este es un editorial de opinión de Dan Gould y Nick Farrow. Gould es un desarrollador que ha trabajado en TumbleBit, PayJoin y Chaincase Application y ha sido patrocinado por Human Legal rights Basis y Geyser Grants. Farrow es un ingeniero australiano de Bitcoin mejor conocido por su procesador de pago de código abierto SatSale.
«Oye, acabo de recibir una invitación para este hackathon en Malasia», dijo Evan Lin, interrumpiendo mi transmisión en mi computadora portátil en Taipei Hackerspace. «Suena como magia», repliqué. «¿Puedo ir?»
Me había estado golpeando la cabeza contra el escritorio durante semanas. Lin había destrozado mi strategy de lo que period la privacidad de bitcoin. “Es un evento privado, no un hackathon típico. Puedo preguntar.»
Un vuelo, dos semanas y seis minutos de logística de correo de voz más tarde, estábamos caminando por las calles bordeadas de durian de Kuala Lumpur, Malasia, con Lloyd Fournier, reflexionando sobre una pasión compartida por mantener fiel la privacidad de bitcoin. Ahora éramos un equipo. Nos propusimos actualizar Fedimint usando criptografía semipulida, algunas notas garabateadas, y luego lo demostramos en la primera reunión de BitDevs de Malasia cinco días después.
Fournier se había unido a Nick Farrow en el desarrollo de FROST, una nueva criptografía de umbral que aprovecha Taproot, en meses anteriores. Al ser una fuente de recursos humanos de Bitcoin, Fournier también ha trabajado en estrecha colaboración con Lin, que es colaborador del package de desarrollo de Bitcoin (BDK). Él y yo habíamos pasado las últimas semanas mejorando la privacidad de PayJoin bajo luces fluorescentes durante la madrugada en Taipei, Taiwán, por lo que habíamos establecido una relación de confianza para embarcarnos en un proyecto juntos. La invitación de Fournier fue un paso hacia el límite. Para demostrar criptografía de vanguardia al mundo, tuvimos que poner FROST en una aplicación. Fedimint conquistó a todos con su nuevo modelo de guardia con umbral. Period adecuado para la búsqueda.
El autocuidado es un concepto nuevo y aterrador para la mayoría de las personas. Muchas personas almacenan bitcoins bajo la custodia de terceros en los intercambios, exponiéndolos a la censura y la vigilancia indecente. Las monedas federadas ofrecen una tercera vía: una federación de custodios conocidos protege los fondos comunitarios. ¿Entonces, cómo funciona?
Cualquiera puede enviar bitcoins a un Fedimint a cambio de tokens E-money. Los custodios comparten la custodia de bitcoin de la comunidad en una billetera de múltiples firmas. Los tokens de efectivo electrónico son solo algunos datos: firmas ciegas canjeables por una cierta cantidad de bitcoins más tarde. Estos son boletos súper poderosos. Envíe una factura Lightning y sus tokens de efectivo electrónico para «salir con la suya». Podría obtener dinero electrónico en un mensaje de texto y pedirle a la federación que vuelva a emitir firmas para que nadie más pueda tomarlo. Las firmas son ciegas, por lo que se pueden intercambiar en whole anonimato. Cualquiera puede enviar dinero electrónico a una Fedimint para obtener bitcoins.
Para compartir la custodia entre los tutores, Fedimint utiliza las antiguas direcciones multifirma basadas en scripts de Bitcoin. Un número mínimo de tutores firma para transferir fondos. Estos fondos son fáciles de detectar en la cadena de bloques ya que Script multisig escribe la cantidad de firmantes y la cantidad whole de tutores en la cadena de bloques para que todos los vean. Aunque el dinero electrónico es anónimo, las empresas de vigilancia podrían identificar adjuntos de grupos, retiros y fondos comunitarios. Aprovechando la última actualización de Bitcoin, Taproot, nuestro equipo resolvió este problema de privacidad cambiando Script multisig a FROST.
Ingrese CONGELAR
FROST (Adaptable Spherical Optimized Schnorr Threshold) es un nuevo y poderoso tipo de multisig que agrega las claves compartidas de los miembros de la federación en una clave FROST común. Para pasar por debajo de esta clave, un número umbral de miembros debe producir cada uno una participación de firma. Luego, las acciones se agrupan para formar una única firma válida bajo la clave común FROST. Los miembros se coordinan fuera de la cadena. Las transacciones FROST son indistinguibles del gasto standard de un solo partido de Taproot y, por lo tanto, detienen la vigilancia espeluznante. Además de eso, FROST permite federaciones flexibles, lo que permite que se unan nuevos tutores sin coordinar a cada miembro de la federación para generar nuevas claves nuevamente.
Nuestro primer paso fue entender cómo la federación llegó a un consenso en cada ronda de firmas. El algoritmo de consenso de Fedimint puede tolerar el mal comportamiento de hasta un tercio de la federación sin dejar de alcanzar el consenso. Tomó un día en la pizarra para decodificar el algoritmo de consenso y otro para configurar la generación inicial de la clave FROST.
Engañamos a la generación de claves al hacer todo esto en la memoria de un solo dispositivo confiable. En la mejor práctica, una ceremonia de dos rondas mantiene las acciones secretas de una persona de la clave común FROST que solo existe en el dispositivo de esa persona. El secreto international nunca se restaura.
Llegar a un consenso (firmas)
Probamos una transacción de clavija antes de cambiar el código de la billetera Fedimint y nos confundimos. Debido a una limitación de firmas ciegas, los tokens de E-money de Fedimint (similares a los puntos de venta de CoinJoin) están limitados a denominaciones predefinidas para que cada transferencia de token de E-money tenga un conjunto de anonimato. Esperando y esperando y esperando, Lin se rió de que debemos haber estropeado algo.
Resulta que las denominaciones de billetes estándar que establecimos requerían que la Casa de la Moneda generara alrededor de three hundred 000 firmas para emitir suficiente dinero electrónico para cubrir el monto fijo. Hay propuestas para resolver este problema utilizando en su lugar credenciales anónimas. Restablecimos la menta para usar denominaciones predeterminadas mucho más altas ya que solo estábamos probando. Los hackathons son para hacks, después de todo.
En un golpe de suerte, Bitcoiner Malaysia acababa de formarse y estaba listo para su primer evento. Entre nosotros, cuatro piratas informáticos, un presentador del podcast de bitcoin más grande de China y el investigador en camino a obtener el primer doctorado de Bitcoin. en Malasia, planeamos mostrar nuestra prueba de trabajo a BitDevs al ultimate de la semana.
Teníamos por delante la tarea más difícil: las firmas federadas. Para producir una acción FROST, los firmantes deben aceptar una aleatoriedad común, llamada nonces. En el caso de Fedimint, los firmantes utilizan el consenso para acordar un único nonce para cada miembro de la federación que se une a una sesión de firma. Luego, los participantes de la firma agrupan las acciones en una firma completa.
Mientras escribíamos nuestra demostración en vivo para el encuentro, logramos obtener una parte de nonce semi funcional y también solucionamos algunos errores nuevos. A pesar de nuestro arduo trabajo, la cena pasó antes de que nuestro código funcionara. Cruzamos el umbral hacia el territorio más profundo del hackathon, acurrucados alrededor de la televisión para una programación de tres parejas en la habitación de resort de Farrow.
Una experiencia irreal
Con el agua del grifo lista y la caja de resonancia de Unreal Match lanzada, Fournier se sentó frente al teclado, mientras discutíamos correcciones de errores, nombres de variables y comandos desde el asiento trasero. one:thirty rodó y nuestros párpados se sintieron pesados. Unos golpes más tarde, como por arte de magia, la clavija de salida funcionó. Cada firmante recibiría acciones de firma de los demás y canjearía el dinero electrónico de anon a cambio de bitcoin. «Flawless Victory» sonó fuera de la caja de resonancia. Aplaudimos incrédulos.
Excepto que no funcionó. Al día siguiente, ejecutamos el código y vimos los problemas de inmediato. Tuvimos suerte solo el día anterior. Solo funcionó una vez de tres o cuatro intentos. Hemos estado revisando el código de grado hackathon durante horas. Bueno, después del almuerzo siempre estábamos preocupados de tener que abarrotarnos tarde en la noche. Para nuestra ventaja, encontramos el problema: un clásico mistake de indexación. A las five:00 p. m., FROSTimint estaba listo para presentar.
Una vez que dimos la vuelta a BitDevs, los locales adoptaron un formato autoproclamado de «grupo de apoyo» para las presentaciones. Fournier nos devolvió a la realidad con la técnica. El encuentro inaugural deliberó con deleite sobre el futuro y las debilidades de los porteros. ¿Cómo elegiríamos a los tutores? ¿Pueden tener reservas fraccionarias? Más importante aún, ¿cómo puede mi tienda de sopa de fideos laksa trascender el fiat usando Fedimint?
Esta es una publicación invitada de Dan Gould y Nick Farrow. Las opiniones expresadas son totalmente propias y no reflejan necesariamente las de BTC Inc. o Bitcoin Journal.
Customer Reviews
Thanks for submitting your comment!