区块链捐赠平台的制作方法

文档序号:26838871发布日期:2021-10-08 19:48阅读:57来源:国知局
区块链捐赠平台的制作方法

1.本技术涉及区块链技术领域,特别是涉及一种区块链捐赠平台。


背景技术:

2.社会各界人士对捐助物资的物流跟踪、分配及使用情况更加的关注, 对慈善机构的信息公布及时性和数据准确性提出了更高的要求。
3.社会慈善与公益事业当前最大的痛点就是“信任”,部分慈善机构的 捐款来源与去向缺乏监管和独立第三方的审计,隐瞒捐款数目、超标采 购等问题频频出现,使得慈善机构公众信任度逐渐降低。


技术实现要素:

4.本技术提供一种区块链捐赠平台,可以将捐赠流程公开化和透明化, 构建更加可信的公益事业。
5.为解决上述问题,本技术提供一种区块链捐赠平台,该平台包括区 块链模块;
6.区块链模块将联盟链作为区块链捐赠平台的底层架构;
7.联盟链由关键用户和普通用户构成,其中关键用户为区块链记账节 点;
8.其中,关键用户包括物流企业和慈善机构,普通用户包括捐赠者和 求助者。
9.其中,普通用户共同组织成节点参与记账。
10.其中,区块链捐赠平台包括信息记录模块;
11.信息记录模块用于将捐赠物资的流转信息写入到区块链,并将捐赠 物资全部流转过程的流转信息进行关联,以供捐赠物资的溯源查询。
12.其中,区块链捐赠平台包括项目管理模块,项目管理模块用于提供 援助项目的发布服务、针对于援助项目的捐赠服务以及针对于援助项目 的求助服务。
13.其中,项目管理模块用于向捐赠者提供针对于援助项目的定向捐赠 服务和非定向捐赠服务;
14.定向捐赠具有指定求助者。
15.其中,区块链捐赠平台包括信息公布模块15,信息公布模块15用 于公布慈善机构发布的援助项目、求助者针对于援助项目发布的求助请 求、捐赠者针对于援助项目发布的捐赠请求、以及捐赠请求的捐赠物资 的各个流转过程的流转信息。
16.其中,区块链模块用于利用pow和pos混合共识协议,交替进行 pow和pos证明,以生成pow和pos区块链对。
17.其中,区块链模块用于响应于pos记账节点在第n+1轮次获得多条 区块链对,使pos记账节点将多条区块链对中的第n+1轮中pow区块 和第n轮中pow区块对应的pow记账节点相同的区块链对筛除掉,得 到区块链对集合;使pos记账节点从区块链对集合中筛选出最佳链对。
18.其中,区块链模块用于响应于pos记账节点确定出最佳链对,使 pos记账节点利用
自身的权益数量进行权益选举,以确定出pos出块节 点;将pos出块节点组装的新区块添加到最佳链对上,以生成新的pow 和pos区块链对。
19.其中,区块链模块用于响应于pow记账节点获取到多条区块链对, 使pow记账节点从所有区块链对中筛选出最佳链对;使pow记账节点 计算最佳块头,以确定出符合目标要求的随机数,进而确定出pow出 块节点;将pow出块节点组装的新区块添加到最佳链对上,以生成新 的pow和pos区块链对。
20.本技术的区块链捐赠平台包括区块链模块。区块链模块将联盟链作 为区块链捐赠平台的底层架构,使得区块链捐赠平台由分布式计算机网 络节点共同维护,这样利用区块链技术的去中心、公开、透明,防篡改 的特性,建立区块链物资流+信息流公示体系,保障业务核心数据全流 程公开透明,能够解决社会捐赠中物资运转过程中信息不对称和信息被 造假的可能,可避免因网络攻击造成的系统瘫痪,同时建立一个高度信 任的社会物流环境。
附图说明
21.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的 一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对 本技术的不当限定。在附图中:
22.图1是本技术区块链捐赠平台一实施方式的结构示意图;
23.图2是本技术区块链捐赠平台的业务流程示意图;
24.图3是本技术区块链捐赠平台中捐赠物资的溯源页面示意图;
25.图4是本技术区块链捐赠平台援助项目展示页面示意图;
26.图5是本技术区块链捐赠平台中捐赠物资追溯的信息流向示意图;
27.图6是本技术区块链捐赠平台另一实施方式的系统架构示意图;
28.图7是本技术区块链捐赠平台对应的捐赠应用的界面示意图;
29.图8是本技术混合共识方法一实施方式的流程示意图;
30.图9是本技术区块链捐赠平台中区块链模块生成的区块链的结构示 意图;
31.图10是本技术区块链捐赠平台中区块链模块的共识流程示意图;
32.图11是本技术混合共识系统一实施方式的结构示意图;
33.图12是本技术计算机存储介质一实施方式的结构示意图。
具体实施方式
34.描述和附图说明本技术的原理。因此将了解,本领域的技术人员将 能够设计各种布置,尽管本文中未明确地描述或示出布置,但其体现了 本技术的原理且包括在本技术的范围内。此外,本文中的所有例子主要 明确地意在用于教学目的,以辅助读者理解本技术的原理及由发明人所 提供的概念,从而深化所属领域,且所有例子不应解释为限于此类特定 阐述的例子及条件。另外,除非另外指明(例如,“或另外”或“或在替代 方案中”),否则如本文所使用的术语“或”指代非排他性的“或”(即,“和/ 或”)。并且,本文所描述的各种实施例不一定相互排斥,因为一些实施 例可以与一个或多个其它实施例组合以形成新的实施例。
35.为解决现有捐赠平台的捐赠流程不公开和不透明而导致公益事业 不可信的问
题,本技术提出一种区块链捐赠平台10。如图1所示,本申 请的区块链捐赠平台10包括区块链模块11。区块链模块11将联盟链作 为区块链捐赠平台10的底层架构,使得区块链捐赠平台10由分布式计 算机网络节点共同维护,这样利用区块链技术的去中心、公开、透明, 防篡改的特性,建立区块链物资流+信息流公示体系,保障业务核心数 据全流程公开透明,能够解决社会捐赠中物资运转过程中信息不对称和 信息被造假的可能,可避免因网络攻击造成的系统瘫痪,同时建立一个 高度信任的社会物流环境。
36.其中,联盟链由关键用户和普通用户构成,使得每个关键用户和每 个普通用户都是业务节点,数据实时共享,用户之间可以共同监督,不 可篡改,确保链上数据的可信,使每个业务环节处于监管之下。
37.其中,关键用户包括慈善机构和物流企业。每个关键用户均可作为 区块链记账节点,将捐赠过程的数据上传到区块链,关键用户的可信度 较高,由关键用户作为区块链记账节点,可以保证数据源头可信,从而 可以提高区块链捐赠平台10的可信度。另外,关键用户还可包括项目 审核机构、金融机构(例如银行)和监管单位等。
38.普通用户包括捐赠者和求助者等。在一些实现方式中,普通用户可 共同组织成节点参与记账,可以提高普通用户的参与感,提高普通用户 发布求助和/或捐赠的积极性,使得本技术的区块链捐赠平台10可以形 成良性循环。另外,普通用户还可包括认证中心等。
39.可选地,区块链捐赠平台10还可包括用户管理模块12。用户管理 模块12可用于向用户提供账户注册服务,使得医院、社区等求助者或 捐助者可以自行注册以申请加入区块链捐赠平台10。
40.用户管理模块12还可用于向用户提供电子(ca)认证服务,以便 对用户的身份进行认证,从而基于用户的身份给用户授权相应服务,例 如对慈善机构授权项目发布服务和项目管理服务等,又例如对求助者授 权求助申请服务等,以便通过区块链捐赠平台10的用户管理模块12构 建可信的身份认证体系和服务体系。
41.当然,用户管理模块12还可用于向用户提供登录服务,以让用户 基于自身账号登录至区块链捐赠平台10。
42.用户管理模块12还可用于提供单位管理服务。例如对慈善机构提 供求助单位管理服务,以便在慈善机构确认部分求助机构为不可信单位 时,将不可信求助机构拉入黑名单,不接受不可信求助机构的求助申请。
43.用户管理模块12还可用于提供用户信息管理服务。例如,对慈善 机构可提供仓库信息管理服务。
44.可选地,区块链捐赠平台10还可包括项目管理模块13。
45.项目管理模块13用于提供援助项目的发布服务,以便慈善机构等 单位新增援助项目。本技术的项目管理模块13还可用于在提供援助项 目的发布服务时,收集援助项目的信息,例如收集援助项目的所需物资 范围清单和项目logo宣传图片等信息。
46.可选地,项目管理模块13可用于提供针对于援助项目的求助服务, 以便求助者提出求助申请,通过针对于援助项目提出的求助申请,以便 于求助者简单快捷地发布求助申请,从而提高求助效率。
47.本技术的项目管理模块13还可用于在求助者针对援助项目提出求 助申请的情况下,收集求助申请的求助物资明细单、收货地址、联系人 以及联系方式等信息。项目管理模
块13在收集求助申请的信息时,可 显示输入界面,以便通过输入界面获取到求助申请的求助物资明细单、 收货地址、联系人以及联系方式等信息。项目管理模块13可在显示的 输入界面上直接呈现求助者注册信息中的联系方式、收货地址和联系人 等信息,以减少求助者填写内容,并且输入界面上呈现的联系方式、收 货地址和联系人等内容也可被修改。另外,项目管理模块13在收集求 助物资明细单之前,可以向求助者展示援助项目的所需物资范围清单, 以便用户从援助项目所需物资范围清单中选择,以便于求助者发布求助 申请,即使求助者的求助物资不在项目物资清单范围内,求助者也可手 动输入求助物资明细。
48.项目管理模块13还可用于提供针对于求助申请的审核服务,以便 慈善机构等审批机构对求助申请进行审核。求助申请审核通过后,区块 链捐赠平台10可将援助项目和求助申请进行关联展示,以便捐赠者和 慈善机构等了解针对于援助项目发布的至少一个求助申请的信息。另外, 求助申请审核通过后,区块链捐赠平台10可按照求助者+物资和物资两 个纬度分别进行汇总展示求助者的求助申请。
49.其中,项目管理模块13可用于向捐赠者提供针对于援助项目的捐 赠服务。可选地,捐赠者可在援助项目所需物资范围清单和/或求助申请 的求助物资明细单中选择物资进行捐赠,并可填写捐赠数量。
50.进一步地,项目管理模块13可用于向捐赠者提供针对于援助项目 的定向捐赠服务和非定向捐赠服务,使得本技术的区块链捐赠平台10 支持定向或非定向捐赠,灵活性更强。
51.定向捐赠服务具有指定求助者。具体地,捐赠者可选择援助项目中 已经列出的求助者名单和所缺的物资品类、规格、数量等信息,针对该 信息指定求助者发起定向捐赠,慈善仓库接收到物资后直接按指定求助 者配送,这样点对点定向捐赠,可以减少中间环节,以便提高捐赠效率。
52.非定向捐赠服务未设定指定求助者。具体地,捐赠者可根据慈善机 构发布的援助项目发起捐赠业务,物资直接发给慈善机构签收集中,再 由慈善机构进行物资的分配。
53.项目管理模块13还可用于提供针对于捐赠申请的审核服务,以便 慈善机构等审批机构对捐赠者提交的捐赠申请进行审核。项目管理模块 13具体用于获取对捐赠申请的审核意见;若审核意见为同意,项目管理 模块13会在捐赠申请上打上已经批复的标准;若审核意见为不同意, 项目管理模块13还会向审核机构获取不同意的原因,以便提出捐赠申 请的捐赠者知晓。
54.项目管理模块13还可用于提供捐赠物资的流转信息的录入服务, 使得本技术的区块链捐赠平台10深入到捐赠过程中的多方交割环节业 务,保证了慈善公示信息的真实性。
55.其中,捐赠物资流转过程中,信息录入流程如下所示:
56.(a)捐赠申请审核通过后,捐赠者可以根据批复通过后的捐赠申请, 在捐赠申请单据上点击发货确认,填写物流单号,还可在捐赠申请单据 上录入发货单。至此整个捐赠申请单包含批复标志、发货确认标志、物 流单号等信息。
57.(b)捐赠者基于物流单号将捐赠物资给物流方,以便物流企业将 捐赠物资配送至慈善机构。物流企业在配送捐赠物资的过程中,物流企 业会将捐赠物资的所有中转信息录入至区块链捐赠平台10。
58.(c)物流企业基于物流单号将捐赠物资配送给慈善机构的慈善仓库, 慈善机构和物流企业双方确认,并将确认后的该物流单号对应的捐赠物 资、物资规格和数量以及存储仓库等信息录入至区块链捐赠平台10。
59.(d)若捐赠请求为定向捐赠请求,慈善机构会以定向捐赠请求的 的指定求助者为收货方生成配送单,慈善机构会将配送单及其配送信息 录入至区块链捐赠平台10。
60.(e)若捐赠请求为非定向捐赠请求,慈善机构会自行确定将非定向 捐赠请求的捐赠物资分配给哪些求助者。慈善机构分配捐赠物资后,会 将分配清单录入到区块链捐赠平台10,分配清单中包含求助者、物资明 目、物资规格、分配数量、物资仓库等信息,并且录入分配清单时,需 要决策主体和慈善机构双方确认。慈善机构会手工或者基于分配清单以 求助者为粒度自动生成配送单。
61.(f)慈善机构基于配送单将捐赠物资给物流方,以便物流企业将捐 赠物资配送至求助者,捐赠物资会被仓库和物流方双方交割确认,配送 单及其配送信息等确认信息会被录入至区块链捐赠平台10。物流企业在 配送捐赠物资的过程中,物流企业会将捐赠物资的所有中转信息录入至 区块链捐赠平台10。
62.(h)物流企业基于配送单将捐赠物资配送给求助者。求助者收到 捐赠物资后,确认与分配清单是否一致;若确认一致无误,基于配送单 线上确认;如物资不一致,与物流方协商一致可选择拒收或签收,并在 配送单上注明具体物资。
63.进一步地,如图2所示,捐赠物资流转过程中,还可基于rfid、 二维码、gps等物联网技术实时采集捐赠物资的位置数据以追踪捐赠物 资的运输路径,实现一物一码,将物资从捐赠者、慈善机构、物流到求 助者等全链路的信息,以及该过程中产生的凭证、纸质文件录入到区块 链捐赠平台10,将求助、捐赠申请、物资发货、慈善机构签收、配赠、 受助签收等全流程数据录入到区块链捐赠平台10,以实现对捐赠物资的 可信溯源,保障每件捐赠物资的唯一性与真实性,并便于监管部门和公 众用户线上监管,解决传统公益活动中的不可信问题。
64.另外,本技术的区块链捐赠平台10还可包括信息记录模块14。
65.信息记录模块14可与项目管理模块13通信连接,在项目管理模块 13获取到援助项目相关信息、求助申请相关信息、捐赠申请相关信息和 /或捐赠物资流转信息后,项目管理模块13会将获取到的信息发送给信 息记录模块14,以让信息记录模块14将这些信息上链存储。并且信息 记录模块14是利用区块链加密技术将这些信息进行上链存储的,以保 护捐赠者和求助者的隐私。
66.并且信息记录模块14可将捐赠物资全部流转过程的流转信息以及 对应的援助项目信息等进行关联,以供捐赠物资的溯源查询,以便用户 查询到如图3所示的捐赠物资溯源示意图,通过这种关联方法为整个爱 心捐赠过程提供了公信力,公众和捐赠者可对捐赠的信息追溯物资的最 终流向,确保捐赠物资被合法合规地使用,公开透明。
67.信息记录模块14可用于将捐赠者和援助项目直接关联,每笔捐赠 物资的流通过程都被储存在区块链上,每一笔捐赠物资的流向都可以追 溯。
68.此外,本技术的区块链捐赠平台10还可包括信息公布模块15。信 息公布模块15用于公布慈善机构发布的援助项目、求助者针对于援助 项目发布的求助请求、捐赠者针对于援助项目发布的捐赠请求、以及捐 赠请求的捐赠物资的各个流转过程的流转信息,以便用
户实时查看援助 项目精度,通过区块链即时的公开、共享给社会各方,进行全流程透明 追溯、共同监督;爱心捐助者可随时链上查看捐赠物资的流转,捐赠更 放心,且捐赠者可获知求助者反馈,参与感更强;求助者可实时链上监 控受助物资情况,需求管理更方便;有助于实现公益慈善网络中参与各 方形成有效的合力,助力公益慈善事业的大力发展。
69.信息公布模块15可以将求助申请及其所针对的援助项目在项目详 情信息中心中关联展示,以便捐赠者等用户查看项目详情时可以知晓该 援助项目的实际求助信息。而且在展示援助项目相关联的至少一个求助 申请时,可以按照求助者+物资和物资两个纬度分别进行汇总展示。
70.具体地,信息公布模块15可展示有爱心榜、援助项目两个子页面。
71.爱心榜用来展示爱心捐赠人士的捐赠日期、所援助的项目、捐赠这 的名称、是否定向捐赠、物资的签收状态等信息,并可查看经过慈善机 构签收确认的物资明细。
72.如图4所示,援助项目用来展示慈善机构发布的项目列表,捐赠者 和求助者可以针对某个援助项目分别发起求助申请和捐赠申请。援助项 目还可响应于查看某个援助项目详情的指令,显示相应援助项目的捐赠 详情。
73.信息公布模块15还可用于提供捐赠业务的溯源查看服务。具体地, 信息公布模块15还可用于展示捐赠业务的全链条溯源页面,如图5所 示,包含以下溯源节点:发布项目(慈善机构)、发布需求(求助者)、 捐赠物资(捐赠者)、运输物资(物流)、签收物资(慈善机构)、物 资入库(慈善机构)、物资出库(慈善机构)、运输物资(物流)、签 收物资(求助者),点击可以查看相关节点的详情页面,这样基于区块 链技术的防篡改和可溯源特性,为整个爱心捐助过程提供了公信力,公 众和捐赠人可对捐赠的信息追溯物资的最终流向,确保捐赠物资被合法 合规地使用,公开透明,实现公益慈善过程中信息与行为的全流程存证、 公益慈善全周期的阶段追溯与审计,将捐赠流程公开化、透明化。并且 信息公布模块15可用于展示援助项目收到的所有物资明细,以及物资 流向明细。
74.本技术以区块链为底层技术搭建区块链捐赠平台10,整合信息流与 物资流,核心数据全流程上链存证公示;为个人和企业用户提供爱心求 助、捐赠、受助业务处理及信息公示,数据溯源功能;为慈善机构提供 用户信息、项目基础数据,救灾物资等捐赠全业务流程管理服务,基于 区块链建立的可信的爱心捐赠路径,提升管理水平,用区块链去信任特 性,提升自身公信力;对平台建设方而言,以“区块链+公益”进一步切入 社会服务业务领域,提升社会形象和社会公信力;对监管单位而言,可 以实时监测援助项目的每一笔捐赠物资,公开透明,受益人的信息及实 际情况等数据上链,并追踪每一笔钱款,增加公益的真实性,建立各方 的信任关系;而且联盟链用户相互之间可以共同监督,不可篡改,每个 捐赠者、求助者、监管机构都是业务节点,数据实时共享,确保链上数 据的可信,使每个业务环节处于监管之下;相较于市场趣链善踪、腾讯 慈善其他基于区块链的相关平台,本技术的区块链捐赠平台10除了支 持链上存证、公示慈善捐赠结果以外,还进一步深入捐赠过程中的多方 交割环节业务,保证了慈善公示信息的真实性。
75.进一步地,如图6所示,本技术的区块链捐赠平台10包括平台层 和应用层,其中,平台层包括上述的联盟链、用户管理模块12、项目管 理模块13等。应用层提供与用户交互的接口,具体地,应用层具体可 体现为pc端或小程序端等的捐赠应用,关键用户(慈善机构、物流企 业或金融机构等)和普通用户可通过应用层与平台层进行交互,以将捐 赠管理
平台上形成的用户、物资、物流、库存、资金、求助与捐赠等业 务活动信息写入联盟链,并可查看援助项目信息、求助信息和捐赠信息 等,还可进行捐赠物资溯源查看等操作。
76.具体地,捐赠应用具有以下页面:
77.1.登录页面:通过首页右上角的“登录”按钮可以进行登录页面,输 入正确的账号密码进行登录。
78.2.注册页面:在注册页面可执行账号注册、忘记密码等功能。
79.3.个人中心:在个人中心可修改头像、更改手机号、修改密码、查 看“我的捐赠”、“我的求助”,可查看该用户所有历史的捐赠信息以及求 助信息。
80.4.主页:一级菜单包含慈善项目、信息公示、爱心榜、运营管理(捐 赠及求助用户无该功能菜单)。
81.其中,捐赠应用的首页界面示意图如图7所示,首页界面包含: banner图滚动,公益广场(捐赠项目部分)、信息公示、爱心榜、捐赠 数据统计、可用物流信息、友情链接。
82.用户可在捐赠应用的首页查看到公益广场中的部分慈善项目,进行 快捷操作,完整的项目可点击“慈善项目”功能按钮进行跳转页面;信息 公示模块可查看筛选对应时间区间内的“捐赠”及“已使用”的物资数据, 点击更多可穿透打开“信息公示”页面;爱心榜可查看捐赠信息(当日捐 赠情况滚动显示),点击更多可穿透打开“爱心榜”页面;捐赠数据统计 可查看筛选的时间段内记录的需求发布以及捐赠次数;可用物流信息可 查看当前哪些物流可用,哪些物流不可用;友情链接展示与此区块链捐 赠平台10相关的其他方平台。
83.进一步地,写入到联盟链的用户、物资、物流、库存、资金、求助 与捐赠等业务活动信息是由多方共识形成的,以便达到多方共享可信数 据的目的。从而区块链捐赠平台10中的共识机制相当重要,如果共识 机制本身不安全,那么公示数据就存在伪造的可能,整个公益系统就失 去了公信力。比特币系统使用的pow(工作量证明)机制中,如果大 多数参与计算的节点都是诚实的,那么可以保证其安全性;但如果遭到 51%攻击,比特币这样的系统无法抵御。本技术提出一种混合共识方法, 该方法结合第二共识机制和第一共识机制——pow机制,让区块链捐 赠平台10的区块链模块11交替进行pow证明和第二共识证明,以生 成第一区块和第二区块的链对,使得区块链捐赠平台10的联盟链系统 能够防御51%攻击:即使作恶节点控制了50%以上的算力,仍能保证区 块链捐赠平台10的安全性。
84.如图8所示,本技术混合共识方法包括以下步骤。可以理解的是, 本技术的混合共识方法不限于适用于区块链捐赠平台中,例如也可使用 于物流系统中。
85.s101:第一记账节点从前一轮的候选链对集合中选出第一最佳链对。
86.其中,前一轮的候选链对集合包括多个第一候选链对,第一记账节 点获取到多个第一候选链对后,可以先从多个第一候选链对中选出一个 最佳链对,作为第一最佳链对,以便在第一最佳链对上扩展区块链对。
87.可选地,每个第一候选链对包括前一轮的第一区块和第二区块。
88.具体地,最佳链对的查找过程可如下所示:
89.对于每个链对执行:
90.1、检查pow链和pos链的链长是否满足且type=pos

