77 / 7362017

Perang ukuran blok

Perselisihan tentang kapasitas Bitcoin dan siapa yang boleh mengubah aturannya

Pada 2015–2017, para peserta Bitcoin memperdebatkan cara menampung lebih banyak pembayaran tanpa membuat verifikasi mandiri sulit dijangkau. Perdebatan ukuran blok menguji apakah pengembang, penambang, dan perusahaan bisa mewujudkan perubahan tanpa kesepakatan pengguna.

Block Size War adalah rangkaian perselisihan mengenai kapasitas dan aturan Bitcoin yang memuncak pada 2017: aktivasi SegWit, pemisahan Bitcoin Cash, dan penangguhan rencana fork SegWit2x. Ketiganya merupakan peristiwa berbeda dengan sebab dan mekanisme teknis yang berbeda.

Bayangkan dua kebutuhan sehari-hari. Anna ingin mengirim bitcoin tanpa menunggu lama atau membayar biaya tinggi. Pavel menjalankan simpul penuh, yaitu komputer yang memeriksa sendiri blok dan transaksi. Ia ingin memverifikasi uangnya tanpa peralatan mahal. Keduanya masuk akal, tetapi lebih banyak data per blok juga berarti lebih banyak data yang harus dikirim dan diperiksa. Keseimbangan inilah yang menjadi inti Block Size War. Blok adalah sekumpulan transaksi yang ditambahkan ke riwayat pembayaran bersama dalam jaringan. Anna dan Pavel adalah tokoh ilustrasi. Perdebatan sebenarnya pada 2015–2017 melibatkan pengembang, operator penambangan, bursa, penyedia dompet, dan pengguna. Mereka berbeda pendapat tentang kapasitas dan cara menerapkan perubahan dengan aman. Bitcoin tidak memiliki direktur yang bisa memilih satu opsi lalu memerintahkan semua orang beralih. [1] [11] [13]

Sebelum SegWit, aturan membatasi blok sebesar 1 MB, atau 1 000 000 byte. Ini bukan batas tetap jumlah pembayaran: setiap transaksi dapat memakai ruang berbeda. Blok baru muncul rata-rata sekitar sepuluh menit sekali. Ketika permintaan ruang melampaui kapasitas, penambang biasanya mendahulukan transaksi dengan tarif biaya lebih tinggi, sedangkan sisanya menunggu. Pendukung blok besar ingin menambah ruang langsung di jaringan dasar agar pembayaran tetap terjangkau. Penentangnya mengkhawatirkan kebutuhan koneksi, komputer, dan penyebaran blok yang cepat. Jika lebih sedikit orang mampu memverifikasi sendiri, lebih banyak pengguna harus mempercayai layanan pihak lain. Menaikkan batas saja tidak mempercepat pembentukan blok atau menjamin biaya rendah selamanya. Permintaan dan pemakaian ruang sebenarnya juga menentukan. [1] [2] [13]

Pengembang bisa menulis perangkat lunak baru, lalu penambang membuat blok dengannya. Namun operator Full Node memilih aturan yang diperiksa simpulnya. Bahkan mayoritas daya komputasi tidak dapat memaksa simpul yang tidak diubah menerima blok yang melanggar aturannya. Daya komputasi membantu memilih di antara rantai yang sah; daya itu tidak mengubah blok tidak sah menjadi sah. Ini juga bukan pemungutan suara global dengan satu suara per simpul, ataupun hak satu orang untuk melarang orang lain pergi. Perusahaan memilih apa yang diterima, penambang apa yang ditambang, dan pengguna apa yang dinilai berharga. Aturan yang tidak cocok dapat melahirkan dua jaringan. Kesepakatan bisnis dapat mendukung perubahan, tetapi tidak otomatis menulis ulang perangkat lunak dan keputusan semua peserta. [11] [12]

Usulan didokumentasikan sebagai BIP, singkatan dari Bitcoin Improvement Proposal. Dokumen ini menjelaskan usulan agar orang lain dapat memeriksa dan membahasnya. Pemberian nomor belum berarti jaringan telah menerimanya. Melalui BIP 101, Gavin Andresen mengusulkan batas 8 MB, kemudian pertumbuhan menurut jadwal yang telah ditentukan. Usulan itu memuat kenaikan kira-kira dua kali lipat setiap dua tahun beserta syarat aktivasi. Mike Hearn dan Andresen mendorong Bitcoin XT, perangkat lunak alternatif yang menawarkan jalur tersebut. Merilis program, bagaimanapun, tidak sama dengan mengubah aturan seluruh jaringan. Simpul lama akan menolak blok di atas batas sebelumnya. Ini merupakan Hard Fork: perubahan yang memperluas himpunan blok yang diperbolehkan sehingga penerimanya membutuhkan aturan berbeda. Perdebatan pun tidak lagi sekadar tentang jumlah ruang tambahan. Siapa yang akan beralih, bagaimana peralihannya dikoordinasikan, dan bagaimana jika cukup banyak peserta menolak? [1] [18] [13]

