42 / 736FORK↑

Hard Fork

Perubahan aturan yang dapat ditolak perangkat lunak lama

Hard Fork mengizinkan sesuatu yang dilarang aturan lama Bitcoin. Node baru dapat menerima blok yang ditolak node lama. Jika kedua kelompok terus berjalan sendiri-sendiri, riwayat pembayaran mereka juga berpisah; dua mata uang yang bertahan lama tidak otomatis terbentuk.

Hard Fork mengubah aturan keabsahan blok atau transaksi tanpa menjaga kompatibilitas dengan node lama. Untuk mengikuti rantai baru yang tidak kompatibel, node harus mengadopsi aturan baru. Pengumuman perubahan atau daya penambangan lebih besar tidak dapat memaksanya.

Anna dan Pavel masing-masing menjalankan Full Node, komputer yang memeriksa aturan Bitcoin secara mandiri. Anna memasang perangkat lunak yang mengizinkan blok lebih besar; Pavel mempertahankan batas semula. Datang sebuah blok yang memenuhi syarat baru tetapi melampaui batas lama. Anna menerimanya, Pavel menolaknya. Ini bukan gangguan koneksi: program mereka berbeda pendapat tentang apa yang boleh masuk ke riwayat bersama. Itulah arti praktis Hard Fork. Menyebutnya ‘peningkatan’ tidak membuat komputer Pavel mengabaikan aturannya. Dua cabang dapat berlanjut jika ada yang menghasilkan blok untuk masing-masing dan orang memakainya. Jika peserta beralih ke satu perangkat aturan, dua jaringan aktif tidak harus tetap ada. [1]

Node lama menolak blok yang tidak kompatibel beserta cabang yang dibangun di atasnya. Namun, node tidak harus berhenti selamanya. Jika penambang melanjutkan cabang lain dengan aturan semula, node dapat terus menerima blok-bloknya. Tanpa kelanjutan seperti itu, node bertahan pada blok terakhir yang dianggap sah. Penentunya adalah aturan perangkat lunak, bukan jumlah pendukung perubahan. Untuk mengikuti cabang yang tidak kompatibel, operator harus sengaja mengubah aturan tersebut. [1]

Bitcoin Cash berpisah dari Bitcoin pada ketinggian blok 478559 tanggal 1 Agustus 2017. Aturannya mengizinkan blok lebih besar daripada yang diterima node Bitcoin saat itu dan membentuk rantai berkelanjutannya sendiri. Node Bitcoin menolak blok yang hanya valid menurut aturan BCH, sedangkan node BCH mengikuti sejarah validnya sendiri. Hard Fork ini membentuk jaringan terpisah, bukan mengganti Bitcoin melalui pembaruan di jaringan yang sama. [3] [4]

Bayangkan pembayaran yang diterima dompet tetapi belum dibelanjakan: Bitcoin mencatat output transaksi yang belum dibelanjakan itu sebagai UTXO. Cabang dengan masa lalu bersama mewarisi catatan tersebut, lalu mengelolanya sendiri-sendiri. Jika Anda menguasai kunci yang diperlukan dan kedua jaringan masih mengakui output itu, biasanya koin terkait dapat dibelanjakan pada keduanya. Nilainya tidak otomatis berlipat dua: keduanya aset berbeda dengan permintaan masing-masing. Untuk dana di bursa, penerimaan koin jaringan lain juga bergantung pada kebijakan pengkreditan bursa. [4] [6]

Meski memiliki koin di kedua cabang, Anda mungkin hanya ingin membayar di salah satunya. Tanpa perlindungan, seseorang dapat menyalin transaksi bertanda tangan itu dan menyiarkannya di jaringan lain, tempat transaksi tersebut mungkin juga sah. Inilah risiko replay. Periksa perlindungan jaringan tertentu dan dukungan dompetnya. Misalnya, perubahan sighash—aturan tentang data yang dicakup tanda tangan—dapat mengikat transaksi ke rantai tertentu. Tampilan alamat berbeda membantu membedakan jaringan, tetapi tidak dengan sendirinya memberi perlindungan replay secara kriptografis. [3]

Aktivasi adalah titik yang ditetapkan untuk mulai memberlakukan aturan baru. Tinggi blok menunjukkan posisinya dalam rantai. Tanggal tertentu, ketinggian blok, atau sinyal penambang dapat mengoordinasikan peserta yang menerima pembaruan, tetapi tidak mengubah perangkat lunak node yang tidak menerimanya. Jika masing-masing perangkat aturan masih memiliki peserta penting secara ekonomi, kedua rantai dapat berlanjut. Rencana aktivasi Hard Fork dengan demikian merupakan rencana migrasi dengan risiko perpecahan. [1]

