区块见闻 区块见闻
Ctrl+D收藏区块见闻

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

作者:

时间:

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

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

今年七月,看到有文章介绍几个新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。

Move语言的区块链状态图

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

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

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

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的发展还是未来可期的。拭目以待吧!

标签:APTAptosTOSMOVaptos币怎么公募STOSMOVX价格

欧易交易所app官网下载热门资讯
EVMOS:Evmos只是起点?Cevmos如何引爆Cosmos的可扩展性_CMOS

Evmos的Rektdrop空投为Cosmos生态创造了足够的热度。社区也开始越来越频繁地讨论Evmos生态,在这些讨论中,一个关于「Cevmos」的话题格外受到关注,被许多技术大咖称为即将引爆.

CEL:分享5个必备的加密分析工具_ECELL币

传统行业中最有技术含量的分析工具也有其局限性。为什么呢?原因很简单,数据是专有的。无论是来自华尔街季度报告的数据集,还是你从Facebook上提取的数据,这些都是公司想要披露的数据.

VER:ENSEverywhere:在L2购买、交易和桥接ENS域名_GAMINGSHIBA

DeFi市场迅猛发展,促使越来越多的交易活动转至L2,但ENS并未随之转移。目前,用户无法在L2上注册和交易ENS域名,其必须继续支付L1的Gas费才能与ENS交互.

TOS:对话 BendDAO:流动性危机,回顾与反思_Aptos

一个多月前,因无聊猿地板价持续下跌,直接触发列出无聊猿数量最多的NFT抵押借贷协议BendDAO的系列清算.

BEND:以太坊质押时代到来,开发者机遇何在?_NFTshootout

距离以太坊执行层与共识层合并升级已经过去了一个月,新的共识机制PoS也已经取代旧的PoW机制运行了一个月.

REMIX:收割“科学家”?——套利机器人陷阱_REMIX

套利机器人,又称三明治机器人或夹子机器人,它可以实时检测Pancake或uniswap上面所有的交易,发现一定金额以上的交易时,会通过提高Gas费在购买者之前提前买入.