2021-10-15

Apa itu Bukti Kerja Dilaksanakan?


Jika anda pernah membaca artikel berkenaan teknologi blok rantai dan matawang kripto, besar kemungkinan telah terlintas beberapa istilah teknikal seperti mekanisme konsensus dan bukti kerja dilaksanakan. Namun, apa itu bukti kerja dilaksanakan? Apa yang dibuktikan? Apakah pekerjaan yang dilakukan?

Bagi pemula, teknologi blok rantai mungkin kedengaran agak mudah difahami. Terdapat beberapa blok yang menyimpan data, dan rantai-rantai yang menghubungkan blok-blok tersebut. Integriti dan keselamatan blok-blok ini dipelihara oleh setiap nod dalam rangkaian blok rantai tersebut dan menghasilkan sebuah sistem yang tidak berpusat. Namun, bagaimana rangkaian tersebut dapat membezakan antara nod jujur dan nod pengkhianat? Bagaimana teknologi blok rantai mampu mengelak dari serangan ke atas rangkaian tersebut?

Serangan ke atas rangkaian ini dapat dielakkan melalui sistem toleransi sesar byzantine. Sesuatu rangkaian dilindungi melalui mekanisme-mekanisme konsensus antara nod-nod jujur, dan salah satu mekanisme tersebut adalah bukti kerja dilaksanakan. Dalam artikel ini, kita akan lihat tentang sejarah bukti kerja dilaksanakan, asas-asasnya, dan aplikasinya dalam rangkaian blok rantai.

btc mining
 

Sejarah

 

Sebenarnya, bukti kerja dilaksanakan tidak diperkenalkan oleh Satoshi Nakamoto pada tahun 2008, tetapi telah wujud lebih awal lagi. Pada mulanya, mekanisme bukti kerja dilaksanakan telah digunakan bagi mengelakkan e-mel spam dan serangan nafi khidmat (Denial of Service). Bagi mengelakkan e-mel spam, penghantar e-mel perlu melakukan sedikit kerja pengiraan berkomputer sebelum dapat menghantar e-mel tersebut. Oleh itu, bagi penghantar e-mel spam, mereka perlu menggunakan kuasa komputer yang banyak bagi melengkapkan pengiraan sebelum dapat menghantar ribuan e-mel, manakala bagi penghantar e-mel yang sebenar, mereka hanya perlu menggunakan sedikit sahaja kuasa komputer untuk menghantar e-mel. Salah satu sistem yang menggunakan mekanisme bukti kerja dilaksanakan ialah Hashcash pada tahun 1997.

spam email
 

Bitcoin

 

Dalam rangkaian bitcoin, blok-blok dihasilkan melalui aktiviti melombong oleh pelombong. Setiap blok menyimpan data-data transaksi setelah blok tersebut dilombong. Bagi melombong sesuatu blok, pelombong perlu menyelesaikan masalah kriptografi, iaitu dengan mencari satu nilai cincangan (Hash value) unik yang mempunyai beberapa angka sifar di hadapannya. Nilai ini diperolehi menggunakan kuasa komputer untuk melaksanakan pengiraan pantas. Setelah pelombong berjaya mendapatkan nilai cincangan yang betul, blok baharu akan terhasil dan nilai cincangan tersebut akan diumumkan kepada pelombong-pelombong lain supaya dapat disahkan. Setelah pengesahan dilakukan, blok ini akan dirantai dengan blok sebelumnya, dan pelombong-pelombong akan terus melombong blok baharu. Keseluruhan proses ini dilaksanakan menggunakan komputer.

Bagi menyelesaikan masalah kriptografi, pelombong perlu menggunakan tenaga elektrik yang banyak. Oleh itu, setelah sesebuah blok berjaya dilombong, pelombong ini telah membuktikan bahawa beliau telah melakukan kerja penyelesaian masalah kriptografi. Pelombong yang berjaya akan dihadiahkan beberapa bitcoin sebagai insentif bagi kerja yang dilakukan.

Proof of Work
 

Serangan blok rantai

 

Bagi memahami tahap kalis-serangan blok rantai, kita analisis situasi berikut melalui perspektif nod pengkhianat. Andaikan kita mempunyai 1 bitcoin. Kita mahu melaksanakan perbelanjaan dua kali, iaitu dengan 1 bitcoin tersebut, kita laksanakan pembayaran berlainan secara serentak, seolah-olah kita mempunyai 2 bitcoin. Bagi melaksanakan pembayaran sedemikian, kita tidak boleh melaksanakannya pada blok yang sedang dilombong kerana pelombong lain akan sedar perbuatan ini, dan menghalang pembayaran dilakukan. Kaedah yang kita boleh lakukan ialah dengan mengubah blok yang telah berada dalam rantaian.

