Daftar isi
Apa itu pohon Merkle?
Bagaimana cara kerja pohon Merkle?
Mengapa Merkel Root digunakan dalam Bitcoin?
Pertambangan
memeriksa
Meringkaskan
Apa itu pohon Merkle?
Pada awal tahun 1980an, Ralph Merkle, seorang ilmuwan komputer terkenal di bidang kriptografi kunci publik, mengusulkan konsep pohon Merkle.
Struktur pohon Merkle dapat secara efektif memverifikasi integritas kumpulan data, dan lebih efektif dalam jaringan peer-to-peer yang mengharuskan peserta untuk berbagi dan memverifikasi informasi secara independen.
Fungsi hash merupakan inti dari struktur pohon Merkle. Oleh karena itu, kami menyarankan Anda memahami apa itu hashing sebelum melanjutkan artikel ini.
Bagaimana cara kerja pohon Merkle?
Misalkan Anda ingin mendownload file berukuran besar. Saat mengunduh perangkat lunak sumber terbuka, sering kali perlu dilakukan pemeriksaan apakah hash file yang diunduh cocok dengan yang dipublikasikan oleh pengembang. Jika cocok, kedua dokumen tersebut konsisten.
Jika hashnya tidak cocok, Anda berada dalam masalah. Entah Anda mengunduh file berbahaya yang menyamar sebagai perangkat lunak, atau Anda salah mengunduhnya, dan hasil akhirnya adalah file tersebut tidak dapat digunakan. Jika downloadnya salah pasti Anda akan merasa kesal karena sudah lama menunggu file terdownload. Sekarang jika Anda memulai dari awal lagi, Anda harus berharap masalah yang sama tidak akan terulang lagi.
Pernahkah Anda memikirkan, adakah cara yang lebih mudah untuk mengatasi masalah ini? Di sinilah peran pohon Merkle. Pohon Merkle dapat memecah file menjadi beberapa blok data. Misalnya, file berukuran 50 GB dapat dipecah menjadi 100 salinan, yang masing-masing berukuran 0,5 GB. Kemudian, Anda dapat mendownloadnya satu per satu. Beginilah cara kerja torrent.
Sumber file saat ini adalah nilai hash, yang disebut root Merkle. Nilai hash tunggal ini mewakili semua blok data yang membentuk file. Selain itu, akar Merkle membuat validasi data menjadi lebih mudah.
Untuk memudahkan pemahaman, kami beri contoh. Di bawah, file 8 GB dibagi menjadi delapan bagian, dan setiap fragmen diberi nama A hingga H. Setiap fragmen kemudian dicolokkan ke fungsi hash, menghasilkan delapan nilai hash yang berbeda.

Melalui fungsi hash, nilai hash dari delapan fragmen dihitung.
Semoga contoh penjelasan di atas mudah dipahami. Kami memiliki nilai hash dari semua fragmen. Jika salah satunya salah, dapatkah kami menemukan masalahnya dengan membandingkannya dengan file sumber? Mungkin, tapi masih sangat tidak efisien. Jika file memiliki puluhan ribu fragmen, apakah kita perlu meng-hash semua fragmen dan membandingkan hasilnya secara detail?
tidak perlu. Kita hanya perlu menggabungkan sepasang nilai hash dan melakukan operasi hash gabungan. Artinya, kita melakukan hash dengan hA + hB, hC + hD, hE + hF, dan hG + hH. Hasilnya akan menjadi empat nilai hash. Kami kemudian melanjutkan ke putaran hash gabungan berikutnya hingga kami mendapatkan dua nilai hash. Kedua nilai hash ini kemudian digabungkan dan akhirnya diperoleh nilai hash utama yaitu Merkle root (disebut juga nilai hash root).

