Page 461 - 《软件学报》2026年第2期
P. 461
940 软件学报 2026 年第 37 卷第 2 期
系统私钥发送给敌手 A II .
2) 询问阶段: 与游戏 1 中的询问阶段相同.
∗ ∗ C 提交
3) 伪造阶段: 经过概率多项式次询问后, 敌手 A II 选择一个目标地址 Addr , 并伪造签名 σ , 然后向
<Addr ,σ > 作为挑战. 如果下面的 4 个条件同时成立, 则称 A II 在游戏 2 中获胜.
∗
∗
a) A II 没有使用 Addr 执行过部分私钥询问.
∗
∗
b) A II 没有使用 Addr 执行过私钥询问.
c) A II 没有进行过公钥替换询问.
∗
∗
∗
∗
d) 伪造的签名能成功通过验证, 即: 1 ← Verify(Addr ,m ,σ ,PK ).
A II 在游戏 2 中获胜的概率为:
记
∗
∗
∗
∗
Adv τ = Pr[1 ← Verify(Addr ,m ,σ ,PK )].
A II
定义 2. 在概率多项式时间内, 若类型 II 的敌手 A II 以可忽略的优势 Adv τ 在游戏 2 中取得胜利, 则称该无证
A II
书签名方案在适应性选择消息攻击下具有不可伪造性 (EUF-CMA).
2.4 区块链与智能合约
(1) 区块链
区块链由 Nakamoto [35] 在 2008 年首次提出, 它是一种按照时间顺序将数据区块依次先后生成并连接成链且以
密码学技术保证不可篡改和不可伪造的分布式账本. 在区块链中, 数据以区块的形式储存, 每一个区块记录了一段
时间内发生的所有交易信息. 区块的数据结构由区块头和区块体组成, 其中区块头包含前一个区块的哈希值, 以此
确保区块的顺序和不可篡改性. 区块体则包含了区块创建过程中产生的所有交易信息. 区块链可分为公有链、私
有链和联盟链, 本文方案所使用的是联盟链. 联盟链是一种基于区块链技术的私有化网络, 由一组特定实体或组织
共同管理和操作. 与公有链不同, 它只服务于特定组的成员, 成员只有在获得许可后才可以加入区块链, 并且参与
者可以控制网络的操作和权限, 因此联盟链也叫许可链. 相比私有链, 联盟链更加灵活和开放; 相比公有链, 联盟链
的读取权限受到限制, 可以更好地提供隐私保护. 联盟链中存在全节点和轻节点两种不同类型的节点, 它们具有不
同的功能和角色.
a) 全节点: 联盟链的全节点是指在联盟链网络中具有完整区块链副本的节点, 它存储并维护着整个区块链的
所有交易记录和状态数据. 全节点可以与其他节点进行点对点通信, 以更新自己的区块链副本, 同时也可以通过共
识机制参与到区块链网络的交易验证和区块生成过程中.
b) 轻节点: 联盟链的轻节点是指在联盟链网络中不需要存储完整区块链的所有数据, 也不参与区块链的共识,
但可以通过与全节点通信来获取所需数据和验证交易的节点. 与全节点相比, 轻节点对计算资源和存储空间的需
求更低, 因此更适合由车辆等资源有限的设备充当.
(2) 智能合约
智能合约是一种以代码形式编写的程序, 它能够在满足特定条件时自动执行预设的合约条款. 运行在区块链
网络上的智能合约无需依赖中心化服务器或第三方机构, 从而降低信任成本, 增强系统的自主性和效率. 依托区块
链的共识机制与加密技术, 智能合约具备防篡改和抗欺诈能力, 相较于传统合约更加安全可靠. 此外, 智能合约的
执行过程透明可验证, 确保交易的公平性和可信度. 通过智能合约, 参与者能够在一个去信任、透明且不可篡改的
区块链环境中实现自动化交易与协议执行. 本方案为车辆设置信誉值, 并将信誉值存储到区块链上, 并设计了如算
法 1 所示的信誉值更新合约.
算法 1. 信誉值更新合约.
c
输入: t i : 时间戳; RS : 被评车辆的当前信誉值; Addr i,k : 被评车辆的区块链地址; S = {RS i,k |i = 1,2,...,N;k = 1,2,...,n}:
i,k
参评车辆信誉值集合; W = {w i,k |i = 1,2,...,N;k = 1,2,...,n}: 评价反馈等级集合, w i,k 表示来自 V i,k 的评价;
输出: RS c+1 : 被评车辆更新后的信誉值.
i,k

