Pohon Merkle adalah struktur data yang digunakan dalam aplikasi sains komputer. Dalam Bitcoin dan kriptografi lain, pokok Merkle berfungsi untuk menyandikan data blockchain dengan lebih cekap dan selamat.
Mereka juga dirujuk sebagai "pokok hash binari."
Memecahkan Merkle Tree
Dalam blockchain bitcoin, blok transaksi dijalankan melalui algoritma untuk menghasilkan hash, yang merupakan rentetan nombor dan huruf yang boleh digunakan untuk mengesahkan bahawa set data yang diberikan adalah sama dengan set transaksi yang asal, tetapi tidak mendapatkan set transaksi yang asal. Perisian Bitcoin tidak menjalankan seluruh blok data urus niaga - yang mewakili urus niaga 10 minit secara purata - melalui fungsi hash pada satu masa, bagaimanapun. Sebaliknya setiap urus niaga telah hilang, maka setiap pasangan urusniaga disatukan dan dihimpunkan, dan sebagainya sehingga ada satu hash untuk blok keseluruhan. (Jika terdapat bilangan transaksi ganjil, satu urusniaga dua kali ganda dan hashnya digabungkan dengan sendirinya.)
Diramalkan, struktur ini menyerupai pokok. Dalam gambarajah di bawah, "T" menandakan transaksi, "H" hash. Ambil perhatian bahawa imej sangat dipermudahkan; blok purata mengandungi lebih daripada 500 transaksi, bukan lapan.
Hash pada baris bawah disebut sebagai "daun, " perantara menawan sebagai "cabang, " dan hash di bahagian atas sebagai "akar." Akar Merkle blok diberikan dalam tajuk: sebagai contoh, akar Merkle blok # 482819 adalah e045b18e7a3d708d686717b4f44db2099aabcad9bebf968de5f7271b458f71c8. Akar dikombinasikan dengan maklumat lain (versi perisian, hash blok sebelumnya, cap waktu, sasaran kesukaran, dan nonce) dan kemudian menjalankan fungsi hash untuk menghasilkan hash unik blok: 000000000000000000bfc767ef8bf28c42cbd4bdbafd9aa1b5c3c33c2b089594 dalam hal blok # 482819. Hash ini sebenarnya tidak dimasukkan ke dalam blok yang relevan, tetapi yang seterusnya; ia berbeza dari akar Merkle.
Pohon Merkle berguna kerana ia membenarkan pengguna mengesahkan transaksi tertentu tanpa memuat turun keseluruhan blockchain (lebih 130 gigabytes pada akhir Ogos 2017). Sebagai contoh, katakan bahawa anda ingin mengesahkan bahawa transaksi T D dimasukkan ke dalam blok dalam rajah di atas. Jika anda mempunyai hash root (H ABCDEFGH), prosesnya seperti permainan sudoku: anda menanyakan rangkaian tentang H D, dan ia mengembalikan H C, H AB, dan H EFGH. Pokok Merkle membolehkan anda mengesahkan bahawa segala-galanya dikira dengan tiga hash: diberikan H AB, H C, H EFGH, dan akar H ABCDEFGH, H D (hash yang hanya hilang) perlu hadir dalam data.
Merkle dinamakan sempena nama Ralph Merkle, yang mencadangkan mereka dalam kertas 1987 bertajuk "Tanda Tangan Digital Berdasarkan Fungsi Penyulitan Konvensional." Merkle juga mencipta hashing kriptografi.
