1. 首页 > 娱乐生活

重庆公安局正式投入使用区块链“社区民警智能名片”

什么是智能合约?

智能合约又称智能合同,是由事件驱动的、具有状态的、获得多方承认的、运行在区块链之上的、且能够根据预设条件自动处理资产的程序,智能合约最大的优势是利用程序算法替代人仲裁和执行合同。

简单说,智能合约是一种用计算机语言取代法律语言去记录条款的合约。智能合约可以由一个计算系统自动执行。简单地说,智能合约就是传统合约的数字化版本。

如果区块链是一个数据库,智能合约就是能够使区块链技术应用到现实当中的应用层。智能合约是在区块链数据库上运行的计算机程序,可以在满足其源代码中写入的条

件时自行执行。智能合约一旦编写好就可以被用户信赖,合约条款不能被改变,因此合约是不可更改的。

区块链智能合约有三个技术特性

1. 数据透明

区块链上所有的数据都是公开透明的,因此智能合约的数据处理也是公开透明的,运行时任何一方都可以查看其代码和数据。

2. 不可篡改

区块链本身的所有数据不可篡改,因此部署在区块链上的智能合约代码以及运行产生的数据输出也是不可篡改的,运行智能合约的节点不必担心其他节点恶意修改代码与数据。

3. 永久运行

支撑区块链网络的节点往往达到数百甚至上千,部分节点的失效并不会导致智能合约的停止,其可靠性理论上接近于永久运行,这样就保证了智能合约能像纸质合同一样每时每刻都有效。

总而言之,在区块链社会里,大家共同维护一个区块链账本,所有交易数据无法篡改、不可伪造,还能减少人工对账的出错概率和人力成本;随着智能合约普及,我们也会变得更加佛系。面对潜在的纠纷,无需自己出马,一切代码说了算。

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

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

就我们目前对于区块链的讨论而言,我们已经说过很多话题,包括什么使得区块链转账不可篡改,区块链技术是如何在多方金融交易中提供信任等等。但是我们还没有说过,区块链技术可以在交易过程中去除第三方代理人,这就是“智能合约”的内容。

在我们深入研究这个话题之前,首先需要说明,除了名字,智能合约并不是传统意义上的合约,它也不能代替合约。智能合约是一套软件程序,是基于区块链的,并且会在区块链检测到某些特定数据条件下时会触发。如果这个听起来很模糊,这是因为智能合约可以在很多场合应用。

假设现在要转移资产,那么你就得按照以下步骤来做(假设双方已经达成相关协议):

1.买方已经付了首付2.假设买方有借贷资金,银行支付了剩下来的款项。3.偿还资产现在的未支付费用,例如月供,未支付的税等等。4.剩下的资金会给到卖方5.任何必要的新留置权(例如,买方的抵押)被添加到资产中6.资产所有权会从卖方更名到买方

假设在美国平均购买一套房子的价格是大约40万美金,这所涉及的资金并不少,所以对于买卖双方来说,寻找可信任的中介就显得至关重要,因为这可以促进交易的进行。买卖双方基本上会同意让中介来准备需要的材料,并且在上面所说步骤进行过程中持有资金。这就保证了卖方不会拿钱跑路,并留给买方一个没有意义的资产。

所以,区块链和智能合约是怎么完善这样的交易呢?开始的时候,完成交易的必要数据会存储在单个区块链系统中。然后至少要有类似政府机构的资产和信用记录系统要介入,并且这个系统还要能够使用加密货币或者传统自动房屋清算支付机制。

假设以上的条件都

呢呢个满足,那么有人就可以写一个电脑程序(智能合约)来监控以上所说的数据。那么为了执行这项交易,以下的步骤就需要满足。

1.买卖双方要能够在销售条款上达成一致,并且将这些条款写入智能合约,最后还需要双方的电子签名,表示接受。智能合约应用可以在区块链转账上写下条件和认证要求。

2.交易结束,买方会将首付款通过智能合约发到智能合约的锁定账户。智能合约应用会在区块链写入新的锁定余额和支付记录。

3. 假设所有文件的签署都成功进行(这是在系统外部进行),买房的贷款公司会将剩下的资产通过智能合约转到锁定账户。智能合约应用会在区块链上写下新的账户余额和转账记录。

这时候,智能合约上可以看到双方交易的条款以及卖方已经完成的支付。假设支付满足交易条款,智能合约就会开始以下的交易项目:

4. 智能合约应用将资金转移到各个债权人,并将各个债权人账户关闭,减少锁定账户的余额,交易有关的记录都会在区块链上。

5. 智能合约应用会将产权名称转向买方,从而月供贷款公司就会有新的还债人,并且将剩余资金转给卖方,所有记录都会在区块链上。

假设的工作流程演示了在真实房地产交易过程中,可以去除第三方中介,但是值得注意地是,资产记录系统还需要很大的发展(大概率是政府机构),这样才能完成这样的工作流程。

这个例子着重突出了对于区块链技术在法律方面的应用,潜在的和技术可用性之间的差别。在实际技术使用中,应用智能合约并不是最复杂的部分。最难的挑战在于整个流程中其他的方面,现有的监管主体和机构如何介入,这会最终让这套方案可以使用。

但是,这其实也可以提出很多有趣的问题:谁应该写这样一个智能合约应用?提供这样应用的人怎么才能获得市场的信任?如果在这个过程中发生了问题该怎么办?

智能合约本质是一段运行在区块链网络中的代码,它完成用户所赋予的业务逻辑。以以太坊体系的代币为例,其业务逻辑是代币发币和交易。以太坊在设计之初,将智能合约设计成了一旦部署就不能修改的模式。这种设计有可能是为了提高智能合约的可信性。但是我们知道,只要是由人编写的程序,就一定会出现错误和缺陷。以太坊这种设计本身就违背了程序设计的一般规律,在智能

合约出现漏洞的时候可能会造成无法弥补的损失。我们可以看到,近期出现的以太坊体系智能合约的漏洞,造成了巨大的影响,有的代币也因此毁灭。

目前以太坊体系区块链智能合约的机制设计,加之漏洞可能带来的毁灭性影响,使得已上线智能合约的漏洞的报告和处理变得非常棘手。360代码卫士团队在近期的研究中发现了以太坊体系下多个已上市交易的代币的智能合约安全漏洞,并已第一时间报告厂商,但到目前为止厂商尚未作出任何回应。对于厂商来说,由于智能合约不可修改的特性,要对上线后发现的漏洞进行有效修复,只能选择重新部署新的合约,这将付出巨大的代价,因此有的厂商可能会选择不响应,不处理。

而对于安全研究者来说,也面临尴尬的境地,左右为难。在厂商修补漏洞前公开漏洞细节对于厂商不利,有悖漏洞披露的一般原则,但如果厂商迟迟不修补漏洞,公众对于漏洞的存在不知情,风险会随着时间的增长迅速膨胀,漏洞一旦爆发可能会造成更大的危害,波及更大的人群,可能会造成很多人的投资瞬间化为乌有。接下来360代码卫士团队还将与厂商保持积极的联系和沟通,以期帮助其修复漏洞。

 2/3   首页 上一页 1 2 3 下一页 尾页

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:http://www.longfuchaju.com//ylsh/4680.html

联系我们

在线咨询:点击这里给我发消息

微信号:wx123456