Nolan:智能合约语言不需要数字资产编程外的功能

admin 2023年5月30日13:15:05评论17 views字数 2099阅读6分59秒阅读模式

近日,由 Sui 基金会,Tencent Cloud,Numen Cyber 联合主办,Suiet,Somis,Souffl3 提供支持的 Sui 生态工作坊及交流会顺利于香港举行。


Numen Cyber 联合创始人兼首席安全研究员 Nolan Wang 参与交流会,并以 Move 安全性为主题,从现有智能合约语言与 Move 语言对比,Move 语言的特点与优势,Move 智能合约漏洞类型分析梳理等角度进行了分享。


Nolan:智能合约语言不需要数字资产编程外的功能



智能合约语言不需要数字资产编程外的功能

智能合约是保障区块链安全运行的重要组件之一,一般有两种实现形式。
一是使用既有编程语言并通过虚拟机运行,二是通过从头构建新的编程语言和虚拟机实现。

但又因智能合约与传统项目有着截然不同特点,即智能合约是一个狭窄的任务集,需要的是少量且趋于完美的代码,以保证背后资金的安全性,传统语言(JavaScript,Python,Rust,WASM 等)与智能合约的适配性并不是很好。


那什么优良的智能合约该是什么样子的呢?Nolan 给出了他的答案:智能合约语言需要自定义资产、所有权、访问控制的安全抽象等功能,不需要超越数字资产变成范围之外的功能。

Move 虽然是较为年轻的编程语言,但也是目前最适用于智能合约的语言之一。

Nolan 将行业内同样流行的 Solidity 语言和 Move 语言进行了对比。

Nolan:智能合约语言不需要数字资产编程外的功能

可以看出 Solidity 的对象抽象能力有限(由于并不丰富的原始数据类型,以及
对结构体对象没有良好的支持),更多时候是面向过程来去编写合约功能。

而 Move 是专注于资产和权限控制的区块链编程语言,并且对象抽象能力强,强调安全性和正确性,采用资源导向的设计,资产可以作为对象来相互转移,并不像 Solidity 的资产,必须是与账户强绑定的关系。


Move 是真正的 Game Changer

如果回顾 Move 的历史,可知 Move 最早是为 Meta(Facebook)的 Diem 项目开发,据说当时没有一种语言具备稀缺性、确定性和可验证性的特性,于是 Move 诞生了。


作为基于 Rust 的编程语言,Move 是最早的关于如何设计语言以适应类型系统、静态类型和编译时检查等问题的语言。


又因 Diem 的项目定位,Move 着重强调安全性,能够提供是代码验证器和 VM 级别的保护。


Nolan 表示,通过字节码验证,Move prover,资源抽象,线性类型系统等设置,Move 语言获得了大幅度安全性的提升。


Nolan:智能合约语言不需要数字资产编程外的功能


同时,Nolan 在研究中得出了关于 Move 语言的7个特点,分别是:


1.没有动态调用(no re-entrancy);

2.不会混淆变量别名和可变/不可变性(借鉴 Rust 语言特性);

3.强制类型/内存/资源安全(通过字节码校验);

4.不存在整数溢出漏洞;

5.Move Prover 形式化验证确保合约的安全;

6.没有 modifier;

7.通过线性逻辑语义来自定义资源类型:资源永远不能被复制或式删除,只能移动。


在 Nolan 看来,Move 是真正的 Game Changer,是面向真实数字资产的程序语言(RDAO Real Digital Assets Oriented Program Language)。



没有绝对安全的语言

在分享了 Move 语言的特点与优势后,Nolan 分享了两个由 Numen 检测到的关于 Aptos MoveVM 的整数溢出漏洞。


MoveVM 和 EVM 虚拟机一样,都是把源代码编译成字节码,然后在虚拟机中执行。


其中一个漏洞出现在 Move 执行模块中,对于链上节点而言,如果执行字节码代码,将引发 DoS 攻击,严重时可导致 Aptos 网络完全停止,窃取资产,造成不可估量的损失,严重影响节点的稳定性(点击查看)


第二个漏洞发生在 reference_safety,Move 语言在执行字节码之前会验证代码单元的4个步骤之中(点击查看)


Numen 在发现两个漏洞后第一时间报告给了官方,目前两个漏洞皆已修复。


Nolan:智能合约语言不需要数字资产编程外的功能

Nolan 列举的 Move 合约部分漏洞


Nolan 总结道,“综合上述漏洞的客观存在,我们可以看到在今天的数字世界中,并不存在绝对安全的语言。每个创新技术都伴随着新的安全威胁,在 Web3 世界尤甚。我们必须做更多的安全打算来保护我们的数字资产和隐私。"





关于 Nolan Wang

Numen Cyber 联合创始人兼首席安全研究员,曾任职华为、奇虎360做安全研究,在 ISC2018、腾讯 CSS2019 等安全大会担任分享嘉宾。善于漏洞挖掘,安全技术研究,发现过 Windows,iOS/macOS 等系统漏洞,浏览器 以及 L1,smartcontract 等 web3 漏洞在内的众多漏洞。

Nolan:智能合约语言不需要数字资产编程外的功能

Numen 官网
https://numencyber.com/ 
GitHub
https://github.com/NumenCyber
Twitter
https://twitter.com/@numencyber
Medium
https://medium.com/@numencyberlabs
LinkedIn
https://www.linkedin.com/company/numencyber/



END

原文始发于微信公众号(Numen Cyber Labs):Nolan:智能合约语言不需要数字资产编程外的功能

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年5月30日13:15:05
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  Nolan:智能合约语言不需要数字资产编程外的功能 http://cn-sec.com/archives/1772203.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: