[Blockchain-5]BBARS: Blockchain-Based Anonymous Rewarding Scheme for V2G Networks

一、文章内容

1. 背景和挑战

在V2G(Vehicle-to-Grid)网络中,为鼓励BV(Battery-powered vehicle)的参与需要设置一定的奖励机制,但是扩大V2G网络部署会带来 安全隐私问题。

2. 提出方法

本文提出一种新概念:BBARS (V2G网络中基于区块链的匿名奖励机制),并给出了正式的 系统模型安全模型,通过两种不同的PKC(Public key cryptosystem)设计了详细的BBARS机制。

3. 简介

相关工作

在这里插入图片描述

现有工作的不足:

It is still an open problem to solve the anonymity, unlinkability,untraceability simultaneously

4. 文章贡献

  • 首次提出基于区块链的V2G网络中匿名奖励机制,并给出正式的系统模型和安全模型。并首次考虑CAG(Center Aggregator)的匿名和BV的匿名。
  • 付款方和收款方地址具有 不可链接性(无法建立奖励双方的联系)和 不可追踪性(不可找到付款方的地址)。
  • 使用两种PKC来设计BBARS机制,一种用于聚合签名,一种用于区块链

二、BBARS 机制

1. 密码方案

ECC 和 双线性对匹配

在这里插入图片描述在这里插入图片描述

Aggregate signature & Ring signature
  • Aggravated signature:An aggregate signature scheme is a signature scheme which can aggregate many signatures on many distinct messages from many distinct users into one single signature.
  • Ring signature:For a secure ring signature,it is required that only users in the group member list can generate a valid signature and the signatures generated by different members are theoretically indistinguishable.

2. 安全模型

安全目标
  • BV、CAG和LAG间的互相认证
  • BV的匿名性
  • CAG的匿名性
  • 不可链接性
Definition-不可伪造性

(1)定义

  • 拥有 概率多项式时间的敌手A赢得游戏的概率是可 忽略不计的,则称CAG的认证协议满足不可伪造性。

(2)过程

  • Setup:生成系统参数,CAG生成公/私钥对(PKI),BV生成公/私钥对(By self),将系统参数、CAG的公钥、BV的公钥发送给敌手A;
  • 敌手A和挑战者C的交互:A可以选择性的向挑战者发送信息并得到回应:
    • Hash请求:A向C发送哈希请求,C创建哈希函数值并将其发送给A。或者,C访问哈希函数并用实际的哈希值响应A
    • Authentication请求:A使用不同的公钥和相应的信息(表示为 C o n t i Cont_i Conti.)发起请求,C创建认证信息 σ j \sigma _j σj 并返回给A.
  • 伪造:A使用公钥和相应的信息伪造有效认证 C o n t Cont Cont,A赢得游戏满足
    在这里插入图片描述
    其中p(k)是安全参数k的多项式,A赢得游戏的概率是不可忽略的。

3. BBARS架构

系统实体
  • CAG(Center Aggregator)
  • LAG(Local Aggregator)
  • BV(Battery powered vehicle)
  • Blockchain
    在这里插入图片描述

4. BBARS系统工作流程

Setup

(1) Parameter type 1

  • 用途:Blockchain、Monero
  • E(椭圆曲线)、 F q \mathbb{F} _q Fq(有限域)、 q q q(素数)、 G G G E ( F q ) E(\mathbb{F} _q) E(Fq)的生成点/基点)、 l ^ \hat{l} l^(G的阶)、 F l ^ \mathbb{F}_{\hat{l}} Fl^(由参数 l ^ \hat{l} l^构成的有限域)
    在这里插入图片描述

(2) Parameter type 2

  • 用途:Registration、Receipt、Certificate、Authentication、Revocation
    在这里插入图片描述

Contract-based authorization

C o n t i Cont_i Conti包含:BV’s status information、reward for the service、service charge standard、payment method、 ( A i , B i ) (A_i,B_i) (Ai,Bi)

  • CAG首先用自己的私钥z和收到的 C o n t i Cont_i Conti生成签名 σ i = z H ( C o n t i ) \sigma _i =zH(Cont_i) σi=zH(Conti)
  • 在Tab表中记录BV的地址 ( A i , B i ) (Ai,Bi) Ai,Bi
  • CAG将 ( C o n t i , σ i ) (Cont_i,\sigma _i) (Conti,σi)发给 B V i BV_i BVi
  • CAG发送更新的Tab表给LAGs
    在这里插入图片描述
Anonymous service and receipt

