Skip to content

Polygon Matic

    Polygon


    Polygon believes in Web3 for all.

    Polygon is a decentralised Ethereum scaling platform that enables developers to build scalable user-friendly dApps with low transaction fees without ever sacrificing on security.

    Polygon is a scaling solution for public blockchains.
    Based on an adapted implementation of Plasma framework (Plasma MoreVP) – with an account based implementation (read more here), Polygon supports all the existing Ethereum tooling along with faster and cheaper transactions.

    Polygon Network is a blockchain application platform that provides hybrid Proof-of-Stake and Plasma-enabled sidechains.

    Architecturally, the beauty of Polygon is its elegant design, which features a generic validation layer separated from varying execution environments like Plasma enabled chains, full blown EVM sidechains, and in the future, other Layer 2 approaches such as Optimistic Rollups.

    Currently, developers can use Plasma for specific state transitions for which Plasma predicates have been written such as ERC20, ERC721, asset swaps or other custom predicates.
    For arbitrary state transitions, they can use PoS. Or both! This is made possible by Polygon’s hybrid construction.

    To enable the PoS mechanism on our platform, a set of staking management contracts are deployed on Ethereum, as well as a set of incentivized validators running Heimdall and Bor nodes.

    Ethereum is the first basechain Polygon supports, but Polygon intends to offer support for additional basechains, based on community suggestions and consensus, to enable an interoperable decentralized Layer 2 blockchain platform.

    Polygon has a three-layer architecture:

    1. Staking and Plasma smart contracts on Ethereum
    2. Heimdall (Proof of Stake layer)
    3. Bor (Block producer layer)

    Polygon smart contracts (on Ethereum)

    Polygon maintains a set of smart contracts on Ethereum, which handle the following:

    • Staking management for the Proof-of-Stake layer
    • Delegation management including validator shares
    • Plasma contracts for MoreVP, including checkpoints/snapshots of sidechain state

    Heimdall (Proof-of-Stake validator layer)

    Heimdall is the PoS validator node that works in consonance with the Staking contracts on Ethereum to enable the PoS mechanism on Polygon. We have implemented this by building on top of the Tendermint consensus engine with changes to the signature scheme and various data structures. It is responsible for block validation, block producer committee selection, checkpointing a representation of the sidechain blocks to Ethereum in our architecture and various other responsibilities.

    Heimdall layer handles the aggregation of blocks produced by Bor into a merkle tree and publishing the merkle root periodically to the root chain. This periodic publishing are called checkpoints.
    For every few blocks on Bor, a validator (on the Heimdall layer):

    1. Validates all the blocks since the last checkpoint
    2. Creates a merkle tree of the block hashes
    3. Publishes the merkle root to the main chain

    Checkpoints are important for two reasons:

    1. Providing finality on the Root Chain
    2. Providing proof of burn in withdrawal of assets

    A bird’s eye view of the process can be explained as:

    • A subset of active validators from the pool are selected to act as block producers for a span. The Selection of each span will also be consented by at least 2/3 in power. These block producers are responsible for creating blocks and broadcasting it to the remaining of the network.
    • A checkpoint includes the root of all blocks created during any given interval. All nodes validate the same and attach their signature to it.
    • A selected proposer from the validator set is responsible for collecting all signatures for a particular checkpoint and committing the same on the main-chain.
    • The responsibility of creating blocks and also proposing checkpoints is variably dependent on a validator’s stake ratio in the overall pool.

    Bor (Block Producer Layer)

    Bor is Polygon block producer layer – the entity responsible for aggregating transactions into blocks.

    Block producers are periodically shuffled via committee selection on Heimdall in durations termed as a span in Polygon. Blocks are produced at the Bor node and the sidechain VM is EVM-compatible. Blocks produced on Bor are also validated periodically by Heimdall nodes, and a checkpoint consisting of the Merkle tree hash of a set of blocks on Bor is committed to Ethereum periodically.

    How is Polygon different from other implementations of Plasma?

    Polygon’s implementation of Plasma is built on state-based side chains which run on EVM, while the other implementations of Plasma primarily use UTXOs which restricts them to being payment specific.
    Having state based side chains allows Polygon to provide scalability for generic smart contracts as well.

    Secondly, Polygon uses a public checkpointing layer which publishes checkpoints after periodic intervals (unlike checkpoints after every block in Plasma Cash) allowing the side chains to operate at high speeds while publishing the checkpoints in batches.

    These checkpoints along with the fraud proofs ensure that Polygon’s side chains operate in a secure manner and any fraudulent activity can be detected on Ethereum mainchain and be penalized by slashing the stakes of the bad actors.
    This mainchain security is supplementary to the PoS protocol security on the side chains.

    📜Resources

    📎 Bor Architecture: https://forum.matic.network/t/matic-system-overview-bor/126
    📎 Heimdall Architecture: https://forum.matic.network/t/matic-system-overview-heimdall/125
    📎 Checkpoint Mechanism: https://forum.matic.network/t/checkpoint-mechanism-on-heimdall/127