一文详解企业应用R3 Corda平台的注意事项

巴比特 阅读 39049 2020-8-4 17:18
分享至
微信扫一扫,打开网页后点击屏幕右上角分享按钮

很多国内企业爱是主动或者应客户要求去使用R3 Corda平台进行交易,使用该平台进行交易的时候,不少企业对于其特性、使用注意事项和相关法律风险并不知情,本文结合企业应用实践就企业应用R3Corda平台的一些问题做一梳理,其中,这些问题包括如何参与交易、如何发起交易、如何保证交易安全、如何保证交易隐私以及其他相关监管和法律权益等等。

一、R3 Corda平台应用情况

在商业中实施区块链可以释放几乎每个行业的巨大价值,每个行业都有企业区块链使用案例和成功案例。很多客户使用Corda作为建立解决行业现实问题的解决方案的基础,包括独立软件供应商(ISV)、金融技术、金融服务、供应链、贸易融资、保险、抵押品管理、银行业的初创企业和财团。

企业级区块链服务来说,可扩展性是企业安全性的一个标准,而现在对Corda来说它只是一个复杂的支持。Corda平台支持各个行业利用Corda企业开发区块链解决方案以解决复杂的业务问题,包括资本市场、数字资产、数字身份、能源、政府技术、医疗健康、保险、房地产、供应链、通讯、贸易融资等。

以下是Corda平台一些应用案例。

SPUNTA

SPUNTA Banca DLT解决方案,由SIA、NTT Data建立在Corda Enterprise上,并由ABI管理——意大利银行业协会与约80%的意大利银行业目前正准备使用实时区块链应用程序来改变银行间对账流程。

GuildOne

为了建立其版税账本,并满足其利益相关者严格的隐私和安全需求,GuildOne选择在Amazon Web Services(AWS)上使用R3的Corda平台执行概念验证(PoC)。

Synechron’s Self-sovereign KYC

Synechron使39家公司完成了基于R3的Corda区块链平台的自主企业KYC流程的全球试验。

Fusion LenderComm

银团贷款是早期采用者之一,他们已经在Corda上建立了Corda应用程序和商业网络,他们认识到可以利用Corda平台来改变困扰客户数十年的业务问题。Finastra正在利用R3的Corda企业区块链开辟一条新的业务线,并转变银团贷款市场的透明度和效率。 

二、如何参与交易

2016年,R3推出了开源区块链平台Corda;2018年,推出了Corda Enterprise,它利用Corda开源的核心元素并对其进行微调,以满足当今高度监管行业的服务和网络基础设施需求。底层的Corda软件假设了网络参与者的身份认证基础设施,但没有对其复杂性或操作模式做出假设。Corda全球网络引入了一个特定的模型,针对广泛的接入进行了优化,同时严格保证所需证书的唯一性,从而能够订立传统世界的法律合同。

Corda允许从机构到个人的不同身份参与者参与交易。Corda中的身份用一个权威机构签发的数字证书来表示,代表一个真实世界的参与者。参与者需要保护与Corda身份相关联的私钥,并且使用该私钥签名的交易会对该参与者有法律约束。一般而言,用户企业通过Cordapp服务商提供相关身份标识服务。

Corda使用X.509证书实现其核心身份框架。这使Corda能够将唯一的“人类可读”的实体名称(即一个合法的名称)与公钥和网络地址(IP地址)相关联。Corda严格要求这种映射的唯一性。一个实体的“唯一识别名”(例如公司或法人的名称)最多只能与一个公钥相关联。这是为了不可抵赖的目的,因而交易签名可以合法且明确地与一个法人实体相关联,从而消除用户交互和其他地方使用用户身份的歧义性源头。在此基础上,可以从多个提供商获得多层次的增值服务。

三、如何发起交易

在交易模式上,Corda采用了比特币的“UTXO模型”而不是以太坊的“账户-余额模型”。UTXO模型与账户-余额模型最大的不同点,就是它直接记载原始事实,而不是根据原始事实推断余额。这也许和Corda注重原始单据合法合规性的银行应用为背景有关。

Corda所使用的UTXO模型,是一种具有扩展功能的UTXO模型。它不仅可以描述价值转移,还可以描述准价值、非价值类型的单据的鉴别、确认、记录和以此为基础的流程展开。以信用证应用为例,信用证所依据的输入/输出单据中,有些就完全可以是非价值类型的,比如到货的确认单据。无论是金融流程中的各类单据、证明,还是金融业务中的指令、操作,都可以表示为在这一扩展意义下的UTXO。交易,就是一组经验证合法合规的UTXO(输入),在相应业务逻辑条件满足时映射为另一组即时生效、合法合规的UTXO(输出)的函数。假如忽略查看权限问题,把Corda的交易串接起来,可以像比特币一样看到所有的交易历史。

下图是白皮书提供的一个简单实例,其展示了最简单的一种 Corda交易:现金发⾏交易。我们看到一个新生成的现⾦状态,是由⼀家商业银⾏发⾏给了⼀家虚构的航运公司。该发⾏交易由发⾏银⾏签名。从这个简单模型,可以构建出更复杂的交易,例如⽀付、银货对付合约和期债。

一文详解企业应用R3 Corda平台的注意事项

            (Corda分布式账本白皮书提供的Corda交易:现金发行交易示意图)

四、如何保证交易安全

在区块链或分布式账本中,共识机制决定着交易的合法性和唯一性,即防止“双花”。在Corda中,通过“交易”来更新状态(UTXO输入),这些交易会消费现有的状态对象并产生新的状态对象(UTXO输出),从而创建溯源链条。

一般而言共识包含以下两个方面:

1. 交易有效性:各方可以确定一个包含了输出状态的提案更新交易的有效性,需要根据相关合约代码(必须是确定性的)验证交易成功并包含必需的签名;而且此交易所涉及的任何交易也必须是有效的。这里的交易有效性在很多区块链网络中也称交易的合法性。

2. 交易唯一性:各方确认该交易是其所有输⼊状态的唯⼀使⽤者即可确认其唯⼀性。 也就是说:不存在任何已经达成共识的交易消费了任意一个相同的状态。各方可以通过独立运行相同的合约代码和验证逻辑来达成交易确定性的共识。但是,可能同时存在两个有效的交易,因此参与者需要一种方法来确定哪个交易被视为最先到达的。

如何确定交易的唯一性?这需要一个预先确定的观察者,它可能是一组互不信任的公证人池,在同一个网络上可能有很多提供差异化特性和平衡点的公证人,这是Corda设计的一个亮点。公证人(Notary)某种意义上可以认为是一笔特定交易的交易双方共同认可的可信第三方。Chinaledger技术委员会主任白硕认为,Corda中的公证人和传统意义上的可信第三方,还是有很大不同的。

第一,Corda中的公证人,实际上是一个有签发单据权限(也就是说,拥有私钥)的节点。这个节点虽不排除有时不得不采用“人肉”操作,但一般是自动化的程序,可以说除了私钥,公证人的所有操作依据都是规范透明的。传统意义上的可信第三方则很难做到这一点。

第二,Corda中的公证人,是各交易参与方共同指定并明确认可的,其签发的输出单据对各交易参与方都有约束力。你可以选择不交易,但是一旦必须交易,选择相信公证人,还是要比选择把一切历史旧账的细节都暴露给并不怎么熟悉的交易对手方要靠谱一些。

第三,Corda中的公证人其实不是“一个人”或“一个节点”,而是需要达成共识的“一群人”或“一群节点”,所采用的共识机制是可插拔的,可以是PBFT,也可能是其他类型。不管强弱,公证环节总还是受到监督制衡的。

所以,Corda中的公证人,客观性和容错能力上还是远强于传统意义上的可信第三方的。 

五、如何保证交易隐私

一文详解企业应用R3 Corda平台的注意事项

              (Corda分布式账本白皮书中提供的交易参与方数据共享示意图)

根据Corda分布式账本白皮书提供的实例,如上图,只有该交易的参与方才能就交易有效性达成共识。因此,数据仅对需要查看的参与方共享。⽽其他平台一般在账本层⾯达成共识。所以,Corda 系统中的任何角色,都只能看到整个系统管理的全部数据的子集。可以认为,Corda不存在所有节点同步的数据账本,这是与一般区块链系统不一样的地方。

Corda 提供“可插拔”的唯一性服务,旨在提供隐私性、扩展性、地理可用性、法律系统兼容性和算法的敏捷性。这种可插拔性可体现为,正如上文提到的,单个服务可能由许多相互不信任的节点组成,通过拜占庭容错算法协调达成共识;也可能非常简单,像单机一样。

需要注意的是,这些唯一性服务只需要证明指定交易消费的状态是否已经被消费过; 它们不需要证明交易本身的有效性,这是交易参与方的责任。这意味着,唯一性服务不需要访问任何交易的完整数据,与其他分布式账本和区块链设计方案相比,大大提高了系统的隐私性和扩展性。 

六、如何对接监管要求

白硕认为,Corda平台在对接监管方面,体现在Corda的如下一些技术环节:一是许可环节,提出实名制要求、设置准入条件、通过证书和名字服务将监管要求落地KYC要求;二是运营环节,理论上可赋予监管节点访问一切节点上本地数据库的权限,获取全部交易数据,达到“看穿式”效果;三是应急处置环节,可赋予特定节点进行应急处置操作的特权,包括但不限于暂停交易、纠正错误交易等。

运营控制的需求,Corda给予了较为充分的考虑。Corda在流式架构的设计中,对流程的实时监控和展示给予了高度重视并给出了相应的接口。在Corda中,特定参与方名下的价值,并非只有该方的私钥才能实现转移。理论上,只要在业务上合规的前提下,设计合适的交易、合适的合约,具有应急处置操作特权的用户同样可以转移他人名下的价值,以此来纠正错误交易。当然,这类面向应急处置操作的交易和合约必须严格限制其使用范围,防止被滥用。

对于中国用户而言,当企业使用Corda平台时,从技术角度来说所有的使用者都成为一个Corda网络节点,而这些节点包括公证人节点显然会及时获得相关数据信息且不一定位于境内。根据我国《网络安全法》、国家网信办《区块链信息服务管理规定》等相关立法规定,在中国境内从事区块链信息服务(即基于区块链技术或者系统,通过互联网站、应用程序等形式,向社会公众提供信息服务)的技术提供方、节点运营者和相关应用开发服务者,需要进行安全评估并向国家互联网信息办公室区块链信息服务备案管理系统进行备案。另外,根据《中国人民银行关于加强跨境金融网络与信息服务管理的通知》,提供跨境金融网络与信息服务的主体向境内使用人提供跨境的金融信息传输,需要履行合规报告义务。根据目前的信息,Codapp开发服务商以及基金会暂未在国家网信办备案管理系统办理区块链信息服务备案。 

七、如何处理法律及相关权益保护问题

作为平台参与方即用户的企业(以下简称“企业用户”)通常与Cordapp开发服务商签订相关服议而参与使用平台进行交易,因此会涉及有关法律及相关权益保护问题。

(一)关于服务协议细节

根据企业用户与Codapp开发服务商的服务协议,Codapp开发服务商用户企业访问及使用平台,并向用户企业提供相关服务。但是,服务协议中并不一定对该使用会做详细描述,有些甚至仅在协议中约定Codapp开发服务商授予有限的、非独占、可撤销等限制条件的使用和访问平台的权利。

如服务协议对参与交易的操作细节不明确,建议用户企业根据其应用Corda平台所进行的交易类型,与Codapp开发服务商核实是否有平台使用指引或者流程演示等文件,以便可以具体了解平台使用规则及相关细节。

(二)关于开发服务商义务范围

