Apa itu Pohon Merkle? Panduan Pemula untuk Komponen Blockchain ini

Merkle Trees adalah komponen fundamental dari blockchain yang mendukung fungsinya. Mereka memungkinkan verifikasi yang efisien dan aman terhadap struktur data yang besar, dan dalam kasus blockchain, kumpulan data yang berpotensi tidak terbatas.

Penerapan pohon Merkle di blockchain memiliki banyak efek. Hal ini memungkinkan mereka untuk melakukan penskalaan sekaligus menyediakan arsitektur berbasis hash bagi mereka untuk menjaga integritas data dan cara sederhana untuk memverifikasi integritas data.

Fungsi hash kriptografi adalah teknologi dasar yang memungkinkan pohon Merkle berfungsi, jadi pertama-tama, penting untuk memahami apa itu fungsi hash kriptografi.

Putusan Cepat: Pohon Merkle adalah struktur data yang terdiri dari hash kriptografi yang memungkinkan verifikasi integritas dan pemetaan kumpulan data besar secara efisien, menjadikannya komponen integral dari sistem seperti blockchain dan kontrol versi terdistribusi.


Fakta Singkat

Poin kunciDeskripsi Produk
Fungsi hash kriptografisFungsi hash yang mengambil masukan dengan ukuran berapa pun dan mengeluarkan nilai hash dengan panjang tetap. Digunakan di pohon Merkle.
struktur pohon merkleStruktur data pohon di mana setiap node non-daun merupakan hash dari node turunannya. Memungkinkan pemetaan dan verifikasi kumpulan data besar secara efisien.
Akar hashHash di bagian atas pohon Merkle yang mewakili hash seluruh pohon. Bertindak sebagai sidik jari untuk kumpulan data lengkap.
Bukti MerkleIzinkan verifikasi integritas dan posisi data di pohon tanpa memerlukan kumpulan data lengkap, hanya hash root.
Implementasi dalam BitcoinPohon Merkle menyimpan transaksi dalam blok. Hash root yang disimpan di header blok memungkinkan node SPV memverifikasi transaksi.
Implementasi blockchain lainnyaDigunakan di banyak blockchain seperti Ethereum yang menggunakan Merkle Patricia Trees yang lebih kompleks.
Sistem terdistribusiIzinkan sistem kontrol versi seperti Git & IPFS untuk dengan mudah memverifikasi data yang dibagikan antar rekan.

Fungsi Hash Kriptografis

Sederhananya, fungsi hash adalah fungsi apa pun yang digunakan untuk memetakan data dengan ukuran (input) sembarang ke output berukuran tetap. Algoritme hashing diterapkan pada masukan data dan keluaran dengan panjang tetap yang dihasilkan disebut sebagai hash.

Banyak algoritma hashing yang tersedia secara luas dan dapat dipilih berdasarkan kebutuhan Anda.

Hash yang dihasilkan dari masukan arbitrer tidak hanya panjangnya tetap, tetapi juga sepenuhnya unik untuk masukan tersebut dan fungsinya sendiri bersifat deterministik. Artinya, berapa kali pun Anda menjalankan fungsi pada masukan yang sama, keluarannya akan selalu sama.

Misalnya, jika Anda memiliki kumpulan data berikut sebagai masukan, keluaran yang dihasilkan unik untuk setiap masukan. Perhatikan bagaimana pada contoh kedua dan ketiga, walaupun selisih inputnya hanya satu kata, namun output yang dihasilkan sama sekali berbeda.

Hal ini sangat penting karena memungkinkan dilakukannya “sidik jari” data.

Fungsi hash kriptografi, Gambar dari Wikipedia

Karena panjang output (jumlah hash dalam contoh) selalu sama seperti yang ditentukan oleh algoritma hashing yang digunakan, sejumlah besar data dapat diidentifikasi hanya melalui hash yang dihasilkan.

Dengan sistem yang berisi data dalam jumlah besar, manfaat dari kemampuan menyimpan dan mengidentifikasi data dengan panjang output yang tetap dapat menciptakan penghematan penyimpanan yang besar dan membantu meningkatkan efisiensi.

Di dalam blockchain, algoritme hashing digunakan untuk menentukan status blockchain.

Blockchain adalah daftar tertaut yang berisi data dan penunjuk hash yang menunjuk ke blok sebelumnya, menciptakan rantai blok yang terhubung, oleh karena itu dinamakan “blockchain”.

