|
| 1 | +import Flows from '@site/static/img/nil/flows.png' |
| 2 | + |
| 3 | +# Thesis |
| 4 | + |
| 5 | +This page explains the rationale behind the architecture of =nil; and provides insight into how =nil; resolves the fundamental monolithic vs. modular dispute. |
| 6 | + |
| 7 | +## Problem statement |
| 8 | + |
| 9 | +The rollup-centric roadmap to scaling Ethereum and the rise in the popularity of rollups introduced a significant issue: state fragmentation. |
| 10 | + |
| 11 | +State fragmentation means that parts of Ethereum's global state are effectively scattered across systems that are distinct from Ethereum itself. This leads to the following outcomes: |
| 12 | + |
| 13 | +* Liquidity and users are spread across various networks all of which have a unique infrastructure |
| 14 | +* Cross-network operations being difficult to secure, resulting in more hacks |
| 15 | +* Worsened developer and user experience. It falls either on developers or users to ensure cross-chain operations which adds an unnecessary layer of complexity |
| 16 | + |
| 17 | +The architecture of =nil; is designed specifically to resolve these issues. |
| 18 | + |
| 19 | +## Solution |
| 20 | + |
| 21 | +Instead of focusing on improving interoperability (which only produces a 'bandaid' fix to the fragmentation problem), the goal of =nil; is to maximise scalability. |
| 22 | + |
| 23 | +=nil; achieves this by integrating both horizontal and vertical scaling supported by zkSharding. |
| 24 | + |
| 25 | +:::info[Definitions] |
| 26 | + |
| 27 | +**Horizontal scaling** refers to improving the throughput of a chain by adding more nodes. |
| 28 | + |
| 29 | +**Vertical scaling** is improving the throughput of a chain by upgrading the capacity of existing nodes or upgrading hardware utilization. |
| 30 | + |
| 31 | +**zkSharding** is a type of sharding architecture in which the shards responsible for execution algo generate zero-knowledge proofs (ZKP) verifying intra-shard state transitions. There is also a dedicated shard for coordinating execution shards and communicating with Ethereum. |
| 32 | + |
| 33 | +::: |
| 34 | + |
| 35 | +zkSharding allows for combining horizontal and vertical sharding within the scope of one sharded network. |
| 36 | + |
| 37 | +* More shards can be added as needed without compromising security |
| 38 | +* Nodes in a shard can employ parallelized VMs for vertical intra-shard scaling |
| 39 | + |
| 40 | +Cross-shard communications are incorporated directly into the =nil; protocol. This means that the issue of fragmentation is avoided entirely as each shard can call contracts deployed on a different shard via transactions verified through ZKP. |
| 41 | + |
| 42 | +## Flows |
| 43 | + |
| 44 | +The following diagram shows how =nil; organizes execution shards, the main shard, the transfer of ZKPs, and communications with Ethereum. |
| 45 | + |
| 46 | +<img src={Flows}/ > |
0 commit comments