教程网

您现在的位置是: 首页 > 产业

为什么要用区块链技术实现智能合约?区块链智能合约的原理

为什么要用区块链技术实现智能合约?区块链智能合约的原理
为什么要用区块链技术实现智能合约?区块链智能合约的原理,如果说区块链1.0是以比特币为代表,解决了货币和支付手段的去中心化问题,那么区块链2.0就是更宏观的对整个市场去中心化

为什么要用区块链技术实现智能合约?区块链智能合约的原理,如果说区块链1.0是以比特币为代表,解决了货币和支付手段的去中心化问题,那么区块链2.0就是更宏观的对整个市场去中心化,利用区块链技术来转换许多不同的数字资产而不仅仅是比特币,通过转让来创建不同资产的价值。

区块链技术的去中心化账本功能可以被用来创建、确认、转移各种不同类型的资产及合约。

几乎所有类型的金融交易都可以被改造成在区块链上使用,包括股票、私募股权、众筹、债券和其他类型的金融衍生品如期货、期权等。

智能合约看上去就是一段计算机执行程序,满足可准确自动执行即可,那么为什么用传统的技术为何很难实现,而需要区块链技术等新技术呢?

传统技术即使通过软件限制、性能优化等方法,也无法同时实现区块链的特性:

1.是数据无法删除、修改,只能新增,保证了历史的可追溯,同时作恶的成本将很高,因为其作恶行为将被永远记录;

2.是去中心化,避免了中心化因素的影响。

基于区块链技术的智能合约不仅可以发挥智能合约在成本效率方面的优势,而且可以避免恶意行为对合约正常执行的干扰。

将智能合约以数字化的形式写入区块链中,由区块链技术的特性保障存储、读取、执行整个过程透明可跟踪、不可攥改。

同时,由区块链自带的共识算法构建出一套状态机系统,使得智能合约能够高效地运行。

为什么要用区块链技术实现智能合约?智能合约与区块链的关系,尼克•萨博关于智能合约的工作理论迟迟没有实现,一个重要原因是因为缺乏能够支持可编程合约的数字系统和技术。区块链技术的出现解决了该问题,不仅可以支持可编程合约,而且具有去中心化、不可篡改、过程透明可追踪等优点,天然适合于智能合约。因此,也可以说,智能合约是区块链技术的特性之一。

如果说区块链1.0是以比特币为代表,解决了货币和支付手段的去中心化问题,那么区块链2.0就是更宏观的对整个市场去中心化,利用区块链技术来转换许多不同的数字资产而不仅仅是比特币,通过转让来创建不同资产的价值。区块链技术的去中心化账本功能可以被用来创建、确认、转移各种不同类型的资产及合约。几乎所有类型的金融交易都可以被改造成在区块链上使用,包括股票、私募股权、众筹、债券和其他类型的金融衍生品如期货、期权等。

智能合约看上去就是一段计算机执行程序,满足可准确自动执行即可,那么为什么用传统的技术为何很难实现,而需要区块链技术等新技术呢?传统技术即使通过软件限制、性能优化等方法,也无法同时实现区块链的特性:1是数据无法删除、修改,只能新增,保证了历史的可追溯,同时作恶的成本将很高,因为其作恶行为将被永远记录;2是去中心化,避免了中心化因素的影响。

基于区块链技术的智能合约不仅可以发挥智能合约在成本效率方面的优势,而且可以避免恶意行为对合约正常执行的干扰。将智能合约以数字化的形式写入区块链中,由区块链技术的特性保障存储、读取、执行整个过程透明可跟踪、不可攥改。同时,由区块链自带的共识算法构建出一套状态机系统,使得智能合约能够高效地运行。

基于区块链的智能合约包括事务处理和保存的机制,以及一个完备的状态机,用于接受和处理各种智能合约;并且事务的保存和状态处理都在区块链上完成。事务主要包含需要发送的数据;而事件则是对这些数据的描述信息。事务及事件信息传入智能合约后,合约资源集合中的资源状态会被更新,进而触发智能合约进行状态机判断。如果自动状态机中某个或某几个动作的触发条件满足,则由状态机根据预设信息选择合约动作自动执行。

智能合约系统根据事件描述信息中包含的触发条件,当触发条件满足时,从智能合约自动发出预设的数据资源,以及包括触发条件的事件;整个智能合约系统的核心就在于智能合约以事务和事件的方式经过智能合约模块的处理,出去还是一组事务和事件;智能合约只是一个事务处理模块和状态机构成的系统,它不产生智能合约,也不会修改智能合约;它的存在只是为了让一组复杂的、带有触发条件的数字化承诺能够按照参与者的意志,正确执行。

