• 网站首页
  • 毕业资讯
  • ASP.NET论文
  • JSP论文
  • ASP论文
  • PHP论文
  • VC++论文
  • 留言反馈
  • 联系我们
  • 当前位置:首页 » JSP » jsp » 基于区块链的特定数据存储与共享机制研究
    基于区块链的特定数据存储与共享机制研究
    • 作者:未知 更新时间:2019-8-27 17:03:16 来源:5Q毕业设计网 【字号: 】 本条信息浏览人次共有
    2区块链的基本原理
    区块链的基本原理包括三个主要组件:
    (1)电子交易:记录账本的变化。任何类型的有效交易信息都会通过数字化或加密方式来确保准确性和真实性。
    (2)区块:一个存储所有交易信息的数据结构,包括区块头和区块体。
    (3)链:包含按时间顺序生成的区块,记录状态的改变。
    2.区块链哈希算法与Merkle
    哈希算法[3]是一项在通信领域很基本也很重要的技术。通过数学算法将大小不一致的数据映射成固定大小的字符串。从另一个角度看,加密的哈希算法是一个单向函数,即可以很容易地计算出数据的哈希值,但反过来根据哈希值很难推算出原数据,这一特性对于区块链非常重要。Merkle树[4-5]是一个基于哈希算法的数据结构,它的特点是每一个非叶子节点都是其叶子节点的哈希值。在点对点的网络中,可以使用Merkle树来验证数据是否被篡改或接收到的数据是否损坏。在区块链中生成的所有记录通过Merkle树的哈希过程生成唯一的Merkle 根,存储在区块链的头部。
    3.     分布式账本
    尽管分布式账本技术[6-7](Distributed Ledger Technology,DLT)常常被认为是区块链技术的同义词,但分布式账本指可以在多个站点、不同地理位置或者多个机构组成的网络里实现共同治理及分享的资产数据库,分布式账本技术指实现分布式账本的技术的集合。从计算机技术的角度看,账本是一系列包含交易和信息的数据结构,账本可以记录多方资金的往来记录,物品交换记录等。在区块链系统中,由于账本在所有参与节点中复制,并且交易被组织成块,然后块被组织成逻辑上的链,因此区块链是一部不断增长的账本。账本可以是完全公开的,例如比特币系统和以太坊系统,也可以是在联盟内开发的,例如 Hyperledger Fabric。
    4.     共识算法[8-9]
    区块链系统的节点可开放自由的参与,形成自治的系统,为更好地适应区块链系统,大多系统采用对等式网络(Peer-to-Peer Network, P2P 网络)来进行数据传播。P2P 网络中的每个节点均会承担网络路由、验证区块数据、传播区块数据、发现新节点等功能。
    去中心化主要描述参与共识的节点的个数,参与共识的节点越多去中心化程度越高;可扩展性主要看吞吐量的大小,考察其是否适用于多种应用场景;安全性考虑其作恶的经济成本,作恶的成本越高安全性越高。安全性要由多方面保证,包括共识算法的确定性,确定性包括即时确认和概率确认。
    4.1 委托权益证明算法(Delegated Proof of Stake, DPoS
    DPoS共识的基本思路类似于“董事会决策”,即系统中每个节点可以将其持有的股份权益作为选票授予一个代表,希望参与记账并且获得票数最多的前 N 个代表节点将进入“董事会”,按照既定的时间表轮流对交易进行打包结算、并且生产新区块。如果说 PoW和 PoS 共识分别是“算力为王”和“权益为王”的记账方式的话,DPoS 则可以认为是“民主集中式”的记账方式,其不仅能够很好地解决 PoW 浪费能源和矿池对去中心化构成威胁的问题,也能够弥补PoS 中拥有记账权益的参与者未必希望参与记账的缺点,其设计者认为 DPoS 是当时最快速、最高效、最去中心化和最灵活的共识算法。
    DPoS 共识算法可与 PBFT 一起使用,首先通过 DPoS 的方式在区块链系统中选取一定数量的出块者,当出块者生成一个区块后,用 PBFT 算法在所有出块者中进行区块共识,当 PBFT 共识过程结束才能将区块记录在账本中。DPoS 共识算法下,用户通过抵押一定数量的权益成为记账候选人,其他用户利用投票的结果来确定记账候选人的排名,得到票数最多的几个节点拥有某个时间片的记账权,例如 EOS 设置票数最多的21 个节点为记账节点。投票排名会在一段时间后更新,重新选择出块者。DPoS 共识因为共识节点数量较少,节点间的通信速快,可以进行快速的完成区块的打包、广播以及验证,显著提升系统的 TPS,增强平台上应用的可用性。DPoS 算法中参与记账的节点大大缩小,因此其 TPS 的提升被认为是损失去中心化为代价而实现的。
     
    1 常用共识算法对比
    共识算法
    PoW
    PoS
    DPoS
    PBFT
    性能效率
    较高
    去中心化程度
    容错节点比例
    50%
    50%
    50%
    33%
    确定性
    概率
    概率
    即时
    即时
    资源消耗
    根据医疗行业现状,我们设定用户分为不同的类型:完备级、轻量级和普通用户。其中轻量级的用户将使用网站或者移动应用查看他们的医疗数据并且可以授权或撤销数据的访问权限。将用户使用的客户端分为3个类型:
    1)完备级客户端:存储所有记录(医疗机构可以提供接口对外服务);
    2)轻量级客户端:不保存记录,需要向其他节点或者MIFS(医疗机构联盟服务器群)查询,医疗机构可以提供查询接口,个人用户可以完成授权等操作;
    3)在线客户端:网页模式浏览,例如,用户在医疗机构就诊结束时申请数据记录上传,医院会通过完备级的客户端对MIFS申报。当用户再次就诊时可以通过轻量级客户端授权查询获得自己的历史记录。在线客户端则是为用户提供简单的自查阅服务。
    DPoS 共识机制采用投票的方式选出101个权益代表,但这种方式应用于医疗数据共享模型有明显的问题。这样的初始化不能保证选出的权益代表是具有影响力的医疗机构,不具备提供记账、查询等服务的能力,模型改进了DPoS 的初始化方法,根据现阶段国家对医疗机构的评级和信息中心的配置规模将医疗机构进行初始排名,排在前101位的信息中心被指定为MIFS中的一员,轮流负责把提交上来的请求记录到Item中并用自己的私钥签名[10]
    下面是MIFS具体工作过程:
    步骤1:用户提记录请求,并提交公钥作为标识。
    步骤2:某代表节点接受请求。
    步骤3:某代表节点广播已接受请求。
    步骤4:用户提交记录,如果不希望公开数据,使用公钥对数据进行加密。
    步骤5:当值的代表节点根据用户公钥将记录添加入 Item。
    步骤6:当值的代表节点广播Item确认信息,并将需要上传的大文件存入分布式数据库。
    步骤7:校验代表节点对记录进行校验,其他节点更新数据。
    步骤8:每隔1分钟检查一下Itemblock的数量,达到10个则组成一个数据块,并计算该数据块的 merkle根。
    步骤9:每隔10分钟将所有新生成的数据块的merkle根锚定到比特币区块链。
    【免责声明:本站所发表的文章,大部分来源于各相关媒体或者网络,内容仅供参阅,与本站立场无关。如有不符合事实,或影响到您利益的文章,请及时告知,本站立即删除。谢谢监督。】
  •