Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add option to finalize and post transactions separately (for air-gap wallets) #255

Merged
merged 2 commits into from
Nov 18, 2019

Conversation

phreaknik
Copy link
Contributor

What does this PR add?

This PR adds the ability to finalize a transaction without posting the transaction to the chain, and separately post a finalized slate to the chain.

Why is this useful?

  1. For air-gapped wallets: Currently there is no easy way to send transactions from an offline/air-gapped wallet. To finalize a transaction, the wallet requires a connection to a running node. With this feature, it is now possible to generate a finalized slate on an offline machine (without posting to chain), copy that slate file to another machine (with a connected Grin node), and post the transaction on that machine.

  2. For sender privacy: Currently, the sender must reveal his IP to the network (or at least to one connected node) during transaction finalization. With this feature, a transaction sender no longer needs to reveal his/her IP to the network. The sender may simply generate a finalized transaction slate, and give that slate to the recipient, allowing the recipient to reveal his/her IP instead.

Testing

I have functionally tested this change on Mainnet. I tested the new segregated finalize/post transaction method, as well as the original combined finalize+post method. Both transaction methods work as expected.

I am unclear about the test process for this project. I am happy to write formal test cases, if someone can give me a bit of guidance on where/how those tests should be added.

@phreaknik phreaknik changed the title Dev Add option to finalize and post transactions separately (for air-gap wallets) Nov 15, 2019
@yeastplume
Copy link
Member

This looks good, and thanks for the PR. I think this has been requested before, and it's a nice optional feature add.

@yeastplume yeastplume merged commit 355f084 into mimblewimble:master Nov 18, 2019
@phreaknik phreaknik deleted the dev branch November 18, 2019 15:50
@casey
Copy link

casey commented Jan 21, 2020

Thank you @phreaknik, super useful!

yyangli pushed a commit to mwcproject/mwc-wallet that referenced this pull request May 13, 2020
…wallets) (mimblewimble#255)

* Add option to output finalized slate

* Add subcommand to post a finalized slate file
antiochp pushed a commit to antiochp/grin-wallet that referenced this pull request Aug 7, 2020
…wallets) (mimblewimble#255)

* Add option to output finalized slate

* Add subcommand to post a finalized slate file
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants