MPC Multiplication

So just started a side project, working on bitcoin silent payments.

For Bitcoin silent payments to work we need to perform the following equation:

  • Let *P0 = Bspend + hash(input_hash·a·Bscan || 0)·G

The issue is ‘a’ ie: the private key. In the case of MPC, this is simply not ‘a’ just a but shares of ‘a’.

My question is how do we perform input_hash·a using MPC.

Here is the proposol: bips/bip-0352.mediawiki at master · bitcoin/bips · GitHub

My assumed solution that didn’t work:
let partialSecret = 0
let secret = input_hash·a(i)
partialSecret += secret

Hi @shawn – we’re looking into this for you and will follow-up soon. Thanks!

@shawn – I’d recommend experimenting with our Raw Signing feature, which allows you direct access to sign messages with a BTC wallet’s keys, to implement support for this BIP. I’d also like to note that Fireblocks does not support the creation of taproot addresses within Fireblocks, but you can also explore creating the transactions to withdraw funds from taproot addresses via Raw Signing.