Page 330 - 《软件学报》2021年第5期
P. 330
1554 Journal of Software 软件学报 Vol.32, No.5, May 2021
具体信息,不同的事务数据类型在 Transaction_Data 域有不同的格式;Timestamp 表示事务创建时时间戳;
Signature 表示发布者的签名.
Fig.7 Data format
图 7 数据格式
各类非合约型事务经由图 7 所示数据格式打包进区块中进行存储,这些事务一旦被打包进区块就无法被
更改或删除,这样可以便于日后审计.事务具有 3 种操作类型,其中,创建操作 C 只能进行一次;更新操作 U 可以
进行若干次,直到该事务被撤销;同样,撤销操作 D 也只能进行一次.事务的操作类型作为系统判断该事务是否
合法的依据,判断方法如下.
(1) 检查事务的数据格式是否正确:正确,则进行下一步.
(2) 使用发布者公钥(Publisher_PK)检查事务签名是否有效:有效,则进行下一步.
(3) ① 对于操作类型为 C 的事务:(a) 检查其 ID,若存在,则不合法;(b) 对于事务类型为 A 的事务,检查其
发布的属性是否已存在,若存在,则不合法(对于事务类型为 P 的事务,无需检查该策略是否存在,因为
策略是由各安全域根据自身需要定制的).
② 对于操作类型为 U 或 D 的事务,检查其 ID:若不存在,则不合法;若存在,则检查原事务和更新后事
务的公钥是否相同,若不同,则不合法(防止策略状态被非法篡改,例如 A 域非法更改 B 域策略状态).
由于事务可能会被更新或撤销,且旧事务仍会存在于区块链中,所以系统在进行相关事务查询时,需要根据
其操作类型进行筛选.当一个事务被撤销后,无法被添加进结果集中,当一个事务被多次更新后,系统将选择时
间戳最新的事务添加进结果集中.
3) 区块链网络的工作流程
(1) 各种数据经过发布者按照上述的数据格式封装成事务后,经由区块链网络广播至全网节点.
(2) 链上节点对该事务进行验证:如果合法,则继续向附近节点广播;否则,停止传播.
(3) 网络中担任共识节点功能的网络节点收到该事务后,将其放入事务等待队列中,队列中的各种