APT:Aptos合约开发者笔记:「高性能」标签尚待验证,安全性设计优于EVM公链

笔者是?Meson?团队的智能合约核心工程师,过去几个月一直在高强度的开发Aptos合约。最近两天,终于赶在Aptos主网上线之际,完成了Meson协议在Aptos上的开发,这个过程中还是有挺多感受的。社区的好友和同事就鼓励我把这些经历写下来,希望可以对其他对Aptos感兴趣的人,尤其是技术背景的,带来一些参考价值。

我之前是Web2程序员,技术栈偏向机器学习/Python/C++。上一轮牛市2021年初进入的Web3,不过在牛市结尾的时候才开始静下心来学合约开发,跟着教程学Solidity,做过几个demo合约。当时有个契机,就是封城被隔离在家,什么也做不了,一个多星期的时间没干别的,就仔细读了几篇一线项目的审计报告。读完以后,感觉自己对合约的理解直接升华了,就跟朋友说,以前看合约代码,觉得这不就是小学数学么?但是后来再看,看到的是一个个大坑,以及项目方小心翼翼在坑上面搭好的桥。其实这个过程在后续做Aptos合约上帮助非常大,毕竟很多安全思路是相通的。想想如果当时没有封城,我可能还在区块链的黑暗森林里裸奔。

数据:8亿枚TRX被锁定在未知钱包:金色财经报道,WhaleAlert数据显示,800,000,000枚TRX(64,916,597美元)被锁定在未知钱包。[2023/7/16 10:57:43]

今年七月,看到有文章介绍几个新L1公链后,就决定开始系统学习Rust/Move。这个过程就艰辛一些。当然,也可以调侃的说,学习Aptos只需要三步:学习Rust、学习Move、学习Aptos,过程和“把大象放进冰箱”一样简单。我是从学Rust的第一天就开始头大,每天抱着Rustbook反复看。到Move/Aptos问题就更多了,虽然Aptos基于Move,Move基于Rust,但这三者还是有很大不同,Aptos上有很多利用Move开发出的新框架,这些都得了解。而且,Rust->Move->Aptos这个过程,文档和参考资料指数级递减,我在八月刚开始看Aptos的时候更是如此,文档和教程可以说是少的可怜,万幸的是加入了一些开发者社区,里面的大佬帮我解决了挺多问题。当时还有一个很坑但同时也很搞笑的是,Move这个词太常见了,在Google上搜Move语言相关的问题,什么都搜不出来,反而经常搜出来HowtomovetoCanada。

Equilibrium:6月17日Starknet Pathfinder节点停止同步,隔日已完成修复:6月27日消息,去中心化网络基础设施Equilibrium发文称,2023年6月17日(星期六)发生了一起事件,导致Starknet Pathfinder节点在主网上停止同步,导致整个生态系统中断。修复程序于第二天早上8:30(UTC时间)发布。

根本原因是由于类散列不匹配,Pathfinder无法在主网上同步区块84,448。罪魁祸首是JSON的字符串编码。失败的类包含非ASCII字符,导致最终编码字节不同,因此产生不同的散列。[2023/6/27 22:03:53]

美联储6月维持利率不变的概率为75.9%:金色财经报道,CME美联储观察表示,美联储6月维持利率不变的概率为75.9%,加息25个基点的概率为24.1%;到7月维持利率在当前水平的概率为34.5%,累计加息25个基点的概率为52.4%,累计加息50个基点的概率为13.1%。[2023/6/6 21:17:59]

Move语言的区块链状态图

大概到九月的时候,就开始正式上手写Meson合约了,先把协议的框架搭出来,然后逐步小心翼翼的往里面添加功能:给合约里转入token、锁仓token、设置token解锁条件、验证解锁、转出token给用户。折腾了一个多星期,终于把这个流程跑通了,然后兴奋的上了Devnet,准备用Pontem钱包测试。

然后,Disaster来了!其实了解Aptos的人应该已经发现了,那就是:Aptos的token,根本不是ERC20对应的fungibletoken,而是NFT!可以说,我折腾了一个星期,写了个NFT交易合约……但这东西根本不是我想要的。想想过去一周的熬夜奋战和掉的头发,瞬间觉得NFT卖那么贵也是有道理的,只可惜这些代码我是用不上了,所以欢迎想在Aptos上做NFT的联系我哈哈哈。

