Here’s an article about creating a Merkle tree that is effective in paste and cancellation operations:
Merkle trees for an effective extract
Merkle Fa is a data structure usually used in cryptographic applications, such as digital signatures and message authentication. This allows you to efficiently insert and delete the elements without recalling the entire tree.
In this article, we examine how to create a Merkle tree with efficient insertion and deletion operations with the order of existing organized elements.
Why choose an order?
The reason for arrangements for elements is that every node in a Merkle tree represents a hash value. When you insert or delete an item, you need to update all cutters. If you do not sort the batteries in advance, it is necessary to re -update any hash any other hash.
Create Merkle Tree
Here you can find one step by step creating a Merkle tree with effective insertion and cancellation operations:
- Choose a hash function : Choose a suitable hash function that meets your needs. General choices: SHA-256, MD5 or Blake2.
- Create an empty Merkle tree : Initialize the empty Merkle tree by creating nodes in the orderly order for each element.
Insert and delete items
This is how you can effectively insert and delete items:
insertion
To insert a new item into the Merkle tree, follow these steps:
- Calculate the hash value of the new element using the hash function you choose.
- Create a new node with the calculated hash value.
- Update all the extracts that point to the current position of the inserted element.
deletion
To delete an existing item from the Merkle tree, follow these steps:
- Identify the hash value of the deleted element its position in the orderly order.
- Calculate the hash of the new element in the same position.
- Update all hashs that point to the current position of the deleted element.
Effective updates
To update a single hash, you can use the following approach to recalculate any other hash:
- Identify the parent node that points to the updated element.
- Calculate the hash value of the child’s node using the hash function you choose.
- Refresh the hash value of the child node while the parent node hash remains unchanged.
Example Implementation
Here’s an example of implementation in Python:
`Python
Import hashlib
Merkletree Class:
Def __init __ (you, items):
Self.tree = {}
SELF.SORT_order = elements
Def Insert (Self, Item):
Position = 0
Although true:
hash_value = self.hash (item, position)
If the hash_value is not in itself:
node = hashlib.sha256 (hash_value.encode ()). Digest ()
Self.tree [hash_value] = node
break
Position += 1
DE DELETE (Self, item):
Position = 0
Although true:
hash_value = self.hash (item, position)
If the hash_value in Self.tree:
New_hash_value = Self.hash (Self.tree [hash_value], position)
Self.tree [hash_value] = new_hash_value
break
Position += 1
Def Hash (I, Element, Position):
The function of the chosen hash here
Return Hashlib.sha256 (Element + Str (Position)). Digest ()
Create a Merkle tree whose elements are in orderly order
Elements = [“Value1”, “Value2”, “Value3”]
FA = Merkletree (elements)
Insert an item to the end of the tree
Tree.insert (“new_value”)
Delete an existing item from the tree
tree.delete (“Old_value”)
`
In this example, we created a “Merkletree” class using methods to paste and delete elements.