欢迎访问比特币_区块链-币链视界!

币链视界

区块链技术在海洋数据共享平台应用技术研究

发布时间:2021-02-23区块链应用评论
海洋大数据是实施海洋强国战略、开发海洋资源、拉动海洋经济、维护国家海洋权益的重要基础。庞大的时空数据虽极大地丰富了海洋研究的数据源,但较之普通的三维空间数据处理、

海洋大数据是实施海洋强国战略、开发海洋资源、拉动海洋经济、维护国家海洋权益的重要基础。庞大的时空数据虽极大地丰富了海洋研究的数据源,但较之普通的三维空间数据处理、分析与展示复杂度大大增加。且随着地理信息技术的快速发展、应用领域的不断扩大,以及计算机信息技术的飞速发展,对海洋大数据的处理、分析和展示提出了更高的要求。如何利用大数据相关技术,结合海洋应用特点,对海量、多源、异构的海洋观测和模拟数据进行快速、及时地分析和处理,开发和挖掘海洋大数据的应用服务,是海洋大数据平台建设的核心问题。通过把大数据与区块链相结合,能让区块链中的数据更有价值,也能让大数据的预测分析落实为行动,它们都将是数字经济时代的基石。一?区块链技术数据共享解决方案?1)区块链技术与数据存储?a)基于区块链技术的数据存储

在没有区块链技术以前,人们达成共识(技术上共识是指在数据层面没分歧、双方数据一样),也就是保证交易参与方数据都一样的方式是依赖中心化系统,中心化系统替交易各方进行数据记账。因为交易各方都相信中心化系统,所以中心化系统可以通过记总账的方式保证各方交易数据一致。但中心化系统并不是完全可靠的,中心化系统也有可能出现违约、作假,也就是数据被篡改。而且通过中心化系统记账的成本也比较高,非常典型的例子就是汇款,如果要往海外汇一笔钱,不但手续费高昂而且时间成本也很高。而区块链是一个多方共识的机制,这个共识的算法是建立在整个技术信任的基础上的,它不依赖于人和机构的信任,而是一种相对民主的机制。在这种机制的约束下,数据的真实有效以及持续性得到保障,是建立这种多方联合并且多方相互监督的这种联盟业务的信任基础。?b)IPFS:“星际区块链网络”

由于区块链技术的多中心、开放性、自治性、信息不可篡改和匿名性,使得将区块链技术可以很好的运用于数据存储之中。下面以IPFS为典型案例分析区块链技术与数据存储。IPFS是Inter-PlanetaryFileSystem的简称,由ProtocolLab提出,是一个P2P的分布式文件系统。与现有Web不同的是,对于一个存放在IPFS网络的文件资源,通过这个文件资源的内容生成的唯一编码去访问。IPFS设定的目标是替代HTTP。

IPFS可以将数据分片存储到分布式的存储节点,与BitTorrent类似,在访问时,不需要关心存储在哪里,可以从多个存储节点分片获取。IPFS也集成了git版本管理的技术,从而可以适应内容的升级变化。为了实现真实性、不可篡改性,IPFS维护一个分布式的哈希表,实现一种MerkleDAG的数据结构,还结合了一个自我证明的名字空间。ProtocolLab提出了与IPFS相辅相成的Filecoin,这是一个公有的区块链,是IPFS的经济激励系统,FilecoinToken就是这个公有链的代币,承载着IPFS价值的传递,维系着IPFS生态的发展。IPFS具有如下特性:

(1)互联网信息永久存储

IPFS像是一个分布式存储网络(类似于SIA),任何存储在系统里的资源,包括文字、图片、声音、视频,以及网站代码,通过IPFS进行哈希运算后,都会生成唯一的地址。今后,你只要通过这个地址就可以打开它们。并且这个地址是可以被分享的。而由于加密算法的保护,该地址具备了不可篡改和删除的特性(在某种意义上,如果破解密码还是有可能被篡改或删除,但概率极低)。所以,一旦数据存储在IPFS中,它就会是永久性的。比如我们经常会遇到的某个资源删除无法访问的问题,这种情况,在IPFS上就不会发生。即便是把该站点撤销,只要存储该站点信息的网络依然存在,该网页就可以被正常访问。存储站点的分布式网络越多,它的可靠性也就越强。与SIA不同的是,IPFS存储的一般是公共信息,普通大众都可以获得的。有一种说法认为,如果IPFS完全取代HTTP,那么此后,人类历史将会被永久保存,且不会被篡改。(2)解决“过度冗余”问题

如果你喜欢某部电影,又担心电影资源丢失,通常的做法是,你会把这部电影下载在自己的电脑上。那么一个无法避免的问题是:同样的一部电影被反复储存,造成了内存资源极大浪费,这就是HTTP协议的弊端。同样的资源备份的次数过多,就会造成过度冗余的问题。而IPFS的出现可以很好地解决这个问题。IPFS会把存储文件,做一次哈希计算,只字不差的两个文件哈希值相同。所以,用户只需要使用相同的哈希值,就可以访问那个文件,这个哈希值就是文件的地址。只要获取这个地址,就可以共享资源了。基于上面的永久存储特性,你再也不用担心某个电影找不到,也不用备份,因为全球电脑上只要有那么几个人存储着,你就能拿到它,而不是重复存储几十万份。?c)区块链技术运用于海洋数据存储

区块链技术运用到海洋数据存储方面具有如下特点。一是多方参与协作记账,天然的实现了冗余的多存储灾备。区块链基于密码学技术,通过特定的算法,依靠一定的共识机制,点对点交易可以快速得到确认,信息存储在各节点,无需信任单个中心。每个节点通过保存一套完整历史数据库的副本,参与维护信息的安全性和准确性。简而言之,区块链技术是通过“去中心化”和去信任的方式,集体维护一个可靠数据库的技术,不再依赖第三方。区块链这种去中心化分布式数据记账系统,如图1所示,比多数据灾备中心模式具有更高的可用性,因为区块链系统的维护者分布在全球,抗灾能力空前强大,通过全球合作,区块链系统也获得了跨时区连续运行的能力。这样的特性对于金融、军事等很多行业机构,无疑极具吸引力。图1:区块链的去中心化记账模式二是密码学机制保障存储逻辑和时间逻辑,通过多方比对实现数据不可篡改、不可抵赖、不可删除。也就是说,区块链可以实现数据的永久、真实、安全的保存。之所以说区块链上的数据具有不可篡改性,是由于采用了时间有序不可篡改的密码学账本结构,如图2所示,区块链上的数据被篡改几乎是不可能的。具体来说,人们把一段时间内生成的信息(包括数据或代码)打包成一个区块,盖上时间戳,与上一个区块衔接在一起,每下一个区块的页首都包含了上一个区块的索引数据,然后再在本页中写入新的信息,从而形成新的区块,首尾相连,最终形成了区块链。这个结构的神奇之处在于区块(完整历史)+链(完全验证)=时间戳“区块+链”的结构为我们提供了一个数据库的完整历史。从第一个区块开始,到最新产生的区块为止,区块链上存储了系统全部的历史数据。区块链为我们提供了数据库内每一笔数据的查找功能。区块链上的每一条交易数据,都可以通过“区块链”的结构追本溯源,一笔一笔进行验证。从某个角度讲,区块+链=时间戳,这是区块链数据库的最大创新点。区块链数据库让全网的记录者在每一个区块中都盖上一个时间戳来记账,表示这个信息是这个时间写入的,形成了一个不可篡改、不可伪造的数据库。同时,区块链内存储的信息都是经过harsh压缩后的乱码,由于单向性是可验证但不会被还原的,所以区块链还起到了一定程度的信息保密作用。

