9月15日,Zeppelin的路线图建议发布。Zeppelin是一种构建安全智能合约的开源架构,遵循MIT许可。该建议的推出正是时候,从DevCon2大会上围绕着智能合约形式验证的报告和讨论的次数上就可以证实这一点。

\\

智能合约解决方案的创建者Demian Brener和Manuel Aráoz是Zeppelin相关工作的先行者。Zeppelin是一个社区驱动项目,目的在于实现安全的、经测试的且经审计的智能合约代码开发。到目前为止最大规模的智能合约应用“DAO”,在今年早期由于在其智能合约中所存在的一个漏洞而被攻击,造成了六千万美元的损失。这个事件说明了社区中的许多关注是合理的,这将形式验证问题置于了一个重要位置。

\\

鉴于以太坊是最广为使用的智能合约开发平台,Zeppelin项目在初期是侧重于为Solidity语言构建工具。在发布的建议中,Brener提及将为Solidity语言构建下列的模块:

\\

\

  • 拉动式支付(Pull payment)辅助模块:使用拉动式支付(起名源于其工作方式与需要发送操作的推动式支付相反)策略可避免许多的安全问题(包括臭名昭著的“DAO被破解”事件)。我们已经具有了简易的PullPaymentCapable.sol合约,但是仍需要更全面的工具、文档和实例。 \\
  • 合约生命周期工具:当前在没有过多考虑未来将会发生什么的情况下,大部分的合约就被部署到区块链中。我们需要构建能更好地去管理合约终结策略、合约属主转变、合约暂停及恢复、合约升级等的工具。 \\
  • 容错和自动挑错奖励:其中包括对漏洞的自动检测、从不一致状态恢复的工具、限定合约所管理资金规模的简易工具。我们也在致力于漏洞奖励合约,并期望去改进该合约,这样可实现自动去支付可攻破我们合约固定部分的安全研究者。 \\
  • 可重用的基础组件:对于每个新的项目,其中的一些通用模块依然是需要从零开发重新实现。我们希望能为代币发行、众筹、表决、投注、工资单、收益共享等构建标准的合约。 \\
  • 探究形式验证理念:合约的形式验证是一个活跃的研究领域。将这些研究工作成果集成到Zeppelin中,可为合约提供有意思的安全保障。形式验证意味着对合约代码做静态分析,以形式上验证合约的正确性以及存在的问题。 \\
  • 与oracle更好的接口:如何与离区块链数据源进行交互是智能合约发展中的一个重要部分。其中一个值得去探究的有意思想法就是做反向控制。这种方式中,oracle通过通用接口方法调用合约(用于在Truth外进行通信),并按所需去实现oracle逻辑,其中包括了值得信赖的专家、关闭的投票、开放投票、API包装器等。这样并非是合约从oracle请求数据,而是在数据发生了改变时由oracle去通知合约。 \\
  • 更好的重用代码工具:当前Solidity的代码重用是基于拷贝-复制的,或是通过从其它的代码库中下载已有的代码。一个成熟的生态系统应具有好的代码库管理系统,就像NodeJS的npm和Ruby的gems这样。对已部署到区块链中代码重用的可能性,构成了以太坊的一个有意思的变体。我们正规划去构建实现将合约轻易链接到已部署的程序库上的工具。\

\\

这些功能模块的设计都是基于通用合约安全模式的。Zeppelin是与以太坊开发者所使用的首要构建架构Truffle相集成的。先期采用者可在Zeppelin开发者协作群组(Slack channel)上提问并追踪进度,也可在BlockParty项目中学习如何使用Zeppelin。首个公共发布版本计划在11月发布,该发布将伴以基于Zeppelin构建的真正的DAO项目。

\\

Zeppelin意图在将来支持更多的区块链平台,其中包括Bitcoin、Tendermint、Bloq Ora等。

\\

查看英文原文:Zeppelin: a Secure Smart Contracts Open-Source Framework for Blockchain Applications

\\


感谢夏雪对本文的审校。

\

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号:InfoQChina)关注我们。