DigitDAO金库第二轮预计退还25.6万美金注册费:10月17日,据DigitDAO官方社区信息,本轮快照累积2734个Owner地址共8282个 .bit账户符合提案条件,DAO金库将支出约25.6万美金退还给对应的DAO成员及其邀请的纯数字 .bit账户。同时跨链DID协议 .bit将于18日晚8点开启新一轮注册,所有长度为4位及以上,由纯数字、纯Emoji、纯泰文、纯韩文、纯土耳其文、纯越南文字符构成的 .bit均可注册。

此前报道,9月30日,DigitDAO社区成员2222.bit发起提案,希望能为数字 .bit 账户退还注册费,该提案在10月9日正式通过。DigitDAO将在每周一晚7点进行快照,并在24小时内完成符合条件账户的退款。10月10日第一次快照后共退还 42 万美金注册费。[2022/10/17 17:29:28]

CoinList公布2022年夏季批次种子项目名单,包括Mystiko.Network、TeleportDAO等项目:6月24日消息,CoinList公布2022年夏季批次种子项目名单,共6个项目,其中包括基于Avalanche的期权交易平台Arrow Markets、基于Solana的NFT市场协议Candy Shop、资产跨链协议TeleportDAO、Web3隐私基础设施Mystiko.Network、Web3自动化工具Loop Crypto、音乐NFT平台Decent。[2022/6/24 1:28:39]

开发者社区的朋友如是说到

Aptos上对应ERC20的其实是coin。当时Aptos的文档还没现在这么完善,我下意识的就开始集成token,还奇怪为什么一个普通代币一定需要description这个属性……coin和token的集成方式也有挺大不同,后者用id就可以定位,前者则要用generictype,所以大部分代码都要重构。不过有了之前的经验,Aptos代码也熟练了很多。重新写好后,也顺利的完成了前端集成。虽然只是个MinimalViableContract,但是基本逻辑雏形已经有了,团队里也开始有前端工程师和其他智能合约开发者,一起参与进来协作。当时第一次看到了即将上线的希望,可以说充满了期待和成就感。

接下来我主要的任务就是解决Aptos特性带来的疑难杂症,其中最主要的就是Aptos用的签名算法ED25519和以太坊签名算法ECDSA是不同的。我要实现的协议基于HTLC/AtomicSwap机制,需要保证一个签名可以同时在两边进行验证。这个问题最终也是解决了,不过主要是技术问题,如果大家感兴趣,可以之后再单写一篇文章来讲这里面的技术细节。

Aptos主网上线前的最后一个月,感觉项目方之前的努力,也开始更多的被大家看到。这一个月里,Aptos在极速更新各种功能:命令行客户端的安装,从几个小时的复杂操作,优化到几行简单的指令;中间隔了一周没看浏览器,然后界面就变得好看了很多。不过需要继续补充的点也不少:文档虽然更新的很快,但还有非常多关键的东西需要补充。其实Aptos源码里提供了很多便捷的特性,但这些都没有写在文档里,于是就需要花大量的时间去读Aptos合约框架的源码,错过了就没有机会在别的地方学到,开发过程中很多坑也是这样产生的。

再说说主网上线:第一天宣布上线的时候感觉像是被催着上线的一样,没什么预兆,也没公布Tokenomic,只说了第二天要上几个大交易所,此时所有用户手里都没有APT,免不了一片骂声。不过这阵骂声随着第二天公布的Airdrop完全消失了,然后又是,几个在测试网刷到了空投的朋友们,开始把焦虑传给各个群聊。

作为一个开发者最大的感受就是,大家知道它是“高性能公链”,但是完全不知道更具体的了,也不太知道Move语言和Solidity相比有哪些新的特性,资产安全性做了哪些改善。但其实,这些才是公链长期发展的核心。没发空投的时候很多人宣传TPS最高是4,其实想想也能知道,Web3的新公链做到这个水平就不好意思宣传了;而TPS当时是4的原因是,大家都没有APT,所以主网上没有交易而已。测试网的TPS就远超这个数。至于是否真的更安全,还是需要时间来考量的,黑客出现之前大家永远不知道最严重的bug在哪里。不过我还是从Aptos的技术上看到了不少比EVM公链更好的安全性设计,具体也可以看看Jolestar老师的twitter:

最后想说,过去几个月,成功在Aptos上完成了一个完善的智能合约,并且即将上线主网,内心还是相当有成就感的。感谢这个过程中所有提供过帮助和宝贵建议的朋友们,虽然大部分从未谋面,我也只知道他们的头像多值钱,不过相信有这么一群人,Aptos的发展还是未来可期的。拭目以待吧!

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

地球链

[0:0ms0-0:894ms