图2:区块链数据的不可篡改性2)区块链技术与资产管理a)基于区块链技术的资产管理

传统的资产管理业务是指资产管理人根据资产管理合同约定的方式、条件、要求及限制,对客户资产进行经营运作,为客户提供证券、基金及其他金融产品,并收取费用的行为。资产管理可以定义为机构投资者所收集的资产被投资于资本市场的实际过程。虽然概念上这两方面经常纠缠在一起,但事实上从法律观点来看,资产管理者可以是、也可以不是机构投资者的一部分。实际上,资产管理可以是机构自己的内部事务,也可以是外部的。互联网金融通过十几年的发展,虽然业务规模尚不能与传统金融相提并论,但是在未来金融科技和其它技术的推动下,必然成为新金融环境中不可或缺的一分子。

资金是金融行业赖以生存的根基,一切金融手段的终极目的,都是将资金高效地运用,哪家金融机构能够更有效率地运用资金,哪家机构就会获得资金的青睐,进而进一步积累财富,提升自身在金融行业的地位。互联网金融正在逐步渗入资产管理的殿堂之中。应用区块链中的智能合约技术,能够有效解决资产托管业务中的操作风险。具体来看,可以从以下几个方面优化资产托管的业务流程:一是实现了全流程的自动化,将业务指令判断和执行规则封装到智能合约中,利用智能执行合约和提供风险提示;二是提升了流程效率,资产委托方、管理方、托管方、代销方在资产变动、交易明细等信息的实时共享,免去反复校验、确权的过程;三是保证了履约的安全性和交易的真实性,通过设置密钥保证参与方信息正式、账本信息的有限可见性及交易的可验证性;四是确保了信息的不可篡改,将投资计划的合规校验要求放在区块链上,确保每笔交易都在形成共识的基础上完成。b)基于区块链技术的资产管理应用

资产管理的本质还是记录资产的收入和支出,因此区块链在这方面的应用也逐渐发展。澳大利亚联邦银行新兴技术团队和惠普拆分公司HewlettPackardEnterprise之前通过使用Corda分布式账本技术进行了一项试验,这项试验允许CFS消除基金管理以及为期三天的产品交付过程中的繁琐纸质应用流程。Corda可以通过允许资产交换和交易进行即时结算,从而消除了中介机构带来的对手方风险。同时还能跨地域地看清每一个对手方的状况。通过消除发行方违约或者投资者未能结算的风险,银行将可以降低覆盖这些风险所需要的监管资本数额。澳大利亚联邦银行资产管理部门主管AnnableSpring曾在悉尼APAC区块链会议上说,“如果区块链能够获得局部、区域或全球的采用,那么资产管理行业需要保管的资本数量就能大幅度降低。对于我们行业来说,我们可以具有更加高效的资金流动,通过消除风险来释放资本要求,为监管机构提供最新的市场看法,降低对手方风险。如果区块链获得广泛应用,那么将会降低整体金融经济体系风险。”减少资产资本可以增加股本回报率——这是一个推动银行股票价格的关键因素。为了推动通过手机购买或出售产品的试验,澳大利亚联邦银行已经创建了一种数字货币(目前尚未公开上线)。区块链在资产管理行业的潜力已经显现,因为目前用户基金买卖体验非常复杂和繁琐,区块链技术可以在后台流程中发挥全部的潜力。目前来说,尽管力求精简,但流程众多,有很多的对手方通过该系统多次移动资金,进行多次对账,同时还要保护客户隐私。康联首域集团(CFS)每天要估价超过20000种金融市场资产,每月记录和协调超过100000笔来自各种经理的交易。CFS每天都要接到大约4000次客户来电以及超过1000封来信。从体量而言,该企业每月处理超过50万笔交易,每天通过金融系统转移超过5亿美元。基金购买的初始流程可能会需要3天时间才能完成,用户需要通过金融顾问填写数十份纸质文件,然后发送给CFS,再交给数个小组进行文件核查。这都极大地增加了该流程的成本。此外,客户委托购买资产涉及到资金和数据通过金融顾问流入到CFS,一旦获得确认,基金经理就会购买资产。一般通过经纪商,所有的交易都会被各种注册商、托管商、经纪商和中央清算中心所记录,这些流程可能需要几天的时间才能获得确认。综上,区块链技术在资产管理方面具有很好的发展应用前景。?3)将区块链技术应用于海洋数据共享平台以区块链技术的特点与优势为基础,结合区块链技术在数据存储与资产管理方面的成功案例,可以将之延伸应用于海洋数据开放共享与增值流通领域。二?海洋数据共享平台与不同类别区块链的结合1)数据共享平台与联盟链的结合a)典型联盟链分析

联盟链是指其共识过程受到预选节点控制的区块链,典型的联盟链有Hyperledger(超级账本)。Hyperledger中针对区块链技术的开放标准都是模块化的。其所建立的标准,能够在未来允许开发人员按照自己的意愿替换不同版本的各种区块链组件。模块化使外部开发更容易。Hyperledger拥有足够灵活的API,使得不使用Hyperledger核心组件构建的应用案例也能很容易地与核心的Hyperledger组件和区块链实现互动。Hyperledger的设计标准是尽量模块化和可扩展。除此之外,Hyperledger的模块化能让尽可能多的人围绕Hyperledger工作。这种模块化的方式允许发明或开发新的区块链技术,将这些技术很容易与Hyperledger一起使用或融合。任何区块链结构都有一个基本需求,那就是网络中任何一方的身份和行为模式必须不能被未授权方通过检查账本就能查明。Hyperledger也允许区块链用户确认业务逻辑和/或交易机密的其他参数,这使得他们对正在转移的合约或资产的利益相关者之外的任何人都是不可访问的。Hyperledger为在其核心协议之上实现的各类丰富应用提供支持。其支持各种交易语义、密码算法、协商机制和数据库存储协议。例如,以加密为例的Hyperledger应该包括所有的加密、签名和更高级的功能密码,从简单的、快速的对称加密到复杂的功能加密和基于属性的签名。这些基本的技术原理应通过配置来支持重要的商业交易,例如不同程度的授权交易的不可改变性和可审计性。总的来说,Hyperledger是一个易用、非常有用和健壮的平台,对于构建区块链软件的机构和个人都可以把它作为自己的底层架构。Hyperledger针对每个潜在用户和应用案例可能缺乏某种理想的功能,但Hyperledger尽可能使其可以接近这种理想的状态。b)数据共享平台搭建在联盟链的研究分析

