2019年12月18日起,我们和WeDEX合作,一起对路印协议3.0、光锥中继、和WeDEX前端做了基于以太坊主网的邀请制测试。从WeDEX的角度,测试的主要目标是改善其网页端DEX产品的功能和用户体验;从路印的角度,测试是为了改进光锥中继对以太坊真实资产交易的处理性能并提升集群的稳定性。
2019年12月18日起,我们和WeDEX合作,一起对路印协议3.0、光锥中继、和WeDEX前端做了基于以太坊主网的邀请制测试。从WeDEX的角度,测试的主要目标是改善其网页端DEX产品的功能和用户体验;从路印的角度,测试是为了改进光锥中继对以太坊真实资产交易的处理性能并提升集群的稳定性。
注:光锥(Lightcone)是路印研发的中继系统,负责在区块链外管理、撮合订单,修改用户账本默克尔树,并通过提交零知识证明到智能合约,确保所有链外系统对用户余额的修改都符合路印协议的规则。光锥中继并不开源,并将在未来做商业化运营。
WeDEX邀请了路印社区中一百多名志愿者参与了测试。多数测试者是通过WeDEX的UI手动下单交易,也有个别参与者使用了光锥还未公开的API下单。同时WeDEX也使用API模拟了高峰时期的用户交易行为,对系统进行了不同程度的压力测试。
第一阶段实测任务已经基本完成。我们想借此机会向以太坊社区分享我们的一些数据,希望能为其他使用零知识证明的开发者和团队提供一些参考。
以下为截止于北京时间2020年1月4日上午10点左右的数据。
光锥中继为WeDEX共发起了14,264笔以太坊交易,其中<span style="font-size: 15px;color: rgb(0, 0, 0);">commitBlock</span>
(数据上链)7102笔,包括充值、提现、和交易清算;<span style="font-size: 15px;color: rgb(0, 0, 0);">verifyBlocks</span>
(零知识证明验证)也是7102笔;<span style="font-size: 15px;color: rgb(0, 0, 0);">distributeWithdrawals</span>
(提现发币)共60笔。
通过这些以太坊交易,光锥中继共为WeDEX撮合了666,746笔交易,处理了1,134笔充值和93笔提现请求。
中继共消耗3,472,724,257gas,实际付出的gas费用为12.27以太,平均gas price为3.532Gwei(超出以太坊平均gasPrice)。其中交易清算消耗了3,334,000,169gas,约11.78个ETH。也就是说,平均每笔交易的清算花费为5,000gas即0.0000177以太。**按照以太坊140美元计算,每笔交易清算的链上成本约为0.0025美元**。该费用仅为目前其他去中心化交易所费用的十分之一或几十分之一。
链上成本主要由数据存储(Data Availability即DA)和零知识证明验证(ZKP)构成。其中零知识证明的成本为60%,数据可用性成本为40%。我们相信后续这个比例将会因为中继对更大块的支持而有较大幅度变化:零知识证明成本占比会越来越小。
虽然路印协议支持最大为1024的块(一个块就是一个批处理单元,对应于一个零知识证明,大小为1024的块中包含1024个交易 ),但目前光锥中继只支持最大为128的块。下图可以看出本阶段测试不同大小块的数量分布情况。
可以看出,虽然目前光锥中继有70%多的概率生成大小为128的块,但依然有很多小块,这些小块中每笔交易的实际成本会更高。
目前每个零知识证明验证的平均成本为291,378gas,按照不同大小的块均摊到每笔交易后,大小为128的块中每笔交易零知识证明成本为2,276gas,而在大小为1的块中的那笔交易的零知识证明成本则高达29万多gas,是前者的128倍。
理论上路印协议每笔清算的总费用最低为385gas。虽然达到这个目标的很多条件都需要非常理想化,但目前平均每笔花费5000gas还是太高。光锥中继的优化还有很大的空间。注:上述链上数据几乎完全受限于光锥中继现阶段的性能;路印协议的吞吐量在测试阶段只用到了理论上限的500分之一左右。
我们使用了AWS香港的服务器来生成零知识证明。由于在测试阶段尝试过不同的机型,因此测试期间链外的成本计算不是很准确。我们预估测试期间实际每笔交易的零知识证明平均费用在0.0025美金左右。
AWS香港的服务器相对较贵。以m5.4xlarge机型为例,AWS香港收费为每小时1.056美金。我们可以通过使用其他数据中心的服务器来降低成本,比如:
AWS宁夏:每小时0.786美金
AWS弗吉尼亚:每小时0.768美金
Digital Ocean:每小时0.47美金
Google Cloud:每小时0.76美金
阿里云:每小时0.405美金
因此后续零知识证明每笔交易的平均成本应该可以控制在0.0015美分左右。
本轮测试阶段每笔交易的平均成本约为0.005美元。我们希望几个月后将每笔交易的清算总成本降低一半到0.0025美元。
下星期我们将和WeDEX一起,迫使WeDEX的第一个合约WeDEX Beta1(<span style="font-size: 15px;color: rgb(0, 0, 0);">0x7d3d221a8d8abdd868e8e88811ffaf033e68e108</span>
)进入提现模式(Withdrawal Mode)。我们会测试在该模式下,所有用户的资产都可以通过默克尔证明(Merkle Proofs)顺利取出。同时我们会为WeDEX生成第二个合约WeDEX Beta2,并在该合约上继续进行正常模式下更多的测试。在两个合约切换的过程中,WeDEX的产品可能在短时间内不可用。
WeDEX Beta2将基于路印协议的最新版本: Loopring3.1.1。该版本唯一的改动是将LRC在协议中的直接燃烧改为将LRC转入协议手续费地址(Protocol Fee Vault),用以奖励LRC质押用户。这意味着WeDEX Beta2合约将立即为质押用户提供22.5万LRC作为奖励;三月份合包交易所(https://hebao.io)上线还会为质押用户再提供22.5万LRC作为奖励。按照目前质押的2160万LRC计算,**2020年三月份的LRC质押回报就会超过2%**。提现模式测试也会将部分交易所质押的LRC扣除,作为奖励给普通的LRC质押用户。正常交易收取的协议手续费(目前从maker收取交易额的万分之二,从taker收取交易额的万分之四)将会是一个长期更为稳健的质押收益。
1. 目前中继的吞吐量依然离目标200TPS有一定距离。其中一个原因是对默克尔树的修改还没有完成并行化改造。我们已经有了相对成熟的方案,预计能很快完成编码和测试。幸好对默克尔树的修改是个异步过程,因此这个瓶颈只有在系统长时间大压力的情况下才会表现出来。
2. 中继API的设计有待改善,文档也需要准备起来。我们希望能在三月份公开第一个版本的中继API和文档。
3. 光锥中继要很快支持大小为256、512、和1024的块;同时要优化去尽量避免生成小块来节约链上的平均成本。
4. 同样类型块(比如都是充值的块)的零知识证明可以放到一起打包验证,进而降低成本。
5. 尝试把生成零知识证明的工作放到更便宜的数据中心,进一步降低成本。
目前在没有交易浏览器的情况下,普通用户很难通过链上数据来恢复交易历史和账户余额。我们已经在加紧开发这样一款工具。我们期望路印的交易浏览器可以在2020年第一季度内测,第二季度正式上线。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!