Eric Lombrozo, Johnson Lau, dan Pieter Wuille menjelaskan pendekatan lain dalam BIP 141. SegWit menata ulang data transaksi dan memperkenalkan bobot blok dengan batas 4 000 000 weight units. Bagian witness terutama memuat data untuk memeriksa kewenangan membelanjakan dana. Data itu tidak hilang atau berhenti diperiksa; perlakuannya dalam perhitungan bobot berubah. Kapasitas bergantung pada campuran transaksi, bukan sekadar izin untuk blok biasa berukuran empat megabyte. Bobot menentukan cara menghitung data terhadap batas blok: setiap byte data dasar dihitung sebagai 4 unit, sedangkan setiap byte data tambahan terkait witness sebagai 1 unit. Karena itu, transaksi dengan ukuran byte yang sama dapat memakai bobot berbeda. Kapasitas juga bergantung pada jenis transaksi yang digunakan. Untuk transaksi yang memenuhi syarat, SegWit juga menghilangkan kemungkinan mengubah pengenal transaksi lewat perubahan data tanda tangan. Hal ini memudahkan pembangunan kanal pembayaran yang mendasari Lightning Network. SegWit dirancang sebagai Soft Fork: blok baru yang sah tetap cocok dengan aturan lama, meskipun simpul lama tidak memeriksa semua batasan baru. Bitcoin Core 0.13.1 memuat mekanisme aktivasi; peluncuran program tidak dengan sendirinya menyalakan SegWit. [2] [3]

Pada 23 Mei 2017, Digital Currency Group menerbitkan New York Agreement, kesepakatan antara perusahaan dan penambang. Dukungan SegWit dipadukan dengan janji Hard Fork ke 2 MB dalam enam bulan. Langkah kedua dikenal sebagai SegWit2x, dengan implementasi proyek btc1. Sebagian peserta melihatnya sebagai kompromi yang layak: masing-masing kubu mendapat sebagian keinginannya. Peserta lain menolak perubahan kedua maupun cara mendorongnya. Dukungan perusahaan tidak otomatis berarti persetujuan semua pelanggannya. Bitcoin Core kemudian menegaskan bahwa btc1 bukan pembaruan wajib perangkat lunaknya dan mendukung SegWit bukan berarti mendukung SegWit2x. Saat membaca berita lama, ingat bahwa dua perubahan dalam satu kesepakatan tetap merupakan perubahan aturan yang berbeda. [6] [7] [11]

Penulis dengan nama samaran Shaolin Fry mengusulkan BIP 148, bentuk UASF atau Soft Fork yang diaktifkan pengguna. Mulai 1 Agustus 2017 menurut Median Time Past, simpul dengan aturan ini akan menolak blok tanpa sinyal SegWit, kecuali aktivasinya sudah terkunci atau berlaku. Jika penambangan dan penerimaan blok berbeda arah, jaringan bisa terbelah. Ini bukan sakelar bebas risiko yang dijalankan seluruh pengguna sekaligus. Median Time Past adalah nilai tengah setelah cap waktu 11 blok terakhir diurutkan, bukan waktu pada jam setiap pengguna. Sinyal di sini berupa penanda dalam header blok yang menyatakan dukungan penambang terhadap penerapan itu; penanda tersebut tidak langsung mengaktifkan aturan baru. James Hilliard menjelaskan dalam BIP 91 koordinasi penambang dengan ambang lebih rendah: 269 dari 336 blok, sekitar 80%. Setelah berlaku, peserta akan menolak blok tanpa sinyal untuk penerapan SegWit yang sudah ada. Koordinasi Juli mengurangi bahaya konflik menjelang tenggat Agustus. Namun itu tidak berarti SegWit sendiri sudah terkunci atau aktif pada Juli. SegWit tetap mengikuti mekanisme BIP 9 miliknya. [4] [5] [9] [19]