以Hyperledger为代表的联盟链为实现各个涉海的相关管理部门自有数据资产的处置,各个单位部门之间的协作配合,数据的供应链管理,以及最终形成共享经济市场的美好前景提供了潜在的解决方案。Hyperledger联盟链可以很方便地使得各部门和单位自有的数据资产在区块链网络上实现去中心化,这样就使得数据资产相关方不需要通过中间环节,就可以直接访问每个资产,进而发起交易和获取相关信息。交易可以在各部门和单位之间商定的时间期限内解决,交易和实现实时结算,数据资产相关者都可以实时掌握资产情况。数据资产相关方可以增加业务规则,这样也能通过自动化逻辑的应用来进一步降低成本。创建资产的人必须像用例保证的那样,实现资产和相关交易规则保密或者公开。??其还可以使得公司各部门和单位的协作变得更为简单,例如A单位发起一个协作的事件请求,无论这个过程中涉及多少中间环节(数据的来源信息链条),公司A都需要将邀请的完整细节信息实时发送给交易的相关方。一旦交易相关方作出交易决策,这个决策也可以被实时处理完成。?联盟链的框架也满足在各个涉海的相关管理部门形成的供应链,其中每一位参与者的如下需求:录入并追踪原数据的来源;记录数据生产的遥测数据;数据的跟踪;保证包括数据生产、储存、交易及后续事宜在内的所有数据都不被篡改可以得到满足,其保证了能够在过去的层层交易中追溯所需记录,为数据共享平台中数据的真实性提供了保证。?通过利用联盟链对数字资产的确认,参与人员的协作,与交易数据的溯源方面的优势可以使得共享经济在各个涉海的相关管理部门中产生。2)数据共享平台与公有链的结合a)典型公有链分析

公共区块链是指全世界任何人都可读取的、任何人都能发送交易且交易能获得有效确认的、任何人都能参与其中共识过程的区块链,其的共识过程决定哪个区块可被添加到区块链中和明确当前状态。以太坊是一条典型的底层公有链,以太坊通过建立抽象的基础层,内置图灵完备编程语言,使得任何人都能够创建合约和去中心化应用,并在其中设立他们自由定义的所有权规则、交易方式和状态转换函数。以太坊系统主要由以下几部分组成:

(1)以太坊账户;

(2)消息和交易;

(3)以太坊状态转换函数;

(4)代码执行;

(5)区块链和挖矿。b)数据共享平台搭建在公有链的研究分析

公有链是面向大众的、任何人都可读取的、且可以发送交易并能获得有效确认,所以在各个涉海的相关管理部门得到的相关数据可以方便地对大众有偿地开放。区块链允许基于多重签名的交易合约,例如,5把私钥里集齐3把就可以使用资金。以太坊可以做得更细化,例如,5把私钥里集齐4把可以花全部资金,如果只3把则每天最多花10%的资金,只有2把就只能每天花0.5%的资金。另外,区块链里的多重签名是支持异步的,双方可以在不同时间在区块链上注册签名,最后一个签名到位后就会自动发送交易。这样就可以使得大众了解到数据的具体来源,提高数据的权威性,进而可以构建一个以身份和信誉系统为基础的去中心化的市场。c)使用区块链打造数据共享平台的意义

区块链主要解决的是交易的信任和安全问题,它提出了四个技术创新来保证交易的信任和安全的解决:第一个叫分布式账本,就是交易记账由分布在不同地方的多个节点共同完成,而且每一个节点都记录的是完整的账目,因此它们都可以参与监督交易合法性,同时也可以共同为其作证。跟传统的分布式存储有所不同,区块链的分布式存储的独特性主要体现在两个方面:一是区块链每个节点都按照块链式结构存储完整的数据,传统分布式存储一般是将数据按照一定的规则分成多份进行存储。二是区块链每个节点存储都是独立的、地位等同的,依靠共识机制保证存储的一致性,而传统分布式存储一般是通过中心节点往其他备份节点同步数据。??没有任何一个节点可以单独记录账本数据,从而避免了单一记账人被控制或者被贿赂而记假账的可能性。也由于记账节点足够多,理论上讲除非所有的节点被破坏,否则账目就不会丢失,从而保证了账目数据的安全性。第二个叫做非对称加密和授权技术,存储在区块链上的交易信息是公开的,但是账户身份信息是高度加密的,只有在数据拥有者授权的情况下才能访问到,从而保证了数据的安全和个人的隐私。第三个叫做共识机制,就是所有记账节点之间怎么达成共识,去认定一个记录的有效性,这既是认定的手段,也是防止篡改的手段。以比特币为例,采用的是工作量证明,只有在控制了全网超过51%的记账节点的情况下,才有可能伪造出一条不存在的记录。当加入区块链的节点足够多的时候,这基本上不可能,从而杜绝了造假的可能。最后一个技术特点叫智能合约,智能合约是基于这些可信的不可篡改的数据,可以自动化的执行一些预先定义好的规则和条款。这四个技术特性使得区块链具有方便进行点对点交易的金融属性与冗余存储,密码学保证的安全属性,这两点与数据共享平台的建设目标恰恰不谋而合。数据共享平台需要有促使涉海单位具有打破“数据孤岛”动力的金融属性,还要有保证涉海单位分享的数据不被随意窃取,修改的安全属性。而区块链天然就是这两个属性的拥有者,将区块链技术应用在海洋数据共享领域将会给涉海单位带来低成本的信任方式、安全的、高效的数据协作方式与可信的、权威的数据交易市场。三?海洋数据共享平台应用模型1)平台整体架构以志愿船这一“智慧海洋”工程中的典型应用为代表,针对海洋数据资源跨部门开放共享、所有权保护、数据有偿使用等问题,设计以下区块链平台。基于区块链的跨部门海洋数据共享平台架构如图3所示,以涉海管理部门、科研单位、相关企业为目标用户与网络节点,通过该平台初步构建出海洋数据联盟区块链,使得海洋数据资源跨实现部门的开放共享。基于区块链的跨部门海洋数据共享平台主要由基础设施层、区块链数据层、区块链共识层、智能合约层、服务层和应用层组成。

图3:基于区块链的跨部门海洋数据共享平台架构图其中,在基础设施层内,系统使用了包括专用设备、路由器以及服务器等硬件设施,这些硬件设施为它提供了基础的数据存储、转发与计算能力。

?