Zeppelin:用于区块链应用的开源安全智能合约架构相关推荐

  1. solidity payable_以太坊区块链搭建与使用(五)-智能合约Solidity

    一.智能合约Solidity开发工具 1.remix-ide http://remix.ethereum.org/ 在线版本,也可以去github下载安装到本地.开发.编译.发布.执行.测试 2.re ...

  2. 区块链学习笔记21——ETH智能合约

    区块链学习笔记21--ETH智能合约 学习视频:北京大学肖臻老师<区块链技术与应用> 笔记参考:北京大学肖臻老师<区块链技术与应用>公开课系列笔记--目录导航页 智能合约简介 ...

  3. 【区块链技术开发】剖析区块链Ganache模拟器工具及其智能合约部署区块链的查询方式

    专栏:[区块链技术开发] 前期文章: [区块链技术开发]基于Web3.js以太坊网络上的智能合约的交互及其应用 [区块链技术开发]OpenZeppelin智能合约库:提高智能合约的安全性和可靠性,加速 ...

  4. SAP云平台,区块链,超级账本和智能合约

    前一篇文章<Hyperledger Fabric on SAP Cloud Platform>,我的同事Aviva已经给大家介绍了基于区块链技术的超级账本(Hyperledger)的一些概 ...

  5. 赛联区块链培训:Web3的核心要素——区块链、加密资产、智能合约和预言机

    在2008年,中本聪发布了比特币白皮书,彻底颠覆了我们对数字化交易的概念,并首次提出了一种无需可信中间方的安全在线交易模式.中本聪写道:"需要基于加密证明,而非信任,来建立电子支付系统.&q ...

  6. 区块链论文7(oyente智能合约漏洞检测工具)

    Making Smart Contracts Smarter 文章路径 参考链接1 参考链接2 参考链接3 Abstract: Cryptocurrencies record transactions ...

  7. 关于区块链、Web3.0、智能合约、DApp、DAO一文解释清楚

    目录 区块链(Block Chain) 概念 使用范围 Web3.0 智能合约(Smart Contract) DApp(Decentralized Application) DAO(Decentra ...

  8. 区块链每日必学:智能合约如何接收以太

    目前来看,智能合约接受以太共有五种可能性: 1. receive() 一个合约最多有一个 receive 函数, 声明函数为: receive() external payable {} 无需 fun ...

  9. 【转】区块链:传统合同和智能合约

    以太坊和其他智能合约平台的兴起,比如Wave和Neo,对大部分比特币的拥护者来说是非常困惑的.在他们错失了巨大收益的同时,新的投资者现在仍然在炒作中获利.现在Rootstock都已经出现了,我想研究& ...

最新文章

  1. MPB:南土所冯有智组-基于微量热曲线的微生物群落代谢特征分析
  2. python使用生成器生成浮点数列表、使用生成器生成(正)负的浮点数列表
  3. c语言约束函数,求解能不能用c或c++语言实现下面的约束条件
  4. 处理多个Python版本和PIP?
  5. “国货之光” 完美日记的微服务实践和优化思路
  6. java 类之间转换,java数据类型之间转换应用方法
  7. php 获取http headers
  8. 红黑树的删除_Python实现红黑树的删除操作
  9. 一篇文章教你如何制作二次元角色建模!
  10. zigbee zstack 串口,按键,消息,定时器
  11. 您的空间不支持PHP,空间不支持fsockopen函数解决办法
  12. Xmemcached学习笔记一(安装memcached)
  13. SQL获取变量类型以及变量最大长度
  14. minGW, cygwin, GnuWin32【C++的跨平台交叉编译问题】
  15. Pandas出现KeyError及其分析解决
  16. unity3d ppsspp模拟器中的post processing shader在unity中使用
  17. 【答题卡识别】基于matlab GUI hough变换答题卡判定与成绩统计(带面板)【含Matlab源码 1017期】
  18. 解决sql插入中文问题
  19. 关于如何使用java,将Office文件转换成PDF格式
  20. Vue router原理

热门文章

  1. 树莓派Raspberry Pi 16G SD卡刷系统时默认空间扩容
  2. 【JOURNAL】《不思八九》 --和友腊八诗一首
  3. Compellent试用手记之二:系统连接
  4. JavaScript中对象数组,如何给对象添加一个新属性
  5. WCF BasicHttpBinding 安全解析(4)windows验证(IIS宿主)
  6. 专家:物联网时代信息安全问题亟待各方携手破题
  7. POJ2762 Going from u to v or from v to u? 强连通+缩点
  8. java内存模型与volatile变量与Atomic的compareAndSet
  9. linux 远程禁用root
  10. lua用于ios开发