holder,初始设置l:=len(c)。然后,验证新的pow 块c[l],如下所示:
[0091]
(1)验证c[l]中的指针:解析c[l]以获得<h
l
,w
l
>,将(compute, c[l

1],)发送到然后接收(computed,h)。如果h≠h
l
, 则从¢’删除该链对;
[0092]
(2)验证c[l]中的pow解决方案:将消息(ro

verify,c[l]) 发送到函数然后接收(ro

verified,h’)。如果h’=

,则从¢
’ꢀ
删除该链对。
[0093]
2.检查pow链和pos链的链长是否满足且 type=pos

holder,或者且type=pow

miner。若 满足,则对于每个进行如下操作:
[0094]
(1)验证pow块c[i]:
[0095]

验证c[i]中的指针:解析c[i]以获取<h
i
,w
i
>,将(compute, c[i

1],)发送到然后接收(computed,h);
[0096]

验证c[i]中的pow解决方案:将消息(ro

verify,c[i])发送 到函数然后接收(ro

verified,h’)。
[0097]
如果h
i
≠h或h’=

,则设置b1:=0。否则,设置b1:=1。
[0098]
(2)验证pos块解析以获得<s,b,x,σ>。然后将消 息(stake

verify,(b,x,s
j
),σ)发送到函数从收 到消息(stake

verified,(b,x,s
j
),f)后,如果f=0或b≠c[i], 则设置b2:=0。否则,设置b2=1。
[0099]
(3)如果b1=0或b2=0,表示有一方验证失败,则从¢’中删除该 链对。
[0100]
3.否则,请从¢’中删除此链对。
[0101]
找到具有最长pow链的有效链对然后将然后将输出为最佳链对。
[0102]
s102:第一记账节点在第一最佳链对的基础上采用第一共识机制生 成当前轮的第一区块。
[0103]
第一记账节点确定出第一最佳链对后,可以在第一最佳链对的基础 上采用第一共识机制生成当前轮的第一区块。
[0104]
可选地,第一共识机制为pow机制。其中,第一记账节点通过工 作量证明(即解决哈希不等式)扩展最佳有效链对,即第一记账节点都 有与其计算能力成比例的能力来生成工作量证明区块。
[0105]
具体地,步骤102包括:第一记账节点计算最佳块头,以确定出符 合目标要求的随机数,进而确定出第一出块节点;将第一出块节点组装 的第一区块添加到第一最佳链对上。
[0106]
更为具体地,第一共识机制π
w
的执行过程可如下所示:
[0107]
对于每个具有本地状态state
i
的pow记账节点w
i
(1≤i≤n),假定已 经注册了函数对于每个pow轮次,从环境z接收到消息 (input

work,w
i
)后,w
i
按照以下步骤进行操作:
[0108]
1.选择最佳的本地链对:在从f
net
接收到任何一个 的形为(message,p,)的消息集后(其 中c为从f
net
收集的所有链对的集合),计算 (pow

miner),然后设置c
i
:=c
best

