Abstract
Bitcoin is an online distributed ledger in which coins are distributed according to the unspent transaction output (UTXO) set, and transactions describe changes to this set. Every UTXO has associated to it an amount and signature verification key, representing the quantity that can be spent and the entity authorized to do so, respectively.
Because the ledger is distributed and publicly verifiable, every UTXO (and the history of all changes) is publicly available and may be used for analysis of all users’ payment history. Although this history is not directly linked to users in any way, it exposes enough structure that even small amounts of personally identifiable information may completely break users’ privacy. Further, the ability to trace coin history creates a market for “clean” coins, harming the fungibility of the underlying asset.
In this paper we describe a scheme, confidential transactions, which blinds the amounts of all UTXOs, while preserving public verifiability that no transaction creates or destroys coins. This removes a significant amount of information from the transaction graph, improving privacy and fungibility without a trusted setup or exotic cryptographic assumptions.
We further extend this to confidential assets, a scheme in which a single blockchain-based ledger may track multiple asset types. We extend confidential transactions to blind not only output amounts, but also their asset type, improving the privacy and fungibility of all assets.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
While our rangeproof does require setup, the only generated parameters are uniformly random curvepoints, which can be generated with no possibility of trapdoor information, e.g. by the algorithm by Fouque and Tibouchi [7].
- 2.
Typically the group order \(\mathcal {C}\approx 2^{256}\) and \(R\approx 2^{64}\) so this requirement is physically impossible to violate in practice.
- 3.
The optimality of one base over another comes from the fact that numbers in higher bases have fewer digits, reducing the size of each OR proof, while increasing the size of the individual OR proofs. Since in base b, the Alpha rangeproof requires b scalars and a commitment, while our optimization requires only \(b-1\) scalars and a commitment, the optimum has shifted.
References
Abe, M., Ohkubo, M., Suzuki, K.: 1-out-of-n signatures from a variety of keys. In: Zheng, Y. (ed.) ASIACRYPT 2002. LNCS, vol. 2501, pp. 415–432. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-36178-2_26
Back, A.: Announcing sidechain elements: open source code and developer sidechains for advancing bitcoin. Blockstream blog post (2015). https://blockstream.com/2015/06/08/714/
Ben-Sasson, E., Chiesa, A., Genkin, D., Tromer, E., Virza, M.: SNARKs for C: verifying program executions succinctly and in zero knowledge. Cryptology ePrint Archive, Report 2013/507 (2013). http://eprint.iacr.org/2013/507
Cabarcas, D., Demirel, D., Göpfert, F., Lancrenon, J., Wunderer, T.: An unconditionally hiding and long-term binding post-quantum commitment scheme. Cryptology ePrint Archive, Report 2015/628 (2015). http://eprint.iacr.org/2015/628
Camenisch, J., Chaabouni, R., Shelat, A.: Efficient protocols for set membership and range proofs. In: Pieprzyk, J. (ed.) ASIACRYPT 2008. LNCS, vol. 5350, pp. 234–252. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-89255-7_15
Chaabouni, R., Lipmaa, H., Zhang, B.: A non-interactive range proof with constant communication. In: Keromytis, A.D. (ed.) FC 2012. LNCS, vol. 7397, pp. 179–199. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-32946-3_14
Fouque, P.-A., Tibouchi, M.: Indifferentiable hashing to Barreto–Naehrig curves. In: Hevia, A., Neven, G. (eds.) LATINCRYPT 2012. LNCS, vol. 7533, pp. 1–17. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-33481-8_1
Friedenbach, M., Timón, J.: Freimarkets: extending bitcoin protocol with user-specified bearer instruments, peer-to-peer exchange, off-chain accounting, auctions, derivatives and transitive transactions (2013). http://freico.in/docs/freimarkets-v0.0.1.pdf
Grigg, I.: The ricardian contract. In: First IEEE International Workshop on Electronic Contracting. IEEE (2004)
Hearn, M.: Merge avoidance: privacy enhancing techniques in the bitcoin protocol (2013). http://www.coindesk.com/merge-avoidance-privacy-bitcoin/
Jedusor, T.: Mimblewimble. Defunct hidden service (2016). http://5pdcbgndmprm4wud.onion/mimblewimble.txt. Reddit discussion at https://www.reddit.com/r/Bitcoin/comments/4vub3y/mimblewimble_noninteractive_coinjoin_and_better/
jl2012: OP\(\_\)CHECKCOLORVERIFY: soft-fork for native color coin support. BitcoinTalk post (2013). https://bitcointalk.org/index.php?topic=253385.0
Maxwell, G.: CoinJoin: bitcoin privacy for the real world. BitcoinTalk post (2013). https://bitcointalk.org/index.php?topic=279249.0
Maxwell, G.: Confidential transactions. Plain text (2015). https://people.xiph.org/~greg/confidential_values.txt
Maxwell, G., Poelstra, A.: Borromean Ring Signatures (2015). http://diyhpl.us/~bryan/papers2/bitcoin/Borromean%20ring%20signatures.pdf
Nakamoto, S.: Bitcoin: a peer-to-peer electronic cash system (2009). https://www.bitcoin.org/bitcoin.pdf
Pedersen, T.P.: Non-interactive and information-theoretic secure verifiable secret sharing. In: Feigenbaum, J. (ed.) CRYPTO 1991. LNCS, vol. 576, pp. 129–140. Springer, Heidelberg (1992). https://doi.org/10.1007/3-540-46766-1_9
Project Ethereum: Create your own crypto-currency with Ethereum (2016). https://www.ethereum.org/token. Accessed 31 Oct 2016
Schoenmakers, B.: Interval proofs revisited. In: Slides Presented at International Workshop on Frontiers in Electronic Elections (2005)
Southurst, J.: Blockchain’s sharedcoin users can be identified, says security expert (2014). http://www.coindesk.com/blockchains-sharedcoin-users-can-identified-says-security-expert/
Wilcox-O’Hearn, Z.: Zcash begins. ZCash Blog Post (2016). https://z.cash/blog/zcash-begins.html. Accessed 31 Oct 2016
Wood, G.: Ethereum: a secure decentralised generalised transaction ledger (2014). http://gavwood.com/paper.pdf
Acknowledgements
We thank Ben Gorlick for his input on the practical requirements of a confidential assets-based system, and his technical review, and feedback on the systems design.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
A Appendix: Proofs
A Appendix: Proofs
Theorem 8
Fix integers \(i\ge 0\), \(m>0\). Consider an algorithm \(\mathcal {A}\) which can produce the tuple
such that one can define, for \(j\in \{1,\ldots ,m-1\}\),
and it holds that \(e_0 = \mathcal {H}(R\Vert \alpha )\). (Observe that the formula for \(e_j\) is the same as (1) from Definition 9; this represents the verification equation of a single ring. Here \(\alpha \) is auxiliary data that \(\mathcal {A}\) chooses, but in the full algorithm it consists of the R values from the other rings.)
Then a simulator \(\mathcal {B}\) exists, which given oracle access to \(\mathcal {A}\), can extract an opening (v, r) such that \(\mathrm {Open}(v, r, C)\) accepts and \(v\in \{0, m^i, \ldots , (m-1)m^i\}\).
Proof
Suppose that \(\mathcal {A}\) makes at most q random oracle queries. \(\mathcal {B}\) acts as follows. For each random oracle query it chooses a uniformly random scalar and responds with this.
It chooses \(i^*\in \{1,\ldots ,q\}\) uniformly at random, and on the \(i^*\)th query, \(\mathcal {B}\) forks \(\mathcal {A}\) into \(\mathcal {A}\) and \(\mathcal {A}'\). It gives \(e_{i^*}\) to \(\mathcal {A}\), \(e_{i^*}'\) to \(\mathcal {A}'\), and answers further queries from other algorithms with uniformly random values.
Let the final output of the two algorithms be
and similarly \(e_j\) and \(e_j'\) are defined as in the hypothesis.
With probability \(1/q-negl\), we have \(e_j=e_j'\) for all j except one, \(j^*\). (This is the probability that the \(i^*\)th query was the last \(e_j\) that \(\mathcal {A}\) needed, and that it obtained every \(e_j\) by querying the random oracle rather than guessing.) Abort otherwise.
We consider four cases.
-
1.
If \(j^* = m-1\), then
$$\begin{aligned} e_0 = \mathcal {H}(e_{m-1}C\Vert \alpha ) = \mathcal {H}(e_{m-1}'C'\Vert \alpha ') = e_0' \end{aligned}$$so that except with negligible probability, \(\alpha = \alpha '\) and \(C = \frac{e_{m-1}'}{e_{m-1}}C'\). Now,
$$\begin{aligned} e_{m-1} = \mathcal {H}\left( s_{m-1}G - e_{m-2}\left[ C - (m-1)m^iH\right] \right) \end{aligned}$$$$\begin{aligned} e_{m-1}' = \mathcal {H}'\left( s_{m-1}'G - e_{m-2}\left[ C' - (m-1)m^iH\right] \right) \end{aligned}$$where \(\mathcal {H}\), \(\mathcal {H}'\) are used to emphasize which side of the fork received these random oracle responses. But by hypothesis, the input to these queries is the same, that is,
$$\begin{aligned} s_{m-1}G - e_{m-2}\left[ C - (m-1)m^iH\right] = s_{m-1}'G - e_{m-2}\left[ C' - (m-1)m^iH\right] \end{aligned}$$which is sufficient to solve for the discrete logarithms r, \(r'\) of \(C - (m-1)m^iH\) and \(C' - (m-1)m^iH\), giving us openings \((m-1, r)\) and \((m-1, r')\) for the commitments of the two forks.
-
2.
If \(j^* \ne m-1\) and \(C=C'\), then
$$\begin{aligned} e_{j^*+1}&= \mathcal {H}\left( s_{j^*+1}G - e_{j^*}\left[ C - j^*m^iH\right] \right) \\&= \mathcal {H}\left( s_{j^*+1}'G - e_{j^*}'\left[ C - j^*m^iH\right] \right) \\&= e_{j^*+1}' \end{aligned}$$and we can solve for the discrete logarithm r of \(C - j^*m^iH\), and our desired opening for C (the output of both forks) is \((j^*m^i, r)\).
-
3.
If \(j^*=0\) and \(C\ne C'\), we have that the inputs to
$$\begin{aligned} e_0 = \mathcal {H}(e_{m-1}C\Vert \alpha ) \end{aligned}$$$$\begin{aligned} e_0' = \mathcal {H}(e_{m-1}'C'\Vert \alpha ') \end{aligned}$$are the same, and \(e_{m-1} = e_{m-1}'\) by hypothesis. This implies \(C=C'\), a contradiction.
-
4.
If \(0<j^*< m-1\) and \(C\ne C'\), observe that
$$\begin{aligned} e_{j^*} = \mathcal {H}\left( s_{j^*}G - e_{j^*}\left[ C - j^*m^iH\right] \right) \end{aligned}$$$$\begin{aligned} e_{j^*}' = \mathcal {H}'\left( s_{j^*}'G - e_{j^*}'\left[ C' - j^*m^iH\right] \right) \end{aligned}$$and as in case 1, by hypothesis
$$\begin{aligned} s_{j^*}G - e_{j^*}\left[ C - j^*m^iH\right] = s_{j^*}'G - e_{j^*}'\left[ C' - j^*m^iH\right] \end{aligned}$$(2)Similarly,
$$\begin{aligned} e_{m-1}&= \mathcal {H}\left( s_{m-1}G - e_{m-2}\left[ C - (m-1)m^iH\right] \right) \\&= \mathcal {H}\left( s_{m-1}'G - e_{m-2}'\left[ C' - (m-1)m^iH\right] \right) \\&= e_{m-1}' \end{aligned}$$so
$$\begin{aligned} s_{m-1}G - e_{m-1}\left[ C - (m-1)m^iH\right] = s_{m-1}'G - e_{m-1}'\left[ C' - (m-1)m^iH\right] \end{aligned}$$(3)Now, after rearranging, (2) is
$$\begin{aligned} \frac{1}{j^*m^i(e_{j^*}' - e_{j^*})} \left[ (s_{j^*} - s_{j^*}') G + e_{j^*}'C' - e_{j^*}C \right] = H \end{aligned}$$and (3) is
$$\begin{aligned} \frac{1}{(m-1)m^i(e_{m-1}' - e_{m-1})} \left[ (s_{m-1} - s_{m-1}') G + e_{m-1}'C' - e_{m-1}C \right] = H \end{aligned}$$which combine to determine the discrete logarithms r, \(r'\) of C and \(C'\), so that (0, r) and \((0, r')\) are the desired openings.
1.1 A.1 Proof of Theorem 3
Proof
Recall that G is a fixed random generator of \(\mathcal {G}\). Let (G, X) be \(\mathcal {B}\)’s discrete logarithm challenge, i.e. \(\mathcal {B}\) succeeds if it outputs x such that \(X = xG\). We consider two types of adversary: a type I adversary’s output satisfies \(\sum _{i=1}^n r_i\ne r\), while a type II has equality. We assume that \(\mathcal {A}\) makes at most q random oracle queries.
For a Type I adversary, \(\mathcal {B}\) acts as follows.
First, \(\mathcal {B}\) responds to random oracle queries by choosing random scalars r and replying with rX. Then from \(\mathcal {A}\)’s perspective, \(\mathrm {Setup}_i\) outputs uniformly a random generators \(H_i\); however \(\mathcal {B}\) knows scalars \(s_i\) such that \(H_i = s_iX\).
Now, let \((C_i, v_i, r_i, v, r)\) for \(i=1,\ldots ,n\) be the output of \(\mathcal {A}\). Write \(C=\sum _{i=1}^nC_i\). We have
Since the sum in the right term is nonzero for a type I adversary, so must be the sum in the left term, so we have
which satisfies \(X = xG\).
For a Type II adversary, \(\mathcal {B}\) acts as follows. It responds for the Type I simulator, except for one random oracle queries it replies with sG rather than sX. Then with probability 1/q we have \(H_0 = s_0G\), and if not we abort. We also abort if \(s_0 = 0\), which occurs with negligible probability.
The above equation then becomes
where the right term is equal to \(vs_0\ne 0\), so the left term must also be nonzero, and
satisfies \(X = xG\).
Rights and permissions
Copyright information
© 2019 International Financial Cryptography Association
About this paper
Cite this paper
Poelstra, A., Back, A., Friedenbach, M., Maxwell, G., Wuille, P. (2019). Confidential Assets. In: Zohar, A., et al. Financial Cryptography and Data Security. FC 2018. Lecture Notes in Computer Science(), vol 10958. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-58820-8_4
Download citation
DOI: https://doi.org/10.1007/978-3-662-58820-8_4
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-662-58819-2
Online ISBN: 978-3-662-58820-8
eBook Packages: Computer ScienceComputer Science (R0)