一 文章内容
摘要
背景和挑战:
在V2G(Vehicle-to-Grid)网络中,为鼓励BV(Battery-powered vehicle)的参与需要设置一定的奖励机制,但是扩大V2G网络部署会带来 安全和 隐私问题。
提出方法:
本文提出一种新概念:BBARS (V2G网络中基于区块链的匿名奖励机制),并给出了正式的 系统模型和 安全模型,通过两种不同的PKC(Public key cryptosystem)设计了详细的BBARS机制。
1 简介
1.1 相关工作
现有工作的不足:
It is still an open problem to solve the anonymity, unlinkability,untraceability simultaneously
1.2 文章贡献
- 首次提出基于区块链的V2G网络中匿名奖励机制,并给出正式的系统模型和安全模型。并首次考虑CAG(Center Aggregator)的匿名和BV的匿名。
- 付款方和收款方地址具有 不可链接性(无法建立奖励双方的联系)和 不可追踪性(不可找到付款方的地址)。
- 使用两种PKC来设计BBARS机制,一种用于聚合签名,一种用于区块链
2 BBARS 机制
2.1 密码方案
(1)ECC 和 双线性对
(2)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.2 安全模型
2.2.1 安全目标
- 1)BV、CAG和LAG间的互相认证
- 2)BV的匿名性
- 3)CAG的匿名性
- 4)不可链接性
2.2.2 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使用不同的公钥和相应的信息(表示为Conti.)发起请求,C创建认证信息σj 并返回给A.
-
伪造:A使用公钥和相应的信息伪造有效认证Cont,A赢得游戏满足
其中p(k)是安全参数k的多项式,A赢得游戏的概率是不可忽略的。
2.3 BBARS架构
系统实体
- CAG(Center Aggregator)
- LAG(Local Aggregator)
- BV(Battery powered vehicle)
-
Blockchain
2.4 BBARS系统工作流程
2.4.1 Setup
1)Parameter type 1
- 用途:Blockchain、Monero
- E(椭圆曲线)、Fq(有限域)、q(素数)、G(E(Fq)的生成点/基点)、l^(G的阶)、Fl^(由参数l^构成的有限域)
2)Parameter type 2
- 用途:Registration、Receipt、Certificate、Authentication、Revocation
2.4.2 Contract-based authorization
Conti包含:BV’s status information、reward for the service、service charge standard、payment method、(Ai,Bi)
- CAG首先用自己的私钥z和收到的Conti生成签名σi=zH(Conti)
- 在Tab表中记录BV的地址(Ai,Bi)
- CAG将(Conti,σi)发给BVi
- CAG发送更新的Tab表给LAGs
2.4.3 Anonymous service and receipt
BVi访问V2G网络并且为电网提供服务,它向LAGj提供(Conti,σi),验证过程如下:
- LAGj收到大量(Conti,σi)对,其中i∈I
-
LAGj选区随机数αi∈Fp,验证e(i∈I∑αiσi,P)=e(i∈I∑αiH(Conti),Z)不成立则拒绝,否则执行下列步骤
- 对所有i∈I,LAGj从Conti提取出相应公钥(Ai,Bi),判断(Ai,Bi)是否属于Tab表,成立则接受服务,否则拒绝
- 当BVi为电网提供了服务,LAGj生成相应的receipt:
- 记BV的服务和相应奖励为信息mi,j.LAGj计算σi,j=ljH(mi,j,Ai,Bi)
- LAGj给CAG和BVi都发送(mi,j,Ai,Bi,σi,j)
PS: Receipt(BVi): (mi,j,Ai,Bi,σi,j)Certificate(CAG):(mi,j,Ai,Bi,σi,j)
2.4.4 Reward from CAG
,
-
CAG接受到LAGj发送的(mi,j,Ai,Bi,σi,j),选取随机数βi,j∈Fp,i∈I,j∈J
验证下列等式是否成立:
如果不成立则拒绝,成立则继续
- 对于特定BVi,CAG解压接收的消息并提取其地址(Ai,Bi),选取随机数r∈Fl^∗,然后计算BVi的一次性公钥(One-Time Public Key)Pi^=H1(rAi)G+Bi
- CAG可以解压信息mi,j得到奖励金额bali,j,然后计算总的奖励金额bali=j∈J∑bali,j,CAG可以从区块链读取总的奖励金额bal,因此CAG准备了J+1个输出:分别为上一步计算的一次性公钥(即地址)Pi^和bali包含J个元素。为了简化,将输出和一些元数据表示为信息m,例如:对于每一个BVi,m包含R和(Pi^,bali),其中R=rG
- CAG用私钥z计算对消息m的签名再哈希A=H2(Signz(m))
- 最终步骤:
- 通过上述构造,CAG首先计算:
Li={qiGqiG+wiPiififi=si̸=s Ri={qiH2(Pi)qiH2(Pi)+wiIififi=si̸=s - 然后计算c=H1(m,A,L0,...,Ln,R0,...,Rn)和下列值:
ci={wic−i̸=s∑ciififi̸=si=s ri={qiqs−csxsififi̸=si=s
最终的签名(环签名)为:σ=(I,A,c0,...,cn,r0,...rn)
- 通过上述构造,CAG首先计算:
2.4.5 Verification and Gain
收到消息m的签名σ后,验证者对签名的有效性进行验证:
- 计算:Li′=riG+ciPi,Ri′=riH2(Pi)+ciI
- 验证者检查等式:∑ni=0ci=H1(m,A,L0′,...Ln′,R0′,...,Rn′)modl^,成立则继续
- 验证者检查镜像I=xsH2(Ps)是否在以前的签名中出现过,如果是则拒绝,否则接受σ
PS:奖励bali发送到Pi^,balc发送到Pc^(新选定的存储剩余奖金的地址)
接受签名σ后,BVi获取奖励:
- 提取消息m中的R和(Pi^,bali)
- 计算Pi′=H1(aiR)G+Bi 并判断Pi^=Pi′是否成立,成立则继续
- BVi计算xi=H1(aiR)+bi,满足Pi^=xiG,因为BVi拥有自己的私钥(ai,bi)