Apa Itu Append‐only log Bitcoin – Untuk Apa Saja Pengaplikasiannya
Penyusunan pointer hash, tidak pada timestamp block. Timestamp block mempunyai nilai waktu yang lebih rendah saat dicantumkan.
Dikatakan nilainya lebih rendah karena penambang mungkin tidak menunjukkan timestamp yang sebenarnya. Maksudnya disini adalah penunjuk waktu penambang mungkin masih belum di singkronkan, dan hal ini adalah gejala yang sudah umum. Jadi, misalnya saja jika sebuah timestamp block muncul dengan selisih waktu kurang lebih satu jam, maka penambang lain mungkin akan menolak block tersebut. Kita dapat relay timestamp itu hingga benar. Hal itulah mengapa properti ini sangat berguna untuk digunakan.
Menangani timestamping
Append‐only log bisa digunakan untuk membuat sistem timestamp Bitcoin. Jika kita ingin meningkatkan nilai x pada waktu tertentu T, kita mungkin tidak sebenarnya menunjukkan waktu x pada T. Melainkan kita hanya menunjukkan x ketika kita bisa membuktikannya. Bisa jadi, setelah T, dan jika kita telah mengetahui T, kita masih bisa mengetahui waktu tersebut setelah T juga.
Setelah kita membuat buktinya, kita tentu ingin membuat bukti tersebut menjadi permanen. Dalam hal ini, kita bisa menggunakan fungsi hash untuk mengatasi hal ini.
Gagasannya adalah dengan mempublish hash H(r | x) di waktu T, lalu melihat beberapa poin selanjutnya sehingga kita bisa menunjukkan r dan x. Semua orang bisa melihat pada Append‐only log dan meyakinkan diri bahwa kita harus mengetahui x pada waktu yang sama saat mempublish H(r | x). Hal itu karena tidak ada lagi cara yang memungkinkan untuk dapat generate data itu.
Pengaplikasian timestamp
Kita bisa mengaplikasikan timestamp ini untuk beberapa hal. Misalnya saja jika kita ingin dapat membuktikan sebuah dokumen paten. Hal ini bisa dilakukan dengan mempublikasikan hash dokumen tersebut saat kita mulai berpikir tentang penemuan tersebut, tanpa harus menunjukkan pada orang lain ide dibalik itu.
Selanjutnya, kita bisa mempublish dokumen dan informasi asli, sehingga orang lain bisa melihat kebelakang tentang penunjuk waktunya, dan kita juga tentu harus mengetahui sebelumnya saat kita pertama kali mempublikasikan dokumen itu.
Selain itu, bisa juga untuk membuktikan bahwa kita telah mengirim sebuah pesan kepada orang lain, penerima pesan tersebut juga benar-benar telah menerima pesan itu. Misalnya saja Rita ingin memperkerjakan Rudi dalam hal pemprograman. Kontrak kerja Rita kepada Rudi itu ditandai dengan penunjuk waktu. Rudi ingin bisa memastikan bahwa jika pekerjaanya nanti telah selesai, bisa dibuktikan.
Agar dapat melakukan hal tersebut, kedua belah pihak bisa saling menyepakati untuk mempublish hash hasil kerja Rudi, dan ditangatangani juga oleh keduanya. Jika selanjutnya ada pihak lain yang mencoba menipu di hash selanjutnya, maka pihak lainnya lagi akan dapat membuktikan bahwa itu tidak benar. Dengan cara menunjukkan input hashnya.
Banyak hal menarik lain yang bisa dibangun dengan hanya menggunakan timestamp. Ada sebagian besar skema tandatangan digital public key hanya menggunakan fungsi hash dan append‐only log saja. Tidak membutuhkan berbagai macam kriptografi rumit dan berat yang biasanya digunakan dalam tanda tangan digital public key.
Serangan Pada Proofs‐of‐Clairvoyance
Clairvoyance adalah kemampuan untuk memprediksi masa depan. Satu hal yang tidak bisa kita lakukan dengan penanganan timestamp adalah sebagai proof of clairvoyance. Meskipun akan cukup bagus jika bisa digunakan.
Hal ini mungkin terlihat cukup memungkinkan. Berawal dari gagasan untuk dapat mempublikasikan sebuah deskripsi peristiwa yang akan terjadi. Misalnya saja pada sebuah even olah raga, atau prediksi hasil pemilihan. Selanjutnya adalah dengan mengungkapkan informasi tersebut yang telah diprediksi sebelumnya.
Pernah terjadi di tahun 2014, pada saat final pertandingan piala dunia. Ada seseorang yang menggunakan metode tersebut untuk membuktikan bahwa FIFA, telah melakukan pengaturan skor. Setelah pertandingan tersebut berakhir, sebuah akun twitter mendapatkan perhatian besar selama pertandingan tersebut berlangsung. Penunjuk waktunya bahkan menunjukkan sebelum pertandingan tersebut berlangsung.
Salah satu contoh metode yang digunakan adalah pada saat German akan berhasil memenangkan pertandingan di babak perpanjangan waktu. Pada tweet akun twitter tersebut, menyebutkan bahwa Mario Gotze akan mencetak gol. Akun twitter tersebut seakan menjadi bukti bahwa pemilik akun tersebut bisa menunjukkan hasil pertandingan di masa depan. Kenyataannya, pada akun twitter tersebut selalu memprediksikan hasil-hasil sebelum pertandingan tersebut berlangsung.
Semua pemain yang terlibat pada pertandingan itu, ada sebuah tweet yang menyebutkan siapa yang akan mencetak gol. Sebelum pertandingan berakhir, beberapa tweet prediksi yang salah dihapus, dan menyisakan beberapa tweet prediksi hasil yang benar saja.
Serangan dasar tersebut bisa juga dilakukan untuk melawan penanganan sistem timestamp. Anda dapat menampilkan sejumlah hasil yang memungkinkan, dan hanya mengungkapkan saja hasil-hasil yang benar saja. Artinya bahwa, jika anda benar-benar mempunyai kemampuan untuk memprediksi masa depan dan ingin membuktikannya, maka anda juga harus bisa membuktikan bahwa timestamp tersebut menunjukkan prediksi yang lebih spesifik, ketimbang sebuah prediksi yang beragam.
Jika anda mempublikasikan yang berbasis hash, hal ini sulit dilakukan. Karena dalam Bitcoin, untuk menangani sistem timestamp tidak bisa menentukan identitas seseorang. Jika anda tidak mengungkapkannya, maka mudah untuk mempublikasikan sejumlah besar prediksi yang tidak mudah untuk dilacak.
Pengamanan Timestamp Dengan Cara Lama
Ada sebuah cara sederhana yang dapat dilakukan untuk mengamankan timestamp. Caranya adalah dengan mempublikasikan hash data. Cara sederhana yang mungkin biasa kita ketahui misalnya pada sebuah surat kabar, atau media lain yang tersebar luas secara publik, dengan membeli ruang iklan.
Pada sebuah surat kabar, atau media lain, tentu mempunyai penunjuk waktu pada setiap kali terbit. Dengan cara tersebut, anda dapat mengetahui penunjuk waktu data tersebut pada tanggal saat surat kabar tersebut diterbitkan.
Pengamanan timestamp Dalam Bitcoin
Lalu bagaimana Bitcoin dapat mengamankan timestamp? Jika kita ingin menggantikan peran pengamanan timestamp seperti dalam sebuah surat kabar, maka dimanakah kita akan meletakkan hash tersebut? Di dalam Bitcoin, tentu saja ada dua kemungkinan untuk meletakkan hash tersebut. Yakni pada sebuah transaksi, atau langsung pada sebuah block.
Cara yang paling memungkinkan dan lebih mudah, adalah dengan meletakkan hash tersebut pada transaksi. Peletakan hash pada sebuah transaksi pengeluaran dari public key, dengan langsung mengirimkan hash data tersebut. Proses “burn” koin, nantinya akan menjadi transaksi unspendable, dan menjadi hilang… jika anda tidak mengetahui private key yang merujuk pada address tersebut. Biaya yang diperlukan untuk burn koin hanya dengan jumlah yang cukup kecil dalam satuan satoshi.
Meskipun hal ini dianggap pendekatan yang cukup sederhana, namun untuk proses burn koin dianggap sebagai sebuah kerugian. Dalam hal ini, ada sebuah masalah besar. Yakni karena penambang tidak ada cara yang dapat mengetahui output transaksi yang “unspendable”. Agar transaksi unspenable ini dapat terlacak, masyarakat komunitas Bitcoin pun mulai banyak berfikir agar bisa melakukan hal tersebut.
Berlanjut kemudian ada sebuah pendekatan yang lebih canggih yang dapat dilakukan. Pendekatan tersebut disebut dengan CommitCoin. Pendekatan menggunakan CommitCoin, adalah dengan mengkodekan data ke dalam private key.
Kita tentu masih mengingat, bahwa ECDSA menjadi sumber pengacakan yang paling baik dan penting. Sehingga dapat meminimalisir tingkat kesamaan saat generate key. Bisa dikatakan, dengan ECDSA, pengacakan generate key akan menghasilkan key yang sama cukup kecil, atau hampir sulit.
Sumber pengacakan yang baik, tentu saja menjadi hal yang krusial. Memberikan tingkat keamanan yang lebih tinggi. Cukup berbeda jika ternyata sumber pengacakan tersebut buruk, maka hasilnya bisa dipastikan cenderung menjadi tidak aman.
CommitCoin mengeksploitasi perperti ini. Dengan generate private key baru yang sekaligus mengkodekan data tersebut ke dalamnya. Selanjutnya generate juga public key yang sesuai. Jika telah selesai generate public key yang sesuai, maka pengiriman transaksi pun bisa dilakukan. Setiap orang dapat melihat di rantai block untuk komputasi private key yang berisikan data itu, dengan menggunakan dua tanda tangan digital.
Jadi dengan CommitCoin, berusaha untuk menghindari proses “burn” koin. Selain itu, para penambang juga dapat melacak transaksi unspendable tersebut. Namun tentu saja, cara ini memang lebih rumit.
Unspendable output
Di tahun 2014, pemberian timestamp yang lebih banyak digunakan adalah dengan menggunakan transaksi OP_RETURN. Pada transaksi OP_RETURN ini, akan menghasilkan output tidak terbelanjakan (unspendable output).
Pada OP_RETURN ini, dengan cukup cepat akan menghasilkan error, sehingga script tersebut tidak bisa berjalan dengan baik, dan data yang dilampirkan juga akan diabaikan.
Penggunaan OP_RETURN juga bisa digunakan bersama dengan proof of burn. Seperti juga untuk encode data arbitrary. Kemudian di tahun 2015, OP_RETURN memperbolehkan data berukuran 80 byte, yang lebih dari cukup untuk sebuah output fungsi hash (32 byte untuk SHA 256).
OP_RETURN <H(data)>
Penggunaan cara ini dilakukan untuk menghindari meningkatnya jumlah output transaksi unspendable. Lalu diatur sebuah ketentuan, para penambang akan memangkas output OP_RETURN. Saat itu, biaya yang diperlukan untuk transaksi unspendable itu sama besarnya seperti sebuah transaksi pada umumnya.
Di sepanjang tahun 2014, biaya satu transaksi kurang dari satu sen. Di tahun yang sama, telah ada berbagai macam website yang memberikan layanan untuk dapat melakukan transaksi dengan OP_RETURN.
Baca Juga: Menambah Pesan Pada Transaksi Bitcoin
Konten Yang Dilarang
Meski memang orang dapat menuliskan data arbitrary ke dalam Blockchain, namun seringkali banyak orang menyalahgunakan fitur itu. Misalnya saja di sebagian besar negara, ada juga yang secara ilegal digunakan untuk mendistribusikan beberapa konten yang dilarang. Seperti konten yang bermuatan pornografi anak, dan bisa dijatuhi hukuman berat atas hal ini.
Ada juga yang mencoba menyalahgunakan dengan berisikan konten-konten pelecehan dan bersifat mengganggu komunitas Bitcoin. Misalnya saja berisikan konten link dewasa yang dimasukkan ke dalam Blockchain.
Salah satu cara untuk mencegah penyalahgunaan ini adalah hanya dengan menggunakan Pay-to-Script-Hash. Meski penggunaan ini menjadi cukup mahal, selain itu juga tidak dapat mencegahnya secara langsung. Namun, untungnya penerapan hukum yang berlaku tidaklah berupa algoritma.
Sehingga kemudian keterbatasan limit ukuran penyertaan data arbitrary pada transaksi di dalam Bitcoin. Untuk data yang berupa gambar, meski sudah berukuran kecil, tidak dapat ditulis langsung ke dalam Blockchain. Gambar tersebut haruslah disimpan di host eksternal. Selanjutnya hanya link saja yang kemudian dituliskan ke dalam rantai block.
Overlay Currencies
Disamping dapat digunakan untuk menuliskan data arbitrary ke dalam Bitcoin, dapat juga untuk membangun sebuah sistem mata uang baru diatas Bitcoin. Proses pembangunan sistem mata uang baru tersebut dapat dilakukan meski tanpa harus mengembangkan mekanisme konsensus baru.
Jika hal itu digunakan, maka Bitcoin hanya digunakan sebagai append-only log saja. Kemudian menulis semua data yang dibutuhkan untuk sistem mata uang digital baru tersebut ke dalam blockchain. Mata uang baru diatas Bitcoin ini, disebut dengan Overlay Currencies. Jadi nantinya, Bitcoin akan berfungsi sebagai substansi inti, dan mata uang overlay ini ditulis ke dalam Bloockchain menggunakan output transaksi unspendable.
Karena penambang tidak bisa mengetahui dan tidak peduli atas data apa yang akan dituliskan ke dalam rantai block, maka dalam transaksi unspendable ini, penambang tidak akan secara sebenarnya memvalidasinya.
Tentunya, untuk memvalidasi transaksi mata uang baru itu, harus digunakan sebuah logika baru yang lebih rumit, yang memungkinkan klien dapat berpartisipasi saat mengirim dan menerima mata uang baru tersebut.
Misalnya saja, untuk dapat meminimalisir terjadinya double spend. Penambang pada mata uang baru yang dibangun di atas Bitcoin ini cukup sulit untuk menolak transaksi double spend. Setiap pengguna harus juga mampu melihat kesejarahan transaksi yang telah terekam di dalam Blockchain. Sehingga jika ada sebuah transaksi di mata uang baru ini yang mencoba untuk melakukan double spend, maka transaksi kedua itu harus dapat ditolak dan diabaikan. Karena hal itu pula, pada overlay currencies ini tidak ada node SPV.
Ada sebuah mata uang overlay yang cukup menonjol. Overlay currencies tersebut disebut dengan nama Counterparty. Semua transaksi Counterparty ini dituliskan ke dalam Blockchain Bitcoin. Potensi untuk mengembangkan mata uang baru diatas Bitcoin ini cukup menarik. Karena pengembangan mata uang baru tersebut dapat dilakukan tanpa harus membuat sistem dengan konsensus yang baru.
Disamping itu, kita juga dapat mendorong penambang untuk berkontribusi di sistem mata uang baru itu. Dan pengembang juga bisa menambahkan fitur-fitur baru tanpa harus mengubah Bitcoin. Namun tentu karena Bitcoin berfungsi sebagai entitas inti pada mata uang baru tersebut, maka sistem baru tersebut juga bergantung kepada Bitcoin.
Ketergantungan tersebut misalnya pada persyaratan biaya transaksi yang harus dikeluarkan. Karena ketergantungan itulah, dianggap hal ini menjadi tidak begitu efisien untuk mengembangkan sebuah mata uang baru. Hal itu karena node mata uang overlay ini tentu akan memproses begitu banyak data. Sedangkan node Bitcoin tidak dapat menyaring transaksi tersebut.