Poin Penting

  • Pohon Merkle adalah struktur data kriptografi yang mengorganisir data menjadi pasangan hash, menggabungkannya ke atas hingga satu hash tunggal, akar Merkle, mewakili seluruh dataset.

  • Akar Merkle memungkinkan jaringan blockchain untuk memverifikasi apakah suatu transaksi termasuk dalam sebuah blok tanpa mengunduh seluruh blok, menggunakan bukti Merkle yang kompak yang skala logaritmik dengan jumlah transaksi.

  • Bitcoin menyisipkan akar Merkle di setiap header blok, memungkinkan klien ringan untuk memverifikasi transaksi hanya dengan menggunakan header blok, bukan seluruh blockchain.

  • Ethereum menggunakan Merkle Patricia Trie yang lebih kompleks untuk menyimpan saldo akun dan status kontrak pintar, membuat bukti status mungkin bagi klien ringan dan rollup layer-2.

BInance Academy courses banner

Pengantar

Pohon Merkle adalah salah satu ide dasar yang membuat sistem blockchain efisien dan dapat diverifikasi dalam skala besar. Mereka memungkinkan jaringan untuk meringkas keseluruhan dataset dalam satu sidik jari kriptografi sambil tetap memungkinkan untuk membuktikan bahwa transaksi atau potongan informasi tertentu termasuk. Untuk memahami mengapa pohon Merkle penting dalam desain blockchain, mari kita lihat bagaimana mereka bekerja, bagaimana jaringan yang berbeda menggunakannya, dan bagaimana struktur baru seperti pohon Verkle mungkin meningkatkan mereka di masa depan.

Bagaimana Cara Kerja Pohon Merkle

Pohon Merkle, dinamai menurut ilmuwan komputer Ralph Merkle yang mematenkan konsep ini pada tahun 1979, adalah struktur data yang digunakan untuk merangkum dan memverifikasi integritas dataset besar dengan efisien. Dalam blockchain, pohon Merkle mengompres ribuan transaksi menjadi satu nilai kompak yang disimpan dalam header blok.

Pohon ini dibangun dari bawah ke atas menggunakan fungsi hash kriptografi. Setiap node daun mengandung hash dari satu potongan data, seperti transaksi. Hash-hash daun ini kemudian dipasangkan: hash dari setiap pasangan dihitung dengan menggabungkan dua hash anak dan menghash hasilnya. Proses ini berulang ke atas, lapis demi lapis, hingga satu hash tersisa di bagian atas, yaitu akar Merkle.

Karena setiap node induk tergantung pada kedua anaknya, perubahan pada satu daun akan mengalir ke atas dan menghasilkan akar Merkle yang sama sekali berbeda. Properti ini menjadikan pohon Merkle alat yang efektif untuk mendeteksi pemalsuan: jika dua salinan dataset menghasilkan akar Merkle yang sama, dataset tersebut identik dengan probabilitas yang sangat tinggi.

Akar Merkle

Akar Merkle adalah hash ukuran tetap, biasanya 32 byte (256 bit) dalam aplikasi blockchain, yang bertindak sebagai sidik jari digital untuk seluruh dataset. Header blok dalam sebagian besar jaringan blockchain menyertakan akar Merkle bersama dengan metadata lainnya seperti stempel waktu dan hash blok sebelumnya, menjaga header tetap kecil sambil tetap secara kriptografis mengkomit seluruh set transaksi dalam blok.

Untuk mengilustrasikan dengan sederhana, mari kita lihat file 8GB yang dibagi menjadi delapan bagian. Sebutlah fragmen berbeda tersebut A hingga H. Setiap fragmen kemudian melalui fungsi hash, memberi kita delapan hash yang berbeda.

Fragments A-H and each of their hashes.
Setiap dari delapan fragmen dipanggil melalui fungsi hash untuk mendapatkan hash mereka.

Dengan hash semua fragmen, jika satu rusak, Anda akan tahu dengan membandingkannya dengan yang asli, bukan? Mungkin, tetapi ini juga bisa sangat tidak efisien. Jika file Anda memiliki ribuan fragmen, apakah Anda akan menghash semuanya dan membandingkan hasilnya secara teliti?

Akar Merkle memberikan solusi yang lebih elegan. Ambil setiap pasangan hash, gabungkan, lalu hash mereka bersama-sama. Anda akan mendapatkan hash hA + hB, hC + hD, hE + hF, dan hG + hH dan akhirnya mendapatkan empat hash.

Merkle root first and second round of hashes
Strukturnya terlihat seperti pohon terbalik. Di baris bawah, kita memiliki daun, yang digabungkan untuk menghasilkan node dan, akhirnya, akar.

Kemudian, satu putaran hashing lagi dan Anda akan mendapatkan dua: hABCD dan hEFGH. Terakhir, hash dua yang tersisa untuk mendapatkan hash master, dan Anda akan memiliki akar Merkle (atau root hash): hABCDEFGH.

Bukti Merkle dan Verifikasi

