skip to main content
10.1145/3558535.3559783acmotherconferencesArticle/Chapter ViewAbstractPublication PagesaftConference Proceedingsconference-collections
research-article

Analysing and Improving Shard Allocation Protocols for Sharded Blockchains

Published: 05 July 2023 Publication History

Abstract

Sharding is a promising approach to scale permissionless blockchains. In a sharded blockchain, participants are split into groups, called shards, and each shard only executes part of the workloads. Despite its wide adoption in permissioned systems, transferring such success to permissionless blockchains is still an open problem. In permissionless networks, participants may join and leave the system at any time, making load balancing challenging. In addition, the adversary in such networks can launch the single-shard takeover attack by compromising a single shard's consensus. To address these issues, participants should be securely and dynamically allocated into different shards. However, the protocol capturing such functionality - which we call shard allocation - is overlooked.
In this paper, we study shard allocation protocols for permission-less blockchains. We formally define the shard allocation protocol and propose an evaluation framework. We apply the framework to evaluate the shard allocation subprotocols of seven state-of-the-art sharded blockchains, and show that none of them is fully correct or achieves satisfactory performance. We attribute these deficiencies to their extreme choices between two performance metrics: self-balance and operability. We observe and prove the fundamental trade-off between these two metrics, and identify a new property memory-dependency that enables parameterisation over this trade-off. Based on these insights, we propose Wormhole, a correct and efficient shard allocation protocol with minimal security assumptions and parameterisable self-balance and operability. We implement Wormhole and evaluate its overhead and performance metrics in a network with 128 shards and 32768 nodes. The results show that Wormhole introduces little overhead, achieves consistent self-balance and operability with our theoretical analysis, and allows the system to recover quickly from load imbalance.

References

[1]
[n.d.]. Privacy pass: Bypassing internet challenges anonymously,. ([n. d.]).
[2]
2020. Brazilian Beacon. https://beacon.inmetro.gov.br/.
[3]
2020. cargo-bench: Execute benchmarks of a package. (2020). https://doc.rust-lang.org/cargo/commands/cargo-bench.html.
[4]
2020. crates/bitvec. (2020). https://crates.io/crates/bitvec.
[5]
2020. crates/rand. (2020). https://crates.io/crates/rand.
[6]
2020. crates/rug. (2020). https://crates.io/crates/rug.
[7]
2020. criterion.rs: Statistics-driven benchmarking library for Rust. (2020). https://github.com/bheisler/criterion.rs.
[8]
2020. Distributed Randomness Beacon | Cloudflare. https://www.cloudflare.com/leagueofentropy/.
[9]
2020. Drand - Distributed Randomness Beacon. https://drand.love/.
[10]
2020. Ethereum Sharding: Overview and Finality. (2020). https://medium.com/@icebearhww/ethereum-sharding-and-finality-65248951f649.
[11]
2020. ethereum/eth2.0-specs. https://github.com/ethereum/eth2.0-specs.
[12]
2020. ethereum/wiki. https://eth.wiki/sharding/.
[13]
2020. On sharding blockchains FAQs. https://eth.wiki/sharding/Sharding-FAQs.
[14]
2020. RANDAO: A DAO working as RNG of Ethereum. https://github.com/randao/randao.
[15]
2020. Random UChile - Random UChile. https://beacon.clcert.cl/en/.
[16]
2020. Schnorr VRFs and signatures on the Ristretto group. (2020). https://github.com/w3f/schnorrkel.
[17]
2020. The Ristretto Group. (2020). https://ristretto.group/.
[18]
2020. The Zilliqa Design Story Piece by Piece: Part 1 (Network Sharding). (2020). https://blog.zilliqa.com/https-blog-zilliqa-com-the-zilliqa-design-story-piece-by-piece-part1-d9cb32ea1e65.
[19]
2020. Unicorn beacon by LACAL. http://trx.epfl.ch/beacon/index.php.
[20]
2020. Warp Sync - Wiki Parity Tech Documentation. https://wiki.parity.io/Warp-Sync.
[21]
2020. Zilliqa - The Next Generation, High Throughput Blockchain Platform. https://zilliqa.com/.
[22]
2020. Zilliqa Developer Portal · Technical and API documentation for participating in the Zilliqa network. https://dev.zilliqa.com/.
[23]
2020. Zilliqa/Zilliqa at v5.0.1. https://github.com/Zilliqa/Zilliqa/tree/v5.0.1.
[24]
Mustafa Al-Bassam, Alberto Sonnino, Shehar Bano, Dave Hrycyszyn, and George Danezis. 2018. Chainspace: A sharded smart contracts platform. In 25th Annual Network and Distributed System Security Symposium, NDSS 2018.
[25]
Mohammad Javad Amiri, Divyakant Agrawal, and Amr El Abbadi. 2021. Sharper: Sharding permissioned blockchains over network clusters. In Proceedings of the 2021 International Conference on Management of Data. 76--88.
[26]
Muthukaruppan Annamalai, Kaushik Ravichandran, Harish Srinivas, Igor Zinkovsky, Luning Pan, Tony Savor, David Nagle, and Michael Stumm. 2018. Sharding the shards: managing datastore locality at scale with Akkio. In 13th USENIX Symposium on Operating Systems Design and Implementation (OSDI 18). 445--460.
[27]
Brice Augustin, Timur Friedman, and Renata Teixeira. 2007. Measuring load-balanced paths in the Internet. In Proceedings of the 7th ACM SIGCOMM conference on Internet measurement. 149--160.
[28]
Georgia Avarikioti, Eleftherios Kokoris-Kogias, and Roger Wattenhofer. 2019. Divide and Scale: Formalization of Distributed Ledger Sharding Protocols. arXiv preprint arXiv:1910.10434 (2019).
[29]
Baruch Awerbuch and Christian Scheideler. 2006. Robust random number generation for peer-to-peer systems. In International Conference On Principles Of Distributed Systems. Springer.
[30]
Vivek Bagaria, Amir Dembo, Sreeram Kannan, Sewoong Oh, David Tse, Pramod Viswanath, Xuechao Wang, and Ofer Zeitouni. 2019. Proof-of-stake longest chain protocols: Security vs predictability. arXiv preprint arXiv:1910.02218 (2019).
[31]
Niko Barić and Birgit Pfitzmann. 1997. Collision-free accumulators and fail-stop signature schemes without trees. In International conference on the theory and applications of cryptographic techniques. Springer, 480--494.
[32]
Juan Benet and Nicola Greco. 2018. Filecoin: A decentralized storage network. Protocol Labs (2018), 1--36.
[33]
Joseph Bonneau, Jeremy Clark, and Steven Goldfeder. 2015. On Bitcoin as a public randomness source. IACR Cryptol. ePrint Arch. 2015 (2015), 1015.
[34]
Vitalik Buterin. 2020. Serenity Design Rationale. https://notes.ethereum.org/@vbuterin/rkhCgQteN?type=view.
[35]
Christian Cachin, Klaus Kursawe, and Victor Shoup. 2005. Random oracles in Constantinople: Practical asynchronous Byzantine agreement using cryptography. Journal of Cryptology 18, 3 (2005), 219--246.
[36]
Ignacio Cascudo and Bernardo David. [n.d.]. ALBATROSS: publicly AttestabLe BATched Randomness based On Secret Sharing. ([n. d.]).
[37]
Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C Hsieh, Deborah A Wallach, Mike Burrows, Tushar Chandra, Andrew Fikes, and Robert E Gruber. 2008. Bigtable: A distributed storage system for structured data. ACM Transactions on Computer Systems (TOCS) 26, 2 (2008), 1--26.
[38]
Shuai Che, Gregory Rodgers, Brad Beckmann, and Steve Reinhardt. 2015. Graph coloring on the GPU and some techniques to improve load imbalance. In 2015 IEEE International Parallel and Distributed Processing Symposium Workshop. IEEE, 610--617.
[39]
Jeremy Clark and Urs Hengartner. 2010. On the Use of Financial Data as a Random Beacon. EVT/WOTE 89 (2010).
[40]
Brian F Cooper, Raghu Ramakrishnan, Utkarsh Srivastava, Adam Silberstein, Philip Bohannon, Hans-Arno Jacobsen, Nick Puz, Daniel Weaver, and Ramana Yerneni. 2008. PNUTS: Yahoo!'s hosted data serving platform. Proceedings of the VLDB Endowment 1, 2 (2008), 1277--1288.
[41]
George Danezis and Sarah Meiklejohn. 2016. Centrally banked cryptocurrencies. In 23rd Annual Network and Distributed System Security Symposium, NDSS 2016.
[42]
Hung Dang, Tien Tuan Anh Dinh, Dumitrel Loghin, Ee-Chien Chang, Qian Lin, and Beng Chin Ooi. 2019. Towards scaling blockchain systems via sharding. In Proceedings of the 2019 international conference on management of data. 123--140.
[43]
Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall, and Werner Vogels. 2007. Dynamo: Amazon's highly available key-value store. ACM SIGOPS operating systems review 41, 6 (2007), 205--220.
[44]
Christian Decker and Roger Wattenhofer. 2013. Information propagation in the bitcoin network. In IEEE P2P 2013 Proceedings. IEEE, 1--10.
[45]
Amir Dembo, Sreeram Kannan, Ertem Nusret Tas, David Tse, Pramod Viswanath, Xuechao Wang, and Ofer Zeitouni. 2020. Everything is a race and Nakamoto always wins. In Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security. 859--878.
[46]
David J DeWitt, Jeffrey F Naughton, and Donovan F Schneider. 1991. Parallel sorting on a shared-nothing architecture using probabilistic splitting. Technical Report. University of Wisconsin-Madison Department of Computer Sciences.
[47]
Prithula Dhungel, Di Wu, Brad Schonhorst, and Keith W Ross. 2008. A measurement study of attacks on BitTorrent leechers. In IPTPS, Vol. 8. 7--7.
[48]
Diego Didona and Willy Zwaenepoel. 2019. Size-aware sharding for improving tail latencies in in-memory key-value stores. In 16th USENIX Symposium on Networked Systems Design and Implementation (NSDI 19). 79--94.
[49]
Jochen Dinger and Hannes Hartenstein. 2006. Defending the Sybil attack in P2P networks: Taxonomy, challenges, and a proposal for self-registration. In First International Conference on Availability, Reliability and Security (ARES'06). IEEE, 8--pp.
[50]
Yevgeniy Dodis. 2003. Efficient construction of (distributed) verifiable random functions. In International Workshop on Public Key Cryptography. Springer, 1--17.
[51]
John R Douceur. 2002. The Sybil attack. In International workshop on peer-to-peer systems. Springer.
[52]
Cynthia Dwork, Nancy Lynch, and Larry Stockmeyer. 1988. Consensus in the presence of partial synchrony. Journal of the ACM (JACM) 35, 2 (1988), 288--323.
[53]
Naomi Ephraim, Cody Freitag, Ilan Komargodski, and Rafael Pass. 2020. Continuous verifiable delay functions. In Annual International Conference on the Theory and Applications of Cryptographic Techniques. Springer, 125--154.
[54]
Paul Feldman. 1987. A practical scheme for non-interactive verifiable secret sharing. In 28th Annual Symposium on Foundations of Computer Science (FOCS 1987).
[55]
Antonio Fernández, Vincent Gramoli, Ernesto Jiménez, Anne-Marie Kermarrec, and Michel Raynal. 2007. Distributed slicing in dynamic systems. In 27th International Conference on Distributed Computing Systems (ICDCS'07). IEEE, 66--66.
[56]
Philippe Flajolet and Robert Sedgewick. 2009. Analytic combinatorics. cambridge University press.
[57]
Juan Garay, Aggelos Kiayias, and Nikos Leonardos. 2015. The Bitcoin Backbone Protocol: Analysis and Applications. In Annual International Conference on the Theory and Applications of Cryptographic Techniques. Springer.
[58]
Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung. 2003. The Google file system. In Proceedings of the nineteenth ACM symposium on Operating systems principles. 29--43.
[59]
Sharon Goldberg, Jan Vcelak, Dimitrios Papadopoulos, and Leonid Reyzin. 2018. Verifiable random functions (VRFs). (2018).
[60]
Vincent Gramoli, Ymir Vigfusson, Ken Birman, Anne-Marie Kermarrec, and Robbert van Renesse. 2008. A fast distributed slicing algorithm. In Proceedings of the twenty-seventh ACM symposium on Principles of distributed computing. 427--427.
[61]
Suyash Gupta, Sajjad Rahnama, Jelle Hellings, and Mohammad Sadoghi. 2020. ResilientDB: Global Scale Resilient Blockchain Fabric. Proceedings of the VLDB Endowment 13, 6 (2020).
[62]
Runchao Han, Jiangshan Yu, and Haoyu Lin. 2020. RandChain: Decentralised Randomness Beacon from Sequential Proof-of-Work. IACR Cryptol. ePrint Arch. (2020).
[63]
Jelle Hellings and Mohammad Sadoghi. 2021. ByShard: Sharding in a Byzantine Environment. Proc. VLDB Endow (2021).
[64]
Susan Hohenberger and Brent Waters. 2010. Constructing verifiable random functions with large input spaces. In Annual International Conference on the Theory and Applications of Cryptographic Techniques. Springer, 656--672.
[65]
Mark Jelasity and A-M Kermarrec. 2006. Ordered slicing of very large-scale overlay networks. In Sixth IEEE International Conference on Peer-to-Peer Computing (P2P'06). IEEE, 117--124.
[66]
John Kelsey, Luís TAN Brandão, Rene Peralta, and Harold Booth. 2019. A reference for randomness beacons: Format and protocol version 2. Technical Report. National Institute of Standards and Technology.
[67]
Eleftherios Kokoris-Kogias, Philipp Jovanovic, Linus Gasser, Nicolas Gailly, Ewa Syta, and Bryan Ford. 2018. Omniledger: A secure, scale-out, decentralized ledger via sharding. In 2018 IEEE Symposium on Security and Privacy (SP). IEEE, 583--598.
[68]
Michał Król, Onur Ascigil, Sergi Rene, Alberto Sonnino, Mustafa Al-Bassam, and Etienne Rivière. 2021. Shard Scheduler: object placement and migration in sharded account-based blockchains. In Proceedings of the 3rd ACM Conference on Advances in Financial Technologies. 43--56.
[69]
Yoram Kulbak, Danny Bickson, et al. 2005. The eMule protocol specification. eMule project, http://sourceforge.net (2005).
[70]
Avinash Lakshman and Prashant Malik. 2010. Cassandra: a decentralized structured storage system. ACM SIGOPS Operating Systems Review 44, 2 (2010), 35--40.
[71]
Arjen K Lenstra and Benjamin Wesolowski. 2015. A random zoo: sloth, unicorn, and trx. IACR Cryptol. ePrint Arch. 2015 (2015), 366.
[72]
Chuang Lin, Yixin Jiang, Xiaowen Chu, and Hongkun Yang. 2009. An effective early warning scheme against pollution dissemination for BitTorrent. In GLOBECOM 2009-2009 IEEE Global Telecommunications Conference. IEEE, 1--7.
[73]
Xiaosong Lou and Kai Hwang. 2009. Collusive piracy prevention in P2P content delivery networks. IEEE Trans. Comput. 58, 7 (2009), 970--983.
[74]
Loi Luu, Viswesh Narayanan, Chaodong Zheng, Kunal Baweja, Seth Gilbert, and Prateek Saxena. 2016. A secure sharding protocol for open blockchains. In Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. ACM, 17--30.
[75]
Francisco Maia, Miguel Matos, Rui Oliveira, and Etienne Riviere. 2013. Slicing as a distributed systems primitive. In 2013 Sixth Latin-American Symposium on Dependable Computing. IEEE, 124--133.
[76]
Silvio Micali, Michael Rabin, and Salil Vadhan. 1999. Verifiable random functions. In 40th Annual Symposium on Foundations of Computer Science. IEEE.
[77]
Joachim Neu, Ertem Nusret Tas, and David Tse. 2020. Ebb-and-flow protocols: A resolution of the availability-finality dilemma. arXiv preprint arXiv:2009.04987 (2020).
[78]
Alan V Oppenheim. 1999. Discrete-time signal processing. Pearson Education.
[79]
Marshall Pease, Robert Shostak, and Leslie Lamport. 1980. Reaching agreement in the presence of faults. Journal of the ACM (JACM) 27, 2 (1980), 228--234.
[80]
Johan Pouwelse, Paweł Garbacki, Dick Epema, and Henk Sips. 2005. The bittorrent P2P file-sharing system: Measurements and analysis. In International Workshop on Peer-to-Peer Systems. Springer, 205--216.
[81]
Xiaoyao Qian. 2018. Improved authenticated data structures for blockchain synchronization. Ph.D. Dissertation.
[82]
Venugopalan Ramasubramanian and Emin Gün Sirer. 2004. The design and implementation of a next generation name service for the internet. ACM SIGCOMM Computer Communication Review 34, 4 (2004), 331--342.
[83]
Sylvia Ratnasamy, Paul Francis, Mark Handley, Richard Karp, and Scott Shenker. 2001. A scalable content-addressable network. In Proceedings of the 2001 conference on Applications, technologies, architectures, and protocols for computer communications. 161--172.
[84]
Andrea W Richa, M Mitzenmacher, and R Sitaraman. 2001. The power of two random choices: A survey of techniques and results. Combinatorial Optimization 9 (2001), 255--304.
[85]
Muhammad Saad, Songqing Chen, and David Mohaisen. 2021. Root Cause Analyses for the Deteriorating Bitcoin Network Synchronization. In 2021 IEEE 41st International Conference on Distributed Computing Systems (ICDCS). IEEE, 239--249.
[86]
Muhammad Saad, Songqing Chen, and David Mohaisen. 2021. SyncAttack: Double-spending in Bitcoin Without Mining Power. In Proceedings of the 2021 ACM SIGSAC Conference on Computer and Communications Security. 1668--1685.
[87]
Suryanarayana Sankagiri, Xuechao Wang, Sreeram Kannan, and Pramod Viswanath. 2020. Blockchain CAP Theorem Allows User-Dependent Adaptivity and Finality. arXiv preprint arXiv:2010.13711 (2020).
[88]
Philipp Schindler, Aljosha Judmayer, Nicholas Stifter, and Edgar Weippl. 2020. HydRand: Efficient Continuous Distributed Randomness. In 2020 IEEE Symposium on Security and Privacy (SP). 32--48.
[89]
Berry Schoenmakers. 1999. A simple publicly verifiable secret sharing scheme and its application to electronic voting. In Annual International Cryptology Conference. Springer, 148--164.
[90]
Siddhartha Sen and Michael J Freedman. 2012. Commensal Cuckoo: Secure group partitioning for large-scale services. ACM SIGOPS Operating Systems Review 46, 1 (2012), 33--39.
[91]
Daniel Stutzbach and Reza Rejaie. 2006. Understanding churn in peer-to-peer networks. In Proceedings of the 6th ACM SIGCOMM conference on Internet measurement. ACM.
[92]
Ewa Syta, Philipp Jovanovic, Eleftherios Kokoris Kogias, Nicolas Gailly, Linus Gasser, Ismail Khoffi, Michael J Fischer, and Bryan Ford. 2017. Scalable bias-resistant distributed randomness. In 2017 IEEE Symposium on Security and Privacy (SP).
[93]
Ewa Syta, Iulia Tamas, Dylan Visher, David Isaac Wolinsky, Philipp Jovanovic, Linus Gasser, Nicolas Gailly, Ismail Khoffi, and Bryan Ford. 2016. Keeping authorities "honest or bust" with decentralized witness cosigning. In 2016 IEEE Symposium on Security and Privacy (SP). IEEE.
[94]
Zilliqa Team et al. 2017. The Zilliqa Technical Whitepaper. Retrieved September (2017).
[95]
Gang Wang, Zhijie Jerry Shi, Mark Nixon, and Song Han. 2019. SoK: Sharding on Blockchain. In Proceedings of the 1st ACM Conference on Advances in Financial Technologies, AFT 2019.
[96]
Jiaping Wang and Hao Wang. 2019. Monoxide: Scale out Blockchains with Asynchronous Consensus Zones. In 16th USENIX Symposium on Networked Systems Design and Implementation (NSDI 19).
[97]
Andrew Chi-Chih Yao. 1979. Some complexity questions related to distributive computing (preliminary report). In Proceedings of the eleventh annual ACM symposium on Theory of computing. 209--213.
[98]
Mahdi Zamani, Mahnush Movahedi, and Mariana Raykova. 2018. Rapidchain: Scaling blockchain via full sharding. In Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security. ACM, 931--948.
[99]
Alexei Zamyatin, Mustafa Al-Bassam, Dionysis Zindros, Eleftherios Kokoris-Kogias, Pedro Moreno-Sanchez, Aggelos Kiayias, and William J Knottenbelt. 2019. Sok: Communication across distributed ledgers. Technical Report. IACR Cryptology ePrint Archive, 2019: 1128.
[100]
Jun Zhao, Jiangshan Yu, and Joseph K Liu. 2019. Consolidating Hash Power in Blockchain Shards with a Forest. In International Conference on Information Security and Cryptology. Springer, 309--322.

Cited By

View all
  • (2024)Correlation and Workload-Based Transaction Allocation Algorithm for Blockchain Sharding2024 IEEE International Symposium on Parallel and Distributed Processing with Applications (ISPA)10.1109/ISPA63168.2024.00268(1968-1973)Online publication date: 30-Oct-2024
  • (2024)Sharding:A Scalability Solutions for Blockchain Networks2024 IEEE International Conference on Blockchain and Distributed Systems Security (ICBDS)10.1109/ICBDS61829.2024.10837088(1-8)Online publication date: 17-Oct-2024
  • (2024)TbDd: A new trust-based, DRL-driven framework for blockchain sharding in IoTComputer Networks10.1016/j.comnet.2024.110343244(110343)Online publication date: May-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
AFT '22: Proceedings of the 4th ACM Conference on Advances in Financial Technologies
September 2022
330 pages
ISBN:9781450398619
DOI:10.1145/3558535
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 05 July 2023

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Conference

AFT '22

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)70
  • Downloads (Last 6 weeks)2
Reflects downloads up to 03 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Correlation and Workload-Based Transaction Allocation Algorithm for Blockchain Sharding2024 IEEE International Symposium on Parallel and Distributed Processing with Applications (ISPA)10.1109/ISPA63168.2024.00268(1968-1973)Online publication date: 30-Oct-2024
  • (2024)Sharding:A Scalability Solutions for Blockchain Networks2024 IEEE International Conference on Blockchain and Distributed Systems Security (ICBDS)10.1109/ICBDS61829.2024.10837088(1-8)Online publication date: 17-Oct-2024
  • (2024)TbDd: A new trust-based, DRL-driven framework for blockchain sharding in IoTComputer Networks10.1016/j.comnet.2024.110343244(110343)Online publication date: May-2024
  • (2023)TxAllo: Dynamic Transaction Allocation in Sharded Blockchain Systems2023 IEEE 39th International Conference on Data Engineering (ICDE)10.1109/ICDE55515.2023.00390(721-733)Online publication date: Apr-2023
  • (2023)Exploring Locality in Ethereum Transactions2023 5th Conference on Blockchain Research & Applications for Innovative Networks and Services (BRAINS)10.1109/BRAINS59668.2023.10317054(1-8)Online publication date: 11-Oct-2023
  • (2022)Blockchain Scaling Using Rollups: A Comprehensive SurveyIEEE Access10.1109/ACCESS.2022.320005110(93039-93054)Online publication date: 2022

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media