**《A Blockchain-based Approach for Data Accountability and Provenance Tracking》**(基于区块链的数据问责和溯源追踪)是提出了三种基于publicly auditable contracts(此处可以理解为smart contract智能合约)的模型,具有不同的的粒度(granularity)和可扩展性(scalability)。
技术背景
Distributed Ledgers Technology(分布式账本技术):使用Ethereum Virtual Machine (EVM,以太坊智能合约虚拟机)编写智能合约,是将EVM视为用于跟踪数据来源和评估的分布式平台。
数据追踪模型是基于Model-based Security Toolkit (SecKit),就是按主体(subjectr→person)维护的一张表,其对于每个控制器(controller→organization),有数据传输时就会更新表,当控制器将主体的数据传输给处理器( processor→organization)时,处理器中接受数据的实体将创建一个新的数据追踪模型(也就是一张表)。
使用控制策略语言(Usage Control Policy Language):同样是基于Model-based Security Toolkit (SecKit),智能合约中对主体数据的传输作出了规定,这些规定就是使用策略语言来编写。包含两种机制:预防机制(preventive mechanisms)和反应机制(reactive mechanisms)。为支持这两种机制,将规则中事件分为暂定的(are about to take place but were not yet executed)和实际的(already happened)。本文中的关注点是预防机制。
方案设计
涉及到两个方面:合约设计以及区块链架构设计。合约设计的主要问题是其生命周期(lifecycle)、存储合约信息状态变量和授权策略,区块链架构设计的主要问题是采用公开,半公开或私有的链。
模型A: data subject contract for specific controller主体为每个控制器创建特定的合约,合约将一直跟踪分享给控制器的数据,记录控制器的行为;拥有数量最多的合约,因为是每个控制者一个合约,保密性较好,能够用在传输敏感数据中;交易量高。
模型B:data subject contract for specific data主体为每个实例(data instance)创建通用的合约,所有访问数据的控制器共享,合约中包含了可以访问数据的控制器列表和其所要遵守的规则;其需要所有控制器的唯一地址确保控制器之间的访问性,但这就失去了匿名性。
模型C:controller contract for multiple data subjects由控制器创建一个合约来规定如何处理从各种主体发来的数据,之后主体再请求加入。
主体合约模型(模型A)
主体所要共享的信息溯源信息的存储:
策略生成:
控制器合约模型(模型C)
在此模型中,合约仅作为可配置策略模板的存储库(repository of the configurable policy templates),除此之外仅存储可访问的主体列表。交易仅是主体加入或退出。