Salah satu fitur praktis dari pohon Merkle adalah kemampuan untuk membuktikan bahwa potongan data tertentu termasuk dalam dataset tanpa mengungkapkan seluruh dataset. Ini disebut bukti Merkle. Untuk memverifikasi bahwa suatu transaksi termasuk dalam sebuah blok, klien ringan hanya perlu transaksi itu sendiri, set kecil hash saudara di sepanjang jalur ke akar, dan akar Merkle dari header blok. Verifier menghitung ulang hash sepanjang jalur dan memeriksa apakah hasilnya cocok dengan akar yang diketahui. Jika cocok, transaksi secara matematis terbukti sebagai bagian dari blok.

Merkle verification example, three hash rounds
Untuk memeriksa hD, kita hanya perlu hash yang ditunjukkan dengan warna merah.

Mari kita lihat skenario di mana Anda ingin memverifikasi transaksi yang TXID nya adalah hD. Jika hC diberikan, Anda dapat menghitung hCD. Kemudian, gunakan hAB untuk menghitung hABCD. Terakhir, dengan hEFGH, periksa bahwa akar Merkle yang dihasilkan cocok dengan yang ada di header blok. Jika cocok, itu adalah bukti bahwa transaksi tersebut telah termasuk dalam blok. Akan sangat sulit untuk membuat hash yang sama dengan data yang berbeda.

Dalam contoh di atas, Anda hanya perlu melakukan hashing tiga kali. Tanpa bukti Merkle, Anda harus melakukannya tujuh kali. Karena blok-blok saat ini berisi ribuan transaksi, menggunakan bukti Merkle menghemat banyak waktu dan sumber daya komputasi.

Ukuran bukti tumbuh secara logaritmik dengan jumlah daun: untuk satu juta transaksi (pohon biner dengan kedalaman 20), hanya sekitar 20 hash yang diperlukan, sekitar 640 byte. Ini yang memungkinkan node ringan, kadang-kadang disebut klien Verifikasi Pembayaran Sederhana (SPV), untuk memverifikasi transaksi tanpa mengunduh seluruh blockchain, proses yang sebaliknya akan memerlukan ratusan gigabyte data.

Pohon Merkle dalam Jaringan Blockchain

Bitcoin dan verifikasi transaksi

Dalam Bitcoin, setiap header blok berisi akar Merkle 32 byte yang mengkomit semua transaksi dalam blok tersebut. Penambang Bitcoin membangun pohon Merkle dari transaksi yang mereka sertakan, dan akar yang dihasilkan disisipkan dalam header blok bersama dengan solusi Proof of Work. Desain ini berarti header blok, biasanya sekitar 80 byte, cukup untuk memverifikasi bahwa transaksi tertentu termasuk dalam blok, tanpa memerlukan transaksi lainnya.

Bitcoin juga menggunakan pohon Merkle dalam proposal MAST (Merkelized Abstract Syntax Trees) nya, yang memungkinkan kondisi pengeluaran yang kompleks dalam skrip Bitcoin untuk direpresentasikan sebagai pohon Merkle. Hanya cabang yang dieksekusi dari skrip yang perlu diungkapkan, menjaga kondisi yang tidak terpakai tetap privat dan mengurangi ukuran transaksi.

Ethereum dan bukti status

Ethereum menggunakan varian yang lebih canggih yang disebut Merkle Patricia Trie, sebuah struktur pohon hexary (16 cara) yang menyimpan saldo akun, kode kontrak, dan data penyimpanan. Berbeda dengan pohon Merkle biner sederhana yang digunakan untuk transaksi Bitcoin, Merkle Patricia Trie dirancang untuk mendukung pembaruan status yang sering: ketika saldo akun berubah, hanya jalur dari daun itu ke akar yang perlu dihitung ulang, bukan membangun ulang seluruh pohon.

Bukti status yang dihasilkan dari Merkle Patricia Trie memungkinkan klien ringan Ethereum dan rollup layer-2 untuk memverifikasi saldo akun dan penyimpanan kontrak tanpa menjalankan node penuh. Bukti ini juga penting untuk jembatan antar-rantai yang perlu memverifikasi peristiwa di satu rantai dari rantai lainnya.

Keterbatasan dan Pengembangan Masa Depan

Meskipun pohon Merkle menyediakan verifikasi yang efisien, ukuran bukti masih tumbuh secara logaritmik dengan dataset. Untuk Ethereum, seiring dengan pertumbuhan status, saksi blok, bukti yang diperlukan untuk memvalidasi sebuah blok, dapat mencapai beberapa megabyte. Ini menjadi tantangan skalabilitas bagi klien tanpa status, yang perlu menerima dan memverifikasi bukti ini untuk setiap blok.

Pohon Verkle, yang menggunakan komitmen vektor berdasarkan komitmen polinomial (Kate-Zaverucha-Goldberg, atau KZG) alih-alih hashing tradisional, menawarkan solusi potensial. Dengan mengelompokkan banyak anak di bawah setiap node (faktor percabangan 256), pohon Verkle menghasilkan bukti yang hampir konstan dalam ukuran, sekitar 170 byte, terlepas dari seberapa besar dataset. Ethereum sedang aktif mengembangkan integrasi pohon Verkle, dengan penerapan yang diharapkan dalam pembaruan mendatang. Transisi ini akan secara signifikan mengurangi beban data pada klien ringan dan meningkatkan skalabilitas jaringan secara keseluruhan.

