
Merkle tree adalah struktur data hierarkis yang mengonsolidasikan data dalam jumlah besar ke dalam satu “root hash.” Dengan desain ini, Anda dapat memverifikasi apakah suatu data tertentu terdapat dalam satu kumpulan data tanpa perlu mengunduh seluruh datanya.
Hash dapat diibaratkan sebagai “sidik jari”: setiap input yang diproses melalui algoritma kriptografi (seperti SHA‑256 yang lazim dipakai pada Bitcoin) akan menghasilkan string dengan panjang tetap. Input yang sama selalu menghasilkan output identik, sementara perubahan sekecil apa pun akan menghasilkan hash yang benar-benar berbeda. Dalam Merkle tree, setiap data di-hash menjadi “daun” pada pohon. Pasangan hash daun kemudian digabung dan di-hash ulang untuk membentuk “parent node.” Proses ini berlangsung berlapis hingga menghasilkan “root hash” paling atas (disebut juga Merkle root).
Merkle tree bekerja dengan menggabungkan dan meng-hash pasangan hash yang bersebelahan secara berulang dari lapisan terbawah ke atas, hingga terbentuk root hash unik yang menjadi komitmen atas seluruh dataset.
Contohnya, terdapat empat transaksi: TxA, TxB, TxC, dan TxD.
Jika jumlah daun ganjil, biasanya daun terakhir diduplikasi atau digunakan aturan placeholder agar setiap lapisan tetap bisa dipasangkan. Keunggulan utamanya, selama fungsi hash aman, perubahan sekecil apa pun pada data akan tercermin pada root hash, sehingga pemalsuan data nyaris mustahil.
Merkle tree sangat ideal untuk verifikasi inklusi yang efisien dan sinkronisasi ringan, sehingga cocok digunakan dalam pengelolaan dataset berskala besar.
Pada skenario light client, pengguna hanya membutuhkan root hash dari block header dan sejumlah kecil “branch hash” (Merkle proof) untuk memastikan suatu data termasuk dalam set tersebut. Merkle proof berfungsi sebagai “potongan puzzle” di sepanjang jalur dari daun ke root—memungkinkan pengguna merekonstruksi root hash secara berlapis hanya dengan sebagian hash.
Pada solusi cross-chain dan Rollup, Merkle tree digunakan untuk mengommit batch transaksi atau perubahan state. Main chain hanya menyimpan root hash, sehingga ruang penyimpanan lebih efisien dan validasi lebih mudah dilakukan.
Pada proof-of-reserves exchange, Merkle tree digunakan untuk meng-hash setiap entri aset pengguna sebagai node daun, lalu mengonsolidasikannya menjadi root hash yang diumumkan ke publik. Gate, misalnya, memberikan pengguna root hash dan hash entri anonim beserta branch hash. Ini memungkinkan pengguna memverifikasi secara independen bahwa aset mereka tercakup dalam total—namun pengguna juga harus memperhatikan waktu snapshot dan cakupan audit.
Per Desember 2025, Merkle tree dan variannya tetap menjadi struktur fundamental bagi blockchain publik utama dan jaringan layer 2 karena biaya verifikasi yang rendah dan kemudahan implementasi.
Di Bitcoin, setiap block header mencatat Merkle root dari seluruh transaksi yang termasuk dalam blok tersebut.
Light client umumnya hanya mengunduh block header (sekitar 80 byte per header), bukan seluruh data transaksi. Untuk memverifikasi apakah pembayaran terdapat dalam blok tertentu, jaringan menyediakan Merkle proof (serangkaian branch hash untuk transaksi tersebut). Light client kemudian menghitung hash dari transaksi hingga ke branch secara berurutan; jika hasil akhirnya cocok dengan Merkle root pada block header, transaksi tersebut dipastikan masuk dalam blok tersebut.
Proses ini dikenal dengan SPV (Simplified Payment Verification). Keunggulannya adalah kebutuhan bandwidth dan storage yang sangat rendah—ideal untuk perangkat mobile atau embedded. Namun, SPV hanya memverifikasi inklusi; tidak memberikan perlindungan terhadap double-spending atau memastikan stabilitas chain. Pengguna tetap harus memperhatikan konfirmasi blok dan keamanan jaringan.
Ethereum menggunakan varian Merkle tree untuk menyimpan state akun dan kontrak; struktur yang digunakan adalah “Merkle Patricia Tree,” yang menambahkan kompresi prefix dan penyimpanan key-value terurut untuk lookup dan update yang efisien.
Pada Rollup, operator mengelompokkan batch transaksi atau saldo pengguna ke dalam Merkle tree dan secara periodik mengirim root hash ke main chain. Mekanisme ini—disebut “state commitment”—memungkinkan data detail tidak disimpan on-chain, namun siapa pun dapat menggunakan Merkle proof untuk memverifikasi apakah saldo atau transaksi tertentu termasuk dalam batch. Banyak zk-Rollup menggunakan fungsi hash ramah sirkuit (seperti Poseidon) untuk konstruksi pohon, namun prinsip verifikasinya tetap sama.
Per Desember 2025, mayoritas solusi layer 2 utama masih menggunakan Merkle root untuk batch state proof dan mengombinasikannya dengan solusi data availability—mempublikasikan raw data baik di on-chain maupun di layer khusus—untuk memastikan siapa pun dapat merekonstruksi dan memverifikasi perubahan state.
Verifikasi Merkle proof dilakukan dengan memulai dari leaf hash dan menggabungkannya secara berurutan dengan branch hash yang tersedia hingga mencapai root hash yang diketahui.
Langkah 1: Kumpulkan data yang diperlukan. Anda membutuhkan: (1) Hash data yang diverifikasi (leaf hash); (2) daftar branch hash yang terurut; (3) root hash target. Informasi arah (kiri/kanan) menentukan urutan penggabungan hash di setiap langkah.
Langkah 2: Mulai dari daun. Sesuai urutan pada setiap level, gabungkan leaf hash dengan branch hash terkait, kemudian hash untuk mendapatkan parent node.
Langkah 3: Ulangi proses tersebut dengan branch hash berikutnya hingga hasil akhirnya diperoleh.
Langkah 4: Bandingkan hasil akhir dengan root hash. Jika hasil akhir identik dengan root hash yang dipublikasikan, data Anda dipastikan termasuk dalam batch; jika tidak, proof tidak valid.
Pada implementasi proof-of-reserves Gate, misalnya, pengguna menerima hash entri ID anonim, branch hash terkait, dan root hash. Dengan mengikuti langkah-langkah ini secara lokal, pengguna dapat memastikan “aset saya tercakup,” namun hal ini tidak berarti dana sudah on-chain atau dapat langsung ditarik—pengelolaan dana platform dan laporan audit tetap harus diperhatikan.
Keamanan Merkle tree sepenuhnya bergantung pada algoritma hash yang digunakan. Hash modern seperti SHA‑256 dan Keccak masih dianggap aman saat ini, namun secara teoretis dapat ditembus di masa mendatang; algoritma harus diperbarui sesuai konsensus industri.
Merkle tree hanya menyelesaikan verifikasi inklusi—tidak menjamin kebenaran atau kelengkapan data. Misalnya, proof-of-reserves hanya membuktikan suatu entri tercakup; tidak mencegah double-counting atau memastikan seluruh liabilitas diungkap. Audit pihak ketiga, aliran dana on-chain, dan jendela waktu perlu digunakan bersama untuk penilaian menyeluruh.
Biaya update dan desain tree juga penting. Dataset yang sering berubah memerlukan varian dan strategi penyimpanan yang efisien; jika tidak, pembaruan dapat menyebabkan komputasi ulang yang berlebihan. Kesalahan implementasi (seperti urutan atau penggabungan yang tidak konsisten) dapat menyebabkan kegagalan verifikasi atau celah keamanan.
Ketersediaan data juga menjadi faktor risiko. Jika data asli tidak dipublikasikan atau tidak dapat diakses, meski root hash tersedia, rekonstruksi dan audit menjadi sulit. Rollup mengatasi hal ini dengan mempublikasikan batch data di on-chain atau pada layer khusus untuk meningkatkan transparansi.
Inti konsep Merkle tree adalah “menggunakan hash sebagai sidik jari dan agregasi hierarkis”—memadatkan dataset besar menjadi satu root hash sehingga siapa pun dapat memverifikasi inklusi hanya dengan beberapa branch hash. Merkle tree menjadi fondasi model SPV Bitcoin, manajemen state Ethereum, komitmen state Rollup, serta sistem proof-of-reserves exchange. Untuk pemahaman praktis: mulai dengan membangun Merkle tree sederhana berisi delapan daun dan hitung root-nya secara manual; amati Merkle root blok Bitcoin di block explorer; lalu coba lakukan verifikasi lokal menggunakan materi proof-of-reserves Gate—menghubungkan teori dengan praktik secara bertahap.
Merkle tree menghubungkan data melalui beberapa lapisan hashing—perubahan pada lapisan mana pun akan mengubah root hash secara total. Verifikator cukup membandingkan root hash untuk mendeteksi perubahan dengan segera. Dengan desain ini, blockchain dapat memvalidasi volume transaksi besar dengan biaya minimal.
Light wallet tidak perlu mengunduh seluruh data transaksi—hanya block header dan Merkle root yang disimpan secara lokal. Saat Anda ingin memverifikasi transaksi, wallet akan meminta “Merkle proof” (jalur dari transaksi ke root) dari full node. Dengan beberapa langkah hashing saja, wallet dapat memastikan inklusi—memungkinkan verifikasi cepat bahkan di perangkat mobile tanpa sinkronisasi data blockchain berukuran besar.
Solusi Rollup memanfaatkan Merkle tree untuk memadatkan ribuan transaksi Layer 2 menjadi satu root hash yang dikirim ke Ethereum mainnet. Mainnet hanya perlu memverifikasi root ini untuk mengonfirmasi seluruh transaksi di bawahnya—biaya on-chain pun turun drastis. Pengguna memperoleh transaksi Layer 2 yang cepat dengan tetap mendapat jaminan keamanan setara mainnet.
Merkle root yang identik berarti kedua pohon memuat data yang sama persis dengan urutan identik. Ini sangat krusial di blockchain: jika set transaksi Anda menghasilkan root yang sama dengan milik miner atau validator, berarti Anda telah melihat daftar transaksi yang identik. Root yang berbeda menunjukkan adanya perubahan data.
SPV menjadi dasar light wallet di Bitcoin. Wallet hanya mengunduh block header (yang memuat Merkle root), bukan seluruh set transaksi. Untuk memverifikasi transaksi, wallet meminta “Merkle path” ke miner—meng-hash hingga ke atas untuk memastikan transaksinya termasuk dalam blok. Dengan cara ini, verifikasi tetap aman meski storage perangkat terbatas.


