Keterbatasan dan Pengembangan. Adanya keterbatasan ini, jauh sebelum Bitcoin tumbuh dan berkembang seperti pada masa sekarang. Beberapa keterbatasan tersebut adalah pada batas waktu rata-rata per blok, ukuran blok, jumlah operasi penandatanganan blok, pembagian mata uang, jumlah total Bitcoin, dan juga struktur reward blok.
Pada kaitannya dengan jumlah total Bitcoin yang ada, struktur reward blok pada pertambangan Bitcoin mungkin tidak akan pernah berubah. Hal itu dikarenakan adanya impllikasi ekonomi yang akan bisa mengubah dan membuat pertumbuhannya terlalu besar.
Cara Kerja Bitcoin – Keterbatasan Dan Pengembangan Bitcoin
Para penambang, dan juga para investor telah membuat perbedaan besar pada sistem Bitcoin. Oleh karena itu, struktur reward blok Bitcoin dan terbatasnya pasokan akan tetap berjalan sesuai dengan yang direncanakan. Jika hal ini dirubah, maka akan berdampak besar pada implikasi keuangan. Karena pada dasarnya masyarakat Bitcoin menyepakati tentang aspek tersebut. Menyepakati untuk tidak merubah hal itu.
Sementara itu, ada beberapa perubahan yang telah dilakukan agar bisa membuat lebih baik dari desain awalnya. Salah satu perubahan tersebut menyangkut berapa banyak transaksi yang bisa diproses dalam jaringan Bitcoin dalam hitungan detik. Terutama tentang batasan yang akan mempengaruhi throughput dari sistem Bitcoin.
Awalnya keterbatasan ini muncul dari hard coded batas ukuran blok. Dalam Bitcoin, setiap blok dibatasi ukurannya sebesar 1 megabyte. Setiap transaksi setidaknya terdiri dari 250 byte. Membagi 1.000.000 dengan 250 byte, akan bisa menghasilkan kurang lebih 4.000 transaksi pada blok setiap selang waktu 10 meniit. Estimasinya akan ada 7 transaksi yang diproses per detik. Semua transaksi ini diproses dalam jaringan Bitcoin. Dan kita telah membicarakan hal tersebut pada pembahasan sebelum ini.
Jika pengubahan limit itu dilakukan, bisa menjadi masalah pada tweaking source codenya. Namun bagaimanapun, cukup sulit juga untuk merubahnya. Jadi bagaimana perbandingan ke tujuh transaksi yang terjadi setiap detik tersebut?
Perbandingan ketujuh transaksi itu lebih rendah jika dibandingkan pada beberapa prosesor kartu kredit pada umumnya. Dalam jaringan Visa, mampu menangani transaksi rata-rata kurang lebih 2.000 transaksi per detik. Pada keseluruhan transaksi yang dilakukan di seluruh dunia. Ketika trafic jaringan dalam kondisi yang padat, jaringan Visa mampu menangani transaksi 10.000 transaksi dalam setiap detiknya. Jika dibandingkan dengan Paypal, juga masih lebih rendah. Paypal mampu menangani 100 transaksi per detik di saat transaksi padat.
Selain itu, ada keterbatasan lainnya dalam Bitcoin. Beberapa orang merasa khawatir pada masa jangka panjang Bitcoin. Hal itu berkitan dengan ketetapan pilihan algoritma yang digunakan dalam Bitcoin akan selamanya tetap. Sementara hanya ada beberapa algoritma hash yang tersedia. Yakni satu algoritma signature, ECDSA (The Elliptic Curve Digital Signature Algorithm). .
Kekhawatiran tersebut dilandasi pemikiran jika algoritma itu digunakan secara tetap, mereka khawatir jika algoritma tersebut mungkin akan bisa rusak. Mereka juga khawatir jika suatu saat terjadi sebuah serangan yang mungkin bisa lebih cerdas dan jitu, yang bisa membuat algoritma tersebut tidak aman lagi.
Kekhawatiran itu juga timbul pada fungsi hash yang dipakai dalam Bitcoin. Meski kenyataannya, dalam dekade terakhir, telah dilihat adanya kemajuan secara kriptanalisis, masih ada kekhawatiran. Misalnya pada SHA-1 yang juga digunakan di Bitcoin. SHA-1, memiliki kelemahan meski tidak begitu fatal. Sementara untuk bisa mengubah hal ini, haruslah memperpanjang bahasa scripting Bitcoin. Sehingga bisa mendukung adanya algoritma kriptografi yang baru.
Lalu bagaimana tahapan apa yang bisa dilakukan untuk bisa melakukan beberapa perubahan yang diperlukan untuk mengatasi kekhawatiran tersebut?
Mengubah Protokol
Bitcoin telah juga memiliki fitur baru yang dimasukkan ke dalam protokol Bitcoin. Caranya, dengan membuat release versi baru pada software Bitcoin. Lalu memberitahu semua node untuk melakukan upgrade ke versi baru tersebut.
Meski demikian, pada prakteknya juga cukup rumit. Karena tidak bisa menganggap bahwa semua node dalam jaringan Bitcoin akan seluruhnya mengupgrade software Bitcoin mereka. Beberapa node mungkin juga akan mengalami beberapa kesullitan maupun kegagalan saat berusaha upgrade software baru tersebut.
Sedangkan, ada implikasi juga jika beberapa node telah upgrade versi baru, sementara beberapa node lainnya masih memakai versi yang lama. Implikasi tersebut akan bergantung pada sifat perubahan yang bisa ditimbulkan dalam softwarenya. Perbedaan yang ditimbulkan dari adanya perubahan itu dibedakan dalam dua jenis. Yakni menyebabkan adanya Hard Fork, dan juga Soft Fork. Mari kita bahas kedua jenis perbedaan ini.
Hard Fork
Pada jenis pengubahan ini, akan membuat sebuah fitur baru, dari yang sebelumnya dianggap sebagai tidak valid, menjadi sebuah blok atau transaksi yang valid. Artinya, pada software Bitcoin versi sebelumnya, sebuah blok ataupun transaksi dianggap tidak valid, sedangkan di versi yang baru blok itu dianggap menjadi valid. Lalu apa yang terjadi jika sebagian node yang telah mengupgrade versi software Bitcoin, dan sebagian lagi masih menggunakan versi lama, saat membaca sebuah blok atau transaksi tersebut?
Pada sebuah cabang blok yang panjang, node yang memakai versi lama akan membaca pada cabang tersebut ada blok yang tidak valid. Lalu node tersebut akan berlalu dan mengerjakan blok lain di cabang tersebut. Sampai node tersebut mengupgrade perangkat lunaknya. Dan node ini akan menganggap cabang pendeknya yang telah dikerjakan tersebut menjadi sebuah blok yang valid di cabang yang terpanjang.
Sehingga pengubahan secara hard fork ini akan mempunyai dua pandangan yang berbeda pada sebuah cabang rantai blok. Masing-masing node akan menghasilkan pandangan atas blok tersebut berdasarkan dari jenis dan versi protokol yang terdapat pada software yang digunakannya. Nah, efeknya adalah, blok di cabang yang dikerjakan oleh node yang memakai versi lama itu tidak akan bergabung dalam rantai blok. Node itu pada akhirnya bisa dianggap tidak diterima oleh jaringan Bitcoin. Karena mereka tidak mau mengupgrade perangkat Bitcoinnya.
Soft Fork
Pengubahan kedua dinamakan dengan Soft Fork. Type kedua ini dengan menambahkan aturan validasi yang ketat. Dengan membatasi set transaksi atau validasi blok yang valid. Sehingga jika pada versi lama akan menerima semua blok, sementara pada versi baru, bisa jadi akan menolak beberapa diantaranya.
Pada perubahan ini, akan bisa menghindari perpecahan yang ditimbulkan dari perubahan karena hard fork tadi. Coba dibayangkan apa yang akan terjadi jika soft fork ini dijalankan. Node yang telah menjalankan perangkat baru, akan menegakkan aturan baru secara ketat. Asalkan mayoritas node dalam jaringan telah juga menggunakan versi baru soft fork ini. Sehingga node dengan perangkat baru ini akan bisa mendesak node lainnya untuk menerapkan aturan baru tersebut.
Soft fork cukup bergantung pada node untuk juga menggunakan versi software Bitcoin terbaru. Sedangkan pada node yang lama tidak akan bisa menegakkan aturan baru, karena mereka belum pernah mendengar aturan itu sebelumnya. Lalu apakah akan ada resiko nantinya?
Ya, ada resiko juga pada perubahan soft fork ini. Karena bisa jadi nantinya, para penambang di versi lama akan menambang pada sebuah blok yang dianggap tidak valid, berdasarkan pada aturan baru yang telah ada. Setidaknya node dengan versi lama tersebut mengetahui bahwa blok mereka telah ditolak. Meskipun mereka mungkin tidak akan mengerti alasan mengapa blok mereka ditolak. Padahal alasannya karena mereka tidak menggunakan versi terbaru soft fork ini. Sehingga mereka tidak mengetahui adanya peraturan yang lebih ketat.
Selain itu, bisa juga terjadi, jika cabang blok yang dikerjakan oleh penambang lama disusul oleh penambang baru, maka penambang lama akan beralih juga ke cabang penambang baru itu. Karena blok itu sama-sama dianggap valid, oleh penambang baru, dan juga penambang lama yang menggunakan versi lama itu. Dengan hal semacam ini, maka tidak akan ada hard fork. Yang ada hanyalah fork yang bersifat sementara.
Contoh penggunaan soft fork ini dilakukan pada pay-to-script-hash. Pembahasan tentang ini bisa dibaca lagi di Script Bitcoin Dalam Cara Kerja Bitcoin. Pay-to-script-hash, tidak digunakan pada versi awal protokol Bitcoin sebelumnya.
Di contoh pay-to-script itu disebut soft fork, karena pada transaksi valid secara pay-to-script-hash masih akan diverifikasi lagi secara benar. Sebagaimana yang akan dilihat oleh node lama dengan versi perangkat lama. Dalam scriptnya, di lakukan dengan cara melakukan hashing satu nilai data, dan memeriksa apakah hash itu cocok dengan nilai output yang ditentukan dalam script.
Jika pay-to-script-hash telah berhasil, lalu apa lagi yang bisa ditambahkan dalam soft fork ini? Masih memungkinkan untuk menambahkan beberapa tambahan metadata di parameter coinbase. Sekarang, nilai berapapun diterima di parameter coinbase. Di masa mendatang, mungkin akan dibutuhkan beberapa format baru di parameter coinbase tersebut.
Salah satunya adalah, mungkin pada setiap blok baru, coinbase akan memasukkanya kedalam root merkle yang mengandung keseluruhan set transaksi yang belum terpakai. Sehingga perubahan ini nantinya bisa menghasilkan soft fork. Karena node lama mungkin akan menambang blok yang tidak membutuhkan parameter coinbase, yang sebelumnya di tolak di dalam jaringan.
Sedangkan pada perubahan lainnya, mungkin akan membutuhkan hard fork. Misalnya dengan menambahkan opcode baru dalam Bitcoin. Dengan cara mengubah batas ukuran blok, ataupun juga dalam perbaikan bug.
Berkaitan dengan upaya perbaikan adanya bug, sebelumnya telah kita lihat pada pembahasan MULTISIG sebelumnya. Bisa dilihat kembali pembahasan tersebut pada Cara Kerja Bitcoin – Aplikasi Script Bitcoin. Set instruksi MULTISIG tersebut, membutuhkan sebuah hard fork. Dari hal ini, bisa diketahui bahwa meskipun ada bug yang mengganggu, akan bisa lebih mudah meninggalkannya di dalam protokol Bitcoin. Daripada harus menjalankan sebuah hard fork untuk merubah Bitcoin.
Karena pada dasarnya, ketika menggunakan hard fork, meskipun bisa membuat situasi menjadi lebih menyenangkan, cukup tidak mungkin bisa dilakukan di situasi yang sekarang. Sedangkan uji coba atas ide-ide tersebut sudah dilakukan dan terbukti berhasil di beberapa cryptocurrency lain.
Karena pada dasarnya, ketika menggunakan hard fork, meskipun bisa membuat situasi menjadi lebih menyenangkan, cukup tidak mungkin bisa dilakukan di situasi yang sekarang. Sedangkan uji coba atas ide-ide tersebut sudah dilakukan dan terbukti berhasil di beberapa cryptocurrency lain.