Setiap blok dihubungkan satu sama lain melalui hash pointer, yaitu hash dari data di dalam blok sebelumnya beserta alamat blok sebelumnya. Dengan menghubungkan blok data dalam format ini, setiap hash yang dihasilkan dari blok sebelumnya mewakili seluruh keadaan blockchain karena semua data hash dari blok sebelumnya di-hash menjadi satu hash.

Hal ini diwakili (dalam kasus algoritma SHA-256) dengan output (hash) seperti ini:

b09a57d476ea01c7f91756adff1d560e579057ac99a28d3f30e259b30ecc9dc7

Hash di atas adalah sidik jari dari seluruh keadaan blockchain sebelumnya. Keadaan blockchain sebelum blok baru (sebagai data yang di-hash) adalah masukan, dan hash yang dihasilkan adalah keluaran.

Meskipun hash kriptografi dapat digunakan tanpa pohon Merkle, hal ini sangat tidak efisien dan tidak dapat diskalakan. Menggunakan hash untuk menyimpan data dalam blok dalam format seri memakan waktu dan tidak praktis.

Seperti yang akan Anda lihat, pohon Merkle memungkinkan resolusi integritas data yang sepele serta pemetaan data tersebut melalui keseluruhan pohon menggunakan bukti Merkle.


Pohon Merkle dan Bukti Merkle

Dinamakan setelah Ralph Merkle, yang mematenkan konsep tersebut pada tahun 1979, pohon Merkle pada dasarnya adalah pohon struktur data di mana setiap node non-daun merupakan hash dari node turunannya masing-masing.

Simpul daun adalah simpul tingkat terendah di pohon. Pada awalnya mungkin terdengar sulit untuk dipahami, namun jika Anda melihat gambar yang umum digunakan di bawah ini, akan menjadi lebih mudah untuk dipahami.

Pohon Hash

Contoh pohon hash biner, Gambar dari Wikipedia

Yang penting, perhatikan bagaimana simpul atau “cabang” non-daun (diwakili oleh Hash 0-0 dan Hash 0-1) di sisi kiri, merupakan hash dari turunannya masing-masing L1 dan L2. Selanjutnya, perhatikan bagaimana cabang Hash 0 adalah hash dari anak-anaknya yang digabungkan, cabang Hash 0-0 dan Hash 0-1.

Contoh di atas adalah bentuk pohon Merkle yang paling umum dan sederhana yang dikenal sebagai Pohon Merkle Biner. Seperti yang Anda lihat, ada hash teratas yang merupakan hash dari keseluruhan pohon, yang dikenal sebagai hash root. Pada dasarnya, pohon Merkle adalah struktur data yang dapat mengambil jumlah hash “n” dan mewakilinya dengan satu hash.

Struktur pohon memungkinkan pemetaan data dalam jumlah besar secara efisien dan memudahkan identifikasi di mana perubahan terjadi pada data tersebut. Konsep ini memungkinkan pembuktian Merkle, yang dengannya seseorang dapat memverifikasi bahwa hashing data konsisten di seluruh bagian atas pohon dan pada posisi yang benar tanpa harus benar-benar melihat seluruh rangkaian hash.

Sebaliknya, mereka dapat memverifikasi bahwa potongan data konsisten dengan hash akar dengan hanya memeriksa sebagian kecil hash, bukan seluruh kumpulan data.

Selama hash root diketahui dan dipercaya secara publik, siapa saja yang ingin melakukan pencarian nilai kunci pada database dapat menggunakan bukti Merkle untuk memverifikasi posisi dan integritas sepotong data dalam database yang memilikinya. akar tertentu.

Ketika hash akar tersedia, pohon hash dapat diterima dari sumber mana pun yang tidak tepercaya dan satu cabang pohon dapat diunduh sekaligus dengan verifikasi integritas data segera, bahkan jika keseluruhan pohon belum tersedia.

Salah satu manfaat terpenting dari struktur pohon Merkle adalah kemampuan untuk mengautentikasi kumpulan data yang sangat besar melalui mekanisme hashing serupa yang digunakan untuk memverifikasi data dalam jumlah yang jauh lebih kecil.

Pohon ini bermanfaat untuk mendistribusikan kumpulan data yang besar ke dalam bagian-bagian kecil yang dapat dikelola sehingga hambatan verifikasi integritas berkurang secara signifikan meskipun ukuran data secara keseluruhan lebih besar.

