8 minit bacaan
Pengenalan
Proof of Work (biasanya disingkatkan menjadi PoW) adalah mekanisme untuk mencegah double-spend. Kebanyakan cryptocurrency utama menggunakannya sebagai algoritma konsensus (consensus algorithm) mereka. Ia dicipta sebagai kaedah untuk menjaga keselamatan lejar cryptocurrency.
Proof of Work adalah algoritma konsensus pertama yang muncul dan sehingga kini tetap menjadi yang dominan. Ia diperkenalkan oleh Satoshi Nakamoto dalam whitepaper Bitcoin pada tahun 2008 walapun teknologi itu sendiri telah dicipta jauh sebelum itu lagi.
HashCash Adam Back adalah contoh awal algoritma Proof of Work pada hari pra-cryptocurrency. Dengan memerlukan pengirim melakukan sejumlah kecil pengkomputeran sebelum mengirim e-mel, penerima boleh mengurangkan spam. Pengkomputeran ini tidak akan memberi sebarang kos untuk pengirim yang sah, tetapi dengan cepat tambah (kos) kepada seseorang yang menghantar e-mel secara beramai-ramai.
Apa itu double spend?
Double-spend berlaku apabila dana yang sama dibelanjakan lebih dari sekali. Terma ini digunakan hampir secara eksklusif dalam konteks wang digital. Lagipun, anda akan sukar menghabiskan wang tunai fizikal yang sama dua kali. Apabila anda membayar kopi hari ini, anda menyerahkan wang tunai kepada juruwang yang mungkin menyimpannya dalam pendaftaran. Anda tidak boleh pergi ke kedai kopi di seberang jalan dan membayar kopi lain dengan bil yang sama.
Dalam skim tunai digital, ada kemungkinan anda boleh melakukannya. Anda boleh membuat salinan fail komputer sebelum ini (anda hanya copy dan paste). Anda boleh e-mel fail yang sama kepada sepuluh, dua puluh, lima puluh orang melalui e-mel.
Oleh kerana wang digital hanyalah data, anda perlu mencegah orang daripada copy dan paste unit yang sama di tempat yang berbeza. Jika tidak, mata wang anda akan runtuh dalam masa yang singkat.
Untuk mengetahui lebih lanjut berkanaan double-spend, boleh baca artikel ini.
Mengapa Proof of Work diperlukan?
Sekiranya anda telah membaca berkenaan teknologi blockchain, anda akan mengetahui bahawa pengguna menyiarkan transaksi ke rangkaian. Walau bagaimanapun, transaksi tersebut tidak dengan segera dianggap sah. Ia hanya berlaku apabila transaksi-transaksi tersebut ditambahkan ke blockchain.
Blockchain adalah pangkalan data (database) besar yang dapat dilihat oleh setiap pengguna, sehinggakan mereka dapat memeriksa sekiranya dana telah dibelanjakan sebelumnya. Bayangkan seperti ini, anda dan tiga rakan mempunyai notepad. Apabila salah seorang daripada anda ingin melakukan pemindahan sebarang unit yang anda gunakan anda tuliskannya seperti ini, Alice membayar Bob sebanyak lima unit, Bob membayar Carol dua unit, dll.
Terdapat satu lagi kerumitan di sini, setiap kali anda membuat transaksi anda akan merujuk kepada transaksi dari mana dana tersebut berasal. Jadi, sekiranya Bob membayar Carol dengan dua unit, kemasukan itu akan kelihatan seperti berikut: Bob membayar Carol dua unit dari transaksi sebelumnya dengan Alice.
Sekarang, kita ada cara untuk mengesan unit tersebut. Sekiranya Bob cuba melakukan transaksi lain dengan menggunakan unit yang sama yang baru dia kirimkan ke Carol, semua orang akan segera mengetahuinya. Kumpulan tersebut tidak akan membenarkan transaksi ditambahkan ke notepad.
Sekarang, ini mungkin berfungsi dengan baik dalam kumpulan kecil. Semua orang mengenali antara satu sama lain, jadi mereka mungkin akan bersetuju rakan mana yang harus menambahkan transaksi ke notepad. Bagaimana jika kita mahukan sekumpulan 10,000 peserta? Idea notepad tidak sesuai dengan skala kerana tidak ada yang mahu mempercayai orang asing untuk menguruskannya.
Di sinilah Proof of Work berfungsi. Ia memastikan bahawa pengguna tidak membelanjakan wang yang mereka tidak berhak membelanjakan. Dengan menggunakan gabungan teori permainan dan kriptografi (game theory and cryptography), algoritma PoW membolehkan sesiapa sahaja mengemas kini blockchain mengikut peraturan sistem.
Baca juga: Apa Itu Mempool?
Bagaimana PoW berfungsi?
Notepad kami di atas adalah blockchain. Tetapi kami tidak menambah transaksi satu demi satu, sebaliknya kami menjadikannya satu blok. Kami mengumumkan transaksi ke rangkaian, kemudian pengguna yang membuat blok akan memasukkannya ke blok candidate (candidate block). Transaksi hanya akan dianggap sah apabila blok calon (candidate block) mereka menjadi blok yang disahkan, yang bermaksud bahawa ia telah ditambahkan ke blockchain.
Walau bagaimanapun, menambah blok tidak murah. Proof of Work memerlukan pelombong (pengguna yang membuat blok) menggunakan sebahagian sumber mereka sendiri untuk keistimewaan tersebut. Sumber itu adalah kuasa pengkomputeran, yang digunakan untuk hash data blok sehingga penyelesaian untuk teka-teki dijumpai.
Hash data blok bermaksud bahawa anda melalui fungsi hashing (hashing function) untuk menghasilkan hash blok. Hash blok berfungsi seperti “cap jari”. Ia adalah identiti untuk data input anda dan unik untuk setiap blok.
Hampir mustahil untuk menterbalikkan blok hash untuk mendapatkan data input. Walau bagaimanapun, mengetahui sesuatu input adalah mustahak bagi anda untuk mengesahkan bahawa hash itu betul. Anda hanya perlu memasukkan input melalui fungsi dan memeriksa sekiranya output adalah sama.
Dalam Proof of Work, anda harus menyediakan data yang hashnya sesuai dengan syarat tertentu. Tetapi anda tidak tahu bagaimana untuk sampai ke sana. Satu-satunya pilihan anda adalah menyampaikan data anda melalui fungsi hash (hash function) dan untuk memeriksa sama ada ia sesuai dengan syarat. Sekiranya tidak, anda perlu menukar data anda sedikit untuk mendapatkan hash yang berbeza. Mengubah walaupun satu watak dalam data anda akan menghasilkan hasil yang amat berbeza, jadi tidak ada cara untuk meramalkan outputnya.
Oleh itu, jika anda ingin membuat blok, anda sedang bermain permainan meneka. Anda biasanya mengambil maklumat mengenai semua transaksi yang ingin anda tambahkan dan beberapa data penting lain, kemudian hashkan semuanya. Tetapi kerana set data anda tidak akan berubah, anda perlu menambahkan maklumat yang berubah-ubah. Jika tidak, anda akan selalu mendapat hash yang sama dengan output. Data pemboleh ubah ini adalah apa yang kita namakan nonce. Ia adalah nombor yang akan anda ubah dengan setiap percubaan, jadi anda mendapat hash yang berbeza setiap masa. Dan inilah yang kita namakan perlombongan.
Kesimpulannya, perlombongan adalah proses mengumpulkan data blockchain dan hash bersama dengan nonce sehingga anda menemui hash tertentu. Sekiranya anda menemui hash yang memenuhi syarat yang ditetapkan oleh protokol, anda berhak menyiarkan blok baru ke rangkaian. Pada tahap ini, peserta rangkaian yang lain mengemas kini blockchain mereka untuk memasukkan blok baru.
Untuk cryptocurrency utama pada hari ini, syaratnya sangat mencabar untuk dipenuhi. Semakin tinggi kadar hash (hash rate) di rangkaian, semakin sukar untuk mencari hash yang sah. Ini dilakukan untuk memastikan blok tidak dijumpai terlalu cepat.
Seperti yang anda bayangkan, cuba meneka sejumlah besar hash boleh memakan kos yang tinggi di komputer anda. Anda membazirkan kitaran pengkomputeran (computational cycle) dan elektrik. Tetapi protokol akan memberi anda cryptocurrency sekiranya anda menemui hash yang sah.
Mari kita teliti apa yang kita tahu setakat ini:
- Ianya mahal untuk anda melombong.
- Anda mendapat ganjaran sekiranya menghasilkan blok yang sah.
- Dengan mengetahui input, pengguna dapat memeriksa hashnya dengan mudah. Pengguna yang tidak melombong (non-mining users) dapat mengesahkan bahawa blok itu sah tanpa mengeluarkan banyak kuasa pengkomputeran.
Setakat ini, nampaknya begitu baik. Tetapi bagaimana sekiranya anda cuba untuk menipu? Apa yang menghalang anda daripada memasukkan banyak transaksi palsu ke dalam blok dan menghasilkan hash yang sah?
Di sinilah public-key cryptography berfungsi. Kami tidak akan membahas lebih mendalam dalam artikel ini, tetapi anda boleh baca lebih mendalam di sini, untuk melihatnya secara menyeluruh. Pendek kata, kami menggunakan beberapa helah kriptografi yang kemas yang membolehkan pengguna mengesahkan sama ada seseorang mempunyai hak untuk memindahkan dana yang mereka cuba belanjakan.
Apabila anda membuat transaksi, anda menandatanganinya (sign). Sesiapa sahaja di rangkaian dapat membandingkan sign anda dengan public key anda, dan periksa sama ada ia sesuai. Mereka juga akan memeriksa sama ada anda benar-benar dapat membelanjakan dana anda dan bahawa jumlah input anda lebih tinggi daripada jumlah output anda (iaitu, bahawa anda tidak membelanjakan lebih banyak daripada yang anda ada).
Sebarang blok yang merangkumi transaksi yang tidak sah akan ditolak secara automatik oleh rangkaian. Ianya adalah mahal untuk anda walaupun anda cuba menipu. Anda akan membuang sumber anda sendiri tanpa sebarang ganjaran.
Di sinilah terletaknya keindahan Proof of Work. Ia menjadi mahal sekiranya anda cuba menipu, tetapi menguntungkan sekiranya bertindak dengan jujur. Mana-mana pelombong yang rasional akan mencari ROI (return of investment), jadi mereka boleh diharapkan untuk berkelakuan dengan cara yang menjamin pendapatan.
Proof of Work vs Proof of Stake
Terdapat banyak algoritma konsensus, tetapi salah satu yang paling dinanti-nantikan adalah Proof of Stake (PoS). Konsep ini bermula pada tahun 2011, dan telah dilaksanakan dalam beberapa protokol yang lebih kecil. Tetapi ia masih belum dapat diterima pakai di mana-mana blokchain besar.
Dalam sistem Proof of Stake, pelombong diganti dengan pengesah. Tidak ada perlombongan yang terlibat dan tidak ada perlumbaan untuk meneka hash. Sebagai gantinya, pengguna dipilih secara rawak. Jika mereka dipilih, mereka mesti mencadangkan (atau “membentuk”) blok. Sekiranya blok itu sah, mereka akan menerima ganjaran yang terdiri daripada yuran dari transaksi blok tersebut.
Pengguna bukan hanya dapat dipilih sebarangan, protokol memilihnya berdasarkan beberapa faktor. Untuk memenuhi kelayakan, peserta mesti mengunci stake, yang merupakan jumlah mata wang asli blockchain (blockchain’s native currency) yang telah ditentukan. Stake tersebut berfungsi seperti jaminan. Contohnya seperti defendan meletakkan sejumlah besar wang untuk mengelakkan mereka daripada memonteng perbicaraan, pengesah mengunci stake untuk mengelakkan berlakunya penipuan. Sekiranya mereka bertindak tidak jujur, stake mereka (atau sebahagian daripadanya) akan diambil.
Proof of Stake memang mempunyai beberapa kelebihan berbanding Proof of Work. Yang paling terkenal adalah jejak karbon yang lebih kecil. Oleh kerana tidak ada keperluan untuk ladang perlombongan berkuasa tinggi di PoS, elektrik yang digunakan hanyalah sebahagian kecil daripada yang digunakan di PoW.
Seperti yang dinyatakan, ia tidak mempunyai rekod prestasi yang hampir dengan PoW. Walaupun dapat dianggap sebagai pembaziran, perlombongan adalah satu-satunya algoritma konsensus yang membuktikan dirinya dalam skala besar. Hanya dalam masa lebih dari satu dekad, ia telah menjamin transaksi bernilai trilion dolar. Untuk mengatakan dengan kepastian sama ada PoS dapat menandingi keselamatannya, stake perlu diuji dengan betul lebih banyak lagi.
Kesimpulan
Proof of Work adalah penyelesaian asal untuk masalah double spend dan terbukti boleh dipercayai dan selamat. Bitcoin membuktikan bahawa kita tidak memerlukan entiti berpusat untuk mengelakkan dana yang sama dibelanjakan dua kali. Dengan penggunaan kriptografi, fungsi hash (hash function), dan teori permainan yang bijak, peserta dalam persekitaran yang terdesentralisasi dapat menyetujui keadaan pangkalan data kewangan.
Sumber daripada binance academy, coinmarketcap dan mycryptoversity