区块链数据层是这个系统中非常重要的中心环节,它使用了链式结构、时间戳、哈希函数、Merkle树与非对称加密等技术使得包括区块链管理节点、区块链认证节点以及涉海管理部门、科研单位、相关企业等节点可以运行在一个公平、公开、可信与可溯源的系统环境中。这其中的链式结构是指在区块链系统中取得记账权的节点会将当前区块链接到前一区块,形成最新的区块主链。各个区块依次环环相接,形成从创世区块到当前区块的一条最长主链,从而记录了区块链数据的完整历史。这种做法能够提供区块链数据的溯源和定位功能,任意数据都可以通过此链式结构顺藤摸瓜、追本溯源。区块链系统中并不会直接保存原始数据或交易记录,而是保存其的哈希函数值,即将原始数据编码为特定长度的由数字和字母组成的字符串后记入区块链,这种做法增加了区块链系统的安全性。哈希函数具有诸多优良特点,因而特别适合用于存储区块链数据。例如,通过哈希输出几乎不能反推输入值,不同长度输入的哈希过程消耗大约相同的时间且产生固定长度的输出,即使输入仅相差一个字节也会产生显著不同的输出值等。比如比特币中通常采用的是双SHA256哈希函数,即将任意长度的原始数据经过两次SHA256哈希运算后转换为长度为256位的二进制数字来统一存储和识别。除上述特点外,SHA256算法还具有巨大的散列空间和抗碰撞等特性,这可以使得区块链系统中任何相关标记的需要不会出现冲突。智能合约层由合约部署、合约测试、日志管理、实例管理和合约接口组成,智能合约确保区块链数据的透明,便于用户的监管。从用户角度来讲,智能合约通常被认为是一个自动担保账户。例如,当特定的条件满足时,程序就会释放和转移资金。从技术角度来讲,智能合约被认为是网络服务器,只是这些服务器并不是使用IP地址架设在互联网上,而是架设在区块链上。从而可以在其上面运行特定的合约程序。代码的执行是自动的,要么成功执行,或者所有的状态变化都撤消(包括从当前失败的合约中已经送或接收的信息。)这一特性非常重要,因为它避免了合约的部分执行的情况,保证了合约的执行具有原子性。服务层与应用层通过与智能合约进行交互来实现信息中心管理系统、业务中心系统与区块链底层系统的连接,进而提供信息存证、信息验证、信息查验、历史追溯、监管等服务。实现信息的交换和共享并向用户查询检索等的通用功能。2)平台基本模型涉海单位间的区块链网络主要采用联盟链网络模型,即各个组织拥有一个区块链节点,没有中心节点。组织是指有能力在服务器上运行一个及以上区块链节点的一个或几个单位的集合。基于区块链的跨部门海洋数据共享平台模型如图4所示。

图4:基于区块链的跨部门海洋数据共享平台模型图?a)海洋部门内处理流程

志愿船靠岸为例介绍在某一海洋部门内,将采集数据存储于基于区块链的跨部门海洋数据共享平台之上的过程。志愿船在登陆靠岸之后,当前已采集到了新增数据,要将其存储于该共享平台之上。首先,通过登录终端,将观测的数据上传到本组织的服务器记录;其次,本组织对数据进行人工或者自动审核;最后,区块链节点将数据块的概要(例如地点、时间、版权信息等)和数据详情的数字摘要等存入区块链账本,区块链返回这个数据块记录在链上的唯一标志。由此产生了一条数据流转记录,若干条数据流转记录交织就形成了如图5所示的基于区块链的跨部门海洋数据共享平台模型图。b)跨部门间海洋数据共享流通

基于区块链可以实现数据的跨部门间共享流通。首先,网络中各方可以浏览各个数据块的数据概要。如果有人需要某个数据块的详情,可以向数据所有方发起索取请求,数据所有方同意后,将数据块发送给索取方,然后双方进行代币的转移。最后,根据代币的数额,每隔一段时间各方进行结算。c)权限控制与监管

由于海洋数据事关敏感,不是任何人都可以对数据进行操作的,所以必须要进行准入控制和权限管理。准入控制分为两级:

(1)终端节点向数据存储节点上传数据的权限,数据存储节点向区块链节点上传数据块的权限。

(2)区块链节点加入区块链网络的权限,这需要数字证书和数字证书分发中心的支持。?d)跨链数据共享

数据共享平台的目标就是要彻底解决涉海部门之间存在的“数据孤岛”问题,所以数据共享平台中数据的互联互通的解决就包含着两个层面的含义:

(1)以海洋数据的流动为导向来为涉海相关部门打造多条相关的联盟链

(2)以海洋数据的价值为导向来实现涉海相关部门联盟链之间的相互连接如此一来,涉海部门之间存在的“数据孤岛”问题就会得到根本性的解决,而这其中的关键性技术就是如何实现数据共享平台中的跨链技术。针对涉海部门之间的区块链跨链数据共享、交易的需求,拟通过对区块链跨链交易技术的深入研究,提出一种全新的区块链跨链交易架构——互联链,其包括互联链体系结构、互联链共识机制与传输协议和互联链隐私保护机制这四个部分。将借助互联链来实现任意独立区块链之间的互联互通,并保障跨链交易的有效性和用户隐私数据的安全性。研究框架如图5所示:

图5:研究框架跨链数据共享研究内容及拟解决的关键问题:

研究工作包括了三个层层递进的研究内容。首先,对实现跨链交易的中间网络进行需求分析,在此基础上构建一个能满足不同区块链互联互通需求的互联链网络,实现其与平行区块链网络的连接,并设计互联链的区块结构;其次在此基础上进一步提出互联链的共识机制及传输协议,从而保证整个互联链的通用性与交易的安全性;最后提出互联链的隐私保护机制,保证跨链交易的隐私性。3)海洋数据共享中的跨链技术a)跨链数据共享项目的研究方案

通过对互联链体系结构、互联链共识机制,传输协议与互联链隐私保护机制这四部分的研究来完成跨链海洋数据共享项目方案的实现。(1)互联链体系结构的研究

互联链网络结构

构建互联链网络的目的是为了建立一个平行区块链之间的交互网络。如果把单一的区块链比喻为局域网,互联链的作用则相当于互联网,其结构如图6所示。我们的基本思路可以通过互联链网络的几种特殊角色以及他们位置的描述得以体现:区块链节点:运行着区块链客户端程序的节点。互联链节点:运行着互联链程序的节点。包含数据收发节点、验证节点、监管节点,其中数据收发节点既是区块链节点又是互联链节点。数据收发节点:数据收发节点既属于平行区块链内部,即区块链节点,又属于互联链节点。其主要功能是负责收集平行区块链内部的交易数据并将其传输到验证节点进行验证。因为数据收发节点角色具备双重性,所以数据收发节点可以接收平行区块链的交易,并与平行区块链进行互动。一个平行区块链可以有多个数据收发节点,一个数据收发节点只能对应一个平行区块链。验证节点:验证节点只在互联链内部,不属于平行区块链的一部分。其主要功能包括从平行区块链中取得交易数据以及验证交易有效性,并在互联链网络内同步、共识交易。同一时间,一个验证节点只可以负责一个平行区块链交易的验证工作。然而验证节点不同于数据收发节点,一个验证节点可以在不同时间内负责多个平行区块链网络,即轮换。这也就导致在不同时间,一个验证节点可以和多个平行区块链中的多个不同的数据收发节点,或数据收发节点的集合进行交易传输。监管节点:监管节点也只是在互联链内部。其主要负责监管验证节点的交易验证功能,并在发现有验证节点不正确的行为时对验证节点进行惩罚。一个监管节点可以监管一个集合(>=1)的验证节点。

