owned this note
owned this note
Published
Linked with GitHub
# Devs Behind The Merge: Mikhail
For me the Merge began in 2015, a month before the launch of Frontier. At that distant time, I joined a small startup in which I worked on one of the first Ethereum clients.
Some time after the startup was retired, I took part in prototyping Hybrid Casper FFG in our Java client with Dmitry Shmatko, where we met Danny Ryan for the first time. Thus, I was in a team which were at origins of the Beacon chain work, and we were granted by EF to continue our work on fully featured Beacon chain client in Java.
With the progress on what was called Eth2 at the time, the first Merge designs began to appear, authored by Vitalik. At that time, it was planned to make Ethereum Mainnet chain to be placed on one of the 64 shards.
During the fall of 2019, after a year of effort, a big event took place in the work on Beacon Chain. Seven teams working on Beacon chain clients gathered together in Canada for an offsite called [Interop Lock-In](https://media.consensys.net/how-30-eth-2-0-devs-locked-themselves-in-to-achieve-interoperability-175e4a807d92) to make their clients (and themselves) to talk to each other. Many thanks to Joe DeLong and ConsenSys for the idea and organization of this event. There was a lot of fun and, on the other hand, the event was very productive. During the week that was spent together, we made a huge step towards delivering the Beacon chain.
After this event, thanks to the efforts of Joe Delong, Johnny Rhea and Ben Edgington, our entire team joined ConsenSys and formed the TXRX R&D team under the leadership of Joe Delong. A huge thank you to Joe, Johnny and Ben for the effort put into our teams merger, and a special thanks to EF for their support over the year and a half leading up to this event.
And here, at ConsenSys R&D, under the excellent guidance of Joe Delong, I began to work closely on the Merge. I immediately liked the idea of working on the Merge, because I had deep knowledge on both, the Mainnet and the Beacon chain, which I learned while working on the clients of these two networks. The value of upgrading Ethereuom to PoS, the complexity of the design, and the challenges associated with it greatly fueled my interest.
By the time I started working on Merge, several articles had been written on this topic, good examples are posts by [Vitalik Buterin](https://ethresear.ch/t/two-way-bridges-between-eth1-and-eth2/6286) and [Alex Stokes](https://ethresear.ch/t/two-way-bridges-between-eth1-and-eth2/6286). At that time, there was an idea to use Beacon Chain as a Finality gadget for the Mainnet. The [analysis of this design](https://ethresear.ch/t/on-the-way-to-eth1-finality/7041) was my first work on a given topic. Also, there was and idea of a [direct transition]((https://ethresear.ch/t/the-eth1-eth2-transition/6265)) to PoS, bypassing the Finality gadget stage was published by Vitalik at the same time.
As a result of my initial research, I decided to create a prototype on [Teku](https://github.com/txrx-research/eth1-shard-demo), in which one of the Eth2 shards was used to store data of Execution chain. At the same time, Danny Ryan published an article on [the separation of concerns](https://ethresear.ch/t/eth1-eth2-client-relationship/7248) between execution and consensus clients. Guillaume Ballet helped a lot with the prototype by creating [Catalyst](https://ethresear.ch/t/architecture-of-a-geth-based-eth1-engine/7574) - the first prototype of Execution Layer client. At this time, we started to have regular calls on the Merge topic mostly to coordinate our efforts. [The prototype](https://github.com/txrx-research/eth1-shard-demo) was created and we moved on.
After some time, Vitalik publishes the [Rollup-centric roadmap](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698) which starts to make sense because of the progress on rollups and the Merge, which moves us away from the idea of executable shards. In one of the channels those days we were discussing the idea of moving an execution payload from a shard to the Beacon chain. With this idea in mind, I published the [Executable Beacon Chain Proposal](https://ethresear.ch/t/executable-beacon-chain/8271), key points of which are included in the modern design of Merge. Almost simultaneously with this propozal, the deposit contract was deployed and the Beacon chain was launched :rocket:. After publishing the proposal, I updated the Teku prototype, thereby getting the first prototype of modern Consensus Layer clients.
Next, Guillaume and I presented the Executable Beacon Chain and post-merge client architecture at the [R&D workshop](https://hackmd.io/@hww/workshop_feb_2021) hosted by EF. There was a concern from Martin and Peter from the Geth team on plans to deprecate Mainnet chain at the Merge which would break an invariant of serving the chain history and significanly affect client sync algorithms. After the presentation, the idea of simply replacing PoW consensus engine with the Beacon chain and leaving everything else as it is came to my mind, and I discussed it with Danny and Tim on one of the calls. There was a rough consensus that this approach is reasonable, and starting from that moment high-level design of PoS Ethereum settled down. Though, a huge amount of work on figuring out the details and writing specifications was upcoming.
I will never forget my first [major spec contribution](https://github.com/ethereum/consensus-specs/pull/2229). At the same time, Vitalik got publishes the [Quick merge proposal](https://notes.ethereum.org/m9IX3OkkTveXCCOSzGkUiw), which describes the mechanism of transition to PoS and gives us Terminal Total Difficulty as the only correct trigger of the network upgrade. I adjysted my version of Consensus specs with Vitalik's work, and we have a nearly final version of the entire design, including the Merge transition itself, which allows for a seamless transition to PoS, a very important UX goal that we had from the very beginning.
Next was [Rayonism](https://rayonism.io), with Diederik Loerakker (Proto) behind the idea of this project, whom we all know for his outstanding contribution to the specification and design of the Beacon chain. Proto created many tools and spent a lot of his time working on Rayonism, which resulted in the launch of [the first multi-client devtnet](https://twitter.com/protolambda/status/1388093066993668098). I am very grateful to him for this project, starting from picking up the name, continuing with the development coordination, his work on the tooling, block explorer and monitor fork patches, and just for the great working atmosphere we had there. It was an exhausting two weeks, but the result paid off all the efforts. The most important outcome of this project was participation of all CL and EL client teams. For the first time the Merge specs and design got so much attentions from client developers who made first prototypes of their clients compliant with the Merge. The initial version of the Engine API allowing CL and EL clients to communicate with each other were also design during the Rayonism.
After the Rayonism, work on Merge began to develop like a snowball, involving more and more developers and community attention. In the summer of 2021, a lot of work was done on the specifications. [EIP-3675](https://eips.ethereum.org/EIPS/eip-3675) (the first one with my co-authorship) and [Engine API](https://github.com/ethereum/execution-apis/blob/main/src/engine/specification.md) specifications has been written during that time. Also, my teammate Dmitry Shmatko published his analysis on [Terminal total difficulty](https://ethresear.ch/t/using-total-difficulty-threshold-for-hardfork-anchor-what-could-go-wrong/10357) as a trigger for the Merge upgrade on Mainnet.
Then we had [Amphora Interop](https://hackmd.io/@tvanepps/amphora-milestones) event in Greece. By that time two years past since Interop Lock-In in Canada and it was great to again gather in one place to take a step towards one of the biggest and the most important goals in the history of Ethereum. There was a lot of new faces, great talks and exciting atmoshpere. I am very grateful to sponsors, organizers and paritcipants who made this event happen. In the evening of the last day of the event [the first persitent devnet](https://twitter.com/benjaminion_xyz/status/1446516207159582743) was launched - a great result of a week of rapid spec and sowftware development. I would like to say special thanks to Parithosh Jayanthi and Proto who worked on testnet infrastructure setup that we use today for launch various devenets and testnets. Also, Matt Garnett's [Mergemock](https://github.com/lightclient/mergemock) and general Merge testing effort started by Marius are the great outcomes of the Amphora week. And of course a lot of feedback to specifications that we will be adopt during the next weeks.
After the interop we have accomplished [Kintsugi](https://notes.ethereum.org/@djrtwo/kintsugi-milestones) and currently are at the end of the [Kiln](https://notes.ethereum.org/@timbeiko/kiln-milestones) sprints. And now when the specification is considered final and only allows minor changes, or critical fixes, when EIPs are in the Review stage we are almost ready to start forking existing testnets which means that the Merge is coming! And I am very exciting looking forward to it!
My story of working on Merge is an example of true diversification and decentralization of work on an R&D project. This is right way of doing sophisticated projects that are involving a huge amount of complexity in the live ecosystem worth billions of dollars. In this reading, diversification is reflected by big number of developers' and researchers' names who contributed to the Merge in one way or another, but even more of these names remain outside the scope of this document.
It was a long journey and I am very grateful to all those people who helped me develop my initial passion about the Merge into a great project, which is near to be shipped pretty soon. Many thanks to ConsenSys R&D who allowed me to do this work, supported and encouraged me in every possible way. In particular, to my team for numerous discussions and help of various kinds. And, also, to EF Researchers who have been a huge support to me along the way. Let's get Merge!