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

Offline transactions #3

Open
beam-mw opened this issue Aug 11, 2020 · 0 comments
Open

Offline transactions #3

beam-mw opened this issue Aug 11, 2020 · 0 comments
Assignees

Comments

@beam-mw
Copy link
Member

beam-mw commented Aug 11, 2020

Since Mimblewimble is inherently an interactive protocol, both the sender and the receiver need to participate in creation of the transaction. This introduces a very different user interface from what we are used to in other crypto currencies. However, using the LelantusMW technology, Beam has built an ability for senders to send funds non interactively even when the receiver is not online. We called this feature offline payments and it comes in two different flavors: using vouchers and using the offline address.

First option, which will be released in 5.1, allows the user to embed a set of special keys called vouchers into an address created in the receive screen. By default, 20 vouchers are created. Since each voucher is about 100 symbols in length this number was chosen to allow the resulting address to be sent through most messengers without breaking into several messages. Each voucher is good for one transaction and when they expire, the wallet will either automatically request a new set from the receiver if it comes online, or prompt the user to ask for a new address with more tokens. The advantage of this, rather complicated, method is due to two properties. Each transaction uses a unique voucher, hence making it impossible to trace the user by trying to monitor which vouchers are used. Also, the sender can not track when funds that were sent using the voucher are spent, i.e extracted from the pool. Thus vouchers provide the maximum anonymity.

The second option, that is currently planned for 5.2 version, uses a single ‘offline’ address, which allows to send any amount of offline transactions to the same address. Due to details of how LelantusMW pool works, there can only be a very limited (and definitely capped) number of such addresses created for each wallet since each new address would require the wallet to rescan the pool for UTXOs sent to it. This option is less secure since it allows deanonymization by comparing offline addresses sent out to different senders and also the sender can see when the funds are extracted from the pool. It is however much simpler for the user and more consistent with how most other crypto currencies work, which is why we recommend it for specific user cases like donations and non-interactive pool payouts, rather than general confidential transactions.

@beam-mw beam-mw self-assigned this Aug 11, 2020
@beam-mw beam-mw added this to To do in 5.1 Released (5.1.9898) via automation Aug 20, 2020
@beam-mw beam-mw moved this from To do to In progress in 5.1 Released (5.1.9898) Aug 26, 2020
@beam-mw beam-mw moved this from In progress to Done in 5.1 Released (5.1.9898) Oct 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

No branches or pull requests

1 participant