MSTR Cat

Blockchain/Tahap III · Rangkaian/3.3 Konsensus dan tadbir urus/Pelajaran 3

Soft fork dan hard fork

Asimetri kesahan: mengapa memperketat peraturan adalah selamat manakala melonggarkannya memecahkan rantai

BahanPenjelajah blok dengan data sejarah rantaiRepositori BIP di GitHub untuk membaca status cadangan

Ingin tahu

  1. Mengapakah sesebuah rangkaian boleh menerima pakai peraturan yang lebih ketat tanpa memaksa setiap nod dinaik taraf secara serentak?
  2. Perubahan struktur khusus apakah pada Ogos 2017 yang menyebabkan Bitcoin Cash berpisah daripada Bitcoin?
  3. Bagaimanakah pepijat perisian pada Mac 2013 mewujudkan dua rantai bersaing yang tidak dikehendaki oleh sesiapa pun?

Teroka

  1. Soft fork memperketat peraturan konsensus. Blok dan transaksi yang sah di bawah peraturan baharu yang lebih ketat kekal sah di bawah peraturan lama yang lebih longgar. Keserasian ke belakang ini bermakna nod yang belum dinaik taraf terus menerima rantai tersebut, manakala nod yang telah dinaik taraf menguatkuasakan kekangan baharu. Selagi sebahagian besar kuasa hash menguatkuasakan peraturan baharu, rangkaian kekal pada satu rantai; jika tidak, soft fork pun boleh memecahkannya, seperti yang berlaku pada Julai 2015.
  2. Hard fork melonggarkan atau mengubah peraturan sehingga struktur yang sebelum ini tidak sah menjadi sah. Sebagai contoh, menaikkan had saiz blok menjadikan blok yang lebih besar boleh diterima. Jika tidak semua nod dinaik taraf untuk menerima struktur baharu ini, rangkaian terpecah kepada dua rantai bersaing dengan sejarah yang tidak serasi. Pemisahan ini berlaku pada 1 Ogos 2017 apabila Bitcoin Cash menerima pakai saiz blok yang lebih besar daripada Bitcoin.
  3. Soft fork memerlukan pengaktifan yang teliti kerana pelombong yang menguatkuasakan peraturan baharu mesti membentuk majoriti kuasa hash. Jika pelombong mengabaikan isyarat atau menguatkuasakan peraturan lapuk, rantai tetap berisiko terpecah. BIP9 (2015-2016) menyeragamkan pengaktifan melalui isyarat pelombong: soft fork dikunci (lock-in) sebaik sahaja 95% blok dalam satu tempoh 2,016 blok memberi isyarat kesediaan, dan selepas itu, setelah satu tempoh lagi berlalu, nod yang telah dinaik taraf menguatkuasakannya.
  4. Fork tidak sengaja pada Mac 2013 berlaku apabila sebuah blok besar diterima oleh versi 0.8 tetapi ditolak oleh versi 0.7 akibat had pangkalan data. Rangkaian terpecah, dan masalah itu diselesaikan bukan dengan kemenangan rantai yang lebih panjang, sebaliknya dengan pelombong yang sengaja beralih semula ke 0.7, sehingga cabang yang serasi dengan 0.7 mengatasi cabang yang satu lagi. Peristiwa ini menunjukkan bahawa perbezaan tidak disengajakan antara versi boleh memecahkan rangkaian, dan dalam keadaan kecemasan, penyelesaiannya mungkin berupa keputusan manusia yang diselaraskan, yang mengatasi cabang mana yang mempunyai lebih banyak kerja pada ketika itu.
  5. Contoh sejarah menggambarkan mekanisme ini. P2SH (Pay-to-Script-Hash) diaktifkan pada tahun 2012 sebagai soft fork, membolehkan skrip yang kompleks sambil mengekalkan keserasian dengan nod lama. SegWit (Segregated Witness) diaktifkan pada 24 Ogos 2017 di blok 481,824, dengan memindahkan data tandatangan keluar daripada bahagian transaksi yang digunakan untuk mengira ID-nya, sekali gus membetulkan masalah kebolehubahan (malleability) dan meningkatkan kapasiti. Taproot menyusul pada November 2021 di blok 709,632.
  6. Semak pemisahan Bitcoin Cash pada dua penjelajah blok. Blok 478,558 ialah blok terakhir yang dikongsi oleh kedua-dua rantai. Cari blok 478,559 pada penjelajah Bitcoin dan pada penjelajah Bitcoin Cash: kedua-duanya ialah blok yang berbeza, dan blok Bitcoin Cash bersaiz lebih daripada 1 MB, sesuatu yang dilarang oleh peraturan lama Bitcoin. Mulai ketinggian itu, setiap rantai menganggap blok rantai yang satu lagi sebagai tidak sah.

Fakta utama

  • Soft fork memperketat peraturan; struktur sah yang baharu kekal sah di bawah peraturan lama, sekali gus memastikan keserasian ke belakang.
  • Hard fork melonggarkan peraturan; struktur sah yang baharu dahulunya tidak sah di bawah peraturan lama, lalu berisiko memecahkan rangkaian jika tidak diterima pakai secara menyeluruh.
  • Bitcoin Cash terpisah daripada Bitcoin pada 1 Ogos 2017 disebabkan perselisihan mengenai had saiz blok.
  • Pemisahan pada Mac 2013 merupakan perpecahan yang tidak disengajakan antara versi Bitcoin-Qt/bitcoind 0.7 dan 0.8, yang berlaku akibat had pangkalan data yang tidak didokumentasikan dalam versi 0.7.
  • SegWit diaktifkan sebagai soft fork pada 24 Ogos 2017 pada blok 481,824.
  • BIP9 (2015-2016) membolehkan pelombong memberi isyarat kesediaan untuk soft fork; penguncian (lock-in) memerlukan 95% blok dalam satu tempoh 2,016 blok.

Latihan sembilan, enam, tiga, satu

9KumpulSenaraikan 9 perubahan konsensus utama dalam sejarah Bitcoin dari tahun 2009 hingga 2023. Bagi setiap satu, catatkan tahunnya dan sama ada ia merupakan soft fork atau hard fork.
6KelompokkanKumpulkan 9 perubahan ini kepada 6 kategori berdasarkan impaknya: peningkatan kapasiti, penambahbaikan keselamatan, penambahan ciri, pembetulan pepijat, fork tidak sengaja dan cadangan yang gagal.
3SaringKurangkan kumpulan ini kepada 3 sebab utama mengapa perubahan akan dilaksanakan sebagai soft fork berbanding hard fork.
1KristalkanTulis satu ayat yang menerangkan perbezaan asas dalam set kesahan antara soft fork dan hard fork.

Semakan fakta

Tarikh, angka dan dakwaan telah disemak berbanding dengan sumber yang diterbitkan yang disenaraikan di bawah.

Buka dalam akademi interaktif →

EN PT ES ZH JA KO RU DE FR