图6:互联链网络结构图平行区块链与互联链的连接

将平行区块链网络接入互联链网络的研究思路是设计一种动态接入方案。该方案拟通过平行区块链网络中的某些节点运行互联链客户端,向客户端里预设的某些节点请求得到互联链网络中活跃的验证节点信息,并向这些验证节点发起接入请求;互联链网络中接收到接入请求的验证节点查询自己维护的平行区块链网络管理表判断该平行区块链网络是否已经接入互联链网络——如果这是初次请求,则在互联链网络中发起一个全网参与的投票处理该接入请求,从而决定是否允许该平行区块链网络接入互联链网络。这个投票算法可以是内部算法,也可以是一个依赖于外部的算法,比如基于Proof-of-Stake的算法。如果投票通过,则发起投票的验证节点为平行区块链网络以及发起请求的节点生成特定的识别信息并广播该识别信息,该验证节点以及其他收到识别信息的验证节点都将识别信息存储在自己维护的平行区块链网络管理表中。如果这不是初次请求,即平行区块链网络管理表中存在该平行区块链以及其他相关节点信息,则该验证节点仅为发起请求的节点——即数据收发节点生成特定的识别信息并广播,随后也将该识别信息存入平行区块链网络管理表中。平行区块链网络的识别信息包括静态信息和动态信息。静态信息包括一个平行区块链的序列号,验证该平行区块链的验证协议信息,以及一个不依赖于平台的验证协议。由于区块链之间的交易需要路由,所以动态信息包括该新加入平行区块链的一个全局识别的路由标识符,可用于互联链网络来进行数据的转移传递操作。数据收发节点的标识信息包括数据收发节点的序列号、数据收发节点的地址信息。互联链网络中的所有验证节点都拥有接入的平行区块链网络及所有相关的数据收发节点信息,而平行区块链网络中有多个节点与互联链网络建立了联系,因此上述设计可以解决平行区块链网络与互联链网络连接的稳定性问题。在平行区块链与互联链进行接入之后就需要考虑平行区块链与互联链进行交互的问题。互联链的区块结构

互联链连接了其他参与的平行区块链。平行区块链中的交易会被存储在当前平行区块链的区块中。在互联链的设计中,交易的存储形式将是重点考虑的问题。本部分将重点阐述互联链中的区块头和区块体的设计思路,其中包括区块头以及区块体的组成部分,以及如此设计的原因。区块头拟包含以下三个字段:上一个区块的哈希值:区块头将包含上一个区块的哈希值,这个设计采用现在普遍的区块链的设计,为了满足区块链权威性,后一个区块将包含前一个区块的哈希值来防止篡改,从而形成一个可验证的区块链。区块序列号:为了表明区块所处的位置,以方便其他函数指向该区块。Merkle树根哈希值:分为通过互联链交易计算生成的哈希值和平行区块链跨链交易及有效性证据计算生成的哈希值。前者Merkle树的树根是要被存放并加以验证的;后者使用Trie树与Merkle的混合树结构,一方面方便查找账户,另一方面方便校验交易是否存在。除此之外,树中还包含时间戳和验证者签名。区块体包含交易内容。具体来说,区块体将会包含平行区块链跨链交易及其有效性证据。因为互联链上存储的信息包含平行区块链之间的跨链交易和验证信息,所以跨链交易的内容将会存放在互联链的区块体中。由于交易涉及平行区块链双方,互联链区块体中还会包含平行区块链区块头。互联链内部交易也会被存放在互联链区块体里,具体结构如图7所示:

图7:互联链的区块结构图(2)互联链共识机制的研究?跨链交易共识机制

互联链作为一种区块链,自身也需要一种共识机制作为运行基础。当前主流的区块链共识机制,主要包括PoW及其变种和BFT共识机制。PoW机制的主要问题在于,为了降低分叉的可能性,其区块生成频率不能过快,这直接影响了区块链的交易处理速度。例如,比特币每秒仅能将7笔交易写入区块链。在BFT共识中,区块等信息仅由“主节点”发布,其他节点通过广播确认消息的方式,对主节点发布的信息达成共识。因而,较快的区块生成频率不会产生分叉。所以,BFT共识可以保证较高的交易处理速度。本研究中,多种不同的平行链均能接入互联链。某些平行链可能会具备较高的跨链交易生成频率。因而,互联链必须具备极高的交易处理速度,才能够与高交易生成频率的平行链相匹配,从而及时转发来自各条平行链的交易。基于此,本研究考虑采用BFT算法作为互联链的共识机制,互联链的共识过程如图8所示。

