SpeedyChain: A framework for decoupling data from blockchain for smart cities (MobiQuitous ’18)

粗略一看,本文应该是针对智能汽车的数据共享。采用的是可追加的区块链结构:存储在transactions里的数据和区块头分离。

  介绍场景:汽车之间会分享数据,数据的验证必须低延迟,并且要保护敏感信息。现在的实现数据integrity和veracity的方法还有以下问题:

  • 集中。依赖集中的掮客,broker。例如制造商,并且不能适用于超大规模的网络。
  • 缺乏隐私。
  • 数据脆弱性。联网汽车的数据存储在传统的集中式数据库中,篡改数据(例如信号灯)会有严重后果。

  使用SpeedyChain时,有定期更新密钥的操作。还采用了设备访问级别。

SpeedyChain动态管理密钥。

采用的区块链架构:
  采用的是可追加区块链的模型。每个区块下面可以追加transaction,在区块头中包括了签名,GPS信息,访问控制级别等信息。
 

Public Key 
policy 
Genesis Block 
Block Header 
Block Ledger 
Previous Block Header Hash 
Block Header 
Block Ledger 
Block Header 
Block Ledger 
Header 
Hash 
prev. 
Hash 
PreviousBlockHeaderHash 
Id 
Si n. GPS 
Data 
Time AccessLvl 
Si n. GPS 
Data 
Time AccessLvI

  每个区块只有在RSI收到见证者验证后才创建,意味着车辆确实再所claim的区域中。(那么如果离开了这个区域,原来的Block Header怎么办?)

数据的处理和产生过程:
 

Device 
1: ReadDataFromSensor() 
2: Sign(Data, Timestamp, PrivateKey) 
3: CreateTransaction(Data, Timestamp, Sign, PubKey) 
4: Send Transaction 
Gateway

  设备Device首先从环境中读取数据,然后给自己读取到的数据签名,创建transaction,然后发送给gateway。 这里gateway负责维护区块链。如果在gateway所保存的区块链中,有一个区块和这个设备相关,就验证签名,验证成功后gateway会添加到leader上然后发送给其他peers。(如果环境中的数据被不止一个device收集到然后发送给了同一个gateway或者不同的gateway怎么办?)

SpeedyChain框架:
  涉及到的实体主要是车辆,RSI和SP。车辆一般产生两种数据,用来被其他车辆或者城市使用,例如交通报告。第二种是服务数据,发送到SP或者车辆所有者的数据,例如用来监视车辆特定部分。

  框架中区块链由RSI和SP进行管理,车辆本身对自己的传感器收集数据,进行签名然后发送给最近的RSI。RSI完成验证后将相应的transaction添加到车辆所对应的区块的ledger里。如果是新车辆就创建新区块。车辆仅维护Merkle树。

  为了避免Sybil攻击,要确认车辆是真正的车辆。采用基于位置的证明。

1: Key 
2: set Key Expiration Timeo 
: Ask to using pubKey and locati 
7: Validatel) 
7.1: Validate 
8: and append to 
9; Broadcast block

  在这种情况下,如果RSI作恶怎么办?默认RSI是可信的。

  车辆如果无法连接到RSI,会让周围的车辆转发。如果周围的车辆不转发怎么办?

  密钥更新的时候,车辆通过在区块链中存储新的区块头。(怎么存储?怎么改?)车辆要周期性更新Merkle树。岂不是开销很大?

SpeedyChain的安全性。

  • Sybil攻击。文章称车辆在处理transaction之前会验证transaction的产生者,因此可以抵抗。为什么验证就可以抵抗了?
  • 修改数据。任何peer都可以对交易进行检查来检测内容的篡改。是否有悖区块链的本质?
  • 恶意RSI。受影响的RSI只会不处理数据,但是不会篡改数据,因为无法篡改,采用了签名算法。

发表评论

邮箱地址不会被公开。 必填项已用*标注