[0109]
2.尝试扩展pow链:
[0110]
(1)使用理想函数计算最佳块头:将(compute,head(c
i
), )发送到理想函数并从接收(computed,h);
[0111]
(2)搜索pow解决方案:如果h≠

,则将(search,w
i
,h) 发送到理想函数然后从接收(searched,w
i
,w)。
[0112]
(3)生成新的pow块:如果w≠

,更新b:=<h,w>,即表明w
i
是本轮解决方案的参与者,更新c
i
:=c
i
||b,更新本地状态state
i
:=state
i
然后将(broadcast,)发送到f
net

[0113]
(4)将(return

work,wi)返回到环境z。
[0114]
优选地,第一记账节点生成的当前轮的第一区块指向前一轮的第一 区块和前一轮的第二区块。当然不限于此,例如当前轮的第一区块也可 仅指向前一轮的第一区块。
[0115]
s103:第二记账节点将前一轮的候选链对集合中的第二候选链对筛 除之后选出第二最佳链对。
[0116]
对于第二记账节点而言,第二记账节点可以从前一轮的候选链对集 合中筛除掉前一轮的第一区块的出块节点与当前轮的第一区块的出块 节点相同的链对,以使本技术混合共识机制构成的区块链系统中相邻两 个第一区块的出块节点不相同,很大程度上避免了算力很高的记账节点 连续记账而出现数据篡改的情况,提高了共识机制的安全性。
[0117]
其中,第二候选链对属于第一候选链对,并且每个第二候选链对中 前一轮的第一区块的出块节点与当前轮的第一区块的出块节点相同。
[0118]
第二记账节点从前一轮的候选链对集合中筛除第二候选链对而得 到第二候选链对集合后,需要从第二候选链对集合中选出一个最佳链对 作为第二最佳链对。第二最佳链对的选取方法可以参照步骤s101所述, 在此不做赘述。
[0119]
s104:第二记账节点在第二最佳链对的基础上采用第二共识机制生 成当前轮的第二区块。
[0120]
第二记账节点确定出第二最佳链对后,可以在第二最佳链对的基础 上采用第二共识机制生成当前轮的第二区块。
[0121]
可选地,第二共识机制与第一共识机制不相同。
[0122]
其中,第二共识机制可以为权益证明pos机制或容量证明poc机 制。
[0123]
以pos机制为例,步骤104可以包括:第二记账节点利用自身的权 益数量进行权益选举,以确定出第二出块节点;将第二出块节点组装的 第二区块添加到第二最佳链对上。
[0124]
pos区块生成过程中,先基于工作量证明链和新的pow块,选择 第二出块节点(即
通过另一个哈希不等式测试每个权益记账节点的验证 密钥),然后该第二出块节点有特权在其账本上扩展最有效的链对(即 通过签署和批准新交易)。在每个轮次的pos轮中,具有从前一个pow 轮次产生的新第一区块派生的身份的第二记账节点能够生成新的第二 区块,然后将新的第二区块附加到第二最佳链对上。对于每个第二记账 节点来说,是否能被选择取决于其所拥有的权益数量。
[0125]
具体地,pos共识机制π
w
的执行过程可如下所示:
[0126]
对于每个具有本地状态state
j
的pos记账节点假设已经注册到函数在每个pos轮次,从环境z接收到消息 (input stake,s
j
,x)后,其中x表示块的有效负载,s
j
按照以下 步骤进行操作:
[0127]
1.选择最佳的本地链对:在从f
net
接收到任何一个 的形为(message,p,)的消息集后 (其中c为从f
net
收集的所有链对的集合),计算 (pos

holder),然后设置c
i
:=c
best

