mimblewimble / grin

Minimal implementation of the Mimblewimble protocol.
https://grin.mw/
Apache License 2.0
5.04k stars 991 forks source link

Consider implementing Erlay for more efficient tx relaying and better network security #2857

Open lehnberg opened 5 years ago

lehnberg commented 5 years ago

Intro

New paper by G. Naumenko, G. Maxwell, P. Wuille. An abstract of the abstract:

We propose a new transaction dissemination protocol, Erlay, that not only reduces the bandwidth consumption by 40% assuming current connectivity, but also keeps the bandwidth use almost constant as the connectivity increases. In contrast, the existing protocol increases the bandwidth consumption linearly with the number of connections. By allowing more connections at a small cost, Erlay improves the security of the Bitcoin network. And, as we demonstrate, Erlay also hardens the network against attacks that attempt to learn the origin node of a transaction.

Motivation

Documentation

Description URL
Paper https://arxiv.org/abs/1905.10518
Minisketch C++ implementation https://github.com/sipa/minisketch

Grin-specific commentary:

quentinlesceller commented 5 years ago

Link to Bitcoin mailing list: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-May/016994.html. Will be interesting to see the feedbacks there.

eupn commented 5 years ago

Rust bindings to Pieter's minisketch may come in handy: https://github.com/eupn/minisketch-rs

Giszmo commented 5 years ago

@lehnberg why is this tagged research? What is the research question you want to be answered? The paper looks like a nice to have feature but for grin at this point maybe not the best thing to spend resources on. Dandelion provides all the privacy we want in this part of the transaction broadcast and bandwidth optimizations would be premature. I would tag it nice to have.

lehnberg commented 5 years ago

Hi @Giszmo, thanks for your questions.

What is the research question you want to be answered?

How would one best implement an Erlay-like protocol in Mimblewimble that is compatible with Grin's flavour of Dandelion++, and what would the benefits be? If you could help us figure this out, I'd be glad to remove the research tag.

The paper looks like a nice to have feature but for grin at this point maybe not the best thing to spend resources on.

Maybe, maybe not. What do you base your assertion on? And what are the resources that you are referring to? This issue is a placeholder, for any interested contributor to pick up. It's an open source project after all, anyone is free to work on whatever they find interesting and meaningful.

Dandelion provides all the privacy we want in this part of the transaction broadcast and bandwidth optimizations would be premature.

What do you base your claim on? Regardless, as per the paper, part of the motivation behind Erlay for Bitcoin is to make it more efficient and thus more accessible to run nodes. This enhances network security, and seems highly relevant for Grin as well.

eupn commented 5 years ago

My Erlay simulator: https://github.com/eupn/actix-erlay-sim