Bringing Decentralized Search to Decentralized Services

This paper addresses a key missing piece in the current ecosystem of decentralized services and blockchain apps: the lack of decentralized, verifiable, and private search. Existing decentralized systems like Steemit, OpenBazaar, and the growing number of blockchain apps provide alternatives to existing services. And yet, they continue to rely on centralized search engines and indexers to help users access the content they seek and navigate the apps. Such centralized engines are in a perfect position to censor content and violate users’ privacy, undermining some of the key tenets behind decentralization. To remedy this, we introduce DESEARCH, the first decentralized search engine that guarantees the integrity and privacy of search results for decentralized services and blockchain apps. DESEARCH uses trusted hardware to build a network of workers that execute a pipeline of small search engine tasks (crawl, index, aggregate, rank, query). DESEARCH then introduces a witness mechanism to make sure the completed tasks can be reused across different pipelines, and to make the final search results verifiable by end users. We implement DESEARCH for two existing decentralized services that handle over 80 million records and 240 GBs of data, and show that DESEARCH can scale horizontally with the number of workers and can process 128 million search queries per day.

[1]  Ion Stoica,et al.  DORY: An Encrypted Search System with Distributed Trust , 2020, IACR Cryptol. ePrint Arch..

[2]  Daniel Davis Wood,et al.  ETHEREUM: A SECURE DECENTRALISED GENERALISED TRANSACTION LEDGER , 2014 .

[3]  Silvio Micali,et al.  Algorand: Scaling Byzantine Agreements for Cryptocurrencies , 2017, IACR Cryptol. ePrint Arch..

[4]  Guo Li,et al.  KungFu: Making Training in Distributed Machine Learning Adaptive , 2020, OSDI.

[5]  Emin Gün Sirer,et al.  Teechain: a secure payment network with asynchronous blockchain access , 2017, SOSP.

[6]  Kyungtae Kim,et al.  OBLIVIATE: A Data Oblivious Filesystem for Intel SGX , 2018, NDSS.

[7]  Fan Zhang,et al.  Town Crier: An Authenticated Data Feed for Smart Contracts , 2016, CCS.

[8]  Benjamin Braun,et al.  Verifying computations with state , 2013, IACR Cryptol. ePrint Arch..

[9]  Srinath T. V. Setty,et al.  Depot: Cloud Storage with Minimal Trust , 2010, TOCS.

[10]  Valerio Schiavoni,et al.  X-search: revisiting private web search using intel SGX , 2017, Middleware.

[11]  Miguel Oom Temudo de Castro,et al.  Practical Byzantine fault tolerance , 1999, OSDI '99.

[12]  Mark Silberstein,et al.  Eleos: ExitLess OS Services for SGX Enclaves , 2017, EuroSys.

[13]  Andrew Chi-Chih Yao,et al.  Protocols for secure computations , 1982, FOCS 1982.

[14]  Elaine Shi,et al.  Circuit ORAM: On Tightness of the Goldreich-Ostrovsky Lower Bound , 2015, IACR Cryptol. ePrint Arch..

[15]  Fan Zhang,et al.  Ekiden: A Platform for Confidentiality-Preserving, Trustworthy, and Performant Smart Contracts , 2018, 2019 IEEE European Symposium on Security and Privacy (EuroS&P).

[16]  Úlfar Erlingsson,et al.  Prochlo: Strong Privacy for Analytics in the Crowd , 2017, SOSP.

[17]  Marcus Peinado,et al.  Inferring Fine-grained Control Flow Inside SGX Enclaves with Branch Shadowing , 2016, USENIX Security Symposium.

[18]  David Cash,et al.  Leakage-Abuse Attacks Against Searchable Encryption , 2015, IACR Cryptol. ePrint Arch..

[19]  Rüdiger Kapitza,et al.  CYCLOSA: Decentralizing Private Web Search through SGX-Based Browser Extensions , 2018, 2018 IEEE 38th International Conference on Distributed Computing Systems (ICDCS).

[20]  Yuan Xiao,et al.  SgxPectre Attacks: Leaking Enclave Secrets via Speculative Execution , 2018, ArXiv.

[21]  Murat Kantarcioglu,et al.  SGX-IR: Secure Information Retrieval with Trusted Processors , 2020, DBSec.

[22]  Rishabh Poddar,et al.  Oblix: An Efficient Oblivious Search Index , 2018, 2018 IEEE Symposium on Security and Privacy (SP).

[23]  Ion Stoica,et al.  Opaque: An Oblivious and Encrypted Distributed Analytics Platform , 2017, NSDI.

[24]  David R. Karger,et al.  Chord: A scalable peer-to-peer lookup service for internet applications , 2001, SIGCOMM '01.

[25]  Jianliang Xu,et al.  vChain: Enabling Verifiable Boolean Range Queries over Blockchain Databases , 2018, SIGMOD Conference.

[26]  Hovav Shacham,et al.  Iago attacks: why the system call API is a bad untrusted RPC interface , 2013, ASPLOS '13.

[27]  Rüdiger Kapitza,et al.  Trust more, serverless , 2019, SYSTOR.

[28]  Yiwei Thomas Hou,et al.  REARGUARD: Secure Keyword Search Using Trusted Hardware , 2018, IEEE INFOCOM 2018 - IEEE Conference on Computer Communications.

[29]  David Mazières,et al.  Kademlia: A Peer-to-Peer Information System Based on the XOR Metric , 2002, IPTPS.