在这里插入图片描述
B V i BV_i BVi访问 V 2 G V2G V2G网络并且为电网提供服务,它向 L A G j LAG_j LAGj提供 ( C o n t i , σ i ) (Cont_i,\sigma _i) (Conti,σi),验证过程如下:

  • L A G j LAG_j LAGj收到大量 ( C o n t i , σ i ) (Cont_i,\sigma _i) (Conti,σi)对,其中 i ∈ I i \in \mathbb{I} iI
  • L A G j LAG_j LAGj选区随机数 α i ∈ F p \alpha _i \in \mathbb{\mathbb{F}}_p αiFp,验证 e ( ∑ i ∈ I α i σ i , P ) = e ( ∑ i ∈ I α i H ( C o n t i ) , Z ) e(\underset{i \in \mathbb{I}}{\sum}\alpha_i \sigma_i,P)=e(\underset{i \in \mathbb{I}}{\sum}\alpha_i H(Cont_i),Z) e(iIαiσi,P)=e(iIαiH(Conti),Z)不成立则拒绝,否则执行下列步骤
    在这里插入图片描述
  • 对所有 i ∈ I i \in \mathbb{I} iI L A G j LAG_j LAGj C o n t i Cont_i Conti提取出相应公钥 ( A i , B i ) (Ai,Bi) (Ai,Bi),判断 ( A i , B i ) (Ai,Bi) (Ai,Bi)是否属于 T a b Tab Tab表,成立则接受服务,否则拒绝
  • B V i BV_i BVi为电网提供了服务, L A G j LAG_j LAGj生成相应的 r e c e i p t receipt receipt
    • B V BV BV的服务和相应奖励为信息 m i , j m_i,_j mi,j. L A G j LAG_j LAGj计算 σ i , j = l j H ( m i , j , A i , B i ) \sigma _i,_j = l_jH(m_i,_j, Ai, Bi) σi,j=ljH(mi,j,Ai,Bi)
    • L A G j LAG_j LAGj C A G CAG CAG B V i BV_i BVi都发送 ( m i , j , A i , B i , σ i , j ) (m_i,_j , Ai, Bi, \sigma _i,_j) (mi,j,Ai,Bi,σi,j)

PS: Receipt(BVi): ( m i , j , A i , B i , σ i , j ) (m_i,_j , Ai, Bi, \sigma _i,_j) (mi,j,Ai,Bi,σi,j)Certificate(CAG): ( m i , j , A i , B i , σ i , j ) (m_i,_j , Ai, Bi, \sigma _i,_j) (mi,j,Ai,Bi,σi,j)

