forked from mimblewimble/grin
-
Notifications
You must be signed in to change notification settings - Fork 24
Wallet CoinJoin Doc Review Comments #32
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
Draft
suemto
wants to merge
1
commit into
master
Choose a base branch
from
suemto-patch-1
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,17 @@ | ||
# MWC-wallet coinjoin pool | ||
# MWC-wallet CoinJoin Pool | ||
|
||
In a context of a low number of on chain transactions, Dandelion is not really effective. To improve privary, MWC-wallet will do a coinjoin at wallet level. MWC-wallet will talk with other participating mwc-wallets and built a 'multikernel' transaction. | ||
In a context of a low number of on-chain transactions, Dandelion is not really effective on the Mimblewimble transaction merging/CoinJoin. To improve privacy, MWC-wallet will do a CoinJoin at wallet level, with this design. MWC-wallet will cooperate with other participating MWC-wallets and build a 'multikernel' transaction. | ||
|
||
The mwc-wallet coinjoin will take some time to process in order to capture enough transactions from honest wallet participants. | ||
The MWC-wallet CoinJoin need take more time than Dandelion to process, in order to capture enough transactions from honest wallet participants for this CoinJoin. The time taking of the MWC-wallet CoinJoin will be addressed later. | ||
|
||
This method can allow to obfuscate regular transactions, but it's not the primary use case for multiple reasons. In case of Non interactive transactions (NIT) it will be used more easily for regular transactions. | ||
This method will obfuscate transaction graph, <ins>but it's not the primary use case for multiple reasons</ins> (why? what reason?). | ||
|
||
In case of Non-Interactive Transaction (NIT), this method is more easily, because ... (?) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. See comment above. "If Coinjoin session failed, the outputs need to be regenerated.". NIT transaction can regenerate outputs, so it is no problem to retry. |
||
|
||
## Checking traceability of the outputs. | ||
|
||
The mwc-wallet will inspect the blocks and indentify the outputs that are potentially traceable. | ||
It will assume outputs are untraceable if the block contain multiple transactions (more then T kernels and T outputs) | ||
## Checking Traceability of The Outputs. | ||
|
||
The MWC-wallet will inspect the blocks and identify the outputs that are potentially traceable, simply by checking the transaction numbers in the block. It will assume outputs are untraceable if the block contain enough transactions (more than T kernels and T outputs) | ||
Value of T need to be defined by user, more is better. Value of 5 should give good privacy assuming no observer was tracking transactions from mempool in the past. | ||
|
||
Over a certain time period, because of the cut-though, the number of kernels and outputs will decline. Because of that | ||
|
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The workflow normally required output regeneration. If Coinjoin session failed, the outputs need to be regenerated. It is hard to do with Interactive transactions because slate will need to be send to receiver once more.
Because of that for Coinjon and IT regular transaction, wallet can't allow session to fail. It is possible if the wallet will be at the end on the join chain (chain is twice larger than required) and willing to pay the extra fees. In this case, if next participant failed to process, the wallet will add fees to balance the coinjoin and publish.
So in order to make that work, wallet need to control it's position in the chain and willing to pay extra fees if something will go wrong. Or willing wait for a relatively long time.
I should probably need to add a table that will demonstrate the fees and cost to publish (attack) the coinjoin transaction.