Authors:
(1) Oleksandr Kuznetsov, Proxima Labs, 1501 Larkin Street, suite 300, San Francisco, USA and Department of Political Sciences, Communication and International Relations, University of Macerata, Via Crescimbeni, 30/32, 62100 Macerata, Italy (kuznetsov@karazin.ua);
(2) Dzianis Kanonik, Proxima Labs, 1501 Larkin Street, suite 300, San Francisco, USA;
(3) Alex Rusnak, Proxima Labs, 1501 Larkin Street, suite 300, San Francisco, USA (alex@proxima.one);
(4) Anton Yezhov, Proxima Labs, 1501 Larkin Street, suite 300, San Francisco, USA;
(5) Oleksandr Domin, Proxima Labs, 1501 Larkin Street, suite 300, San Francisco, USA.
Table of Links
1.1. The Blockchain Paradigm and the Challenge of Scalability
1.3. Our contribution and 1.4. Article structure
2. Conceptualizing the Problem
3. Our Idea for Optimizing Trees in Blockchain
4. Efficiency of adaptive Merkle trees
5. Algorithm for Merkle Tree Restructuring
6.2. Example 1.1: Binary Tree Restructuring Through Leaf Node Swapping
6.3. Example 2.1: Restructuring a Non-Binary Tree by Adding a Single Leaf
6.4. Example 2.2: Restructuring a Non-Binary Tree Through Leaf Pair Swapping
6.5. Example 2.3: Restructuring a Patricia-Merkle Tree Fragment Through Leaf Pair Swapping
7. Path Encoding in the Adaptive Merkle Tree
8.2. Technology and Advantages
9.2. Comparison with Existing Solutions
5. Algorithm for Merkle Tree Restructuring
The restructuring of a Merkle Tree, aimed at optimizing its efficiency for blockchain applications, necessitates adherence to two primary criteria:
• Minimization of Altered Paths: The algorithm should limit modifications to a minimal subset of nodes, reflecting the reality that only a few accounts are activated in any given transaction, including complex smart transactions. This approach ensures that inactive accounts retain their positions and paths within the tree, preserving the integrity of user data and access pathways. To adhere to this criterion, the algorithm must maintain a list of leaves (nodes) eligible for restructuring, focusing solely on those affected by current transactions.
Restructuring Algorithm (A Single Iteration)
Input:
• A tree (or tree fragment) with its root, intermediate nodes, and leaves (the bottom layer of the tree nodes).
• The probability distribution (frequencies) of the tree's leaves.
• A set (list) of leaves available for restructuring.
• A new leaf and/or a new probability distribution for all tree leaves.
Output:
Algorithm Steps:
The most challenging aspect of this algorithm is Step 1, which involves generating all possible restructuring alternatives for the tree. This process is crucial for identifying the most efficient tree configuration that minimizes the average path length while accommodating the dynamic nature of blockchain transactions. To demonstrate the algorithm's functionality amidst the increasing number of alternatives, several illustrative examples will be provided, showcasing its application in various scenarios.
This paper is available on arxiv under CC by 4.0 Deed (Attribution 4.0 International) license.