Presenting a BIP for Shamir's Secret Sharing of Bitcoin private keys



Summary:

In an email exchange, Matt Whitlock expressed his desire for a simple implementation that would allow him to divide a private key into shares for dissemination to his next of kin. However, another individual suggested that he should look into secret sharing implementations that use GF(2^8), which are only a few dozen lines of code and work efficiently for all sizes of data. Matt noted that he already had a polished implementation of his BIP written in C++ and was using the GMP library. However, it was mentioned that the scale of GMP's 250,000 lines of LGPLed code may be unwelcome for certain devices. When asked if there was a use case for byte-wise operations instead of big-integer operations, Matt suggested that it might be useful for implementing the BIP on a PIC microcontroller.The other individual explained that using GF(2^8) allows for efficient scaling to any size data without extra overhead or additional primes and can be implemented compactly in Javascript. They also noted that this approach is distinct from the implementation used for threshold signing, lacking size agility and ease of implementation on limited devices. Therefore, they suggested gaining the advantages that cannot be achieved in a threshold ECDSA compatible approach.


Updated on: 2023-05-19T18:25:37.102245+00:00