智能合约不够安全?微软建专项小组从编程语言入手根治

据外媒报道,微软对外公开其已经成立了一个专门负责提高智能合约安全性的工作小组“Kinakuta”,旨在让行业内共享智能合约信息和协议更加简单。

所谓智能合约,是指基于区块链自动执行命令的代码的合约形式。但由于The DAO等安全事件暴露了该技术还处于早期阶段的现状,不少对区块链抱有希望的人们更多的意识到,如果使用不当时是相当危险的。

不过,微软商业发展和战略主管Marley Gray表示,开放共享的信息和革新的工具或将帮助开发者在未来避免类似错误。Gray称,他已经和纽约初创公司ConsensYs的全球业务发展负责人Andrew Keys达成了合作,并准备邀请以太坊基金、R3CEV和初创公司BlockApps等35家公司进行合作。

Gray称:“我们想要探索能否有可能在最开始编写智能合约的时候就使用一种安全的语言来书写。”

据悉,微软将于本月不久后推出与哈佛大学研究员共同完成的白皮书,并正式发布成立智能合约小组的公告。这本白皮书提出了一种“形式验证”,或者说证明和反证明一个软件程序的正确性,这里指的就是智能合约。

此外,这个白皮书提出了用三种方法验证智能合约的两个工具:

第一种是Solidity*。将一部分Solidity代码翻译为F*——一种能够验证程序是否会正确执行设计的编程语言。然后还有EVM*,它会把智能合约的EVM字节码陈述反编译为Solidity源代码。

第二个工具十分必要,因为为112802个合约中只有396个可以形成Solidity版本的Etherscan(区块链浏览器)代码,因此未来的最佳选择是使用字节码。

尽管Solidity*目前缺少复杂的Solidity功能支持,比如loops,但团队还是成功地从396份智能合约当中破译出46份。通过Solidity*运行这46份合约之后,他们发现当中只有一小部分是“有效的”。

值得注意的是,虽然许多人对于智能合约安全工具的迅猛发展感到兴奋,白皮书总结道:“很明显,经过对已发布合约的大量分析之后,很有可能会发掘出普遍存在的漏洞;我们把这些分析留给未来的工作。”但也有一位行业领导认为,近期而言,开发者们将会继续犯错。

本文作者:温晓桦

本文转自雷锋网禁止二次转载,原文链接

时间: 2024-10-24 09:35:57

智能合约不够安全?微软建专项小组从编程语言入手根治的相关文章

【区块链】Truffle 部署 编译 测试 智能合约 的 完整实践操作

Truffle 部署 编译 测试 智能合约 的 完整实践操作 目标 搭建开发环境 创建一个Truffle项目 编写智能合约 编译转移智能合约 测试智能合约 创建用户界面连接智能合约 在浏览器中访问Dapp 搭建开发环境 Node.js v6+ LTS and npm (comes with Node) Git 这里配置脚本略过.... xiaoyu@LIXIAOYUdeMacBook-Pro.com node -v v8.5.0 xiaoyu@LIXIAOYUdeMacBook-Pro.com

【区块链】DOCKER部署量子链私有网络环境以及部署智能合约实践

DOCKER部署量子链私有网络环境以及部署智能合约实践 安装环境 安装Docker https://store.docker.com/editions/community/docker-ce-desktop-mac 这里安装的是CE的稳定版 xiaoyu@LIXIAOYUdeMacBook-Pro.com docker version Client: Version: 17.09.0-ce API version: 1.32 Go version: go1.8.3 Git commit: afd

五大科技公司觊觎智能眼镜:谷歌微软新战场

如今,随着移动互联技术的快速发展,移动端产品形态延伸出了越来越大的想象空间.在网络悬疑科幻剧<H+>中,描述了2019年的这样一个场景-- 地球上33%人口大脑中植入微芯片H+系统,他们可随时随地访问互联网.也许,仅能在电视剧中才能看到的虚幻场景,在未来的某一天会变成现实,让我们可以 通过身上的移动设备随时跟脑皮层互动. 这从谷歌.微软等科技巨头提前在智能眼镜上的布局,或许可以一窥端倪.下面我们对此进行了简单梳理,让我们看看到底有哪些公司已在蠢蠢欲动,希望抢得先手喝到头杯羹. Google G

