技术解析 WebAssembly 智能合约特点与安全性_ASS:WAS

智能合约开发语?已经被Solidity统治了很?一段时间,?于开发可以在以太坊虚拟机EVM上运?的智能合约。不过,Solidity有?些严重的问题,包括算术溢出、类型错误以及曾经冻结了3亿美元的delegatecall漏洞。所有这些漏洞都是在开发语?层?存在的问题。换句话说,如果有?个更优越的开发语?,本应该创造出更安全的智能合约。因此,WebAssembly智能合约应运而生,知道创宇区块链安全实验室从技术安全的角度,带你快速探析备受欢迎的WebAssembly智能合约。什么是WebAssembly智能合约?

WebAssembly是?种为栈式虚拟机设计的?进制指令集。WASM被设计为可供类似C/C++/Rust等?级语?的平台编译?标。最初设计?的是解决JavaScript的性能问题。WASM是由W3C牵头正在推进的Web标准,并得到了?歌、微软和Mozilla等浏览器?商的?持。

美SEC主席:使用抵押协议的代币可被视为证券:金色财经报道,美国证券交易委员会主席 Gary Gensler 周三向记者建议,根据美国法律,使用抵押协议的代币可被视为证券。 Gensler 说“投资大众正在投资预期回报,期待这些代币的某些东西,无论它们是权益证明代币,他们还希望获得这些权益证明代币的回报并获得 2%,4 %,18% 的回报率。”

Gensler 在被问及对商品期货交易委员会主席 Rostin Behnam 上周发表的声明有何反应后发表了上述言论,他重申了自己及其机构的信念,即以太坊是一种商品。在委员会投票推进三项拟议规则后,Gensler 对记者发表了讲话,这些规则旨在加强证券行业的网络安全、消费者隐私和系统标准,包括一些涉及数字资产的公司。[2023/3/16 13:06:55]

WASM具有运??效、内存安全、?未定义?为和平?等特点,经过了编译器和标准化团队多年耕耘,?前已经有了成熟的社区。在区块链领域,包括本体在内,当前已经有?些公链项?正准备?持使?WASM来运?智能合约。

CoinShares、21Shares和VanEck均已暂停FTX相关交易产品:11月16日消息,CoinShares、21Shares和VanEck三家基金巨头均宣布暂停 FTX 相关交易产品(ETP),包括 VanEck FTX Token ETN(VFTX)、21Shares FTX Token ETP(AFTT),以及CoinShares FTX Physical FTX Token(CFTT)。[2022/11/16 13:13:37]

WebAssembly简要来说有以下三个特点:?进制格式,不同于JavaScript代码的?本格式标准化,与JavaScript?样,实现了WebAssembly标准的引擎都可以运?WebAssembly,不管是在服务器端还是浏览器端快速,WebAssembly可以充分发挥硬件的能?,以后你甚?可以在WebAssembly中使?SIMD或直接与GPU交互当前的以太坊虚拟机按顺序处理交易。以太坊?络上的每个节点执?交易并将其存储在区块链上。为了允许通过分?进?PoS和并?交易处理,以太坊团队计划构建?个名为eWASM的新虚拟机。根据eWASM的规范:「要真正使以太坊作为世界计算机,我们需要有?个?常?性能的虚拟机。当前的虚拟机体系结构是原始性能的最?阻碍因素之?。WebAssembly的?标是利?各种平台上可?的通?硬件功能,以接近本机速度执?。这将为需要性能/吞吐量的各种?途打开??。」值得注意的是,eWASM不是?个智能合约开发语?,?是?个编译器的?成?标,它允许以太坊开发者使?其他语?开发智能合约并编译为以太坊接受的WebAssembly。eWASM是WebAssembly的?个安全?集,它是web平台上相对新出现的编译?标。?便的是,WASM模块可以在任何JavaScript项?中使?。对于?多数dApp应?代码来说,通常75%以上的代码根本都不是智能合约——?是使?JavaScript与智能合约进?通信的代码。ewasm和JavaScript使?同样的绑定和模块?持机制。为什么选择Rust构建WebAssembly?

Poloniex和Bittrex要求美国律师事务所Roche Freedman从集体诉讼案中退出:9月3日消息,Poloniex 和 Bittrex 要求美国律师事务所 Roche Freedman 从对其的集体诉讼案中退出。

此前报道,Tether 已要求美国律师事务所 Roche Freedman 从相关集体诉讼案中退出。8 月底,Roche Freedman 创始合伙人 Kyle Roche 提出数起集体诉讼,诉讼对象包括 Tether 和 Bitfinex、Tron、BitMEX 和 Binance。(the block)[2022/9/3 13:06:22]

