项目介绍|Polygon:首个出圈的以太坊扩容方案

声明:本文仅分享个人见解,不构成投资建议。

本文转载自公众号【GenesiSee】,原文发布时间:2022年7月12日

原文链接:Polygon:首个出圈的以太坊扩容方案

Polygon是一个去中心化的以太坊扩展平台,使开发人员能够以低交易费用构建可扩展的用户友好 Dapp,而无需牺牲安全性。Polygon计划成为以太坊上首个 Layer2 解决方案聚合器,为以太坊建设一个模块化、通用、灵活的扩容框架。

五月中旬,全球第四大、市值超过400亿美元的稳定币系统Luna-UST突然崩盘,震惊了整个金融市场。在这之后,比特币、以太坊等加密货币也出现了持续性暴跌,“币圈”可谓经历了一场大地震。

当大家都在关注比特币、以太坊的暴跌,一些加密货币却在低迷的行情中表现出了显著的抵抗力,例如Polygon的代币MATIC,价格在过去一周期间上涨了20%。

资料来源:https://crypto.com/price/polygon

今天我们不分析币圈,不讨论如何牟利,仅从Polygon项目的技术架构、产品图谱、经济模型等各方面出发,和大家一起深入探讨Polygon如何凭借自身的优势出圈,成为加密资产市场里的一匹黑马。

01|Polygon的诞生及发展

Polygon创建之初的项目名称叫MATIC Network,这个项目起初使用侧链技术提供以太坊的链下扩容方案。后来,团队考虑到单一扩容方案具有局限性,决定通过整合不同的扩容方案,打造一个完整的协议与框架,因此在2021年2月将项目更名为Polygon,这次更名也意味着公司的一次正式转型,正如他的新名字Polygon(多边形)一样,提供多元化的解决方案。

在今年的2月7日,Polygon 通过私下出售原生代币 MATIC 筹集了约 4.5 亿美元。这轮融资由红杉资本印度牵头,将帮助Polygon巩固他在以太坊扩容赛道中的领先地位。

如今,Polygon已经成为了以太坊扩容解决方案和基础设施开发的佼佼者,生态内项目多达19000+,记录了16亿笔以上的交易,拥有超1.4亿个独立的用户地址,成为了Web3平台和开发者的首选。

02|Polygon的产品图谱及战略布局

Polygon能被称为黑马,必然有他的独特之处。由于Polygon在创建前期主要提供侧链技术,因此必不可少地要提及他的主打产品——PoS侧链。Polygon通过建立侧链,将主链上的资产跨链到Polygon链上进行处理。从下图可以看到他与以太坊的关系:

资料来源:https://polygon.technology/solutions/polygon-pos/

Polygon POS主要分为三层,由位于链上的合约、连接以太坊和侧链的Checkpoint提交节点(Heimdall)和以太坊兼容的侧链(Bor)构成。

  • 链上合约主要用于保管资金以及保存Checkpoint,为侧链提供安全性。

  • 提交节点用于将侧链的区块汇总成Merkle树,将树根提交到以太坊合约中,基于 Cosmos-SDK和Tendermint开发,使用POS共识能够更快地提取资金到以太坊。由于是将侧链的块打包提交,多笔侧链的交易会平摊一笔以太坊交易的Gas费,单笔侧链的交易Gas费会大大降低。

  • 侧链基于Geth开发并修改了共识算法,因此与以太坊EVM完全兼容。由于侧链的共识更轻量且节点数不多,交易确认速度会比以太坊快很多。

Polygon POS同时支持 Plasma 桥接框架和权益证明(PoS)验证器网络,可确保资产安全,是Web3 中最成熟的扩展解决方案。主要特点如下:

  • 交易速度高达 7000 tx/s ;

  • 侧链虚拟机完全兼容 EVM,与主要 ERC 标准兼容;

  • 每笔交易的成本比以太坊低约10000 倍。

在小新看来,Polygon在侧链技术实现上并没有展现出独具一格的优势或是创新。这个项目能有当前的成就,更重要的原因或许在于,他能在以太坊的网络拥堵和高昂Gas费被频频诟病的背景下,牢牢地抓住时代机遇,利用低廉的交易费和远快于以太坊的交易速度快速吸引大批用户,在众多新兴公链中崭露头角。同时,侧链虚拟机完全兼容EVM,以太坊上的Dapp可以无缝迁移到Polygon,其中不乏Aave、Curve、Sushiswap、Uniswap等以太坊生态内的知名项目。可扩展性加上低Gas费,Polygon已经成为众多DeFi、NFT、链游等Web3项目的构建首选,目前Polygon已经拥有非常庞大的生态系统,生态内项目多达19000多个。

当然,Polygon的技术方案并不止于他主打的侧链产品,他们正在构建一套完整的解决方案,致力于为以太坊建设一个模块化、通用、灵活的扩容框架。在解决方案上,团队认为有2个可以努力的技术方向,一是基于欺诈证明的解决方案,常见的如Plasma和Optimistic Rollups;二是基于零知识证明的解决方案。对于前者,Polygon团队在早期便已经成功实现了基于Plasma的侧链技术,已经具备丰富的实践经验,而后者将成为他们的战略重心。实际上,

这个代码定义了一个名为`pointinPolygon`的函数,它接受两个参数:一个`Point3D`类型的点`p`和一个`Polyline`类型的多边形`polygon`。函数的目的是判断点`p`是否在多边形`polygon`内部。 要实现这个功能,我们可以使用射线法(Ray Casting Algorithm)来判断点是否在多边形内部。具体步骤如下: 1. 从点`p`向任意方向发射一条射线; 2. 计算射线与多边形边界的交点个数; 3. 如果交点个数为奇数,则点`p`在多边形内部;如果交点个数为偶数,则点`p`在多边形外部。 下面是一个简单的实现: ```python from typing import List class Point3D: def __init__(self, x: float, y: float, z: float): self.x = x self.y = y self.z = z class Polyline: def __init__(self, points: List[Point3D]): self.points = points def point_in_polygon(p: Point3D, polygon: Polyline) -> bool: n = len(polygon.points) inside = False p1x, p1y = polygon.points[0].x, polygon.points[0].y for i in range(n + 1): p2x, p2y = polygon.points[i % n].x, polygon.points[i % n].y if ((p.y > min(p1y, p2y)) and (p.y <= max(p1y, p2y)) and (p.x <= max(p1x, p2x)) and (p.x < min(p1x, p2x))): if (p1y != p2y): xinters = (p.y - p1y) * (p2x - p1x) / (p2y - p1y) + p1x if (p1x == p2x or p.x <= xinters): inside = not inside p1x, p1y = p2x, p2y return inside ``` 注意:这个实现仅适用于二维多边形,因为`Point3D`类只包含三维坐标。如果你需要处理三维多边形,你需要修改算法以考虑z轴坐标。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值