首页 / 财经

智能合约实例化(智能合约特征)

发布时间:2022-11-16 08:03:34

很多朋友在找帮企客时都会咨询智能合约实例化和智能合约特征,这说明有一部分人对这个问题不太了解,您了解吗?那么什么是智能合约特征?接下来就由小编带大家详细了解一下吧!

智能合约怎么部署到fabric中 超级账本

通过SDK或者API,目前建议你用nodejs版本的sdk,里面提供安装、初始化、实例化等一系列rest 接口

什么是智能合约?

智能合约(英语:Smartcontract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。一个智能合约是一套以数字形式定义的承诺(promises),包括合约参与方可以在上面执行这些承诺的协议。

什么是智能合约?智能合约有哪些应用?

智能合约介绍

智能合约可以帮助你换汇,房子,股份或任何有价值的东西,它以公开透明,没有纠纷的方法完成,同时又避免了中间商的存在。

最好描述智能合约的方式是把它和自动售货机的技术相比较。通常情况下,你要找律师或公证,先付他们款,然后等待你的文件。而使用智能合约,你只要发一个比特币到自动售货机(也就是记账),第三方支付,驾照,或任何东西到你的账号。

智能合约部仅定义和传统合约一样的协议的规则和处罚条款,它还自动执行义务条款。

智能合约的应用

数字身份

智能合约可以允许个人拥有和控制包含数据,信誉度和数字资产的数字身份。它允许个人决定向对手披露何种数据,为企业提供深入了解客户的机会,且交易对手不必持有敏感数据来验证交易。这虽然促进了解客户的需求,但减少了责任。此外,它还提高了依从性,弹性和互操作性。

记录

智能合约可以将统一商业代码(UCC)文件数字化,并自动更新和发布流程,还可以自动地完善贷款人的担保利息信用创建。

它们可以自动遵守在未来某一时期要求销毁记录的规则,并使申请自动发放、自动更新或自动请求抵押品的 UCC

留置权成为可能。在执行此类功能时,智能合约降低了法律成本。

证券

智能合约可以简化资本表管理,能够绕开证券保管链中的中间人,便于自动支付股息,股票分割和债务管理,同时降低了操作风险。结合分布式账本上的证券,智能合约能够将工作流程数字化。

在特拉华州,加密签名可能需要有效的立法来澄清当地的公司法允许在分布式账本上注册。

发行者自然会想知道他们的证券持有者都是些什么人,但是一些买方公司将保护这些信息。

贸易金融

智能合约可以通过快速信用证和贸易支付开启来简化国际货物转移,同时获得更大的金融资产的流动性。它们还可以提高买家,供应商和机构的融资效率。

考虑到贸易融资。智能合约程序的行业标准需要更广的接受度。此外,政府必须确定在执行失败的情况下,特别是在纠纷和违约的情况下,法律应当如何界定责任。

对于贸易金融而言,结算系统、技术要求和离散生态系统的整合是重要的三元素。

衍生产品

智能合约可以简化交易后的流程,消除每个交易对手履行的验证交易,在适当的贸易活动中减少重复过程。它们制定了一套标准的合同条款,并优化场外交易衍生产品的交易后处理过程。它们还能够实时评估位置,以便监控和减少错误。

考虑到衍生产品的智能合约,重要的是要解决与监管改革相关的协议变更。

财政数据记录

财政组织可以利用智能合约进行准确,透明的财务数据记录。智能合约允许跨组织间进行统一财务数据,改进财务报告并降低审计成本。

通过提高数据的完整性,智能合约支持市场稳定性不断增长,此外,它们还通过允许组织之间分摊成本来降低会计成本。分布式账本网络和遗留系统之间的互操作性对于财务报告而言非常重要。

抵押

智能合约可以通过自动连接各方来完成抵押合同的执行,从而提供流畅且不易出错的体验。智能合约可以在贷款支付时自动处理付款并从土地记录中释放留置权。

它们还可以提高所有参与方的记录可见性,并有效促进付款的跟踪和验证。它们减少了人工操作过程中的错误和成本。为了实现这一点,数字身份的核验非常关键。

土地所有权记录

促进财产转移的智能合约可以防止欺诈,提高交易的透明度和效率,并加强身份的可信度。此外,还能降低审计成本。要实现这一点,政府需要为电子备案制定公共协议。

供应链

智能合约可以让供应链中的每一步变得实时可见。互联网设备可以将产品从工厂车间转移到商店货架之间的每个步骤都记录下来。

它们促进粒度级别的库存跟踪,这有利于保护供应链的融资、保险和风险。这种增强的跟踪和验证技术降低了盗窃和欺诈的风险。如果想让智能合约实现大规模应用,供应链参与者必须证明其身份,包括公司,机构,个人,传感器,设施和产品等。

汽车保险

智能合约可以改善目前混乱的汽车投保及赔付流程。智能合约可以记录相关政策、驾驶记录和驾驶员报告,允许互联网车辆在发生事故后立即执行索赔。

合约能够自动处理索赔,验证和付款过程。每个投保人的存储库中都包括了驾驶记录,车辆和事故报告历史。消除重复的报告也会节省成本。不过,这些都需要跨行业协作来解决技术,监管和财务上的挑战。

临床试验

智能合约可以通过增加跨机构的可见性来改善临床试验。隐私保护计算改进了机构之间的数据共享,同时可以自动化患者的数据。合约可以简化试验过程,改善对跨机构之间数据的访问,并可以增加患者隐私的可信度。

对于在启用区块链的网络上执行的智能合约来说,验证,授权和身份仍然是有待解决的问题。

癌症研究

智能合约可以促进癌症数据的共享。他们可以促进患者同意管理过程和汇总数据贡献和数据共享,同时保护患者的隐私,这可能需要新形式的区块链技术来提供实时访问和数据保密性。

浅析 Fabric Peer 节点

Hyperledger Fabric,也称之为超级账本,是由 IBM 发起,后成为 Linux 基金会 Hyperledger 中的区块链项目之一。

Fabric 是一个提供分布式账本解决方案的平台,底层的账本数据存储使用了区块链。区块链平台通常可以分为公有链、联盟链和私有链。公有链典型的代表是比特币这些公开的区块链网络,谁都可以加入到这个网络中。联盟链则有准入机制,无法随意加入到网络中,联盟链的典型例子就是 Fabric。

Fabric 不需要发币来激励参与方,也不需要挖矿来防止有人作恶,所以 Fabric 有着更好的性能。在Fabric 网络中,也有着诸多不同类型的节点来组成网络。其中 Peer 节点承载着账本和智能合约,是整个区块链网络的基础。在这篇文章中,会详细分析 Peer 的结构及其运行方式。

在本文中,假设读者已经了解区块链、智能合约等概念。

本文基于 Fabric1.4 LTS。

区块链网络是一个分布式的网络,Fabric 也是如此,由于 Fabric 是联盟链,需要准入机制,所以在网络结构上会复杂很多,下面是一个简化的 Fabric 网络:

各个元素的含义如下:

对于 Fabric 网络,外部的用户需要通过客户端应用,也就是图中的 A1、A2 或者 A3 来访问网络,客户端应用需要通过 CA 证书表明自己的身份,这样才能访问到 Fabric 网络中有权限访问的部分。

在上面的网络中,共有四个组织,R1、R2、R3 和 R4。其中 R4 是整个 Fabric 网络的创建者,网络是根据 NC4 配置的。

在 Fabric 网络中,不同的组织可以组成联盟,不同的联盟之间数据通过 Channel 来隔离。Channel 中的数据只有该联盟中的组织才能访问,每一个新的 Channel 都可以认为是一条新的链。与其他的区块链网络中通常只有一条链不一样,Fabric 可以通过 Channel 在网络中快速的搭建出一个新的区块链。

上面 R1 和 R2 组成了一个联盟,在 C1 上交易。R2 同时又和 R3 组成了另外一个联盟,在 C2 上交易。R1 和 R2 在 C1 上交易时,对 R3 是不可见的,R2 和 R3 在 C2 上交易时,对 R1 是不可见的。Channel 机制提供了很好的隐私保护能力。

Orderer 节点是整个 Fabric 网络共有的,用来为所有的交易排序、打包。比如上面网络中 O4 节点。本文不会对 Orderer 节点进行详细说明,可以把这个功能理解为比特币网络中的挖矿过程。

Peer 节点表示网络中的节点,通常一个 Peer 就表示一个组织,Peer 是整个区块链网络的基础,是智能合约和账本的载体,Peer 也是本文讨论的重点。

一个 Peer 节点可以承载多套账本和智能合约,比如 P2 节点,既维护了 C1 的账本和智能合约,也维护了 C2 的账本和智能合约。

为了可以更深入了解 Peer 节点的作用,先了解一下 Fabric 整体的交易流程。整体的交易流程图如下:

Peer 节点按照功能来分可以分为 背书节点 和 记账节点 。

客户端会提交交易请求到背书节点,背书节点开始模拟执行交易,在模拟执行之后,背书节点并不会去更新账本数据,而是把这个交易进行加密和签名,然后返回给客户端。

客户端收到这个响应之后就会把响应提交到 Orderer 节点,Orderer 节点会对这些交易进行排序,并打包成区块,然后分发到记账节点,记账节点就会对交易进行验证,验证结束之后,就会把交易记录到账本里面。

一笔交易是否能成功是根据背书策略来指定的,每一个智能合约都会指定一个背书策略。

Peer 节点代表着联盟链中的各个组织,区块链网络也是由 Peer 节点来组成的,而且也是账本和智能合约的载体。

通过对上面交易过程的了解可以知道,Peer 节点是主要的参与方。如果用户想要访问账本资源,都必须要和 peer 节点进行交互。在一个 Peer 节点中,可以同时维护多个账本,这些账本属于不同的 Channel 。每个 Peer 节点都会维护一套冗余账本,这样就避免了单点故障。

Peer 节点根据在交易中的不同角色,可以分成背书节点(Endorser)和记账节点(Committer),背书节点会对交易进行模拟执行,记账节点才会真正将数据存储到账本中。

账本可以分成两个部分,一部分是区块链,另一部分是 Current State,也被称之为 World State。

区块链上只能追加,不能对过去的数据进行修改,链上也包含两部分信息,一部分是通道的配置信息,另一部分是不可修改,序列化的记录。每一个区块记录前一个区块的信息,然后连成链,如下图所示:

第一个区块被称之为 genesis block,其中不存储交易信息。每个区块可以被分为 区块头 、 区块数据 和 区块元数据 。区块头中存储着当前区块的区块号、当前区块的 hash 值和上一个区块的 hash 值,这样才能把所有的区块连接起来。区块数据中包含了交易数据。区块元数据中则包括了区块写入的时间、写入人及签名。

其中每一笔交易的结构如下,在 Header 中,包含了 ChainCode 的名称、版本信息。Signature 就是交易发起用户的签名。Proposal 中主要是一些参数。Response 中是智能合约执行的结果。Endorsements 中是背书结果返回的结果。

WorldState中维护了账本的当前状态,数据以 Key-Value 的形式存储,可以快速查询和修改,每一次对 WorldState 的修改都会被记录到区块链中。WorldState 中的数据需要依赖外部的存储,通常使用 LevelDB 或者 CouchDB。

区块链和 WorldState 组成了一个完整的账本,World State 保证的业务数据的灵活变化,而区块链则保证了所有的修改是可追溯和不可篡改的。

在交易完成之后,数据已经写入账本,就需要将这些数据同步到其他的 Peer,Fabric 中使用的是 Gossip 协议。Gossip 也是 Channel 隔离的,只会在 Channel 中的 Peer 中广播和同步账本数据。

智能合约需要安装到 Peer 节点上,智能合约是访问账本的唯一方式。智能合约可以通过 Go、Java 等变成语言进行编写。

智能合约编写完成之后,需要打包到 ChainCode 中,每个 ChainCode 中可以包含多个智能合约。ChainCode 需要安装,ChainCode 需要安装到 Peer 节点上。安装好了之后,ChainCode 需要在 Channel 上实例化,实例化的时候需要指定背书策略。

智能合约在实例化之后就可以用来与账本进行交互了,流程图如下:

用户编写并部署实例化智能合约之后,就可以通过客户端应用程序来向智能合约提交请求,智能合约会对 WorldState 中数据进行 get、put 或者 delete。其中 get 操作直接从 WorldState 中读取交易对象当前的状态信息,不会去区块链上写入信息,但 put 和 delete 操作除了修改 WorldState,还会去区块链中写入一条交易信息,且交易信息不能修改。

区块链上的信息可以通过智能合约访问,也可以在客户端应用通过 API 直接访问。

Event 是客户端应用和 Fabric 网络交互的一种方式,客户端应用可以订阅 Event,当 Event 发生时,客户端应用就会接受到消息。

事件源可以两类,一类是智能合约发出的 Event,另一类是账本变更触发的 Event。用户可以从 Event 中获取到交易的信息,比如区块高度等信息。

在这篇文章中,首先介绍了 Fabric 整体的网络架构,通过对 Fabric 交易流程的分析,讨论了 peer 节点在交易中的作用,然后详细分析了 peer 节点所维护的账本和智能合约,并分析了 peer 节点维护账本以及 peer 节点执行智能合约的流程。

文 / Rayjun

[1]

[2]

[3]

相信经过帮企客小编对智能合约实例化和智能合约特征的介绍,你对智能合约实例化了解更加地透彻了,感谢你对我们地支持与关注!

免责声明:本文为转载,非本网原创内容,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。

如有疑问请发送邮件至:bangqikeconnect@gmail.com