智到功成
当前位置:首页 - yaboapp >

智能合约的实证分析:平台、应用和设计模式

2019-05-10来源:百姓资讯网
智能合约的实证分析:平台、应用和设计模式


论文

Massimo Bartoletti and Livio Pompianu. An empirical analysis of smart contracts: platforms, applications, and design patterns. WTSC 2017, arXiv:1703.06322 [cs.CR]

https://arxiv.org/abs/1703.06322

论文摘要

智能合约是一种计算机程序,不需要可信机构仲裁,可以由相互不信任节点组成的网络一致地执行。由于智能合约具有抗篡改的能力,在许多情况下都很适用,特别是在需要转账以遵守某些商定规则的情况下(如在金融服务和游戏中)。在过去的几年中,许多智能合约平台已经被提出,其中一些已经实际实施和使用。本文研究了在这些平台中如何解释智能合约的概念,并将重点放在比特币和以太坊这两种最广泛的货币上,量化智能合约在应用领域的使用情况。本文还分析了以太坊中最常见的编程模式,其中提供了智能合约的源代码。

论文介绍:

1、平台分析

本文首先选择6个平台的样本:比特币(Bitcoin)、以太坊(Ethereum)、合约币(Counterparty)、恒星币(Stellar)、Monax和应用链(Lisk)进行讨论。

比特币是一个转移数字货币比特币(BTC)的平台,它是第一个被创建的分散加密货币,现在是市值最大的加密货币。在比特币之后,以太坊是市值第二的市场平台,与比特币类似依赖于公共区块链,其共识算法类似于比特币。合约币是一个没有自己的区块链的平台; 相反,它将其数据嵌入比特币交易中。恒星币以一个拥有自己加密货币的公共区块链为特色,由一个受联邦拜占庭协议启发的共识算法控制。Monax支持执行以太坊合约,但没有自己的货币。Monax允许用户创建私有区块链,并定义访问它们的授权策略。应用链有自己的货币和一个公共区块链,具有授权的股权证明共识机制。

智能合约的实证分析:平台、应用和设计模式

表1总结了分析平台的主要特点。一些单元格中的问号表明无法检索信息(例如,Monax区块链是私有的,无法确定它们的大小)。平台名称旁边的前三列描述了区块链的特征:是否公开;其大小;两个连续区块之间的平均时间。合约币由于使用比特币区块链和比特币共享同一个单元。衡量以太坊区块链的大小取决于使用的客户端和修剪模式。例如,使用Geth客户机,我们在“快速同步”模式下获得17GB,在“存档”模式下获得60GB。在具有私有区块链的平台中,它们的区块间隔是自定义的。第五列描述了对编写合约的支持。第六列显示事务总数。最后两列显示了货币兑换商的日交易量和货币的市场资本化。

2、智能合约的使用

本文提出了一种智能合约分类法,分为金融、公证、游戏、钱包、图书馆五类,描述了它们的预期应用领域。

在金融类中,合约将管理、收集或分发资金作为最重要的功能。在公证类中,合约利用区块链的不变性来持久地存储一些数据,在某些情况下还可以证明它们的所有权和出处。游戏类别收集了执行机会游戏及技能游戏的合约。钱包类合约处理密钥、发送交易、管理资金、部署和监视,以简化与区块链的交互。图书馆类合约实现了其他合约使用的通用操作(例如,计算和字符串转换)。

智能合约的实证分析:平台、应用和设计模式

如表二所示,虽然比特币和以太坊主要关注金融合约,但我们观察到其他类别的主要差异。例如,与以太坊不同,公证类别中的比特币合约具有类似于金融类别的交易量。以太坊第二大使用类别是游戏。虽然在过去几年里已经提出了一些使用比特币的游戏,但对它们的兴趣仍然主要是学术性的,而且我们没有实验证据证明这些合约在实践中被使用。相反,以太坊编程语言的更大灵活性简化了此类合约的开发。

3、智能合约的设计模式

本文提出了一些智能合约设计模式,分别为代币、授权、预言、随机性、轮询、时间限制、终止、数学以及分支检查。

代币模式用于将一些可互换商品(由代币表示)分发给用户。代币可以代表各种各样的商品,例如硬币、股票、结果或门票,或其他可转让和可数的东西。授权模式用于根据调用者地址限制代码的执行。有些合约可能需要从区块链外部获取数据,预言模式的合约是合约与外部之间的接口。随机性模式用来处理随机事件。轮询模式允许用户对某些问题进行投票。时间限制合约用来规范合约使用时间。终止模式用来禁用合约。数学模式的合约对保护某些关键操作执行的逻辑进行编码。分支检查模式用来监测合约是在主链上运行还是在分支上运行。

智能合约的实证分析:平台、应用和设计模式

表3显示了设计模式的使用与合约类别之间的相关性。第i行和第j列的一个单元格显示一对值:第一个值是使用j列模式的第一类合约的百分比;第二个值是使用j模式的合约的百分比,属于i类。例如,金融类别中24%的合约使用代币模式,而所有具有代币模式的合约中有51%是金融合约。

我们观察到代币、授权、时间限制和终止通常是最常用的模式。有些模式分布在几个类别中(例如,终止和时间限制),而另一些模式主要在一个类别中采用。例如,预言和随机性模式是游戏合约的特有模式,而代币模式主要用于金融合约。虽然数学使用较少,但它出现在每个类别中。有些合约不使用任何模式(29%的金融和30%的公证);几乎所有游戏和钱包类合约都至少使用一个。此外,只有15%的非保密合约根本不使用任何模式。

金融合约中最常见的模式是代币(24%)、授权(51%)和时间限制(23%)。由于存在实施资产和众筹服务的合约,我们有一半使用代币和数学模式的合约属于金融类别。例如,这些服务使用代币来表示商品或开发投票。此外,69%的使用分支检查模式的合约都是金融合约。这是因为在决定转移资金之前必须先了解分支机构。最后,几个金融应用程序(29%)执行简单操作(例如发送付款),而不使用我们描述的任何模式。

在许多公证合约中使用授权模式来确保只有文档的所有者才能添加或修改其数据,以避免篡改。大多数赌博游戏都是由玩家付费加入游戏,并由游戏的胜利者收取奖励。授权模式是让所有人成为唯一能够兑现参与者费用或执行行政操作的人,并让获胜者撤回奖励。时间约束模式用于区分游戏的不同阶段。

值得注意的是,100%的钱包合约都采用授权和终止模式。高达94%还使用了时间限制模式。相反,在开发钱包时,语言、轮询和随机性模式用处不大,而数学有时用于确保操作的安全。

论文贡献:

本文从不同的角度分析了智能合约的使用。研究了6个智能合约平台的样本,指出了它们之间的一些关键技术差异。对于比特币和以太坊这两个最着名的平台,本文研究了834个领域的样本,按照各自的应用领域对其进行分类,并测量了这些类别的相关性。根据以太坊合约源代码的可用性,本文分析编写了智能合约时采用的最常见的设计方案。

致谢

本文由南京大学软件学院2018级硕士生刘子寒翻译转述

转载文章地址:http://www.lbhfjd.com/xinwen/694.html
(本文来自智到功成整合文章:http://www.lbhfjd.com)未经允许,不得转载!
标签:
设计模式 区块链 比特币 数字货币 金融 算法 数学 编程语言
网站简介 联系我们 网站申明 网站地图

版权所有:www.lbhfjd.com ?2017 智到功成

智到功成提供的所有内容均是网络转载或网友提供,本站仅提供内容展示服务,不承认任何法律责任。