Grin ledger hardware wallet progress thread by @markhollis

Implementing the rangeproof part is challenging. Here are some notes about the use of rangeproofs in grin-wallet. It can contain faults or inconsistencies and it is certainly incomplete.

Related work

There is some previous work done on rangeproofs in Monero

There is a publication on a Monero Trezor implementation
See:

Monero has switched to BP++.

There is also the Beam HW wallet implementation.
I haven’t studied these implementation in depth yet.

If someone knows related work regarding implementations of Bulletproofs on Ledger/Trezor, let me know.

In the following, I will give some comments on the rangeproof code, as it is used in Grin.

Rangeproof

Other interesting parts in the Wallet layer:

Now for the bulletproof algorithm itself:

This note is certainly incomplete, especially the analysis of the Bulletproof algorithm itself.
The question I have is how to offload the part which uses the secret nonce and blinding factor to the HW. Perhaps studying related work will help here. If there are suggestions, they are very welcome.

23 Likes