From 59534e535181fe029da6289663b5f969a9555a46 Mon Sep 17 00:00:00 2001 From: Mike Hearn Date: Fri, 20 Dec 2019 13:14:03 +0100 Subject: [PATCH] Add a paper on zero knowledge proof integration into Corda. --- docs/source/whitepaper/corda-zkp.bib | 89 ++++ docs/source/whitepaper/corda-zkp.pdf | Bin 0 -> 209544 bytes docs/source/whitepaper/corda-zkp.tex | 670 +++++++++++++++++++++++++++ 3 files changed, 759 insertions(+) create mode 100644 docs/source/whitepaper/corda-zkp.bib create mode 100644 docs/source/whitepaper/corda-zkp.pdf create mode 100644 docs/source/whitepaper/corda-zkp.tex diff --git a/docs/source/whitepaper/corda-zkp.bib b/docs/source/whitepaper/corda-zkp.bib new file mode 100644 index 0000000000..13d3c1ae1d --- /dev/null +++ b/docs/source/whitepaper/corda-zkp.bib @@ -0,0 +1,89 @@ +@inproceedings{Stadler:2014:PEA:2581122.2544157, + author = {Stadler, Lukas and W\"{u}rthinger, Thomas and M\"{o}ssenb\"{o}ck, Hanspeter}, + title = {Partial Escape Analysis and Scalar Replacement for Java}, + booktitle = {Proceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization}, + series = {CGO '14}, + year = {2014}, + isbn = {978-1-4503-2670-4}, + location = {Orlando, FL, USA}, + pages = {165:165--165:174}, + articleno = {165}, + numpages = {10}, + url = {http://doi.acm.org/10.1145/2581122.2544157}, + doi = {10.1145/2581122.2544157}, + acmid = {2544157}, + publisher = {ACM}, + address = {New York, NY, USA}, + keywords = {escape analysis, intermediate representation, java, just-in-time compilation, speculative optimization, virtual machine}, +} + +@inproceedings{costello2015geppetto, + title={Geppetto: Versatile verifiable computation}, + author={Costello, Craig and Fournet, C{\'e}dric and Howell, Jon and Kohlweiss, Markulf and Kreuter, Benjamin and Naehrig, Michael and Parno, Bryan and Zahur, Samee}, + booktitle={2015 IEEE Symposium on Security and Privacy}, + pages={253--270}, + year={2015}, + organization={IEEE} +} + +@misc{cryptoeprint:2019:099, + author = {Mary Maller and Sean Bowe and Markulf Kohlweiss and Sarah Meiklejohn}, + title = {Sonic: Zero-Knowledge SNARKs from Linear-Size Universal and Updateable Structured Reference Strings}, + howpublished = {Cryptology ePrint Archive, Report 2019/099}, + year = {2019}, + note = {\url{https://eprint.iacr.org/2019/099}}, +} + +@misc{cryptoeprint:2019:601, + author = {Ariel Gabizon}, + title = {AuroraLight: Improved prover efficiency and SRS size in a Sonic-like system}, + howpublished = {Cryptology ePrint Archive, Report 2019/601}, + year = {2019}, + note = {\url{https://eprint.iacr.org/2019/601}}, +} + +@inproceedings{bellare2004knowledge, + title={The knowledge-of-exponent assumptions and 3-round zero-knowledge protocols}, + author={Bellare, Mihir and Palacio, Adriana}, + booktitle={Annual International Cryptology Conference}, + pages={273--289}, + year={2004}, + organization={Springer} +} + +@inproceedings{groth2016, + title={On the size of pairing-based non-interactive arguments}, + author={Groth, Jens}, + booktitle={Annual International Conference on the Theory and Applications of Cryptographic Techniques}, + pages={305--326}, + year={2016}, + organization={Springer} +} + +@article{koblitz2010brave, + title={The brave new world of bodacious assumptions in cryptography}, + author={Koblitz, Neal and Menezes, Alfred}, + journal={Notices of the American Mathematical Society}, + volume={57}, + number={3}, + pages={357--365}, + year={2010} +} + +@inproceedings{Duboscq:2013:IRS:2542142.2542143, + author = {Duboscq, Gilles and W\"{u}rthinger, Thomas and Stadler, Lukas and Wimmer, Christian and Simon, Doug and M\"{o}ssenb\"{o}ck, Hanspeter}, + title = {An Intermediate Representation for Speculative Optimizations in a Dynamic Compiler}, + booktitle = {Proceedings of the 7th ACM Workshop on Virtual Machines and Intermediate Languages}, + series = {VMIL '13}, + year = {2013}, + isbn = {978-1-4503-2601-8}, + location = {Indianapolis, Indiana, USA}, + pages = {1--10}, + numpages = {10}, + url = {http://doi.acm.org/10.1145/2542142.2542143}, + doi = {10.1145/2542142.2542143}, + acmid = {2542143}, + publisher = {ACM}, + address = {New York, NY, USA}, + keywords = {intermediate representation, java virtual machine, just-in-time compilation, speculative optimization}, +} \ No newline at end of file diff --git a/docs/source/whitepaper/corda-zkp.pdf b/docs/source/whitepaper/corda-zkp.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d6fe2381fb0c6c2529f06ceb1fb7c26e1c11e88d GIT binary patch literal 209544 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 literal 0 HcmV?d00001 diff --git a/docs/source/whitepaper/corda-zkp.tex b/docs/source/whitepaper/corda-zkp.tex new file mode 100644 index 0000000000..7aeab6574c --- /dev/null +++ b/docs/source/whitepaper/corda-zkp.tex @@ -0,0 +1,670 @@ +\documentclass{article} +\author{Mike Hearn \\ \href{mailto:mike@r3.com}{mike@r3.com}} +\date{\today} +\title{Corda and Zero Knowledge Proofs} +\usepackage{amsfonts} +\usepackage{minted} +\usepackage{listings} +\usemintedstyle{vs} +\newminted{kotlin}{% +breakbytoken,% +breaklines,% +autogobble,% +frame=lines,% +framesep=2\fboxsep,% +fontsize=\footnotesize% +} +\usepackage{color} +\usepackage{epigraph} +\usepackage{graphicx} +\graphicspath{ {images/} } +\usepackage[export]{adjustbox} +\usepackage{float} +\usepackage{hyperref} + +% Get rid of ugly boxes around clickable links +\usepackage{xcolor} +\hypersetup{ +colorlinks, +linkcolor={blue!50!black}, +citecolor={blue!50!black}, +urlcolor={blue!80!black} +} + +\usepackage[super,comma,sort&compress]{natbib} +\usepackage[nottoc]{tocbibind} +\usepackage[parfill]{parskip} +\usepackage{textcomp} +\usepackage{scrextend} +\usepackage{cleveref} +\usepackage{csquotes} +\crefformat{section}{\S#2#1#3} +\addtokomafont{labelinglabel}{\sffamily} +%\usepackage[natbibapa]{apacite} +\renewcommand{\thefootnote}{\alph{footnote}} +%\epigraphfontsize{\small\itshape} +\setlength\epigraphwidth{4.5cm} +\setlength\epigraphrule{0pt} + +\begin{document} + +\maketitle +\begin{center} +Draft +\end{center} + +\vspace{10mm} + +\begin{abstract} + +Integration of cryptographic zero knowledge proofs with Corda would allow peers to be +convinced of the validity of transactions and thus the contents of the ledger, without revealing the transactions +themselves. This privacy upgrade would be highly worthwhile but obtaining a production-grade +integration of zero knowledge proofs requires solving several research-grade problems first. This short +white paper examines the challenges involved in bringing such a feature to launch, proposes some potential +solutions and compares the approach with one based on utilising secure hardware enclaves. + +\end{abstract} +\vfill + +\newpage +\tableofcontents +\newpage +\section{Introduction} + +\paragraph{Zero knowledge proofs.}Algorithms for the creation of \emph{succinct arguments of knowledge} without +revealing private inputs (ZKP algorithms) are an active research area, with advances being published in the +literature at a rapid pace. Their appeal for blockchain/distributed ledgers is that they can convince +users of the correctness of the data in the ledger, whilst hiding the evidence that would otherwise be demanded. +\emph{Correctness} in this context means that all database constraints have been enforced. In blockchains this +is typically done via so-called `smart contract' logic and may be responsible for simple rules +like users being forbidden from creating money out of thin air, and also much more complex business rules +governing inter-firm business dealings, such as distributing the insurance risk of a large contract +portfolio over many intermediate reinsurers. + +In this paper ``ZKP'' refers to algorithms which prove arbitrary arithmetic circuits, and which yield reasonably +small proofs. The term can also refer to use-case specific algorithms (such as the CT algorithms in Bitcoin) or +remote attestations from hardware enclaves, but in this paper we always mean techniques like Groth16 SNARKs\cite{groth2016} +or Bulletproofs. + +\paragraph{Corda.}Corda is a production-grade decentralised database that powers some of the world's largest +enterprise blockchain deployments. As a motivating example, the Marco Polo project is a peer-to-peer +trade finance network with over 30 participating organisations, and there are hundreds of other Corda business +networks being developed or going live at the moment. + +Due to the size and rapid growth of the ecosystem, techniques for applying ZKPs to entire classes of Corda +applications simultaneously would have large business and social impact. On the other hand, individual per-app +`ad-hoc' techniques are less attractive, as a typical business software development team does not have any +experience with advanced cryptography, nor do they want to learn it. A large part of what makes Corda useful is that +it packages advanced cryptographic, peer-to-peer and blockchain technologies in a way that Java-speaking domain +specialists find approachable. In Corda even tokens are just an app like any other: there is no native +currency or coin. This is to allow a wide variety of token approaches to be developed by the community, for +instance, tokens representing different kinds of assets, interest bearing or non interest bearing and so on. + +For that reason this paper will take as given that any integration of ZKPs into Corda will happen at the platform +level and be as transparent as possible to application developers. Although complete transparency is not required, +approaches that would imply very large developer retraining or app rewrites are not considered. + +Although this paper focuses on Corda we believe the same issues and challenges would apply to any enterprise-grade DLT. + +\paragraph{Hardware enclaves.}Corda's current strategy for upgrading privacy is to execute contract logic inside +Intel SGX\texttrademark~enclaves, by embedding a small JVM inside it and running bytecode processed and sandboxed +by a determinism rewrite pass. This yields a standard programming model and only small levels of performance loss, +as well as supporting renewability in case of compromise (see~\cref{subsec:how-to-recover-trust-after-failure}). So +why plan to go beyond that and integrate cryptographic zero knowledge proofs? + +The essential driver is that as a hardware based scheme, by design SGX cannot protect data against invasive +hardware-level attacks. An adversary capable of decapping a chip and extracting a CPU specific key using a scanning +electron microscope can defeat SGX security in ways that cannot be fixed (beyond simply making newer chips more +physically tamperproof). + +The extremely small transistor sizes used in modern chips combined with SGX-specific physical circuit obfuscation +means this sort of attack is considered very difficult for any non-government level adversary, and has yet to be +demonstrated in public. Corda explicitly excludes well funded governments from its threat model because its users +are typically under the jurisdiction of those governments anyway, so this level of (end-game) security is good +enough. The history of prior secure hardware efforts in smartcard and games console security also provide a lot of +information on how the threat landscape is likely to evolve. However, physical attacks get steadily cheaper with +time. Standard cryptographic problems have shown impressive long term resistance to being solved. A proof tactic +based on well studied problems of known hardness would therefore be highly desirable (but +see~\cref{subsec:switching-to-standard-hardness-assumptions} for discussion of the significant caveats hiding +behind this statement). As a secondary consideration, reliance only on ordinary arithmetic would insulate the +platform from vendor roadmap changes. + +\section{Intended audience} + +This version of the paper assumes an understanding of modern zero knowledge proof technology at a high level, some +compiler theory and how Corda itself is designed. Future versions may provide further explanatory information. + +\section{Challenges to be solved} + +To bring ZKPs to production in Corda there are many challenges which need to be solved. They can be categorised +as either technical or social. + +Technical challenges include: + +\begin{enumerate} + \item Building a JVM bytecode arithmetising compiler. + \item Just-in-time circuit generation. + \item Building and updating a common reference string. + \item Building key management infrastructure. + \item Solving limits on recursive proof composition. + \item Incremental rollout into live systems. +\end{enumerate} + +Social challenges include: + +\begin{enumerate} + \item Standardising circuit-friendly cryptographic algorithms through industry accepted forums. + \item Algorithmic agility: establishing a process for evaluating and migrating to new algorithms. + \item Building trust in stable algorithms. + \item Switching to `standard' hardness assumptions. + \item How to recover trust in the ledger after algorithmic or implementation failures. +\end{enumerate} + +Each challenge will be briefly described in one section. + +\subsection{Bytecode arithmetisation} + +\subsubsection{Overview} + +ZKP algorithms typically require the statement being proved (the program) to be encoded as +an arithmetic circuit: a collection of addition and multiplication `gates' analogous to an electronic circuit. +If x and y are in \{0, 1\} then boolean logic can be expressed this way: + +\begin{lstlisting} +NOT(x): 1 - x +AND(x, y): x * y +OR(x, y): x + y - (x * y) +XOR(x, y): x + y - 2(x * y) +\end{lstlisting} + +Due to the functional completeness of NAND gates this is sufficient to express any pure function, although there +are often more efficient ways to encode things than using binary logic. + +Corda applications express rules for relational integrity using JVM bytecode. Database entries (called `states') +contain constraints over what class files are acceptable, thus allowing a form of code upgrade. Any JAR file (zip) +containing Java bytecode which satisfies the constraints of all states read or written from transaction may be +attached to that transaction. The state contains the name of a class in that JAR file at which execution begins. + +The platform first performs a static analysis and rewrite pass to enforce fully deterministic execution on the code +to be executed, which includes imposing Ethereum-style opcode quotas, blocking access to sources of non-determinism +like clocks, and preventing various tricks that may try to break out of the sandbox. Then a method on the contract +code is executed with a deserialized object graph representing the transaction. If the method runs to +completion the transaction is deemed acceptable, if it throws an exception the transaction is considered invalid. +Thus a Corda smart contract is a pure function. + +Corda uses a subset of Java bytecode and not something more restrictive because data update rules in real business +applications are often complex. A typical mid-tier server in a centralised web app is responsible for enforcing +data validation rules that are frequently too difficult for even SQL driven RDBMS engines to handle, but in a +decentralised and peer to peer system there is no trusted mid-tier to enforce data integrity. Corda users fully +exploit this capability and frequently do things like big integer maths, string manipulation (e.g. to check IBANs), +compare large object graphs and other tasks that demand the full power of an industrial +strength language. Of course this design is far from unique: blockchain systems have included bytecode interpreters +of varying strengths since Bitcoin 0.1. + +All existing integrations of ZKP with blockchain platforms require experts to hand-craft circuits for the +business logic of the application. The flagship ZKP-integrated ledger is arguably ZCash, which doesn't support +smart contract logic for private tokens at all. Artisanal circuitry on a per-app basis is unworkable for Corda +given the very large number of apps available for the platform, the complexity of the business logic they +implement and the tight budgets with which they're developed. + +For this reason we need a way to translate JVM bytecode to arithmetic circuit form automatically. + +\subsubsection{Constraint compiler} + +Circuit form has many limitations and requirements that make such a transformation difficult. Nonetheless, it can +be done and compilers for other languages have been built before. Thus in some ways this is actually one of the +easier challenges to solve: it's just a matter of engineering. + +To convert bytecode to circuit form (and from there to polynomial constraints) a process similar to just-in-time +compilation can be used. The following description assumes some familiarity with sea-of-nodes intermediate +representations used by compilers like Graal and HotSpot C2 work. The reader is referred to Dubosq et al, +\emph{`An Intermediate Representation for Speculative Optimizations in a Dynamic Compiler'}~\cite{Duboscq:2013:IRS:2542142.2542143} +for an introduction. + +The following conversion algorithm is conjectured but gives a flavour of what would be required: + +\begin{enumerate} + + \item The program is processed by the deterministic Java rewrite subsystem outlined above. Amongst many + other things, this ensures the code that follows will not be multi-threaded. + + \item The program is converted to \emph{static single assignment} form, in which all variables are assigned + only once. In places where the program requires a variable be overwritten, e.g. a loop counter, special + \emph{phi} nodes are inserted that act as a switch. + + \item Program inputs (e.g.\ arguments to the translated method) are mapped to variables at the start of + the method and their positions recorded. These will be attached to `input wires' of the resulting + circuit. Reference inputs are replaced with allocations of the corresponding object type (but constructors + calls are not emitted), and an additional wire representing whether the input was null. + + \item All method call sites are either devirtualised completely or replaced with an exhaustive polymorphic + inline cache, and then recursively inlined. Zero knowledge proofs have no notion of dynamic program loading, + so, this kind of transformation under the closed-world assumption is possible. Calls to some special methods + that have efficient pre-written circuit translations (`gadgets') are substituted, as is done with compiler + intrinsics. We now have a graph of nodes. The graph now represents the entire program, with no method calls + remaining. + + \item Escape analysis is run over the program graph. As there are no threads and the entire program graph is + visible due to exhaustive inlining, no allocations should escape and thus all should become eligible for scalar + replacement. Scalar replacement decomposes object allocations to a set of individual variables for each field. + A description of both optimisations is provided by Stadler et al\cite{Stadler:2014:PEA:2581122.2544157}. In cases + where a reference variable mapped as an input is scalar replaced, all the scalars are also mapped to input + wires recursively. In this way the object graph passed to the program is converted into an array of + group elements (integers modulo the order of the finite field of the circuit). + + \item Due to the exhaustive scalar replacement performed in the prior step, all variables in the program are + now primitive types or arrays of primitive types. Range analysis is done over all variables to establish + integer range constraints. Statically inferred bounds may potentially be combined with profiling data and + developer annotations to sharpen the ranges. Array bounds must likewise be inferred or provided by the + developer, allowing arrays to be replaced with sets of individual variables representing each slot. This + is likely to require a fairly sophisticated propagation pass so that e.g. bounds on the internal arrays + used to encode \texttt{BigInteger} objects make it through the encapsulating objects. + + \item Control flow is now progressively eliminated, such that every arm of a branch is executed and the + corresponding phi nodes are replaced with selector constraints. Circuit form has no notion of control flow, so + all loops are unrolled or exploded up to their statically determined bounds. Any loop induction variables that + could not have range constraints inferred during the prior step trigger an error and the developer is requested + to provide a `reasonable' bound, as a bound of the maximum range of an integer would yield impractical + circuit sizes. + + \item The prior steps may individually not always succeed, as they can depend on each other to be fully + effective. Thus the process is repeated until a fixpoint is reached. If any control flow or allocation + nodes still exist at this point, the program could not be reduced to a circuit and an error is signalled. + +\end{enumerate} + +At the end of this process the program should be in a form only slightly higher level than an arithmetic circuit +and can be progressively lowered via a sequence of passes until the final circuit is obtained. The circuit can then +in turn be converted to a rank-1 constraint system (R1CS form), which acts as the input to the next step of the +proving pipeline. + +\subsubsection{Implementation in an open source compiler} + +The Graal compiler infrastructure contains some of the transformation passes described above, along with many other +production-grade program optimisations. It natively represents programs in SSA form and so it would be most +appropriate to adapt it. Unfortunately, some enhancements would be required to enable the rather unusual transforms +required: + +\begin{enumerate} + \item Loading arrays with non-constant indexes triggers materialization of the array, i.e.\ scalar replacement + will fail. Fixing this requires implementing stack allocation of arrays or some ZKP specific transform. + \item Objects are materialized if their type is checked. + \item Objects are materialized if a control flow merge joins two separate types. +\end{enumerate} + +Additional code would need to be developed to avoid object materialization in these cases. + +Optimisation of the compiler itself may also be required, in case some of the transformations don't scale to the +large IR graphs involved. + +\subsection{Just-in-time circuit generation} + +The variety of smart contracts Corda accepts is larger than practically deployable with any current ZKP algorithms. +This is for several reasons: + +\begin{itemize} + + \item[Performance] ZKP algorithms prove programs many orders of magnitude more slowly than normal code + execution. Simple programs may frequently require 30--60 seconds to prove on powerful hardware, and more + realistic programs can take hours. + + \item[Compatibility] Due to the complexity of the arithmetisation transform, some programs will + not be automatically translatable until the developer either provides additional hints or simplifies their + logic. + + \item[Range restrictions] Circuits require code topology and thus loop bounds to be known ahead of time. It may + often be difficult for developers to really know what their range constraints should be: for instance, + developers may find it hard to predict how many database objects a user may wish to combine into one + transaction. If they guess too large their circuit will grow dramatically and thus performance will suffer or + become impractical, but if they guess too small, some transactions will be unable to be proven with the + generated circuit. + +\end{itemize} + +All ZKP algorithms are sensitive to circuit size. If a circuit gets too large it may no longer fit in memory, may +start requiring compute clusters to work with, or simply have unusably poor performance. Additionally because +circuits require fixed control flow topology the size of a circuit corresponds to the maximum \emph{worst case} +execution and frequently cost of evaluating the circuit is also the worst case cost. For example, if a collection +could conceivably contain 10,000 elements, then the cost of looping over that collection is equal to just repeating +the code inside the loop 10,000 times. Some techniques such as the `energy saving' trick used in +Geppetto\cite{costello2015geppetto} can reduce the cost, but it's still very significant. For these reasons even +relatively simple business logic as used in ZCash can require a large circuit: the ZCash circuit contains around +$2^{17}$ multiplication gates alone, and more when addition gates are considered. + +Combined with the need for incremental deployment (\cref{subsec:incremental-deployment}) this suggests a form of +partial ZKP usage, in which transactions and programs that fit the constraints of the technology use it and those +that don't fall back to other techniques like secure hardware enclaves, or simply revealing the transaction data to +the peer. Circuits that fit certain `data shapes' could be created on the fly by the platform, based on real-world +profiling data. If a collection could conceivably contain 10,000 elements but normally contains only 3 (a realistic +example) then Corda would notice this and produce a smaller, more specialised circuit that can only handle up to +three elements. If a transaction is found that doesn't fit, a fallback to other techniques would be automatically +triggered. + +Just-in-time circuit generation is required for other reasons. Developers need fast +feedback loops when developing their app and adjusting their business logic. In some cases adjustments to business +logic may constitute an emergency situation, for instance, to comply with a sudden regulatory deadline or the +discovery of a serious bug. Additionally it is standard practice for developers to use continuous integration in +which business logic is stressed with many complex tests, and developers are likewise sensitive to the feedback +times from their CI systems. Exploding integration testing overheads or app deployment times is unacceptable. + +Finally, there are many different ZKP algorithms that represent different tradeoffs. For instance, Bulletproofs +doesn't require any trusted setup procedure (see~\cref{subsec:building-and-updating-a-common-reference-string}) +and makes relatively standard cryptographic hardness assumptions (see~\cref{subsec:switching-to-standard-hardness-assumptions}) +but doesn't scale as well as other algorithms that do. + +Thus it would be useful for the platform to profile transaction traffic to determine which data shapes and contract +logics are best paired with which algorithms (or not proven at all). This process would be controllable via +developer hinting and operator commands, to allow for testing of ZKP dependent codepaths. This is especially +important because it's common for Corda applications to distribute public or semi-public data, thus hiding these +transactions would be pure overhead with no actual increase in privacy. + +\subsection{Building and updating a common reference string}\label{subsec:building-and-updating-a-common-reference-string} + +Many ZKP algorithms require a \emph{common reference string} (CRS): a dataset generated from some randomly chosen values +and then published. The random values must be destroyed after usage as knowledge of them allows forgery of proofs. +This critical requirement poses problematic logistical issues. + +A recent line of work has developed algorithms like Sonic\cite{cryptoeprint:2019:099} and +AuroraLight\cite{cryptoeprint:2019:601}. In these zkSNARKs the CRS may be created by many parties working together. +The CRS is secure as long as \emph{at least one} contributor to the CRS is trustworthy. These breakthroughs +significantly enhance the practicality of deploying ZKP to production. + +There are some practical details still to manage. A CRS is only trustworthy if you can reason about the likelihood +of (complete) collaboration between the contributors. Being able to reason about this requires you to know the +identities of the contributors. In a totally open system this isn't possible as a CRS may have been created by many +Sybils of the same person. Corda networks (sometimes called `zones') require some form of identity to be issued to +nodes. Any form of identity can work including easily forged or stolen identities such as email addresses. However +in the global Corda network operated by \href{https://corda.network}{the Corda Network Foundation} a relatively +high standard of ID verification is used, in which company registrations are verified and the employment of the +correspondent agent with that company or organisation is checked. Whilst not reaching banking know-your-customer +standards this level of ID verification is good enough to allow users to conclude that at least some of the +contributions for any given CRS were legitimate (including for strings used in the past, when the group may have +been smaller). + +Some CRS constructions are either per-circuit or per-circuit-size (usually, up to a circuit size). This means that +there may be a desire to phase in new reference strings over time as hardware improves and larger circuit sizes +become practical. Signalling protocols will need to be developed, along with distribution infrastructure and +tooling. For instance, tools would be required so zone administrators can view the progress of building the new CRS +and as the CRS set in use is a consensus critical parameter, Corda's network rules consensus mechanism (called +\emph{network parameters}) would need to be extended so everyone can be brought into alignment on which strings +have had enough contributions to be considered trustworthy. + +Finally, it would make sense for nodes to automatically contribute entropy to the CRS building process, without +requiring administrator intervention. This would effectively shift questions of liability in case of problems to +the Corda developers, and avoid an extensive hearts-and-minds programme with node operators who may otherwise not +understand or want to take part in the process. + +\subsection{Key management}\label{subsec:key-management} + +Once a program is converted to a constraint system it is further processed into proving and verification +keys. These are analogous to the public and private keys in a conventional asymmetric cryptosystem, but both keys +are public. The proving key is combined with per-proof public (visible) and private data to generate the proof. +The generated proof is then combined with the public/visible data and the verification key to test whether the +statement represented by the circuit was true. Crucially, the verifier doesn't need the private data which is +what makes these algorithms zero knowledge. Public data may seem initially useless but in fact is required, +for instance, it will contain the ID of the transaction being verified so the verifier can know which +transaction was being proven. It will also often contain so-called `non-deterministic advice' generated +automatically by the proving process, as part of various optimisations. + +Whilst proofs may be very small in succinct schemes the proving and verification keys can get very large, as their +sizes are related to the size of the input circuits. Key sizes in the tens of gigabytes range are not unusual. + +\paragraph{Circuit shapes.}A Corda network may require many circuits to be in use simultaneously. This is partly +because Corda contracts can be upgraded and may call into each other, for example, a bond contract may require that +a payment of cash tokens is made atomically with an update of the bond's maturity data, the act of deciding how +large that payment is may itself require invocation of logic to lazily apply interest calculations to a token and +so on. As a consequence and because all logic an app invokes must be contained within the circuit for that app, +releasing a new version of a CorDapp may impact many different circuits including those generated for dependee +applications. Another reason for circuit churn may be upgrades to the proof infrastructure itself. If a new circuit +compiler or proving algorithm produces more efficient constraint systems then it may be worth regenerating proving +keys even in the absence of application logic changes. + +Although universal circuits are theoretically possible, they come with extremely large overheads that render them +of purely theoretical interest. It seems likely that custom per-shape circuits will be used for the forseeable future. + +All this implies that Corda nodes may frequently need to generate, transfer, store and load files of the sort that +are too large to practically fit inside the relational databases nodes use for storage today. Corda's current +protocol is optimised for transmission of small business messages. Thus a part of the upgrade work required +would be to: + +\begin{itemize} + + \item Add support for large file streaming between nodes, including prioritisation and backpressure management + to avoid causing unacceptable latency increases for sensitive business traffic during key transfers. + + \item Add support for local large file storage, possibly customisable for site-specific requirements. For + instance nodes running popular cloud services have access to cheap object stores, but on-premises nodes may + require additional support. + + \item Implement garbage collection of proving keys, so once a proving key has fallen out of use and only + verification remains the space may be reclaimed. Old verification keys may also stop being used with time, as + there is no equivalent to Bitcoin's reverification of the entire blockchain from scratch in Corda. In this case + such keys may be archived to cold storage using a service like Amazon Glacier. + + \item Upgrade node resource management to ensure that attempts to load large circuits for processing don't + overload a node. Most likely this means proving operations will be run in a separate microservice linked to the + node via its built-in message queue broker. The MQ broker also provides many features that can simplify various + operational aspects, such as load balancing, pushback, large file streaming and automatically dropping + proving requests when the proving services are under heavy load. This may trigger fallback to hardware + enclaves, for example. + + \item Define a data format that describes a \textbf{circuit shape}, suitable for use as a key in blob stores so + circuits satisfying particular combinations of app versions, infrastructures and algorithms can be looked + up and talked about on the wire. + +\end{itemize} + +Nodes must also be using the same keys, which leads to the question of who generates them. Ideally a node could +download a circuit and use it, but how can the node know the circuit was correctly generated? For at least some +deployments and algorithms this implies nodes must generate their own sets of keys from a described shape, and +those keys must all be compatible. To what extent ZKP algorithms make this easy is a topic for future research. + +\subsection{Limits on recursive proof composition} + +A common task for a prover is to prove that an input zero knowledge proof is valid. This need to recursively +compose proofs crops up in a variety of places, for instance: + +\begin{itemize} + \item It allows proofs to be modularised, and thus for proofs to ``call'' other proofs. This in turn can help + keep circuit sizes tractable. + \item It allows for the proof of a validity of a ledger transaction to incorporate the proofs of the transaction's + inputs, thus allowing a single proof to express the correctness of a transaction graph up to that point. As Corda + uses the UTXO model like Bitcoin this is a powerful way to compress the transaction graph and avoid leaking private + data through graph shapes. +\end{itemize} + +Whilst recursive proof composition is not strictly required for deployment into Corda, it would be nice to have. +This is because otherwise nodes must store the proof associated with each transaction ID, along with the inputs +of those transactions, and then transfer the graph of all the proofs to each peer. This is no problem +architecturally as it's essentially how Corda works today (albeit the `proof' is the full data of a transaction). +However composing proofs could improve Corda's scalability and performance properties, as well as making +incremental deployment more tractable (see below). + +Unfortunately current proof composition techniques have limited depth, that is, the deeper the chain of +proofs-of-proofs gets the weaker the security becomes. Resolving this problem would be beneficial to +deployment, but ultimately not required. + +\subsection{Incremental deployment}\label{subsec:incremental-deployment} + +Any ZKP integration into Corda will need to be usable in a partly deployed state. This is because synchronous +global upgrade of a live peer-to-peer network isn't possible. Additionally, replacing data transmission +with proof transmission is a change to the consensus rules and thus would - in the base Corda architecture - +require a global upgrade, no differently to any other blockchain system. A future version of Corda may allow +nodes to outsource transaction verification to remote enclaves in case they fall behind a global upgrade +schedule and such a feature might make consensus rule changes made after that point more tractable, but it +would still eventually require a global coordination to avoid simply doubling the attack surface (from enclave +compromise to enclave compromise + proof forgery). + +As part of rollout, existing transactions in each node's transaction store will need to be processed and proofs +generated. This is because in Corda there's no global data visibility: instead each node caches the dependency +graph of each transaction they were involved in for later relay to other peers. Thus there's no way to calculate +a universal proof of the state of the system up to that point from everyone's perspective, as nobody has the +entire dataset, not even Corda's equivalent of the miners (a notary cluster). + +Eventually the transaction backlog may have been processed in the background if nodes are sufficiently well +provisioned but the system may need to `fail over' to non-ZKP techniques at any moment, even after the +initial upgrade. Some situations that require fail-over may be: + +\begin{itemize} + + \item A new circuit shape appears e.g.\ usage patterns change and thus some fields become too large to verify, + until new circuits are generated with larger unrolled loops or an app upgrade occurs + (see~\cref{subsec:key-management}). + + \item It becomes necessary to transmit a transaction graph to a peer for which not all proofs have been + calculated, and for which the deadline is sooner than the estimated ETA of the proofs. A typical scenario + in which this could happen is if there's a bulk import of data to the ledger: some users load millions of + transactions into the ledger at high speed as part of migrating to their Corda based solution. This is + possible in our architecture because creating states on the ledger doesn't require the involvement of + notaries (miners), so it's limited only by the throughput of the node. The only way to feasibly handle this + is to lazily calculate proofs on demand whilst the backlog is processed, but, if users wish to begin using + the system before the backlog is processed and if transaction deadlines are faster than a proof can be + calculated, fail-over must occur. + + \item Hardware failure causes loss of proof production capacity. This should probably not trigger a node + outage as businesses may often prefer to take a slight loss of privacy over a shutdown of business, or + they may prefer to fail-back to hardware enclaves. + + \item An algorithmic flaw is found that creates doubt about the veracity of proofs. The network operators + wish to switch to other techniques until the flaw is analysed and fixed. Of course this can work in + both directions: ZKP may be kept in backup and other techniques may be `failed over' to ZKP if there is + e.g.\ a bug discovered in enclave hardware. + +\end{itemize} + +In some cases a fail-over may need a change in consensus rules. Predicted changes to the consensus +rules can be smoothly rolled out on `flag days' using Corda's already existing network parameters mechanism. +This can be used to force people on or off zero knowledge proofs depending on the decisions of the governing +body of the network. In the Corda Network this is a democratically elected board of directors. + +Infrastructure for switching back and forth must be created, tested and tooling for monitoring the state of +the network must be created. In cases where fail-over may occur, users must understand what this means for +their privacy and how to configure their node for their preferred availability/privacy tradeoffs. + +\subsection{Standardising circuit-friendly algorithms} + +Transaction proving circuits must be able to verify digital signatures. Embedding a classical elliptic curve or RSA +verification algorithm yields very inefficient circuits, and thus a range of works have developed alternative +algorithms that are more amenable to proof embedding. If migration to ZKP implies migration to new signature +algorithms, as it probably does, then this creates several new additional pieces of work: + +\begin{enumerate} + \item Selection and standardisation of an algorithm. Corda has some relatively conservative customers who + prefer an algorithm to be blessed by a recognised standards body before deployment e.g. IETF, NIST. DJB or + Google are often acceptable also. + \item Addition to Corda, which is a consensus rule change requiring two-phase global rollout (may take + years in a large network). Presumably, all transaction signatures must be switched to the new + circuit-friendly algorithm before any circuits are used. + \item Something must be figured out for older transactions, for instance, additional circuit shapes that + take into account the differing signature algorithms. + \item Ideally an argument that the new scheme is a post-quantum algorithm would be supplied. Most cryptography + teams in large enterprises expect the next major algorithmic migration after elliptic curves to be to a post-quantum + algorithm and would be uncomfortable adopting new algorithms (with their decade-long deployment timeframes) if + there was no resistance to quantum computers. +\end{enumerate} + +A more complex migration may be required if the hash function also needs to change. Transaction IDs are calculated +as the root of a Merkle tree over transaction components using SHA-2. SHA-2 is relatively expensive to encode in +circuit form. Changing how transaction IDs are calculated would be a complex logistical endeavour requiring +extensive testing and which may break backwards compatibility with applications. + +\subsection{Algorithmic agility} + +New ZKP algorithms are developed at a steady rate. It is fair to assume they will change with time. This leads +to a requirement that new algorithms can (efficiently) verify proofs generated with older algorithms. If this +capability isn't present then it would require a global re-proving of every transaction in order to switch to +a new algorithm, something that may be logistically impossible given that most nodes will not have large numbers +of idle cores just sitting around. + +Verifying proofs for older or very different algorithms is not a topic that has yet been explored by the research +community. + +\subsection{Building trust in stable algorithms} + +Cryptography is deployed into mainstream computing quite slowly. It took several decades for RSA and elliptic curve +cryptography to become widespread after their development: for most developers, Bitcoin was their first exposure to +\emph{any} elliptic curves. + +This level of trust is baked into how people think about cryptographic algorithms: as old, trustworthy, very well +studied and correspondingly unbreakable. This mentality doesn't map well to the reality of zero knowledge proof +algorithms, which are frequently only a year or two old, rely on vastly more complex mathematics than used in any +widely deployed cryptosystem, which are exposed to very small (and hard to measure) amounts of peer review and +which have been broken several times. + +Getting to the point where ZKPs are deployable on live Corda networks, which can handle hundreds of millions of +dollars per day, will require a widely agreed upon algorithm to emerge. Then it will need to be standardised by +trusted cryptographic authorities (which will be difficult given they may lack specialists in ZKP technology), and +then many years must pass whilst peer review builds up. It would help enormously if the quantity of peer review an +algorithm has received is publicly measurable, for instance, if cryptographers who read and study a paper assert +their approval in some database. Current academic practice is that negative results aren't published, which may +significantly increase the time required for industry to begin trusting an algorithm. + +This problem is also fundamental in another respect: it assumes relatively slow algorithmic progress. Between +the \texttt{secp256r1} curve being standardised and \texttt{Ed25519} becoming widely used nearly 20 years +passed. The ZKP world has no such stability, with algorithms frequently being obsoleted within months. It's +unclear when or if progress in this field will ever slow down enough for people to build trust in any single +algorithm. + +\subsection{Switching to standard hardness assumptions}\label{subsec:switching-to-standard-hardness-assumptions} + +As discussed in the introduction, the primary reason to switch to cryptographic ZKPs is the belief that well +studied `hard' problems in mathematics have a better chance of resisting attack than physical objects. For +example, the elliptic curve discrete logarithm problem (ECDLP) has seen minimal progress in over 30 years +despite enormous advances in computational power. The RSA problem has become easier to attack as hardware +got faster but can still be secure when suitably large keys are used. + +Unfortunately, many zero knowledge proof algorithms are built on non-standard assumptions about the difficulty of +novel mathematical problems. Non-standard assumptions aren't automatically an issue as with time some may become +considered `hard' via social consensus building. But it must be considered that the well deserved reputation +ordinary encryption algorithms have for being impossible to break doesn't automatically translate to zero knowledge +proofs. These new techniques are \emph{developed by the field of cryptography} but are not standard cryptography. + +Koblitz and Menzes examined the rapidly increasing number of novel hardness assumptions in their 2010 paper, \emph{`The +Brave New World of Bodacious Assumptions in Cryptography'}~\cite{koblitz2010brave}. This concern is tricky to state +precisely as (like in most academic fields) cryptography doesn't publish negative results, and thus terms like +`standard' and `hard' are inherently subjective. Whether a problem meets this criteria is effectively a function of +time and adoption, leading to a catch-22 in which a problem can't become standard unless it's received lots of +cryptanalysis, it doesn't receive lots of cryptanalysis unless it's widely adopted, but it can't be widely adopted +unless it becomes standard. + +As a motivating example, consider the Groth16 scheme\cite{groth2016}. This is probably the most widely deployed +zero knowledge proof algorithm via its use in Zcash, and tends to be the default choice for other blockchain +systems due to its tiny proofs and best-in-class performance. This SNARK is based on the \emph{knowledge of +exponent assumption} (KEA). The mathematical details of this problem don't concern us here; suffice it to say that +it has received little study relative to more famous problems and therefore professional cryptographers lack +confidence that it's truly hard. One reason for this belief is that the KEA comes in several variants, one of which +was successfully invalidated by Bellare and Palacio\cite{bellare2004knowledge} (but only after it was used to +construct a peer reviewed cryptosystem). Another reason is the structure of the KEA makes it tricky to actually +falsify at all. + +Some ZKP algorithms do rely on standard assumptions and advertise that as a feature, but at the time of +writing they all sacrifice efficiency to obtain that robustness. Given the serious performance challenges +all ZKP algorithms face it's not surprising that most developers prefer the known and measurable gain in +performance over the unknown and unmeasurable risk inherent in making unusual assumptions. + +\subsection{How to recover trust after failure}\label{subsec:how-to-recover-trust-after-failure} + +Strongly related to the questions of algorithmic agility and hardness assumptions is the challenge of system +recovery after a flaw in either an algorithm or implementation is found. + +Corda's design for deployment of secure enclaves has two phases. In phase one (called the \emph{attestation model}) +enclaves sign transactions to indicate validity, and these signatures combined with static remote attestations form +a (hardware based) zero knowledge proof. If the enclave is compromised then its signing key might be leaked, e.g. +via side channel attacks, and that would allow an adversary to prove arbitrary untrue things about the contents of +the ledger, allowing them to (for example) forge tokens. Although phase one will be brought to production, we +strive towards phase two (called the \emph{privacy model}) in which peers exchange encrypted transactions and +verify them locally. In this model if an enclave is compromised you may leak private transaction data to a peer, +but nobody can break ledger integrity. This is a more robust and more trustworthy model given that private data +gets stale and uninteresting with time, thus privacy leaks are in a sense self-healing. But integrity, once lost, +cannot be recovered. + +Unfortunately zero knowledge proofs only allow an equivalent of the attestation model. There's no equivalent to the +privacy model (this would need something closer to multi-party computation). This means trust in the ZKP algorithms +and infrastructure must be absolute: there's no way back from failure. + +It's possible there is no solution to this problem. + +\bibliographystyle{unsrt} +\bibliography{corda-zkp} +\end{document} \ No newline at end of file