Walletwasabi: [RPC] add separate signing and broadcast functionaility

Created on 21 Jan 2020  路  6Comments  路  Source: zkSNACKs/WalletWasabi

It would be nice to have the RPC function to sign, but not broadcast a transaction. This way, several transactions can be signed in advance, and then kept locally. At a later point in time, a separate broadcast function can be used to broadcast signed transactions, similar to how ColdCard PSBT transactions are done now.

This would allow features like time staggered broadcasting of transactions for decreased time correlation, or multi-hop transactions.

featurenhancement

Most helpful comment

Another case where separated tx signing and broadcast functionality would be uselful already is opening LN channels with c-lightning from Wasabi wallet, using it's fundchannel_start and fundchannel_complete commands (in case of LN, funding tx must not be broadcast to the Bitcoin network before commitment transactions are secured, otherwise it can lead to unrecoverable loss of funds).

All 6 comments

These calls can be added but, unlike the ones already available, they require changes in wasabi.

This would allow features like time staggered broadcasting of transactions for decreased time correlation, or multi-hop transactions.

You can currently do this with the existing rpc calls?

Currently, can you abort the process after the tx was signed, but before it is broadcasted?
Because you can already broadcast a signed tx [see coldcard].

For the time-staggered sends, sure, you could build & sign & broadcast multiple times after a couple minutes, but then you would need to keep the password in memory to sign at these different points? I thought it would be better to sign all of the transactions at once, then wipe the password from RAM, only keep the signed tx, and broadcast them one after each other.

Another case where separated tx signing and broadcast functionality would be uselful already is opening LN channels with c-lightning from Wasabi wallet, using it's fundchannel_start and fundchannel_complete commands (in case of LN, funding tx must not be broadcast to the Bitcoin network before commitment transactions are secured, otherwise it can lead to unrecoverable loss of funds).

Yes @kristapsk that's another great use case I didn't even consider initially!
FYI, lnd is also tinkering on external funding of channels with psbt.

@lontivero #3052 implements the building of a PSBT, but is there already a function for braodcasting it at a later point?

I didn't implement the building of PSBTs, it is simply a bitcoin signed transaction encoded as hexa.
You can broadcast the transaction at a later point using the UI.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

trading2835 picture trading2835  路  3Comments

the-metalworker picture the-metalworker  路  3Comments

nopara73 picture nopara73  路  3Comments

MaxHillebrand picture MaxHillebrand  路  3Comments

molnard picture molnard  路  3Comments