Data synchronization between Bitcoin nodes is going to be easier

[ad_2][ad_1]

Minisketch is a new solution that is trying to solve an old problem.

Headed by Blockstream co-founder Pieter Wuille, Bitcoin Core contributor and co-founder of Blockstream co-founder Gregory Maxwell, and Blockstream software engineer Gleb Naumenko, the open-source initiative is designed to achieve a reconciliation between the mempoli of each complete node.

"Setting up reconciliation, in short, is the problem of trying to figure out what the differences are between two sets stored on different computers, minimizing the amount of data that needs to be exchanged between them.In particular, it is trying to do so by sending less data with respect to the whole data set, "Wuille said Bitcoin Magazine

For Bitcoin, this means discerning the differences in transaction data between nodes. Maxwell compared the reconciliation of the set with the process of synchronizing the phone contact list with another person who has many of the same contacts.

"You could send them the whole list but it does not fit a postcard and it would still be quite expensive, since they already know most of the contacts … It is possible, in fact, to communicate the entire set of contacts to sending them just as much information as there are dimensions of the difference between your lists even without any idea in advance about what the actual differences are, "Maxwell said Bitcoin Magazine.

In short, the set reconciliation would reduce the bandwidth required to run a complete node on the Bitcoin network while minimizing the amount of data transmitted between them by each node. This would effectively enable nodes to synchronize data in their files more efficiently.

Break down Set up reconciliation

The problem that minisketch wants to modify is not specific to the blockchain.

The reconciliation set is a constant frustration to which any distributed system is struggling with. Writ large, simply means that two or more parts on a distributed network contain different sets of data and, to reconcile them, they need to understand which parts of the data are missing – and which pieces have the other party missing.

For Bitcoin, these data are transactions. These transactions are forwarded from one node to another until they are collected by the miners to be included in new blocks.

The problem is that the transaction order can vary from mempool to mempool (the queues that list incoming transactions to include in new blocks). This means that there may be (and usually is) a discrepancy in the order of transactions between mempools and blocks just forwarded.

"Bitcoin nodes have a … problem when forwarding transactions to each other.Each node will mostly have the same transactions as any of its peers – received from other links, but not exactly the same.Now the nodes waste a lot bandwidth only to understand who should be sent what [data]"Maxwell said.

As Minisketch closes the gap

Implementation of the PinSketch algorithm, minisketch creates a library of data to be used for the construction of set sketches (for example, for this case of use, sets of transaction data). Nodes and miners can then use these sets for reconciliation of compact sets.

In short, the solution would allow node operators to compare notes on transaction data. It would allow them to draw (create) sets (lists) of transactions and the program would check these sets to see what data occurs in one, but not in both sets. Instead of spending time and energy to reveal all this data to each other, however, with minisketch, the nodes only need to know the difference between their transaction sets to draw a complete set.

As Wuille explained, this would seem to be in practice:

"If we simplify it with just one difference, it's easy to see how this can work:

  • Let's say I have the set {3,5,7,11}, and you have the set {3,5,7,9,11}, so the difference is {9}.
  • We both calculate the sum of our elements, so I get 3 + 5 + 7 + 11 = 26 and get 3 + 5 + 7 + 9 + 11 = 35.
  • I send you my sum 26 and subtract it from your sum; the difference is 9.

"It works, but is limited to finding a single difference: Minisketch generalizes this by sending various types of" sums "of the data. N different amounts, you can find N differences … As long as the number of differences between the sets is not greater than the number of "sums" sent, minisketch will always be able to find all the differences. "

If implemented correctly, this reconciliation could make more efficient the forwarding of transactions between the nodes. Along with other ongoing improvements in Bitcoin's infrastructure, this could reduce the transmission load of each node by a significant margin, Maxwell said.

"I took a step back and found that the transaction relay was about 87% of a node's bandwidth, this was before the compact blocks, so the number is potentially greater now.Our simulation results indicate that we may be able to cut the overall costs of 40x relays through a combination of improvements including minisketch. "

According to Wuille, the minisketch solution could also create "a more robust network". Maxwell expanded this line of thought by indicating that with the protocol, the nodes could use the saved bandwidth to connect with another 16 or 24 nodes instead of the standard 8, "which would make it even more difficult to execute some theoretical attacks. without using more bandwidth, "he said.

Maxwell is also confident that one day, minisketch could also be used to renew the propagation of the blocks. "There were other block propagation protocols using the IBLT (Invertible Bloom Lookup Table) that minisketch would have done much better," he said, although he admitted that such a solution is "not urgent" because "[compact] the blocks already make sure that the transfer of the blocks itself only uses about 4 MB per node per day, so even if the improvements reduce the number to zero it would not make a big difference for users or the network. "Instead, imagine that this solution is more useful for" very low transmission like the Blockstream satellite ".

Wuille indicated that minisketch will reduce the node's bandwidth requirements and will have a greater chance of success than the IBLT, but admitted that for larger data sets, the IBLT would be faster. Maxwell added that "IBLT is very inefficient for less than a few hundred differences", while Minisketch is more efficient for smaller data sets.

Minisketch is still very much in the preliminary stages, however; Wuille said that an effective BIP is a bit far and that adoption is subject to a number of factors.

Reiterating his observations at one point, Maxwell noted that the protocol is not part of Bitcoin's consensus on the network. If some node operators felt quite comfortable and wanted to try to improve their transaction relays, they could choose to use minisketch even without its ubiquitous adoption on the network.

"A useful point is that the retransmission mechanisms are not part of Bitcoin's consensus.You and I could start using an improved protocol between us, regardless of what other people choose to do.This means that improvements to the relay are only delayed by engineering considerations of the ordinary protocol / software – we have to build it, verify it, integrate it, etc. – but unlike a change of consensus, it does not depend on anyone accepting it except the people who choose to use it. "

[ad_2]Source link