Show simple item record

dc.contributor.author
Steffen, Samuel
dc.contributor.supervisor
Vechev, Martin
dc.contributor.supervisor
Sergey, Ilya
dc.contributor.supervisor
Shi, Elaine
dc.date.accessioned
2022-12-23T09:50:22Z
dc.date.available
2022-12-23T09:04:30Z
dc.date.available
2022-12-23T09:50:22Z
dc.date.issued
2022
dc.identifier.uri
http://hdl.handle.net/20.500.11850/589000
dc.identifier.doi
10.3929/ethz-b-000589000
dc.description.abstract
In distributed ledgers (often called blockchains), a globally distributed state is updated by a history of irrevocable transactions. Modern blockchains allow programming these updates with custom logic using so-called smart contracts, which enables realizing decentralized applications without requiring a trusted third party. Typically, the data stored and processed on programmable blockchains is public, which prevents applications handling sensitive data from being ported to smart contracts. In this thesis, we investigate how to ensure privacy for general smart contracts. While many works on private cryptocurrency transfers exist, the few proposals targeting general smart contracts suffer from various limitations and often require developers to instantiate advanced cryptographic primitives. In contrast, we adopt a programming language approach and design three systems usable by developers without cryptographic expertise. First, we introduce the zkay language and compiler, which hide the data involved in smart contracts using encryption and non-interactive zero-knowledge (NIZK) proofs. The zkay language features a privacy type system allowing developers to express data ownership and preventing implicit information leaks. Our compiler automatically compiles zkay contracts to contracts executable on the popular Ethereum blockchain. In our second system ZeeStar, we extend zkay to support computations on unknown private data---an essential feature required to implement important applications such as confidential payments. To this end, we modify zkay's type system and extend its compiler to instantiate additively homomorphic encryption. Third, we explore how to not only hide the data but also the parties involved in a transaction. Specifically, we introduce the Zapper system, which hides the accessed objects and the identities of its users using a combination of Merkle hash trees, key-private encryption, and NIZK proofs. Zapper contracts are compiled to a custom assembly language, which is subject to an access control mechanism and executed on a NIZK processor. For each system, we provide a proof demonstrating that it respects a well-defined notion of privacy. We implement all systems, relying on advanced techniques including elliptic curve embedding to achieve practical performance when combining cryptographic primitives. Finally, we demonstrate the systems' versatility and efficiency on a variety of example contracts.
en_US
dc.format
application/pdf
en_US
dc.language.iso
en
en_US
dc.publisher
ETH Zurich
en_US
dc.rights.uri
http://rightsstatements.org/page/InC-NC/1.0/
dc.title
A Programming Language Approach to Smart Contract Privacy
en_US
dc.type
Doctoral Thesis
dc.rights.license
In Copyright - Non-Commercial Use Permitted
dc.date.published
2022-12-23
ethz.size
195 p.
en_US
ethz.code.ddc
DDC - DDC::0 - Computer science, information & general works::004 - Data processing, computer science
en_US
ethz.identifier.diss
28962
en_US
ethz.publication.place
Zurich
en_US
ethz.publication.status
published
en_US
ethz.leitzahl
ETH Zürich::00002 - ETH Zürich::00012 - Lehre und Forschung::00007 - Departemente::02150 - Dep. Informatik / Dep. of Computer Science::02664 - Inst. f. Programmiersprachen u. -systeme / Inst. Programming Languages and Systems::03948 - Vechev, Martin / Vechev, Martin
en_US
ethz.leitzahl
ETH Zürich::00002 - ETH Zürich::00012 - Lehre und Forschung::00007 - Departemente::02150 - Dep. Informatik / Dep. of Computer Science::02664 - Inst. f. Programmiersprachen u. -systeme / Inst. Programming Languages and Systems::03948 - Vechev, Martin / Vechev, Martin
ethz.leitzahl.certified
ETH Zürich::00002 - ETH Zürich::00012 - Lehre und Forschung::00007 - Departemente::02150 - Dep. Informatik / Dep. of Computer Science::02664 - Inst. f. Programmiersprachen u. -systeme / Inst. Programming Languages and Systems::03948 - Vechev, Martin / Vechev, Martin
en_US
ethz.date.deposited
2022-12-23T09:04:30Z
ethz.source
FORM
ethz.eth
yes
en_US
ethz.availability
Open access
en_US
ethz.rosetta.installDate
2022-12-23T09:50:23Z
ethz.rosetta.lastUpdated
2024-02-02T19:13:21Z
ethz.rosetta.versionExported
true
ethz.COinS
ctx_ver=Z39.88-2004&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.atitle=A%20Programming%20Language%20Approach%20to%20Smart%20Contract%20Privacy&rft.date=2022&rft.au=Steffen,%20Samuel&rft.genre=unknown&rft.btitle=A%20Programming%20Language%20Approach%20to%20Smart%20Contract%20Privacy
 Search print copy at ETH Library

Files in this item

Thumbnail

Publication type

Show simple item record