基于区块链的智能合约构建及执行分为如下几步:

1、多方用户共同参与制定一份智能合约;

2、合约通过P2P网络扩散并存入区块链;

3、区块链构建的智能合约自动执行。

下面详细描述步骤1“多方用户共同参与制定一份智能合约”的过程,包括如下步骤:

(1)首先用户必须先注册成为区块链的用户,区块链返回给用户一对公钥和私钥;公钥做为用户在区块链上的账户地址,私钥做为操作该账户的唯一钥匙。

(2)两个以两个以上的用户根据需要,共同商定了一份承诺,承诺中包含了双方的权利和义务;这些权利和义务以电子化的方式,编程机器语言;参与者分别用各自私钥进行签名;以确保合约的有效性。

(3)签名后的智能合约,将会根据其中的承诺内容,传入区块链网络中。

下面详细描述步骤2“合约通过P2P网络扩散并存入区块链”的过程,包括如下步骤:

(1)合约通过P2P的方式在区块链全网中扩散,每个节点都会收到一份;区块链中的验证节点会将收到的合约先保存到内存中,等待新一轮的共识时间,触发对该份合约的共识和处理。

(2)共识时间到了,验证节点会把最近一段时间内保存的所有合约,一起打包成一个合约集合(set),并算出这个合约集合的Hash值,最后将这个合约集合的Hash值组装成一个区块结构,扩散到全网;其它验证节点收到这个区块结构后,会把里面包含的合约集合的Hash取出来,与自己保存的合约集合进行比较;同时发送一份自己认可的合约集合给其它的验证节点;通过这种多轮的发送和比较;所有的验证节点最终在规定的时间内对最新的合约集合达成一致。

(3)最新达成的合约集合会以区块的形式扩散到全网,如下图所示,每个区块包含以下信息:当前区块的Hash值、前一区块的Hash值、达成共识时的时间戳、以及其它描述信息;同时区块链最重要的信息是带有一组已经达成共识的合约集;收到合约集的节点,都会对每条合约进行验证,验证通过的合约才回最终写入区块链中,验证的内容主要是合约参与者的私钥签名是否与账户匹配。

下面是步骤3“区块链构建的智能合约自动执行”的过程,包括如下步骤:

(1)智能合约会定期检查自动机状态,逐条遍历每个合约内包含的状态机、事务以及触发条件;将条件满足的事务推送到待验证的队列中,等待共识;未满足触发条件的事务将继续存放在区块链上。

(2)进入最新轮验证的事务,会扩散到每一个验证节点,与普通区块链交易或事务一样,验证节点首先进行签名验证,确保事务的有效性;验证通过的事务会进入待共识集合,等大多数验证节点达成共识后,事务会成功执行并通知用户。

(3)事务执行成功后,智能合约自带的状态机会判断所属合约的状态,当合约包括的所有事务都顺序执行完后,状态机会将合约的状态标记为完成,并从最新的区块中移除该合约;反之将标记为进行中,继续保存在最新的区块中等待下一轮处理,直到处理完毕;整个事务和状态的处理都由区块链底层内置的智能合约系统自动完成,全程透明、不可攥改。

智能合约被认为是使用区块链技术的又一个热门技术,在这个领域内,最著名的初创企业就属Ethereum和Eris Industries了,媒体也一直在报道相关的新闻。那么区块链智能合约是什么?

智能合约的智能在英语中对应的单词是Smart,和智能手机(Smart Phone)中的Smart意义相同,表示非常灵活的意思,并不是指人工智能(AI)。智能合约一旦设立指定后,能够无需中介的参与自动执行,并且没有人可以阻止它的运行。

"智能合约"这个术语最初于1997年被Nick Szabo提出,远在比特币出现之前。

他是一位计算机科学家、法学学者和密码学家,他想用分布式账本来存储合同。智能合约就像现实世界中的合同一样。唯一的区别在于,智能合约完全是数字化的。实际上,智能合约是存储在区块链中的一个小型计算机程序。

让我们通过一个例子看看智能合约是怎么运行的。也许你熟知大型众筹平台Kickstarter,产品团队可以在Kickstarter创建项目、设定资金目标,进而从那些相信这个想法的人那里筹集资金。

Kickstarter实质上是介于产品团队和支持者之间的第三方。这意味着双方都需要信任Kickstarter能够妥善地处理他们的资金。

如果项目成功获得筹资,项目团队希望从Kickstarter获得他们的资金。另一方面,支持者希望筹资后他们的资金能够给到项目,或者在没有达到目标的情况下获得退款。产品团队以及其支持者都需要信任Kickstarter。

