grin icon indicating copy to clipboard operation
grin copied to clipboard

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

Open lehnberg opened this issue 5 years ago • 5 comments

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

  • Better connectivity amongst nodes
  • Less bandwidth consumption of nodes
  • Better security of the network

Documentation

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

Grin-specific commentary:

  • Complementary to Dandelion++:

    Erlay is complimentary with Dandelion: Erlay would replace the fluff phase in Dandelion, while the stem phase of Dandelion would flood through both inbound and outbound links to preserve the privacy of private nodes.

  • Related: https://github.com/mimblewimble/grin/issues/2726

lehnberg avatar May 28 '19 13:05 lehnberg

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

quentinlesceller avatar May 28 '19 13:05 quentinlesceller

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

eupn avatar May 30 '19 23:05 eupn

@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.

Giszmo avatar Jun 01 '19 03:06 Giszmo

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.

lehnberg avatar Jun 03 '19 15:06 lehnberg

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

eupn avatar Jun 07 '19 21:06 eupn