Peter Todd adalah pengembang Bitcoin, penulis usulan penguncian waktu BIP 65, rekan penulis kebijakan penggantian transaksi belum terkonfirmasi BIP 125, dan pengembang OpenTimestamps. Kontribusi itu menyangkut kepastian yang berbeda: syarat membelanjakan dana, status pembayaran, dan bukti keberadaan data. Tidak satu pun otomatis menjamin semuanya.
Bayangkan Anda perlu membuktikan bahwa versi tertentu dari sebuah kontrak sudah ada sebelum sengketa dimulai. OpenTimestamps, proyek yang terkait dengan Peter Todd, membantu menjawab kebutuhan ini. Pengumuman historisnya pada 2016 memperkenalkan versi uji publik dan berterima kasih kepada Riccardo Casatta atas pengembangan serta pengujian. Itu mencatat kerja sama saat itu, bukan berarti proyeknya terus berada pada tahap percobaan. Todd juga mengerjakan syarat pembelanjaan di masa depan dan pembayaran yang belum terkonfirmasi. Kita mulai dari kedua bidang tersebut. [1]
BIP 65 karya Todd memperkenalkan OP_CHECKLOCKTIMEVERIFY, disingkat CLTV. Instruksi ini dapat mensyaratkan tercapainya ketinggian blok atau batas waktu untuk jalur pembelanjaan tertentu. Bayangkan jalur cadangan ke tabungan bersama yang baru boleh dipakai penerima nanti. Sebelum itu, syarat waktunya menghalangi jalur tersebut. Setelah terpenuhi, koin tidak terkirim sendiri: seseorang tetap harus membuat transaksi valid dan memenuhi syarat lain, seperti menyediakan tanda tangan. Jika ada jalur pembelanjaan lain, jalur itu memiliki syaratnya sendiri; kunci waktu tidak otomatis mencakup semua cara memakai dana. [2]
Kunci waktu tidak sekadar mengikuti jam di layar dompet. BIP 65 memeriksa hubungan antara script, yaitu instruksi yang menentukan syarat pembelanjaan, dan kolom nLockTime pada transaksi. Keduanya harus memakai jenis batas yang sama: ketinggian blok atau waktu. Kolom nSequence pada input juga tidak boleh memakai nilai final yang meniadakan pemeriksaan itu. Ini batas absolut, bukan umur relatif output sejak dikonfirmasi. Terpenuhinya syarat tidak menjanjikan transaksi masuk blok pada detik tertentu; penambang tetap harus memasukkannya ke blok valid. [2]
Transaksi yang disiarkan bisa tertahan di mempool, kumpulan transaksi belum terkonfirmasi milik suatu node. Jika biaya naik, pengirim mungkin ingin menawarkan lebih banyak lewat transaksi pengganti. David A. Harding dan Peter Todd menjelaskan kebijakan penggantian opt-in awal dalam BIP 125. Kemungkinan penggantian ditandai melalui nSequence atau diwarisi dari transaksi pendahulu yang belum terkonfirmasi, yang output-nya dibelanjakan oleh pembayaran tersebut. Jadi, ketergantungan antartransaksi juga diperhitungkan. Biaya lebih tinggi dapat membantu, tetapi tidak menjamin konfirmasi seketika. [3]
Penggantian di mempool mengubah transaksi yang disimpan node sebagai calon untuk dikonfirmasi. Itu tidak menulis ulang riwayat yang sudah terkonfirmasi. BIP 125 juga menjelaskan kebijakan opt-in historis, bukan aturan kekal bagi semua program. Versi Bitcoin Core yang lebih baru menjadikan penggantian tanpa sinyal tersebut sebagai perilaku standar, sambil tetap menerapkan syarat penerimaan pengganti. Bagi penerima, ketiadaan sinyal bukan bukti pembayaran sudah final. Demikian pula, tulisan “terkirim” di dompet tidak berarti transaksi sudah masuk blok terkonfirmasi. [3] [6]
Kembali ke kontrak tadi. OpenTimestamps membuat bukti yang dapat diverifikasi bahwa data tertentu telah ada sebelum batas waktu yang dibuktikan. Sistem ini memakai hash, sidik jari digital singkat dari isi data, serta bukti yang ditautkan ke Bitcoin. Perubahan dokumen menghasilkan sidik jari berbeda saat diperiksa. Namun, cap waktu tidak membuktikan penulisnya, kebenaran isinya, atau saat pembuatan yang persis. Cerita palsu pun dapat diberi cap waktu sejak awal. Bukti membatasi seberapa terlambat data mungkin dibuat, bukan menjelaskan berapa lama data sudah ada sebelumnya. [1] [4]
Klien OpenTimestamps tidak mengirim dokumen ke server kalender. Sidik jarinya diproses bersama nilai acak agar server tidak dapat menyimpulkan isi dari data yang diterima. Kalender di sini adalah layanan yang mengumpulkan permintaan dan membantu menautkannya ke Bitcoin. Perlindungan isi bukan anonimitas penuh: kedekatan waktu atau bukti yang dibuat bersama dapat memperlihatkan kaitan antarpermintaan. Berkas .ots bukan cadangan dokumen. Simpan bersama berkas asli yang persis sama; sidik jari tidak dapat memulihkan teks yang hilang, dan salinan yang diedit sudah merupakan data berbeda. [5]
Cap waktu baru mungkin belum terhubung ke blok Bitcoin yang terkonfirmasi. Adanya berkas .ots saja tidak berarti proses sudah selesai. Klien OpenTimestamps membedakan bukti tertunda dari bukti lengkap yang memuat jalur hingga ke blok. Perintah ots upgrade dapat mengambil dan menyimpan pelengkap ketika tersedia; perintah itu tidak memaksa blok ditambang. Selanjutnya bukti perlu diverifikasi terhadap data asli dan rantai Bitcoin. Seperti pada pembayaran tertunda, yang penting adalah status sebenarnya, bukan sekadar munculnya berkas atau pemberitahuan. [5]
Untuk gambaran yang lebih utuh, baca entri ini bersama Luke Dashjr, Mara van der Laan, Satoshi Nakamoto. Entri ini juga dirujuk dari Luke Dashjr, Mara van der Laan.