根据实践中接触的服务协议,Codapp开发服务商的义务范围非常有限,协议中规定Codapp开发服务商按照Corda Network“原样”向用户企业提供服务, Codapp开发服务商不对其服务以及平台的可靠性、可用性及性能,不做任何担保,既不保证用户企业对平台的访问以及所提供的服务是不间断/无差错的;也不承担任何迟延、传递失败,以及其他由于通信网络、设备等引起的任何数据传输引起的损失、损害;况且无论如何,Codapp开发服务商在本协议项下对用户企业的责任上限为1万美金。除此之外,服务协议中还明确规定,用户企业也无权就所遭受的任何损失和后果向基金会提出索赔或者追索。

建议用户企业在与开发服务商交流中,提出这些疑虑,并争取通过补充协议或谅解备忘录等形式对开发服商或平台相关责任作出规定。

(三)关于有关特殊情形处理

在一些服务协议中规定Codapp开发服务商有权单方中止、终止、限制用户企业使用有关服务或访问平台。如果协议终止或期满,协议项下的所有服务立即停止。如有未完成交易,如何处理。建议跟Codapp开发服务商核实,根据平台的使用规则,是否可能会涉及到未完成交易,如果有,如何处理。

(四)关于与Corda Network的联系

用户企业与Corda Network的基金会之间虽然不存在协议关系,但是在技术层面,Codapp开发服务商为用户企业提供相关服务,用户企业在通过开发服务商的提供的服务使用Corda Network服务。

由于用户企业与基金会之间也存在间接的法律关系,建议用户企业可基于服务协议,或单独向开发服务商明确具体运行中的中任何损失或后果与基金会或开发服务商的关系。

(五)关于服务费用

一些服务协议中约定,用户企业根据协议使用服务或访问平台,不需要向Codapp开发服务商支付任何费用。根据基金会的使用条款,基金会向Codapp开发服务商提供地图服务、公证服务以及支持服务,并收取费用;而且用户企业如果通过平台进行交易,除了Codapp开发服务商提供的身份标识服务之外,也会用到Corda Network底层的其他服务,比如地图服务和公证服务,但是该等服务并不包括在Codapp开发服务商的服务协议中。

我们建议用户企业向开发服务商明确,如果用户企业在平台交易,是否需要支付其他服务付费?另外,即便Codapp开发服务商现阶段Beta阶段结束后,是否会制定新的协议和规则收取费用?

(六)关于私钥保管

在Corda中,任何一个“节点”都是和“身份”绑定的,而“身份”在数字世界的具体代表就是证书及私钥。在Corda这样的平台中,私钥和节点之间的关系是至关重要的。按照一些国家和地区的信息安全法律法规,核心金融机构的私钥可能必须采用独立于节点设备的物理介质(类似U盾)的形式,采用指定的密码学算法标准并且禁止私钥在规定物理介质之外存储。人和私钥在物理场景中的分离,私钥信息在无人看管的节点机内存储,这都是私钥安全的大忌。

Corda针对的是金融机构及其商业客户组成的联盟链,不存在矿池或者类似Fabric提供的本质上是“软件定义的区块链”这种情况。每家参与机构自身的节点就部署在自己可控的区域之内。私钥安全在这样的场景下与传统的网络安全措施要求并无实质区别。

即便如此,也确实存在用户一旦私钥丢失,应该如何应对的问题。具体而言,这个问题是“如何防止该用的人不能用”和“如何防止不该用的人试图用”两种情形。白硕认为,在Corda中,前一个问题可以通过复合密钥来解决(在主用私钥和备用私钥之间设置“或”逻辑),而后一个问题是否可以仅通过网络访问控制措施来解决,还是一个疑问。

btcfans公众号

微信扫描关注公众号,及时掌握新动向

来源链接:https://www.8btc.com/
免责声明:
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
上一篇:一篇文章带你简单了解波卡 下一篇:详解比特币链下扩容技术进展与投资现状

相关资讯