详细了解非区块链区块链
随着时间的流逝,区块链世界已经分为两个不同的部分。 一方面,公共区块链及其相关的加密货币最近经历了一次非凡的复兴,造就了许多亿万富翁。 另一方面,许可或企业区块链的使用正在悄悄但稳步增长,见证了它们的首次出现。 实时部署 在2017年涵盖多个行业。
要考虑的一个有趣问题是,这两种类型的链之间的适当程度的相似性。 两者都使用对等网络,公共-专用密钥加密,事务规则和共识机制来实现共享数据库,这些机制可以使恶意行为者幸免。 这是很多共同点。 尽管如此,公共和私有区块链在保密性,可扩展性和治理方面有不同的要求。 这些差异也许表明需要根本不同的设计。
科尔达 平台,由 R3 银行业财团对此问题采取了明确立场。 尽管某些方面受到公共区块链的启发,但Corda是根据R3成员的需求从头开始设计的。 确实,尽管R3仍然使用“区块链”一词 广泛 为了帮助推销他们的产品,Corda根本没有区块链。 我所了解的Corda远远超过了其他任何“分布式分类帐”平台,都与传统区块链的架构完全不同。
我在这篇文章中的目标是解释这些差异并讨论它们的好与坏。 实际上,好与坏是错误的表达方式,因为更有趣的问题是“对什么有好有坏?” 本文远非短篇。 但是到最后,我希望读者能够对Corda的不同之处以及由此而来的取舍有所了解。 Corda之所以重要,是因为其设计决策使企业区块链的许多困境得到了极大缓解。
我们涉足之前的最后一件事。作为公司背后的首席执行官 多链,一个流行的企业区块链平台,为什么我要深入介绍所谓的竞争产品? 标准理由是争夺MultiChain的优势,但这不是我的动机。 实际上,我不认为Corda和MultiChain是竞争对手,因为它们在设计,架构和受众方面根本不同。 Corda和MultiChain的竞争方式与邮轮和摩托艇相同-虽然两者都是海上运输人员,但在现实世界中几乎没有两种情况都可以使用。
从更贴切的角度来看,我在过去几年中从Corda的技术领导层学到了很多东西,无论是通过会议,信函还是公开写作,其中很多都是在他们加入R3之前发生的。 我对Corda的某些兴趣源于我对这个团队的尊重,仅出于这个原因,Corda对于那些希望了解分布式账本领域的人来说值得研究。
引入区块链
为了理解Corda,从常规区块链开始很有帮助。 区块链的目的是使非信任方可以直接安全地共享数据库或分类帐。 这与由单个组织存储和控制的集中式数据库形成对比。 区块链具有多个“节点”,每个节点都存储数据库的副本,并且可以属于不同的组织。 节点使用“闲话协议”以密集的对等方式相互连接,在该协议中,每个节点不断地告诉对等点它学到的一切。 结果,任何节点都可以通过许多替代路径将消息快速广播到整个网络。
无论是集中式数据库还是由区块链驱动的数据库,都始于空状态,并通过“交易”进行更新。 事务定义为一组“原子的”数据库更改,这意味着它们整体上是成功还是失败。 想象一个代表财务分类帐的数据库,每个帐户一行。 爱丽丝向鲍勃支付10美元的交易有三个步骤:(1)验证爱丽丝的账户中至少包含10美元,(2)从爱丽丝的账户中减去10美元,以及(3)向鲍勃的账户增加10美元。 作为基本要求,任何数据库平台都必须确保没有事务干扰另一个事务。 这种“隔离”是通过在付款过程中锁定Alice和Bob的行来实现的。 涉及这些行的任何其他事务都必须等到这一行完成。
在区块链中,每个节点都在其自己的数据库副本上独立处理每个交易。 事务在网络上的任何位置创建,并自动传播到所有其他节点。 由于运行节点的组织可能有不同(甚至冲突)的利益,因此它们不能互相信任以公平地进行交易。 因此,区块链需要定义特定交易是否有效的规则。 在共享的财务分类帐中,这些规则可防止用户花费彼此的金钱或凭空捏造资金。
除了确定交易有效性的规则外,区块链还必须定义交易的订购方式,因为在许多情况下,这种订购至关重要。 如果Alice拥有15美元,并试图通过两次单独的交易将10美元同时发送给Bob和Charlie,则其中只有一笔可以成功。 尽管我们可能要说第一个事务优先,但是对等网络没有“第一个”的客观定义,因为消息可以以不同的顺序到达不同的节点。
交易规则
一般而言,任何数据库中的信息都分为记录或“行”,并且事务可以执行三项不同的操作:删除行,创建行和/或修改行。 由于修改一行等同于删除该行并在其位置创建一个新行,因此可以将其进一步减少为两个。 回到爱丽丝给鲍勃的付款,删除了她的包含$ 15的行,并创建了两个新行–鲍勃包含10美元,鲍勃包含5美元的“找零”。
遵循比特币和Corda的术语,我们将交易删除的行称为“输入”,将创建的行称为“输出”。 事务删除的任何行都必须由先前的事务创建。 因此,每个事务输入消耗(或“花费”)先前事务的输出。 数据库的最新内容由“未使用的交易输出”或“ UTXO”集定义。
在区块链中,满足以下三个条件的交易才有效:
- 正确性。 交易必须代表从输入到输出的合法转换。 例如,在财务分类账中,投入中的资金总数必须与产出中的总数相匹配,以防止金钱神奇地出现或消失。 唯一的例外是特殊的“发行”或“退休”交易,其中明确添加或删除了资金。
- 授权。 交易必须由其输入消耗的每个输出的所有者授权。 在财务分类帐中,这可以防止参与者未经允许而花费对方的钱。 交易授权使用非对称(或公私钥)加密技术进行管理。 每行都有一个由公共密钥标识的所有者,其相应的私有密钥被保密。 为了获得授权,交易必须由其每个输入的所有者进行数字签名。 (请注意,行还可以具有更复杂的“多重签名”所有者,例如,三分之二的任何一方都可以授权其使用。)
- 唯一。 如果某个事务使用特定的输出,则没有其他事务可以再次使用该输出。 这样我们可以防止Alice向Bob和Charlie支付冲突的款项。 尽管这两种付款的交易都可以正确和授权,但唯一性规则可确保数据库仅处理其中一项。
在传统的区块链中,每个节点都会根据这三个规则检查每笔交易。 稍后,我们将看到Corda如何以不同方式划分此职责。
建筑模块
区块链实际上是一个区块链,其中每个区块都通过唯一标识其内容的“哈希”链接到前一个区块。 每个块都包含一组有序的事务,这些事务不得相互冲突或与先前的块中的事务冲突,以及时间戳和一些其他信息。 就像事务一样,块在网络中迅速传播,并由每个节点独立验证。 一旦交易出现在一个区块中,便会对其进行“确认”,从而导致节点拒绝任何冲突的交易。
谁负责创建这些块,我们如何确保所有节点在权威链上都达成一致? 这个“共识算法”问题本身就是一个巨大的话题,充满了奇妙的缩写,例如PoW(工作证明),PBFT(实用拜占庭容错)和DPoS(委托权益证明)。 我们不会在这里介绍所有内容。 可以说,企业的许可区块链使用某种投票方案,将投票权授予集体负责的“验证者节点”。 该方案确保只要大多数验证者节点正常且诚实地运行,交易将以(接近)公平的顺序进入链,时间戳将(大约)正确,并且确认的交易随后无法撤消。
在讨论区块链的一些挑战之前,我想澄清三点。 首先,虽然我在整个示例中以财务分类帐为例,但交易的输入-输出模型支持更广泛的用例。 每行可以包含一个包含许多不同类型信息的丰富数据对象(例如JSON)–确实,Corda出于这个原因使用了“状态”而不是“行”。 富裕国家对事务规则没有任何根本改变:正确性仍然是根据输入和输出定义的,仍然需要对每个输入进行授权,并且唯一性确保每个输出只能使用一次。
其次,在很多区块链用例中,仅在数据库中创建行,而从未删除行。 这些应用程序涉及通用数据存储,时间戳记和公证,而不是维护某种不断变化的分类帐。 在这些仅数据的应用程序中,事务在其输出中添加数据,但在其输入中不消耗任何数据,从而简化了正确性,授权和唯一性的规则。 尽管纯数据用例已成为我们在MultiChain开发中日益关注的重点,但我在此仅提及它们,因为Corda显然不是在设计时就考虑到它们的。
最后,值得注意的是,某些区块链平台未使用输入输出模型。 以太坊提出了另一种范式,其中链控制着具有由“合同”管理的全局状态的虚拟计算机,而事务之间没有明确地相互连接。 关于许可区块链中以太坊模型的讨论不在我们的讨论范围内,但请参见 本文 以获得详细的解释和评论。 输入输出范式的一个关键优势是,大多数事务可以并行且彼此独立地处理。 这个属性对于Corda至关重要,我们将在后面看到。
区块链挑战
让我们想象一下,世界各地的银行创建了一个共享的分类帐,以代表各种金融资产的所有权,转移和交换。 从理论上讲,这可以在常规的区块链上实现,如上所述。 每行将包含三列–资产标识符(例如GOOG或USD),拥有的数量以及所有者的公钥。 每笔交易都会将一项或多项资产从其投入转移到其产出,并具有发行和退还的特殊情况。
网络中的每个银行都将运行一个或多个彼此相连的节点,以传播和验证交易。 高级成员将充当验证者,并负责确认,订购和加盖交易时间戳。 任何验证者的不当行为对于网络中的所有节点都是可见的,从而导致谴责,驱逐和/或法律诉讼。 有了这一切,任何金融资产都可以在几秒钟内在全球范围内转移,正确性,授权性和唯一性规则保证了分类账的完整性。
这幅画怎么了? 实际上,存在三个问题:可伸缩性,机密性和互操作性。 可伸缩性问题很简单。 我们提议的银行间区块链将要求每个成员验证,处理和存储世界上每家银行执行的每笔交易。 即使这对于最大的金融机构在技术上是可行的,但是计算和存储的成本也会对许多人构成重大障碍。 当然,我们希望有一种系统,在这种系统中,参与者只能看到他们立即参与的那些交易。
但让我们将可伸缩性放在一边,因为最终可以使用昂贵的计算机和聪明的工程技术来解决它。 一个更根本的问题是机密性。 虽然听起来似乎是乌托邦式的,但每笔交易在任何地方都可见,但在现实世界中,如此激烈的透明性对于竞争和监管而言却并非开门红。 如果摩根大通和汇丰银行交换了一对资产,他们不太可能希望花旗银行和中国银行看到他们的所作所为。 如果交易是代表这些银行的客户进行的,则以这种方式进行交易可能是非法的。
一种针对机密性问题的建议解决方案是在Hyperledger Fabric中实现的“渠道”。 每个通道都有某些成员,这些成员是整个网络中节点的子集。 通道的交易仅对其成员可见,因此每个通道有效地充当单独的区块链。 尽管这样做确实有助于保密,但它也破坏了整个练习的重点。 没有可信赖的中介机构的帮助,资产就不能从一个渠道转移到另一个渠道。 SWIFT最近在强调这种方法的难度 和解概念证明,估计生产中将需要超过100,000个频道。 那是无法直接移动资产的100,000个岛屿。
在仅数据的用例中,交易不消耗输入中的数据,可以通过对输出中的数据进行加密或散列,然后在链外传递解密密钥或未散列的数据来避免机密性问题。 但是对于输入消耗其他交易输出的交易,每个节点都必须查看这些输入和输出以验证交易。 而先进的加密技术如 机密资产 和 零知识证明 已经开发出了用于部分或完全解决财务分类账问题的工具,它们增加了巨大的性能负担和/或不能推广到任何正确性规则。
最后,让我们谈谈互操作性。 在理想的世界中,每家银行都将在推出之日立即加入我们的全球区块链。 然而,实际上,基于地理位置或既有关系,不同的银行集团将采用多个区块链。 随着时间的流逝,一个小组的成员可能希望通过在链之间转移资产来开始与另一小组的成员进行交易。 就像渠道一样,这只能在受信任的中介机构的帮助下才能实现,从而破坏了区块链的目的。
Corda旨在通过彻底重新思考分布式分类帐的工作方式来解决可扩展性,机密性和互操作性这些相互关联的问题。
科尔达的部分观点
Corda的根本区别很容易解释:每个节点仅看到网络上处理的部分交易,而不是全部。 尽管所有这些事务都定义了一个逻辑和概念分类帐,但没有一个单独的节点能完整地看到该分类帐。 为了进行比较,在任何时间点上,世界上每张美元钞票都在一个特定的位置,但没人知道它们的全部位置。
那么,Corda节点会看到哪些交易? 首先,它直接与之相关,因为它拥有该交易的输入或输出之一。 在财务分类账中,这包括节点正在发送或接收资金的每笔交易。 假设爱丽丝(Alice)创建了一笔交易,消耗了她15美元的输入并有两个输出-一个对我来说是10美元,另一个对她来说是5美元的“找零”。 爱丽丝向我发送此交易后,我可以检查它的正确性和授权,并验证输入和输出的余额以及爱丽丝已签名。
但是,仅凭此交易是不够的。 我还需要验证Alice的15美元输入状态是否确实存在,并且她并不仅仅是弥补了这一点。 这意味着我需要查看创建此状态的事务,并检查它的正确性和授权。 如果之前发送给Alice $ 15的交易有$ 10的输入属于Denzel,又有$ 5的输入来自Eric,那么我还必须验证创建这些交易的交易。 依此类推,一直追溯到创建资产的原始“发行”交易。 我需要验证的交易次数将取决于资产易手次数和向后分支的程度。
由于Corda节点不会自动看到每个事务,因此它们如何获得所需的事务? 答案来自每笔新交易的发送者。 在Alice消费一笔$ 15的交易之前,她必须已经验证了收到该交易的交易。 而且由于Alice必须已经应用了上面的递归技术,所以她将获得此验证所需的每个事务的副本。 鲍勃只是在交互过程中向爱丽丝请求这些交易。 如果Alice没有适当回应,Bob会得出结论,Alice试图欺骗他,并拒绝了收到的付款。 如果鲍勃被发送一个新交易,而该交易的输入有多个所有者,则他可以从每个交易中获得必要的证明。
介绍公证人
到目前为止,我们已经解释了Bob如何验证传入事务的正确性和授权,包括递归地追溯其输入的来源。 但是,我们还需要考虑另一个规则:唯一性。 假设爱丽丝是恶意的。 她可以生成一笔交易,其中她向Bob支付10美元,而另一笔交易中,她向Charlie支付相同的10美元。 她可以将这些交易分别发送给Bob和Charlie,以及每项交易的正确性和授权的完整证明。 尽管两个事务都通过使用相同的状态而相互冲突,但是Bob和Charlie无法知道这一点。
常规的区块链通过每个节点看到每笔交易来解决此问题,从而使冲突易于检测和拒绝。 那么,具有部分交易可见性的Corda如何解决相同的问题? 答案是在“公证人”的帮助下进行的。 公证人是可信赖的一方(或多个共同努力的方),可保证特定状态仅使用一次。 每个状态都有一个特定的公证人,该公证人必须签署使用该状态的任何事务。 公证人一旦这样做,就不得再为同一状态签署另一笔交易。 公证人是网络交易唯一性的监护人。
尽管每个状态可以有不同的公证人,但特定事务消耗的所有状态必须分配给同一事务。 这样可以避免与死锁和同步有关的问题,这些问题对于具有分布式数据库经验的人应该是熟悉的。 假设爱丽丝和鲍勃同意将爱丽丝的10美元换成鲍勃的7英镑。 交换交易必须由两个州的公证人签署,但是哪个先行? 如果爱丽丝的公证人签字,但鲍勃因某种原因失败了,那么爱丽丝的交易就不完整,再也无法使用她的10美元。 如果鲍勃先签了字,那么他也同样暴露在外。 虽然我们可能希望公证人简单地合作,但实际上这需要相互信任并使用共识协议,这是Corda设计师选择避免的复杂性。
如果要求具有不同公证人的州作为单个交易的输入,则其所有者首先执行特殊的“公证人变更”交易,这会将一个州从一个公证人转移到另一个公证人,而没有其他任何改变。 因此,当各方使用多个输入进行交易时,他们必须首先同意要使用的公证人,然后执行必要的公证更改。 尽管我的开发人员在阅读有关此变通办法时感到一小撮痛苦,但只要公证人坚持不懈,就没有理由不起作用。
还应该澄清的是,尽管每个公证人在签署交易方面都是一个逻辑参与者,但它不必受单一方的控制。 一组组织可以使用适当的共识协议集体运行公证人,其中需要大多数参与者来生成有效签名。 这将防止任何单个恶意方通过签署有冲突的交易来破坏唯一性。 从理论上讲,我们甚至可以允许网络中的每个节点参与这种共享公证,尽管在那种情况下,我们或多或少会回到传统的区块链上。
得分
让我们回顾一下Corda与传统区块链之间的主要区别。 在Corda中,没有包含所有已确认交易的统一区块链。 节点只能看到它们直接参与的事务或它们过去依赖的事务。 节点负责检查事务的正确性和授权,但依赖于受信任的公证人来验证唯一性。
当然,Corda不仅限于此:使用数字证书对身份进行身份验证,使用“网络图”帮助节点相互查找和信任,每个州的“合同”,从每个州的角度定义正确性,执行这些合同的Java虚拟机的确定性版本,使交易谈判自动化的“流程”,按时间限制交易的“时间窗口”,证明外部事实的“甲骨文”和将许多东西捆绑在一起以便于分发的“ CorDapps” 。 虽然这些功能中的每一个都很有趣,但是可以在其他区块链平台上找到所有功能的等效功能。 我在本文中的目标是专注于使Corda与众不同的内容。
那么,Corda能否兑现其诺言? 它是否解决了区块链的可扩展性,机密性和互操作性问题? 在做出特定选择时,Corda要付出多少价格?
有时更具可扩展性
让我们从可伸缩性开始。 在这里,Corda的优势显而易见,因为节点只能看到网络中的某些事务。 在常规区块链中,最大吞吐量受处理事务中最慢节点的速度限制。 相比之下,Corda网络每秒可以处理一百万个事务,而每个节点只看到其中的一小部分。 可伸缩性也扩展到了公证人,因为签署交易以确保唯一性的任务可以分散在许多不同的公证人之间,每个公证人都负责网络状态的一小部分。
话虽如此,在某种情况下,Corda的性能远不如区块链。 当节点接收到新交易时,会发生这种情况,该交易取决于它之前从未见过的许多其他交易。 想象一下十年前发行的高流动性资产,大约每五分钟换手一次。 从任何新交易到该资产发行的路径将超过一百万笔交易。 当节点首次接收到该资产时,它必须从发送者那里检索这百万笔交易,并依次验证每笔交易。 以每秒10笔交易(相当乐观)的速度,接收方将资产发送之前要延迟1000分钟-对于这样流动的东西显然太长了。
为什么区块链不遭受这个问题的困扰? 由于节点会看到并验证每笔交易的发生,因此它们会不断更新分类账的状态,并确切知道当前谁拥有每项资产。 即使节点以前从未持有过特定资产,它也可以立即验证其接收资产的交易,然后立即将其发送。 换句话说,区块链节点必须验证可能与它们无关的交易,但是这样做,他们要预付检查任何将来可能出现的交易的成本。尽管Corda节点总体上不太忙,但他们运行可能需要立即进行大量工作的风险。 这没有可扩展性。
保密性更高
让我们继续保密。 在Corda中,节点仅看到网络的某些交易,这无疑意味着比传统的区块链更好的隐私性。 尽管如此,Corda距离解决机密性问题还很遥远,因为节点仍然会看到一些与他们无关的交易。 举个简单的例子,如果爱丽丝付给鲍勃10美元,那么鲍勃将这10美元寄给查理,查理的节点必须显示爱丽丝和鲍勃之间的交易,即使这并不涉及他。 在爱丽丝(Alice)付给鲍勃(Bob)的那一刻,她无法知道谁将来会看到这笔交易,而且任何人都可能随时被发送出去。
公平地说,Corda的开发人员已经意识到了这个问题,并在他们的第15章中对其进行了讨论。 技术白皮书。 该论文提出了一些简单的策略,例如每个实体使用多个公钥或通过将资产返还给发行人以进行再发行来减少可追溯性(类似于加密货币“硬币混合器”)。 它还提到了更高级的未来可能性,例如使用类似Tor的匿名网络来隐藏参与者的IP地址,并利用零知识证明或英特尔的 安全飞地 在不透露交易内容的情况下验证交易。 尽管所有这些建议都是有效的,但它们也可以使用输入输出模型应用于常规区块链,并且确实存在于Dash,Zcash和Verge等加密货币中。 因此,Corda在保密性方面的唯一独特优势仍然是降低了交易可见性-充其量只是一个不完整的解决方案。
全部在繁殖
为了更好地了解Corda的可伸缩性和机密性优势,我们应注意这如何取决于事务之间关系的密度和重叠程度。 想象一下在网络中执行的事务的“家族树”,其中每个事务的父级是其直接依赖的先前的父级。 具体来说,当一项交易的输出被另一项交易的输入消耗时,我们绘制一个箭头,表示从父项到子项的关系。 交易可以有任意数量的父母和孩子,尽管在大多数情况下,我们希望只有少数几个。
有了这个家谱,我们就将交易的祖先定义为它的父母,祖父母,曾祖父母等等。 我们的树的“亚当和夏娃”是发行交易,创造了资产并且没有自己的父母。 与常规家谱中一样,两个事务不能互为祖先。 用正式的计算机科学术语来说,这是一个 有向无环图 或DAG,其中祖先被定义为父关系的可传递关闭。
回想一下,当Corda节点处理事务时,它必须下载并验证该事务的所有祖先,而不是以前见过的祖先。 因此,如果家族树很深,则新传入的事务可能具有大量需要验证的祖先,从而触发了Corda的可伸缩性问题。 此外,如果家族树包含高度的杂交,则新交易的祖先可能会在网络中包含许多或大多数过去的交易。 在这种情况下,Corda在隐私方面几乎没有优势。
相比之下,如果交易的家谱很浅,并且包含许多彼此不交互的不相连的岛屿,那么Corda的优势就显得突出了。 节点永远不需要一次验证大量事务,并且可以使与自己无关的大多数事务保持黑暗状态。 如果用作金融分类帐,我们可以说Corda是资产很少易手的高度分散市场的理想选择。
互通共赢
这是Corda真正发光的领域。 想象一下两个不同的Corda网络,它们具有不同的资产和参与者集。 在某个时候,一个网络中的参与者想要将资产发送给另一个网络中的某人。 与传统的区块链不同,我们不期望节点会验证所有过去的交易,因此接收此新资产的节点不会遇到任何异常情况。 交易进入时,它只是请求并验证相关历史记录,而没有意识到这是来自“独立网络”的。 要说句陈词滥调,我们可以说在Corda中没有陌生人-只是还没有认识的朋友。
实际上,事情并不是那么简单。 任何Corda节点都会明确决定信任哪些公证人,因为行为不当的公证人可能会造成财务混乱。 此外,节点需要由“门卫”授予的“证书”才能连接到网络中的其他节点,因为我们不允许随机的公众成员开始连接到节点并浪费其资源。 因此,在一个网络上的节点可以开始从另一个网络请求和验证交易之前,它将需要添加到其受信任公证人列表中并获取适当的证书。 尽管这确实涉及一些手动配置和管理,但是对于这种性质的系统而言,这是最低的要求。 总体而言,可以得出结论,互操作性是Corda击败传统区块链的重大胜利。
再中介
现在该谈论科尔迪亚房间里的大象“非中介化”了。 在区块链的背景下,去中介化意味着每个参与者都可以自己验证每笔交易,而无需依赖第三方的良好行为。 在 我的看法相对于集中式数据库,去中间化是区块链的核心优势,在该数据库中,所有参与者都完全依赖于该数据库的所有者。 如果网络中的参与者有他们可以依靠的中介,并且没有任何商业或监管机构要求取消中介,则存在 没有意义 使用区块链 集中式数据库更快,更高效,并且避免了交易机密性的问题。
那么,Corda网络中的参与者会实现去中介化吗? 好吧,是的,是的,是的,但不是。 对于事务传递,Corda会在方框中打勾,因为事务中涉及的节点之间直接相互对话。 在正确性和授权方面,它也处于良好状态,因为每个节点都可以自己检查这些属性。 但是,在验证事务唯一性时,Corda未能通过脱中介测试。 节点无法确认自己的唯一性,因为它们看不到网络中的每笔交易,并且任务已外包给受信任的公证人。
Corda参与者在许多方面都受到公证人的支配。 首先,公证人可能拒绝签署交易,即使其输入消耗了以前从未使用过的输出。 在财务分类帐中,这可以防止某人发送或交换其资产。 其次,公证人可以签署两个使用相同输出的相互冲突的交易,导致两方认为他们收到了相同的东西。 随着重复资产的两个接收方在进一步的交易中发送或交换资产,传染性会蔓延,整个分类帐的完整性很快就会受到损害。 最后,公证人可能拒绝签署“公证变更”交易,以将状态转移给竞争对手,从而有效地将资产所有者扣为人质。 对于涉及具有不同公证人的州的交易,可以肯定地说,Corda引入了 比中央数据库更多的中介,因为有几个第三方控制。
为了正确地看待这种风险,值得回顾的是,Corda公证人不必由单个组织控制。 它们也可以由运行共识算法的一组节点组成,这些算法可以容忍不良参与者。 在这种情况下,只要公证人的大多数成员节点都遵循规则,公证人就可以正常工作。 从表面上看,这听起来像是一个区块链,这取决于大多数验证者的行为。 但是,在科尔达,风险要高得多。 区块链验证器最糟糕的事情就是阻止某些交易被确认。 恶意的Corda公证人还可能签署有冲突的交易,从而使分类帐陷入不一致的深渊。
一只奇怪的动物
将可伸缩性,机密性,互操作性和非中介性放在一起,很难对Corda替代方案做出简单的判断。 总体而言,从这个区块链平台开发人员的角度来看,这似乎很……引人注目,但却很奇怪。 为了解决可扩展性和机密性的关键问题,Corda的解决方案是不完整的,并且在很大程度上取决于交易“家族树”的形状。 然而,为了实现这些部分的胜利,Corda失去了区块链的核心属性-消除交易中介。 虽然Corda无疑在互操作性方面表现出色,但这真的足够了吗?
如果我们想持怀疑态度,我们可以说科达的团队设定了一项不可能的任务–设计一种适合于资助R3的银行的区块链。 但是,区块链相对于集中式数据库的主要优势是非中介,这是以降低机密性为代价的。 对于那些通过充当中介来赚钱并且对隐私高度敏感的金融机构来说,这种权衡如何有意义? 从这个角度来看,人们可能会以Corda为英雄,但最终不能令人满意地折衷R3成员对区块链做某事的愿望,以及它们存在的商业和监管约束,以此表示赞赏。
保管人2.0
但是我更喜欢采用更积极的方法。 我们可以将Corda视为对财务状况的重大技术升级,而不是将重点放在与区块链的比较上。 只需将“公证人”一词替换为“保管人”,它们就可以很整齐地放置到位。 (一个 保管人 是的,公证人是中间人,既可以阻止交易又可以发生冲突,但是今天的保管人也是如此。 “公证变更交易”可以看作是资产从一个保管人转移到另一个保管人。 而且,Corda交易仅由一名公证人签署,其原因与我们希望资产交换在一个地方进行的原因相同,以防止任何一方掏腰包。
通过这种方式查看Corda,我们可以看到它如何在传统的保管模式上得到改进:
- 它定义了用于表达金融资产和其他合同承诺的标准计算范式和格式。
- 它提供了用于解释和执行这些承诺的开源软件,从而确保交易双方和托管人就每笔交易的结果达成一致。
- 可以利用容错共识算法来创建防止滥用的复杂多方托管人(仅使用软件!)。
- 为保管人之间的资产转移定义了标准流程(“公证变更”),不允许任何保管人拒绝。
- 托管人未经所有者同意不得使用其托管的资产,因为交易也必须由其投入物的所有者签署。
我远不是银行家,但对我来说,这一切听起来都相当不错。 也许Corda同样可以很好地应用于其他具有复杂监管结构的行业,例如保险或航运。 尽管Corda的设计可能无法提供区块链的完全脱中介,但它为中介在其中发挥重要作用的行业提出了强大的转型方案。
一旦我们遵循了这种思路,就不可避免地会产生一个问题:如果我们已经通过验证唯一性的生死攸关的工作来信任公证人,为什么不也依靠公证人的正确性和授权性呢? Corda已经有了“验证公证人”的概念,可以在添加签名之前完全验证交易。 与常规的Corda节点下载并检查其交易的祖先不同,为什么不只问公证人呢? 这可能有助于提高可伸缩性和机密性,因为大多数节点除了自己的节点外都看不到其他事务。 我们甚至可能建议网络的公证人彼此完全信任,因此无需担心祖先。 每个州的公证人都可以保证其有效性,在其他公证人的帮助下仅验证创建该公证人的交易。
让Corda成为Corda
所有这些使我们回到了起点:Corda实际上不是传统区块链(包括MultiChain)的竞争对手。 Corda是Corda –一种有趣的新型分布式分类帐,已针对资助该分类帐的人员进行了优化。 我不知道Corda最终会成功还是失败,因为我不知道与当前的做事方式相比,Corda的实际成本和收益。 但是无论将来发生什么,在哲学和设计方面都值得研究。
对于MultiChain,我们采用了不同的方法。 偷一条线 西翼,我们决心“让区块链成为区块链”。 区块链就是它们的本质,我们没有计划将它们变成不同的东西。 作为共享应用程序的数据基础架构,与集中式数据库相比,区块链代表了一种特定的权衡—以降低机密性为代价,实现了非中间化。 我们正在努力使MultiChain 2.0尽可能成为最佳 blockchain 供应用程序开发人员使用的平台。
请发表任何评论 在LinkedIn.
资料来源:https://www.multichain.com/blog/2018/05/r3-corda-deep-dive-and-technical-review/
- 账号管理
- 缩略语
- 要积极。
- 额外
- 优点
- 算法
- 算法
- 应用领域
- 应用领域
- 架构
- 国家 / 地区
- 刊文
- 财富
- 办公室文员:
- 听众
- 授权
- 银行
- 中国银行
- 银行业
- 银行
- 最佳
- 法案
- blockchain
- 盒子
- 建筑物
- 种子套餐
- 商业
- 例
- 原因
- CEO
- 证书
- 证书
- 更改
- 通道
- 检查
- 支票
- 孩子
- 儿童
- 中国
- 花旗集团
- 关闭
- 注释
- 商业的
- 相当常见
- 公司
- 竞争
- 竞争对手
- 计算机科学
- 电脑
- 冲突
- 共识
- 同意
- 消耗
- 内容
- Contents
- 合同的
- 科尔达
- 成本
- 创造
- 巡航
- cryptocurrencies
- cryptocurrency
- 加密技术
- 电流
- 保管
- 合作伙伴
- DAG
- Dash 达世币
- data
- 数据存储
- 数据库
- 数据库
- 天
- 处理
- 延迟
- 交付
- 交货
- 设计
- 开发商
- 开发
- 研发支持
- DID
- 数字
- 分布式帐簿
- 美元
- 象
- 工程师
- 企业
- 复仇
- 交换
- 换货
- 锻炼
- 布
- 公平
- 家庭
- 时尚
- 特征
- 终于
- 金融
- 金融机构
- 结束
- 姓氏:
- 第一次
- 专注焦点
- 格式
- ,
- 资金
- 资金
- 未来
- 其他咨询
- 全球
- 全球区块链
- 非常好
- 治理
- 大
- 团队
- 成长
- 此处
- 隐藏
- 高
- 突出
- 历史
- 创新中心
- HTTPS
- 巨大
- 主意
- 身分
- 不法
- 包含
- 行业
- 信息
- 基础设施
- 机构
- 机构
- 保险
- 相互作用
- 兴趣
- 互操作性
- 参与
- IP
- 发行
- 问题
- IT
- 爪哇岛
- 工作
- 加入
- 键
- 键
- 知识
- 大
- 铅
- 领导团队
- 领导
- 知道
- 莱杰
- 法律咨询
- Level
- 光
- Line
- 液体肥产线
- 清单
- 长
- 主要
- 多数
- 制作
- 市场
- 市场
- 匹配
- 会议
- 成员
- 提到
- 百万
- 模型
- 钱
- 移动
- 多链
- 网络
- 工业网络
- 网络
- 节点
- 概念
- 打开
- 开放源码
- 秩序
- 订单
- 其他名称
- 其它
- 业主
- 业主
- 面包
- 纸类
- 范例
- 父母
- 付款
- 支付
- 员工
- 性能
- 透视
- philosophy
- 图片
- 平台
- 平台
- 热门
- 当下
- 车资
- 隐私
- 私立
- 产品
- 生产
- 证明
- 财产
- 保护
- 国家
- R3
- 读者
- 阅读
- 现实
- 概括
- 记录
- 税法法规
- 关系
- 缓解
- 岗位要求
- 资源
- 退休
- 检讨
- 风险
- 定位、竞价/采购和分析/优化数字媒体采购,但算法只不过是解决问题的操作和规则。
- 运行
- 运行
- 可扩展性
- 科学
- SEA
- 看到
- 感
- 集
- 共用的,
- 配送服务
- 短
- 迹象
- 简易
- 小
- So
- 软件
- 解决方案
- 解决
- 速度
- 花费
- 传播
- 股权
- 开始
- 开始
- 州/领地
- 州
- Status
- 存储
- 商店
- 商店
- 支持
- 磁化面
- 系统
- 文案
- test
- 未来
- 思维
- 第三者
- 次
- 公差
- 可追溯分析仪
- 交易
- 交易
- 转型
- 用户评论透明
- 运输
- 信任
- 完好无损
- us
- USD
- 用户
- 边缘
- 企业验证
- 查看
- 在线会议
- 虚拟机
- 能见度
- 表决
- 等待
- 西部
- WHO
- 维基百科上的数据
- 赢
- 工作
- 世界
- 价值
- 写作
- 年
- ZCash
- 零