Tata kelola di sini berarti cara peserta mengambil keputusan tentang perubahan. Ticker adalah simbol perdagangan aset, seperti BTC atau BCH. Pengembang dapat merilis kode, penambang mengalihkan hashrate, perusahaan memilih simbol perdagangan dan kebijakan setoran, serta pengguna memilih perangkat lunak. Tidak satu pun tindakan itu dengan sendirinya mengubah aturan yang dipakai node lain untuk memeriksa blok. Perpecahan dapat bertahan bila cukup banyak peserta independen secara sukarela mempertahankan dan menghargai kedua perangkat aturan; tidak setiap perubahan yang tidak kompatibel harus menghasilkan dua jaringan yang terus aktif secara permanen. Menamai satu cabang sebagai ‘pembaruan’ adalah kesepakatan sosial, bukan aturan konsensus. [1]

Jaringan dapat terpecah meskipun tidak ada yang berniat membuat mata uang baru. Pada Maret 2013, sebagian node lama tidak dapat memproses blok dengan jumlah input transaksi yang luar biasa banyak. Mereka mencapai batas jumlah kunci basis data, yaitu mekanisme yang mencegah operasi bersamaan mengubah data yang sama. Versi 0.8 yang lebih baru memakai basis data berbeda dan menerima blok tersebut. Pool penambangan BTC Guild dan Slush kembali ke versi 0.7 lalu menambang pada cabang yang juga diterima node lama. Setelah cabang itu mengumpulkan lebih banyak kerja, node yang lebih baru ikut beralih ke sana. Ini memperbaiki perbedaan perilaku perangkat lunak yang tidak disengaja, bukan upaya mempertahankan jaringan terpisah seperti Bitcoin Cash. [2]

Soft Fork memperketat aturan yang sudah ada. Karena itu, blok yang memenuhi pembatasan baru juga memenuhi aturan lama. Node lama dapat menerimanya tanpa memeriksa sendiri pembatasan tambahan tersebut. Hard Fork tidak memiliki kompatibilitas ini: blok yang diterima perangkat lunak baru dapat melanggar aturan lama. Untuk menerimanya, operator node lama harus mengubah aturan perangkat lunaknya. Soft Fork juga tidak menjamin jaringan akan tetap bersatu: jika penambang membuat blok yang melanggar pembatasan baru, node lama dan baru dapat menilainya secara berbeda. [1]

Nyatakan seluruh blok yang diterima aturan awal sebagai V(old). Perubahan merupakan Hard Fork bila perangkat lunak baru menerima setidaknya satu blok di luar himpunan tersebut. Biasanya himpunan blok valid diperluas, tetapi kriteria penentunya adalah kompatibilitas: jika blok yang valid bagi node baru dapat tidak valid bagi node lama, validator lama tidak dapat mengikuti rantai baru sambil mempertahankan aturannya. [1]

Chainwork mengukur akumulasi kerja yang dibuktikan melalui penambangan seluruh blok dalam suatu cabang. Sebaliknya, Hashrate adalah laju perhitungan penambangan. Node memilih cabang dengan akumulasi kerja terbesar hanya di antara rantai yang memenuhi aturannya. Jika sebuah blok melanggar aturan itu, tambahan kerja tidak membuatnya dapat diterima. Karena itu, Pavel dalam contoh awal tidak akan menerima blok yang terlalu besar hanya karena sebagian besar penambang membangun di atasnya. Proof of Work dapat menentukan pilihan di antara cabang yang sah, tetapi tidak memilih aturan atas nama operator node. [1]

Mulailah dengan memeriksa jaringan, dompet yang didukung, dan perlindungan replay. Nama koin yang dikenal atau alamat mirip tidak cukup. Jangan masukkan Seed Phrase, kata-kata pemulihan dompet, ke layanan tak dikenal yang menjanjikan klaim koin fork. Pada node sendiri, Anda juga dapat memeriksa versi perangkat lunak, node terhubung, blok terakhir yang diterima, dan sidik jari blok pada titik perpecahan. Sidik jari ini disebut hash. Cocokkan dengan dokumentasi jaringan; penjelajah blok di web tidak menggantikan pemeriksaan aturan sendiri. [5] [6]

Untuk gambaran yang lebih utuh, baca entri ini bersama Soft Fork, Aturan konsensus, Full Node, Reorg, Perang ukuran blok, UTXO. Entri ini juga dirujuk dari Soft Fork, BIP (Bitcoin Improvement Proposal), Reorg, Perang ukuran blok.

DOC · 001Bitcoin Developer Guide — Consensus rule changesDokumentasi DOC · 002BIP 50 — March 2013 chain fork post-mortemSpesifikasi DOC · 003Bitcoin Cash upgrade specification — 2017 hard forkSpesifikasi DOC · 004BCHN Technical Bulletin — shared history and 2017 splitSumber primer DOC · 005Bitcoin Core v29.0: getblockchaininfoDokumentasi DOC · 006Bitcoin.org — Securing your walletDokumentasi
Direvisi: Utamakan sumber · Bukan nasihat investasi