Skip to main content

Confidential Assets

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNSC,volume 10958))

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.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Notes

  1. 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. 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. 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

  1. 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

    Chapter  Google Scholar 

  2. 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/

  3. 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

  4. 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

  5. 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

    Chapter  Google Scholar 

  6. 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

    Chapter  Google Scholar 

  7. 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

    Chapter  Google Scholar 

  8. 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

  9. Grigg, I.: The ricardian contract. In: First IEEE International Workshop on Electronic Contracting. IEEE (2004)

    Google Scholar 

  10. Hearn, M.: Merge avoidance: privacy enhancing techniques in the bitcoin protocol (2013). http://www.coindesk.com/merge-avoidance-privacy-bitcoin/

  11. 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/

  12. jl2012: OP\(\_\)CHECKCOLORVERIFY: soft-fork for native color coin support. BitcoinTalk post (2013). https://bitcointalk.org/index.php?topic=253385.0

  13. Maxwell, G.: CoinJoin: bitcoin privacy for the real world. BitcoinTalk post (2013). https://bitcointalk.org/index.php?topic=279249.0

  14. Maxwell, G.: Confidential transactions. Plain text (2015). https://people.xiph.org/~greg/confidential_values.txt

  15. Maxwell, G., Poelstra, A.: Borromean Ring Signatures (2015). http://diyhpl.us/~bryan/papers2/bitcoin/Borromean%20ring%20signatures.pdf

  16. Nakamoto, S.: Bitcoin: a peer-to-peer electronic cash system (2009). https://www.bitcoin.org/bitcoin.pdf

  17. 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

    Chapter  Google Scholar 

  18. Project Ethereum: Create your own crypto-currency with Ethereum (2016). https://www.ethereum.org/token. Accessed 31 Oct 2016

  19. Schoenmakers, B.: Interval proofs revisited. In: Slides Presented at International Workshop on Frontiers in Electronic Elections (2005)

    Google Scholar 

  20. 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/

  21. Wilcox-O’Hearn, Z.: Zcash begins. ZCash Blog Post (2016). https://z.cash/blog/zcash-begins.html. Accessed 31 Oct 2016

  22. Wood, G.: Ethereum: a secure decentralised generalised transaction ledger (2014). http://gavwood.com/paper.pdf

Download references

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

Authors

Corresponding author

Correspondence to Andrew Poelstra .

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

$$\begin{aligned} \pi = (\alpha , e_0, C, s_1, \ldots , s_{m-1}) \end{aligned}$$

such that one can define, for \(j\in \{1,\ldots ,m-1\}\),

$$\begin{aligned} e_j\leftarrow \mathcal {H}\left( s_jG - e_{j-1}\left[ C - jm^iH\right] \right) , \end{aligned}$$
$$\begin{aligned} R\leftarrow e_{m-1} C, \end{aligned}$$

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 (vr) 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

$$\begin{aligned} \pi = (\alpha , e_0, C, s_1, \ldots , s_{m-1}) \end{aligned}$$
$$\begin{aligned} \pi ' = (\alpha ', e_0', C', s_1', \ldots , s_{m-1}') \end{aligned}$$

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. 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. 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. 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. 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 (GX) 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

$$\begin{aligned} 0&= C - \sum _{i=1}^n C_i \\&= vH_0 + rG - \sum _{i=1}^n [v_iH_i + r_iG] \\&= vs_0X + rG - \sum _{i=1}^n [v_is_iX + r_iG] \\&= \left[ vs_0 - \sum _{i=1}^n v_is_i\right] X + \left[ r - \sum _{i=1}^n r_i\right] G \end{aligned}$$

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

$$\begin{aligned} x = \frac{r - \sum _{i=1}^n r_i}{vs_0 - \sum _{i=1}^n v_is_i} \end{aligned}$$

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

$$\begin{aligned} 0 = \left[ \sum _{i=1}^n v_is_i\right] X + \left[ vs_0 + r - \sum _{i=1}^n r_i\right] G \end{aligned}$$

where the right term is equal to \(vs_0\ne 0\), so the left term must also be nonzero, and

$$\begin{aligned} x = \frac{vs_0}{\sum _{i=1}^n v_is_i} \end{aligned}$$

satisfies \(X = xG\).

Rights and permissions

Reprints and permissions

Copyright information

© 2019 International Financial Cryptography Association

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics