Corda为什么会受到金融行业的广泛好评?R3 & # 039的全面分析;的设计哲学_币圈资讯_鼎鸿网

Corda为什么会受到金融行业的广泛好评?R3 & # 039的全面分析;的设计哲学

Lucy 0

Corda为什么会受到金融行业的广泛好评?R3'的全面分析;的设计理念Corda是企业的分布式账本。

由R3开发维护,2016年正式开业,是与企业以太坊、HyperledgerFabric齐名的知名联盟连锁。Corda是相当独特的——首先,它的设计思想与另外两家截然不同。例如,它使用未支出交易输出(UTXO)模型,而不是帐户模型;然后Corda还有一个完全不同的目标:"便于监督,注重语境,反映现实"是它的设计理念。

Corda到底是怎么设计的?为什么要这样设计?在本文中,作者将简要描述Corda的操作过程。

并讨论Corda的设计理念和哲学,介绍Corda's独一无二"监督"。作者工作的公司是BSOS。

作为Corda的官方技术合作伙伴,拥有开发Corda的实践经验。为了与下面提到的技术相区别,笔者暂称源于比特币/以太坊的区块链技术体系"中本聪区块链"。

Corda的起源

Corda是提升和改善金融合作效率的技术方案。

。与激进的方案"建立分权的财政体制"在这个生来就带有赛弗朋克色彩的区块链身上,就温和多了,也稳重多了。R3认为,今天';美国金融业之间的合作模式不仅效率低下。而且成本高——原因是每个银行都维护自己的账本,为了追求严谨,互相验证是一件很费时间的工作';的书;而且每个不同的协作场景都需要重复验证过程,这也使得协作效率低下。在这点上R3提出的解决方案很直观:把书从"在"到"介于"银行,让银行共同维护一个账本,降低建立信任的成本。

简单地说,Corda可以使两家或两家以上的银行共享同一个账簿,形成一种"共识"帐簿上,并与对方核对帐簿上的内容。

,降低信任成本。那么如何降低成本呢?降低成本几乎可以等同于减少人为因素和自动化流程。Corda使books能够根据"合同"和"过程"由双方事先订立。

左一左二:现有的合作范式;右一:科达';的协作范式。资料来源:Corda金融合作白皮书

科达';的设计不仅深受当地区块链的启发,而且注重"易于监督,注重语境,反映现实",这给了Cordaa一个非常明确的定位。基于当地的区块链Corda在书籍、共识和合同的设计方面开发了一个独特的框架。在本文中,作者将更详细地阐述这三者的设计思想。

在此之前,让';让我们来看看Corda的基本组件和操作流程。

Corda概观

科达网络。资料来源:Corda官方文件

Coldaisapeer-to-peernetwork.

参与者)——,简称Corda节点,是Corda网络的主要成员,他们可以根据场景自由组建不同的业务网络。

除了Corda节点,还有一些必要的服务节点。

例如,公证服务负责检查交易的双重支出;身份服务);负责身份和权限控制;网络地图服务);负责节点查询;以及负责引入真实世界信息的甲骨文。

Corda节点

Corda节点架构。资料来源:Corda官方简报

Corda节点的结构如上图,包括:服务节点需要的模块,如公证模块、身份模块;与事务执行和存储相关的模块

,如Java虚拟机(JVM)、事务数据库(Rows)和Vault和一个或多个运行在Corda:CorDapp上的分布式应用程序。

"金库"在Corda节点不同于开源项目HashicorpVault

CorDapp简介

CorDapp是运行在Corda上的分布式应用。

,所有的Corda节点都需要通过CorDapp发送交易,形成共识,更新书籍。从概念上讲,

CorDapp是业务逻辑的封装,使得在不同机构之间复制或转移复杂的金融业务变得更加容易。Corda节点也可以同时运行多个CorDapp,参与不同的协作场景。

具体来说,这些业务逻辑指的是"过程","状态"和"合同":