图8:互联链的共识过程BFT机制的主要问题在于,当网络中拥有n个节点时,各节点产生的消息数量的复杂度为O(n2),在节点数量增多时,会不成比例地占用过多的网络带宽,使得交易处理速度急剧下降。互联链作为一种能够接入所有平行链的架构,网络中会存在较多的验证节点。针对此问题,研究思路是,借鉴PoS中保证金的概念,在节点间引入选举机制,先从众多验证节点中选举出一部分节点,只允许选出的节点参与共识过程,从而减少每轮共识中验证节点的数量。具体方法是,每一个验证节点首先根据其提交的保证金数量和在线的时间长度进行第一轮选举;进入第二轮选举的节点,全网根据其过往的历史表现情况进行投票;最后将候选节点的得分存储在一个优先队列中,根据系统需要选取前N个节点作为新的验证节点参与共识。我们将深入研究和全面评估采用BFT机制和借鉴PoS中保证金概念的可行性和有效性。在后续的研究过程中,拟设计出得分计算公式,合理分配保证金数量、在线时间长度、过往历史表现等主要考量因素的权重,从而保证共识机制的流畅运行。BFT机制的另一个问题,当一条平行区块链长期由固定的验证节点负责完成共识时,可能会造成一定的安全隐患。例如,一组验证节点可能会共谋,干扰平行区块链发往互联链的交易。因此,本方案考虑定期轮换每条平行区块链对应的验证节点,并设计相应的轮换算法。在多中心化的条件下,为了排除某些验证节点在轮换中作弊,长期负责某一特定的平行区块链,必须保证分配过程是随机且可验证的。本机制拟采取的措施是,借鉴PoW的思路,预先给定一个目标值tg。在第i次轮换时,选择高度为i的互联链区块,找到其区块头的哈希值hi。如果这一验证节点的账户地址为addr,那么该验证节点需要找到一个整数nonce,使其满足以下不等式:假设当前共有M个区块接入互联链,给每条平行区块链赋予一个编号,则计算随后,在选举出的节点间广播。这一节点将在接下来的一段时间里负责平行区块链p的交易验证。由于哈希函数具备单向性特点,预先给定目标值,无法推测出哈希函数的输入。因而,这一方式可以保证某一节点无法事先指定负责的平行区块链。此外,任何节点都可以依据广播的消息,验证分配结果的有效性。我们现在考虑仅仅在固定的时间段之后完成PoW过程,而不是在每轮共识中均进行运算。这样,其消耗的电能资源相对较小。在获得平行区块链之后,互联链中的各验证节点就可以完成共识机制。与传统的区块链共识机制不同,在互联链中,同一时刻对于某条特定的区块链p,只有一部分节点Vp负责验证来自p的交易。因此,本方案需要经过组内和全局两轮共识。在组内共识中,Vp内的节点先要验证来自p的交易的有效性。最精确的验证方式是,Vp内的验证节点均存储p的完整区块链副本。但是,这会加重验证节点的存储负担。基于此问题,研究思路是借鉴简易支付验证(SimplifiedPaymentVerification,SPV)的思想,在验证节点中保存各条平行区块链的区块头,依靠区块链的Merkle树机制完成交易验证。每条平行区块链在生成一个新区块时,均要通过数据收发节点把区块头发送至对应的验证节点,验证节点再将此区块头广播到互联链网络。这样,区块头最终被包含到互联链区块链中。通过这种方式,各验证节点都包含了所有平行区块链的区块头。因为每个区块头相对较小(例如,比特币的区块头大小仅为80字节),所以,相对于保存完整的平行区块链副本而言,采用这一方式能够显著减轻验证节点的存储负担。现有的区块链在生成区块时,都会利用区块中包含的全部交易,构造一棵Merkle树,并将Merkle根存储于区块头中。因而,可以利用Merkle树验证交易的有效性。数据收发节点在向验证节点发送交易时,需要指明此交易所在区块的区块头。此外,验证节点还需要获取Merkle树中必要的分枝。图9中,为了验证交易A(TxA)的有效性,验证节点需要从各个数据收发节点获取HB、HCD两个节点的值(图中以虚线表示),然后计算HAB和Merkle根,以此判断交易A是否已经包含在指定的区块中。对于采用PoW共识的平行区块链而言,还需要在收到跨链交易所在的区块头之后,接收到足够多的区块头(例如,比特币为6个),才能够确认这笔交易的有效性。Vp中的验证节点在确认交易有效性后,使用BFT机制对其有效性达成“组内共识”。随后,Vp中的验证节点将交易签名后,广播至互联链网络。与此同时,Merkle树分枝上的各个节点也被一起发送。通过这种方式,全网中任何一个验证节点都可以验证跨链交易的有效性。接下来,互联链中的所有验证节点检查交易是否包含了足够多的签名,并运用BFT机制,对Vp内的节点发布的交易达成“全局共识”。最终,交易会被记录在由BFT“主节点”发布的区块中,并被包含在互联链的区块链内。通过这种方式,跨链交易在互联链中形成了一整套难以篡改的记录,从而成为各条平行区块链进行交易的存证。

图9:Merkle树实例跨链交易传输协议的研究

在平行区块链与互联链进行连接之后就需要考虑平行区块链与互联链进行交互的问题。此部分拟提出针对该问题的一个初步的解决方案。互联链维护着一种基于MerkleTree的队列结构,用来进行多个平行区块链之间的数据传递。具体来说,每个平行区块链包含一个输入/出队列。互联链会把一个交易发起者平行区块链的输出队列上的交易放到目的地址平行区块链的输入队列上。这个过程是异步进行的,并且没有返回路径。因此而带来的交易传输错误需要其他的交易恢复机制来修复。出队列和入队列的设计如下:出队列:这是平行区块链用于发送交易的一个队列集合。这个队列集合在这个平行区块链所指定的数据收发节点上维护。队列集合中的队列分别对应其他所有已加入的平行区块链的路由标识符,即每一个队列对应该平行区块链向另外一个队列发送的交易的一棵MerkleTree。入队列:不同于出队列,入队列是一个单一队列(一个MerkleTree)。上面存储着所有发往该平行区块链的交易区块头。由于交易区块头中包含一个源地址,所以数据收发节点可以识别一笔交易的发起方,如图10所示:

图10:平行区块链与互联链之间的通信接口每笔交易发起的时候交易区块头都将放到数据收发节点的队列中存证。假如不是一笔跨链交易,交易不发送,区块头仍然是由数据收发节点发送给验证节点。这个时候交易所对应区块的区块头就会被放入数据收发节点上的出队列。假如是一笔跨链交易,交易也发送,区块头和上述处理一致。在进行共识的同时,互联链可以利用交易在节点间的广播机制,完成交易传输。互联链中,每条平行区块链都被赋予一个地址。在每笔跨链交易中,都包含源平行区块链和目的平行区块链地址,以及平行区块链中发送方和接收方的地址。由于不同的区块链,采用不同的交易结构,所以,交易在发送到互联链网络时,需要被封装为统一的形式。当交易被传输至目的平行区块链后,数据收发节点再依据跨链交易中的内容,创建符合目的平行区块链格式的新交易,继而将这笔新交易记录在目的平行区块链中。因而,我们需要为跨链交易的传输设计一种专用的交易格式。图11展示了在互联链系统中,一笔交易从源平行区块链(链A)发送至目的平行区块链(链B)的过程。

图11:跨链交易传输过程链A中的交易发起者创建一笔跨链交易,在链A的网络内部,跨链交易先被发送至本地数据收发节点。在链A的全网达成共识后,本地数据收发节点把跨链交易暂存在出队列中,然后从出队列中取出交易,将其封装为互联链通用的交易格式,随后,发往负责链A的验证节点。链A的各个验证节点在验证这笔交易的有效性,并达成组内共识之后,就可以向互联链网络中的所有验证节点广播这笔交易。各验证节点接收到跨链交易后,都会检查相应交易的目的平行区块链是否为自身对应的平行区块链。如果是,就把这笔交易发送至目的平行区块链(链C)中数据收发节点的入队列里。数据收发节点以一定频率从入队列中取出交易,并依据交易信息,构造符合链C格式的新交易,随后在链C网络中发布这笔新交易。这里,数据收发节点起到了交易在链内和链间的“转换器”作用。在以太坊等区块链平台中,数据收发节点可以采用“智能合约”实现。在智能合约上,部署着跨链交易的数据收发程序。当一笔跨链交易被发送至智能合约的账户时,就会触发程序的运行。但是,以比特币为代表的区块链平台,并未提供图灵完备的智能合约。所以,本项目将进一步研究如何为各条区块链设计一种通用的“数据收发节点”机制。(3)互联链隐私保护机制的研究

