FC 2017: Financial Cryptography and Data Security pp 376-392 | Cite as
Improving Authenticated Dynamic Dictionaries, with Applications to Cryptocurrencies
Abstract
We improve the design and implementation of two-party and three-party authenticated dynamic dictionaries and apply these dictionaries to cryptocurrency ledgers.
A public ledger (blockchain) in a cryptocurrency needs to be easily verifiable. However, maintaining a data structure of all account balances, in order to verify whether a transaction is valid, can be quite burdensome: a verifier who does not have the large amount of RAM required for the data structure will perform slowly because of the need to continually access secondary storage. We demonstrate experimentally that authenticated dynamic dictionaries can considerably reduce verifier load. On the other hand, per-transaction proofs generated by authenticated dictionaries increase the size of the blockchain, which motivates us to find a solution with most compact proofs.
Our improvements to the design of authenticated dictionaries reduce proof size and speed up verification by 1.4–2.5 times, making them better suited for the cryptocurrency application. We further show that proofs for multiple transactions in a single block can compressed together, reducing their total length by approximately an additional factor of 2.
We simulate blockchain verification, and show that our verifier can be about 20 times faster than a disk-bound verifier under a realistic transaction load.
Notes
Acknowledgements
We thank Andrew Miller for helpful and detailed explanations of his work [MHKS14], for running his code to get us comparison data, and for comments on our draft. We thank Peter Todd and Pieter Wuille for fascinating discussions.
References
- [AGT01]Anagnostopoulos, A., Goodrich, M.T., Tamassia, R.: Persistent authenticated dictionaries and their applications. In: Davida, G.I., Frankel, Y. (eds.) ISC 2001. LNCS, vol. 2200, pp. 379–393. Springer, Heidelberg (2001). https://doi.org/10.1007/3-540-45439-X_26 CrossRefGoogle Scholar
- [ANWOW13]Aumasson, J.-P., Neves, S., Wilcox-O’Hearn, Z., Winnerlein, C.: BLAKE2: simpler, smaller, fast as MD5. In: Jacobson, M., Locasto, M., Mohassel, P., Safavi-Naini, R. (eds.) ACNS 2013. LNCS, vol. 7954, pp. 119–135. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-38980-1_8 CrossRefGoogle Scholar
- [AVL62]Adel’son-Vel’skii and Landis. An algorithm for the organization of information. Dokladi Akademia Nauk SSSR, 146(2), : English translation in Soviet Math. Doklady 3(1962), 1259–1263 (1962)Google Scholar
- [BDL+12]Bernstein, D.J., Duif, N., Lange, T., Schwabe, P., Yang, B.-Y.: High-speed high-security signatures. J. Cryptographic Eng. 2(2), 77–89 (2012). https://ed25519.cr.yp.to/ CrossRefMATHGoogle Scholar
- [BEG+91]Blum, M., Evans, W.S., Gemmell, P., Kannan, S., Naor, M.: Checking the correctness of memories. In: 32nd Annual Symposium on Foundations of Computer Science, San Juan, Puerto Rico, 1–4 October 1991, pp. 90–99. IEEE Computer Society (1991). Later appears as [?], which is available at http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.29.2991
- [BGM16]Bentov, I., Gabizon, A., Mizrahi, A.: Cryptocurrencies without proof of work. In: Clark, J., Meiklejohn, S., Ryan, P.Y.A., Wallach, D., Brenner, M., Rohloff, K. (eds.) FC 2016. LNCS, vol. 9604, pp. 142–157. Springer, Heidelberg (2016). https://doi.org/10.1007/978-3-662-53357-4_10 CrossRefGoogle Scholar
- [BGV11]Benabbas, S., Gennaro, R., Vahlis, Y.: Verifiable delegation of computation over large datasets. In: Rogaway, P. (ed.) CRYPTO 2011. LNCS, vol. 6841, pp. 111–131. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-22792-9_7 CrossRefGoogle Scholar
- [BP07]Di Battista, G., Palazzi, B.: Authenticated relational tables and authenticated skip lists. In: Barker, S., Ahn, G.-J. (eds.) DBSec 2007. LNCS, vol. 4602, pp. 31–46. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-73538-0_3 CrossRefGoogle Scholar
- [But16]Buterin, V.: Transaction spam attack: Next steps (2016). https://blog.ethereum.org/2016/09/22/transaction-spam-attack-next-steps/
- [CDE+16]Croman, K., Decker, C., Eyal, I., Gencer, A.E., Juels, A., Kosba, A., Miller, A., Saxena, P., Shi, E., Gün, E.: On scaling decentralized blockchains. In: Proceedings of 3rd Workshop on Bitcoin and Blockchain Research (2016)Google Scholar
- [CF13]Catalano, D., Fiore, D.: Vector commitments and their applications. In: Kurosawa, K., Hanaoka, G. (eds.) PKC 2013. LNCS, vol. 7778, pp. 55–72. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-36362-7_5 CrossRefGoogle Scholar
- [CLH+15]Chen, X., Li, J., Huang, X., Ma, J., Lou, W.: New publicly verifiable databases with efficient updates. IEEE Trans. Dependable Sec. Comput. 12(5), 546–556 (2015)CrossRefGoogle Scholar
- [CLW+16]Chen, X., Li, J., Weng, J., Ma, J., Lou, W.: Verifiable computation over large database with incremental updates. IEEE Trans. Comput. 65(10), 3184–3195 (2016)MathSciNetCrossRefMATHGoogle Scholar
- [cod]Implementation of authenticated data structures within scorex. https://github.com/input-output-hk/scrypto/
- [CW11]Crosby, S.A., Wallach, D.S.: Authenticated dictionaries: real-world costs and trade-offs. ACM Trans. Inf. Syst. Secur. 14(2), 17 (2011). http://tamperevident.cs.rice.edu/Storage.html CrossRefGoogle Scholar
- [DJ07]Dean, B.C., Jones, Z.H.: Exploring the duality between skip lists and binary search trees. In: John, D., Kerr, S.N. (eds.) Proceedings of the 45th Annual Southeast Regional Conference, 2007, Winston-Salem, North Carolina, USA, 23–24 March 2007, pp. 395–399. ACM (2007). https://people.cs.clemson.edu/~bcdean/skip_bst.pdf
- [DW13]Decker, C., Wattenhofer, R.: Information propagation in the bitcoin network. In: IEEE P2P 2013 Proceedings, pp. 1–10. IEEE (2013)Google Scholar
- [EK13]Etemad, M., Küpçü, A.: Database outsourcing with hierarchical authenticated data structures. In: Lee, H.-S., Han, D.-G. (eds.) ICISC 2013. LNCS, vol. 8565, pp. 381–399. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-12160-4_23 Google Scholar
- [GA]Gailly, J.-L., Adler, M.: gzip. http://www.gzip.org/
- [GPT07]Goodrich, M.T., Papamanthou, C., Tamassia, R.: On the cost of persistence and authentication in skip lists. In: Demetrescu, C. (ed.) WEA 2007. LNCS, vol. 4525, pp. 94–107. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-72845-0_8 CrossRefGoogle Scholar
- [GPTT08]Goodrich, M.T., Papamanthou, C., Tamassia, R., Triandopoulos, N.: Athos: efficient authentication of outsourced file systems. In: Wu, T.-C., Lei, C.-L., Rijmen, V., Lee, D.-T. (eds.) ISC 2008. LNCS, vol. 5222, pp. 80–96. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-85886-7_6 CrossRefGoogle Scholar
- [GS78]Guibas, L.J., Sedgewick, R.: A dichromatic framework for balanced trees. In: 19th Annual Symposium on Foundations of Computer Science, Ann Arbor, Michigan, USA, 16–18 October 1978, pp. 8–21. IEEE Computer Society (1978). http://professor.ufabc.edu.br/~jesus.mena/courses/mc3305-2q-2015/AED2-13-redblack-paper.pdf
- [GSTW03]Goodrich, M.T., Shin, M., Tamassia, R., Winsborough, W.H.: Authenticated dictionaries for fresh attribute credentials. In: Nixon, P., Terzis, S. (eds.) iTrust 2003. LNCS, vol. 2692, pp. 332–347. Springer, Heidelberg (2003). https://doi.org/10.1007/3-540-44875-6_24 CrossRefGoogle Scholar
- [GT00]Goodrich, M.T., Tamassia, R.: Efficient authenticated dictionaries with skip lists and commutative hashing. Technical report, Johns Hopkins Information Security Institute (2000). http://cs.brown.edu/cgc/stms/papers/hashskip.pdf
- [GTS01]Goodrich, M.T., Tamassia, R., Schwerin, A.: Implementation of an authenticated dictionary with skip lists and commutative hashing. Presented in Proceedings of DARPA Information Survivability Conference and Exposition II (DISCEX II) (2001). http://cs.brown.edu/cgc/stms/papers/discex2001.pdf
- [HPPT08]Heitzmann, A., Palazzi, B., Papamanthou, C., Tamassia, R.: Efficient integrity checking of untrusted network storage. In: Kim, Y., Yurcik, W. (eds.) Proceedings of the 2008 ACM Workshop On Storage Security and Survivability, StorageSS 2008, Alexandria, VA, USA, 31 October 2008, pp. 43–54. ACM (2008). http://www.ece.umd.edu/~cpap/published/alex-ber-cpap-rt-08b.pdf
- [KKR+16]Kiayias, A., Konstantinou, I., Russell, A., David, B., Oliynykov, R.: A provably secure proof-of-stake blockchain protocol. Cryptology ePrint Archive, Report 2016/889 (2016). http://eprint.iacr.org/2016/889
- [Knu98]Knuth, D.: The Art of Computer Programming: Volume 3: Sorting and Searching. Addison-Wesley, 2nd edition (1998)Google Scholar
- [Kwo16]Kwon, J.: Tendermint go-merkle (2016). https://github.com/tendermint/go-merkle
- [Lop]Lopp, J.: Unspent transactions outputs in Bitcoin. http://statoshi.info/dashboard/db/unspent-transaction-output-set. Accessed 7 Nov 2016
- [Mer89]Merkle, R.C.: A certified digital signature. In: Brassard, G. (ed.) CRYPTO 1989. LNCS, vol. 435, pp. 218–238. Springer, New York (1990). https://doi.org/10.1007/0-387-34805-0_21 CrossRefGoogle Scholar
- [MHKS14]Miller, A., Hicks, M., Katz, J., Shi, E.: Authenticated data structures, generically. In: Jagannathan, S., Sewell, P. (eds.) The 41st Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2014, San Diego, CA, USA, 20–21 January 2014, pp. 411–424. ACM (2014). http://amiller.github.io/lambda-auth/paper.html
- [Mil12]Miller, A.: Storing UTXOs in a balanced Merkle tree (zero-trust nodes with O(1)-storage) (2012). https://bitcointalk.org/index.php?topic=101734.msg1117428
- [Mil16]Miller, A.: Private communication (2016)Google Scholar
- [MND+04]Martel, C.U., Nuckolls, G., Devanbu, P.T., Gertz, M., Kwong, A., Stubblebine, S.G.: A general model for authenticated data structures. Algorithmica 39(1), 21–41 (2004). http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.75.3658 MathSciNetCrossRefMATHGoogle Scholar
- [MR98]Martínez, C., Roura, S.: Randomized binary search trees. J. ACM 45(2), 288–323 (1998). http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.17.243 MathSciNetCrossRefMATHGoogle Scholar
- [MWMS16]Miao, M., Wang, J., Ma, J., Susilo, W.: Publicly verifiable databases with efficient insertion/deletion operations. J. Comput. Syst. Sci. (2016). http://dx.doi.org/10.1016/j.jcss.2016.07.005. To appear in print
- [Nak08]Nakamoto, S.: Bitcoin: A peer-to-peer electronic cash system (2008). https://bitcoin.org/bitcoin.pdf
- [NN00]Naor, M., Nissim, K.: Certificate revocation and certificate update. IEEE J. Sel. Areas Commun. 18(4), 561–570 (2000). http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.7072 CrossRefGoogle Scholar
- [nxt]The Nxt cryptocurrency. https://nxt.org/
- [Pap11]Papamanthou, C.: Cryptography for efficiency: new directions in authenticated data structures. Ph.D. thesis, Brown University (2011). http://www.ece.umd.edu/ cpap/published/theses/cpap-phd.pdf
- [Par15]Parker, L.: The decline in bitcoin full nodes (2015). http://bravenewcoin.com/news/the-decline-in-bitcoins-full-nodes/
- [Pfa02]Pfaff, B.: GNU libavl 2.0.2 (2002). http://adtinfo.org/libavl.html/index.html
- [PT07]Papamanthou, C., Tamassia, R.: Time and space efficient algorithms for two-party authenticated data structures. In: Qing, S., Imai, H., Wang, G. (eds.) ICICS 2007. LNCS, vol. 4861, pp. 1–15. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-77048-0_1 CrossRefGoogle Scholar
- [PTT16]Papamanthou, C., Tamassia, R., Triandopoulos, N.: Authenticated hash tables based on cryptographic accumulators. Algorithmica 74(2), 664–712 (2016)MathSciNetCrossRefMATHGoogle Scholar
- [Pug90]Pugh, W.: Skip lists: a probabilistic alternative to balanced trees. Commun. ACM 33(6), 668–676 (1990). http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.15.9072 CrossRefGoogle Scholar
- [RMCI16]Reyzin, L., Meshkov, D., Chepurnoy, A., Ivanov, S.: Improving authenticated dynamic dictionaries, with applications to cryptocurrencies. Technical report 2016/994, IACR Cryptology ePrint Archive (2016). http://eprint.iacr.org/2016/994
- [SA96]Seidel, R., Aragon, C.R.: Randomized search trees. Algorithmica 16(4/5), 464–497 (1996). https://faculty.washington.edu/aragon/pubs/rst96.pdf MathSciNetCrossRefMATHGoogle Scholar
- [sca]The Scala programming language. http://www.scala-lang.org/
- [Sed08]Sedgewick, R.: Left-leaning red-black trees (2008). http://www.cs.princeton.edu/ rs/talks/LLRB/LLRB.pdf
- [tbp]Transactions per block. https://blockchain.info/charts/n-transactions-per-block
- [Tea16]The Go Ethereum Team. Official golang implementation of the ethereum protocol (2016). http://geth.ethereum.org/
- [Tod16]Todd, P.: Making UTXO set growth irrelevant with low-latency delayed TXO commitments (2016). https://petertodd.org/2016/delayed-txo-commitments
- [Wei06]Weiss, M.A.: Data Structures and Algorithm Analysis in Java, 2nd edn. Prentice Hall, Pearson (2006)Google Scholar
- [Whi15]White, B.: A theory for lightweight cryptocurrency ledgers (2015). http://qeditas.org/lightcrypto.pdf. (see also code at https://github.com/bitemyapp/ledgertheory)
- [Wik13]Bitcoin Wiki. CVE-2013-2293: New DoS vulnerability by forcing continuous hard disk seek/read activity (2013). https://en.bitcoin.it/wiki/CVE-2013-2293
- [Woo14]Wood, G.: Ethereum: A secure decentralised generalised transaction ledger (2014). http://gavwood.com/Paper.pdf