Skip to main content

Dissecting Tendermint

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCCN,volume 11704))

Abstract

In this paper we analyze Tendermint, proposed in [12], one of the most popular blockchains based on PBFT Consensus. Our methodology consists in identifying the algorithmic principles of Tendermint necessary for a specific system model. The current paper dissects Tendermint under two communication models: synchronous and eventually synchronous ones. This methodology allowed to identify bugs in preliminary versions of the protocol and to prove its correctness under the most adversarial conditions: an eventually synchronous communication model under Byzantine faults. The message complexity of Tendermint is \(O(n^3)\).

Keywords

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

Buying options

Chapter
EUR   29.95
Price includes VAT (France)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
EUR   42.79
Price includes VAT (France)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
EUR   52.74
Price includes VAT (France)
  • 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.

    Since there are \(3f+1\) validators, there cannot be two different values that collect \(2f+1\) distinct votes in the same epoch.

  2. 2.

    validValue was not present in the previous version of Tendermint [26], that was suffering from the Live Lock bug [1].

References

  1. Livelock scenario. https://github.com/tendermint/tendermint/wiki/0.7-Livelock-Scenario. Accessed 14 Mar 2019

  2. Abraham, I., Gueta, G., Malkhi, D.: Hot-stuff the linear, optimal-resilience, one-message BFT devil. CoRR abs/1803.05069 (2018). http://arxiv.org/abs/1803.05069

  3. Abraham, I., Malkhi, D., Nayak, K., Ren, L., Spiegelman, A.: Solidus: An incentive-compatible cryptocurrency based on permissionless byzantine consensus. CoRR, abs/1612.02916 (2016)

    Google Scholar 

  4. Aguilera, M.K.: A pleasant stroll through the land of infinitely many creatures. ACM Sigact News 35(2), 36–59 (2004)

    Article  Google Scholar 

  5. Amoussou-Guenou, Y., Del Pozzo, A., Potop-Butucaru, M., Tucci-Piergiovanni, S.: Correctness and Fairness of Tendermint-core Blockchains. CoRR abs/1805.08429 (2018)

    Google Scholar 

  6. Amoussou-Guenou, Y., Del Pozzo, A., Potop-Butucaru, M., Tucci-Piergiovanni, S.: Correctness of tendermint-core blockchains. In: 22nd International Conference on Principles of Distributed Systems, OPODIS 2018, 17–19 December 2018, Hong Kong, China. pp. 16:1–16:16 (2018)

    Google Scholar 

  7. Amoussou-Guenou, Y., Del Pozzo, A., Potop-Butucaru, M., Tucci-Piergiovanni, S.: Dissecting Tendermint. Research report, LIP6, Sorbonne Université, CNRS, UMR 7606; CEA List (2018). https://hal.archives-ouvertes.fr/hal-01881212v2

  8. Anceaume, E., Del Pozzo, A., Ludinard, R., Potop-Butucaru, M., Tucci-Piergiovanni, S.: Blockchain abstract data type. In: SPAA 2019 (2019, to appear)

    Google Scholar 

  9. Androulaki, E., et al.: Hyperledger fabric: a distributed operating system for permissioned blockchains. In: Proceedings of the Thirteenth EuroSys Conference, EuroSys 2018, Porto, Portugal, 23–26 April 2018, pp. 30:1–30:15 (2018)

    Google Scholar 

  10. Baldoni, R., Bertier, M., Raynal, M., Tucci-Piergiovanni, S.: Looking for a definition of dynamic distributed systems. In: Malyshkin, V. (ed.) PaCT 2007. LNCS, vol. 4671, pp. 1–14. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-73940-1_1

    Chapter  Google Scholar 

  11. Ben-Or, M.: Another advantage of free choice (extended abstract): completely asynchronous agreement protocols. In: Proceedings of the Second Annual ACM Symposium on Principles of Distributed Computing, pp. 27–30. ACM (1983)

    Google Scholar 

  12. Buchman, E., Kwon, J., Milosevic, Z.: The latest gossip on BFT consensus. Technical report, Tendermint (2018). https://arxiv.org/abs/1807.04938

  13. Cachin, C., Kursawe, K., Petzold, F., Shoup, V.: Secure and efficient asynchronous broadcast protocols. In: Kilian, J. (ed.) CRYPTO 2001. LNCS, vol. 2139, pp. 524–541. Springer, Heidelberg (2001). https://doi.org/10.1007/3-540-44647-8_31

    Chapter  Google Scholar 

  14. Castro, M., Liskov, B.: Practical byzantine fault tolerance. In: Proceedings of the Symposium on Operating Systems Design and Implementation (OSDI) (1999)

    Google Scholar 

  15. Crain, T., Gramoli, V., Larrea, M., Raynal, M.: (Leader/Randomization/Signature)-free Byzantine Consensus for Consortium Blockchains (2017). http://csrg.redbellyblockchain.io/doc/ConsensusRedBellyBlockchain.pdf. Accessed 22 May 2018

  16. Crain, T., Gramoli, V., Larrea, M., Raynal, M.: DBFT: Efficient byzantine consensus with a weak coordinator and its application to consortium blockchains. arXiv preprint arXiv:1702.03068 (2017)

  17. Decker, C., Seidel, J., Wattenhofer, R.: Bitcoin meets strong consistency. In: Proceedings of the 17th International Conference on Distributed Computing and Networking Conference (ICDCN) (2016)

    Google Scholar 

  18. Dwork, C., Lynch, N.A., Stockmeyer, L.J.: Consensus in the presence of partial synchrony. J. ACM 35(2), 288–323 (1988)

    Article  MathSciNet  Google Scholar 

  19. Dwork, C., Naor, M.: Pricing via processing or combatting junk mail. In: Brickell, E.F. (ed.) CRYPTO 1992. LNCS, vol. 740, pp. 139–147. Springer, Heidelberg (1993). https://doi.org/10.1007/3-540-48071-4_10

    Chapter  Google Scholar 

  20. Fischer, M.J., Lynch, N.A.: A lower bound for the time to assure interactive consistency. Inf. Process. Lett. 14(4), 183–186 (1982)

    Article  MathSciNet  Google Scholar 

  21. Fischer, M.J., Lynch, N.A., Paterson, M.S.: Impossibility of distributed consensus with one faulty process. J. ACM 32(2), 374–382 (1985)

    Article  MathSciNet  Google Scholar 

  22. Garay, J.A., Moses, Y.: Fully polynomial byzantine agreement in t+1 rounds. In: Proceedings of the Twenty-Fifth Annual ACM Symposium on Theory of Computing, 16–18 May 1993, San Diego, CA, USA, pp. 31–41 (1993)

    Google Scholar 

  23. Kokoris-Kogias, E., Jovanovic, P., Gailly, N., Khoffi, I., Gasser, L., Ford, B.: Enhancing bitcoin security and performance with strong consistency via collective signing. In: Proceedings of the 25th USENIX Security Symposium (2016)

    Google Scholar 

  24. Kowalski, D.R., Mostéfaoui, A.: Synchronous byzantine agreement with nearly a cubic number of communication bits: synchronous byzantine agreement with nearly a cubic number of communication bits. In: ACM Symposium on Principles of Distributed Computing, PODC 2013, Montreal, QC, Canada, 22–24 July 2013, pp. 84–91 (2013)

    Google Scholar 

  25. Kwon, J., Buchman, E.: Cosmos: A Network of Distributed Ledgers. https://cosmos.network/resources/whitepaper. Accessed 22 May 2018

  26. Kwon, J., Buchman, E.: Tendermint. https://tendermint.readthedocs.io/en/master/specification.html. Accessed 22 May 2018

  27. Lamport, L., Shostak, R., Pease, M.: The byzantine generals problem. ACM Trans. Programm. Lang. Syst. 4(3), 382–401 (1982)

    Article  Google Scholar 

  28. Muñoz-Escoí, F.D., de Juan-Marín, R.: On synchrony in dynamic distributed systems. Open Comput. Sci. 8(1), 154–164(2018). https://doi.org/10.1515/comp-2018-0014

    Article  Google Scholar 

  29. Pease, M., Shostak, R., Lamport, L.: Reaching agreement in the presence of faults. J. ACM 27(2), 228–234 (1980)

    Article  MathSciNet  Google Scholar 

  30. Tendermint: correctness issues. https://github.com/tendermint/spec/issues. Accessed 24 Sept 2018

  31. Tendermint: Tendermint Core (BFT Consensus) in Go. https://github.com/tendermint/tendermint/blob/e88f74bb9bb9edb9c311f256037fcca217b45ab6/consensus/state.go. Accessed 22 May 2018

Download references

Acknowledgment

The authors would like to thank the reviewers of NETYS 2019 for their insightful comments. The authors also thank Zaynah Dargaye for numerous discussions, and in particular for the consistency of this work.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Yackolley Amoussou-Guenou .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Amoussou-Guenou, Y., Del Pozzo, A., Potop-Butucaru, M., Tucci-Piergiovanni, S. (2019). Dissecting Tendermint. In: Atig, M., Schwarzmann, A. (eds) Networked Systems. NETYS 2019. Lecture Notes in Computer Science(), vol 11704. Springer, Cham. https://doi.org/10.1007/978-3-030-31277-0_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-31277-0_11

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-31276-3

  • Online ISBN: 978-3-030-31277-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics