论文阅读1(可验证查询)

116 阅读9分钟

vChain: Enabling Verifiable Boolean Range Queries over Blockchain Databases

论文

vChain:在区块链数据库上启用可验证的布尔范围查询

作者

Cheng Xu, Ce Zhang, Jianliang Xu

状态

阅读中

时间

2018/12/06

关键词

  • Query processing;
  • Data integrity;
  • Blockchain

会议名称

Special Interest Group on Management Of Data (SIGMOD 19)

分区

CCF 数据库 / 数据挖掘 / 内容检索领域 A类会议

论文框架总结

Q1 论文试图解决什么问题?

答:为确保区块链数据库上查询的完整性,查询用户可以作为完整节点加入区块链网络。然后,用户可以下载并验证整个数据库,并在本地处理查询,而不会影响查询的完整性。然而,对于普通用户来说,维护整个数据库的完整副本可能成本太高,因为它需要大量的存储、计算和带宽资源。为了迎合资源有限的用户的需求,可以将存储和查询服务委派给功能强大的全节点,而查询用户仅充当接收结果的轻节点。这样做就会产生,如何确保查询结果的完整性的问题。因为整个节点不受信任,这是区块链的固有假设。

Q2 这是否是一个新的问题?

答:不算新问题。此前有许多初创公司也考虑过这个问题,他们的做法通常是将查询处理与底层区块链存储分开,并依赖可信的数据库服务器来保证查询完整性。但是,本文提出的vChain解决方案将经过验证的数据结构加入到区块链结构中,这样即使是不可信的服务器也可以提供具有数据完整性保证的查询服务。

Q3 这篇文章要验证一个什么科学假设?

答:本文需要对提出来的多集累加器和查询验证算法进行安全性分析,并且评估测试用于时间窗口查询和订阅查询的vChain框架的性能。

Q4 有哪些相关研究?如何归类?谁是这一课题在领域内值得关注的研究员?

答:相关研究分类如下:

  • 可验证的查询处理的两种方法

1.使用基于电路的可验证计算(VC)技术支持一般查询

  • [1] B. Parno, J. Howell, C. Gentry, and M. Raykova. 2013. Pinocchio: nearly practical verifiable computation. In 2013 IEEE S&P, 238–252.
  • [2] E. Ben-Sasson, A. Chiesa, E. Tromer, and M. Virza. 2014. Succinct non-interactive zero knowledge for a von neumann architecture. In Proceedings ofthe 23rd USENIXConference on Security Symposium, 781–796

2.使用经过身份验证的数据结构(ADS)支持特定查询

  • 数字签名(为支持可验证的查询,它要求对每个数据记录进行签名,因此无法扩展到大型数据集)

  • H. Pang and K.-L. Tan. 2004. Authenticating query results in edge computing. In IEEE ICDE.

  • R. C. Merkle. 1989. A certified digital signature. In Advances in Cryptology — CRYPTO, 218–238.

  • 数据流的可验证查询处理

  • 检索流数据最新版本的一次性查询

  • [1] C. Papamanthou, E. Shi, R. Tamassia, and K. Yi. 2013. Streaming authenticated data structures. In Advances in Cryptology – EUROCRYPT, 353–370.

  • [2] D. SchÃűder and M. Simkin. 2015. VeriStream – A framework for verifiable data streaming. In Financial Cryptography and Data Security, 548–566.

  • 要求数据所有者为所有数据记录维护MHT(查询延迟较长,不适用于实时流媒体业务)

  • S. Papadopoulos, Y. Yang, and D. Papadias. 2009. Continuous authentication on relational streams. The VLDB Journal, 19, 2, 161– 180.

  • 数据流上的订阅查询(暂无关于订阅查询的完整性研究)

  • [1] L. Chen, G. Cong, and X. Cao. 2013. An efficient query indexing mechanism for filtering geo-textual data. In ACMSIGMOD.

  • [2] C. Thoma, A. J. Lee, and A. Labrinidis. 2016. PolyStream. Cryptographically enforced access controls for outsourced data stream processing. In ACMSymposium on Access Control Models and Technologies - SACMAT.

  • [3] K. Yang, K. Zhang, X. Jia, M. A. Hasan, and X. Shen. 2017. Privacy preserving attribute-keyword based data publish-subscribe service on cloud platforms. Information Sciences, 387, 116–131.

Q5 论文中提到的解决方案之关键是什么?

答:本文提到了,经过身份验证的数据结构(ADS)的设计是vChain框架的关键问题。这种模型的主要挑战是如何设计ADS,使其能够很容易地适应区块链结构同时可以为时间窗口查询和订阅查询有效地构建成本效益好的VO(产生较小带宽开销和快速验证时间)。

Q6 论文中的实验是如何设计的?

