智能合约的安全问题,不应让通证买单
经历了大起大落的2018终于在欢呼声及倒计时中画上了句号,有人欢喜,有人惆怅。回想一年前,大量的区块链项目如雨后春笋般出现,币价疯涨,逛个菜市场都听得到大妈们在讨论炒币,一年之后,数万亿资本瞬间蒸发,人们回归冷静。2018,感谢币圈的降温,给了区块链重新向世人证明自己的机会。

2018,区块链涉及的各项技术瓶颈均已基本突破,为构建下一代经济基础设施提供了较为完善的工具箱。智能合约作为区块链2.0的核心技术,开发者可以在链上自定义任何合约,依托图灵完备的编程语言,具有极强的灵活性。但这样的灵活性用在资产上却危如累卵,很多项目方遇到了大量的安全问题,其资产的安全性受到严峻挑战。从2016年The DAO被盗取6000万美元开始,到美链BEC黑客盗刷事件,通证总数量一夜间被翻了数千万倍,严重的通胀导致数十亿通证价值归零;再到EOS也被爆出整数溢出等漏洞,“智能合约”已经成为数字资产安全的重灾区。
智能合约的安全问题,不应让通证买单
一旦智能合约出现问题,资产的安全性就受到了威胁,现有的很多项目方开始使用合约安全审计服务,尽可能地规避合约漏洞暴露的风险,但高昂的成本令人望而却步。为了找寻更加有效的解决方案,Zerohm调研了以太坊等诸多公链,发现大家都无法规避这样一个问题:由于通证均是在智能合约中定义,而智能合约可以任意扩展,所以通证在其中产生了安全隐患。那么,当智能合约出了问题,通证为什么一定要为此买单呢?

Ethereum最早的架构设计目标是支持智能合约,通证是后期发展中的意外产物,它基于智能合约产生,但这不代表它和智能合约耦合在一起是最佳存在形态。智能合约是逻辑表现形式,追求的是灵活性,而通证是资产的表现形式,追求的是安全性。这两个诉求是彼此冲突的,极度安全一定不灵活,极度灵活也一定不安全。当我们希望使用智能合约这一个结构同时满足逻辑的灵活性和资产的安全性时,必然顾此失彼,结果不尽如人意。基于这样的思考,Zerohm大胆提出将通证从智能合约中解耦出来,在底层架构上对两者分而治之,形成通证层和合约层的双层结构。
智能合约的安全问题,不应让通证买单
有了这个基本架构之后,我们可以抛开合约的限制,重新审视通证的需求。合约面向的是业务逻辑,图灵完备的语言是必然的。通证面向的是资产,在数学上,资产是一个高度形式化的对象,此时图灵完备的语言就不是那么必要了。计算机编译理论已经告诉我们,源语言和目标语言的差距越大,翻译过程中的语义丢失就会越多,为了避免语义丢失,程序就会变得更加复杂,安全性就越难保障。自定义通证的过程便是把我们自然语言的需求,编写成区块链能识别的目标语言程序的过程。目前不管是ETH的Solidity,EOS的C++,还是Nebulas的JS,离我们自然语言都有很大差距,很容易出现语义丢失导致安全漏洞。为了解决这个问题,Zerohm基于UML(Unified Modeling Language) 为通证管理定制了一个高层编程语言TML (Token Modeling Language),以及标准通证操作指令集。在这样的设计之下,合约层的灵活性将不受影响,而借助形式化语言的特点,通证层的技术安全性将极大提高,再加上通证层丰富的权限定义功能,平台上的通证发行方将有足够的工具来配合金融监管,保护通证政策上的安全性。而当所有通证由底层统一管理起来之后,Zerohm还将具备提供数字资产透视图的能力,使得通证持有人可以很快捷方便地追溯到其底层通证及其链上实际情况,实现可穿透式的通证管理。

TML参照UML中的实体定义的方式定义基本通证。如下图中定义的4种通证,每种通证均包含属性和方法。属性如名称,发行方,数量,单位,是否可替代,是否可隐匿等等,代表了通证的基本信息。方法则如转账,托管和发行等等,代表针对这个通证操作者可以执行的操作及其操作者的权限要求。
智能合约的安全问题,不应让通证买单
同样的,TML参照UML中的实体关系定义的方式定义复合通证。如图中各种通证之间不同形态的连线,代表着通证间各种各样的关系。目前,TML中定义了继承、引用和组合三种关系。

继承关系:在TML建模时,用户在定义一个新通证时,可以选择一个链上已有的模型作为父类继承,新通证将会继承父类的所有属性和方法,子类可以添加新属性和方法,或者重写父类方法,在子类通证发行时,将根据属性和方法新创建通证实例,和父类的通证实例无关。

引用关系:在TML建模时,用户在定义一个符合通证时,可以选择直接引用一个链上已有的通证实例,那么在复合通证发行时,引用的通证实例将不会再创建新实例,而是直接引用链上已经发行的通证实例。

组合关系:多个通证可以通过指定的比例组合成一个新的复合通证,每发行一个新的复合通证就需要定义好的其他通证按比例抵押进新通证,组合通证回收时可以取出里面抵押的其他通证。

TML将会持续升级和迭代,以便提供更安全易用的通证设计能力。同时,Zerohm为通证预先定义了一系列的标准操作符,根据各个操作符涉及的主体账户数量,将它们分为一阶、二阶和高阶操作符。而TML操作符权限应用于通证的操作符上,开发者可以通过操作符权限来限制通证的使用,目前操作符权限包含应用权限和调用者权限。关于Zerohm更多通证层的设计,欢迎大家访问Zerohm官网(点击原文链接):zerohm.io,查看Zerohm的白皮书以获得更多资讯。

2019年,我们相信区块链技术将有更进一步的突破,也一定会有更多更棘手的问题出现。面对这些问题,Zerohm将以更加饱满的姿态,不忘初心,砥砺前行!

智能合约的安全问题,不应让通证买单

相关文章:

  • 2022-12-23
  • 2021-12-04
  • 2021-11-26
  • 2021-07-21
  • 2021-04-30
  • 2021-08-08
猜你喜欢
  • 2021-04-15
  • 2021-12-25
  • 2021-12-05
  • 2022-12-23
  • 2022-12-23
  • 2021-11-29
  • 2021-08-11
相关资源
相似解决方案