Blockchain/Tahap II · Mekanisme/2.3 Blok dan rantaian/Pelajaran 3
Rantaian hash
Pautan yang tidak dapat diputuskan dan kos untuk menulis semula sejarah
BahanPeneroka blok dengan maklumat kepala blok yang terperinciKalkulator atau skrip untuk menyemak hash SHA-256Buku nota untuk merekod nilai hash
Ingin tahu
- Bagaimanakah urutan rekod digital lebih berkesan menahan pengubahan berbanding lejar fizikal?
- Mengapa penambahan satu blok baru menjadikan setiap transaksi sebelumnya lebih sukar untuk diubah?
- Berapakah kos pengiraan bagi seorang penyerang yang cuba mengubah entri masa lalu?
Teroka
- Pada tahun 1991, Stuart Haber dan W. Scott Stornetta menerbitkan kertas kerja bertajuk ‘How to Time-Stamp a Digital Document.’ Mereka mencadangkan agar dokumen dipautkan dalam satu rantaian di mana setiap rekod baharu mengandungi hash kriptografi rekod sebelumnya. Struktur ini mewujudkan sejarah yang tidak boleh diubah: mengubah mana-mana dokumen lama akan mengubah hashnya, lalu memutuskan pautan kepada setiap rekod berikutnya. Satoshi Nakamoto memetik kertas kerja 1991 ini dalam kertas putih Bitcoin sebagai inspirasi asas bagi integriti struktur blockchain.
- Setiap kepala blok Bitcoin mengandungi medan 32 bait yang dipanggil ‘previous block hash’. Nilai ini ialah hash SHA-256 berganda bagi keseluruhan kepala blok sebelumnya. Pelombong meletakkan hash ini dalam kepala blok baharu sebelum perlombongan bermula, kerana ia sebahagian daripada data yang dihash. Hasilnya ialah rantaian di mana setiap blok memberi komitmen secara kriptografi kepada blok induknya. Tanpa pautan khusus ini, blok-blok akan menjadi pulau yang berasingan; dengan adanya pautan ini, ia membentuk urutan berterusan yang berpaksikan blok genesis bertarikh 3 Januari 2009.
- Akar Merkle dalam kepala blok mengikat semua transaksi dalam blok itu kepada hashnya. Jika penyerang mengubah walaupun satu transaksi dalam blok sejarah, akar Merkle akan berubah. Akibatnya, hash blok itu sendiri turut berubah. Oleh sebab blok seterusnya menyimpan hash lama blok yang diubah ini sebagai ‘hash blok sebelumnya’, pautan itu terputus. Rantaian kini tidak sah mulai titik tersebut. Untuk membaikinya, penyerang perlu melombong semula bukti kerja bagi blok tersebut.
- Melombong semula satu blok tidak mencukupi kerana semua blok berikutnya juga mengandungi hash yang tidak lagi sepadan. Penyerang perlu mengulangi bukti kerja bagi setiap blok selepas blok yang diubah untuk membentuk rantaian yang sah. Ini memerlukan kuasa pengiraan yang amat besar. Sementara rangkaian yang jujur terus menambah blok baharu, penyerang berlumba menentangnya. Jika kadar hash penyerang melebihi gabungan kadar hash seluruh rangkaian yang lain, penyerang boleh memintas rantaian itu dan menggantikan sejarah.
- Nod tidak mengikut rantaian terpanjang berdasarkan bilangan blok; sebaliknya, nod mengikut rantaian dengan bukti kerja kumulatif paling banyak, yang dikenali sebagai ‘chainwork’. Metrik ini mengambil kira penyesuaian kesukaran yang menjadikan blok-blok kemudian lebih sukar dilombong. Cabang yang mempunyai lebih banyak blok tetapi jumlah kerja yang lebih sedikit tidak akan diikuti, walaupun blok-bloknya mungkin sah. Semakin dalam sesuatu transaksi tertanam dalam rantaian, semakin banyak kerja yang perlu diulangi oleh penyerang untuk mengalihkannya. Setiap pengesahan menambah lapisan usaha pengiraan yang diperlukan untuk membalikkan sejarah.
- Buka mana-mana peneroka blok dan pilih blok terkini. Perhatikan medan ‘previous hash’nya. Klik hash tersebut untuk pergi ke blok induk. Sahkan bahawa hash kepala blok induk itu sepadan dengan nilai yang disimpan dalam blok anak. Ulangi proses ini tiga kali, menjejak rantaian ke belakang melalui pautan-pautannya. Pengesahan manual ini membuktikan bahawa setiap blok memberi komitmen secara kriptografi kepada blok sebelumnya, membentuk urutan rekod yang disahkan oleh kerja tanpa putus hingga ke blok genesis.
Fakta utama
- Skim cap masa berpaut yang dibangunkan oleh Stuart Haber dan W. Scott Stornetta pada tahun 1991 dipetik dalam kertas putih Bitcoin.
- Setiap kepala blok mengandungi hash sepanjang 32 bait bagi kepala blok sebelumnya, yang menghubungkan blok-blok tersebut secara berurutan.
- Mengubah transaksi lampau akan mengubah akar Merkle dan hash bloknya, lalu memutuskan semua pautan berikutnya.
- Nod mengikut rantaian dengan bukti kerja kumulatif terbanyak (‘chainwork’), bukan sekadar bilangan blok yang paling tinggi.
- Penyerang mesti mengulangi bukti kerja bagi setiap blok selepas blok yang diubah untuk memintas rangkaian yang jujur.
- Blok genesis, yang dilombong pada 3 Januari 2009, berfungsi sebagai sauh rantaian yang tidak boleh diubah.
Latihan sembilan, enam, tiga, satu
9KumpulSenaraikan 9 jenis lejar digital atau sistem penyimpanan rekod yang berbeza. Catatkan bagaimana setiap sistem mencegah pengubahsuaian entri sejarah.
6KelompokkanKumpulkan 9 item tersebut ke dalam 6 kategori berdasarkan mekanisme ketidakbolehubahannya: pautan kriptografi, pengundian konsensus, audit oleh pihak berkuasa pusat, redundansi fizikal, kontrak undang-undang, atau lain-lain.
3SaringKurangkan 6 kumpulan tersebut kepada 3 sebab asas mengapa kebanyakan sistem gagal menyediakan sejarah yang mendedahkan sebarang pengubahan tanpa pihak ketiga yang dipercayai.
1KristalkanTulis 1 ayat yang menerangkan bagaimana bukti kerja mengubah senarai hash yang berpaut menjadi rantaian pemilikan yang dilindungi secara ekonomi.
Semakan fakta
Tarikh, angka dan dakwaan telah disemak berbanding dengan sumber yang diterbitkan yang disenaraikan di bawah.