答:实验准备:

  • 查询用户设置在一台配备英特尔酷睿i5 CPU和8GB RAM的笔记本电脑上,运行于CentOS7,只有一个线程。
  • SP和矿工设置在x64 blade服务器上,运行在CentOS 7上。
  • 实验代码为C++语言,使用了以下库:MCL用于双线性对计算,Flint用于模块化算术运算,Crypto++用于160位SHA-1哈希操作,OpenMP进行并行计算。
  • SP运行24个超线程来加速查询处理。

测试步骤:

主要对时间窗口查询和订阅查询进行测试,对于每个实验,随机生成20个查询,并报告平均结果。默认情况下,将数值范围的选择性设置为10%(对于4SQ和WX)和50%(对于ETH),并使用大小为3(对于4SQ和WX)和9(对于ETH)的析取布尔函数。对于WX,每个范围谓词都包含两个属性。

测试时间窗口查询的实验方法:

  • 实验中对三种方法进行了比较,

  • nil: 不使用索引。

  • intra: 仅使用块内索引;

  • both: 使用块内和块间索引,其中块间索引中的SkipList的大小设置为5。

  • 每种方法都采用第两种不同的累加器结构,标记为acc1(基于双线性对和q-SDH假设)和acc2(基于双线性对和q-DHE假设)。

  • 每个实验中总共评估了六个方案。对于4SQ和ETH,查询窗口的时间从2小时到10小时不等,对于WX,查询窗口的时间从20小时到100小时不等。

测试订阅查询的实验方法:

  • 在默认设置下使用或不使用IP树(表示为IP和NIP)来检查SP的查询处理时间,其中启用了块内索引和块间索引。随机生成不同数量的查询。4SQ和ETH的默认订阅期为2小时,WX的默认订阅期为20小时。
  • 为了比较实时和惰性认证,考虑两个实时方案(带有acc1和acc2)和一个惰性方案(仅使用acc2,因为acc1不支持累积集和证据的聚合)。我们将4SQ和ETH的订阅时间从2小时改为10小时,WX的订阅时间从20小时改为100小时。

Q7 用于定量评估的数据集是什么?代码有没有开源?

答:实验中使用了三个数据集:

  • Foursquare (4SQ): 4SQ数据集包含了1M的数据记录,这些是用户登记的信息。
  • Weather (WX): WX数据集包含2012-2017年间36个城市的150万小时天气记录。
  • Ethereum (ETH): 以太网交易数据集提取自2017年1月15日至2017年1月30日期间的区块链以太网。

数据集链接:

代码不开源,之后发表的vChain: A Blockchain System Ensuring Query Integrity给出了Rust语言实现了基于开源的Exonum框架(版本0.13-rc2)的vChain原型系统,链接:github.com/hkbudb/vcha…

其研究团队链接:

MCL库:github.com/herumi/mcl/

Q8 论文中的实验及结果有没有很好地支持需要验证的科学假设?

答:为了评估vChain中可验证查询的性能,我们主要使用三个指标,

  • 以SP的CPU时间计算的查询处理成本。
  • 以用户的CPU时间计算的结果验证成本。
  • SP传输给用户的VO的大小。

时间窗口查询

  • 查询处理开销(SP CPU时间)

  • both和intra在SP CPU时间的性能相比nil显著提高了,both在SP CPU时间上比intra差

  • 查询验证开销(用户CPU时间)

  • both和intra在用户CPU时间的性能相比nil显著提高了

  • SP向用户传输的VO大小

  • both和intra在SP向用户传输的VO大小的性能相比nil显著提高了

订阅查询

  • 查询处理开销(SP CPU时间)

  • IP树将SP的开销减少了至少50%。ETH数据集中的性能增益更为显著,这要归功于数据的稀疏分布。惰性方案中的SP CPU时间仅随着订阅周期的增加而呈次线性增加。

  • 查询验证开销(用户CPU时间)

  • 惰性方案比实时方案性能好得多。惰性方案中的用户 CPU时间仅随着订阅周期的增加而呈次线性增加

  • SP向用户传输的VO大小

  • 惰性方案中的VO大小仅随着订阅周期的增加而呈次线性增加

总结:本文的安全分析和实证研究验证了所提出技术的鲁棒性和实用性。

Q9 这篇论文到底有什么贡献?

答:本文中的贡献如下:

  • 这是第一个关于可验证查询处理的工作,它可以利用内置的ADS来实现区块链数据库的查询完整性。
  • 提出了一个新的vChain框架,以及一个新的ADS方案和两个索引结构,可以聚合块内和块间的数据记录,从而实现高效的查询处理和验证。
  • 开发了一种新的查询索引(倒置前缀树结构),可以同时处理大量的订阅查询。
  • 进行安全分析以及实证研究以验证所提出的技术,还解决了实际实施问题。

Q10 下一步呢?有什么工作可以继续深入?

答:有许多有趣的研究问题值得进一步研究,例如

  • 如何支持更复杂的分析查询;
  • 如何利用多核和众核等现代硬件来提升性能;
  • 如何解决查询处理中的隐私问题。