zeppelinOS的技术细节

in #cn7 years ago

zeppelinOS的技术细节

原文链接: https://blog.zeppelin.solutions/technical-details-of-zeppelinos-d3cf4da591f7

上周, 我们发布了 zeppelinOS介绍: 智能合约应用的操作系统 .

我们强调,“开发人员为确保基本可用性和安全性而必须做出的手动和重复性努力,限制了创新性地开发DApp的速度”。

zeppelinOS旨在解决这个问题。 根据我们在保护数十个项目的经验,我们正在EVM之上构建开源,分布式的工具和服务平台,帮助开发人员快速部署,升级和管理安全的智能合约。

我们将操作系统的功能分为4类服务:

  • zeppelinOS内核标准库,
  • 智能合约开发工具,
  • 智能合约交互工具,
  • 链下工具。

我们来具体看下这些服务。

内核标准库

内核是zeppelinOS的基础层:一套可升级的标准库,提供开发人员可以在其智能合约中调用的常用功能和服务。

通用功能

zeppelinOS内核的目标是为在其上运行的智能合约提供一组函数,从操作系统请求服务,而不是重新实现。
受OpenZeppelin的启发,这些链上标准库将作为可重用的合约和函数,并且和OpenZeppelin保持相同的安全标准。

这些库将使开发人员能够执行以下操作(以及更多):

  • 创建和自定义您自己的ERC20代币。
  • 创建一个有上限的,可退还资金的, 和/或列入白名单的众筹合约。
  • 创建一个无需信任的漏洞发现奖励合约。
  • 创建可暂停的,具有所有者和余额受限的合约。
  • 支持设置代币解冻或代币锁定合约。

安全补丁和持续改进

作为智能合约与区块链之间通信的安全基础层,我们开放了为用户提供可选升级的可能性。这使得ZeppelinOS核心开发人员在发现漏洞后立即推出可选的安全补丁,立即保护所有用户的操作系统中的智能合约。通过相同的机制,zeppelinOS将始终处于持续发展状态和改进:操作系统将根据代理库模式进行升级,这是通过与Aragon团队的实验开发的。

这是它的工作原理:用户将被激励审查补丁并保证其正确性。这是必要的,以避免在不受社区控制的情况下单方升级(即更改)所有合约的可能性,同时提供在多数承认的关键安全问题的情况下快速响应的机制。鉴于在智能合约范围内升级的敏感性,我们将使开发人员能够在每个合约基础上自动升级和手动启动。

共享的漏洞发现奖励

漏洞发现奖励已经成为智能合约开发的标准做法,作为吸引审计师检查关键代码的一种手段。通过在应用程序之间共享一层代码,OS的用户可以在共同的关键内核模块上放置集体奖励。这将由一个去中心的治理奖励汇集机制来实施,这将在未来的一篇文章中加以解释。以这种方式,安全研究人员被激励以成本效益的方式来查看代码。这不需要每个智能合约开发商单独支付大奖,或让自己的研究人员对代码进行审核。

合约开发

除了一套共同的库,OS还将提供旨在为开发人员轻松开发和维护智能合同的工具。

攻击管理

经验表明,错误总是存在于代码库中。随着智能合约变得越来越复杂,出现错误的可能性越来越大,成为更有吸引力的攻击目标。
zeppelinOS将提供一个应急工具箱来处理攻击。我们一直在努力的一些工具,包括: 触发紧急暂停,恢复到以前的状态, 分叉一个合约。这项工作是OpenZeppelin的一部分,我们将继续改进操作系统。

升级管理

除了对zeppelinOS内核进行升级之外,基础实施将会提供给操作系统的用户,以实现自己的智能合约的可升级性。这允许使用开发人员认为合适的更新治理机制来推出特定于合约的安全补丁以及功能的逐渐部署。

精简部署

通过代理使用链上库,而不是重复地包括常见的字节码,部署规模更小,成本更低。这也将导致改进的智能合约开发经验。

智能合约交互工具

zeppelinOS的关键之一是提供共享环境,DApp可以轻松地进行互动和交换服务。这类似于操作系统,流程可以通过发送和接收消息进行合作,利用共享服务生态系统的力量。操作系统将为合约间通信和网络提供各种机制,如发布订阅消息,消息队列和共享存储。这将使DApp开发人员能够即插即用的第三方构建块,如IFTTT配方的智能合约。

调度

合约代码执行是同步和线性的,允许调用其他合约但限制在单个执行线程的可能性。为了支持更复杂的操作,应用程序需要离线基础设施。

作为支持更丰富的执行模型的手段,操作系统将提供一个智能合约异步执行调度程序,其中不同方可以提供执行异步操作,并安全地回调合约以恢复其操作。

