Perisian Bitcoin Core Versi 0.16.0 Membawa Sokongan Penuh Segwit

Pada 26 Februari 2018, pembangun perisian Bitcoin Core telah melancarkan Bitcoin Core versi 0.16.0 [1]. Versi stabil baharu ini dilancarkan kira-kira 107 hari selepas versi stabil terakhir iaitu versi 0.15.1. Antara ciri baharu yang menjadi tumpuan dan ditunggu-tunggu oleh komuniti pembangun yang menggunakan perisian Bitcoin Core ialah sokongan penuh dompet segwit. Biasanya, pengguna biasa tidak perlu menggunakan perisian Bitcoin Core kecuali pembangun perkhidmatan berasaskan bitcoin atau mereka yang mahu menjalankan nod penuh bitcoin (bitcoin full node).

Perisian Bitcoin Core ialah asas kepada kewujudan bitcoin (BTC). Perisian Bitcoin Core menjadi teras atau nod yang membina rangkaian bitcoin seterusnya membolehkan protokol bitcoin beroperasi. Perkhidmatan berasaskan bitcoin seperti dompet bitcoin berasaskan web, atau laman web pertukaran mata wang kripto yang menawarkan bitcoin biasanya dibina diatas perisian Bitcoin Core. Nod penuh (full node) bitcoin adalah penting kerana mereka berfungsi untuk menyemak dan melakukan pengesahan transaksi bitcoin.

Perisian Bitcoin Core 0.16.0
Perisian Bitcoin Core 0.16.0

 

IKLAN

Selain menawarkan sokongan penuh dompet segwit, versi terbaru Bitcoin Core tersebut turut menawarkan sokongan penuh format alamat bitcoin segwit natif iaitu Bech32. Format Bech32 membolehkan perisian pelanggan bitcoin (bitcoin client) menggunakan protokol segwit dan melakukan digit hasil tambah semak (checksum) dan penyahkodan (decoding) dengan lebih pantas, berbanding menggunakan segwit diatas P2SH (pay-to-script-hash) [2]. Alamat bitcoin segwit Bech32 bermula dengan “bc1” manakala alamat bitcoin segwit P2SH bermula dengan “3”. Alamat bitcoin legasi asal bermula dengan “1”.

