¿Existe alguna implementación de código abierto del cifrado de billetera Bitcoin en Java?

Pretendo establecer un esquema eficiente y seguro para la protección de billeteras. Para esto, necesito un código fuente que implemente el cifrado de billetera como se menciona en https://en.bitcoin.it/wiki/Wallet_encryption

Respuestas (1)

BitcoinJ es la biblioteca de código abierto de Java utilizada por muchas billeteras populares, incluida Bitcoin Wallet para Android , MultiBit , GreenAddress GreenBits y muchas más.

Admite algún tipo de cifrado de claves privadas, aunque puede que no sea AES-256-CBC (pero probablemente lo sea).

Carteras HD

Vale la pena señalar que BitcoinJ se actualizó recientemente para admitir la creación y el uso de billeteras deterministas jerárquicas (HD) BIP32 . Esta es una opción, y el antiguo método de generar claves aleatorias separadas todavía está disponible.

Cuando se usa en modo HD, como lo hacen las billeteras enumeradas anteriormente[1], no almacenará las claves privadas directamente, sino que simplemente las generará a pedido desde la semilla raíz HD, por lo que solo es la semilla raíz HD la que debe mantenerse. encriptado. También se recomienda encarecidamente a los usuarios que mantengan una copia de seguridad en papel de la semilla raíz, lo que significa que, por lo general, no se necesitan copias de seguridad digitales de la clave cifrada.

[1] MultiBit actualmente no lo hace, pero MultiBit HD en prueba beta sí lo hace.

Monedero básico de Bitcoin

Además, el desarrollador de Bitcoin Core, Jonas Schnelli , está trabajando para dividir y reemplazar el código de la billetera de backend de Bitcoin Core, por lo que es posible que no desee comenzar ningún proyecto importante sin coordinarse con él.

Uno de los objetivos propuestos para su proyecto, aunque no he escuchado su opinión al respecto, es agregar soporte HD al código de la billetera. (En cualquier caso, es probable que se agregue compatibilidad con HD como una opción; al menos un desarrollador principal desearía mantener claves privadas derivadas aleatoriamente para algunas aplicaciones porque han sido mucho mejor estudiadas que la derivación HD).