[30]  Christof Fetzer,et al.  CoSMIX: A Compiler-based System for Secure Memory Instrumentation and Execution in Enclaves , 2019, USENIX ATC.

[31]  Alexander Aiken,et al.  TASO: optimizing deep learning computation with automatic generation of graph substitutions , 2019, SOSP.

[32]  Dennis Shasha,et al.  Secure Untrusted Data Repository (SUNDR) , 2004, OSDI.

[33]  Flavio D. Garcia,et al.  Plundervolt: Software-based Fault Injection Attacks against Intel SGX , 2020, 2020 IEEE Symposium on Security and Privacy (SP).

[34]  Ghassan O. Karame,et al.  BITE: Bitcoin Lightweight Client Privacy using Trusted Execution , 2018, IACR Cryptol. ePrint Arch..

[35]  Craig Gentry,et al.  Pinocchio: Nearly Practical Verifiable Computation , 2013, 2013 IEEE Symposium on Security and Privacy.

[36]  Emmett Witchel,et al.  Ryoan: A Distributed Sandbox for Untrusted Computation on Secret Data , 2016, OSDI.

[37]  Jianliang Xu,et al.  GEM^2-Tree: A Gas-Efficient Structure for Authenticated Range Queries in Blockchain , 2019, 2019 IEEE 35th International Conference on Data Engineering (ICDE).

[38]  Mengyuan Li,et al.  Exploiting Unprotected I/O Operations in AMD's Secure Encrypted Virtualization , 2019, USENIX Security Symposium.

[39]  Berk Sunar,et al.  LVI: Hijacking Transient Execution through Microarchitectural Load Value Injection , 2020, 2020 IEEE Symposium on Security and Privacy (SP).

[40]  Hari Balakrishnan,et al.  CryptDB: protecting confidentiality with encrypted query processing , 2011, SOSP.

[41]  Christos Gkantsidis,et al.  VC3: Trustworthy Data Analytics in the Cloud Using SGX , 2015, 2015 IEEE Symposium on Security and Privacy.

[42]  David M. Eyers,et al.  SCONE: Secure Linux Containers with Intel SGX , 2016, OSDI.

[43]  Azer Bestavros,et al.  Conclave: secure multi-party computation on big data , 2019, EuroSys.

[44]  Miguel Correia,et al.  DepSky: Dependable and Secure Storage in a Cloud-of-Clouds , 2013, TOS.

[45]  Marie-Sarah Lacharité,et al.  Pancake: Frequency Smoothing for Encrypted Data Stores , 2020, USENIX Security Symposium.

[46]  Satoshi Nakamoto Bitcoin : A Peer-to-Peer Electronic Cash System , 2009 .

[47]  Christopher W. Fletcher,et al.  ZeroTrace : Oblivious Memory Primitives from Intel SGX , 2018, NDSS.

[48]  Ion Stoica,et al.  Oblivious coopetitive analytics using hardware enclaves , 2020, EuroSys.

[49]  Rüdiger Kapitza,et al.  Telling Your Secrets without Page Faults: Stealthy Page Table-Based Attacks on Enclaved Execution , 2017, USENIX Security Symposium.

[50]  Bryan Ford,et al.  Rethinking General-Purpose Decentralized Computing , 2019, HotOS.

[51]  Srdjan Capkun,et al.  DelegaTEE: Brokered Delegation Using Trusted Execution Environments , 2018, IACR Cryptol. ePrint Arch..

[52]  Kapil Vaswani,et al.  EnclaveDB: A Secure Database Using SGX , 2018, 2018 IEEE Symposium on Security and Privacy (SP).

[53]  Jonathan Lee,et al.  Proving the correct execution of concurrent services in zero-knowledge , 2018, IACR Cryptol. ePrint Arch..

[54]  Thomas F. Wenisch,et al.  Foreshadow: Extracting the Keys to the Intel SGX Kingdom with Transient Out-of-Order Execution , 2018, USENIX Security Symposium.

[55]  Karthikeyan Bhargavan,et al.  HACL*: A Verified Modern Cryptographic Library , 2017, CCS.

[56]  Craig Gentry,et al.  A fully homomorphic encryption scheme , 2009 .

[57]  Christof Fetzer,et al.  SGX-PySpark: Secure Distributed Data Analytics , 2019, WWW.

[58]  S. Lokam,et al.  Blockene: A High-throughput Blockchain Over Mobile Devices , 2020, OSDI.

[59]  Beng Chin Ooi,et al.  M2R: Enabling Stronger Privacy in MapReduce Computation , 2015, USENIX Security Symposium.

[60]  Bobby Bhattacharjee,et al.  Persona: an online social network with user-defined privacy , 2009, SIGCOMM '09.

[61]  Marcus Peinado,et al.  Controlled-Channel Attacks: Deterministic Side Channels for Untrusted Operating Systems , 2015, 2015 IEEE Symposium on Security and Privacy.

[62]  Mihir Bellare,et al.  A New Paradigm for Collision-Free Hashing: Incrementality at Reduced Cost , 1997, EUROCRYPT.

[63]  Christof Fetzer,et al.  Clemmys: towards secure remote execution in FaaS , 2019, SYSTOR.

[64]  N. Asokan,et al.  S-FaaS: Trustworthy and Accountable Function-as-a-Service using Intel SGX , 2018, CCSW@CCS.

[65]  Philipp Jovanovic,et al.  OmniLedger: A Secure, Scale-Out, Decentralized Ledger via Sharding , 2018, 2018 IEEE Symposium on Security and Privacy (SP).