启明办公

用户名  找回密码
 立即注册
帖子
热搜: 活动 交友 discuz
查看: 126|回复: 2

区块链在众包中的应用:如何提高拓展性?

[复制链接]

3

主题

6

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2022-10-19 22:08:37 | 显示全部楼层 |阅读模式
上一篇文章:前文讲解了区块链在众包中的应用,防止搭便车和避免不真实报告。这里,我们讲讲拓展性的问题。
下一篇文章:ChainingBlocks:(学术前沿)区块链在众包的应用,如何实现高效的链上成本?

本文内容来自本人论文:Liang, Yihuai, Yan Li, and Byeong-Seok Shin. "Private decentralized crowdsensing with asynchronous blockchain access."Computer Networks(2022): 109088.

前文讲到了区块链在众包中的背景知识。简而言之,requester发布任务购买workers的数据。如果数据满足条件,requester支付给workers报酬。安全上,防止搭便车和防止错误报告是该应用的基本条件。


我们想要使用一个公共的区块链来代替中心化的众包服务器。因为去中心的区块链平台具有下面优点:数据高可用,服务透明,不需要相信第三方服务平台。但是,使用区块链的挑战在于,
1)目前的公共区块链的拓展性差,即不支持保存很大的数据到链上,不支持很复杂的智能合约。因此,不应该使用区块链来收集worker的数据,也不应该使用智能合约来检测worker数据的质量。
(2)公共区块链是透明的,其他人都可以看到链上的数据。该透明性将违背我们前文讲到的众包中的“防止搭便车”问题。因此,我们需要解决:

  • (透明性)如何在使用透明的公共区块链的情况下防止搭便车呢?
  • (拓展性)如何在不使用区块链来收集worker的数据的情况下评估worker数据质量呢?
评估worker数据质量这个操作是很重要的,因为只有质量符合requester要求的数据,该数据的worker才能得到requester的报酬。这是防止错误报告的关键步骤。既然我们不使用智能合约来评估worker数据质量,那么怎么评估该质量呢?
方案一,使用零知识证明来评估worker数据质量:
在这方面有研究的同学的第一个想法是使用零知识证明技术,特别是zk-SNARKs。大体思路是,workers先将数据的commitment发布到区块链中,然后将数据明文发送给requester。然后requester生成一个零知识证明来证明worker数据的质量是否满足要求。因为该证明大小是常数,因此区块链能够高效验证该证明。如果requster不提交证明,或者无法证明该worker的数据质量不符合要求,那么,智能合约将requester的押金发给worker。明显的,该方案符合“防止搭便车和错误报告”的安全要求。但是,这个方案对requester是很不友好的,因为生成该证明很慢很慢,且需要很大的内存资源。因为有这个“严重”的缺点,我们不考虑使用该方案。
我们的方案:使用可信硬件来评估worker数据质量:
我们的思路使用可信硬件(Trusted Execution Environment, TEE)来评估worker的数据质量。什么是TEE呢?具体可参考“可信硬件介绍”。简而言之,TEE是使用硬件实现的可信的环境。代码和数据在该环境中是安全的。即使TEE机器在一方手中,另一方也能够安全地确认TEE环境中的代码和数据是否是完整的,同时,环境中的代码和数据是保密的。因此,回到我们的区块链众包。我们的idea是将“评估worker数据质量”这个关键步骤放到TEE中执行。这既能够保证数据保密性,也能够确保评估质量的完整性(Integrity)。所谓完整性,指的是代码和数据不会被篡改。
但是,理想是美好的,现实是骨感的。直接使用TEE在区块链众包中是具有挑战性的。因为我们只使用一台或者几台TEE机器来执行质量评估操作,所以TEE不能保证可用性。如果机器宕机了,怎么办?而且,TEE机器的提供者可能和worker或者requseter勾结,TEE机器的提供者也有可能是恶意的(malicious),随时都可能让TEE机器故意宕机,从而破坏“防止搭便车和防止错误报告”。比如,在提交支付交易给区块链之后,TEE提供者立刻故意关闭TEE机器,导致requester无法下载到worker的数据质量。这样,requster付款了但没能得到数据。基于这些挑战:

  • 我们使用了“原子传递”来保证下面两个事件同时发生或者同时不发生:worker得到应有的报酬;requester得到了worker的数据。
  • 我们使用一个key management commitment来解决某台TEE机器宕机导致服务不可用或者数据丢失的问题。具体的,解密worker数据的密钥将由这个委员会来管理。TEE在我们的系统中是无状态的(stateless),即它不保存状态信息,只负责读取数据和评估数据质量。因此,即使一台TEE在评估数据质量的过程中宕机了,也不会影响系统的可用性,因为其他任何一台TEE都可以替代该机器:从委员会中获取密钥,下载加密数据,评估数据质量。需要注意的是,我们使用TEE的安全环境来获取密钥,因此,该密钥是保密的。即使是TEE的提供者也无法知道该密钥。这里涉及到委员会的问题:怎么构建这个委员会?怎么解决这个委员会的可用性问题?如何解决这个委员会不泄露密钥的问题?这个委员会是去中心化的,那么它是否存在拓展性问题?这些问题似乎类似于”先有鸡还是先有蛋“。我们在论文的第3节给出了一个清晰的答案,其合理地解决了委员会的问题。即论文中不存在”先有鸡还是先有蛋“这样的问题。
下面我粘贴出系统架构和操作流程图。对此论文感兴趣的读者欢迎阅读论文原文:




本文所有内容来自本人论文:Liang, Yihuai, Yan Li, and Byeong-Seok Shin. "Private decentralized crowdsensing with asynchronous blockchain access."Computer Networks(2022): 109088.
回复

举报

1

主题

5

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2025-2-13 21:06:01 | 显示全部楼层
发发呆,回回帖,工作结束~
回复

举报

0

主题

9

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2025-3-5 04:55:12 | 显示全部楼层
沙发???
回复

举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|启明办公

Copyright © 2001-2013 Comsenz Inc.Template by Comsenz Inc.All Rights Reserved.

Powered by Discuz!X3.4

快速回复 返回顶部 返回列表