Recap for September 2019

September has been a quiet month for Bitcoin, there was the honey badger conference and all the talks but there has also been some technical advancements in the background, enabled by the Eltoo proof of concept created by Richard Meyers and recent work on utreexo by Tadge Dryja.

Today we’re covering technical discussions that were done on the bitcoin-dev mailing list for the past month, have a good read!

Erlay: Bandwidth-Efficient Transaction Relay for Bitcoin

Transaction relay in Bitcoin is currently a simple scheme, any node announces transactions to every peer in its list, in turn every peer announces it to its peers and so on until the whole network is updated. This is simple but not bandwidth efficient as a transaction can reach one node multiple times through multiple peers, this ensures that there is no single point of failure but is highly inefficient.

Currently any node with 8 connections would be using about 18GB of bandwidth per month, if we increase the amount of peers, further enhancing security, we increase the usage, which would discourage some users from owning a node, according to a new research paper almost 44% of all bandwidth used is redundant.

That’s why a group of Bitcoin developers and researchers created Erlay, an efficient transaction relay protocol for Bitcoin, in simple terms the protocol works by optimizing the transaction relay while maintaining the security aspects, it reduces propagated information by using an efficient set of reconciliation method, it is also designed to withstand attacks like denial of service and timing.

OP_DIFFICULTY To Enable Difficulty Hedges Without an Oracle and 3rd Party

Every financial market has bets, some are bets on the availability of a certain product, the price of a certain product at a certain point in time and on productivity and all markets depend on supply and demand, in metal markets the supply is the amount of metal that was produced this year, in Bitcoin that amount is fixed so people can’t bet on it. What you can bet on is how much it costs to mine Bitcoin at a certain time, specifically the difficulty, as the difficulty rises miners need more powerful, and probably more expensive, machines to be able to compete.

For anyone wanting to enter the mining business, this is the biggest risk there is, and while commodity markets offer futures and options to hedge risks, currently Bitcoin doesn’t employ this.

That’s why developer Tamas Blummer suggested the OP_DIFFICULTY, an opcode to enable hedges without any 3rd party interference, settled on the blockchain.

Outsourcing Route Computation With Trampoline Payments

Routing on Lightning is an optimization problem with continuous development, developers do not only aim to reduce the computational costs and increase the privacy, they also mean to delegate route computations to other nodes in a trustless manner, lets take a look at layer 1 for an example.

Full nodes are nodes that verify transactions themselves, they hold the entire blockchain and the UTXO set which makes them able to verify any transaction based on a defined consensus and the history of the transaction inputs. On the other hand lite clients use methods such as SPV to verify the existence of a transaction in a block without downloading the block itself, they rely on other full nodes to make that CPU/Memory heavy operation for them.

The way Lightning currently works is that the sender calculates the route from its node to the receiver’s node, this means that the sender’s node must have an updated network of nodes, it might not be connected to the receiver directly but it is connected through a path in the network.

This might be fine for Lightning in its current state, but it won’t be if the number of channels expand into the millions due to adoption. Trampoline payments is a new suggested way of outsourcing that aims at having lite clients outsourcing the route computation to trampoline nodes, nodes of higher Memory, bandwidth and computation power.

Improving SPV Security With POW Fraud Proofs

Bitcoin full nodes require increasing computer resources that are not available to most of the public, therefore most users tend to use SPV. Simplified Payment Verification is a way for users to check the validity of a block without downloading the whole blockchain, only needing a copy of the block headers of the longest chain.

This schema makes SPV clients vulnerable to forks as it is secure under the assumption that the longest chain is valid and as attacks like Segwit2x have shown and this is not always a safe assumption. A new schema has been proposed on the Bitcoin-dev mailing list that allows invalid blocks to be rejected as long as there are enough honest miners to create a block within a reasonable time frame. The new schema doesn’t fully protect clients against dishonest miners but is an improvement over the current SPV.

[BIP Proposal] Peer to Peer Message Transport Protocol V2

Peer to Peer messaging is already applied in Bitcoin courtesy of BIP 151, but the current way it is applied is inefficient and insecure, currently messages transported are non-encrypted so message tampering, block delay attacks and BGP hijacks are all valid threats using man in the middle attacks. A new BIP is aiming at adding opportunistic encryption using ChaCha20 as a cipher and Poly1305 as a message authentication code, which has been lately getting adopted in many state of the art protocol encryption schemes such as Wireguad and tinyssh.

The computation power required for encrypting and authenticating a message using these algorithms would be almost as much the current double-SHA256 checksum.

Payee Pay Fee

Lightning Network is currently starting to build up, it has recently passed 2 Million dollars in capacity, but its still far from being perfect, there’s currently very little ways of assessing how much fees a payer will pay, although its currently mostly a negligible value, it may not be in the future.

A use case of the Payee paying the fees of the transaction is used in almost every exchange platform, because on the main blockchain you can assess the current average fees and even figure out how much, on average, it will take your payment to be accepted by the network if you sent it with a definite amount, this currently does not exist in Lightning.

If the payee pays the fees the payer can route the payment towards complicit nodes that charge way higher fees than average.

Andreas Antonopolous Splicing Is Probably on of the Most Powerful and Underappreciated Features

Annotated notes from Let’s Talk Bitcoin Episode 389. Taken from Professor Meow on Twitter.

#LNTrustChain: Lightning Is Sparking Up a Marathon
A lightning network payment has been sparking up a twitter marathon, The payment, slowly increasing in value, is currently at 3.68M satoshis (~140$) and has been making rounds all around the globe (and even space!). It has exchanged hands between more than 200 members of the lightning community, been to more than 35 countries and has even been sent to space by Trezor’s CTO Pavol Rusnak broadcasting an invoice through Blockstream’s satellite network.