Feel free to review and comment.
Should be relevant since discussions about non-interactive transactions have taken place here in the past.
Feel free to review and comment.
Should be relevant since discussions about non-interactive transactions have taken place here in the past.
Could GRIN be redesigned in case it determines that (MJ) is a more efficient protocol?
Actually, MW is still the more efficient protocol if you can live with interactive transactions.
And the differences between the protocols are so large that I donāt think itās suitable as a fork for an existing MW blockchain.
Iām a big proponent of interactive transactions, but this document is a pleasure to read and is very well structured. I especially liked that you approached this by reasoning about the properties the other proposals were partly missing (namely payment proofs and ownership security) and describing a way to get them back. Iāll reread it again when Iām less tired, just wanted to thank you for sharing this work. I hope you stay around.
Edit:
However, this replay attack doesnāt achieve much (besides Mallory losing his money), so a solution may not be necessary.
I think hereās a typo and it should be Dave instead of Mallory. It is possible to steal money through an attack like this. Letās say there exists a TXN which sends coins to Mallory and TXN is a continuation of the TX2 graph - a transaction graph that builds from an output created in TX2. If Mallory replays a sequence of transactions TX2 ā TX3 ā ā¦ TXN, she could profit from this attack. As long as there exists a sequence of known state transitions where Mallory profits (or anyone else as any observer can pull off the attack), then it is profitable for this party (or many) to replay a sequence of transactions. These kind of replay attacks that replay a sequence of transactions may become harder to pull off in practice if we have a good (preferably trustless) way of aggregating transactions together - which is another open problem and weāre just starting exploring the ideas of how to achieve this.
There are some details that Iāve skipped. Itās not really enough to know all the state transitions, some other constraints need to hold as well.
@oryhp Iāve updated section 5.5 to explain why itās the sender of the duplicate output who is losing money and not Dave.
It looks interesting @tevador, I only partly red it and only partly get it.
Just a though in general about adding non-interactive transaction to Grin:
Can we not use something like extention blocks to provide non-interactive transaction while not being part of the core of Grin? Basically I think that interactive-transactions are in most cases not an issue except for
So although not great for transaction monotonicity and while not being the most elegant solution, side-chains or extention-blocks would provide a practical solution without need to bloat or even adjust the core of Grin.
Since coins can be burned and created when moved to and from the side-chain/extention-block, compatability becomes less important allowing for more diverse solutions like Minglejingle which provide a practical solution.
Itās a very good planļ¼
This would be super awesome if implemented!! Keeping my fingers crossed!
It is an exciting read.
How do we test it?
Davidb is implementing it on Litecoin MW Extension Blocks, I believe.
Ok, maybe that is why I thought the idea sounded familiar when I red it. Can anyone of the Grin developers summarize again why Grin is not implementing Minglejingle (yet)? I thought it āthe signature not being proven secure in the random oracle modelā, or was it something else?
Can anyone of the Grin developers summarize again why Grin is not implementing Minglejingle (yet)?
It has so many downsides.
Thanks @tromp, clearly enough reasons to think long and hard for better solutions. Still it could have its use when be implemented in a side chain of Grin but only if nothing better can be found.
Well said, and that makes this a lot easier to compare with mw
Minglejingle is not an upgrade path from Mimblewimble. Itās a separate protocol.
But could mimble wimble and minglejingle theoretically interact if they are on a separate chains, e.g. via some coin burning and creation process, or in another way?
If so, could be a sperate project, a "Smileā mingeljingle blockchain that interact with the āGrinā mimble wimble blockchain
I echo what @tevador says, but (6) is also generally true for vanilla mw, because you canāt assume the same wallet seed isnāt used on 2 different wallets (mobile and desktop, for example). Both Grin/MW and Grin++ scan every output.
And address checksums make (4) irrelevant.
You can if the user declares a seed not to be shared.
There are other causes of lost funds besides mistyping, such as using a recipient address that the recipient can no longer access.