Menyimpan Ke Dalam Blockchain
Proses merekam semua dalam ledger menjadi komponen kunci lainnya dari Bitcoin. Ledger ini biasa disebut dengan blockchain. Merupakan sebuah rantai blok besar, berfungsi sebagai buku pencatatan seluruh transaksi yang bisa diakses secara publik.
Ide-ide di balik rantai blok ini sudah cukup lama ada. Haber dan Stornetta mengawali hal ini dengan paper yang ditulis pada tahun 1991. Proposal mereka, merupakan sebuah metode untuk mengamankan pemberian penunjuk waktu (timestamping) dalam sebuah dokumen digital, masih belum membahas tentang skema uang digital.
Tujuan penanda waktu ini adalah untuk memberikan gambaran perkiraan waktu saat sebuah dokumen digital muncul. Paling utama adalah, timestamping ini bisa dengan akurat saat menyampaikan urutan penciptaan dokumen. Jika salah satu dokumen muncul sebelum dokumen lainnya, maka timestamping juga akan mencerminkan hal tersebut pada penanda waktunya. Ada sebuah pengaman yang dibutuhkan agar timestamp tersebut tidak bisa dirubah sesuai dengan fakta ketika dokumen digital tersebut muncul.
Haber dan Stornetta dalam skemanya, memberikan sebuah layanan timestamp ini kepada dokumen klien. Ketika server menerima sebuah dokumen, maka akan memberi penanda pada tersebut bersamaan dengan waktu pada saat itu. Dan juga sebagai link atau pointer yang menunjukkan ke dokumen sebelumnya. Kemudian, memberikan sertifikat atas informasi dokumen itu. Dimaksud “pointer” disini adalah sebuah tipe pointer khusus yang secara otomatis akan terhubung dengan potongan data, namun bukan untuk menunjukkan lokasi. Sementara, Jika ada pertanyaan data yang berubah, maka pointer menjadi invalid. Penggunaan pointer secara khusus ini juga bisa dibuat menggunakan fungsi hash (pointer hash).
Yang ingin dicapai dari sini adalah bahwa pada setiap sertifikat dokumen, bisa dipastikan tentang integritas isi dari dokumen sebelumnya. Bisa juga dengan menerapkan argumen secara rekursif. Rekursif adalah sebuah fungsi dalam bahasa pemprograman, dengan sebuah fungsi untuk memanggil dirinya sendiri.
Setiap sertifikat, mempunyai esensi sebagai perbaikan pada seluruh sertifikat dan juga sejarah dokumen. Saat setiap klient melacak beberapa sertifikat dokumen milliknya sendiri, dan beberapa dokumen orang lain yang sebelumnya, maka secara kolektif pengguna dapat memastikan bahwa sejarah dokumen tersebut tidak bisa dirubah. Karena sudah tersurun sedemikian rupa berdasarkan urutan tertentu dalam sebuah dokumen.
Untuk membuat sertifikat pada sebuah dokumen, server timestamp memasukkan hash pointer pada sertifikat dokumen sebelumnya, penunjuk waktu, dan memberikan penanda pada ketiga element tersebut secara bersamaan.
Setelah itu, ada sebuah paper proposal lagi dengan menambahkan peningkatan dan efisiensi. Namun tidak dengan cara menghubungkan dokumen secara terpisah, melainkan dengan mengumpulkan mereka kedalam sebuah blok, dan kemudian menghubungkan blok tersebut dengan blok lain yang sama dalam sebuah rantai. Pada setiap blok, dokumen akan sekali lagi dihubungkan bersama-sama, dalam sebuah struktur pohon yang non linier. Fungsinya, untuk mengurangi jumlah pengecekan yang diperlukan dalam memberikan verifikasi pada suatu dokumen tertentu dalam sejarah sistem. Bentuk visual dari skema hybrid akan nampak seperti gambar dibawah ini:
Tanda panah pada gambar tersebut mewakili pointer hash, sedangkan garis vertikal putus-putus menunjukkan interval waktu. Struktur data ini selanjutnya membentuk kerangka rantai blok. Seperti halnya sebuah rantai blok dalam Bitcoin.
Bitcoin kemudian memberikan perbaikan yang cukup efisien dan penting. Protokol Hashcash-esque, digunakan untuk sedikit menunda seberapa cepat blog baru akan ditambahkan kedalam rantai. Modifikasi ini mempunyai konsekuensi besar dan juga memberikan keamanan pada Bitcoin. Tidak diperlukkan lagi sebuah server yang bisa dipercaya. Sebaliknya, semua peristiwa akan dicatat oleh kumpulan node, kemudian disebut dengan “miners” (penambang). Lebih efektif dengan menggunakan penambang untuk melacak setiap blok, daripada menggantungkan hal tersebut pada pengguna.
Semua orang bisa menjadi penambang dengan memecahkan puzzle dengan komputansi untuk menghasilkan blok. Bitcoin, juga menghilangkan signature pada protokol itu, dan cukup mengandalkan pointer hash untuk memastikan integritas struktur datanya. Begitupun dengan penanda waktu yang sebetulnya tidak terlalu penting di Bitcoin. Titik dari sistem ini adalah untuk merekam urutan relatif dari transaksi dengan memberikan sebuah cara seperti halnya tamper-resistant. Karena blok bitcoin tidak diciptakan dalam jadwal waktu yang tetap. Dengan sistem ini akan memastikan bahwa blok baru yang dibuat rata-rata membutuhkan waktu kurang lebih 10 menit. Namun ada variasi waktu, secara berturut-turut dari blok satu dengan lainnya.
Garis besarnya disini adalah, bahwa Bitcoin menggabungkan ide untuk menggunakan komputansi puzzle ini sebagai cara untuk pembentukan unit-unit mata uang baru, dan dengan ide timestamping untuk merekam keseluruhan transaksi dan pencegahan adanya transaksi ganda.
Masa sebelumnya, ada juga yang menggabungkan dua gagasan ini, yang pertama disebut b-money, dibuat oleh Wei Dai pada tahun 1998. Pada b-money siapapun dapat membuat uang dengan menggunakan seperti pada sistem hashcash. Mempunyai jaringan peer-to-peer seperti halnya Bitcoin. Dan juga setiap node untuk memelihara buku besar, hanya saja, buku besar tersebut tidaklah seperti buku besar global yang ada pada block chain Bitcoin.
Setiap node pada sistem b-money, memilliki buku sendiri. Hal ini dianggap sebagai keseimbangan semua orang. Hal serupa juga diusulkan oleh Nick Szabo, yang diberi nama dengan Bitgold. Ia memiliki gagasan tentang Bitgold pada tahun 1998. Namun tidak pernah ada gagasan tentang itu di internet hingga tahun 2005. Bisa jadi, ada sebuah teori konspirasi didalamnya, seperti pada teori yang dipopulerkan oleh Nathaniel Popper.
Teori ini kemudian dituliskan oleh seorang reporter dari New York Times. Popper menuliskan bukunya dengan cukup bagus, membahas tentang sejarah Bitcoin. Popper memberikan catatan bahwa timestamps berubah sejak saat Satoshi memposting whitepapernya. Sehingga proposal Bitgold menjadi seperti tertindih dan tertulis ulang kurang lebih dua bulan setelah Bitcoin di rilis.
Menurut Popper, seperti halnya pengamat lainnya, bahwa Szabo mungkin saja adalah Satoshi, lantas mengutip perubahan timestamp itu sebagai bukti, bahwa entah Szabo ataupun Satoshi yang berusaha menutupi kenyataan, bahwa ia menemukan Bitgold sebelum ia mengetahui tentang adanya Bitcoin. Szabo, telah secara jelas mempunyai ide ini di tahun 1998, dan dia tidak berusaha mengubah tanggal tersebut, alasan yang masuk akal adalah bahwa ia hanya menemukan sebuah posting dengan ide yang sama setelah bitcoin dipopulerkan. Mungkin, hal itu untuk memastikan bahwa orang-orang akan menyadari proposal-proposal sebelumnya.
Bitcoin memiliki beberapa perbedaan penting dari b-money dan juga Bitgold. Dalam proposal tersebut, teka-teki komputasi digunakan secara langsung untuk pembentukan mata uang digital. Siapapun yang dapat memecahkan teka-teki dan solusinya adalah unit dari mata uang digital itu sendiri. Dalam Bitcoin, solusi teka-teki sendiri merepresentasikan uang. Mereka digunakan hanya untuk mengamankan rantai blok, namun secara tidak langsung menyebabkan pencetakan uang untuk waktu yang terbatas.
Perbedaan kedua, b-money dan Bitgold mengandalkan layanan timestamping yang dengan menandatangani penciptaan atau transfer uang. Bitcoin, seperti yang kita lihat, tidak memerlukan timestamping, hanya mencoba untuk melestarikan urutan relatif blok dan juga transaksi.
Akhirnya, pada b-money dan Bitgold, jika ada perbedaan pendapat tentang block chain antara server atau node, tidak ada cara yang jelas untuk mengatasinya. Membiarkan mayoritas yang memutuskan, ini tersirat dalam tulisan-tulisan kedua penulis. Tapi karena ada yang bisa mengatur node, dan bersembunyi di balik identitas yang berbeda, membuat mekanisme ini sangat tidak aman, kecuali jika penjaga yang mengontrol jaringan.
Dalam Bitcoin, sebaliknya, bagi penyerang yang berusaha mengubah sejarah blok, maka mereka harus memecahkan teka-teki komputasi pada tingkat yang lebih cepat daripada semua gabungan miners lainnya. Ini tidak hanya lebih aman, namun lebih memungkinkan kita dalam mengukur keamanan sebuah sistem.
B-money dan juga Bitgold adalah proposal tidak resmi. Proposal b-money diposting di mailinglist sedangkan Bitgold adalah serangkaian posting blog. Tidak seperti Bitcoin yang dipublikasikan menjadi sebuah whitepaper. Pada proposal b-money dan Bitgold tidak disertakan spesifikasi yang lengkap atau kode apapun, proposal tersebut mengabaikan masalah yang mungkin akan timbul dan bagaimana bisa dipecahkan. Misalnya, cara untuk mengatai perbedaan pendapat tentang buku besar.
Masalah lainnya, adalah menentukan seberapa berat komputasi puzzle itu disusun untuk bisa menghasilkan mata uang digital. Semenjak perkembangan hardware secara dramatis dari waktu ke waktu, sementra jumlah yang tetap sebagai daya komputasi, maka Bitcoin menggabungkan mekanisme untuk bisa secara otomatis menyesuaikan tingkat kesulitan tersebut secara berkala. Sedangkan, pada proposal b-money dan Bitgold tidak ada mekanisme seperti itu. Hal itu bisa memicu masalah hilangnya nilai mata uang jika lebih mudah untuk membuat mata uang baru lagi.