与达世币、门罗币采用的隐私保护机制相比,零币采用的zkSNARK零知识证明算法是现有隐私保护技术中最成熟、可行的一种,其匿名性更好,无需信任中心节点,也不需要网络中其他用户的参与,用户通过与匿名货币交互即可实现匿名交易,从而有效地保护了用户隐私。故本方案选用zkSNARK算法来实现跨链交易中的隐私保护。?互联链zkSNARK算法公共参数构建

zkSNARK算法能够被应用到经典NP问题里的所有问题,目前还没有研究表明zkSNARK算法适用于NP以外的问题。区块链中的交易验证规则属于NP问题,因此zkSNARK算法可以解决交易有效性验证问题。然而,zkSNARK算法并不能直接应用到交易有效性验证中,需要将交易验证规则转换成zkSNARK算法能够操作的特定形式,称为“二次算术程序”(QAP)。

为了将交易验证规则转换成QAP形式,首先需要将交易验证规则函数转换成NP完全语言R1CS形式:首先,将交易验证规则抽象成复杂多项式形式,然后将复杂多项式分解成两种形式:与,op可以是加减乘除等操作符,y和z可以是变量、数字和子表达式;其次,将分解好的表达式转换成一系列三元向量(a,b,c)形式。最后根据拉格朗日插值法将R1CS形式转换为QAP形式。QAP形式如下:由于互联链的交易验证规则包括验证签名、计算Merkle树根哈希值等复杂多项式操作,所以由其构建的QAP形式包含大量哈希运算函数,直接计算QAP形式中的线性组合会消耗大量计算资源以及时间。为了避免上述情况,需要将QAP形式中包含的多项式转换成在某一安全随机变量rn处的取值,此时上述QAP等式仍然成立。

为了避免直接将多项式在安全随机变量处的取值公布在公共参数中,基于椭圆曲线生成点将数值转换为椭圆曲线上的点:其中P是椭圆曲线上的点。在现有研究体系下,基于椭圆曲线的离散对数问题是很难解决的,即由P和G得到n是极其困难的。因此,将数值转换过后的点公布在公共参数中。

为了使互联链网络中的验证节点在不知晓交易相关隐私信息如交易双方、交易金额的情况下能够验证交易的有效性,需要使用椭圆曲线对函数,该函数需要满足的条件如下:??其中P、Q、R是椭圆曲线上的点,为了验证互联链交易规则转换的QAP等式,只需验证:其中:除QAP等式中多项式的系数随着交易的发送方、接收方、转移金额有所不同之外,基于互联链交易验证规则构造的QAP等式是固定的。通过特定的公共参数,节点可以在不透露交易隐私信息的情况下证明生成交易有效的证据;相应地,通过特定的公共参数,验证节点可以验证交易附带证据的有效性,从而做出接收或者拒绝该交易的操作。互联链中跨链匿名交易验证及实现

互联链作为转发、验证跨链匿名交易的载体,需要能够验证跨链匿名交易的有效性。跨链交易分为跨链透明交易、跨链匿名交易两种类型。跨链透明交易提供交易本身内容以及相关Merkle分支证据,互联链网络中的验证节点可以按照平行区块链注册的验证规则验证该笔交易的有效性。而跨链匿名交易不会透露除该交易有效之外的任何信息,互联链网络中的验证节点需要知道每一种平行区块链网络启动阶段生成的公共参数,并利用这些公共参数验证来自平行区块链的跨链匿名交易的有效性,零知识证明算法保证互联链网络中的验证节点无法知道除该跨链交易有效之外的任何信息。一笔跨链交易包括源平行区块链标识、目的平行区块链标识、交易数据、交易有效性证据,其中交易数据根据跨链操作的类型来确定。互联链网络中的验证节点接收到一笔跨链交易时,基于源平行区块链标识,根据其注册的交易有效性验证规则,验证交易有效性证据是否正确;基于目的平行区块链标识,在互联链的同步过程中,路由到目的平行区块链。?由于跨链交易包含的交易数据以及交易有效性证据会泄露交易双方地址、操作类型等关键隐私信息,因此跨链匿名交易的设计原则是在不透露用户关键隐私的前提下,向互联链网络中的验证节点提供一种可以验证其有效性的方法,同时保证目的平行区块链能够解析跨链数据,从而触发相关操作。为了使目的平行区块链能够解析跨链数据,源平行区块链与目的平行区块链使用基于椭圆曲线的Diffie-Hellman密钥交换协议生成所需的对称密钥,源平行区块链使用该对称密钥加密跨链数据,将密文放入跨链匿名交易中。互联链网络中的验证节点基于区块链轻客户端原理来验证跨链交易的有效性,一般来说,轻客户端原理包括但不限于使用Merkle树根哈希值以及相关Merkle分支来验证交易是否发生、使用序列号来防止交易重放攻击。跨链透明交易可以简单通过UTXO模型或Account模型中随机数的方法来防止交易重放攻击,与跨链透明交易不同,跨链匿名交易由于隐藏了关键信息,验证节点无法通过已有的信息来判断跨链匿名交易是否进行了重放攻击,因此需要设计一种基于跨链匿名交易的序列号机制。我们拟使用用户私钥与随机数通过伪随机函数生成序列号,同时将随机数作为生成的零知识证明的一部分,将序列号绑定到跨链匿名交易使用的匿名资产上,因此跨链匿名交易显示地包括了序列号信息,从而可以防止交易重放攻击问题。基于zkSNARK算法,将跨链匿名交易Merkle树根哈希值、序列号、及其它信息作为首要输入,将交易信息、Merkle分支、交易发起方公私钥隐私信息、接收方公钥信息、相关随机数作为辅助输入,使用公共参数提供的证明密钥生成零知识证明。互联链网络中的验证节点接收跨链匿名交易时,根据源平行区块链标识,验证其包含的Merkle树根哈希值是否存在于源平行区块链的区块头构成的链中,如果验证通过,则验证其包含的序列号是否存在于源平行区块链已看到的序列号集合中,若存在,证明该交易会导致重放攻击,若不存在,将序列号加入源平行区块链的序列号集合中。然后使用平行区块链注册的交易验证规则及zkSNARK算法启动阶段构造的公共参数,验证跨链匿名交易附带的零知识证明的有效性。如果跨链匿名交易包含的零知识证明通过验证,则代表该交易确实在源平行区块链中存在且有效。目的平行区块链接收到由互联链路由的跨链匿名交易时,使用基于椭圆曲线的Diffie-Hellman密钥交换协议生成的对称密钥解密跨链数据的密文,根据得到的明文触发相关操作。上述跨链匿名交易验证机制可以使互联链网络中的验证节点在不知晓交易双方隐私信息的前提下,验证其有效性,并且目的平行区块链能够解析跨链匿名交易,从而安全地执行相应的跨链操作。(4)跨链海洋数据共享的特色与创新

