Sebagian besar sistem berjalan berdasarkan asumsi.
Anda menganggap seorang pengguna memenuhi syarat karena basis data Anda mengatakan demikian. Anda menganggap transaksi mengikuti aturan karena backend Anda mengeksekusinya. Anda menganggap kredensial itu nyata karena datang dari sumber yang "benar". Dan sebagian besar waktu, asumsi itu bertahan sampai tidak lagi.
Saat itulah keadaan menjadi tidak nyaman.
Karena ketika sesuatu berjalan tidak semestinya, Anda akan terjebak menggali melalui log, merekonstruksi peristiwa, dan mencoba membuktikan apa yang seharusnya sudah bisa dibuktikan sejak awal. Ini reaktif, berantakan, dan seringkali tidak konklusif. Sistemnya berfungsi... tetapi Anda tidak bisa menunjukkan bahwa itu berfungsi.
Ini adalah celah yang coba diisi oleh attestations.
Di Sign, attestation bukan hanya catatan—itu adalah klaim yang ditandatangani yang terikat pada struktur yang ditentukan. Seseorang (atau sesuatu) secara eksplisit mengatakan, “ini benar,” dan mendukungnya dengan tanda tangan yang dapat diverifikasi secara independen. Ini terdengar dasar, tetapi mengubah cara sistem berperilaku.
Kamu tidak lagi mengandalkan keadaan internal sebagai sumber kebenaran. Kamu sedang menciptakan pernyataan yang dapat dipindahkan dan diverifikasi yang dapat berdiri sendiri.
Dan itu mengubah dinamika cukup banyak.
Satu hal, itu mengurangi ketergantungan pada kontrol terpusat. Jika sebuah klaim dapat diverifikasi tanpa menanyakan database kamu, kamu tidak perlu online—atau bahkan dipercaya—agar orang lain dapat memvalidasinya. Bukti itu ada di luar sistem kamu. Itu adalah pemisahan yang halus tetapi penting.
Ini juga membuat sistem lebih dapat disusun.
Sebuah attestation yang diterbitkan dalam satu konteks dapat digunakan kembali di konteks lain tanpa reinterpretasi. Jika seorang pengguna sudah membuktikan kelayakan di suatu tempat, mengapa memaksa mereka mengulangi prosesnya? Dengan attestations, bukti itu dapat berpindah. Bukan sebagai data mentah, tetapi sebagai sesuatu yang sudah diverifikasi dan ditandatangani.
Tentu saja, ini memperkenalkan jenis tanggung jawab yang berbeda.
Siapa yang menerbitkan attestation? Standar apa yang mereka ikuti? Bisakah mereka dipercaya? Attestations tidak menghilangkan kepercayaan—mereka menjadikannya eksplisit. Alih-alih bersembunyi di balik sistem, kepercayaan terikat pada penerbit yang dapat dikenali dan catatan yang terlihat.
Dan jujur, itu adalah kesepakatan yang lebih baik.
Karena kepercayaan yang tersembunyi adalah tempat sebagian besar masalah dimulai. Ketika kamu tidak tahu apa yang harus dipercaya, kamu baik-buruk mempercayai segalanya atau tidak sama sekali—tidak ada yang dapat berkembang dengan baik. Attestations membawa keputusan itu ke permukaan. Kamu bisa memeriksa sumbernya, memverifikasi tanda tangannya, dan memutuskan sendiri.
Ada juga hal yang bisa dikatakan tentang bagaimana ini mempengaruhi desain sistem.
Ketika kamu tahu setiap tindakan penting mungkin perlu dibuktikan nanti, kamu mulai membangun dengan cara yang berbeda. Kamu memikirkan apa yang harus dicatat, bagaimana seharusnya disusun, dan siapa yang harus menandatanganinya. Ini menambahkan lapisan disiplin yang saat ini kurang ada di banyak sistem.
Bukan karena mereka tidak peduli—tapi karena mereka tidak dibangun dengan verifikasi dalam pikiran.
Sign tidak memaksa kesempurnaan, tetapi mengarahkan sistem ke arah itu. Ini memberi pengembang cara untuk mengubah asumsi menjadi sesuatu yang konkret—sesuatu yang dapat diperiksa, dibagikan, dan digunakan kembali tanpa ambiguitas.
Dan di ruang di mana “percaya saya” telah digunakan secara berlebihan sampai kehilangan makna, itu adalah perubahan yang layak diperhatikan.