Bitcoin Cash memisahkan diri pada 1 Agustus 2017. Perangkat lunak Bitcoin ABC mendukung blok lebih besar di cabang ini, saat itu dengan batas bawaan 8 MB. Sejak pemisahan, kedua jaringan mempunyai aturan dan koin sendiri. Riwayat bersama sebelum pemisahan tidak membuat pembayaran sesudahnya bebas dipindahkan antara BTC dan BCH. Bitcoin Cash bukan SegWit2x, dan Bitcoin ABC bukan btc1. Mencampur nama-nama ini berarti mencampur pemisahan Agustus dengan rencana lain yang kemudian ditangguhkan. Keduanya juga berbeda dalam replay protection, perlindungan agar transaksi tidak diulang pada rantai lain. Dampaknya nyata bagi pengguna: tindakan pada satu cabang seharusnya tidak tanpa sengaja membelanjakan dana di cabang lain. Kunci bersama juga tidak aman dimasukkan ke sembarang alat yang menjanjikan koin baru. [8] [15] [11]

SegWit memasuki status LOCKED_IN mulai blok 479 808 pada 9 Agustus 2017. Periode pengambilan keputusan selesai, tetapi masih ada satu periode tunggu sebelum aturan baru ditegakkan. SegWit aktif mulai blok 481 824 pada 24 Agustus. Kedua ketinggian itu berjarak 2 016 blok. Koordinasi BIP 91 pada Juli, penguncian Agustus, dan aktivasi adalah peristiwa berbeda. Langkah kedua SegWit2x masih dijadwalkan pada ketinggian 494 784. Pada 8 November, penyelenggara yang dipimpin Mike Belshe mengumumkan penangguhan. Menurut pernyataan mereka, kesepakatan yang cukup untuk transisi mulus belum tercapai. Bitcoin tidak kehilangan SegWit yang sudah aktif, dan Bitcoin Cash tidak menghilang. Yang berakhir adalah upaya khusus untuk mengubah dukungan perusahaan dan penambang menjadi kenaikan batas Bitcoin tersebut. [9] [10] [12] [14] [16] [17]

Perselisihan itu menunjukkan bahwa Bitcoin dapat berubah, tetapi menulis kode, mengumpulkan tanda tangan perusahaan, dan memperoleh penerimaan aturan merupakan pekerjaan berbeda. Itu tidak membuktikan pengembang tidak berpengaruh, penambang tidak penting, atau semua keputusan mendatang pasti berakhir sama. Kapasitas, verifikasi terjangkau, dan kesepakatan peserta tidak selesai hanya dengan mengganti nama pembaruan. Saat membaca usulan baru, tanyakan dahulu apa yang berubah, simpul mana yang akan berbeda pandangan, dan bagaimana aktivasinya dilakukan. Bedakan usulan, perangkat lunak yang sudah dirilis, dan aturan yang benar-benar berlaku. BIP serta kode masa itu mendokumentasikan mekanisme; pernyataan masing-masing kubu mendokumentasikan posisi mereka. Satu pernyataan peserta saja bukanlah sejarah netral seluruh konflik. [1] [6] [11] [12]

Untuk gambaran yang lebih utuh, baca entri ini bersama SegWit, Soft Fork, Hard Fork, Full Node, Bitcoin, Aturan konsensus. Entri ini juga dirujuk dari Soft Fork, Hard Fork, Block Weight, Jeff Garzik.

DOC · 001BIP 101 — Increase maximum block sizeDokumentasi DOC · 002BIP 141 — Segregated WitnessDokumentasi DOC · 003Bitcoin Core 0.13.1 — Segregated witness releaseDokumentasi DOC · 004BIP 148 — Mandatory activation of SegWitDokumentasi DOC · 005BIP 91 — Reduced threshold SegWit activationDokumentasi DOC · 006Digital Currency Group — Bitcoin Scaling Agreement at Consensus 2017Dokumentasi DOC · 007btc1 — SegWit2x implementation repositoryDokumentasi DOC · 008Bitcoin ABC — 0.14.6 releaseDokumentasi DOC · 009BIP 9 — Version bits with timeout and delaySumber primer DOC · 010BIP 9 — Deployment assignmentsSumber primer DOC · 011Bitcoin Core — Correcting misinformation on Segwit2x and btc1, 18 August 2017Sumber primer DOC · 012bitFlyer — Policy and stance regarding SegWit2x postponement, 9 November 2017Sumber primer DOC · 013Mike Hearn — Why is Bitcoin forking? Author essay reprinted by Ars Technica, 18 August 2015Sumber primer DOC · 014Mike Belshe et al. — Segwit2x suspension, 8 November 2017; message reproduced by BlockTribuneSumber primer DOC · 015Bitcoin ABC v0.14.6 — Consensus limitsSumber primer DOC · 016Bitcoin block 479808 — Header and timestamp via mempool.spaceSumber primer DOC · 017Bitcoin block 481824 — Header and timestamp via mempool.spaceSumber primer DOC · 018BIP 1 — Purpose and GuidelinesSumber primer DOC · 019BIP 113 — Median time-pastSumber primer
Direvisi: Utamakan sumber · Bukan nasihat investasi