2. 上海交通大学 电子信息与电气工程学院, 上海 200240
2. School of Electronic Information and Electrical Engineering, Shanghai Jiao Tong University, Shanghai 200240, China
近年来, 区块链技术得到学术界和企业界的广泛关注.从以比特币[1]为代表的加密货币系统——区块链1.0, 到以太坊为代表的智能合约——区块链2.0, 再到现在, 区块链应用走出金融, 走向社会多行业, 进入区块链3.0时代.去中心化和上链数据不可篡改的特性, 使其有别于传统的中心化系统, 为金融、科技甚至政治等领域的数据存储提供了新的模式[2].
在区块链系统中, 共识机制为各节点制定信任标准, 构建激励机制, 使得各节点就系统状态达成共识, 共同维护系统健康运行[3].目前, 主流的共识机制有基于工作量证明的POW(proof of work)共识机制[1, 4]、基于权益证明的POS(proof of stake)共识机制[5-7]、基于授权股权证明的DPOS(delegated proof of stake)共识机制[8, 9]等.现有的区块链系统基本以POW与POS共识机制为主, 但POW基于算力竞争, 挖矿电力损耗巨大, 不利于节能环保. POS基于权益竞争, 信用机制不牢固, 大量低成本货币被分配于开发者, 若利益驱使其大量抛售货币, 将不利于系统维护. Park等人基于POSpace(proof of space)共识机制提出SpaceMint区块链系统[10], 节点基于可循环利用的本地空间竞争挖矿, 计算代价低, 避免了算力竞争而造成的资源浪费.同时, 安全的证明机制保证其信用牢固性, 实现了对安全性与资源效率的兼顾.另外, SpaceMint系统采用新型链式结构.传统的区块链利用哈希函数将区块头、区块体以及前后区块链接起来, 以哈希函数的不可碰撞性保证数据安全.而SpaceMint通过加入签名子块, 打破区块头和区块体的直接链接关系, 构建了新型的区块链接结构, 详见第1.3节.
现有的区块链系统中, 数据一旦上链便无法更改.而随着区块链的发展, 除金融数据外的科技、文化甚至政治等多类社会数据也将上链, 失效数据无法删除、错误数据无法修改等问题将变得更加突出.例如:一个公司宣布破产, 其交易数据失效, 不再具备永久存储的价值, 无法及时删除将造成存储资源浪费; 或者某些上链的经典技术参数、公式在若干年后被推翻, 需做出修正; 又或者恶意、负面的舆论数据由于别有用心的挖矿者而上链, 区块链的公开性将导致其不断扩散传播, 造成恶劣影响.及时的数据修正在现有的区块链系统中均无法完成, 可能造成巨大的经济损失和恶劣的社会影响.因此, 上链数据无法更改将在一定程度上限制了区块链的进一步发展, 而在特定条件下实现可修改的区块链, 具有广阔的应用前景.
在可修改区块链研究中, 爱哲森公司基于带陷门的变色龙哈希函数[11], 在已知陷门时, 可对区块数据进行修改.但该方案中, 陷门被交于可信中心, 修改权被中心化, 数据安全面临威胁.Li等人[12]对可修改区块链技术进行了改进, 利用秘密共享方案, 将陷门分配给系统各节点, 当且仅当阈值节点联合时方可恢复陷门, 实现数据修改.但上述方案均基于变色龙哈希函数实现区块数据修改, 而现有的区块链系统大多基于传统的抗碰撞哈希函数, 所以上述方案应用价值不高.Ren等人[13]基于抗碰撞哈希函数, 提出了可删除区块链系统, 利用安全的门限环签名方案, 在超过门限值的节点同意时, 可对单个区块的全部交易数据进行删除.但该方案无法删除指定交易数据, 也无法进行数据修改.本文使用抗碰撞哈希函数, 基于POSpace共识机制实现可修改的区块链方案, 在绝大多数节点同意后, 可对指定交易数据进行修改或删除, 具有重要的应用价值.
本文基于文献[10]中的区块结构和陷门单向函数, 提出了可修改的区块链方案.通过引入机动因子, 重构区块签名子块, 在数据失效或错误时, 只要超过阈值数节点同意, 便可实现区块数据的合法修改; 同时保持区块链接不变, 除修改数据, 其余数据不变, 全网仍可按原始验证方式对数据合法性进行验证.而且我们设置了特定的阈值, 使得修改操作必须经过绝大多数节点同意, 恶意的非法修改无法完成, 保证了数据的安全.
1 基础知识本节将介绍一些基本概念, 包括陷门单向函数、Grinding Blocks攻击及基于空间证明的区块链结构.
1.1 陷门单向函数陷单向函数是密码学领域的一个重要概念, 可简单描述为:正向求解容易, 但反向求解不可实现的函数.陷门单向函数[14, 15]不同于单向函数的“不可逆”, 它是“陷门”可逆的.在陷门未知时, 它等同于普通单向函数; 当陷门已知时, 求逆便计算上可实现.
定义1(陷门单向函数). 陷门单向函数f(x)是指满足以下性质的函数:
(1) 对于属于f定义域的任意x, 可在多项式时间内计算得到y=f(x);
(2) 对于属于f值域的任意y, 无法在多项式时间内求出x, 使得x=f-1(y);
(3) 当k已知时, 对于属于f值域的任何y, 可在多项式时间内计算出
传统的区块结构分为区块头与区块体两部分:区块体存储交易信息, 区块头包含版本号、父区块哈希、交易Merkle Tree根、时间戳、难度目标和Nonce.挖矿挑战在于:寻找合适的随机数Nonce, 使区块头哈希结果小于难度目标.因此, 挖矿挑战与交易信息相关.为了利益最大化, 矿工可能将交易信息拆分成多份, 以形成不同挖矿挑战, 在同一时间寻找多个Nonce, 以打包形成不同区块, 提高挖矿成功概率.此类行为没有遵守“将挖矿期间产生的交易全部打包于区块”的原则, 影响系统效率, 也可能进一步导致自私挖矿与双花攻击.此类行为称为Grinding Blocks攻击, 如图 1所示.
在图 1中, Version, Hashpre, MT_Rootτ, T, Nonce和τ依次表示区块头中的版本号、父区块哈希、交易Merkle Tree根、时间戳、矿工用以完成挖矿挑战的随机数和交易信息.
“Grinding Blocks”攻击在POW共识下不常见, 因为POW共识机制基于算力挖矿, 完成一次挖矿挑战需要耗费巨大算力, 矿工在同一时间进行多个挑战的计算难度巨大.但在同时进行多个挖矿挑战难度较小的共识机制下, 如第1.3节中介绍的基于空间证明的区块链中, “Grinding Blocks”攻击将变得相对容易.
1.3 基于空间证明的区块链[10, 13]最近, Park等人构建了以“空间”为可信度衡量标准的区块链系统SpaceMint, 其共识机制为POSpace.不同于POW和POS, POSpace将拥有最大存储空间的节点视为最可信节点, 由其完成系统相关操作, 获取奖励.各节点向全网证明自己空间大小、竞争成为记账者的过程, 便是POSpace共识机制下的挖矿过程.因此, 安全可靠的空间大小衡量标准是POSpace共识机制的关键.
POSpace共识机制使用“pebble game”, 通过节点对有向无环图的构造速度来衡量空间大小.当时间一定时, 节点空间越大, 对有向无环图的构造越快; 反之亦然.具体而言, POSpace共识机制要求各节点在本地存储一有向无环图G=(V, E), 其中, V={v1, v2, …, vN}为顶点集合, N为顶点个数, E为有向边集合.有向无环图示例如图 2所示.
为了突出有向无环图的结构, 每个顶点i将被赋予特定的标签值, 记为li:
$ {l_i} = Hash(\mu , i, {l_{{p_1}}}, {l_{{p_2}}}, ..., {l_{{p_t}}})i = 1, 2, \ldots , N, $ |
其中, i为顶点序号, μ为与挖矿节点公钥关联的随机数,
共识机制要求矿工存储有向无环图顶点信息, 若矿工空间足够, 便可全部存储; 反之, 矿工只能存储部分顶点标签值, 未存储部分依靠后续计算得到, 以时间换取空间.每次竞争时, 系统随机要求矿工返回相关顶点标签值, 显然, 存储空间越大, 矿工结果返回效率越高, 赢取记账权概率越高.挖矿的具体实现过程见文献[10].这便形成了基于空间证明的共识机制.
同时, POSpace对挖矿算力要求下降, 矿工在同一时间完成多个挖矿挑战变得容易.因此, 如第1.2节所述, 在传统区块结构下, 实行POSpace机制将使得Grinding Blocks攻击突出.为了对抗该攻击, SpaceMint构建了全新的区块链结构.
如图 3所示, 新型区块i包含3个部分:证明子块φi、签名子块σi和交易子块τi.其中, 证明子块φi和交易子块τi相当于传统区块结构中的区块头和区块体, 而新增的签名子块σi则用于打破区块头和区块体之间的链接, 使证明子块与交易子块不相连.因此, 挖矿挑战与交易本身无关, 矿工无法通过拆分交易以产生不同的挖矿挑战, 从而增加挖矿成功概率, 防止了Grinding Blocks攻击对系统的伤害.3个子块的具体内容如下.
(1) Hash子块φi=Hash(i, ζφ, (pki, γi, ci, ai)), 具体包含:当前区块序号i、记账者对前一区块的Hash子块φi-1的签名ζφ、记账者在竞争记账权时给出的承诺证明以及空间证明(pki, γi, ci, ai);
(2) 签名子块σi={i, ζτ, ζσ}, 具体包含:当前区块序号i、记账者对当前区块的交易子块τi的签名ζτ、记账者对前一区块的签名子块σi-1的签名ζσ;
(3) 交易子块τi={i, ctx}, 具体包含当前区块序号i、交易信息列表ctx.
上述区块结构在保证数据安全的前提下, 打破了证明子块φi与交易子块τi的直接链接关系, 能更好地对抗“Grinding Blocks”攻击, 也为可修改区块链提供了可能性.
2 可修改的区块链我们基于SpaceMint提出的区块链结构, 使用陷门单向函数提出了可修改的区块链.在超过阈值数的节点同意时, 可对失效或错误的上链交易数据进行合法修改, 具体阈值设定会在下文给出分析.修改前后, 区块链接结构不变, 也不影响区块其他数据的使用和验证.而且由于阈值的设定, 所有修改操作将代表系统意志, 不合法的恶意修改无法完成.本节首先给出可修改的区块链结构, 然后对修改原理及安全性进行分析.
2.1 可修改的区块链结构基于SpaceMint的区块结构, 我们提出可修改的区块链方案.如图 4所示, 其本质是重构签名子块σi, 在记账者对交易的签名ζτ中加入机动因子Gi, 将σi变更为σi, G, 而证明子块φi与交易子块τi保持不变.
图 5对SpaceMint区块与可修改区块结构进行对比.原始签名子块σi={i, ζτ, ζσ}, 其内容分别为当前区块序号i、记账者对当前区块的交易子块τi的签名ζτ和记账者对前一区块的签名子块σi-1的签名ζσ.
在可修改区块结构中, 签名子块的内容变更为σi, G={i, ζHash(τ)⊕G, ζσ}, 其内容分别为:当前区块序号i、记账者对交易子块τi的哈希值与机动因子Gi异或结果的签名ζHash(τ)⊕G和记账者对前一区块签名子块σi-1, G的签名ζσ.
我们称Gi为签名子块σi, G对应的机动因子, 由陷门单向函数构成, 具体如下:
${G_i}:{G_i}(x_i^1, x_i^2, ..., x_i^Q) = {g_{P_i^1}}(x_i^1)||{g_{P_i^2}}(x_i^2)||...||{g_{P_i^Q}}(x_i^Q)$ . |
其中, Q=N×阈值比例, N为系统总节点数, 阈值比例设置将在第2.2节进行说明.另外,
SpaceMint区块链系统使用签名子块承诺交易合法性, 交易信息作为签名消息, 与签名子块一一对应, 交易信息改变, 签名子块随之改变, 区块的前后链接便被打破, 因此交易数据无法修改.而本文提出的可修改区块链, 在记账者对交易信息τ的签名中引入机动因子G, 签名消息变为Hash(τ)⊕G, 即使交易改变, 亦可重构机动因子得到G', 保证签名消息与签名结果不变, 实现除交易子块外, 其余区块数据, 即签名子块、证明子块和前后区块的所有信息均不变.在改变交易数据时, 保证区块链结构完好, 实现区块交易数据可修改.
在图 6中, τ和τ'、MT_Rootτ和
2.2 可修改的区块链原理
在可修改区块链中, 超过阈值的节点同意时, 可对上链数据进行符合系统利益的合法修改, 修改操作不破坏区块链接结构.下面详细说明如何实现数据修改和保证修改操作合法.
2.2.1 如何实现数据修改(1) 修改请求合法性验证
当区块链网络节点认为相关交易数据需要修改时, 可向全网发送修改请求ReviseTx, 其合法性由区块i的修改群组验证.群组成员为区块i挖矿排名前Q位的各个矿工
(2) 数据修改操作实施
当修改请求合法时, 区块i的修改群组即相应Q名矿工将实施数据修改操作.Q名矿工将根据ReviseTx中的ctxold和ctxnew, 计算交易子块τi对应的
(3) 系统状态更新
交易数据修改后, 系统会进行相关状态更新, 主要包括上述随机数及交易信息的更新; 同时, 为记录本次数据修改过程以供溯源, 修改完成后, 将生成一条对应的交易信息:
$ctx = (revise, i{d_{Tx}}, t, i{d_{Block}}, reason, x_i^1, x_i^2, ..., x_i^Q, x\prime_i^1, x\prime_i^2, ..., x\prime_i^Q, ct{x_{old}}, ct{x_{new}}).$ |
其内容依次为:交易的类型标识符、交易号、生成时间、数据修改的区块号、修改原因、修改前、后相应矿工的专属随机数以及修改前、后的交易信息集合.特别地, ctxold和ctxnew为实际修改的交易集合, 并非整个交易块数据, 以便节约空间.若对数据的修改为删除操作, 则ctxnew=0.该交易将于后续挖矿中被打包上链.
数据修改总流程如图 7所示.
● 第一, 网络中出现区块i的交易数据修改请求, 申请将交易子块τi变更为
● 第二, 对应验证群组的矿工
请求被驳回; 反之, 交易数据的修改正式进行.如第2.2.1节分析, 为保证数据修改前后区块结构及内容不变, 验证群组只能重新计算一组专属随机数作为机动因子Gi的入参, 以配合交易数据的变化;
● 第三, 验证群组在全网将自己重新计算的专属随机数进行更新, 并正式将交易子块τi变更为
● 最后, 用于记录该次修改操作的交易ctx生成并进入交易池.
至此, 整个数据修改过程完成, 全网可对修改后的数据进行验证.
2.2.2 如何保证修改操作合法“可修改”不会挑战区块链本身的安全性, 它是对“不可篡改”造成的应用局限性的补充.因为修改操作必须代表系统意志与利益, 也即合法才能被完成, 否则修改后的区块数据无法通过全网验证, 因此, “可修改”的存在仍可保证数据安全, 具体由陷门单向函数特性及相关方案设计保证.
其核心思想如图 8所示:首先, 如第2.2.1节介绍, 为保证数据修改前后区块i结构及内容不变, 只能调整机动因子Gi的入参以配合交易数据τi的变化.而机动因子Gi由Q个陷门单向函数构成, 陷门单向函数的性质决定只有拥有全部陷门, 才能反向求逆, 获取Gi的新入参, 使Gi配合交易数据τi的变化做出正确调整.在本文中, 陷门也即验证群组Q名矿工
具体而言, 我们选择ECC加密算法[17, 18]作为陷门单向映射
$Hash({\tau _i}) \oplus {G_i}(x_i^1, x_i^2, ..., x_i^Q) = Hash({\tau '_i}) \oplus {G_i}(x\prime_i^1, x\prime_i^2, ..., x\prime_i^Q)$ |
仍然成立, 只能由Q名矿工联合才可完成.其中, Q=N×阈值比例, 阈值比例的设置需要兼顾方案安全性及效率:一方面, 阈值比例越大, 交易数据修改权由更多的节点掌控, 方案安全性越高, 但是计算时间会越长, 方案效率越低; 另一方面, 阈值比例越小, 计算时间会越短, 方案效率越高, 但是交易数据修改权由更少的节点掌控, 方案安全性越低.本文通过实验测试, 权衡安全性与效率两方面, 选定阈值比例为80%, 具体实验过程在第3.3节展开.
2.3 数据修改安全性分析可修改区块链实现了交易数据的合法修改, 该操作不会破坏已有区块链结构, 也不改变除修改数据外的其他区块数据.其安全性体现在修改操作的合法性, 也即交易数据的修改操作是代表系统意志, 符合系统利益的, 恶意非法的修改操作无法完成.
为了说明可修改区块链方案的安全性, 下面模拟恶意敌手在不符合系统利益时, 企图将区块i的交易子块τi恶意修改为
(1) 从当前区块i出发, 向后依此调整每个签名子块数据, 使τi修改为
(2) 调整当前签名子块中的机动因子Gi, 使得交易字块变为
对于方法(1), 由于τi变为
对于方法(2), 为确保
本节进行仿真实验, 对POSpace共识下的挖矿、区块生成和交易数据修改过程进行模拟.挖矿节点用Intel i5 Processor(2.4GHz, 4G memory)模拟, 并在Visual Studio Ultimate开发环境下, 使用C++语言编程实现.在区块生成与修改时, 哈希函数、签名算法以及陷门单向函数分别使用SHA-256, DSA-512和ECC-200实现.
3.1 基于POSpace共识机制的记账权竞争仿真实验基于图 9的有向无环图, 模拟基于POSpace共识机制的记账权竞争过程.
当前系统中序号1~10的矿工空间存储信息情况见表 1.
系统初始化时, 矿工利用相关参数对有向无环图的各顶点标签值进行计算, 并依据各自的存储空间大小进行最优存储, 具体存储情况见表 1.无法进行全图存储的节点将利用已存储的顶点标签值计算未存储顶点的标签值, 实现对有向无环图的恢复.每一轮空间竞争中, 系统将充当验证者向矿工充当的证明者发起挑战, 记为C(c1, c2, …, ck), 也即顶点序号集合.证明者需返回C中各顶点对应的标签值.很显然, 空间越大, 存储的顶点越多, 越能尽快返回结果.存储顶点数少的证明者只能牺牲时间, 计算未存储的顶点标签值再返回.因此空间越大, 竞争成功概率越高.以上便是基于空间竞争的挖矿过程, 具体细节详见文献[10].本实验模拟多次竞争过程, 记录不同挑战下各矿工的证明时间, 部分结果如表 2所示.
由表 2可以看出:本地空间越大、存储顶点数越多的证明者即矿工10, 返回证明结果的时间越短, 成功挖矿概率越大.这符合Pospace共识机制下, 区块记账权竞争的基本过程.
3.2 新区块的生成本节模拟区块生成过程, 在第3.1节模拟的空间竞争中胜出的矿工获得记账权, 可发布相应区块.以区块72为例, 其记账者为矿工10, 挖矿排名交易消息ctx={ranking, 90F2246A, A, 9, 8, 5, 7, 4, 3, 2}, Q/N=80%(80%的设置原因在第3.3节展开), N=10, Q=8.如第2.1节节介绍, 区块72包含φ72, σ72, G和τ72, 其中, φ72, τ72分别为证明子块与交易字块, 由实验测试得:
● φ72=1c98228c2086fbd9d74b4645eba94d151d47fd9ecdcb0287729caf52b76906b8;
● τ72={72, ctx}, ctx包含25条交易信息.
下面主要对新构建的σ72, G生成过程进行介绍.σ72, G={i, ζ(Hash(τ)⊕G), ζσ}, i=72;
ζ(Hash(τ)⊕G)为记账者关于Hash(τ)⊕G的DSA签名, 其中,
$G = {G_{72}}(x_{72}^1, x_{72}^2, ..., x_{72}^8) = {g_{P_{72}^1}}(x_{72}^1)||{g_{P_{72}^2}}(x_{72}^2)||...||{g_{P_{72}^8}}(x_{72}^8).$ |
$ {\zeta _{Hash({\tau _{72}}) \oplus {G_{72}}}} = {\rm{A2BF2998C76CD6415EEB8E102F4D72DEC0D38EC9}}; $ |
ζσ则为记账者关于σ71, G的DSA签名, ζσ=4B66BF0111FCD4841DD75621535870049130F182.
因此,
$ \begin{array}{l} {\sigma _{72, G}} = \left\{ {{\rm{72, A2BF2998C76CD6415EEB8E102F4D72DEC0D38EC9, }}} \right.\\ \left. {\;\;\;\;\;\;\;\;\;\;\;\;\;{\rm{4B66BF0111FCD4841DD75621535870049130F182}}} \right\}. \end{array} $ |
随后, 矿工10将以上数据打包成区块并发布, 经过全网验证通过后, 区块72正式上链, 其余区块生成过程同理.图 10为实验模拟生成的连续3个区块具体数据:
3.3 区块数据的修改
本节对上链交易数据的修改操作进行模拟.如图 10所示, 区块72上有一条交易:
$ “\left( \text{payment, C012AE53, }\left( \text{950D6388, 91, 6073925CD72FCF79208A}\ldots \right), \left( \text{D}8353289, 330 \right) \right)”. $ |
假设后续有节点发现, 曾经由于恶意节点发起双花攻击, 区块71~73等所在的当前主链被另一条侧链颠覆, 使系统在认可该笔交易后, 又认可与该交易输入账户相同、输出账户不同的另一笔等额交易, 使输入账户实现双花.为弥补该攻击造成的后果, 可认为原本流入公钥为D8353289的受益方的金额又再次流向了另一个账户, 也即该笔交易中受益方的实际收益并非330, 而是0, 该条上链交易数据需要修改.节点于2019年3月13日向全网广播一条交易修改请求:
$ \begin{array}{l} {\mathop{\rm Re}\nolimits} viseTx{\rm{ = 72, double spending, }}\left( {{\rm{payment, C012AE53, }}\left( {{\rm{950D6388, 91, 6073925CD72FCF79208A \ldots }}} \right){\rm{, }}\left( {{\rm{D8353289, }}} \right.} \right.\\ \left. {\left. {\left. {\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{\rm{330}}} \right)} \right){\rm{, }}\left( {{\rm{payment, C012AE53, }}\left( {{\rm{950D6388, 91, 6073925CD72FCF79208A \ldots }}} \right){\rm{, }}\left( {{\rm{D8353289, 0}}} \right)} \right)} \right\}{\rm{.}} \end{array} $ |
对应的矿工10, 9, 8, 5, 7, 4, 3, 2收到该请求后, 将对其合法性进行认证.发现合法, 便根据ReviseTx和原始交易子块τ72生成新交易子块
进一步, 根据
$x\prime_{72}^j = D_{P_{72}^j}^{ECC}({g'_{P_{72}^j}})(j = 1, 2, ..., 8)$ . |
从而得到新的专属随机数:
其中,
$ {\tau '_{P_{72}^1}} = {\rm{DC93EB15EBE13BBBDA05FFD86464ED11A126FA3286615B6052}}. $ |
矿工10利用私钥:973DBCD86EDE25F932599C1B79BC0953, 对其进行ECC-200解密, 求得:
$ x\prime_{72}^1 = {\rm{5E0A3313E4FB185A377A6A00AE95C4EB4DD27CD498D9DE7F4A}}. $ |
编程运行如图 11所示.
$ \begin{array}{l} ctx = \left( {{\rm{revise, 531694D0, 20190313, 72, double spending, }}\left( {{\rm{15347EFD0B \ldots , 204D562128 \ldots , 19A87E1029 \ldots , }}} \right.} \right.\\ \;\;\;\;\;\;\;\;\;\;\left. {{\rm{3959191C54 \ldots , 2F75D24A42 \ldots , 411BE1FE2D \ldots , 3651CB06D6 \ldots , 2515C96F5 \ldots }}} \right), \left( {{\rm{5E0A3313E4 \ldots , }}} \right.\\ \;\;\;\;\;\;\;\;\;\;{\rm{CE441CDD19 \ldots , C9E73B440E \ldots , 1F8B5086DF \ldots , 971E915B1A \ldots , B3C28D3E58 \ldots , F2648076ED \ldots , }}\\ \left. {\;\;\;\;\;\;\;\;\;\;{\rm{D569C22260 \ldots }}} \right), \left( {{\rm{payment, C012AE53, }}\left( {{\rm{950D6388, 91, 6073925CD72FCF79208A \ldots }}} \right){\rm{, }}\left( {{\rm{D8353289, 330}}} \right)} \right), \\ \left. {\;\;\;\;\;\;\;\;\;\;\left( {{\rm{payment, C012AE53, }}\left( {{\rm{950D6388, 91, 6073925CD72FCF79208A \ldots }}} \right){\rm{, }}\left( {{\rm{D8353289, 0}}} \right)} \right)} \right). \end{array} $ |
至此, 整个交易数据修改过程全部完成, 修改后区块数据如图 12, 黑体部分为改变后的交易数据.验证可知:各区块间链接关系及区块结构不变的同时, 交易数据已按照要求修改, 合法的数据修改操作完成.
最后, 我们对方案效率进行分析.如第2.2节所述, 阈值比例的设置需权衡方案安全性及效率, 阈值比例越高, 修改权由更多节点掌控, 安全性越高; 但修改参与节点越多, 耗时越久, 方案效率越低.我们对不同阈值比例下的区块生成及修改耗时进行测试, 结果如表 3所示.其中, 为使修改权由系统大多数节点控制, 阈值比例应大于50%, 因此, 合法阈值集合为:{60%, 70%, 80%, 90%, 100%}.
由表 3可知:
● 不同阈值比例下, 生成区块耗时两两大约相差0.1s, 占比小于3%;
● 但修改区块耗时上, 阈值比例在60%~80%时, 两两相差小于0.1s, 修改与生成区块的耗时占比较为接近, 在30%左右;
● 而阈值比例在80%~100%时, 两两耗时差大幅增加, 约在0.4s左右, 且修改与生成区块耗时占比超过40%, 对方案效率影响显著.
因此, 当阈值超过80%时, 修改区块耗时明显增加, 耗时占比超过40%, 方案效率不高; 而阈值比例为60%, 70%时, 方案效率与80%相差不大, 但安全性不及后者.
因此, 权衡方案安全性与执行效率, 最佳阈值比例设为80%.
在表 4中, 我们给出了阈值比例为80%时, 区块生成及修改的具体耗时.由表 4可知, 区块生成和修改的平均耗时分别为3.8404s和1.1984s, 区块修改耗时不超过区块生成耗时的1/3, 具有可操作性.
4 结论
本文在POSpace共识机制下, 基于陷门单向函数, 提出了可修改的区块链方案.通过引入机动因子, 重构区块的签名子块, 在区块数据需要修改时, 只要特定阈值数的节点同意, 便可实现区块数据的合法修改, 且不破坏区块的链接结构, 全网仍可按原始验证方式对数据合法性进行验证.仿真实验表明:区块修改不超过区块生成耗时的1/3, 具有可操作性.同时, 阈值的设定使得恶意的非法修改无法完成, 保证了数据修改的安全性.因此, 可修改的区块链可兼顾数据修改的安全性与执行效率, 使区块链系统更加完善, 适用性更强.
[1] |
Nakamoto S. Bitcoin: A peer-to-peer electronic cash system. 2009. https://bitcoin.org/bitcoin.pdf
|
[2] |
Li XQ, Jiang P, Chen T, Luo XP, Wen QY. A survey on the security of blockchain systems. Future Generation Computer Systems, 2017.
[doi:10.1016/j.future.2017.08.0200167-739X] |
[3] |
Yuan Y, Wang FY. Blockchain:The state of the art and future trends. Acta Automatica Sinica, 2016, 42(4): 481-494(in Chinese with English abstract).
http://www.cnki.com.cn/Article/CJFDTotal-MOTO201604001.htm |
[4] |
Garay J, Kiayias A, Leonardos N, et al. The Bitcoin backbone protocol:Analysis and applications. In:Proc. of the 34th Annual Int'l Conf. on the Theory and Applications of Cryptographic Techniques. Springer, 2015, 281-310.
|
[5] |
King S, Nadal S. Ppcoin:Peer-to-Peer Crypto-Currency with Proof-of-Stake. Self-Published Paper, 2012, 19.
|
[6] |
Larimer D. Transactions as proof-of-stake. 2013. http://7fvhfe.com1.z0.glb.clouddn.com/@/wpcontent/uploads/2014/01/TransactionsAsProofOfStake10.pdf
|
[7] |
Aggelos K, Alexander R, Bernardo D, et al. Ouroboros: A provably secure proof-of-stake blockchain protocol. In: Proc. of the 37th Annual Int'l Cryptology Conf. Springer-Verlag, 2017. 357-388.
|
[8] |
BitShares Blockchain Foundation. The bitshares blockchain. 2014. https://github.com/bitshares-foundation/bitshares.foundation/blob/master/download/articles/BitSharesBlockchain.pdf
|
[9] |
Fabian S, Daniel L. Bitshares 2.0: Financial smart contract platform. 2015. https://www.weusecoins.com/assets/pdf/library/Bitshares%20Financial%20Platform.pdf
|
[10] |
Park S, Kwon A, Fuchsbauer G. SpaceMint: A cryptocurrency based on proofs of space. In: Proc. of the 22nd Int'l Conf. Springer, 2017.
|
[11] |
Krawczyk H, Rabin T. Chameleon hashing and signatures. US Patent 6108783, 2000-08-22.
|
[12] |
Li PL, Xu HX, Ma TJ. Research on fault-correcting blockchain technology. Journal of Cryptologic Research, 2018, 5(5): 501-509(in Chinese with English abstract).
http://www.cnki.com.cn/Article/CJFDTotal-MMXB201805005.htm |
[13] |
Ren YL, Xu DT, Zhang XP, et al. Delegable blockchain based on an threshold ring signature scheme. Journal on Communications, 2019, 40(4): 71-82(in Chinese with English abstract).
http://www.cnki.com.cn/Article/CJFDTotal-TXXB201904008.htm |
[14] |
Jacques P, Louis G. Trapdoor one-way permutations and multivariate polynomials. In: Proc. of the First Int'l Conf. on Information and Communications Security, Vol.1334. Springer-Verlag, 1997. 356-368.
|
[15] |
Diffie W, Hellman M. New direction in cryptography. IEEE Trans. on Information Theory, 1976, 22(6): 644-654.
[doi:10.1109/TIT.1976.1055638] |
[16] |
Eyal I, Sirer EG. Majority is not enough:Bitcoin mining is vulnerable. Communications of the ACM. ACM, 2018, 61(7): 95-102.
[doi:10.1145/3212998] |
[17] |
Koblitz N. Elliptic curve cryptosystems. Mathematics of Computation, 1987, 48: 203-209.
[doi:10.1090/S0025-5718-1987-0866109-5] |
[18] |
Gu ZL, Zheng SH, Yang YX. Modern Cryptography. 2nd ed. Beijing: Beijing University of Posts and Telecommunications Press, 2015: 190-207.
|
[3] |
袁勇, 王飞跃. 区块链技术发展现状与展望. 自动化学报, 2016, 42(4): 481-494.
http://www.cnki.com.cn/Article/CJFDTotal-MOTO201604001.htm |
[12] |
李佩丽, 徐海霞, 马添军. 可更改区块链技术研究. 密码学报, 2018, 5(5): 501-509.
http://www.cnki.com.cn/Article/CJFDTotal-MMXB201805005.htm |
[13] |
任艳丽, 徐丹婷, 张新鹏, 等. 基于门限环签名的可删除区块链. 通信学报, 2019, 40(4): 71-82.
http://www.cnki.com.cn/Article/CJFDTotal-TXXB201904008.htm |
[18] |
谷利泽, 郑世慧, 杨义先. 现代密码学教程. 第2版. 北京: 北京邮电大学出版社, 2015: 190-207.
|