[0128]
2.尝试扩展pos链:设c
best
中有一个新的pow块b。
[0129]
(1)权益选举:将(elect,s
j
,b)发送到理想函数并 从接收(elected,s
j
,f)。
[0130]
(2)生成签名:如果f=1,则将(sign,s
j
,b,x)发送到理想 函数并从接收(signed,(s
j
,b,x),σ)。
[0131]
(3)生成新的pos块:更新即表明s
j
为 本轮选举的参与者,更新更新本地状态更新本地状态然后将(broadcast,)发送到f
net

[0132]
(4)返回(return

stake,s
j
)到环境z。
[0133]
优选地,当前轮的第二区块指向当前轮的第一区块。
[0134]
进一步地,在第二共识机制为pos机制时,pow记账节点(即第 一记账节点)和pos记账节点(即第二记账节点)共同使用新区块共同 扩展区块链。如图9所示,方形区块是由pow记账节点在pow共识产 生的工作量证明区块(即第一区块),多个方形区块b1,b2,b3,...的 序列组成pow链;圆形区块是由pos记账节点在pos共识产生的权益 证明区块(即第二区块),多个圆形区块...的序列组成pos 链;椭圆形区块则是已被多方pow+pos混合共识并同步的区块链,即 椭圆形区块来自于已同步的区块链,表示为b

n
...,b
‑1,b0(n为整数)。 其中虚线箭头表示第一步的pow共识,实线箭头表示第二步的pos共 识。
[0135]
混合共识协议中,pow链和pos链在每个时间点都紧紧结合在一 起,并且这些pow/pos链交替延伸。如图9所示,每个工作量证明区 块(pow块)可以映射到不超过一个权益证明区块(pos块);每个 pow块链接到前一pow块和pos块。pow链和pos链相互缠绕在一 起并以相同的速度增长,即pow链和pos链的链对应具有两条长度大 致相同的成员链,如果某链
对中的pow链或pos链增长过快,则此链 对变为无效,即所有有效的pos链与其相应的pow链长度几乎相同, 有效链对是由有效的pos链及其对应的pow链组成的。
[0136]
pow+pos混合共识协议中的pow/pos链交替扩展。每个轮次包 括一个生成pow区块的pow轮和一个生成pos区块的pos轮,即每 个轮次共生成两个区块。生成区块时,每个参与者(pow记账节点或 pos记账节点)首先确定具有最长pow链的有效链对,然后尝试延长 链对。
[0137]
根据上面的协议描述,尽管本技术的共识方案中没有直接链接pos 链,但对手无法操作现有的pos块,因为它被链中的下一个pow块锁 定(即每个pow块都链接到其前一个pow块和pos块)。此外,为 了扩展pow/pos链对,对手需要同时控制两步:1、对手首先需要找 到有效的pow解决方案(定义有效的pow块),这个工作量块指定了 一个有效的权益记账节点;2、对手还需要控制此类权益记账节点以完 成链对的扩展,而指定权益记账节点的身份很难预测。即使对手可以找 到pow解决方案,如果对手控制了非常少的权益记账节点,那么对手 仍然无法产生比诚实参与者更多的pos区块。基于此,如果诚实的参与 者控制了大部分资源(包括算力和权益),本技术混合共识协议构成的 区块链还是可信的,本技术的pow和pos混合共识协议从本质上提高 了区块链的安全性,即即使对手控制了50%以上的算力,诚实的参与者 仍然可以通过权益保障区块链数据不被篡改。并且本技术将工作量证明 区块链视为有偏随机信标(非等概率不可预测的随机数),用于在相应 的pos轮次中选举权益记账节点,以选举利益相关者维护权益证明区块 链;即本技术的共识方案可以看作是权益证明方案,它使用工作量证明 链作为有偏随机信标。
[0138]
下面为更好说明本技术混合共识协议,提供以下混合共识协议具体 实施例来示例性说明:
[0139]
混合共识协议的底层通讯函数f
net
[0140]
函数f
net
为区块链协议的底层通讯函数。该函数由网络延迟的上限 δ设定,用于捕获区块链节点异步通信中未经其他节点验证的原子性全 网广播,并在对手方的中转下与其他参与者交互。函数f
net
的执行过程 如下:每当收到来自参与者的消息,首先要求指明消息的传递时间。如 果指定的传递时间超过了延迟上限,则该函数将不会遵循消息发送者的 指示,而只会将消息延迟到最大轮次数δ(也就是说,没有消息延迟超 过δ轮)。对手方可以获得所有诚实参与者发出的所有消息;对手也可 能篡改他们发送的消息的来源,并冒充消息的(诚实的)发送者。
[0141]
f
net
函数的执行过程:
[0142]
该函数由δ参数化,并与对手s和一组pow记账节点{w1,...w
n
}以及 一组pos记账节点交互。
[0143]
·
在第r轮中从一方p接收到(broadcast,m),其中将(broadcast,m)发送给s并记录(p, m,b,r),其中b=0,r为轮次数。
[0144]
·
从s接收到(delay,m,p’,t),其中(此 处,s可以篡改消息的来源),则
[0145]

如果存在记录(p,m,b,r)使得b=0且t≤δ,则在第r+t轮将(message,p’,m)发送给所有其他pow记账节点和pos记账节点, 并重置b=1。
[0146]

否则,如果t>δ,则在r+δ轮次处将(message,p’,m)发送 给所有其他pow记账节点和pos记账节点,并重置b=1。
[0147]

否则,请忽略该消息。
[0148]
pow+pos混合共识协议
[0149]
利用工作量证明和权益证明提出了一种混合共 识协议π=(π
w

s
),其中为pow的理想函数,用于查找最佳的pow 块;为pos的理想函数,用于选举最佳的pos块;f
net
为区块链 的底层通讯协议;π
w
和π
s
分别表示由pow记账节点和pos记账节点 运行的代码。假设执行环境为z(1
k
)(其中k是安全参数),包括n个pow 记账节点和个pos记账节点,轮流执行协议。每个轮次包括一个pow 轮和一个pos轮,pow轮对应于pow记账节点,pos轮对应于pos 记账节点。对手a可以在环境z中管理协议参与者,也可以动态破坏诚 实节点,但是需要2δ轮才能生效。
[0150]
具体来说,按照如下方式执行。每个参与方都 以初始状态state
o
进行初始化,此状态包括该协议的创世块等所有初始信 息。环境z首先激活对手a并为对手提供指令。协议逐轮执行,在每一 轮中,环境都可以激活协议参与方。
[0151]
(1)在每个pow轮中,对于每个pow记账节点w
i
(1≤i≤n), 其本地状态为state
i
(最初state
i
=state
o
,即初始值为0)。w
i
由环境z激 活,将从环境z接收的消息转发到函数然后将从函数接收的消 息转发到环境。具体处理过程如下:
[0152]
·
环境z用(input

work,w
i
,x)消息激活pow记账节点w
i
,其 中x是来自z的输入,则pow记账节点w
i
有可能通过底层通讯协议f
net
接收到消息(message,p,m),其中然后,w
i
与 函数交互,并得到的输出y(携带最佳pow块及记账节点信息);
[0153]
·
pow记账节点w
i
通过现有的本地状态state
i
、从函数f1接收的y值、 来自环境z的输入x以及通过f
net
接收的消息m,执行pow代码π
w
, 然后更新本地状态state
i
和外发消息m',即{state
i
,m'}

