Dixit A, Singh A, Rahulamathavan Y, et al. Fast data: A fair, secure and trusted decentralized iiot data marketplace enabled by blockchain[J]. IEEE Internet of Things Journal, 2021.

贡献

提出一个去中心化的IOT数据交易市场,基于区块链、点对点(P2P)数据流存储、端到端加密,实现角色验证(actor verification),信任度量( trust metric calculation),安全透明交易

系统成员

image-20240308172752838
  • 卖方(Seller,S):S创造数据,但是没有能力存储,它向存储服务商支付节点(nodes?)换取数据存储和处理服务;S希望买方能发现它的数据,并公平交易数据
  • 存储服务商(Storage Operators,O):去中心化P2P节点集群,以数据流的形式存储数据,服务受激励(要购买)
  • 客户端(Client,C):客户端来市场浏览、购买
image-20240309101533952 image-20240309111557344

系统流程

系统分为三个阶段:新用户引导(onboarding phase)、数据上传阶段、数据购买阶段。

image-20240309114638719

新用户引导阶段

该阶段使用DID验证用户身份,并在市场注册。

  1. 每个实体(买方/卖方)生成密钥对KeyGen (1λ)(sk,pk)KeyGen~(1^\lambda)\to(sk,pk),获取DID,发送给DApp
  2. 区块链解析DID,验证身份,验证通过则为实体创建账户,并增加实体的信任分
  3. 卖方S在市场注册data offers(DO),DO包含了支付细节和条款,并记录在区块链上。

数据上传阶段

  1. 准备需要上传的数据,为一批数据dd生成streamIDdGenerateID(SstreamNametimestamp)streamID_d\leftarrow \mathrm{GenerateID}(S||\textit{streamName}||\text{timestamp})
  2. S生成密钥kmk_m,以生成数据的MAC,MAC(d,km)σdMAC(d,k_m)\to\sigma_d
  3. S生成密钥kek_e,加密数据Enc(d,ke)eEnc(d,k_e)\to e
  4. S向市场发送请求,市场向区块链转发请求,区块链回复令牌ω\omega给S
  5. 令牌ω\omega用来唯一地标识一次上传,S用私钥sksk对令牌签名得ϕS\phi_{S}
  6. S利用该签名令牌与security manager DApp认证,将加密数据发送给Broker
  7. S将相关元数据(streamIDd,DO,km,ke,σdstreamID_d,DO,k_m,k_e,\sigma_d)上传至市场,市场转发给区块链账本

数据购买阶段

  1. 客户端C(买家)浏览门户网站,选择数据streamIDdstreamID_d
  2. 生成请求reqIDreqID,与支付款pp一起发给市场,市场转发给区块链,即Payment(streamIDd,reqID,p)\textbf{Payment}(streamID_d,reqID,p)
  3. 区块链账本验证S是否设置了限制,如果C满足且支付款已经收到,就初始化数据转移,将streamIDdstreamID_dkm,ke,σdk_m,k_e,\sigma_d发送给C(由C的公钥pkpk加密)
  4. 区块链账本发送令牌δ\delta给C,C为令牌签名得ϕC\phi_{C}
  5. C用令牌与security manager DApp认证,从它拿到数据,解密,验证MAC

信任分TRUST SCORE

使用信任分来度量各参与方的可信度,使用声誉(reputation)和信誉(credibility)来计算信任分。声誉由实体身份(DID)的验证状态来计算。信誉由交易完成后其他各方对他的评级和反馈。

信誉:给定一段时间,Cr(u)Cr(u)表示实体uu的信誉,I(u)I(u)表示由uu执行的所有交易数,I(u,v)I(u,v)表示uuvv之间的所有交易数,a(u,i)a(u,i)表示uu的第ii次交易的另一个参与方,S(u,i)S(u,i)表示uu在第ii次交易中从a(u,i)a(u,i)处获取的满意度的标准化数量,TR(u,i)TR(u,i)表示第ii次交易时vvuu的评分。给定一段时间,对vv来说uu的信誉由以下式子表示

Cr(u)=i=1I(u)(S(u,i))Cr(a(u,i))+TR(u,i)Cr(u)=\sum_{i=1}^{I(u)}(S(u,i))*Cr(a(u,i))+TR(u,i)