-
El financiamiento y la verificación es vital para el software más usado de Bitcoin.
-
Se esperan mejoras a la eficiencia y privacidad de la red P2P de Bitcoin.
Tres desarrolladores de Bitcoin Core comentaron los desarrollos más importantes en los que han estado trabajando recientemente, así como las particularidades de colaborar con Bitcoin y las diferentes partes de su protocolo.
Los desarrolladores Gloria Zhao, Pieter Wuille y John Newbery participaron en el panel “Bitcoin Recent Developments”, en el marco de la MIT Bitcoin Expo 2021, del Instituto de Tecnología de Massachussets (MIT), el pasado domingo 4 de abril. El panel fue moderado por Bryan Bishop, quien también ha fungido como colaborador de código de Bitcoin.
Gloria Zhao es apoyada por Brink desde enero de este año, una fundación que financia a los desarrolladores de Bitcoin. Sus sponsors o patrocinantes son la Human Rights Foundation y Square Crypto, filial de Twitter para asuntos de criptomonedas.
Según se lee en su carta de bienvenida a la organización, Zhao ha aportado al desarrollo de Bitcoin desde marzo de 2020, con 12 de sus PR (revisiones) insertadas en el repositorio de Bitcoin Core desde entonces. También ha sido anfitriona del Bitcoin Core PR Review Club, el grupo de revisiones del código de este software. Con 21 años de edad, habiendo egresado el año pasado de la Universidad de California, Berkeley, ahora es desarrolladora a tiempo completo de Bitcoin Core.
Mientras, John Newbery trabajó en Chaincode Labs desde 2017 hasta 2020, así como formó parte de la Chaincode Residency durante el año 2016. Actualmente trabaja en Brink. Newbery contribuyó con el desarrollo del marco de trabajo para realizar pruebas de funcionamiento de Bitcoin Core.
Newbery es también fundador de Bitcoin Optech, firma de investigación que produce diversas unidades de información y documentación, como un newsletter (boletín de correo) y reportes acerca de Bitcoin.
Por su parte, Pieter Wuille, es uno de los más antiguos desarrolladores de Bitcoin y cofundador de Blockstream, trabaja actualmente en Chaincode Labs.
¿Cómo es ser desarrollador de Bitcoin?
La charla del MIT abrió con la pregunta acerca de qué significa trabajar en Bitcoin Core, a lo que Pieter Wuille ofreció una definición sobre el cliente más utilizado de Bitcoin, sin responder directamente la pregunta. Aun así, podría decirse que su respuesta funcionó como un sumario de las premisas de la charla:
Bitcoin Core es la implementación referencial del protocolo de Bitcoin. Es una evolución del código base original de Satoshi (Nakamoto). Actualmente recibe mantenimiento de un equipo de desarrolladores de software de código abierto. Es el software más utilizado para validar nodos completos del protocolo.
Pieter Wuille, Desarrollador de Bitcoin Core.
Gloria Zhao se atrevió a definir este trabajo como un «Nerd Snipe», término que refiere a la pasión o cuasi obsesión que un nerd puede tener con un reto científico; con la necesidad de crear soluciones a problemas específicos.
Bitcoin Core abarca temas interesantes. Me gusta su economía, es un sistema distribuido muy interesante. Es matemáticas, que no las puedo usar en otros lugares actualmente. Así que trabajar en otra cosa lo veo como un desperdicio de tiempo. Como dijo Pieter, cualquiera puede trabajar en Bitcoin Core porque es de código abierto. Por eso trabajo en esto a tiempo completo y me considero desarrolladora de Bitcoin. Es divertido, es genial.
Gloria Zhao, Desarrolladora de Bitcoin Core.
Luego, fue el turno de John Newbery, quien dijo no conocer mucho el lenguaje de programación C++ cuando comenzó en Bitcoin en el año 2016. Entonces, desarrolló una librería en el lenguaje de Python, que sí dominaba, para programar la interacción entre los usuarios de la red P2P y los nodos de la red con este lenguaje, una forma de coordinar y gestionar la transmisión de mensajes y comandos entre ambas partes.
Gloria Zhao coincidió en este sentido al recordar que, en principio, tampoco conocía mucho el lenguaje C++, pero con el tiempo logró adquirir habilidades. Zhao se ha dedicado a trabajar también en la comunicación entre partes (peers) con el mempool, el espacio de memoria en la red de nodos donde se almacenan las transacciones entrantes no confirmadas.
De Pieter Wuille podría decirse que ha trabajado en muchísimas áreas del protocolo, como el diseño del sistema que registra o relaciona cada UTXO (salida) de bitcoins con su dueño o cartera correspondiente. Asimismo destacó su coautoría de la librería en lenguaje C para el protocolo criptográfico secp256k1, un tipo de algoritmo de firmas digitales de curva elíptica (Elliptic Curve Digital Signature Algorithm, ECDSA), utilizado en Bitcoin.
Optimización de la mempool de Bitcoin, transmisión y gestión de transacciones
Gloria Zhao basa su trabajo actualmente en la optimización de la mempool de Bitcoin, por lo que se encuentra desarrollando el concepto de package relay, que permitiría la transmisión de transacciones entre nodos en paquetes de más de 1 transacción.
Si las comisiones por transacción son atractivas para los mineros, estas transacciones podrían ser detectadas y elegidas más rápidamente por estos para ser confirmadas. Esto tiene aplicaciones en escenarios donde un usuario tiene la urgencia de confirmar una transacción rápidamente.
Aunque claramente no se acelerarían los tiempos de minado o de confirmación de bloques, los mineros y los nodos sí podrían enterarse más rápidamente de la existencia de estas transacciones, en formato de mensajes, facilitando la decisión sobre si confirmarlas prioritariamente o después.
Esto dependería de la tasa mínima de comisiones que un pool de minería, o un minero con nodo propio, tenga para elegir y confirmar transacciones de Bitcoin. Pero Zhao apunta a que si estas se transmiten más rápidamente, mayor disponibilidad tendrían los mineros para elegir entre todas.
Zhao se refirió adicionalmente al proyecto Mempool Rebroadcast, de la desarrolladora Amiti Utawar, Asimismo señala que esto trae beneficios a la privacidad, pues al lograr comunicar paquetes de varias transacciones, es posible romper el vínculo entre las direcciones IP y cada cartera o usuario individual.
Continuando su comentario con este proyecto, expuso el caso del método CPFP (Child Pays For Parent), que permite «impulsar» una transacción con otra de mayor comisión para propiciar su rápida confirmación. La desarrolladora señala que si un usuario retransmite una transacción desde su cartera, su dirección IP sería la misma a la de la transacción enviada anteriormente, lo que dejaría expuestas a ambas transacciones perjudicando la privacidad.
Si, en su lugar, se facilita la retransmisión de la misma transacción, pero no por el usuario, sino por los nodos, la IP del usuario individual y su cartera se podría ocultar, y estas transacciones serían prácticamente indistinguibles una de la otra, al momento de analizar la red.
¿En qué consiste el proyecto de retransmisión (rebroadcasting)?
En el material informativo sobre este proyecto, que encontramos en una sesión de revisión realizada ayer martes 7 de abril, se lee: «El objetivo del proyecto de retransmisión es mejorar la privacidad haciendo que la retransmisión de transacciones de una cartera por parte de un nodo sea indistinguible de las transacciones enviadas por los usuarios».
También se señala que los nodos se encargan de estimar el total de las comisiones por transacción recibida. Si lo realizan en lotes al recibir un paquete de varios mensajes, se aligeraría la gestión y transmisión de transacciones, beneficiando el funcionamiento general de toda la red, sin recargarla.
El reto principal yace en que la retransmisión de transacciones no vaya a significar un tipo de spam para la red, saturando su ancho de banda. Zhao señala que si cuenta con la posibilidad, un usuario podría enviar una transacción al nodo de un minero «amigo» específico, quien a su vez lo transmitiría a la mempool de otros nodos y además podría minarla.
En cambio, cuando un usuario tiene su propio nodo, desea encontrar la forma de transmitir su transacción rápidamente a otros nodos de la red. Esto debe realizarse eficientemente sin saturar la red, evitando que esos lotes de mensajes consistan en muchas pequeñas transacciones «basura» que puedan abrir la posibilidad a un dust attack (polvo o suciedad, en inglés)
Verificar el código y apoyar a los desarrolladores es clave para Bitcoin Core
Uno de los tópicos tratados en el panel entre Zhao, Wuille, Newbery y Bishop, consistió en el financiamiento de los desarrolladores de Bitcoin, tomando en cuenta varias formas de apoyar la investigación y mejora del protocolo.
Gloria Zhao argumentó que no existe realmente una cultura de verificación del protocolo en cuanto a que, muchos usuarios, solamente confían en quien afirma desarrollar o proveer soluciones de Bitcoin, dando por sentado que todo estaría bien con esa solución, desde su concepto hasta su código e implementación práctica. Para Zhao, el lema «Dont trust, verify» (No confíes, verifica), no se cumple casi entre la comunidad.
En ese sentido, Pieter Wuille afirmó que se necesita mayor participación de la comunidad en realizar preguntas de seguridad durante las sesiones de peer review (PR), así como verificar por cuenta propia el código de Bitcoin Core. Aunque es preferible saber programación y leer código, se puede verificar el funcionamiento del software ejecutándolo directamente (para mayor seguridad, en un ambiente o red de pruebas o testnet).
Wuille comentó en este sentido que una forma infalible de apoyar el desarrollo del protocolo es fomentar la construcción de soluciones, carteras y servicios en torno a Bitcoin.
El desarrollador, quien trabajó para Blockstream, comentó que esta empresa otorga parte de los salarios en BTC, lo que es un buen incentivo, en su opinión. Sin embargo señala que también resulta ideal el financiamiento independiente externo o diferente a una empresa, como podrían ser los programas de apoyo y becas.
En contraste con Bitcoin, señala Wuille, los otros proyectos de criptomonedas suelen ser conducidos por entidades privadas con incentivos o contratos comerciales con los desarrolladores, muchas veces basado en la especulación del precio de la criptomoneda nativa. Sin embargo, en su opinión, esto los lleva a realizar promesas demasiado grandes a las que realmente pueden cumplir, pues están promoviendo comercialmente un proyecto.
Para finalizar su participación en la charla, Wuille aseguró que Bitcoin era bastante conservador, intencionalmente, en el sentido de que se autoprotege de implementar soluciones de escalabilidad que, en contraparte, puedan perjudicar la integridad del protocolo. Este comentario fue validado por John Newbery, quien cerró la charla con esta última participación:
Es cierto, puede ser frustrante. Pienso que el proceso de contribuir a Bitcoin Core es muy diferente a tantos otros proyectos. Si vemos otros proyectos, nos impactará ver que muchas de sus implementaciones tienen muy pocas revisiones (peer review), pocas pruebas antes de que esos cambios se integren al software. Bitcoin tiene un alto estándar para revisiones y nuestro nivel de pruebas sigue mejorando cada año. Como dijo Piete, la mejor forma de colaborar es revisar y probar (review and test).
John Newbery, Desarrollador de Bitcoin Core.
La MIT Bitcoin Expo 2021: The New Normal se realizó de forma online entre el 3 y 4 de abril de 2021, como fue anunciado por CriptoNoticias.
En los diversos encuentros del evento se discutieron temas como la minería de Bitcoin, los fondos de inversión (ETF), e incluso los tokens no-fungibles (NFT).
El evento ha contado también con la participación de funcionarios la Reserva Federal estadounidense, la SEC y personalidades como Michael Saylor, CEO de MicroStrategy.