Root hash dapat digunakan sebagai sidik jari untuk seluruh kumpulan data, termasuk seluruh database atau mewakili seluruh keadaan blockchain. Pada bagian berikut, kita akan membahas bagaimana Bitcoin dan sistem lain mengimplementasikan pohon Merkle.


Pohon Merkle dalam Bitcoin

Fungsi hash kriptografi yang digunakan oleh Bitcoin adalah algoritma SHA-256. Ini adalah singkatan dari “Secure Hashing Algorithm”, yang outputnya memiliki panjang tetap 256 bit. Fungsi dasar pohon Merkle di Bitcoin adalah untuk menyimpan, dan pada akhirnya memangkas transaksi di setiap blok.

Seperti disebutkan sebelumnya, blok-blok dalam blockchain terhubung melalui hash dari blok sebelumnya. Dalam Bitcoin, setiap blok berisi semua transaksi dalam blok tersebut serta header blok yang terdiri dari:

  • Blokir Nomor Versi
  • Blok Hash Sebelumnya
  • Timestamp
  • Target Kesulitan Penambangan
  • duta paus
  • Hash Akar Merkle

Gambar di bawah berasal dari whitepaper Bitcoin dan mengilustrasikan bagaimana pohon Merkle cocok dengan setiap blok.

Pohon Merkle

Transaksi dimasukkan ke dalam blok oleh penambang dan di-hash sebagai bagian dari pohon Merkle, yang mengarah ke akar Merkle yang disimpan di header blok. Desain ini memiliki sejumlah keunggulan berbeda.

Yang paling penting, sebagaimana diuraikan dalam whitepaper, hal ini memungkinkan adanya node Verifikasi Pembayaran Sederhana (SPV), yang juga dikenal sebagai “klien ringan”. Node-node ini tidak harus mengunduh seluruh blockchain Bitcoin, hanya header blok dari rantai terpanjang.

Node SPV dapat mencapai hal ini dengan menanyakan node rekannya sampai mereka yakin bahwa header blok tersimpan yang mereka operasikan adalah bagian dari rantai terpanjang. Node SPV kemudian dapat menentukan status transaksi dengan menggunakan bukti Merkle untuk memetakan transaksi ke pohon Merkle tertentu dengan hash akar pohon Merkle tersebut di header blok yang merupakan bagian dari rantai terpanjang.

Selain itu, penerapan pohon Merkle oleh Bitcoin memungkinkan pemangkasan blockchain untuk menghemat ruang. Hal ini disebabkan hanya hash root yang disimpan di header blok, oleh karena itu, blok lama dapat dipangkas dengan menghapus cabang pohon Merkle yang tidak perlu sambil hanya mempertahankan cabang yang diperlukan untuk bukti Merkle.


Implementasi Merkle Trees di Blockchain dan Sistem Lain

Meskipun Bitcoin adalah blockchain pertama yang menerapkan pohon Merkle, banyak blockchain lain yang menerapkan struktur pohon Merkle serupa atau bahkan versi yang lebih kompleks.

Lebih lanjut, implementasi pohon Merkle tidak hanya terbatas pada blockchain dan diterapkan pada berbagai sistem lainnya.

Ethereum, sebagai mata uang kripto lain yang paling dikenal, juga merupakan contoh bagus penerapan pohon Merkle yang berbeda. Karena Ethereum dilengkapi sebagai platform untuk membangun aplikasi yang jauh lebih kompleks, Ethereum menggunakan versi pohon Merkle yang lebih kompleks yang disebut Pohon Merkle Patricia yang sebenarnya merupakan 3 pohon Merkle terpisah yang digunakan untuk tiga jenis objek. Anda dapat mempelajari lebih lanjut tentang pohon-pohon ini di sini.

Terakhir, pohon Merkle adalah komponen penting dari sistem kontrol versi terdistribusi seperti Git dan IPFS. Kemampuan mereka untuk dengan mudah memastikan dan memverifikasi integritas data yang dibagikan antar komputer dalam format P2P menjadikannya sangat berharga bagi sistem ini.


Kesimpulan

Pohon Merkle adalah komponen integral dari blockchain dan secara efektif memungkinkan mereka berfungsi dengan kekekalan dan integritas transaksi yang dapat dibuktikan.

Memahami peran yang mereka mainkan dalam jaringan terdistribusi dan teknologi fungsi hash kriptografi yang mendasarinya sangat penting untuk memahami konsep dasar dalam mata uang kripto saat mereka terus berkembang menjadi sistem yang lebih besar dan kompleks.

Sumber: https://blockonomi.com/merkle-tree/