π
w
(state
i
,x,y,m)。之 后,将(broadcast,m’)发送至f
net
,并将(return

work,w
i
) 发送至环境z。
[0154]
(2)在每个pos轮中,对于每个pos记账节点其本地状态为state
j
(最初state
i
=state
o
,即初始值为0)。s
j
由环境z激 活,将从环境z接收的消息转发到函数然后将从函数接收 的消息转发到环境。处理过程如下:
[0155]
·
当环境z用(input

stake,s
j
,)消息激活pos记账节点s
j
, 其中是来自z的输入,则pos记账节点s
j
有可能通过底层通讯协议 f
net
接收到消息(message,p,m),其中然后, s
j
与函数交互,并得到的输出(携带最佳pos块及记账节 点信息);
[0156]
·
pos记账节点s
j
通过现有的本地状态state
j
、从函数f2接收的值、 来自环境z的输入以及通过f
net
接收的消息m,执行pos代码π
s
,然 后更新本地状态state
j
和外发消息m',即即之后,将(broadcast,m’)发送至f
net
,并将
(return

stake, s
j
)发送至环境z。
[0157]
(3)在任何轮次r,z都可以向对手a发送消息(corrupt,p), 其中让对手a从轮次r+2δ开始访问p的本地 状态并控制p。
[0158]
在混合共识协议π=(π
w

s
)中,pow记账节点在pow轮次通过搜索最佳的pow块;pos记账节点在pos轮次随pow链增长,并通 过来选举最佳的pos块并扩展pos链。pow记账节点和pos记 账节点从网络通讯协议f
net
收集区块链信息,执行验证和生成区块的工 作,然后通过f
net
与网络共享其本地状态。协议π=(π
w

s
)的执行过程 如图10所示,具体地,参与者在pos轮或pow轮完成了两项任务: (1)确定最佳有效链对,(2)尝试扩展具有最佳链对的pos链或pow 链。
[0159]
请参阅图11,图11是本技术混合共识系统一实施方式的结构示意 图。本混合共识系统20包括处理器22,处理器22用于执行指令以实现 上述混合共识方法。具体实施过程请参阅上述实施方式的描述,在此不 再赘述。
[0160]
处理器22还可以称为cpu(central processing unit,中央处理单元)。 处理器22可能是一种集成电路芯片,具有信号的处理能力。处理器22 还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、 现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶 体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理 器22也可以是任何常规的处理器等。
[0161]
混合共识系统20还可进一步包括存储器21,用于存储处理器22运 行所需的指令和数据。
[0162]
请参阅图12,图12为本技术实施方式中计算机可读存储介质的结 构示意图。本技术实施例的计算机可读存储介质30存储有指令/程序数 据31,该指令/程序数据31被执行时实现本技术混合共识方法任一实施 例以及任意不冲突的组合所提供的方法。其中,该指令/程序数据31可 以形成程序文件以软件产品的形式存储在上述存储介质30中,以使得 一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处 理器(processor)执行本技术各个实施方式方法的全部或部分步骤。而 前述的存储介质30包括:u盘、移动硬盘、只读存储器(rom,read

onlymemory)、随机存取存储器(ram,random access memory)、磁碟 或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手 机、平板等终端设备。
[0163]
在本技术所提供的实施方式中,应该理解到,所揭露的系统,装置 和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式 仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际 实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以 集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示 或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口, 装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0164]
另外,在本技术各个实施方式中的各功能单元可以集成在一个处理 单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元 集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可 以采用软件功能单元的形式实现。
[0165]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵 盖非排他性的
包含,从而使得包括一系列要素的过程、方法、商品或者 设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是 还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限 制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素 的过程、方法、商品或者设备中还存在另外的相同要素。
[0166]
以上仅为本技术的实施方式,并非因此限制本技术的专利范围,凡 是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直 接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护 范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1