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

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

网络结构

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

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

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

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

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

拥有合法名称Titan Technology Partners 可在地址115.187.28.40,在端口10005上联系 有根公钥5hw03nnk43jknkj4n

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

共识机制

Consensus is pluggable using notary pools Corda是一个基于见证人池的可插拔式共识机制。

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

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

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

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

节点组件

Corda nodes abstract away the complexity of updating the ledger. Corda节点抽象出更新分类帐本的复杂性功能。

节点工作模块

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

它们提供用户定义的流,允许节点执行某些操作,通常只需单击即可更新分类帐 它们提供了从分类帐读回数据的功能,以查看执行这些流程的结果。 通过这种方式,节点可以隐藏用户的众多复杂的分布式系统,加密和数据管理功能如:

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

还有更多!

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

核心业务流

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

为了使节点有用,节点运营商将希望在其节点上安装一个或多个流。这些流描述了节点要执行的一系列动作。 以下是一个示例流程,其中一个节点(节点A)正在尝试执行交易以更新分类帐:

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

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

Corda的通证Token2.0

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

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

总结

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

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

点赞 1
收藏 0
分享

0 条评论

请先 登录 后评论
乐扣老师
乐扣老师
刘峰,上海对外经贸大学研究员、人工智能与变革管理研究院区块链技术与应用研究中心主任,南京信息工程大学滨江学院企业兼职教授,中国自动化学会区块链专业委员会委员,上海市大数据社会应用研究会会员。研究并发布了核心期刊/会议论文数十篇,发明专利、实用新型专利、软件著作权等知识产权数十篇。主要研发方向于区块链、人工智能、金融学、认知学、数据科学等领域。担任多篇核心学术期刊、国际会议、SCI/EI等国际特约编辑及审稿人。