DAG区块链账本没有“区块”的概念,由用户发出的数据单元(交易数据或者其他形式的消息数据)前后链接构成,每个数据单元可以有多个父数据单元,单元之间相互确认。相比传统区块链(如比特币和以太坊)交易同步串行确认的特性,DAG区块链交易异步并行确认的特性具有破解当前区块链技术普遍存在低吞吐量、高延迟和扩展性差难题的潜力。然而,交易异步并行确认给共识算法实现,系统状态管理和系统状态变迁提出了严峻挑战,导致智能合约实现面临重重难题,因而在DAG区块链这种全新数据结构上实现智能合约功能是一个充满挑战和期待的领域。目前,DAG区块链智能合约的研究实现分为两类,声明式非图灵完备智能合约和图灵完备智能合约。声明式非图灵完备智能合约最先在2016年底上线的Byteball项目中落地,支持Byteball钱包实现Smart Payments功能。图灵完备智能合约在DAG区块链上的实现至今尚处于探索阶段,令人兴奋的是2018年已有多个底层公链项目试图在这个方向上实现突破,如Vite项目和InterValue项目等做出了卓有成效的探索。
Byteball智能合约
Byteball智能合约使用布尔语句编写合约内容,合约内容称之为定义,是一种声明式智能合约。声明式智能合约属于非图灵完备智能合约,部署简单,安全性高,由陈述性和完全布尔语句组成,更接近法律合同语言,支持布尔运算,数学运算,甚至数据存储等。代码清单4-1是Byteball航班延误险智能合约的例子。
代码清单4-1 Byteball航班延误险智能合约
["or", [
["and", [
["sig", ],
["in data feed", [
["FLIGHT ORACLE ADDRESS"],
"flight delay",
">",
"60"
]]
]],
["and", [
["sig", ],
["in data feed", [
["TIMESTAMPER ADDRESS"],
"datetime",
">",
"2018-06-14 05:00:00"
]]
]]
上面的代码清单是Byteball智能合约定义,该定义用于生成智能合约地址,用户和对手方用户为该地址准备资金,支付自己应付份额。我们可以看到Byteball智能合约内容逻辑展现形式非常简洁,布尔逻辑对于绝大多数普通用户是可读可理解的:如果航班延误超过60分钟,用户得到经济赔偿,反之,对手方用户在2018年6月14日5点获得用户支付的保险购买款。这种逻辑简洁性非常有利于检查逻辑漏洞,降低了智能合约编写因安全漏洞遭到黑客攻击的风险。此外,上面代码清单包含两个Oracle(预言机):航班延误Oracle发布航班延误时间信息和时间Oracle发布当前时间信息。展现了Byteball智能合约另外一个亮点,支持引入Oracle发布的真实物理世界数据,用于构建智能合约逻辑,为信息世界和物理世界提供了信息流转桥梁。
Byteball智能合约是Byteball钱包绑定支付功能Smart Payments的基础设施。Smart Payments是Byteball杀手级特性,提供了现有数字货币应用所不具备的简单灵活,形式多样的支付体验。
曹源
博士。资深区块链技术专家和网络安全专家,从事区块链技术研究与应用近10年,对DAG技术有深入研究,基于DAG技术的明星区块链项目InterValue的创始人兼CEO。
西安电子科技大学区块链应用与评测实验室副主任、浙江大学计算机学院区块链研究中心特聘研究员、湘江区块链研究院副院长、矩阵数字经济智库专家成员。
此外,他还是北京理工大学机电学院特聘研究员、湘潭大学硕士生导师、湖南宸瀚信息科技有限公司董事长、哈希奈特(北京)科技股份有限公司董事长、四川宸瀚信息科技有限公司董事长、浙江物信科技有限公司董事长。
矩阵数字经济智库由矩阵财经依托“MATRIX贝叶斯研究基金”(MATRIX与清华大学教育基金会联合成立)和MATRIX与“一带一路研究中心”的战略合作协议发起。智库将联合区块链、人工智能、金融、数字资产管理与投资领域的专家,聚焦传统产业转型和技术/商业创新,以新技术赋能实体经济,推动技术进步,引领数字经济的变革。
矩阵财经出品
领取专属 10元无门槛券
私享最新 技术干货