如何编写智能合约(Smart Contract)?(II)建立加密代币

接着上一篇如何编写智能合约(Smart Contract)?,本篇文章,我们将写一个简单的加密代币的智能合约来给大家诠释加密代币的原理,当然这篇文章只是告诉你加密代币的原理,存在很多漏洞,不能直接使用. 启动testrpc 打开终端,启动testrpc,相关环境在如何编写智能合约(Smart Contract)?这篇文章里面已经有具体说明. liyuechun:~ yuechunli$ testrpc EthereumJS TestRPC v4.1.3 (ganache-core: 1.1.3)

【智能合约】客户端和web端对智能合约的事件Event进行调用的代码示例

客户端和web端对智能合约的事件Event进行调用的代码示例 web truffle 按官网的例子 http://truffleframework.com/boxes/pet-shop truffle作为一个运行测试框架,用的也是web3对智能合约进行调用. 文件所在的位置src/js/app.js initWeb3: function() { // web3入口 if (typeof web3 !== 'undefined') { App.web3Provider = web3.current

智能合约的性能是否被高估了?

雷锋网按:本文译自fintechranking,原文出自LTP,作者Milos Dunjic,fintech技术顾问,拥有25年支付.电子交易软件系统开发经验,曾就职于加密算法RSA实验室等. 智能合约是安装在区块链网络节点中离散的计算机程序组件,从本质上讲,这些自动合约的工作原理类似于其它计算机程序的if-then语句.当智能合约准备好被部署的时候,代码的哈希值会被计算出来并打上数字签名.单向哈希值,数字签名和代码本身会被同时复制到由参加区块链的节点所组成的网络之中.作为部署流程的一部分,每一

『区块链智能合约』从零构建Ethereum智能合约到实战开发

『区块链智能合约』从零构建Ethereum智能合约到实战开发 为什么说现在学习区块链才是最好的时机? 区块链技术不只是能开发数字货币,不只是能进行ICO.当我分享一些区块链文章的时候,偶尔总会有人艾特我说,春哥,现在国家都不让炒币了,还弄个毛的区块链啊.我一般会很平静的告诉他,数字货币只是区块链落地产品类型之一,严格来讲,交易所关闭,国家不让ICO是好事,大家会发现,现在国家禁止ICO后,币圈瞬间清净多了,我觉得是好事,因为现在暴露了很多打着ICO牌子裸泳的人,只有揭开皇帝的新装,区块链技术才能

如何编写智能合约(Smart Contract)?(III)建立标准代币部落币「BLC」

在上一篇中,我们我们如何编写智能合约?(II) 建立简易的加密代币,但是它存在很多安全问题,在本章中,我们将一步步带领大家创建一个能够放到以太币钱包的加密代币. 创建项目 有别于之前使用truffle init指令来初始化项目,在Truffle推出Boxes功能之后,我们可以直接套用称作react-box的样板,此样板已经整合create-react-app,可以直接用它来开发react web,省下项目设置的时间. liyuechun:BloggerCoin yuechunli$ pwd /U

手把手教你搭建智能合约测试环境、开发、编译、部署以及如何通过JS调用合约方法

如何编写智能合约(Smart Contract)?(I) 完整视频教程 https://v.qq.com/x/page/h0552ba9k8h.html 学习目标 了解智能合约 简单环境搭建 能够利用solidity编写Hello World合约 合约部署 和合约互动 使用solidity语言撰写智能合约 Ethereum上的智能合约需要使用solidity语言来撰写.虽然还有其他能用来撰写智能合约的语言如Serpent(类Python).lll(类Fortran),但目前看到所有公开的智能合约