?着眼于区块链技术的实际需求和发展趋势,提出一种全新的区块链跨链交易架构--互联链,以支持互相独立的平行区块链之间的跨链交易,并将其运用于跨部门海洋数据共享。该架构的主要特色和创新之处体现在以下几个方面:a)一种能保证可扩展性和安全性的互联链体系结构。该结构创新地使用互联链网络连接相互独立的平行区块链网络,可以支持众多区块链网络的接入,具有良好的可扩展性;所有的跨链交易将会被写入互联链的区块链账本中,从而实现跨链交易的可溯源。在该结构中,跨链交易的双方公开跨链交易验证信息,使得交易双方无需基于信任也可以进行安全交易。??b)一种PoS和BFT相结合的共识机制及传输协议。针对互联链对于交易处理速度的要求,同时为了保证在节点较多的情况下仍能维持较高的性能,本研究创新性地将PoS和BFT两类共识机制相结合,通过PoS选举出参与每轮共识的验证节点,通过验证节点轮换机制来实现不同区块链之间的共识,并且在共识的过程中就可以实现跨链交易的传输,从而实现链与链之间的无缝对接,能很好地保证跨链操作的安全性和通用性。c)一种基于zkSNARK零知识证明算法的互联链隐私保护机制。本研究根据平行链网络、互联链网络的交易验证规则确定zkSNARK算法启动阶段的公共参数。通过公共参数的证明密钥,节点可以生成交易相关隐私信息的零知识证明;通过公共参数的验证密钥,验证节点可以在不知晓跨链隐私信息的情况下验证该零知识证明的有效性。从而在完成跨链交易的情况下,保证跨链交易的隐私性。?4)平台整体流程图基于区块链的智能合约构建和执行可分为三步,首先是多方用户共同参与制定一份合约,然后通过P2P网络扩散并存入区块链,最后区块链的智能合约自动执行检查、验证、保存等过程。根据区块链技术路径,基于区块链的海洋数据共享流通的流程如图12所示。a)生成智能合约

?海洋数据资源部门参与到区块链,每个部门都掌握一对公钥和私钥,保障其在区块链内的权限。各部门根据需要共同商定一份承诺,承诺规定了双方的权利和义务,然后承诺以电子化形式编程,转变为机器语言,各部门用各自掌握的私钥进行签名以确保合约的有效性。通过各部门的共同认可,选择某部门作为区块链的共识节点,由它代为执行把智能合约传入区块链网络中。b)共享业务创建

当机构A进行业务处理时,比如数据的增加(例如志愿船靠岸后,通过登录终端,将观测的数据上传到本组织的服务器记录)、删除时,首先对其身份证明、信用状况等基本信息进行核实,然后利用私钥进行数字签名,制成共享表单并将数据块的概要(例如地点、时间、版权信息等)和数据详情的数字摘要存入区块链账本,区块链返回这个数据块记录在链上的唯一标志,并通过P2P网络扩散到整个区块链上的相关业务机构。c)全网共识

当共享表单传播至全网,每个机构都将收到的表单暂时缓存到区块中,只要有一个部门查询到以前该信息的共享表单,就把所有加盖时间戳的该区块记录的表单传播给全网,并由全网其他机构核对,最后生成共享总表单。d)结果反馈

通过区块链上的机构信息验证后,通过数字签名反馈给请求机构,对已有信息进行提醒,避免重录信息、反馈残缺信息、揭发有误信息,从而使请求部门作出合理的决策。?e)带有激励机制的数据共享

?网络中各方可以浏览区块链上各个数据块的数据概要。如果有人需要某个数据块的详情,可以向数据所有方发起索取请求,数据所有方若同意后,将数据块发送给索取方,然后双方进行代币的转移。根据代币的数额,每隔一段时间各方进行结算。f)支持跨链扩展

整合已有的海洋区块链的项目,建设互联链,将上述区块链和其他区块链项目接入互联链网络,实现区块链之间的信息交流。在本研究中可以做的点例如,数据发送时,索取方需要的数据并不在本链上,利用互联链,证明数据块在其他链上,并按正常方式达成交易。

图12:基于区块链的海洋数据共享流通的流程5)场景论证根据之前所分析的区块链技术在数据存储与资产管理方面的成功案例,可以得到区块链技术所具有的优势:首先,由于区块链上的数据是分布式的,每一个节点都能获得所有的信息。根据加密算法,非授权节点可以获得这个账本,却无法解读,但是所有更改的行为都会通知全网,这保证了区块链上的数据可以被共享而不被更改。其次,区块链在微观层面设计了严谨有序的数据结构,在宏观层面引入了共建、共享、共监督的强力机制,这样可以预防伪造、篡改、抵赖、撤销等恶意操作,也就是构建了一套增加信任的体系。进而通过宏观政策可行性分析、行业可行性分析以及技术可行性分析,可得将区块链技术运用于跨部门海洋数据的共享流通当中具有可行性。利用区块链从根本上保证了数据共享的参与方对数据的所有权和知情权,保证了数据的真实性和安全性,提高了交易效率,且引入相应的代币激励机制,使之形成了一套完整的价值流转系统。依据图12所示模型基本流程,分别采用以太坊和Hyperledger平台对该流程进行验证,实现将文件的哈希值和关键信息摘要存入区块,网络中的节点可以查看区块信息的功能。使用以太坊平台验证模型基本运行流程如下:a)生成数据共享智能合约

此智能合约有三个函数,File函数为构造函数,Upload函数的输入为文件哈希值、关键信息摘要构成的字符串,Download函数用于查询文件信息。

图13数据共享智能合约b)提取文件哈希值

采用SHA256算法对文件计算哈希值,最终文件存入系统数据库,哈希值写入区块,在系统后续运行过程中,通过比对哈希值,即可验证文件的数据内容是否发生过改动。

图14采用SHA256算法计算文件哈希值?c)将文件哈希值、关键信息摘要(如时间、地点、版权信息等)存入区块链

?调用智能合约,发起一笔交易,将文件的关键信息作为参数传入。

图15调用智能合约d)查询区块信息

交易执行后,文件信息已写入区块中,查看该区块信息,可以看到所显示的交易地址与上图相同,说明交易成功。

图16查询区块信息图17区块浏览器信息截图使用Hyperledger联盟链验证模型基本运行流程如下:a)创建智能合约

将文件存储信息以json格式存入LevelDB,如果传入参数有误进行错误处理。

图18Upload合约文件信息查询合约如图18所示,将信息以json格式从LevelDB读出并转换为相应数据结构,如果读取信息有误则进行错误处理。图19Download合约b)部署智能合约

图20将合约部署到链上?c)执行智能合约

通过SDK调用Upload合约,可将文件哈希值和关键信息写入区块中。

图21Upload合约调用结果通过SDK调用Download合约,可将查看该文件的信息。

图22Download合约调用结果

图23区块浏览器信息截图来源:体系工程

作者:郝燕

广告位

热心评论

评论列表