流程:每个CorDapp对应一个唯一的"流动"由开发人员根据实际需要制定,通常与业务流程相关。是交易的发起者和响应者之间从发起交易到确认交易的一组步骤,类似于协议。尤其是"公证服务"也在流程中指定。。声明:每个CorDapp都有一个"国家"表达比简单的账户余额更多的信息。但是,此处的状态仅定义了状态"格式"它实际上并不存储值本身。,实际的"价值"只有在发起交易时,才会根据此格式记录在交易中。合同:"状态"每个CorDapp对应一个"合同"。,它是一组约束规则——,用来验证交易的有效性,即"合同"在现实世界中。值得一提的是"合同"科达普和"智能合同"这个区块链是两个完全不同的概念。

实际来说,CorDapp是一个JAR文件,Java类被包装在其中,在JVM中运行。

。上面提到的"过程","状态"和"合同"都有自己对应的Java类别,Corda官方也为开发者提供了在其上开发CorDapp的基础模板。

Corda交易的四大阶段

虽然CorDapp可以设计一个"过程"为了应对不同的业务逻辑,交易过程仍然可以大致分为四个阶段:

发起事务:发起者根据"国家"和"输入"科达普的;然后生成一个新状态的事务并签名;验证交易:受访者根据"合同"由事务指向,如果有效,则在事务上签名。合同的功能将在下面详细描述;公证交易:由指定的"公证服务",如果交易有效,则"公证服务"将签署交易;更新账本:发起方和响应方检查交易是否经过公证服务签字,如果是则更新账本。

值得注意的是,Corda交易只由双方验证和执行,交易内容不会广播到所有节点。

这样的交易过程更符合现实世界中发生的交易过程,不同于"排序-执行"这个区块链的共识模型;另一方面科达';保持账簿一致性的方法也与本地区块链完全不同——Corda不需要维护全球唯一的交易顺序,也不决定“交易顺序”会计权利"去中心化的模式。它只需要维护所有节点对交易唯一性的共识,这项工作可以通过一个能够观察全局的公证服务来完成。关于共识和公证服务的细节,笔者将在下文阐述。

接下来,让';让我们讨论科达';深入的设计思想。

Corda的设计思路

正如序言中提到的,Corda是一种受区块链启发的技术。在书籍、共识和契约的设计中,它从这个区块链身上学到了什么?

?发明了什么?

1.帐本:扩充UTXO,并将帐本局部化

UTXO型号

未用完的事务输出,UTXO)是一个经典的发明。

也是比特币使用的模式。与帐户模型相比,UTXO的状态并不集中在一个巨大的树形数据结构——中,也不被称为"世界国家",而是以分散的方式记录在每笔交易中。

在UTXO模型中,每个事务都有"输入"和"输出":

输出是新的状态;输入是其他事务的输出。

例如,在上图中,事务"事务哈希=1ba0ce7a71…";右边有两个"输入"。

,分别对应于左事务"事务哈希=95fd065CB0…";左边事务的第一个输出"transactionhash=0dbfc6665…";

输出有两种状态:耗尽和未耗尽。如果一个"输出"被认为是一个"输入"通过其他交易

,这个"输出"是"耗尽"并且不能用作"输入"其他交易。在UTXO模型中必须防止重复花费,以保证图书的安全性。

UTXO模型可以展示状态演化的完整过程,并使每个过程清晰明了,比较适合注重原始凭证的金融行业。同时

UTXO模型下的交易顺序自然建立,也有利于设计更轻的共识机制。

corda交易内容

Corda也在UTXO的基础上做了很多扩展。

例如,设计"命令"和"附件"被引入,它与"国家"丰富了UTXO的表达能力,实现了更复杂的值传递。值得一提的是"附件"可以是有效的合同法律文本,即使发生意外的交易结果,也可以根据实际的合同文本采取后续行动。

科达';的书是本地化的。资料来源:Corda官方文件

UTXO模型下的账簿是由所有交易组成的有向无环图(DAG)的边的状态集。如概述中所述

科达';的事务只会被相关方保存,不会向全网广播,所以Corda节点维护一个"本地"帐簿只与它本身有关,而不是一个"全球"所有交易的帐簿。如上图所示:爱丽丝';的账簿有交易2、6、5、4、1;鲍勃';的账簿只有交易2和交易6。结果是全部:事务不再被所有节点验证,所以任何节点只能自己获取和验证与事务和事务上游的所有事务。一直追溯到源头。事实上,这"惰性验证"范式对于全网的计算能力来说是比较轻的。

