  Searchable symmetric encryption (SSE) allows the data owner to outsource an
encrypted database to a remote server in a private manner while maintaining the
ability for selectively search. So far, most existing solutions focus on an
honest-but-curious server, while security designs against a malicious server
have not drawn enough attention. A few recent works have attempted to construct
verifiable SSE that enables the data owner to verify the integrity of search
results. Nevertheless, these verification mechanisms are highly dependent on
specific SSE schemes, and fail to support complex queries. A general
verification mechanism is desired that can be applied to all SSE schemes.
  In this work, instead of concentrating on a central server, we explore the
potential of the smart contract, an emerging blockchain-based decentralized
technology, and construct decentralized SSE schemes where the data owner can
receive correct search results with assurance without worrying about potential
wrongdoings of a malicious server. We study both public and private blockchain
environments and propose two designs with a trade-off between security and
efficiency. To better support practical applications, the multi-user setting of
SSE is further investigated where the data owner allows authenticated users to
search keywords in shared documents. We implement prototypes of our two designs
and present experiments and evaluations to demonstrate the practicability of
our decentralized SSE schemes.