[https://mybit.my/ms/?p=1509]

Apakah itu segwit?

Segregated Witness

Segwit atau “Segregated Witness” (jika diterjemahkan secara langsung membawa maksud pengasingan saksi) ialah salah satu dari naik taraf protokol bitcoin. Segwit menaik taraf protokol bitcoin dengan melakukan cabangan lembut (soft fork) berbanding cabangan keras (hard fork). Beza cabangan lembut (soft fork) berbanding cabangan keras (hard fork) ialah cabangan lembut (soft fork) mengekalkan keserasian protokol bitcoin lama; perisian bitcoin versi lama masih boleh berfungsi apabila berlaku cabangan lembut (soft fork) [3].

Contoh cabangan keras (hard fork) popular bitcoin ialah Bitcoin Cash. Perisian bitcoin (BTC) tidak boleh membaca protokol Bitcoin Cash (BCH). Oleh itu, Bitcoin Cash telah berpecah dari protokol asal bitcoin dan menjadi mata wang kripto yang baharu. Namun, perisian lama bitcoin seperti Bitcoin Core 0.12.1 masih boleh berfungsi dalam rangkaian bitcoin apabila berlaku cabangan lembut (soft fork) bersama-sama perisian bitcoin baharu seperti Bitcoin Core 0.16.0.

Segwit bertujuan untuk menyelesaikan beberapa masalah protokol bitcoin. Antaranya ialah masalah penskalaan bitcoin, iaitu had jumlah transaksi yang boleh diproses oleh protokol bitcoin dalam satu-satu masa. Secara asasnya, protokol bitcoin mempunyai kapasiti maksimum untuk memproses kira-kira 3 hingga 7 transaksi sesaat. Secara purata, 1 blok bitcoin dijana dalam masa kira-kira 10 minit.

Segwit diaktifkan untuk protokol bitcoin pada 23 Ogos 2017. Segwit berfungsi dengan memisahkan maklumat tandatangan (signature, yang juga dikenali sebagai maklumat “witness”) pada maklumat transaksi bitcoin (yang asalnya mempunyai maklumat pengirim, penerima dan tandatangan) lalu menyimpan maklumat “witness” ini di luar blok asas transaksi bitcoin. Maklumat tandatangan ini biasanya mengambil ruang kira-kira 50% daripada keseluruhan saiz maklumat transaksi bitcoin.

Selain itu, segwit juga menukarkan istilah saiz blok (block size) kepada berat blok (block weight). Protokol asal bitcoin menghadkan saiz blok bitcoin kepada 1 MB. Transaksi-transaksi bitcoin perlu bersaing untuk dimasukkan kedalam blok bitcoin 1 MB tersebut, biasanya dengan membayar yuran transaksi (transaction fee) yang lebih tinggi kepada pelombong bitcoin (bitcoin miner).

Segwit menukar had saiz blok kepada had berat blok sebanyak 4 juta unit. Untuk blok segwit, maklumat transaksi (pengirim dan penerima) dikira sebagai 4 unit, dan maklumat tandatangan diluar maklumat transaksi dikira sebagai 1 unit. Keseluruhan berat blok 4 juta unit tersebut adalah termasuk bahagian blok asas bitcoin “1 MB” dan bahagian maklumat “witness”. Segwit membolehkan maklumat transaksi (penerima dan pengirim) disimpan dalam blok asas bitcoin yang dihadkan kepada “1 MB” pada protokol asal bitcoin, dan menyimpan maklumat “witness” di luar blok asas “1 MB”, tetapi masih dikira dalam blok yang mempunyai had berat blok 4 juta unit tadi [4]. Oleh itu, segwit membolehkan lebih banyak maklumat transaksi disimpan dalam satu-satu blok bitcoin kerana maklumat tandatangan telah diasingkan dari bahagian blok asas.

Peningkatan mendadak transaksi segwit setelah banyak perkhidmatan berasaskan bitcoin seperti Coinbase dan GDAX menyokong segwit selaras dengan pelancaran versi baru perisian Bitcoin Core

Peningkatan mendadak transaksi segwit setelah banyak perkhidmatan berasaskan bitcoin seperti Coinbase dan GDAX menyokong segwit selaras dengan pelancaran versi baru perisian Bitcoin Core
Peningkatan mendadak transaksi segwit setelah banyak perkhidmatan berasaskan bitcoin seperti Coinbase dan GDAX menyokong segwit selaras dengan pelancaran versi baru perisian Bitcoin Core
Kredit: Segwit Party [5] dan Blockchair [6]

[https://mybit.my/ms/?p=1509]

Secara teori, segwit juga boleh mengurangkan yuran transaksi yang perlu dibayar kepada pelombong bitcoin kerana kurang persaingan untuk memasukkan transaksi ke dalam satu-satu blok bitcoin. Perubahan-perubahan yang dibuat dengan penambahan segwit adalah serasi dengan protokol asal bitcoin.

Selain itu, segwit juga mempunyai beberapa fungsi lain. Antaranya ialah menyelesaikan masalah kebolehtempaan transaksi (transaction malleability), dan menjadi asas kepada naik taraf protokol bitcoin seterusnya seperti lapisan kedua rangkaian bitcoin yang dikenali sebagai “Lightning Network” yang dibangunkan untuk menyelesaikan masalah penskalaan bitcoin.

 

Perisian Bitcoin Core versi 0.16.0 tersebut turut menawarkan beberapa ciri-ciri baharu lain;

– format pangkalan data dompet baharu yang menggunakan kaedah hierarki berketentuan (hierarchical deterministic, HD) yang membolehkan kekunci persendirian (private key) atau kekunci awam (public key) dijana berdasarkan satu kekunci utama
– fungsi ganti-dengan-yuran (Replace-By-Fee) diaktifkan secara lalai pada antara muka pengguna yang membolehkan transaksi yang belum disahkan diganti dengan transaksi lain dengan membayar yuran transaksi yang lebih tinggi
– pengoptimuman (optimization) cincangan (hashing) SHA256 pada seni bina (architecture) yang menyokong arahan SSE4 dibolehkan secara lalai yang membawa kepada peningkatan kira-kira 50% untuk pengiraan yang menggunakan SHA256
– beberapa penambahbaikan kecil antara muka pengguna
– beberapa penambahbaikan lain pada aras rendah terutama yang melibatkan bahagian panggilan prosedur jauh (remote procedure call, RPC) 

[https://mybit.my/ms/?p=1509]

Kredit gambar muka: BTC Keychain [0]

 

Rujukan:

[0] BTC Keychain: https://www.flickr.com/photos/btckeychain/31208340720/

[1] https://github.com/bitcoin/bitcoin/blob/v0.16.0/doc/release-notes.md

[2] Base32 address format for native v0-16 witness outputs: https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki

[3] Segregated Witness (Consensus layer): https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki

[4] Segregated Witness: https://en.bitcoin.it/wiki/Segregated_Witness

[5] SegWit Charts: http://segwit.party/charts/

[6] https://blockchair.com/bitcoin/blocks