Mktree is a high-performance library that implements Merkle Trees using Rust + Elixir. It provides efficient cryptographic hashing and validation of data, making it suitable for blockchain applications and secure data structures.
✅ SHA256 hashing of individual leaves (hash_leaf/1)
✅ Building a complete Merkle tree (build_tree/1)
✅ Computing the Merkle Root (compute_root/1)
✅ Generating an inclusion proof (generate_proof/2)
✅ Verifying inclusion proofs (verify_proof/3)
The package can be installed by adding mktree to your list of dependencies in mix.exs:
def deps do
[
{:mktree, "~> 0.1.0"}
]
end# Install dependencies
mix deps.get
# Compile the Rust NIF
cargo build
# Compile Elixir module
mix compile# Define transaction data
leaves = ["tx1", "tx2", "tx3", "tx4"]
# Build Merkle tree
tree = Mktree.build_tree(leaves)
# Compute Merkle Root
root = Mktree.compute_root(leaves)
IO.puts("Merkle Root: #{root}")
# Generate an inclusion proof for "tx3"
proof = Mktree.generate_proof(leaves, "tx3")
IO.inspect(proof, label: "Proof generated for tx3")
# Verify proof
is_valid = Mktree.verify_proof("tx3", proof, root)
IO.puts("Proof validity for tx3: #{is_valid}")Contributions are welcome! Feel free to open issues or submit pull requests.
This project is licensed under MIT License.