为什么说在金融交易中,智能合约处理交易数据能代替律师和银行

金融合约与智能合约 & 论坛 & EthFans | 以太坊爱好者
金融合约与智能合约
6800 次阅读
智能合约是 1990s 年代由尼克萨博提出的理念,几乎与互联网同龄。由于缺少可信的执行环境,智能合约并没有被应用到实际产业中,自比特币诞生后,人们认识到比特币的底层技术区块链天生可以为智能合约提供可信的执行环境,以太坊首先看到了区块链和智能合约的契合,发布了白皮书《以太坊:下一代智能合约和去中心话应用平台》,并一直致力于将以太坊打造成最佳智能合约平台,所以比特币引领区块链,以太坊复活智能合约。
怎样向尚未接触过比特币理念的人介绍以太坊及智能合约在金融合约方面的应用?下面是一种尝试。首先介绍区块链,解释它为什么值得人们的信任,其次介绍智能合约,然后介绍以太坊系统,最后介绍智能合约与金融合约的结合。
怎样向尚未接触过比特币理念的人介绍以太坊及智能合约在金融合约方面的应用?下面是一种尝试。首先介绍区块链,解释它为什么值得人们的信任,其次介绍智能合约,然后介绍以太坊系统,最后介绍智能合约与金融合约的结合。
比特币的共识机制
比特币的核心技术区块链可以理解成可复制、共享的账本。
比特币的最核心创新:它教会世界如何在不需要信任第三方的情况下远距离转移价值。
人们当然可以面对面地转移实体纸币,但是,在比特币出现以前,我们做不到:在不需要信任中心化第三方机构(邮局、银行等)的情况,远距离向某人转移价值。
就好像银行和支付系统的传统转账模式的基础设施被重构为点对点支付网络。这种转变如下图所示:
比特币打开了点对点的电子价值转移模式的大门,完全不同于现在的银行系统、中央银行和支付系统。
但是,上面的图并没有解释比特币是怎样实现点对点价值转移的。
答案是:比特币系统建立在“可复制、共享的账本”之上。比特币网络中的每个参与者(完全节点)拥有一个完整的交易账本的副本,这一系统的神奇之处在于:它是如何做到使每个人的副本与其他人的副本保持一致的。
所以,正确的示意图应该是下图,每个参与者都能够从相同的可复制、共享的账本中获取信息。
比特币和其它去中心化共识系统的窍门在于:它们怎样保证每个有一个账本的副本,并使每个人确信自己的账本与别人的账本是同步的。
如果每个人拥有的账本的副本是相同的,那么人们就不再需要一个中心化的机构记录谁拥有什么。当你的账本更新,记录一笔新的资产所有权变动时,其他人的账本也会发生相同的变动。
智能合约程序不只是一个可以自动执行的计算机程序:它自己就是一个系统参与者。它对接收到的信息进行回应,它可以接收和储存价值,也可以向外发送信息和价值。
这个程序就像一个可以被信任的人,可以临时保管资产,总是按照事先的规则执行操作。
下面这个示意图就是一个智能合约模型:一段代码(智能合约),被部署在分享的、复制的账本上,它可以维持自己的状态,控制自己的资产和对接收到的外界信息或者资产进行回应。区块链为智能合约提供了【可信的执行环境】。
智能合约模型:它是运行在可复制、共享的账本上的计算机程序,可以处理信息,接收、储存和发送价值。
以太坊系统
以太坊项目借鉴了比特币区块链的技术,对它的应用范围进行了扩展。如果说比特币是利用区块链技术的专用计算器,那么以太坊就是利用区块链技术的通用计算机。简单地讲,以太坊 = 区块链 + 智能合约。
与比特币相比,以太坊最大的不同点是:它可以支持更加强大的脚本语言(用技术语言讲就是图灵完备的脚本语言),允许开发者在上面开发任意应用,实现任意智能合约,这也是以太坊的最强大之处。作为平台,以太坊可以类比于苹果的应用商店,任何开发者都可以在上面开发应用,并出售给用户。
以太坊智能合约的金融应用
每一类金融合约都可以程序代码的形式写成智能合约。
金融衍生品是“智能合约”的最普遍的应用,也是最易于用代码实现的之一。实现金融合约的主要挑战是它们中的大部分需要参照一个外部的价格发布器;例如,一个需求非常大的应用是一个用来对冲以太币(或其它密码学货币)相对美元价格波动的智能合约,但该合约需要知道以太币相对美元的价格。最简单的方法是 通过由某特定机构(例如纳斯达克)维护的“数据提供“合约进行,该合约的设计使得该机构能够根据需要更新合约,并提供一个接口使得其它合约能够通过发送一 个消息给该合约以获取包含价格信息的回复。
当这些关键要素都齐备,对冲合约看起来会是下面的样子:
等待A输入1000以太币。
等待B 输入1000以太币。
通过查询数据提供合约,将1000以太币的美元价值,例如,x美元,记录至存储器。
30天后,允许A或B“重新激活“合约以发送价值x美元的以太币(重新查询数据提供合约,以获取新价格并计算)给A并将剩余的以太币发送给B。
代币系统(token system)
区块链上代币系统有很多应用,从代表如美元或黄金等资产的子货币到公司股票,单独的代币代表智能资产,安全的不可伪造的优惠券,甚至与传统价值完全没有联系的用来进行积分奖励的代币系统。在以太坊中实施代币系统容易得让人吃惊。关键的一点是理解,所有的货币或者代币系统,从根本上来说是一个带有如下操作的数据库:从A中减去X单位并把X单位加到B上,前提条件是(1)A在交易之前有至少X单位以及(2)交易被A批准。实施一个代币系统就是把这样一个逻辑实施到一个合约中去。
假设Alice想确保她的资金安全,但她担心丢失或者被黑客盗走私钥。她把以太币放到和Bob签订的一个合约里,如下所示,这合同是一个银行:
Alice单独每天最多可提取1%的资金。
Bob单独每天最多可提取1%的资金,但Alice可以用她的私钥创建一个交易取消Bob的提现权限。
Alice 和 Bob 一起可以任意提取资金。
一般来讲,每天1%对Alice足够了,如果Alice想提现更多她可以联系Bob寻求帮助。如果Alice的私钥被盗,她可以立即找到Bob把她 的资金转移到一个新合同里。如果她弄丢了她的私钥,Bob可以慢慢地把钱提出。如果Bob表现出了恶意,她可以关掉他的提现权限。
一个人可以很容易地以天气情况而不是任何价格指数作为数据输入来创建一个金融衍生品合约。如果一个爱荷华的农民购买了一个基于爱荷华的降雨情况进行反向赔付的金融衍生品,那么如果遇到干旱,该农民将自动地收到赔付资金而如果有足量的降雨他会很开心因为他的作物收成会很好。
多重签名智能契约
多重签名智能合约
比特币允许基于多重签名的交易合约,例如,5把私钥里集齐3把就可以使用资金。以太坊可以做得更细化,例如,5把私钥里集齐4把可以花全部资金,如果只3把则每天最多花10%的资金,只有2把就只能每天花0.5%的资金。
如果你读完上文,还没有更好的理解,说明本文写的还是不够简洁易懂。
赞,写得很清楚
确实是拉开了一个新世界
嗨,你好!我是公众号 白话区块链的 推广人员,我们致力于向普通人推广区块链知识和应用,公众号建立半个月 ,目前有九千左右关注,我看了您这篇文章,符合我们的主题,可以转载您这篇文章吗?会标记原作者和来源的
后方可回复
如果你还没有账号请点击这里摘要:对于区块链巨大潜力的实现,各行业已经达成共识,认为短期内无法实现广泛的实际应用。资讯管理公司Capgemini也在调查中发现,虽然人们充分认可区块链智能合约的潜力,很多人同时认为近期不会大范围落地应用。
暴走时评:对于区块链巨大潜力的实现,各行业已经达成共识,认为短期内无法实现广泛的实际应用。资讯管理公司Capgemini也在调查中发现,虽然人们充分认可区块链智能合约的潜力,很多人同时认为近期不会大范围落地应用,尤其是近六年内是不大可能实现的。因此这是个机遇也是挑战,既然充分认识了该技术的潜力,如果不尽早部署,就会有落后的风险。
翻译:Annie_Xu
区块链智能合约可以为金融服务业节省数十亿美元成本,但是全行业的技术突破还需要很多年。
尽管区块链技术及其在金融服务业的应用引起极大关注,可是具体什么时候才能实现,目前还没有定论。
资讯管理公司Capgemini认为,智能合约的最大影响可能是为客户节省几十亿美元成本。
智能合约可以根据合约条款自动进行支付,不需要独立验证和手动处理,因此可以节省时间和成本。Capgemini强调了智能合约的几个应用领域及其潜在利益。文件中多处提到按揭贷款中的应用,指出4350美元的贷款手续费可以减少22%。
另外还有车险理赔。通过简化流程可以减少12.5%的成本,可以为客户节省6%的保费。
尽管R3等机构已经在进行概念证明测试,很多应用正在实施中;可是在整个行业的突破还需要很长时间。
SIX Securities Services的调查显示,至少未来六年内是无法实现的。
尽管目前有32%的概念证明项目和18%的产品或服务开发项目,人们普遍认为区块链广泛应用的期限是六年。
区块链是分布式数据库,可以永久存储交易数据账本,并且无法篡改。
该数据库包含两种记录,个人交易和区块,后者是某个时段内所有交易的数据集合。
可以预料到,很多受访者认为区块链对清算(34%)和结算(38%)的影响会很大。
Thomas Zeeb
SIX Securities Services首席执行官Thomas Zeeb说,“我们看到很多关于区块链的探讨都是技术层面上的可行性研究,而不是商业需求研究”。
“区块链有取代很多商业模式和中介机构的潜力,这不一定是坏事。重要的是了解其对生态系统的影响”。
尽管人们对利益的预测很清晰,可是大型金融服务机构几乎很少甚至没有进行大规模的区块链生产测试。
Capgemini报告说,由于智能合约的巨大潜力,广泛应用是可能实现的;因此再不开始测试的话就有落后的风险了。
本文仅代表作者观点,不代表百度立场。本文系作者授权百度百家发表,未经许可,不得转载。
分享到微信朋友圈
打开微信,点击 “ 发现 ”
使用 “ 扫一扫 ” 即可将网页分享至朋友圈。
扫一扫在手机阅读、分享本文
百家号作者平台APP
扫码下载安卓客户端
便捷管理文章信息
随时查看文章收益智能合约工程
智能合约概念与意义
未来社会是数字社会,如何把实体社会中人们生活的模式、信用、法律甚至文化等依存关系转移到虚拟世界中,是IT技术面临的巨大挑战(Grand Challenge)。
我们可以试想未来汽车交易的一个场景:关于汽车贷款。如果贷款者届时不还款,那么,一个合约程序将会自动收回发动汽车的数字钥匙。毫无疑问,汽车经销商会发现,这种自动合约的用途是很有吸引力的。这个例子是密码学家尼克·萨博(Nick Szabo)1994年提出的。他首次提出了“智能合约(Smart Contract, SC)”[1]的概念。相对于复杂的、涉及用户、汽车经销商和银行的贷款行为(手续),智能合约能够自动执行合约条款的计算机程序。他创造性地提出“智能合约就是执行合约条款的可计算交易协议”,简单的一个例子就是类似图1的自动售货机。机器通过物理的密封系统自行控制财产,可以编程自动执行“合约”条款。
图1 自动售货机模式
尼克·萨博指出,计算机代码可以代替机械设备,进行更复杂的数字财产交易。未来的某一天,这些程序甚至可能取代处理某些特定金融交易的律师和银行,即“智能财产可以通过将智能合约内置到物理实体的方式,被创造出来”。随后在2002年,尼克·萨博设计出了一种叫“比特黄金”(bit gold)的数字货币机制[2]。他认为,智能合约可以支持电子数据交换(EDI)、证券期权等合成型资产(synthetic assets)的交易。例如,房屋出租商发现,智能合约的这种用途很有吸引力:一个房屋的门锁能够连接到物联网上,可以通过执行智能合约被打开。当一位客户进行了一笔租房交易后,达成的智能合约将自动为该客户打开房门,并进行自动资金转移。客户只需要使用存储在智能手机中的钥匙就能进入房屋。智能合约还是实现分布式自治组织(Decentralized Autonomous Organization, DAO)[3]的关键技术之一。DAO是指一个拥有一定数量成员或者股东的虚拟实体,依靠自治组织的共识来决定开支以及修改代码等事宜,这就可以通过智能合约把成员之间的合约变成自动执行的代码来强制执行。
虽然智能合约仍然处于初始阶段,但是其对挖掘未来数字社会的潜力显而易见,因为它把人与法律协议,以及与网络虚拟世界之间复杂的关系程序化了。也许有一天,我们会与律师和银行说再见,而合约模板的编制、审核则会变成律师新的工作重点。
智能合约的意义在于,它不仅可能颠覆现有的商业模式,更重要的是它也能够完善现有的商业模式,并且大大减少第三方中介的费用。
智能合约有许多非形式化的定义。尼克·萨博给出了一个简短的概念,即“智能合约通过使用协议和用户接口来促进合约的执行”;马克·米勒(Mark S. Miller)认为,智能合约就是用程序代码编写的合约,它的条款由程序来执行[4];以太坊(Ethereum)认为,智能合约就是基于区块链的、可直接控制数字资产的程序[5]。其他两个有价值的定义如下:
1.智能合约是运行在可复制、共享账本上的计算机程序,可以处理信息,接收、储存和发送价值。
2.智能合约是一段代码,被部署在分享的、复制的账本上,可以维持自己的状态,控制自己的资产,对接收到的外界信息或者资产进行回应。
总的来说,一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在其上执行这些承诺的协议。图2所示的是智能合约的概念模式[6],智能合约的代码被部署在分享的、复制的账本上,它可以维持自己的状态、控制自己的资产(状态、资产与代码一样,被存储在账本上),还能够对所接收的外界信息进行回应。
图2 智能合约与区块链结合的概念模式
我们认为,一个好的智能合约应当具备下面六个基本特征。
特征1:一致性,智能合约需要与合约文本保持一致,并且不与现有法律发生冲突。每个合约在发布之前,需要由技术人员和专业律师来保证合约的一致性。
特征2:可定制,智能合约应当是可定制的,复杂的合约可以通过组合简单的合约而得到。
特征3:可观察性,合约本身与其执行过程都应该是可观察的,以支持监管和可信。
特征4:可验证性,合约的记录的有效性是可以被检验出来的。
特征5:自强制性,智能合约可以在不依靠法律强制力的情况下预防和惩罚违约行为。
特征6:接入控制,只允许与合约相关的人查看关于合约的信息。只有当发生冲突时,才打开第三方接口,允许第三方查证。
智能合约与区块链的融合
萨博提出的智能合约理论几乎与互联网同时出现,但应用实践却一直严重地落后于理论,没有找到将这个理念转变为现实的清晰路径。其主要原因是智能合约的实现存在以下两方面问题:一是智能合约如何实现控制实物资产,并保证有效地执行合约。售货机通过将商品保存在其内部以控制财产所有权,可是计算机程序很难控制现实世界的现金、股份等资产;二是计算机很难保证执行这些条款,以获得合约方的信任。合约方需要可靠的解释和执行代码的计算机,无法亲自检查有问题的计算机,也无法直接观察与验证其他合约方的执行动作,只有让第三方审核各方合约执行的记录。而区块链技术的出现解决了这些问题,从而触发了智能合约的应用。
区块链为完全数字化资产的记录和转移奠定了基础,通过完全数字化的资产,使得计算机代码可以控制资产。在区块链上,控制资产就是控制资产对应的密钥,而不是任何实物。期权合约可以控制合约相关的资产,而不需要代管机构。区块链使计算系统成为受信任系统,它已经不局限于数据库的功能,同时还是可以执行代码和记录资产所有权的分布式计算机。“智能期权”可以被上传和存储在区块链中,并根据指令执行,一旦区块链记录了合约代码,合约方就可以确定合约不会被更改。因此智能合约又作为区块链上的一种链上代码(chaincode)被广泛接受,如当前有代表性的开源系统以太坊[7]和超级账本(Hyperledger)[8]等。在以太坊中,智能合约是存储在区块链上的脚本,通过区块链节点以分布式的形式执行,相当于商业交易、监督管理过程中法律、法规的执行者。智能合约可以以按序、安全、可验证的方式实施特定的流程。
区块链为智能合约的实现提供了一个平台,而智能合约使得区块链的应用更加广泛和灵活。目前,实现智能合约的区块链系统正在成为热点,如开源项目以太坊、码律(Codius)[9]和超级账本等,它们都有可编程的合约语言和可执行的基础设施来实现智能合约。区块链为合约提供存储代码和状态的地方,再把执行合约的基本环境与一致性算法融合在一起,就构成了最基本的基于区块链的智能合约系统。把合约写成代码,合约的执行就是根据规定好的合约条款对合约方的合约信息(状态、行为)进行判别,并根据执行的结果采取相应的动作,保证了合约的强制性;区块链对合约代码与状态的存储保证了合约存储的可靠性与可观察性;把执行合约的基本环境与一致性算法融合在一起,合约状态的改变不是由单点决定的,而是由多个节点一起决定的,保证了合约执行的可验证性与可信性,从而可以省去第三方监管的费用。
例如,在以太坊中,合约建立过程是先用以太坊给出的合约语言(如Solidity、Serpent、LLL和Mutan等)编写合约代码,然后编译成以太坊虚拟机(Ethereum Virtual Machine, EVM)代码,把以太坊虚拟机代码放入交易中,发送到网络中。区块链的各个节点验证并处理交易后,就会新开一个用于管理合约的账户,把以太坊虚拟机代码存在合约账户的存储空间,等需要执行的时候再取出执行。Solidity、Serpent、LLL和Mutan等都是用于描述合约的语言,用户可以根据个人喜好来选择。以太坊提供了一个带有图灵完备编程语言的区块链平台,提供了智能合约的基本功能,其合约的建立过程如图3所示[10]。
图3 智能合约的建立过程
表1给出了用Serpent语言[11]编写的一个描述银行基本功能的智能合约代码来说明其应用。这是一个自动执行的智能合约,一共有四个功能:查询账户余额、存钱、取钱、转账。
表1 一个简单的银行智能合约
#存款到自己账户def deposit():self.storage[msg.sender] += msg.valuereturn(1)#从自己账户中取款def withdraw(amount):#检查账户余额是否充足if self.storage[msg.sender] & amount:return(-1)else:#如果有足够的钱,则完成取款self.storage[msg.sender] -= amountsend(0, msg.sender, amount)return(1)#转移资金到别的账户中def transfer(amount, destination):#检查是否有足够的资金if self.storage[msg.sender] & amount:return(-1)else:#如果有足够的资金,则完成转帐self.storage[msg.sender] -= amountself.storage[destination] += amountreturn(1)#查询余额def balance():return(self.storage[msg.sender])
合约的建立与执行过程如下:先把表1中的合约代码编译成以太坊虚拟机代码,然后在区块链上建立合约账户,用于存储合约和管理与合约相关的数据。当需要查看余额的时候,发消息给合约账户调用balance();当需要转账的时候,调用transfer(),合约账户会自动将客户的钱减去转账数额,给对方的钱增加相应的数额;当需要存钱的时候,调用deposit(),合约账户会自动增加客户的钱数;当需要取款的时候,调用withdraw()。
应该说,目前区块链上的智能合约在技术上还处于早期阶段,是不成熟、不安全和不智能的,更没有形成理论体系,还不能大规模满足应用的需求。比如2016年6月17日发生的The DAO攻击事件,由于The DAO智能合约自身的漏洞,导致6000万美元从账号中流失[12]。尽管已经存在一些合约管理系统,如Selectica[13]、Novatus[14]和Apttus[15]等,但这些系统都只是起到管理合约的作用,不能强制执行合约条款。下面提出一些需要研究的问题,抛砖引玉。
智能合约不智能:目前基本是固定的合约模板,智能合约由谁来编写,谁来检验、测试和认证,动态修改都是全新的模式,与人工智能技术结合是研究趋势。
合法性问题:智能合约具有与“真正”合约一样的法律效力吗?如果智能合约的结果违背法律,或者法庭发现它与合约法冲突,该如何解决?计算法律学的研究将从技术层面和法律层面突破。CommonAccord项目[16]采用基于智能合约的方法,在法律文档与代码自动生成方面提出了新的思路。
合约的可信问题:软件质量问题非常突出,软件陷阱会导致明显地有利于合约的某一方,该怎样对合约进行查验和修复?如何验证合约的逻辑正确性并杜绝漏洞?形式化方法是目前软件可信性验证的重要手段。要避免类似的由于代码本身有漏洞而给黑客制造攻击机会的情况。
外部信息问题:如果智能合约从外部源检索获取一些信息,且信息源是区块链以外的,那么就不能保证每个节点都会接收到相同的信息。一旦共识被打破,整个区块链系统都会瘫痪。
智能合约执行问题:存在多个合约需要一定时间触发的情况,待触发事件由谁来管理与发送?如果多个合约同时执行,会带来复杂的访问控制、同步并发以及一致性问题。
合约安全性问题:合约密码学、证据和信息安全将始终是重要的研究方向。越来越复杂的合约程序会不会消耗计算节点大量的计算能力(如形成无限循环),应该如何避免这类情况的发生?
性能问题:把合约状态的一致性过程与区块链的一致性过程结合起来,有可能会增加区块的制作时间,比如以太坊中区块的构造时间就包含了区块中交易的处理时间,并因此减慢了建块速度,应该如何加快合约的执行效率?
业务模型问题:如何以正确的方式为不同的真实业务现象建立模型?如何大量建立软件工程中的业务建模工具是支持用户应用的关键。
智能合约工程
智能合约的本质是算法合同(algorithmic contract),即当事人同意依据一定的计算机算法来确定合同的内容、订立合同和履行合同的行为。智能合约作为“代码即合约”,是一种特殊的软件。由于合约代码常常蕴含着法律关系和利益交易,因此智能合约又比一般的软件具有更复杂的关联,并且在可信方面有更高的要求。展望未来,智能合约将是需要大规模生产和应用的服务软件。
我们认为,大规模生产和应用智能合约软件,需要三个方面的技术融合:一是传统软件工程的理论方法。二是需要合约的复合精确验证方法,合约是交易双方或多方的约定,合约需要参与方的共同认定,并要求与法律文本保持一致性,需要保证其代码和执行的不可更改和可信性。形式化方法(formal method)可以成为对合约进行确定性验证的一种技术,通过形式化语言,把合约中的概念、判断、推理转化成智能合约模型,可以消除自然语言的歧义性、不通用性,进而采用形式化工具对智能合约建模、分析和验证,进行一致性测试,最后自动生成验证过的合约代码。此外,描述合约交易实体之间复杂的耦合作用,体现价值的变化和转移也是很有意义的,可采用数学方法分析对系统稳定性和可达集进行计算分析,指导智能合约的自动代码生成。三是智能合约作为特殊证据性代码需要法律层面的规制,计算法律(computational law)研究如何使用计算机技术以电子媒介的方式来实现对法律、法规、合同、章程等法律文件的表达和自动执行,保障通过计算机代码所设定的规则与现实世界中的法定规则保持一致,并可以作为法律认可的证据链。为此,我们提出了智能合约工程(Smart Contract Engineering, SCE)的概念和方法。智能合约工程是融合软件工程、复合验证方法和计算法律的智能合约系统化、规模化的开发过程,其体系架构如图4所示。
图4 智能合约工程
为了指导智能合约的编写与执行,我们参考文献[17~20]中提出的商业合约架构(business contract architecture),并结合区块链的特点,设计出一个具有实用价值的智能合约执行模型(SC execution model),如图5所示。
图5 智能合约执行模型
模型各组件功能如下:
1.协商者,在合约建立阶段,在各合约方之间充当着交换合约的角色,并把签名后的合约发布到区块链上;在后期,根据合约方的需求,发布合约的补丁到区块链中。
2.验证者,使用形式化的方法来确保合约的正确性、安全性、可靠性与一致性。
3.区块链,用于存储所有与合约相关的、安全的分布式数据库,规范化所存储的信息后,可充当解决矛盾冲突的证据。
4.合约事件仓库,存储用于触发合约事件的、事先定义好的合约事件模板。
5.合约执行器,用于执行存储在区块链上的代码,它充当了两个角色的作用:观察者,根据事先定义好的合约事件,判断合约方的执行动作,若发生了违约行为,则通知制裁者;制裁者对违约行为进行处理。
6.通知者,当发生违约行为时,会被调用去告知制裁者。
7.自由制裁者,相当于提供第三方接口,第三方通过记录在区块链的证据进行裁判。
我们将此模型应用于众筹领域,成功实现了一个应用。合约的存储、触发和执行过程如图6所示。首先,集资者和平台管理员在律师的辅助下填写合约模板,包括生成合约代码,根据需要可以借助形式化工具检验代码的正确性、安全性与一致性。集资者与平台管理员对确认无误的代码签名后上传到区块链上存储。用户首先在众筹平台上匹配想要投资的项目,不同的项目回报方式不一样。用户选中项目后,通过平台提供的资金通道对账户充值,对购买请求(包括购买项目的ID、还款日期等)签名后发送到区块链中。如果购买请求被存储在区块链中,则说明用户购买成功,同时用户账户中的资金也会减少,合约账户的资金增加,若资金不足,则拒绝该请求;若集资失败,合约账户的资金会被退回到用户账户;若集资成功,集资者可以提取已经集资的钱,同时执行还款计划,对合约账户进行还款。合约账户每天定时被触发还款,扫描需要还款的内容,减少自身的资金,增加对应用户的资金。当合约账户资金不足以执行还款计划的时候,发送警告给集资者与平台管理者,逾期严重的触发违约合约。
图6 众筹智能合约的执行过程
智能合约和区块链技术的融合正成为未来数字社会的重要基础设施,是下一代互联网——价值互联网的核心,涉及软件工程、人工智能、计算法律学、数学和形式化方法等交叉融合的综合技术运用。尽管目前还存在很多问题,但我们需要用一种发展的眼光去看待这些问题,唯一的检验标准就是实践。■
本文研究受国家自然基金“可扩展私有区块链关键技术研究”(项目编号:)和教育部-中国移动基金“基于区块链的虚拟币系统技术研究和原型系统开发”(项目编号:MCM)的支持。
[1]Szabo N. Formalizing and Securing Relationships on Public Networks[J]. First Monday, ).
[2] Szabo N. The Origins of Money[J]. Economic History, 2002.
[3] DAO[OL].https://en.wikipedia.org/wiki/Decentralized_autonomous_organization.
[4] Miller M S, Stiegler M. The Digital Path: Smart Contracts and the Third World[OL].http://www.erights.org/talks/pisa/paper/index.html.
[5] Buterin V. Ethereum: A next-generation smart contract and decentralized application platform[OL].https://www.weusecoins.com/assets/pdf/library/Ethereum_white_paper-a_next_generation_smart_contract_and_decentralized_application_platform-vitalik-buterin.pdf.
[6] SM model[OL]. http://www.8btc.com/model-smart-contracts.
[7] Ethereum[OL]. http://www.ethereum.org/.
[8] Hyperledger Project[OL]. https://www.hyperledger.org.
[9] Codius[OL]. https://codius.org/.
[10] Smart Contract[OL].https://en.wikipedia.org/wiki/Smart_contract.
[11] Serpent[OL].https://ethereum.gitbooks.io/frontier-guide/content/.
[12] DAO Attack[OL].http://www.coindesk.com/the-dao-just-raised-50-million-but-what-is-it/.
[13] Selectice[OL].www.selectice.com.
[14] Novatus[OL]. https://getconga.com/solutions/contracts/novatus/.
[15] Apttus[OL].http://apttus.com/.
[16] CommonAccord[OL].http://www.commonaccord.org.
[17] Kleppe A G, Warmer J B, Bast W. MDA explained: the model driven architecture: practice and promise[M]. Addison-Wesley Professional, 2003.
[18] Huth M, Ryan M. Logic in Computer Science: Modelling and reasoning about systems[M]. Cambridge University Press, 2004.
[19] 吴礼发. 网络协议工程[M]北京: 电子工业出版社, 2011.
[20] Milosevic Z. Enterprise Aspects of Open Distributed Systems[D]. Computer Science Dept. The University of Queensland, 1995.
其他作者:黄洁华 陈志东 孙 赫
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
今日搜狐热点

我要回帖

更多关于 智能合约处理交易数据 的文章

 

随机推荐