Daftar Isi
- Memahami Blockchain
- Berurusan Dengan Pengeluaran Ganda
- Bukti Kerja & 'Tambang'
Salah satu masalah utama dari pengembang mata uang digital adalah masalah pengeluaran ganda. Ini merujuk pada insiden pengeluaran individu, keseimbangan cryptocurrency lebih dari satu kali, secara efektif menciptakan perbedaan antara catatan pengeluaran dan jumlah cryptocurrency yang tersedia, serta cara didistribusikannya.
Masalah pengeluaran ganda adalah masalah yang tidak dimiliki uang tunai; jika Anda membayar sandwich dengan tagihan $ 10, membalikkan tagihan itu ke pembuat sandwich, Anda tidak bisa berbalik dan menghabiskan $ 10 yang sama di tempat lain. Namun, transaksi yang menggunakan mata uang digital seperti bitcoin terjadi sepenuhnya secara digital. Ini berarti bahwa dimungkinkan untuk menyalin rincian transaksi dan menyiarkan ulang sedemikian rupa sehingga BTC yang sama dapat digunakan berulang kali oleh satu pemilik. Di bawah ini, kami akan memeriksa bagaimana pengembang cryptocurrency memastikan bahwa pengeluaran ganda tidak dapat terjadi.
Pengambilan Kunci
- Masalah teknis yang muncul dengan gagasan mata uang digital adalah kemampuan seseorang untuk menduplikasi uang digital dan membelanjakannya secara bersamaan di dua tempat atau lebih. Masalah 'pengeluaran ganda' ini dicegah dalam cryptocurrency berbasis-blockchain seperti Bitcoin oleh menggunakan mekanisme konsensus yang dikenal sebagai proof-of-work (PoW). PoW ini dilakukan oleh jaringan 'penambang' yang didesentralisasi yang tidak hanya mengamankan kesetiaan transaksi masa lalu pada buku besar blockchain tetapi juga mendeteksi dan mencegah pengeluaran ganda..
Memahami Blockchain
Blockchain yang mendasari mata uang digital seperti bitcoin tidak dapat mencegah pembelanjaan ganda sendiri. Alih-alih, semua transaksi berbeda yang melibatkan cryptocurrency relevan diposting ke blockchain, di mana mereka secara terpisah diverifikasi dan dilindungi oleh proses konfirmasi. Dalam kasus bitcoin dan banyak cryptocurrency lainnya, transaksi yang telah dikonfirmasi dengan cara ini menjadi tidak dapat diubah; mereka diposting secara publik dan dipertahankan untuk selamanya.
Bitcoin adalah mata uang digital utama pertama yang memecahkan masalah pengeluaran ganda. Itu melakukannya dengan menerapkan mekanisme konfirmasi ini dan mempertahankan sistem buku besar universal. Dengan cara ini, blockchain bitcoin menyimpan catatan transaksi bertanda waktu kembali ke pendirian cryptocurrency pada tahun 2009.
Dalam istilah Bitcoin, "blok" adalah file data yang direkam secara permanen. Semua transaksi baru-baru ini ditulis dalam blok, seperti buku besar transaksi saham di bursa. Informasi dari blok ditambahkan ke buku besar setiap beberapa menit; semua node di jaringan menyimpan salinan buku besar blockchain. Pengguna dapat menavigasi blockchain untuk bitcoin dan meninjau transaksi hanya dari segi kuantitas. Detail tentang identitas pembeli dan penjual dalam setiap transaksi dilindungi oleh enkripsi tingkat tinggi, yang juga melindungi buku besar dari gangguan oleh sumber luar. Ketika buku besar blockchain diperbarui, demikian juga semua dompet bitcoin.
Berurusan Dengan Pengeluaran Ganda
Bayangkan Anda memiliki 1 BTC dan Anda mencoba untuk membelanjakannya dua kali dalam dua transaksi terpisah. Anda dapat mencoba melakukan ini dengan mengirim BTC yang sama ke dua alamat dompet bitcoin terpisah. Kedua transaksi ini kemudian akan masuk ke kumpulan transaksi yang belum dikonfirmasi. Transaksi pertama akan disetujui melalui mekanisme konfirmasi dan kemudian diverifikasi ke blok berikutnya. Namun, transaksi kedua akan diakui tidak valid oleh proses konfirmasi dan tidak akan diverifikasi. Jika kedua transaksi ditarik dari kumpulan untuk konfirmasi secara bersamaan, transaksi dengan jumlah konfirmasi tertinggi akan dimasukkan dalam blockchain, sedangkan yang lainnya akan dibuang.
Meskipun ini secara efektif menangani masalah pengeluaran ganda, ini bukan tanpa masalah. Sebagai contoh, penerima yang dimaksud dari transaksi kedua (gagal) tidak akan memiliki bagian dalam transaksi itu sendiri gagal, namun orang itu tidak akan menerima bitcoin yang telah diantisipasi. Banyak pedagang menunggu setidaknya 6 konfirmasi transaksi (artinya 6 blok transaksi berikutnya ditambahkan ke blockchain setelah transaksi tersebut). Pada titik ini, pedagang dapat dengan aman berasumsi bahwa transaksi tersebut valid.
Masih ada kerentanan lain dalam sistem ini yang memungkinkan terjadinya serangan pembelanjaan ganda. Misalnya, jika seorang penyerang entah bagaimana dapat mengendalikan setidaknya 51% dari kekuatan jaringan, ia dapat melakukan pengeluaran ganda. Jika seorang penyerang entah bagaimana dapat mengendalikan kekuatan komputasi sebanyak ini, ia dapat membalikkan transaksi dan membuat blockchain pribadi yang terpisah. Namun, pertumbuhan bitcoin yang cepat hampir memastikan bahwa jenis serangan ini tidak mungkin. (Untuk lebih lanjut, lihat Waspada terhadap Lima Penipuan Bitcoin Ini)
Bukti Kerja & 'Tambang' Dijelaskan
Sekarang mari kita sedikit lebih teknis. Cara pengguna mendeteksi gangguan seperti upaya menghabiskan dua kali lipat dalam praktik adalah melalui hash, rangkaian panjang angka yang berfungsi sebagai bukti kerja (PoW). Letakkan satu set data tertentu melalui fungsi hash (bitcoin menggunakan SHA-256), dan itu hanya akan menghasilkan satu hash. Namun, karena "efek longsoran salju", bahkan perubahan kecil pada bagian mana pun dari data asli akan menghasilkan hash yang sama sekali tidak dapat dikenali. Apa pun ukuran set data asli, hash yang dihasilkan oleh fungsi yang diberikan akan memiliki panjang yang sama. Hash adalah fungsi satu arah: tidak dapat digunakan untuk mendapatkan data asli, hanya untuk memeriksa apakah data yang menghasilkan hash cocok dengan data asli.
Menghasilkan sembarang hash untuk satu set transaksi bitcoin akan sepele untuk komputer modern, jadi untuk mengubah proses menjadi "kerja, " jaringan bitcoin menetapkan tingkat "kesulitan" tertentu. Pengaturan ini disesuaikan sehingga blok baru "ditambang" - ditambahkan ke blockchain dengan menghasilkan hash yang valid - kira-kira setiap 10 menit. Menetapkan kesulitan dicapai dengan menetapkan "target" untuk hash: semakin rendah target, semakin kecil kumpulan hash yang valid, dan semakin sulit untuk menghasilkan hash. Dalam praktiknya, ini berarti hash yang dimulai dengan string panjang nol: hash untuk blok # 429818, misalnya, adalah 000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d. Blok itu berisi 2.012 transaksi yang melibatkan lebih dari 1.000 bitcoin, serta header blok sebelumnya. Jika pengguna mengubah satu jumlah transaksi dengan 0, 0001 bitcoin, hash yang dihasilkan tidak akan dikenali, dan jaringan akan menolak penipuan.
Karena kumpulan data tertentu hanya dapat menghasilkan satu hash, bagaimana penambang memastikan mereka menghasilkan hash di bawah target? Mereka mengubah input dengan menambahkan integer, yang disebut nonce ("angka yang digunakan sekali"). Setelah hash yang valid ditemukan, disiarkan ke jaringan, dan blok ditambahkan ke blockchain.
Penambangan adalah proses yang kompetitif, tetapi lebih merupakan lotre daripada balapan. Rata-rata, seseorang akan menghasilkan bukti kerja yang dapat diterima setiap sepuluh menit, tetapi siapa yang akan menebaknya adalah siapa pun. Penambang mengumpulkan bersama untuk meningkatkan peluang mereka dalam menambang blok, yang menghasilkan biaya transaksi dan, untuk waktu yang terbatas, hadiah bitcoin yang baru dibuat.
Bukti kerja membuatnya sangat sulit untuk mengubah aspek blockchain, karena perubahan seperti itu akan membutuhkan penambangan ulang semua blok berikutnya. Ini juga menyulitkan pengguna atau kumpulan pengguna untuk memonopoli daya komputasi jaringan, karena mesin dan daya yang dibutuhkan untuk menyelesaikan fungsi hash mahal.