Strukturnya terlihat seperti pohon yang terbalik. Barisan daun terbawah bergabung satu sama lain untuk membuat simpul, dan akhirnya akar.
Sekarang kita memiliki root Merkle yang mewakili file yang diunduh. Bandingkan hash root dengan nilai file sumber, dan jika cocok, semua orang akan senang! Jika nilai hashnya berbeda, itu membuktikan bahwa data telah dirusak. Dengan kata lain, satu atau lebih fragmen menghasilkan nilai hash yang berbeda. Oleh karena itu, modifikasi data kecil sekalipun dapat sepenuhnya mengubah akar Merkel.
Untungnya, memeriksa segmen yang salah juga mudah. Asumsikan kesalahannya adalah dia. Pertama, kami meminta dua hash kepada orang lain (hABCD dan hEFGH) untuk menghasilkan root Merkle. Nilai hABCD kita harus sesuai dengan nilai lainnya, membuktikan bahwa subpohon bebas dari kesalahan. Jika hEFGH tidak cocok, kami dapat memperbaiki kesalahannya dari sini. Kemudian tanyakan hash hEF dan hGH orang lain dan bandingkan dengan hash Anda sendiri. Jika hGH baik-baik saja, hEF adalah penyebabnya. Terakhir, kami membandingkan nilai hash hE dan hF. Setelah kami menemukan bahwa sumber kesalahannya adalah hE, kami dapat mengunduh ulang blok data tersebut.
Singkatnya, fungsi pohon Merkle adalah membagi data menjadi beberapa bagian, kemudian melakukan operasi hash berulang kali hingga akhirnya membentuk akar Merkle, sehingga dapat secara efektif memverifikasi di mana letak data yang salah tersebut. Di bagian selanjutnya, kami akan memperkenalkan aplikasi menarik lainnya.
Ingin memulai perjalanan cryptocurrency Anda? Kunjungi Binance dan beli Bitcoin sekarang!
Mengapa Merkel Root digunakan dalam Bitcoin?
Ada banyak kasus penggunaan pohon Merkle, namun artikel ini berfokus pada peran pentingnya dalam blockchain. Bitcoin dan banyak mata uang kripto tidak dapat dipisahkan dari pohon Merkle. Pohon Merkle merupakan bagian integral dari setiap blok, biasanya terletak di header blok. Melalui nilai hash transaksi (TXID) dari setiap transaksi di blok, kita bisa mendapatkan daunnya.
Dalam konteks ini, akar Merkel memiliki beberapa tujuan. Mari kita lihat penerapan Merkle Root dalam penambangan cryptocurrency dan verifikasi transaksi.
Pertambangan
Blok Bitcoin terdiri dari dua bagian. Bagian pertama adalah header blok, yang ukurannya tetap dan berisi metadata blok. Bagian kedua adalah badan blok, yang ukurannya bervariasi tetapi biasanya jauh lebih besar daripada header blok dan berisi daftar transaksi.
Penambang perlu berulang kali melakukan hashing pada data hingga diperoleh hasil yang memenuhi kondisi tertentu sebelum mereka dapat menggali blok yang valid. Untuk mendapatkan hasil yang benar, mereka perlu mencoba triliunan kali. Dengan setiap upaya, penambang mengubah nomor acak di header blok, nilai Nonce, untuk menghasilkan hasil yang berbeda. Namun, blok lainnya tetap sama, dan ribuan transaksi di dalamnya masih perlu di-hash setiap saat.
Merkel telah menyederhanakan prosesnya secara signifikan. Saat penambangan dimulai, semua antrian transaksi dikemas dan dibangun ke dalam pohon Merkle, dan nilai hash root 32-bit yang dihasilkan ditempatkan di header blok. Maka, tidak perlu melakukan hash pada seluruh blok, cukup header bloknya.
Metode ini mencegah gangguan data dan oleh karena itu efektif, memungkinkan semua transaksi dalam satu blok diringkas secara efisien dalam bentuk yang ringkas. Daftar transaksi header blok yang valid tidak dapat diubah, jika tidak, akar Merkle akan diubah. Setelah blok dikirim ke node lain, hash root dihitung dari daftar transaksi. Jika tidak sesuai dengan nilai pada header blok, maka blok tersebut dapat ditolak.
memeriksa
Ada properti menarik lainnya yang dapat kita gunakan dari akar Merkle, yang berkaitan dengan penerapan klien ringan (node yang tidak menyimpan salinan lengkap dari blockchain). Jika Anda menjalankan node pada perangkat dengan sumber daya terbatas, Anda tidak ingin mengunduh dan melakukan hashing pada semua transaksi dalam satu blok. Sebagai gantinya, Anda cukup meminta bukti Merkle, yang merupakan bukti yang diberikan oleh node penuh bahwa suatu transaksi termasuk dalam blok tertentu. Bukti ini lebih dikenal sebagai Verifikasi Pembayaran Sederhana, atau SPV, dan dirinci dalam kertas putih Bitcoin oleh Satoshi Nakamoto.

Untuk memeriksa hd, cukup verifikasi hash merah.
Asumsikan kita ingin memperoleh informasi transaksi tentang TXID hD. Jika hC diketahui, hCD dapat dihitung. Kemudian melalui hAB, hABCD dapat dihitung. Terakhir, dengan mengacu pada hEFGH, Anda dapat memeriksa apakah root Merkle yang dihitung konsisten dengan hash root di header blok. Pencocokan yang berhasil membuktikan bahwa transaksi tersebut termasuk dalam blok, karena hampir tidak mungkin menghasilkan hash yang sama menggunakan data yang berbeda.
Dalam contoh di atas, kami hanya melakukan hashing tiga kali. Tanpa sertifikasi Merkel, dibutuhkan tujuh proyek. Blok saat ini berisi ribuan transaksi, dan bukti Merkle menghemat banyak waktu dan daya komputasi.
Meringkaskan
Pohon Merkle telah membuktikan dirinya penting dalam aplikasi ilmu komputer, dan seperti yang telah kita lihat, pohon Merkle juga berharga dalam blockchain. Pohon Merkle membuat verifikasi informasi dalam sistem terdistribusi menjadi lebih nyaman dan menghindari kemacetan data yang berlebihan dalam jaringan.
Tanpa pohon Merkle dan akar Merkle, Bitcoin dan blok mata uang kripto lainnya tidak akan sekompak sekarang. Meskipun klien ringan tidak memiliki keunggulan dalam hal privasi dan keamanan, dengan bukti Merkle, pengguna dapat memverifikasi bahwa transaksi dimasukkan dalam blok dengan biaya minimal.

