一. Polygon 简介
Polygon 是一个区块链应用平台,提供混合权益证明和支持 Plasma 的侧链。
在架构上,Polygon 的美妙之处在于其优雅的设计,它具有一个通用的验证层,与不同的执行环境分离,如 Plasma 启用的链、成熟的 EVM 侧链,以及未来的其他第 2 层方法,如 Optimistic Rollups。
目前,开发人员可以将 Plasma 用于已编写 Plasma 谓词的特定状态转换,例如 ERC20、ERC721、资产交换或其他自定义谓词。对于任意状态转换,他们可以使用 PoS。或两者!Polygon 的混合结构使这成为可能。
为了在我们的平台上启用 PoS 机制,在以太坊上部署了一组质押管理合约,以及一组运行 Heimdall 和 Bor 节点的激励验证者。以太坊是 Polygon 支持的第一个基础链,但 Polygon 打算根据社区建议和共识为其他基础链提供支持,以实现可互操作的去中心化第 2 层区块链平台。
Polygon 是由 Heimdall 和 Bor 组成,Heimdall 是我们的 Proof-of-Stake 验证层,它负责将 Plasma 块的表示检查点到我们架构中的主链。我们通过在 Tendermint 共识引擎之上构建并更改签名方案和各种数据结构来实现这一点。Bor 节点或 Block Producer 实现基本上是侧链运营商。侧链 VM 与 EVM 兼容。目前,它是一个基本的 Geth 实现,对共识算法进行了自定义更改。但是,这将是从头开始构建的,以使其轻巧且专注。
二. Polygon 项目架构
1. Polygon 具有三层架构
- 以太坊上的 Staking 和 Plasma 智能合约
- Heimdall(权益证明层)
- Bor(区块生产者层)
2. Polygon 智能合约(在以太坊上)
Polygon 在以太坊上维护了一组智能合约,它们处理以下内容:
- 权益证明层的权益管理
- 授权管理,包括验证者共享
- MoreVP 的等离子合约,包括侧链状态的检查点/快照
3. Heimdall 节点
Heimdall 是 PoS 验证节点,它与以太坊上的 Staking 合约协同工作,以在 Polygon 上启用 PoS 机制。我们通过在 Tendermint 共识引擎之上构建并更改签名方案和各种数据结构来实现这一点。它负责区块验证、区块生产者委员会选择、在我们的架构中将侧链区块的表示检查点到以太坊,以及各种其他职责。
Heimdall 层将 Bor 产生的块聚合到 Merkle 树中,并定期将 Merkle 根发布到根链。这种定期发布称为checkpoints. 对于 Bor 上的每几个块,验证器(在 Heimdall 层上):
- 验证自上一个检查点以来的所有块
- 创建块哈希的 Merkle 树
- 将 Merkle 根发布到主链
检查点之所以重要,有两个原因:
- 在根链上提供最终确定性
- 在提取资产时提供燃烧证明
该过程可以解释为:
- 从池中选择一部分活跃的验证者作为跨度的块生产者。每个跨度的选择也将得到至少 ⅔ 掌权者的同意。这些块生产者负责创建块并将其广播到网络的其余部分。
- 检查点包括在任何给定时间间隔内创建的所有块的根。所有节点都验证相同并将其签名附加到它。
- 从验证者集中选出的提议者负责收集特定检查点的所有签名并将其提交到主链上。
- 创建区块和提出检查点的责任取决于验证者在整个池中的股权比例。
4. bor 节点
Bor 是 Polygon 的区块生产者层——负责将交易聚合成区块的实体。目前,它是一个基本的 Geth 实现,对共识算法进行了自定义更改。
区块生产者通过 Heimdall 上的委员会选择定期改组,持续时间称为spanPolygon 中的 a。块在Bor节点生成,侧链 VM 与 EVM 兼容。在 Bor 上产生的块也由 Heimdall 节点定期验证,并且由 Bor 上一组块的 Merkle 树哈希组成的检查点定期提交给以太坊。
Bor 节点或 Block Producer 实现基本上是侧链运营商。侧链 VM 与 EVM 兼容。目前,它是一个基本的 Geth 实现,对共识算法进行了自定义更改。但是,这将是从头开始构建的,以使其轻巧且专注。
区块生产者是从验证者集中选择的,并出于相同目的使用历史以太坊区块哈希进行洗牌。但是,我们正在探索此选择的随机性来源。
原文信息
原文转载自:问我学院,问我社区
原文链接:http://www.wenwoha.com/blog_detail-1271.html