Reward from CAG
  • C A G CAG CAG接受到 L A G j LAG_j LAGj发送的 ( m i , j , A i , B i , σ i , j ) (m_i,_j , Ai, Bi, \sigma _i,_j) (mi,j,Ai,Bi,σi,j),选取随机数 β i , j ∈ F p , i ∈ I , j ∈ J \beta _i,_j \in \mathbb{F}_p,i \in \mathbb{I}, j \in \mathbb{J} βi,jFp,iI,jJ
    验证下列等式是否成立:
    在这里插入图片描述
    如果不成立则拒绝,成立则继续

  • 对于特定 B V i BV_i BVi C A G CAG CAG解压接收的消息并提取其地址 ( A i , B i ) (A_i,B_i) (Ai,Bi,选取随机数 r ∈ F l ^ ∗ r \in \mathbb{F}^*_ {\hat{l}} rFl^,然后计算 B V i BV_i BVi的一次性公钥(One-Time Public Key) P i ^ = H 1 ( r A i ) G + B i \hat{P_i}=H_1(rA_i)G+B_i Pi^=H1(rAi)G+Bi

  • CAG可以解压信息 m i , j m_i,_j mi,j得到奖励金额 b a l i , j bal_i,_j bali,j,然后计算总的奖励金额 b a l i = ∑ j ∈ J b a l i , j bal_i=\underset{j \in \mathbb{J}}{\sum}bal_i,_j bali=jJbali,j C A G CAG CAG可以从区块链读取总的奖励金额 b a l bal bal,因此 C A G CAG CAG准备了 J + 1 \mathbb{J}+1 J+1个输出:分别为上一步计算的一次性公钥(即地址) P i ^ \hat{P_i} Pi^ b a l i bal_i bali包含 J J J个元素。为了简化,将输出和一些元数据表示为信息 m m m,例如:对于每一个 B V i BV_i BVi m m m包含 R R R ( P i ^ , b a l i ) (\hat{P_i},bal_i) (Pi^,bali),其中 R = r G R=rG R=rG

  • CAG用私钥 z z z计算对消息 m m m的签名再哈希 A = H 2 ( S i g n z ( m ) ) A=H_2(Sign_z(m)) A=H2(Signz(m))

  • 最终步骤:
    在这里插入图片描述

    • 通过上述构造,CAG首先计算:
      L i = { q i G i f i = s q i G + w i P i i f i ≠ s L_i=\left\{\begin{matrix}q_iG & if & i=s\\ q_iG+w_iP_i & if & i \ne s\end{matrix}\right. Li={qiGqiG+wiPiififi=si=s R i = { q i H 2 ( P i ) i f i = s q i H 2 ( P i ) + w i I i f i ≠ s R_i=\left\{\begin{matrix}q_iH_2(P_i) & if & i=s\\ q_iH_2(P_i)+w_iI & if & i \ne s\end{matrix}\right. Ri={qiH2(Pi)qiH2(Pi)+wiIififi=si=s
    • 然后计算 c = H 1 ( m , A , L 0 , . . . , L n , R 0 , . . . , R n ) c=H_1(m,A,L_0,...,L_n,R_0,...,R_n) c=H1(m,A,L0,...,Ln,R0,...,Rn)和下列值:
      c i = { w i i f i ≠ s c − ∑ i ≠ s c i i f i = s c_i=\left\{\begin{matrix}w_i & if & i \ne s\\ c-\underset{i \ne s}{\sum}c_i& if & i = s\end{matrix}\right. ci={wici=sciififi=si=s r i = { q i i f i ≠ s q s − c s x s i f i = s r_i=\left\{\begin{matrix}q_i & if & i\ne s\\ q_s-c_sx_s & if & i = s\end{matrix}\right. ri={qiqscsxsififi=si=s
      最终的签名(环签名)为: σ = ( I , A , c 0 , . . . , c n , r 0 , . . . r n ) \sigma=(I,A,c_0,...,c_n,r_0,...r_n) σ=(I,A,c0,...,cn,r0,...rn)

奖励 b a l i bal_i bali发送到 P i ^ \hat{P_i} Pi^, b a l c bal_c balc发送到 P c ^ \hat{P_c} Pc^(新选定的存储剩余奖金的地址)

Verification and Gain

收到消息 m m m的签名 σ \sigma σ后,验证者对签名的有效性进行验证:

  • 计算: L i ′ = r i G + c i P i , R i ′ = r i H 2 ( P i ) + c i I L_i'=r_iG+c_iP_i, R_i'=r_iH_2(P_i)+c_iI Li=riG+ciPi,Ri=riH2(Pi)+ciI
  • 验证者检查等式: ∑ n i = 0 c i = H 1 ( m , A , L 0 ′ , . . . L n ′ , R 0 ′ , . . . , R n ′ ) m o d    l ^ \sum_{n}^{i=0}c_i=H_1(m,A,L_0',...L_n',R_0',...,R_n') \mod \hat{l} ni=0ci=H1(m,A,L0,...Ln,R0,...,Rn)modl^,成立则继续
  • 验证者检查镜像 I = x s H 2 ( P s ) I=x_sH_2(P_s) I=xsH2(Ps)是否在以前的签名中出现过,如果是则拒绝,否则接受 σ \sigma σ

接受签名 σ \sigma σ后, B V i BV_i BVi获取奖励:

  • 提取消息 m m m中的 R R R ( P i ^ , b a l i ) (\hat{P_i},bal_i) (Pi^,bali)
  • 计算 P i ′ = H 1 ( a i R ) G + B i P_i '=H_1(a_iR)G+B_i Pi=H1(aiR)G+Bi 并判断 P i ^ = P i ′ \hat{P_i} = P_i' Pi^=Pi是否成立,成立则继续
  • B V i BV_i BVi计算 x i = H 1 ( a i R ) + b i x_i=H_1(a_iR)+b_i xi=H1(aiR)+bi,满足 P i ^ = x i G \hat{P_i}=x_iG Pi^=xiG,因为 B V i BV_i BVi拥有自己的私钥 ( a i , b i ) (a_i,b_i) (ai,bi)

三、实验结果

(1)CAG在Contract-based authorization阶段时间开销和LAG在Anonymous service and receipt阶段时间开销比较
在这里插入图片描述
(2)CAG在Reward from CAG阶段时间开销(不同 J \mathbb{J} J
在这里插入图片描述
(3)CAG在Reward from CAG阶段时间开销(不同 I \mathbb{I} I
在这里插入图片描述
(4)区块链在Verification and Gain阶段时间开销
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值