Namun, kaedah ini sangat sukar untuk berjaya kerana apabila kita mengubah blok yang telah berada dalam rantaian, kita terpaksa juga mengubah blok-blok yang berikutnya kerana nilai cincangan bagi keseluruhan blok tersebut telah berubah. Perubahan ini dapat dikesan oleh pelombong lain, dan menyebabkan pelombong lain menafikan perubahan yang telah dilakukan. Satu-satunya kaedah yang boleh mengubah blok tersebut adalah dengan melombong kesemua blok berikutnya, sebelum pelombong-pelombong lain berjaya melombong blok terkini. Kaedah ini hanya boleh berjaya jika kita mengawal majoriti kuasa komputer untuk melombong; satu usaha yang sangat mahal dan sukar.

Cabang blok rantai

 

Dalam proses perlombongan blok, terdapat kemungkinan dua blok berjaya dilombong pada masa yang sama. Apabila keadaan ini berlaku, blok rantai tersebut akan mempunyai dua cabang. Kewujudan cabang ini boleh menyebabkan berlakunya gangguan dalam transaksi pada blok-blok yang akan datang. Oleh yang demikian, protokol yang digunakan adalah dengan mengambil cabang yang mempunyai bilangan blok terpanjang, dan memotong cabang lain.

Terdapat juga situasi kewujudan cabang secara kekal. Situasi ini berlaku apabila sebilangan pelombong bersetuju bagi mengekalkan cabang baharu atas sebab tertentu seperti perubahan protokol keselamatan. Antara cabang kekal yang terkenal ialah Bitcoin Cash (BCH).

cabang kekal bitcoincash
 

Pengesahan transaksi

 

Dalam transaksi atas talian yang digunakan hari ini, wujud tiga pihak iaitu pembeli, penjual dan bank. Pembeli akan menghantar wang daripada akaun banknya, kepada akaun bank penjual melalui perantaraan pihak bank. Transaksi ini akan direkodkan oleh bank, dan apabila pihak bank mengesahkan pembayaran, maka pembeli dan penjual dapat bersetuju bahawa transaksi telah berjaya. Namun, dalam teknologi blok rantai, tidak wujud pihak ketiga seperti bank untuk mengesahkan transaksi tersebut. Jadi, bagaimana pihak pembeli dan penjual dapat bersetuju akan pembayaran yang dilakukan?

Jawapannya adalah pada mekanisme bukti kerja dilaksanakan. Apabila sesuatu transaksi direkodkan, kedua-dua pihak pembeli dan penjual perlu menunggu untuk rekod tersebut didaftarkan pada blok yang sedang dilombong. Apabila blok tersebut telah dilombong, kedua-dua pihak maklum bahawa transaksi mereka telah direkodkan. Namun, terdapat juga kemungkinan wujudnya cabang baharu hasil perlombongan blok lain yang tidak merekodkan transaksi tersebut. Bagi memastikan status transaksi pada blok rantai, kedua-dua belah pihak boleh menunggu untuk blok-blok baharu dilombong. Setelah beberapa ketika, hanya cabang terpanjang yang akan kekal dan kedua-dua belah pihak boleh menyemak sama ada transaksi mereka telah direkodkan atau tidak. Melalui kaedah ini, transaksi dapat berlaku tanpa kewujudan pihak ketiga.

pengesahan transaksi pada blok
 

Masalah bukti kerja dilaksanakan

 

Walaupun bukti kerja dilaksanakan telah memacu teknologi blok rantai, ia mempunyai pelbagai masalah. Masalah terbesar ialah pembaziran tenaga elektrik yang tinggi. Oleh sebab kesemua pelombong perlu bekerja bagi melombong blok baharu, mereka akan menggunakan tenaga elektrik yang tinggi. Namun, berlaku pembaziran yang ketara kerana hanya satu blok dapat dilombong pada satu-satu masa oleh salah satu pelombong, manakala usaha pelombong lain akan terbuang.

Satu lagi masalah ialah pengesahan transaksi mengambil masa yang terlalu lama. Bitcoin sebagai contoh, boleh mengambil masa sehingga 2 jam untuk mengesahkan transaksi. Hal ini membawa kepada masalah penggunaan skala besar. Pada skala global, transaksi berlaku pada kadar dan jumlah yang sangat tinggi. Bagi menyelesaikan masalah ini, pembangun teknologi blok rantai mengutarakan beberapa mekanisme konsensus baharu.