2.共识:无需区块链,使用更轻量的共识机制

Corda";公证服务"资料来源:Corda的官方文件。

Corda是分布式账簿,也需要维护"共识"保证账本的运转。它把共识的两个属性:有效性和唯一性。

,分别由不同的机制来维持。

交易的有效性由相关各方保证;交易的唯一性由"公证服务"

实际上他们都不需要使用区块链。为什么?首先,这个"公证服务"是相对集中的设计,不需要通过块来辅助核算权的决策过程;其次,由于UTXO模型的交易顺序是自然建立的,共识的形成不需要考虑交易的全局排序。

不需要使用块来建立顺序。

公证服务检查交易是否"双重花费"通过保存来自不同节点的多个事务来确认事务的唯一性。

。所有公证服务都有实名登记制的地位,只会指定有足够公信力的公证服务。每笔交易要送的公证服务都是直接指定的,不存在"工作证明"。

事实上,虽然这种公证实践离今天并不遥远';的业务运作逻辑,与现有做法相比,公证服务还具有以下两个特点:

所有操作都是自动化和透明的;公证服务可以是由不同组织组成的集群。每个公证节点先单独验证,然后通过拜占庭容错(BFT)或容错(CFT)的共识算法形成共识,互相监督制衡。

3.合约:需与流程搭配以实现可程式化的价值

Corda合同。资料来源:Corda官方文件

Corda合同就像我们在现实世界中所熟悉的各种合同一样——它们提供了特定的规范来测试"国家"

,违反约定的交易无效。

例如,在租房子的时候租赁合同"有房子状况的说明。

例如,你可以';不要在墙上打洞,保持家具完好无损等等。如果违反合同,租赁交易无效,轻则直接终止租赁交易,重则承担违约金。

Corda契约与真实世界契约之间的映射关系与"反映现实"

把金融行业运行多年的各种合同复制到科达,非常方便。

如果我们对"Corda合同"和"以太坊智能合约",我们将得到以下结果:

也就是说,"合同"Corda和"智能合同"的区块链,但它们有不同的目的和功能:

智能合约(Smartcontract):可执行代码,包含多个可调用的函数,具有值传递的能力,实现"可编程值"。将本地区块链变成通用计算平台;Corda契约:是映射到书本上的现实世界的规范,更接近契约的原始定义。虽然都是可执行代码,但是它只有一个预先建立的接口,除了验证交易之外没有其他功能。

虽然Corda契约本身的表现力是有限的,但Corda仍然可以实现"可编程值"通过"过程"和"交易"

,例如将多个事务串成一个"过程"。关于实现细节,官方文档提供了详细的例子,所以我赢了';暂时不要细说。

让Corda更易监管的设计:观察节点与紧急通道

相对于其他两大联盟链,为金融行业而生的Corda可以说是最懂、最易监管的分布式账本。

。从集成公钥基础设施(PKI)便于控制和跟踪的节点实名注册系统,到可以显示完整状态历史和交易上下文的UTXO模型,都相当适合监管的实施。

另外,科达还有一些特殊的设计,可以让监理更积极的参与进来:

观察者:观察者是一个特殊的节点,可以观察交易过程。虽然Corda只允许参与交易的所有各方保存交易数据,但"观察节点"没有实际参与交易的人可以获得其观察对象的交易内容。。紧急访问):Corda也有一种机制,例如"紧急通道"作为特殊情况下的逃生门,这样一些"特殊节点"可以执行诸如挂起事务和纠正错误事务之类的操作。

。虽然看起来有点违背分布式账本本身的定义,但对于Corda要应对的金融行业场景来说,大概是必须的。

结语

在这篇文章中,作者全面分析了Corda的设计思想:它扩展了UTXO。

和"本地化"书籍;它不需要一个"区块链"并使用了一种更简单的共识机制;它还可以实现"可编程值"。

有趣的是

类似于Corda的设计也可以在其他发行的书籍中找到。比如全息链也是只通过相关方来验证交易。本地区块链之外的这些技术其实可以互相借鉴,互相补充,让我们对分布式账本技术有了更完整的认识。
Corda为什么会受到金融行业的广泛好评?R3 & # 039的全面分析;的设计哲学文档下载: PDF DOC TXT