Two-phase Commit vs Polymerase Function

We ponder on the best approach for inter-blockchain communication by thinking hard about the two-phase commit versus the polymerase function. Can millions of years of microbiology teach computer science something new?

- We find Interledger provides a useful overview page

transcription factors of eukaryotic cells page

How does Interledger work.

We find Microbiology of the Cell by Alberts our reference, we have the third edition handy page . Alberts illustrations are clear and exquisite. After all computer science is only about 70 years old. Whereas the simplest cells emerged about 3.8 billion years ago. Imagine Node or Deno in a million years time...

We frame our interest in a real-world blockchain problem. The Hyperledger BIF lab, that we are looking at page

Notably nearly every research university in EE/CS has post grads focused on consensus algorithms. A friend who is one, tells me it's because consensus is easy to observe, write about and apply for research grants.

Meanwhile commercial blockchain projects including open source, are in search of inter-blockchain protocols. We look at Cosmo as the benchmark referenced by BIF. paper .

- We found a pertinent discussion:

> What’s the difference between Cosmos and Interledger? IBC (inter blockchain communication) vs ILP? page

Use Case > As @akash mentions, the main purpose of IBC is to allow you to move an asset or token from one ledger (Cosmos “zone”) to another. For example, if there is a Crypto Kittie issued on one zone, this would allow me to move my kittie to another zone to play some other blockchain-based game, and then to move it back (all the while I have ownership over it). > ILP is designed to enable you to pay or exchange assets across different ledgers. When I send some currency or token through ILP, it will be exchanged in real-time for assets on other ledgers, and the equivalent value will show up in your account as some other asset (whatever you want to hold). When using ILP, you are intentionally giving up ownership of your original asset to exchange it and ultimately deliver something different to the recipient. > As mentioned above, these two functions are completely separate and complementary. For example, you could use ILP to do exchanges or payments between two Cosmos zones, or between a Cosmos zone and another ledger (this is what Kava is working to enable).

Supported Ledgers > The other major difference is the type of ledgers that the two protocols can support. ILP requires only that the ledger supports sending a simple payment, and thus can integrate a very wide variety of ledgers, even if they were not designed to work with Interledger. In contrast, IBC is a deeper level of integration and requires blockchains to understand one another’s internal state, so it will mostly be used for connecting new blockchains designed specifically to work with it. > I would argue that Cosmos (and Polkadot 5 as well) is more a framework or toolkit for building blockchains that understand one another, rather than a general interoperability protocol for linking all ledgers together. You could also say that ILP isn’t a “general interoperability protocol”, in that it only focused on value transfer, rather than other types of interoperability. I think the parallel between the internet and the Interledger idea of the “Internet of Value” is stronger, because the design of ILP has direct technical parallels with TCP/IP (intentionally) and the Internet was more about bridging networks that weren’t designed to work together. But this isn’t the most useful debate.

- Let's look at the Two-Phase Commit and the Polymerase Function (links on diagrams):

Polymerase pic Alberts page

Two-Phase Commit page

Via UCSC bioinformatics/microbiology, we know the polymerase function is non-blocking, e.g. normally transcription errors are few, because any mutated cells generated are attacked by the immune system. When this process fails a cell can mutate leading to a cancer. Fortunately this is a rare, because a verification effectively stops most occurrences. Even those that complete are generally rolled back by the immune system.

We deduce microbiology teaches us that non-blocking common in microservices is at work, this entails a three-phase commit. page

We read more of Alberts, as a placeholder this wikipedia page on the Transcription-factor reveals the complexity in the three-phase function. page

- Three-Phase Commit and Transcription-Function


Transcription via Kahn Academy page

Three-phase commit page

Cleary in a three-phase commit we not dealing with the exquisite layers of eukaryotic cell transcription. Computer science is dealing with far simpler and crude replication. Microbiology points us back to prokaryotic cells — the smallest, simplest and most ancient cells. Prokaryotic cells do not have a nucleus; rather, they are unicellular organisms that lack organelles or other internal membrane-bound structures. Instead, generally they have a single chromosome: a piece of circular, double-stranded DNA located in an area of the cell called the nucleoid. This looks like inter-blockchain communication page

Viruses are even simpler, but don't have a blockchain like data structure.

Thus to learn from microbiology how to implement a robust blockchain integration framework we need to study prokaryotic replication. We feel Fed Wiki's JSON, Plugins and Node mimic Alberts Polymerase- function. i.e Import, Quotation and Reference


We learn prokaryotics reproduce through asexual reproduction, usually by binary fission (makes sense, we know CS has a gender issue :/ ).

Genetic exchange and recombination still occur, but this is a form of horizontal gene transfer and is not a replicative process, simply involving the transference of DNA between two cells, as in bacterial conjugation. page

Genetics in Bacteria page

We now need to tease this apart and also look at Mark Miller's work on membranes for capabilities in JavaScript. Notably, Caridy's work at Salesforce attracts younger JS devs who keep trying to land reactive PRs to make JS membranes reactive. i.e trigger behavior as if a polymerase or transcription function. Here, younger devs are trying to tell us something fruitful, pointing us read Alberts again. page

We feel that Fed Wiki's functional plugins on a general API is metaphor for the polymerase function. The DNA copies are created by the pairing of nucleotides to bases present on each strand of the original DNA molecule. Maybe Ward or friends who have dabbled in thinking deeply about programming and biomimicry in computer science and have considered how transcription makes integration robust (we should probably re-title this page more usefully).

DNA polymerase moves along the old strand in the 3'–5' direction, creating a new strand having a 5'–3' direction.

Overall the DNA Polymerase pattern seems to mimic the transcription of one wiki server to another wiki. Or one blockchain to another, and the phased commits should move along JSON or blockchain using an extremely fine-grained capability-pattern using a ATUG series of functions or tiny plugins. page

Writing this, we just twigged on that solving the Byzantine Generals Problem in blockchain. Is often shorthand to describe using consensus to solve validity in distributed systems. While trying to avoid the gnarly exquisite detail in interfaces. Also points us to why object-capabilities may require a new type system we see underway here Rholang Toward Capabilities Programming here Policy as Types in Object-capabilities and here Applied Category Theory Workshop. Though Mark Miller keeps plugging away at TC39 to make JavaScript a first class capabilities-based programming language, that we can use today page

- We must read Alberts, and develop a Miller like ability to succinctly explain. This will need code.


- Q "How are rollbacks/forks in either network resolved?

Notable works on "Globally asynchronous locally synchronous" (GALS), was first presented as a PhD thesis by Daniel Chapiro at Stanford in 1985 page

In digital circuits, asynchronous operation usually means that components not operate on the same clock. e.g. No such thing as synchronicity on different computers across the network. i.e. The FLP result page

The formal definition of "asynchronous" as used in proofs, such as the FLP result, is that there can be an unbounded amount of time before a message is received. In that sense, your Actor system is asynchronous. However, "synchronous" by that definition is not the same as everything happens at the same time. It is a system in which the time to receive a message is bounded. That statement does not imply that the subject line of this message is incorrect.

- Feedback > Preferred are ledger-native transaction validation approaches (like state proofs) rather than proxy approaches, but this seems like a reasonable step forward with interest from different groups with more than one business motivation. So it seems like something that can be a sustainable project.

Hamiltonian networks are far more complex that Euler's :

- Hamiltonian paths page - Euler's analysis (crossing Seven Bridges of Königsberg) page