异步执行有助于解决Ethereum执行模型的固有问题:由智能合约跨越多个操作的事务由启动它的用户支付。例如,由多重签名hy 保护的函数执行完全由最后一个用户批准。通过允许任何其他人执行该函数以换取赏金,我们可以将请求操作的用户与支付其gas花费的用户分离。

操作系统将定义所需的标准,并为调度客户端和提供者提供参考实现。

市场

就像传统的移动应用程序市场作为移动用户浏览和购买可用服务的中心枢纽,zeppelinOS的核心特征之一是合约市场,其中可以购买,出售和集成到app中。

开发商将能够在市场上注册新的服务,这将被客户端智能合约发现和访问。我们设想了多种支付模式,例如每次通话费用,一次性费用或固定时间段的订阅,所有这些都可以通过普通支付接口进行管理。

这不仅是促进智能合约之间协作的核心关键,也是允许合约进行链下交互的一种方式。市场中的app可以是链上链下实现之间的组合,提供诸如文件存储,邮件发送,推送通知,离线密集型计算或机器学习服务之类的服务。

状态通道支持

区块链交易受到挖矿时间和费用的限制。这导致了替代链下交易协议的发展,可以在多个操作之后被整合回到区块链。状态通道是专门针对EVM设计的其中一种建议。
操作系统将通过通用协议规范和参考实现,加上状态通道的发现,结合状态通道来支持仲裁和完成所需的所有在线基础架构。除了提供更便宜的通信机制外,这也为平台上的链下支付网络整合打开了大门。

区块链信息提供者

操作系统将提供可信赖的方式来访问当前无法从智能合约中获取的块的信息,例如当前ETH价格,gas价格,交易池大小,平均采矿块时间等。这将作为oracle提供更新信息请求或作为对可靠外部源持续更新的内核契约的调用。

链下工具

作为zeppelinOS提供的在线服务的补充,该平台将提供一套旨在简化分散式应用程序的开发,调试,测试,部署和监控的脱机工具。

分析和监控

合约交易和事件对部署的应用程序的使用提供了宝贵的见解,类似于在网页上执行的最终用户操作和事件。操作系统将提供一个脱机分析仪表板来聚合链上生成的合约事件和交易,以了解其使用情况。它还将通过记录事务错误率和故障相关事件来帮助监控每个合约的健康状况,通过用户定义的规则触发警报。

平台即服务

目前的主要挑战之一不在于合约开发本身,而是在代码准备就绪后的部署和管理阶段。操作系统将提供一个易于使用的界面,包括:

  • 触发合约的自动化测试和安全分析。
  • 将合约部署到区块链,并可选择管理升级。
  • 提供用户友好的Web界面,用于读取数据,并在部署后管理合约。
  • 通过基础设施提供商(如Infura)为以太坊Ethereum网络提供安全可靠的连接。
    平台即服务方法还包括作为与其他合约集成的一站式平台,为发现和管理市场提供的服务提供用户界面。

持续整合合约

通过持续整合提供商进行的自动化测试已经成为行业标准,通过在每个开发阶段的单独环境中检查其测试来增加对项目健康的信心。然而,这需要具有与生产相似的条件的测试环境。因此,zeppelinOS应提供所需的服务,包括使用更新的代码库重播以前的交易以比较生成的结果。

自动代码分析

静态分析是学术界长期以来的研究领域,偶尔输出工业级工具。这些技术可以为识别潜在的错误和漏洞带来巨大的收益。因此,鉴于DApp的高安全性要求,将这些策略应用于智能合约代码是必须的。
为了能够访问为智能合约应用提供支持的代码,zeppelinOS将提供自动化的代码分析服务,其功能越来越强大,规则和技术越来越强大,防止无意中部署不安全的代码,并提醒现有的新发现漏洞的运行合同的所有者。

开发者工具

智能合约开发人员的开发经验真的很糟糕。这些工具不成熟,调试非常令人沮丧。 zeppelinOS平台将提供的部分链下工具包括调试,测试和基础架构框架,使智能合约开发人员的生活更加快乐。我们还将为现有的工具链做出贡献,如pyethereum,truffle / testrpc和web3.js.

下一步

我们希望这篇文章有助于澄清一些关于zeppelinOS不同组件的更多技术问题,以及如何加强智能合约开发和管理流程。这是一个雄心勃勃的努力,我们需要您的帮助才能实现,所以请加入我们的Slack并与我们分享您的反馈。
如果您正在寻找为zeppelinOS做出贡献的方法,最好的出发点就是帮助开发OpenZeppelin框架,因为它将是构建zeppelinOS内核标准库的基础。
在即将到来的日子里,我们将发布更多关于zeppelinOS的信息,敬请期待!

Coin Marketplace

STEEM 0.18
TRX 0.14
JST 0.030
BTC 59367.33
ETH 3172.01
USDT 1.00
SBD 2.43