但是有了智能合约,我们能够构建类似的系统,而不需要信任如Kickstarter这样的第三方。

区块链为智能合约提供可信执行环境,智能合约为区块链扩展应用。而在以太坊上的智能合约,能够控制区块链上各种数字资产进行复杂的操作,随着智能合约开始获得越来越多的使用,人们也发现,就像现实世界的合同一样,如果没有认真审核的话,其中就有可能出现漏洞,并且被坏人利用。而TheDAO项目所出现的一系列巨大问题让更多人开始重视智能合约的安全性。

TheDAO是一个基于以太坊的去中心化自治基金,每个人都可以随时使用以太币参与,没有任何中心化的管理机构,由集体决策进行投资各类区块链项目。由于该项目在28天内筹集超过1.5亿美元,成为全球最大的众筹项目而备受关注。但是由于TheDAO的程序出现漏洞,被黑客窃取了部分资金,使得很多人对智能合约的安全性,甚至是以太坊的安全性开始产生疑问。

事实上,随着事件的发展,大家开始认识到是DAO的智能合约编写出现了漏洞,而不是以太坊的问题。这次事件让所有人认识到智能合约也像传统的合同一样,如果合同的内容和执行流程过于复杂,也需要有律师这样的角色介入审查。而一旦存在漏洞没有被审查发现并被黑客利用,则可能引起糟糕的结果。就像我们可能永远没办法确保所有合同都没有漏洞一样,但不可能由此认为合同方式是没有用处的。智能合约也是如此,只不过在未来也许需要一群专业的人来审计代码。

智能合约可能给金融服务业带来最具颠覆性的改变,就如同曾经的计算机数据处理带来的变革一样。然而,在实现这个目标之前,我们首先需要清除一些障碍。

(1)为什么必须要用区块链技术?大数据或者其他技术不能解决吗?

首先,区块链并不是一种单一技术,它是多种技术的集成的框架。

其次,区块链技术的最大优势其实是整合现有分布式资源的最优方案(我们目前的公共卫生资源,包括:医院、CDC、药店、卫生院、实验室等其实都是分布式的,属于不同的管理体系),使用区块链不代表不使用大数据,不使用AI,可以简单理解为区块链是框架,大数据、AI、IoT等技术是其中的功能。

(2)很多人提到本次疫情爆发的问题不是技术问题,是CDC的行政体系、当地政府管理缺失和制度的问题,所以认为技术并不能解决一切,你们怎么看?

技术确实不能包治百病,区块链也不是万金油,但我们也应该看到技术和管理制度的演进一直以来都是相辅相成的。工业革命带来了现代企业制度和国家管理体系的变革,移动支付技术带来金融政策的调整,所以用技术革新推进制度改革并不是空中楼阁。

(3)文中讲传染病预警为什么要强调隐私保护和医疗机构数据安全共享?

其实制约大数据监测和预警最大的掣肘,是风险特征数据的采集范围和深度问题,而制约大规模采集公共卫生数据的最大难题,是如何保障个人隐私和医疗机构医疗机密数据的安全,如何保障数据各方的利益。这也是要充分解决传染病预警的必要条件,区块链是一个开放式安全架构,它可以在兼顾多方利益的基础上,实现数据的互联互通,这是其他单一技术不具备的。

(4)区块链能解决疫情上报和预警的效率问题吗?

区块链这样的分布式数据传输机制,并不是解决数据传递效率的最优技术路线,要解决数据传递的效率,常用的中心化数据直采模式是最快的(国家传染病网络直报系统传递数据只需要秒级)。

但是效果如何呢?我们可以从本次疫情中的表现一窥究竟。

所以我们理解的“疫情上报和预警的效率”,其实不是指数据从医院到国家传染病自动预警系统的数据直接传输时间,而是指综合了:个人、医院、CDC、政府行政部门等多方博弈和权衡后的结果。这些决策效率的因素本质上是分布式的,所以如何在分布式的环境中实现最优路径才是我们最关注的。目前来看,区块链技术是最优方案。

(5)疫情数据完全透明会带来社会恐慌和经济动荡,所以数据透明化其实是理想主义,没有可实践的意义,你们怎么看?

这种看法目前是主流,这是因为大家对于技术的进步完全没有深刻的理解,目前基于密文的自动校验和计算已经逐渐商业化,联邦学习、多方安全计算、同态加密、密钥交换、非对称加密等技术的不断演进,已经可以解决信息透明和社会维稳的矛盾。信息透明可以依据法律,设置预定义的规则,逐级公开。

 1/3    1 2 3 下一页 尾页