FAQ

Apa itu pohon Merkle dalam istilah sederhana?

Pohon Merkle adalah cara untuk mengorganisir data sehingga satu potongan informasi kecil, akar Merkle, dapat mewakili seperangkat data yang besar. Ini bekerja dengan menghash pasangan data secara berulang hingga hanya satu hash yang tersisa, membuatnya mungkin untuk memverifikasi apakah item tertentu termasuk dalam set tanpa memeriksa setiap item secara individu.

Apa itu akar Merkle?

Akar Merkle adalah hash tunggal di bagian atas pohon Merkle. Ini bertindak sebagai sidik jari digital kompak untuk semua data di bawahnya. Dalam jaringan blockchain, akar Merkle disimpan dalam header blok dan mengkomit semua transaksi dalam blok tersebut, memungkinkan verifikasi yang efisien bahwa suatu transaksi adalah bagian dari blok.

Bagaimana cara kerja bukti Merkle?

Bukti Merkle menyediakan sebuah transaksi bersama dengan set hash saudara minimum yang diperlukan untuk menghitung ulang jalur dari transaksi tersebut hingga akar Merkle. Verifier menghash transaksi, menggabungkannya dengan saudara yang diberikan dalam urutan yang benar, dan memeriksa apakah hasil akhirnya cocok dengan akar Merkle yang diketahui dalam header blok. Jika cocok, transaksi terbukti termasuk.

Mengapa pohon Merkle penting untuk blockchain?

Pohon Merkle memungkinkan jaringan blockchain untuk memisahkan header blok dari data transaksi penuh. Klien ringan dapat mengunduh hanya header blok, sekitar 80 byte per blok, dan masih memverifikasi bahwa suatu transaksi telah termasuk, menggunakan bukti Merkle yang kompak. Tanpa pohon Merkle, memverifikasi transaksi akan memerlukan pengunduhan blok penuh atau seluruh rantai.

Apa perbedaan antara pohon Merkle dan pohon Verkle?

Keduanya adalah akumulator kriptografi yang digunakan untuk membuktikan keanggotaan data, tetapi mereka menggunakan matematika yang berbeda. Pohon Merkle menggunakan fungsi hash dan menghasilkan bukti yang ukurannya tumbuh logaritmik dengan dataset (O(log n)). Pohon Verkle menggunakan komitmen polinomial (KZG) dan menghasilkan bukti yang hampir konstan dalam ukuran, beberapa ratus byte terlepas dari ukuran dataset, menjadikannya lebih cocok untuk bukti status blockchain berskala besar.

Pemikiran Penutup

Pohon Merkle adalah batu penjuru arsitektur blockchain, memungkinkan verifikasi tanpa kepercayaan dalam skala besar. Dengan mengompresi seluruh blok transaksi ke dalam satu hash 32 byte, mereka memungkinkan peserta untuk memverifikasi data tanpa mengunduh semuanya, sebuah prinsip yang mendasari segala hal dari dompet SPV Bitcoin hingga bukti status Ethereum dan jembatan antar-rantai. Seiring jaringan blockchain terus tumbuh, struktur kriptografi yang lebih baru seperti pohon Verkle mungkin akhirnya melengkapi atau menggantikan pohon Merkle, tetapi konsep dasar, integritas data berbasis hash yang efisien, kemungkinan akan tetap menjadi blok bangunan fundamental sistem terdistribusi selama bertahun-tahun yang akan datang.

Bacaan Lanjut

  • Apa itu Algoritma Konsensus Blockchain?

  • Sejarah Kriptografi

  • Solusi Skalabilitas Blockchain Layer 1 vs. Layer 2

  • Apa itu Sharding dan Bagaimana Cara Kerjanya?

Pernyataan: Konten ini disajikan kepada Anda dengan dasar "apa adanya" untuk informasi umum dan tujuan pendidikan saja, tanpa representasi atau jaminan dari jenis apa pun. Ini tidak boleh ditafsirkan sebagai nasihat keuangan, hukum, atau profesional lainnya, juga tidak dimaksudkan untuk merekomendasikan pembelian produk atau layanan tertentu. Anda harus mencari nasihat Anda sendiri dari penasihat profesional yang tepat. Jika konten ini disumbangkan oleh kontributor pihak ketiga, harap dicatat bahwa pandangan yang diungkapkan adalah milik kontributor pihak ketiga, dan tidak mencerminkan pandangan Binance Academy. Harga aset digital bisa sangat fluktuatif. Nilai investasi Anda mungkin turun atau naik dan Anda mungkin tidak mendapatkan kembali jumlah yang diinvestasikan. Anda sepenuhnya bertanggung jawab atas keputusan investasi Anda dan Binance Academy tidak bertanggung jawab atas kerugian yang mungkin Anda alami. Untuk informasi lebih lanjut, lihat Ketentuan Penggunaan, Peringatan Risiko, dan Ketentuan Binance Academy.