Skip to content

Instantly share code, notes, and snippets.

@benjiqq
Last active August 29, 2015 14:05
Show Gist options
  • Save benjiqq/e14d79fce31943c50710 to your computer and use it in GitHub Desktop.
Save benjiqq/e14d79fce31943c50710 to your computer and use it in GitHub Desktop.
blockchains and local information

Blockchains and local information

GHOST [1] proposes sub-trees for Bitcoin transaction processing. Here I will argue that Sompolinsky & Zohar misunderstand the role of latency and the global view problem (variant of Byzantine General's problem). Essentially all nodes in the P2P network have to operate on an equal basis in terms of spacial distribution. The topic is little discussed, but was one essential ingredient for creating the first network. In the following I will assume that all miners have equal hashing-power (no problem of centralization in terms of hashing-power). The nodes (N) are a P2P network, but I will specifically look at the role of geo-location. This relates to the first studies by Lamport on the topic of time and partial orders [2]. The Bitcoin blockchain implements Lamport's partial order (what Szabo called logical broadcast), of course with the crucial connection to property.

Assume that some sub-section of miners (S), of all miners (N) have an advantage over others (O = N - S). Imagine that the set of nodes S are in one city C1 (distance = 1km), and the set of O's are 1000km away from that city (city C2). Assume that the speed of which information travels is 10% of the speed of light, roughly 30'000km/sec. It takes 0.003sec or 30msec to travel from from C1 to C2. Now assume that the nodes are in for a Proof-of-work race, which lasts 600 seconds. To calculate a game-theoretic equilibrium in this situation we need to take into account the following. If any node in the set S finds a block, all other nodes in S will learn about it, before any other node in the set O. In turn each of the nodes in S can then work on the longer chain, much earlier than any node in O. The fraction of the latency advantage to the block-time is 0.003/600 = 0.0005%. Now we reduce the block-time (BT) from 600 seconds to 10 seconds. The latency advantage becomes 0.03%. At some point it would be winning strategy for any node in O to move to city C1, to compensate to have the information earlier.

The GHOST paper defines a chain-selection rule which does not take into account physical distribution. In GHOST there is the concept of "local" information which seems to me to be violating the principle of requiring global information. In Bitcoin all nodes in principle can act on the same information - the system is fair. In other words it is invariant with regards to space. Even with a bad internet connection someone could mine in the Himalayas and is not at an disadvantage. Of course there is the other issue of mining specialization which has led to only hardware specialists being able to compete in the market, and the aggregation in pools. This requirement, related to Lamport's work, is little discussed, but GHOST would untie Bitcoin's solution to the global view problem (this could be demonstrated in a practical application of the ideas).

Sub-trees instead of blockchains are not suitable for a global currency. The reason that the blocks are necessary is that time between the blocks create an off-set for solving the PoW puzzles.

Robustness and proof

Another main issue with GHOST is it is violating the principle of robustness. Even if everything would work, given all their assumptions about network latencies, their model requires trust in some model and parameters chosen by "experts". In Bitcoin there are very few such variables. The block-time of 10 minutes is one of them. The issuance of the currency another. Other than that there are the decisions about hash-functions etc. But essentially the Bitcoin system does not require a mathematial proof-of-correctness, but the fact that it is operating is a proof that the system works on the current scale. The principled belief that proofs about complex systems are impossible should be one of the first requirements for a new financial system. While cryptography and blockchains now can allow for proofs which were thought impossible, it is important to keep in mind this fundamental limitation of knowledge (compare Hayek's view on markets [2] and Taleb's work on statistics and its use in finance [3]).

[1] http://www.cs.huji.ac.il/~avivz/pubs/13/btc_scalability_full.pdf

[2] Lamport: Time, Clocks and the Ordering of Events in a Distributed System, 1978

[3] Hayek, the use of knowledge in society: http://www.econlib.org/library/Essays/hykKnw1.html

[4] http://en.wikipedia.org/wiki/Nassim_Nicholas_Taleb

@benjiqq
Copy link
Author

benjiqq commented Aug 24, 2014

Zohar/Sompolinsky rely on a whole lot of assumptions and math to prove that certain things work. I can't see how even in principle the trees lead to a convergence so that all nodes have the same information. one node N1 can now about any number of orphans O1, .., ON, while another N2 can another about a different set O. aren't they assuming that all O's are equal for all N’s?

for example bitnodes.io lists that there are ~3000 nodes in the US. these nodes will have mostly information about that set, and not the ~200 nodes in Australia, given a short enough time frame. if blocktime where say 20 seconds, it would be very unlikely to be profitable to be mining outside the US (assuming #nodes proportional to mining power). There would be an arbitrage opportunity when the latencies are significant enough. so scaling block-chains seems to be fundamentally limited given some assumptions (all nodes are equal). it seems to me this problem applies to Gavin's recent proposed solution as well. at a certain load/scale some of these problems are likely to be much more important

@benjiqq
Copy link
Author

benjiqq commented Aug 24, 2014

the issue is the assumption that the set of uncles is uniform. why should nodes even know about all uncles in the same way? the order in which nodes receive events is unknown. Node1 learns about uncles in one order, N2 in another. the set is most different is N1 and N2 are far apart. don't know if this has been publicly described, but it can easily verified by comparing the transaction log of two nodes which are far apart, compared to nodes which are close together.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment