基于新型自适应分片的区块链监管系统及方法与流程

    专利查询2022-07-06  221



    1.本发明涉及区块链技术领域,具体地,基于新型自适应分片的区块链监管系统及方法,更为具体地,涉及基于新型自适应分片的高性能监管友好型区块链方法。


    背景技术:

    2.去中心化分布式交易账本是区块链的第一个也是最广为人知的应用。事实上,区块链解决的核心问题,即,去中心化分布式网络中的信任和共识问题,早在上世纪就被很多分布式领域的专家学者讨论过,其中的代表包括:lamport等人最早开始研究分布式共识,并提出了著名的“拜占庭将军问题”(byzantine agreement,ba);随后,在1999年miguel castro等人提出了pbft(practical byzantine fault tolerance)算法,其是第一个实用性的拜占庭容错算法。
    3.然而,pbft所谓的“实用性”仅仅局限于有限的若干固定的分布式节点间的共识(当然,起初ba问题也没有考虑过超大型网络的情况)。随着底层区块链技术的迅速发展,越来越多的工业界和学术界的科研人员开始关注这一新兴课题。为了不断提升区块链的效率,学者们提出了区块扩容、新型共识算法、分片算法、链下技术等。这些技术方案都将进一步给区块链带来实用落地的可能。
    4.在多种新型区块链系统中,vcb(value-centric blockchains,价值中心区块链)是首个提出“自适应分片”概念的区块链方案。相较于vcb,传统的分片方案基于随机算法或人为干预地将网络划分成若干个分片(子集),从而达到分而治之的效果。但这种操作并非是最优的,分片间可能会产生大量信息交互(即,分片间共识),这反而会给系统带来额外负担。此外,传统分片也无法应对超大规模的网络集群,当系统内节点数量达到一定量级后,系统的效率会进一步下降。vcb的提出则在一定程度上解决了这些问题。其采用了一种“即用即取”的思想,交易信息由各个相关节点负责存储,而主链仅负责存储和共识交易的摘要信息,这大大提升了共识效率以及节点的存储压力。此外,这种设计思路帮助节点根据交易自适应地划分为多个分片子集,这一过程无需任何算法参与并且可以完全避免跨分片交易的产生。
    5.vcb和普通区块链最大的区别在于,所有的非摘要信息都是即用即取的,只有摘要信息需要被共识,这大大增加了系统的运行效率和节点的存储成本,降低了准入门槛从而提升了系统的去中心化程度和安全性。
    6.许多学者也开始关注监管友好型的区块链。其中使用到了同态加密、零知识证明等密码学技术。同时,区块链监管已经成为区块链落地研究中必要的一环。
    7.专利文献cn110401656b(申请号:201910670841.6)公开了一种区块链管理系统,包括:管理模块和治理模块;所述管理模块,用于管理所属组织中的所有节点,所述节点包括:peer记账节点、orderer排序节点和数字证书认证中心ca节点;所述治理模块,用于以去中心化的方式进行区块链治理;其中,区块链网络中的每一个组织均部署自己的区块链管理系统。


    技术实现要素:

    8.针对现有技术中的缺陷,本发明的目的是提供一种基于新型自适应分片的区块链监管系统及方法。
    9.根据本发明提供的一种基于新型自适应分片的区块链监管系统,包括:
    10.模块m1:周期性地通过共识算法对节点提交的交易摘要进行全网共识,基于全网共识的交易摘要生成被所有共识节点维护的aca链,记为其中,bk表示aca块;
    11.模块m2:对预设周期内的所有aca链上的交易进行合法性检测,并发布非法交易列表块cb,基于各个周期内的非法交易列表块生成pca链,记为其中,cbk表示pca块;
    12.模块m3:建立临时交易通道,基于aca链和pca链上的信息完成交易。
    13.优选地,在所述模块m1中,
    14.模块m1.1:节点i收集需要打包提交的交易集合txnsi={[v1,j,sn1],[v2,k,sn2],

    },其中,sn表示交易在节点i本地存储中的内部编号;txnsi集合表示编号为sn1的交易为节点i向节点j转移了值v1;编号为sn2的交易为节点i向节点k转移了值v2,
    ……

    [0015]
    模块m1.2:节点i生成提交的摘要信息abs(txnsi);
    [0016]
    abs(txnsi)=[mri(txns)|i,h(pki),sigi(h(pki))]
    [0017]
    其中,pki为节点i的公钥;函数h(
    ·
    )表示哈希函数返回输入的哈希值;函数mri(
    ·
    )返回节点i私钥加密后的merkle树根;函数sigi(
    ·
    )返回包含i数字签名的输入值;
    [0018]
    模块m1.3:共识节点执行algorand算法对所有提交的摘要信息进行共识上链。
    [0019]
    优选地,在所述模块m2中,
    [0020]
    模块m2.1:监督节点遍历预设周期内的所有aca链包含的所有交易摘要信息,对于其中的任意一个摘要信息abs(txnsi),监督节点要求节点i提供交易集合txnsi中的所有交易信息txnsi={txn1,txn2,

    }以及对应的交易证明集合prfsi={prf1,prf2,

    };
    [0021]
    模块m2.2:当节点i拒绝提供交易集合中所有交易信息和对应的交易证明集合,则监督节点将abs(txnsi)加入当前周期的pca块中;当节点i提供了交易集合中所有交易信息和对应的交易证明集合,则监督节点对任意的txnk=[vk,j,snk]∈txnsi和对应的prfk∈prfsi,(k=1,2,

    )进行合法性和监督检测,当合法性和/或监督检测未通过,则交易txnk被监督节点加入当前周期的pca块中;
    [0022]
    模块m2.3:监督节点遍历预设周期内的所有aca链包含的所有交易摘要信息,当监督节点完成所有遍历检测后,则发布当前周期的pca块cb,并将cb添加至链cb中。
    [0023]
    优选地,在所述模块m2.2中,
    [0024]
    所述合法性检测采用:监督节点执行函数getowner(vk,b,prfk),其中b是txnsi所属的aca块;若返回值为i,则说明i提供了合法的证明,则合法性检测通过;否则不通过;
    [0025]
    所述监督检测采用:监督节点对交易txnk进行分析,判断是否存在包括违法交易以及不良信息的不符合监管制度的情况,进行监督性检测。
    [0026]
    优选地,在所述模块m3中,
    [0027]
    模块m3.1:交易通道一侧x发送p=proof(v,b)至交易通道的另一侧y;其中,v表示转移值;b表示aca块;
    [0028]
    所述proof函数采用:
    [0029]
    模块m3.1.1:交易通道的一侧x准备转移值v的证明p,并置
    [0030]
    模块m3.1.2:交易通道的一侧x获取最新的检查点信息当则触发模块m3.1.3;否则,触发模块m3.1.4;
    [0031]
    模块m3.1.3:交易通道的一侧x收集转移值v自出现以来一直到块b之前的所有相关的交易集:其中o1,o2,o3,

    是值的v的历任拥有者,txnsi表示节点i在拥有值v的期间向提交的所有交易集的集合,置p=txns,并返回p;
    [0032]
    模块m3.1.4:交易通道的一侧x收集自转移值v被x拥有之后一直到最新的块b之前的所有x提交的交易集:其中k1,k2,k3表示连续序号,置p=txns
    x
    ,并返回p;
    [0033]
    模块m3.2:交易通道另一侧y对交易进行验证,当getowner(v,b
    k-1
    ,p)=x,且getowner(v,bk,p∪{txn})=x时,验证成功,否则验证失败;
    [0034]
    所述getowner函数采用:
    [0035]
    模块m3.2.1:交易通道的另一侧y检测证明p中的所有交易的签名、密钥以及摘要信息是否符合加密标准,若不符合,返回验证失败;否则,触发模块m3.2.2;
    [0036]
    模块m3.2.2:交易通道的另一侧y获取最新的检查点信息当则触发模块m3.2.3,否则,触发模块m3.2.4;
    [0037]
    模块m3.2.3:交易通道的另一侧y根据aca链上的摘要信息一一对应检查证明p,若存在包括摘要信息不正确、缺少交易信息、转移值v在任意交易中存在双花、值v在块b前已被x转移或值v在块b前并不被x所拥有的情况,则返回验证失败;否则,返回交易通道的一侧x;
    [0038]
    模块m3.2.4:交易通道的另一侧y首先遍历检测p中是否有交易属于若有,则返回失败;否则,触发模块m3.2.3。
    [0039]
    优选地,在所述模块m3中,建立临时交易通道基于aca链和pca链上的信息完成交易,并将交易摘要和双方数字签名的副本共识到aca链上。
    [0040]
    根据本发明提供的一种基于新型自适应分片的区块链监管方法,包括:
    [0041]
    步骤s1:周期性地通过共识算法对节点提交的交易摘要进行全网共识,基于全网共识的交易摘要生成被所有共识节点维护的aca链,记为其中,bk表示aca块;
    [0042]
    步骤s2:对预设周期内的所有aca链上的交易进行合法性检测,并发布非法交易列表块cb,基于各个周期内的非法交易列表块生成pca链,记为其中,cbk表示pca块;
    [0043]
    步骤s3:建立临时交易通道,基于aca链和pca链上的信息完成交易。
    [0044]
    优选地,所述步骤s1采用,
    [0045]
    步骤s1.1:节点i收集需要打包提交的交易集合txnsi={[v1,j,sn1],[v2,k,sn2],

    },其中,sn表示交易在节点i本地存储中的内部编号;txnsi集合表示编号为sn1的交
    易为节点i向节点j转移了值v1;编号为sn2的交易为节点i向节点k转移了值v2,
    ……

    [0046]
    步骤s1.2:节点i生成提交的摘要信息abs(txnsi);
    [0047]
    abs(txnsi)=[mri(txns)|i,h(pki),sigi(h(pki))]
    [0048]
    其中,pki为节点i的公钥;函数h(
    ·
    )表示哈希函数返回输入的哈希值;函数mri(
    ·
    )返回节点i私钥加密后的merkle树根;函数sigi(
    ·
    )返回包含i数字签名的输入值;
    [0049]
    步骤s1.3:共识节点执行algorand算法对所有提交的摘要信息进行共识上链。
    [0050]
    优选地,所述步骤s2采用,
    [0051]
    步骤s2.1:监督节点遍历预设周期内的所有aca链包含的所有交易摘要信息,对于其中的任意一个摘要信息abs(txnsi),监督节点要求节点i提供交易集合txnsi中的所有交易信息txnsi={txn1,txn2,

    }以及对应的交易证明集合prfsi={prf1,prf2,

    };
    [0052]
    步骤s2.2:当节点i拒绝提供交易集合中所有交易信息和对应的交易证明集合,则监督节点将abs(txnsi)加入当前周期的pca块中;当节点i提供了交易集合中所有交易信息和对应的交易证明集合,则监督节点对任意的txnk=[vk,j,snk]∈txnsi和对应的prfk∈prfsi,(k=1,2,

    )进行合法性和监督检测,当合法性和/或监督检测未通过,则交易txnk被监督节点加入当前周期的pca块中;
    [0053]
    步骤s2.3:监督节点遍历预设周期内的所有aca链包含的所有交易摘要信息,当监督节点完成所有遍历检测后,则发布当前周期的pca块cb,并将cb添加至链cb中;
    [0054]
    所述步骤s2.2采用,
    [0055]
    所述合法性检测采用:监督节点执行函数getowner(vk,b,prfk),其中b是txnsi所属的aca块;若返回值为i,则说明i提供了合法的证明,则合法性检测通过;否则不通过;
    [0056]
    所述监督检测采用:监督节点对交易txnk进行分析,判断是否存在包括违法交易以及不良信息的不符合监管制度的情况,进行监督性检测。
    [0057]
    优选地,所述步骤s3采用,
    [0058]
    步骤s3.1:交易通道一侧x发送p=proof(v,b)至交易通道的另一侧y;其中,v表示转移值;b表示aca块;
    [0059]
    所述proof函数采用:
    [0060]
    步骤s3.1.1:交易通道的一侧x准备转移值v的证明p,并置
    [0061]
    步骤s3.1.2:交易通道的一侧x获取最新的检查点信息当则触发步骤s3.1.3;否则,触发步骤s3.1.4;
    [0062]
    步骤s3.1.3:交易通道的一侧x收集转移值v自出现以来一直到块b之前的所有相关的交易集:其中o1,o2,o3,

    是值的v的历任拥有者,txnsi表示节点i在拥有值v的期间向提交的所有交易集的集合,置p=txns,并返回p;
    [0063]
    步骤s3.1.4:交易通道的一侧x收集自转移值v被x拥有之后一直到最新的块b之前的所有x提交的交易集:其中k1,k2,k3表示连续序号,置p=txns
    x
    ,并返回p;
    [0064]
    步骤s3.2:交易通道另一侧y对交易进行验证,当getowner(v,b
    k-1
    ,p)=x,且getowner(v,bk,p∪{txn})=x时,验证成功,否则验证失败;
    [0065]
    所述getowner函数采用:
    [0066]
    步骤s3.2.1:交易通道的另一侧y检测证明p中的所有交易的签名、密钥以及摘要信息是否符合加密标准,若不符合,返回验证失败;否则,触发步骤s3.2.2;
    [0067]
    步骤s3.2.2:交易通道的另一侧y获取最新的检查点信息当则触发步骤s3.2.3,否则,触发步骤s3.2.4;
    [0068]
    步骤s3.2.3:交易通道的另一侧y根据aca链上的摘要信息一一对应检查证明p,若存在包括摘要信息不正确、缺少交易信息、转移值v在任意交易中存在双花、值v在块b前已被x转移或值v在块b前并不被x所拥有的情况,则返回验证失败;否则,返回交易通道的一侧x;
    [0069]
    步骤s3.2.4:交易通道的另一侧y首先遍历检测p中是否有交易属于若有,则返回失败;否则,触发步骤s3.2.3。
    [0070]
    与现有技术相比,本发明具有如下的有益效果:
    [0071]
    1、本发明满足节点数量的不断扩展,且不影响系统的效率;整体吞吐量、交易延迟、节点存储成本等指标并不会随着网络规模的扩大而降低;
    [0072]
    2、本发明中的系统并不采用联盟链式的准入门槛,允许任意节点加入此系统(但恶意节点的数量不超过λn),且可保证诚实节点共识失败的概率是可以忽略不计的;
    [0073]
    3、本发明中的交易系统是监管友好型区块链,所有上链交易均是通过相关监管节点认证的;并且系统采用的新型区块链技术可以帮助监管节点迅速溯源、验证交易的合法性,同时保证监管压力并不会随着用户和交易数量的不断增加而增大。
    附图说明
    [0074]
    通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
    [0075]
    图1为基于新型自适应分片的区块链监管系统示意图。
    [0076]
    图2为aca链和pca链的关系结构图。
    [0077]
    图3为rfbc的ccpt值与系统网络规模的关系实验图。
    [0078]
    图4为rfbc节点的存储消耗与系统运行时间的关系实验图。
    [0079]
    图5为rfbc和其他协议的ccpt值与网络规模的关系对比实验图。
    [0080]
    图6为rfbc和其他协议的节点存储消耗与网络规模的关系对比实验图。
    [0081]
    图7为rfbc与vapor的ccpt值与系统运行时间的关系对比实验图。
    [0082]
    图8为rfbc与vapor的节点存储消耗与系统运行时间的关系对比实验图。
    具体实施方式
    [0083]
    下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
    [0084]
    实施例1
    [0085]
    根据本发明提供的一种基于新型自适应分片的区块链监管系统,包括:
    [0086]
    模块m1:周期性地通过共识算法对节点提交的交易摘要进行全网共识,基于全网共识的交易摘要生成被所有共识节点维护的aca链,记为其中,bk表示aca块;
    [0087]
    具体地,在所述模块m1中,
    [0088]
    模块m1.1:节点i收集需要打包提交的交易集合txnsi={[v1,j,sn1],[v2,k,sn2],

    },其中,sn表示交易在节点i本地存储中的内部编号;txnsi集合表示编号为sn1的交易为节点i向节点j转移了值v1;编号为sn2的交易为节点i向节点k转移了值v2,
    ……

    [0089]
    模块m1.2:节点i生成提交的摘要信息abs(txnsi);
    [0090]
    abs(txnsi)=[mri(txns)|i,h(pki),sigi(h(pki))]
    [0091]
    其中,pki为节点i的公钥;函数h(
    ·
    )表示哈希函数返回输入的哈希值;函数mri(
    ·
    返回节点i私钥加密后的merkle树根;函数sigi(
    ·
    )返回包含i数字签名的输入值;
    [0092]
    模块m1.3:共识节点执行algorand算法对所有提交的摘要信息进行共识上链。
    [0093]
    模块m2:对预设周期内的所有aca链上的交易进行合法性检测,并发布非法交易列表块cb,基于各个周期内的非法交易列表块生成pca链,记为其中,cbk表示pca块;
    [0094]
    具体地,在所述模块m2中,
    [0095]
    模块m2.1:监督节点遍历预设周期内的所有aca链包含的所有交易摘要信息,对于其中的任意一个摘要信息abs(txnsi),监督节点要求节点i提供交易集合txnsi中的所有交易信息txnsi={txn1,txn2,

    }以及对应的交易证明集合prfsi={prf1,prf2,

    };
    [0096]
    模块m2.2:当节点i拒绝提供交易集合中所有交易信息和对应的交易证明集合,则监督节点将abs(txnsi)加入当前周期的pca块中;当节点i提供了交易集合中所有交易信息和对应的交易证明集合,则监督节点对任意的txnk=[vk,j,snk]∈txnsi和对应的prfk∈prfsi,(k=1,2,

    )进行合法性和监督检测,当合法性和/或监督检测未通过,则交易txnk被监督节点加入当前周期的pca块中;所述合法性检测采用:监督节点执行函数getowner(vk,b,prfk),其中b是txnsi所属的aca块;若返回值为i,则说明i提供了合法的证明,则合法性检测通过;否则不通过;所述监督检测采用:监督节点对交易txnk进行分析,判断是否存在包括违法交易以及不良信息的不符合监管制度的情况,进行监督性检测。
    [0097]
    模块m2.3:监督节点遍历预设周期内的所有aca链包含的所有交易摘要信息,当监督节点完成所有遍历检测后,则发布当前周期的pca块cb,并将cb添加至链cb中。
    [0098]
    模块m3:建立临时交易通道,基于aca链和pca链上的信息完成交易,并将交易摘要和双方数字签名的副本共识到aca链上。
    [0099]
    具体地,在所述模块m3中,
    [0100]
    模块m3.1:交易通道一侧x发送p=proof(v,b)至交易通道的另一侧y;其中,v表示转移值;b表示aca块;
    [0101]
    所述proof函数采用:
    [0102]
    模块m3.1.1:交易通道的一侧x准备转移值v的证明p,并置
    [0103]
    模块m3.1.2:交易通道的一侧x获取最新的检查点信息当则触发模块m3.1.3;否则,触发模块m3.1.4;
    [0104]
    模块m3.1.3:交易通道的一侧x收集转移值v自出现以来一直到块b之前的所有相关的交易集:其中o1,o2,o3,

    是值的v的历任拥有者,txnsi表示节点i在拥有值v的期间向提交的所有交易集的集合,置p=txns,并返回p;
    [0105]
    模块m3.1.4:交易通道的一侧x收集自转移值v被x拥有之后一直到最新的块b之前的所有x提交的交易集:其中k1,k2,k3表示连续序号,置p=txns
    x
    ,并返回p;
    [0106]
    模块m3.2:交易通道另一侧y对交易进行验证,当getowner(v,b
    k-1
    ,p)=x,且getowner(v,bk,p∪{txn})=x时,验证成功,否则验证失败;
    [0107]
    所述getowner函数采用:
    [0108]
    模块m3.2.1:交易通道的另一侧y检测证明p中的所有交易的签名、密钥以及摘要信息是否符合加密标准,若不符合,返回验证失败;否则,触发模块m3.2.2;
    [0109]
    模块m3.2.2:交易通道的另一侧y获取最新的检查点信息当则触发模块m3.2.3,否则,触发模块m3.2.4;
    [0110]
    模块m3.2.3:交易通道的另一侧y根据aca链上的摘要信息一一对应检查证明p,若存在包括摘要信息不正确、缺少交易信息、转移值v在任意交易中存在双花、值v在块b前已被x转移或值v在块b前并不被x所拥有的情况,则返回验证失败;否则,返回交易通道的一侧x;
    [0111]
    模块m3.2.4:交易通道的另一侧y首先遍历检测p中是否有交易属于若有,则返回失败;否则,触发模块m3.2.3。
    [0112]
    根据本发明提供的一种基于新型自适应分片的区块链监管方法,包括:
    [0113]
    步骤s1:周期性地通过共识算法对节点提交的交易摘要进行全网共识,基于全网共识的交易摘要生成被所有共识节点维护的aca链,记为其中,bk表示aca块;
    [0114]
    具体地,在所述步骤s1中,
    [0115]
    步骤s1.1:节点i收集需要打包提交的交易集合txnsi={[v1,j,sn1],[v2,k,sn2],

    },其中,sn表示交易在节点i本地存储中的内部编号;txnsi集合表示编号为sn1的交易为节点i向节点j转移了值v1;编号为sn2的交易为节点i向节点k转移了值v2,
    ……

    [0116]
    步骤s1.2:节点i生成提交的摘要信息abs(txnsi);
    [0117]
    abs(txnsi)=[mri(txns)|i,h(pki),sigi(h(pki))]
    [0118]
    其中,pki为节点i的公钥;函数h(
    ·
    )表示哈希函数返回输入的哈希值;函数mri(
    ·
    )返回节点i私钥加密后的merkle树根;函数sigi(
    ·
    )返回包含i数字签名的输入值;
    [0119]
    步骤s1.3:共识节点执行algorand算法对所有提交的摘要信息进行共识上链。
    [0120]
    步骤s2:对预设周期内的所有aca链上的交易进行合法性检测,并发布非法交易列表块cb,基于各个周期内的非法交易列表块生成pca链,记为其中,cbk表示pca块;
    [0121]
    具体地,在所述步骤s2中,
    [0122]
    步骤s2.1:监督节点遍历预设周期内的所有aca链包含的所有交易摘要信息,对于
    其中的任意一个摘要信息abs(txnsi),监督节点要求节点i提供交易集合txnsi中的所有交易信息txnsi={txn1,txn2,

    }以及对应的交易证明集合prfsi={prf1,prf2,

    };
    [0123]
    步骤s2.2:当节点i拒绝提供交易集合中所有交易信息和对应的交易证明集合,则监督节点将abs(txnsi)加入当前周期的pca块中;当节点i提供了交易集合中所有交易信息和对应的交易证明集合,则监督节点对任意的txnk=[vk,j,snk]∈txnsi和对应的prfk∈prfsi,(k=1,2,

    )进行合法性和监督检测,当合法性和/或监督检测未通过,则交易txnk被监督节点加入当前周期的pca块中;所述合法性检测采用:监督节点执行函数getowner(vk,b,prfk),其中b是txnsi所属的aca块;若返回值为i,则说明i提供了合法的证明,则合法性检测通过;否则不通过;所述监督检测采用:监督节点对交易txnk进行分析,判断是否存在包括违法交易以及不良信息的不符合监管制度的情况,进行监督性检测。
    [0124]
    步骤s2.3:监督节点遍历预设周期内的所有aca链包含的所有交易摘要信息,当监督节点完成所有遍历检测后,则发布当前周期的pca块cb,并将cb添加至链cb中。
    [0125]
    步骤s3:建立临时交易通道,基于aca链和pca链上的信息完成交易,并将交易摘要和双方数字签名的副本共识到aca链上。
    [0126]
    具体地,在所述步骤s3中,
    [0127]
    步骤s3.1:交易通道一侧x发送p=proof(v,b)至交易通道的另一侧y;其中,v表示转移值;b表示aca块;
    [0128]
    所述proof函数采用:
    [0129]
    步骤s3.1.1:交易通道的一侧x准备转移值v的证明p,并置
    [0130]
    步骤s3.1.2:交易通道的一侧x获取最新的检查点信息当则触发步骤s3.1.3;否则,触发步骤s3.1.4;
    [0131]
    步骤s3.1.3:交易通道的一侧x收集转移值v自出现以来一直到块b之前的所有相关的交易集:其中o1,o2,o3,

    是值的v的历任拥有者,txnsi表示节点i在拥有值v的期间向提交的所有交易集的集合,置p=txns,并返回p;
    [0132]
    步骤s3.1.4:交易通道的一侧x收集自转移值v被x拥有之后一直到最新的块b之前的所有x提交的交易集:其中k1,k2,k3表示连续序号,置p=txns
    x
    ,并返回p;
    [0133]
    步骤s3.2:交易通道另一侧y对交易进行验证,当getowner(v,b
    k-1
    ,p)=x,且getowner(v,bk,p∪{txn})=x时,验证成功,否则验证失败;
    [0134]
    所述getowner函数采用:
    [0135]
    步骤s3.2.1:交易通道的另一侧y检测证明p中的所有交易的签名、密钥以及摘要信息是否符合加密标准,若不符合,返回验证失败;否则,触发步骤s3.2.2;
    [0136]
    步骤s3.2.2:交易通道的另一侧y获取最新的检查点信息当则触发步骤s3.2.3,否则,触发步骤s3.2.4;
    [0137]
    步骤s3.2.3:交易通道的另一侧y根据aca链上的摘要信息一一对应检查证明p,若存在包括摘要信息不正确、缺少交易信息、转移值v在任意交易中存在双花、值v在块b前已被x转移或值v在块b前并不被x所拥有的情况,则返回验证失败;否则,返回交易通道的一
    侧x;
    [0138]
    步骤s3.2.4:交易通道的另一侧y首先遍历检测p中是否有交易属于若有,则返回失败;否则,触发步骤s3.2.3。
    [0139]
    实施例2
    [0140]
    实施例2是实施例1的优选例
    [0141]
    为了使本发明的技术方法严格可行,下述对待解决问题做出以下合理的假设:
    [0142]
    系统与网络模型:本发明考虑一个n节点的分布式点对点网络,其中每个节点都具有标准加密系统(例如,非对称加密、数字签名、集体签名等)。系统中的所有诚实节点间的网络都是良好的,即,节点间的消息传输延迟是有一个固定上界的。
    [0143]
    威胁模型:本发明的系统可容忍一定比例的恶意节点,形式化地,系统容忍f=λn(0《λ《1/2)个拜占庭错误节点。恶意节点地行为可以任意地偏离本发明的协议,且他们可以互相通信交换信息(包括密钥信息等)。但恶意节点无法在多项式时间内破解标准加密系统。
    [0144]
    理性节点模型:值(或者货币)的持有者,即,节点,符合经济学意义上的理性人假设。具体地,节点对于其持有的合法值,只要他愿意,均可以出示相应的合法证明;当一个值的持有者需要交易该值时,他会主动提供此值的相关合法证明;交易的接收者有责任对交易中的值进行合法性验证。
    [0145]
    基于上述问题模型,本发明中主要解决的技术问题如下所述:
    [0146]
    高效率:本发明中的系统需要满足超大型网络(例如:100000节点)下的高并发交易处理,且交易确认的延迟需要达到秒级响应。
    [0147]
    高可扩展性:本发明中的系统需满足节点数量的不断扩展(在有限程度下),且不会影响系统的效率,具体地,系统的整体吞吐量、交易延迟、节点存储成本等指标并不会随着网络规模的扩大而降低。
    [0148]
    高安全性和去中心化:本发明中的系统并不采用联盟链式的准入门槛,允许任意节点加入此系统(但恶意节点的数量不超过λn),且可保证诚实节点共识失败的概率是可以忽略不计的。
    [0149]
    监管友好性:本发明中的交易系统是监管友好型区块链,所有上链交易均是通过相关监管节点认证的。并且系统采用的新型区块链技术可以帮助监管节点迅速溯源、验证交易的合法性,同时保证监管压力并不会随着用户和交易数量的不断增加而增大。
    [0150]
    本发明提供了一种基于新型vcb框架的高效可扩展的金融交易监管友好型区块链系统(以下简称rfbc系统)。rfbc系统方案由三个核心算法模块构成:摘要共识算法(abstract consensus algorithm,aca)模块、周期共识算法(periodic consensus algorithm,pca)模块、交易通道算法(transaction channel algorithm,tca)模块。本发明的主体框架参考了vcb,但在其中加入了检查点机制和监管证明,前者进一步提升了原始vcb系统的共识效率和可扩展性,后者则使得我们的系统变成监管友好型区块链。
    [0151]
    aca模块在rfbc系统内被所有参与共识的节点周期性地执行,并输出生成一条被所有共识节点维护的aca链,记为其中,bk(k=1,2,

    )表示aca块。aca的功能目的主要是对节点提交的交易摘要进行全网共识,此共识过程是需要全网所有节点参与的,选择任何符合我们需求的现有共识算法(例如:pow共识、pos共识等)作为aca模块的核
    心。
    [0152]
    pca模块在rfbc系统内被若干委员会节点(即,监管节点)周期性地执行(rfbc系统生成若干aca块之后执行一次pca,aca链和pca链的周期性关系如图2所示),并输出生成一条被委员会节点维护的pca链,我们记为其中cbk(k=1,2,

    )表示pca块。pca模块的功能目的是对某个固定周期内的所有aca链上的交易进行合法性检测,并发布一个非法交易列表块cb(或称之为“检查点”),随后节点再进行交易时可以根据检查点快速进行交易验证上链。
    [0153]
    节点在进行交易时则执行tca模块,其功能类似区块链的链下技术,其帮助交易双发(或多方)节点开通一条临时的交易通道,并结合aca链和pca链上的信息快速完成交易,并将交易摘要和双方数字签名的副本共识到aca链上。
    [0154]
    各个算法模块在系统中的关系图如图1所示,其中,aca链记录了rfbc系统中所有交易的摘要信息,pca链记录了各个周期内的非法交易列表,形成每个周期的检查点共识。本地数据链为每个节点(交易者)本地存储的必要信息。rfbc系统节点为参与rfbc系统共识的节点,交易者可以为rfbc系统节点也可以为非共识节点。
    [0155]
    具体地,下面将对rfbc系统的主算法及其各个分算法模块进行详细的介绍。
    [0156]
    主算法模块:rfbc系统的主算法如下所示。
    [0157]
    输入:检查点周期t。
    [0158]
    新的独立进程:
    [0159]
    步骤1:若节点需要执行值交易,则调用tca算法模块。
    [0160]
    独立进程结束
    [0161]
    步骤2:置计数器counter

    0。执行步骤3。
    [0162]
    步骤3:若counter《t:则节点调用aca算法模块,并置计数器counter

    counter 1;反之调用pca算法模块,并执行步骤2。
    [0163]
    aca模块:aca模块的主要功能目的是使得在每一轮中共识节点可以就交易摘要信息达成共识,因此,我们可以选择现有的某个共识方案作为本发明中的aca模块。具体的选择标准如下:
    [0164]
    需要同时满足(异步)一致性和(同步)活性,即,当网络异步(不存在最大延迟上界)时,任意两个诚实节点不会对aca链上的任何信息产生任何分歧;当网络同步(存在最大延迟上界)时,已提交的任意合法交易摘要都会被共识上aca链
    [0165]
    需要满足aca链上确认共识的块无法被任何节点修改。
    [0166]
    需要满足其中的leader选举过程是公平的且去中心化的,即,每个参与到共识中的节点在每轮共识中当选leader的概率都是相同的。
    [0167]
    基于上述要求,本发明选择algorand算法作为因其满足上述所有条件,且具有吞吐量高,延迟低等优势。当然,在实际的应用中,使用者完全可以在rfbc的框架中更换任意满足条件的aca模块以适配更多的应用场景和需求。
    [0168]
    aca模块的步骤流程如下所示:
    [0169]
    aca模块
    [0170]
    步骤1:节点i收集需要打包提交的交易集合txnsi={[v1,j,sn1],[v2,k,sn2],

    },
    其中sn表示交易在节点i本地存储中的内部编号,则txnsi集合表示:编号为sn1的交易为节点i向节点j转移了值(或货币)v1,编号为sn2的交易为节点i向节点k转移了值(或货币)v2,
    ……
    ,执行步骤2。
    [0171]
    步骤2:节点i生成提交的摘要信息abs(txnsi)并将其提交给本轮的leader;
    [0172]
    abs(txnsi)=[mri(txns)|i,h(pki),sigi(h(pki))],
    [0173]
    其中,pki为节点i的公钥,函数h(
    ·
    )表示哈希函数返回输入的哈希值,函数mri(
    ·
    )返回节点i私钥加密后的merkle树根。函数sigi(
    ·
    )返回包含i数字签名的输入值。执行步骤3。
    [0174]
    步骤3:共识节点执行算法(在本发明中,即algorand算法),对所有提交的摘要信息进行共识上链。
    [0175]
    pca模块:pca模块为监管节点提供了核心监管功能,即,对上一个pca周期内的所有aca块进行合法性和监管检测,由监管节点生成一个具备监管节点数字签名的pca块,其是一个包含了所有上个pca周期内的非法交易的列表。算法的具体步骤如下:
    [0176]
    pca模块
    [0177]
    步骤1:监督节点遍历上一个pca周期内的所有aca块包含的所有交易摘要信息,对于其中的任意一个摘要信息abs(txnsi),监督节点执行如下操作:监督节点要求节点i提供交易集合txnsi中的所有交易信息(即,txnsi={txn1,txn2,

    })以及对应的交易证明集合prfsi={prf1,prf2,

    }。进入步骤2。
    [0178]
    步骤2:若节点i拒绝提供相关信息,则监督节点将abs(txnsi)加入此pca周期的pca块中。若节点i提供了txnsi和prfsi则进入步骤3。
    [0179]
    步骤3:监督节点对任意的txnk=[vk,j,snk]∈txnsi和对应的prfk∈prfsi,(k=0,1,2,

    )进行合法性和监督检测:
    [0180]
    合法性检测:监督节点执行函数getowner(vk,b,prfk),其中b是txnsi所属的aca块。若返回值为i,则说明i提供了合法的证明,则合法性检测通过;反而不通过。
    [0181]
    监督检测:监督节点对交易txnk进行分析,判断是否存在违法交易、包含不良信息等不符合监管制度的情况,对其进行监督性检测。
    [0182]
    只要上述两种检测有一项未通过,则交易txnk就被监督节点加入此pca周期的pca块中。完成所有遍历后,进入步骤4。
    [0183]
    步骤4:当监督节点完成所有遍历检测后,则发布此pca周期的pca块cb,并将其添加至链中。
    [0184]
    tca模块:tca模块为交易节点提供了快速的交易通道,类似链下技术,交易双方单独进行临时的信息传输,交易发起者(即,值的转移者)提供相关的值证明,交易接收者(即,值的获得者)执行验证操作。此过程随独立于aca链和pca链,但需要结合链上信息进行。算法的具体步骤如下:
    [0185]
    tca模块
    [0186]
    输入:交易者发起者x,交易接收者y,转移值v,交易为txn=[v,y,sn],交易提交的aca块bk。
    [0187]
    步骤1:x发送证据p=proof(v,b)至y。进入步骤2。
    [0188]
    步骤2:y对交易进行验证,即,若getowner(v,b
    k-1
    ,p)≠x,那么y拒绝此交易并返回“fail”;反之进入步骤3。
    [0189]
    步骤3:y继续进行验证,即,若getowner(v,bk,p∪{txn})≠x,那么y拒绝此交易并返回“fail”;反之返回“success”。
    [0190]
    值得注意的是,pca和tca模块中都应用到了getowner函数以及proof函数,前者的作用是根据输入,即,转移值、某个aca块、证明信息,获得输出,即,根据证明信息此值在此aca块中的拥有者,若证明无效则输出“fail”;后者的作用是根据输入,即,值和某个aca块,获取输出,即,在此aca块中的此值的拥有者的合法证明。
    [0191]
    标准化地,对于合法的交易者发起者x和交易接收者y,getowner和proof函数的详细伪代码如下所示。
    [0192]
    proof函数
    [0193]
    输入:需要转移的值v,提交此交易的aca块b。
    [0194]
    步骤1:发起者x准备值v的相关证明p,并置进入步骤2。
    [0195]
    步骤2:x获取最新的检查点信息,即,若则进入步骤3;反之进入步骤4。
    [0196]
    步骤3:x收集值v自出现(或“诞生”)以来一直到块b之前的所有相关的交易集:其中o1,o2,o3,

    是值的v的历任拥有者,txnsi表示节点i在拥有值v的期间向提交的所有交易集的集合。置p=txns,进入步骤5。
    [0197]
    步骤4:x收集自值v被x拥有之后一直到最新的块b之前的所有x提交的交易集:其中k1,k2,k3表示连续序号。置p=txns
    x
    ,进入步骤5。
    [0198]
    步骤5:函数返回p。
    [0199]
    getowner函数
    [0200]
    输入:需要转移的值v,提交此交易的aca块b,值的相关证明p。
    [0201]
    步骤1:交易接收者y检测证明p中的所有交易的签名、密钥、摘要信息等是否符合加密标准,若不符合,返回“fail”;反之,进入步骤2。
    [0202]
    步骤2:交易接收者y获取最新的检查点信息,即,若则进入步骤3;反之进入步骤4。
    [0203]
    步骤3:y根据aca链,即,上的摘要信息一一对应检查证明p,若存在摘要信息不正确、缺少交易信息、值v在任意交易中存在“双花”、值v在块b前已被x转移、值v在块b前并不被x所拥有等情况,则返回“fail”;反之(在确认值v的转移记录完整、合法、无双花且最后被x所持有之后)进入步骤5。
    [0204]
    步骤4:y首先遍历检测p中是否有交易属于若有,则返回“fail”;否则,执行进入步骤3。
    [0205]
    步骤5:函数返回x。
    [0206]
    为了应对区块链可扩展性相关的各种挑战,在本发明中我们提出了金融交易监管友好型区块链系统——rfbc,其是一个真正满足常数级别通信成本的分片区块链协议。rfbc无需网络分片算法,且在各分片中不需要共识操作,并且rfbc系统中不会出现跨分片交易的情况。aca、pca和tca算法共同保障了rfbc的安全性和可靠性,并且与传统分片协议不同的是,rfbc不需要任何补强的额外安全性前提假设。在性能上,rfbc不仅具有常数级别
    的通信成本,同样具有几乎恒定的非信标链存储成本。这一点是其他分片协议所无法实现的。并且rfbc支持交易监管,所有的交易信息都只有通过监管检测才可以进行上链共识。
    [0207]
    此外,我们还实施了一个最多包含100,000个节点的rfbc系统原型,以验证我们对于rfbc性能的预期,具体的试验内容如下所示。
    [0208]
    实验设置:先前的区块链协议实验大多采用tps(秒均交易数)作为衡量区块链系统吞吐量性能的标杆,但tps的数值会受到需要因素的影响,尤其是实验底层网络的性能。因此,本实验采用笔均通信复杂度(communication cost per transaction,ccpt)作为指标,其可以很好地避免底层网络性能对区块链系统效率的影响,采用复杂度的思想,更公平地衡量了各个协议的真实性能水平。
    [0209]
    本实验采用模拟p2p网络,最多可达100,000个共识节点,节点间的交易采用统一标准,即,每笔交易容量均为500kb,交易摘要信息容量均为200bytes,pca块容量均为1mb。所有实验结果均为运行5轮以上的稳定实验的结果构成。实验中涉及到的参数表如下:
    [0210]
    表1.rfbc原型系统实验参数表
    [0211]
    参数解释n实验网络规模m参与pca共识的节点数nv节点在初始化时持有的值的数量k交易频率(单位时间内每个节点平均进行的交易数)t检查点周期
    [0212]
    rfbc可扩展性实验:在可扩展性方面我们主要考虑节点的通信消耗和存储消耗随着网络规模(n)和系统运行时间增加的变化趋势,首先,我们固定一些实验参数:令m=200、k=0.01、nv=10、t=2000。实验结果图如图3-4所示。
    [0213]
    实验结果表明rfbc的确可以做到几乎恒定的节点级通信和存储成本,这意味着rfbc可以达到所谓的“scale-out”属性,即,区块链系统的性能几乎不会因为网络规模的扩大而降低,反而会随着节点数量的增加而提升系统总吞吐量。这也是众多区块链协议追求的目标。
    [0214]
    rfbc与其他区块链协议的对比实验:我们将rfbc和omnileager、algorand和vapor进行了对比试验。omnileager是经典的分片协议代表,algorand是非分片可扩展区块链协议的代表,而vapor是rfbc进行改进前的底层框架。与这三者对比可以较明显地体现出rfbc和现有一些区块链协议的差异。本实验中我们同样主要关注节点的通信和存储成本,具体试验结果图如图5-8所示。
    [0215]
    根据图5和图6的试验结果可以得出,在有限的系统运行时间内,随着网络规模的不断扩大,rfbc和vapor的节点都能保持较好的恒定的ccpt和存储成本,而omnileager和algorand的节点则需要付出更多的通信和存储成本来应对更多的节点带来的信息传输和交易增加的压力。然而,图7和图8的试验结果则表明,当系统运行时间不断增加时,vapor在通信和存储方面也无法做到恒定成本,相反,本发明的rfbc则可以很好地做到这一点。
    [0216]
    本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微
    控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
    [0217]
    以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相互组合。
    转载请注明原文地址:https://tc.8miu.com/read-334.html

    最新回复(0)