Efficient Public Blockchain Client for Lightweight Users

Efficient Public Blockchain Client for Lightweight Users

Xu, Lei & Chen, Lin & Gao, Zhimin & Xu, Shouhuai & Shi, Weidong. (2018). Efficient Public Blockchain Client for Lightweight Users.

WHY

传统区块链轻节点保存所有区块的块头,随着交易的增长,存储负担也逐渐增加

WHAT

区块链的轻节点只保存整个区块链的摘要,当需要验证交易时,轻节点向区块链网络中的全节点发送验证请求,全节点返回证明,轻节点通过返回的证明来确认交易的有效性

image-20210128123221845

在本文中,轻节点请求验证的不是具体的某个交易,而是包含该交易的区块是否在区块链上

HOW

Setup

Setup生成其他算法需要的公共参数

区块链的创建者选择两个大素数p和q,并计算N = pq,就像RSA累加系统一样。

N嵌入第一块并向公众公开;然后p q被丢弃。

创建者也选择一个随机值g∈Z∗n,每个块将用一个整数标记,“genesis”块(即区块链上的第一个块)有标签“1”。

Block and summary construction

每个块中除了包含标准属性,还包含整个区块链的摘要S,第i块区块用blki表示

image-20210128123836642

Proof generation

生成一个证明,证明块blki是区块链上的第i块。

证明者需要计算pi并返回给请求者

证明一般由保存了整个区块链的全节点提供

image-20210128123940307

Proof verification

通过给定区块blk,proof p=(p(1),p(2))和整个区块链的摘要Sn

用户就可以验证区块blki是否是当前整个区块链Sn的第i个区块

image-20210128124510208

在Proof generation中的验证过程,需要遍历区块链中所有的块来实现验证计算

但这个遍历过程,会随着区块数量的增加,计算复杂度增加

由此提出以下改进:

image-20210128130938785

将所有的区块blk1···blki生成一棵二叉树

树的叶子节点为区块blk的hash,内部节点是两个叶子结点的hash的相乘

整个树的root即为当前区块链中所有区块的hash的相乘

image-20210128131340849

通过这个树来提供中间计算

使整个过程能够更快的生成proof

image-20210128131726204

供中间计算

使整个过程能够更快的生成proof

[外链图片转存中…(img-XrBIuEe2-1619360939938)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值