64

初识R3-Corda,解析区块链结构

 4 years ago
source link: https://www.tuicool.com/articles/AnAn6bR
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

R3-Corda is for permissioned nodes to communicate on a need-to-know basis about updating shared facts.

R3-Corda是一个基于许可准入的信息共享区块链网络。

QfIrMfu.png!web

要了解Corda,根据上图,我们首先需要了解传统区块链网络的结构。

在传统的区块链网络中:网络上的每个节点都是通过匿名公钥来识别的,而不是具有可识别的身份,这些身份之间的消息是未加密的,并且使用闲聊协议(gossip protocol)进行,该协议将每个消息分发给每个节点。显然,这不符合实际业务的需求,当真正的企业达成法律协议时,他们需要与法律上可识别的对手方达成这些协议,而不仅仅是使用匿名公钥,真正的企业需要将其交易的详细信息保密至第三方。对于战略性而言,这是非常理想的,但通常也是合法的。

因此,为了满足企业的需求, Corda网络的架构不同

在加入网络之前,每个节点所有者都要经过KYC流程获取身份证书。加入网络后,他们会向网络地图服务发布证明其合法名称,IP地址和公钥(以及其他信息)的证书节点可以使用此网络地图服务使用私有的,点对点的,TLS加密的消息传递与知名对手方进行交易。

在这里,我们有一个由三个节点组成的网络和一个公证池(真正的Corda网络将拥有更多)。以其中一个节点为例,我们可以看到 Titan Technology Partners 节点:<指向Titan技术合作伙伴节点信息。>

拥有合法名称 Titan Technology Partners

可在地址 115.187.28.40 ,在端口10005上联系

有根公钥 5hw03nnk43jknkj4n

Titan Technology Partner s进行交易时,他们所有的邮件都会被加密,并且只会发送给特定的,经过法律认可的交易对手。

共识机制

Consensus is pluggable using notary pools

Corda是一个基于见证人池的可插拔式共识机制。

faEbemU.png!web

现在,一个显而易见的问题是,如果数据仅在需要知道的基础上在网络上分发,那么双重支出是如何防止的? 我们如何阻止某人将某些数字资产转移到一方,然后转身并将其转移到另一方?

在Corda中,使用公证池可以防止双花问题。 公证池是一组节点 - 通常是一组操作拜占庭容错一致性算法(byzantine fault-tolerant consensus algorithm)的相互不信任的节点 - 如果它不代表双重花费尝试,则只签署一个交易。 每笔交易都要求公证人签字才有效。

公证池中的节点看不到分类帐更新的内容。 他们只看到更新分类帐的每个交易的哈希值,以及该交易的输出中消耗的事实的索引。

而上述结构中 Transaction HashOutput Index 用来区分和定位追溯发生的交易点。

节点组件

Corda nodes abstract away the complexity of updating the ledger.

Corda节点抽象出更新分类帐本的复杂性功能。

q2M7fiq.png!web

这些节点位于网络上的是什么? 我们可以将Corda节点视为区块链魔术盒子:

它们提供用户定义的流,允许节点执行某些操作,通常只需单击即可更新分类帐

它们提供了从分类帐读回数据的功能,以查看执行这些流程的结果。

通过这种方式,节点可以隐藏用户的众多复杂的分布式系统,加密和数据管理功能如:

  1. 消息
  2. 存储
  3. 节点发现
  4. 数据分发
  5. 并发
  6. 灾难恢复
  7. 签名

还有更多!

所有这些复杂性都被节点软件抽象掉了。

核心业务流

mUZnqan.png!web 我们通过抽象其他模块,让用户保留最大精力着眼于核心业务流的编写,其他一切交给Corda自身去处理。

为了使节点有用,节点运营商将希望在其节点上安装一个或多个流。这些流描述了节点要执行的一系列动作。

以下是一个示例流程,其中一个节点(节点A)正在尝试执行交易以更新分类帐:

  1. 一个节点A,创建,验证和签署一个交易,并将它发送到另一个节点,即节点B.
  2. 节点B在将其发送回节点A之前验证并签署该交易
  3. 节点A将交易发送到公证池
  4. 公证池在将交易发送回节点A之前签署该交易
  5. 节点A记录交易并将其发送到节点B.
  6. 节点B记录交易

这只是流程的一个例子。流程框架完全灵活。您可以编写一个不与任何其他节点对话的流,或者根本不更新分类帐的流,或者执行数据库操作或HTTP调用的流。作为CorDapp开发人员,这完全取决于您。

Corda的通证Token2.0

Bn6rqmj.png!web

总的来说,主要是定义了令牌基类型,同时也对操作流程和标准借口进行了定义。

标准操作流程:

  • 问题 Issue
  • 移动 Move
  • 兑换 Redeem
  • 更新 Update(关于可演化类型)
  • 标准接口:
  • 发行人 Issue
  • 持有人 Holder
  • 金额 Amount
  • 类型 Type
  • 总和 Sums

总结

Corda是一个独特的区块链平台,它允许在法律上可识别的交易对手之间进行私人交易,以易于使用的方式保持传统区块链的优势。另外值得一提的是,它是主要基于Java开发,为代码的落地和编程语言大幅度的降低了门槛。

作者:乐扣老师, 无锡优级先科信息技术有限公司首席信息官,南京信息工程大学滨江学院企业教授,中国自动化学会区块链专业委员会委员,主要研发方向于量子计算、区块链、大数据、人工智能等领域。

原文: https://blog.csdn.net/lsttoy/article/details/94436203 , 深入浅出区块链授权转载。

深入浅出区块链 - 打造高质量区块链技术博客,学区块链都来这里,关注 知乎 、微博 掌握区块链技术动态。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK