TEC:为何zkSync总是“宕机”?一文探讨zkSync Workflow_zksync币与zks币

看有朋友吐槽zkSync总是宕机,其实称“宕机”略微言过其辞了,准确说是“出块不稳定”。 本质上是,Sequencer提交的交易,最终Verified的时间不稳定,但用户在交互端感知并不明显,因为zkSync的Verify设计就存在确认滞后性。 未来去中心化阶段不稳定性会得到缓解。我画了个workflow和大家探讨下。

之所以有用户感知“宕机”,可能是某些DApp和链底层兼容性导致的交易失败问题,毕竟在zkSync上开发DApp本身挑战就很大。 我从官方浏览器观察Commit到Verified的Status改变大致需要30min-1小时左右,而用户端交互DApp几乎不受此影响。 此文重点在科普zkSync的技术底层逻辑,带大家清晰地认识zkSync。

律师Jeremy Hogan:SEC过去曾称XRP为数字货币,必须在法庭上解释为何现在不予支持:4月6日消息,霍根律师事务所的合伙人杰里米·霍根(Jeremy Hogan)曾在Twitter上表示,2016年美国证券交易委员会(SEC)提到了Ripple以“数字货币公司”的身份进行文件研究。

现在,SEC将不得不向法官澄清其如何转变为“数字安全”公司。(U.today)[2021/4/6 19:51:39]

如workflow所示,zkSync运行分以下步骤:

1)User通过relay转发向Sequencer排序器发送批量交易;

动态 | 李启威连发数十条推文释疑:为何看起来Litecoin Core在GitHub没有更新:刚刚莱特币创始李启威连发数十条推文,介绍了莱特币的代码更新情况和开发进展。他表示在8年来,只有少于开发人员致力于Litecoin Core。Adrian Gallagher目前正在领导Litecoin Core的开发,并且已经进行了几年,大家可能不太了解Adrian,因为他不在推特上,但他很棒,他正在悄悄地做Litecoin Core开发的幕后工作。

最近有很多人质疑莱特币在2019年没有更新任何代码,从GitHub上看似乎这样,但这里有两个原因:第一个是莱特币的更新要比比特币滞后几个月,我们发布了几个月前在比特币中发布的代码,这些代码是在2018年编写的。GitHub的有趣之处在于,它使提交的时间保持不变,不管是谁写的,还是什么时候提交到代码库的。因此,比特币开发者因在莱特币代码库中的工作而受到好评。这就会让人看起来,尽管在2019年5月开发并发布了最新的Litecoin Core,但在GitHub你会发现大多数提交都是在2018年完成的。第二个原因是我们没有在主要项目的主分支上工作,将非发布代码签入主分支通常不是好的开发实践。事实上,Adrian一直在他的个人分支上积极地开发Litecoin核心版本0.18.1。

以上是Litecoin Core开发多年来的运作方式,我们去年甚至遇到了用户相同的担忧,有人去年看了我们的主分支工作并声称Litecoin在2018年停止了开发。我打即使在这个解释之后,我们也会在2020年让人感到困惑。

另外,李启威还表示Litecoin Foundation的目的有两个方面:致力于LTC的推广和开发。“在过去的几个月里,我认为一直认为推广比开发更重要,但从长远来看,这两者同样重要。我会努力与社区进行更好的沟通,并提供更频繁的消息同步。”[2019/8/11]

2)Sequencer负责对交易进行排序、聚合打包batch成Merkle树;

韩国金融消费院:政府为何不对自己的无能进行反省反而打压加密货币市场:7日,韩国金融消费院表示很难理解为什么政府没有对加密货币政策的失败或自己的无能进行反省,反而一直在用权利打压加密货币市场。[2018/3/7]

3)zkPorter将Merkle树生成zk-SNARK证明; 

4)zk-SNARK证明分别relay给L2的Validators和L1 主链生成 Commit Hash

5)Validator负责验证zk-SNARK证明的正确性,无误后提交给L1智能合约生成Verify Hash; 

6)L1上的zkSync智能合约校验Commit Hash 和Verify Hash的匹配性; 

7)成功匹配后生成Verified Transaction交易最终上链; 

8)若匹配失败,原来的Commit Hash作废,由Sequencer重新提交batch再走一遍流程。

这里需要强调下,zkSync采用了“二阶段提交(2PC)”,通过前后Commit Hash 和Verify Hash两个阶段的Hash校验最终确定合法交易批次。 这样做一方面可以确保系统运转流程中的数据一致性安全,我个人理解,也是一种让Sequencer和Validator两个系统组件互相约束的去中心化思想显现,值得点赞。

zkSync的Workflow主要有Relay、Sequencer、zkPorter、Validator四大角色,协调工作中会存在诸多“不稳定因素”。 可概括为节点职能稳定性,节点协作稳定性,及算法和底层协议复杂性等。任一环节出现差错,都可能导致出块延迟。常见的 Arbitrum Sequencer技术故障就是典型,zkSync面临的挑战只会更多。

至于算法复杂性,这是zkSync链的天命所归,需要生态开发者们铆足劲去克服。而节点智能和协作的稳定性,我觉得未来去中心化阶段到来后,会得到有效改善。逻辑也简单:

1)多分布式节点,可避免单点故障带来的网络不稳定,系统鲁棒性使然;

2)分布式通证激励机制可给开发者维护节点稳定提供源动力。

换个角度思考,Verifing时间长在生态初期并非问题,可以有效提升链的安全性,避免系统中若干节点作恶。 总之,若厘清zkSync的整个运营流程,进一步了解下layer 2的技术复杂性和其中为安全性所设计的“特殊”机制,能巩固对L2技术赛道的信心。 欢迎大家转发分享,随时DM我,一起深入交流学习zkSync。

链上观

个人专栏

阅读更多

金色早8点

Odaily星球日报

金色财经

Block unicorn

DAOrayaki

曼昆区块链法律

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

区块博客

[0:0ms0-7:211ms