随着2017年底,四?浏览器?商全部完成对WebAssembly的初步实现,以及Webpackimplementingfifirst-classsupportforWebAssembly的消息公布,越来越多的团队在实现需求的时候将WebAssembly作为备选技术之?考虑。Rust作为语?是?种?效、可靠的通??级语?。其?效不仅限于开发效率,它的执?效率也是令?称赞的,是?种少有的兼顾开发效率和执?效率的语?。Rust速度惊?且内存利?率极?。由于没有运?时和垃圾回收,它能够胜任对性能要求特别?的服务,可以在嵌?式设备上运?,还能轻松和其他语?集成。在探讨WASM在智能合约领域的巨?潜?时,前?提到WASM的??优势就是?持有影响?的新锐编程语?,例如Rust。使?Rust编写WASM具有如下优势:可预?的性能没有难以预料的GC暂停,也没有JIT编译器造成性能抖动,只有底层控制与上层?体?程学的完美结合。更?的代码代码尺?越?,??加载速度就越快。Rust?成的wasm模块不含类似于垃圾回收器这样的额外成本。?级优化和TreeShaking优化可移除??代码。?态友好充满活?的库?态系统助您旗开得胜。Rust拥有丰富的表达能?和零成本的抽象,以及助?您学习的友好社区。Rust编译器?前?持两个wasm关联的?标(target):wasm32-unknown-unknown。此?标直接使?llvm后端编译成wasm。它适合纯rust代码编译,譬如你没有C依赖的时候。跟emscripten?标?起来,它默认就?成更加洗练的代码,?且也便于设置搭建。wasm32-unknown-emscripten。此?标利?emscripten?具链编译成wasm。当你具有C依赖的时候就得使?它了,包括libc。wasm32-unknown-unknown?分有望将新?的Rust代码融?JS项?中。Rust&WebAssembly(WASM)安全

Coinbase:正在调查Filecoin存款延迟问题:7月8日消息,加密货币交易所Coinbase表示,正在调查Filecoin存款延迟问题。[2022/7/8 2:00:44]

Rust被证明是可?于?型的、拥有不同层次系统编程知识的开发者团队间协作的?效?具。底层代码中容易出现种种隐晦的BUG,在其他编程语?中,只能通过?量的测试和经验丰富的开发者细?的代码评审来捕获它们。在Rust中,编译器充当了守?员的??,它拒绝编译存在这些难以捕获的BUG的代码,这其中包括并发BUG。使?Rust构建的区块链项?上,Libra可以说知名度最?,在实现语?上,Libra(已更名为Diem)项?选择了?个?常?众但宣称安全性突出的语?RUST。然?,宣称的安全不表示实际上的安全。过于?众的语?往往缺乏?时间的锤炼,导致隐藏的问题较多。再安全的语?也?法确保实现的安全,漏洞常常来?代码实现过程,来?于?。RUST社区也在讨论随机数?成函数的安全升级。所以RUST语?虽然具有安全的特?,但是并不完美,不排除有可能成为Libra项?的阿喀琉斯之踵。最后,过于依赖RUST语?有可能带来单?性依赖问题,如果RUST语?出现安全问题,则会波及整个Libra系统,这?点可能需要时间来解决,毕竟Libra出现时间尚短,需要时间来实现必要的多样化部署。虽然Rust在编译时会强制执?的内存安全保证。然?,Rust还隐藏有第?种语?,它不会强制执?这类内存安全保证:这被称为不安全Rust。它与常规Rust代码?异,但是会提供额外的超级?量。??说有?个u8,它可以存放从零到255的值。那么当你将其修改为256时会发?什么呢?这被称为「整型溢出」,关于这??为Rust有?些有趣的规则。当在debug模式编译时,Rust检查这类问题并使程序panic,这个术语被Rust?来表明程序因错误?退出。

Celsius钱包转出6.7万枚ETH:金色财经报道,据PeckShield监测,被Etherscan标记为Celsius Network: Wallet 11 的地址(0x8ace...130ee8)从Aave和Compound中分别撤回了3万和3.7 万枚以太坊,并将该6.7万枚以太坊转入0xef22开头的地址中。此前消息,Celsius解雇约150名员工,占其总员工数量的约1/4。[2022/7/4 1:50:19]

在release构建中,Rust不检测溢出,相反会进??种被称为?进制补码包装的操作。简??之,256变成0,257变成1,依此类推。

近?年,Rust语?以极快的增?速度获得了?量关注。其特点是在保证?安全性的同时,获得不输C++/C++的性能,让系统编程领域难得的出现了充满希望的新选择。在Rust被很多项?使?以后,其实际安全性表现到底如何呢?前?有?篇专?针对Rust安全的研究成果,针对近?年使?Rust语?的开源项?中的安全缺陷进?了全?的调查。这项研究调查了5个使?Rust语?开发的软件系统,5个被?泛使?的Rust库,以及两个漏洞数据库。调查总共涉及了850处unsafe代码使?、70个内存安全缺陷、100个线程安全缺陷。不安全Rust之所以存在,是因为静态分析本质上是保守的。当编译器尝试确定?段代码是否?持某个保证时,拒绝?些有效的程序?接受?效程序要好?些。这必然意味着有时代码可能是合法的,但是Rust不这么认为!在这种情况下,可以使?不安全代码告诉编译器,「相信我,我知道我在?什么。」这么做的缺点就是你只能靠??了:如果不安全代码出错了,?如解引?空指针,可能会导致不安全的内存使?。另?个Rust存在不安全??的原因是:底层计算机硬件固有的不安全性。如果Rust不允许进?不安全操作,那么有些任务则根本完成不了。Rust需要能够进?像直接与操作系统交互,甚?于编写你??的操作系统这样的底层系统编程!总结

不安全的Rust直接影响了以Rust构建的WASM智能合约的安全性,例如可能的整数溢出,导致转账?额前后出现巨?偏差等。好在编译器充当了守?员的??,它拒绝编译存在这些难以捕获的BUG甚?是安全性的代码。

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

金智博客

[0:0ms0-3:746ms