基于可编辑区块链的可信数据管理方案
2022-03-15陈琳韦娅
陈琳韦娅
(中国农业银行湖南省分行科技与产品管理部,湖南 长沙 410000)
1 数学原理
区块链系统中使用哈希函数输出的散列来表示区块链的状态,它为区块链的不可篡改性提供了密码学上的保障。该文设计了基于同态变色龙哈希的陷门分配和恢复方案。它使用变色龙哈希函数取代区块链中的普通哈希函数(sha256),既可以利用哈希函数的特性保障区块链的安全,又可以利用陷门对区块链进行编辑。而加入了同态性的变色龙哈希函数使数据的处理者在对陷门进行管理时只能接触到加密处理后的数据,无法访问数据本身,实现了分离处理权和所有权的目标,保护了数据隐私,提高了数据的安全性。
1.1 同态性原理
代数领域的同态性可以为4种,加法同态、乘法同态、减法同态和除法同态。Ron Rivest和Leonard Adleman在1978年率先提出了同态加密的概念。
要满足加法同态加密函数就需要满足()+()=(+)。其中,()、()为自变量函数;(+)为自变量和的函数。
基于复合剩余类困难问题的Paillier 算法是对加法同态的。满足乘法同态的加密函数需要满足()×()=(×)。其中,(×)为自变量积的函数。
基于大素数的分解因子难题的RSA算法对乘法操作是同态的。一个同时满足加法同态和乘法同态的同态加密算法称为代数同态,也叫全同态。
1.2 基于离散对数的变色龙哈希函数
可以将变色龙哈希函数的安全性规约到密码学体系的数学难题,解决算法有基于离散对数困难性的算法、基于大整数分解困难性的算法。密码学中的离散对数问题如下:限定循环群={g|=0,1,2,…}及其生成元和阶=||(为次方,为整数);给定整数,计算元素=很容易(为次方,为整数);给定元素,计算整数使=非常困难,不存在多项式时间算法。
1.3 同态变色龙哈希算法
选择系统安全参数,根据系统安全参数选取素数、,令素数如公式(1)所示。
选取1个阶为、生成元为的GDH群。GDH群对DDH问题是简单的,对CDH问题是困难的。
基于系统的公开参数,计算消息的变色龙哈希值,如公式(3)所示。
式中:为信息,∈Z
其中,满足公式(5)。
该算法满足以下4个性质:1) 有效计算。对给定的公钥、私钥、消息以及随机值对(,)来说,在多项式时间内可以计算哈希值H(,)。2) 抗碰撞性。没有一个有效的多项式时间算法在仅输入公钥后就可以找到消息和随机数对(,)和(,)((),使公式(6)成立)。3) 陷门冲突。能找到一个有效的概率多项式算法,在输入陷门密钥时,任何一对消息、随机数对(,)和任意的消息都能找到随机数,使公式(6)成立且满足公式(7)。4) 一致性。从随机选择的中无法得到任何关于的信息。
2 方案原理
普通区块链的区块链接方式通常由1个三元组<,,>组成(为父区块的交易哈希值,∈{0,1};为交易根哈希值,∈{0,1};为算法计数器,∈)。当矿工成功地计算出解密该区块相关数学题的答案后,便根据相应的路由分配算法通过广播的形式在全网广播新的区块。每个收到新区块的节点都会根据哈希算法:{0,1}{0,1}(变色龙哈希函数)对区块的有效性进行验证,有效的区块须满足条件((,,)<)(<)=1。
不同于普通区块链是固定的哈希依赖关系,可编辑区块链的每个区块单元之间有1把可以打开的“锁”。如果没有对应的“钥匙”很难找到哈希冲突,那么该区块链是不可变的。但是拥有“钥匙”就可以有效地找到任意内容的哈希冲突,从而替换区块的内容。可编辑区块链的区块链接由1个四元组<,,(,)>组成((为哈希值;为对比字符)。
可编辑区块链一共包括4个算法(CH=(HGen,Hash,HVer,HCol)):1) 密钥生成算法HGen。输入安全参数,输出公钥h、陷门t。该过程如公式(8)所示。2) 哈希生成算法Hash。输入公钥h、消息,输出哈希值、对比字符串。该过程如公式(9)所示。3) 有效性验证算法HVer。输入公钥h、消息、哈希值以及对比字符串,输出验证结果。该过程如公式(10)所示。4) 哈希碰撞算法HCol。输入陷门t、哈希值、消息、对比字符串以及消息,输出对比字符串。该过程如公式(11)所示且满足公式(12)。
可编辑区块链的交易和出块过程与普通区块链一样,当矿工利用哈希生成算法挖到矿后,就在全网广播新的区块。每个收到新区块的节点都会根据有效性验证算法对区块的有效性进行验证。验证结果是一个布尔值,当=1时,表示区块有效;当=0时,表示区块无效。此时的变色龙哈希算法对没有陷门的节点来说,与传统的哈希算法并没有区别,仍然是抗碰撞的。此时,有效区块须满足公式(13)。
式中::{0,1}*{0,1}为变色龙哈希函数,∈,∈。
当可编辑区块链有编辑需求时,陷门持有者利用密钥生成算法生成的陷门可以对区块进行操作。这时从问题区块到其父区块之间的“锁”是可以打开的,那么任何编辑操作都是可能的(删除、修改和插入任意数量的区块)。当编辑者利用哈希碰撞算法人为地制造出哈希冲突后,在全网广播新的区块,每个收到新区块的节点都会对新的区块进行验证。此时,有效的区块除了满足公式(13)以外,还需要满足公式(12)。
如果陷门丢失或破坏,那么可编辑的区块链将失去可编辑的特性,还原为不可变的普通区块链。
3 系统模型
为了提高实际生产环境内容管理的能力,解决当前区块链系统中内容缺乏监管的问题,突破普通区块链错误数据不可变的局限性,提高系统应对复杂环境的灵活性,该文设计了基于双链的可编辑区块链系统。采用普通区块链和可编辑区块链相结合的方式对陷门进行验证,避免出现陷门持有者故意给出错误的分片破坏陷门恢复、信道传输过程中恶意节点篡改陷门分片等现象。同时,各个陷门分片的持有者线下生成随机数作为陷门分片,避免出现中心化分发者权利过大的现象,并且该方案减少了因建立安全信道和安全多方计算而产生的计算开销过大的问题。
3.1 系统初始化
首先设置了2条不断增长的链:其中一条是区块内容不可改的监管链BC,另外一条是区块内容可修改的交易链RBC。普通区块链使用普通哈希函数,可编辑区块链使用公钥动态更新的变色龙哈希函数。
普通节点的权限如下:1) 拥有自身区块链地址的公私钥对可以在区块链上发起交易、触发普通交易相关的智能合约。2) 知道自身所在区块链的哈希公钥可以通过区块链的哈希函数验证区块内容,也可以竞争矿工角色并打包区块。这类节点分别独立存在于监管链BC和交易链RBC中,2条链的普通节点相互之间并不存在关联。
特权节点是系统的管理员节点,在初始化时从特权节点池中预选出个特权节点。特权节点可以对监管链BC和交易链RBC进行操作,而特权节点池中暂时没有当选为特权节点的其他节点则成为监管链BC上的普通节点。特权节点的主要工作如下:1) 每个特权节点P负责管理交易链RBC的变色龙哈希陷门的分片x,包括陷门分片x的生成和陷门的恢复。2) 特权节点P需要参与交易链RBC的区块内容编辑共识,在认可新的区块内容后,通过变色龙哈希函数H计算区块哈希值所对应的哈希冲突,达到编辑区块链内容的目的。3) 特权节点在身份验证智能合约SC上可以发起并参与仲裁投票,从而在系统中剔除存在恶意操作的可疑特权节点。
3.2 系统交易流程
交易链RBC上的创世区块RB由特权节点初始化,并且规定交易链上有且仅有创世区块RB是不可更改的。RB区块体中包括链接到监管链BC上的中心管理智能合约SC的地址。该合约上包括监管链BC上所有涉及交易链RBC区块编辑操作的合约地址,包括身份验证智能合约SC、密钥管理智能合约SC以及陷门验证智能合约SC的地址。交易链RBC上每个区块RB的变色龙哈希函数H的公钥y以密钥管理智能合约SC所发布最新的哈希公钥为准。
监管链BC的密钥管理智能合约SC上生成交易链RBC的变色龙哈希公钥以及陷门私钥。具体的变色龙陷门生成方法如下:首先,根据系统安全参数选取满足=+1的2个大素数、(为任意整数)和变色龙哈希函数的基数(∈Z)在全网公开。每个特权节点P私下选取随机数x(x∈Z)作为陷门的分片,并按公式(14)~公式(15)计算公钥分片y。
为了保证陷门分片x不暴露,公钥的具体生成过程如下:第一个特权节点在密钥管理智能合约SC上发布第一个公钥分片,如公式(16)所示。第二个特权节点根据密钥管理智能合约SC上最新的公钥分片计算,如公式(17)所示。
根据该方法类推,第个特权节点根据公钥分片y来计算得到最新的公钥分片y,直至所有特权节点完成公钥的合成操作,如公式(18)所示。
由离散对数难题的难解性可知,节点在公网上已知公钥和参数、以及,并不能由此算出任意陷门的分片x和陷门,因此可以保证陷门的保密性。。
在监管链BC的密钥管理智能合约SC公布了交易链RBC的最新变色龙哈希函数的公钥后,交易链RBC里的普通节点就可以配合随机数对区块的交易内容(∈Z*)进行打包,计算得到满足计算难度的区块的哈希值。所用到的哈希算法为变色龙哈希函数H,如公式(19)所示。
交易链RBC上的矿工计算出区块内容、对应的哈希值之后,根据哈希函数的抗碰撞性可知,没有一个有效的方法可以在仅输入公钥后就找到消息和随机数对(,)、(,)。其中,使公式(20)成立。
首先,交易链RBC上的某个区块RB通过投票共识确定需要将内容修改为。其次,每个特权节点需要在线下广播该区块的陷门分片。由于区块链具有公开透明性,因此根据触发密钥管理智能合约SC生成公钥分片y的记录可知,其触发节点对应的身份为P。于是当广播收到特权节点P的陷门分片后,将其记为x。
当特权节点收到-1个陷门分片后,就可以利用同态变色龙哈希函数的同态性对陷门的正确性进行验证。当满足公式(21)时,就可以认为节点收到的分片正确。
合约根据密钥管理智能合约SC中记录的公钥分片y的值来计算公式(21)右式的值,如公式(27)所示。
根据y的值计算得出公式(28)。
验证通过后,特权节点按照公式(2)合成的正确陷门,利用陷门来计算哈希冲突,从而将编辑区块链内容为。其基本原理如公式(27)所示。
根据公式(27)可以得到公式(28)。
因此,特权节点可以计算出变色龙哈希的冲突值,如公式(29)所示。
最后,特权节点需要在监管链BC的中心管理智能合约SC上公布交易链RBC当前所修正的区块RB最新的随机数以及内容的哈希值作为存证。使交易链RBC能够确定最新的区块内容为目标内容。考虑不断增长的区块链存在性能问题,实际内容只在交易链RBC广播,监管链BC上只保存的哈希值,以节省区块链的存储空间,优化查询和管理效率。在完成一次完整的交易链RBC上区块编辑交易过程之后,特权节点需要重复一次监管链BC上交易链RBC的公钥和陷门生成过程,以及时更新可编辑链的公钥及陷门。
4 结语
作为一个有效的解决方案,可编辑的区块链技术可以让用户修改区块链的数据。然而,由于存在可信第三方的要求、管理费用高或缺乏问责机制等问题,因此现有的可编辑区块链不能保障数据安全。该文从银行业的实际业务需求出发,提供了一个可编辑区块链系统方案。为了避免增加系统的额外负担,该文设计的区块链基于双链结构,从普通区块链和可编辑区块链的区块结构、变色龙哈希算法的特点(优势)2个方面解释了可编辑区块链的编辑原理,并描述了具体的方案。该方案利用变色龙哈希解决可能出现的安全问题。区块链将在陷门管理过程中记录各种信息,并在出现争议时将其作为问责的证据。分析表明,该方法成本不高,且能有效处理恶意行为。