hari ini aku nyangkut pada satu baris kecil saja di alur Babylon dan jujur itu menggangguku lebih daripada bugnya sendiri… ras itu hanya hidup di antara saat membaca state lama dan menuliskan state baru. terdengar hampir tidak berbahaya kalau aku mengatakannya seperti itu—hanya beberapa momen di dalam backend—tapi kemudian aku terus berpikir, tunggu, keseluruhan keamanan di sini bergantung pada apa yang bisa terjadi di momen-momen itu.
i berhenti memandangnya sebagai “bisakah seseorang menyerangnya?” dan mulai melihatnya dari sisi urutan. layanan membaca state, melakukan pengecekan, hal lain bergerak hampir bersamaan, lalu pembaruan ditulis. sebagian besar waktu jedanya begitu kecil sampai tidak ada yang salah, dan dari luar terlihat benar-benar aman.
tapi “sangat tidak mungkin” dan “mustahil” itu bukan hal yang sama.
itulah yang terus ada di kepalaku.
a ku pikir Babylon sedang membuat trade-off engineering yang cukup normal di sini… jangan sampai seluruh sistem melambat karena lock yang berat atau koordinasi tambahan hanya untuk menghapus satu celah timing kecil, buat celah itu jadi sekecil mungkin sampai memanfaatkannya jadi sangat sulit. mungkin itu pilihan yang tepat, mungkin menghapusnya sepenuhnya malah akan menimbulkan keterlambatan lebih besar dan masalah baru di tempat lain.
tapi aku tidak suka ketika probabilitas dijelaskan seolah itu jaminan. kalau keamanan bergantung pada validator dan layanan yang mencapai state yang sama dalam urutan yang diharapkan, maka timing adalah bagian dari model keamanan—baik orang mengatakannya terus terang atau tidak.
dan aku terus bertanya pada diriku sendiri, di mana batasnya… seberapa kecil celah race harus menjadi sebelum kita menganggapnya dapat diterima, dan bagian-bagian protokol yang mana yang sama sekali tidak boleh bergantung pada timing?
mungkin sistemnya tidak benar-benar menghilangkan race.
mungkin sistemnya hanya membuat garis finis hampir mustahil untuk dicapai.
@BabylonLabs_io #baby $BABY
i berhenti memandangnya sebagai “bisakah seseorang menyerangnya?” dan mulai melihatnya dari sisi urutan. layanan membaca state, melakukan pengecekan, hal lain bergerak hampir bersamaan, lalu pembaruan ditulis. sebagian besar waktu jedanya begitu kecil sampai tidak ada yang salah, dan dari luar terlihat benar-benar aman.
tapi “sangat tidak mungkin” dan “mustahil” itu bukan hal yang sama.
itulah yang terus ada di kepalaku.
a ku pikir Babylon sedang membuat trade-off engineering yang cukup normal di sini… jangan sampai seluruh sistem melambat karena lock yang berat atau koordinasi tambahan hanya untuk menghapus satu celah timing kecil, buat celah itu jadi sekecil mungkin sampai memanfaatkannya jadi sangat sulit. mungkin itu pilihan yang tepat, mungkin menghapusnya sepenuhnya malah akan menimbulkan keterlambatan lebih besar dan masalah baru di tempat lain.
tapi aku tidak suka ketika probabilitas dijelaskan seolah itu jaminan. kalau keamanan bergantung pada validator dan layanan yang mencapai state yang sama dalam urutan yang diharapkan, maka timing adalah bagian dari model keamanan—baik orang mengatakannya terus terang atau tidak.
dan aku terus bertanya pada diriku sendiri, di mana batasnya… seberapa kecil celah race harus menjadi sebelum kita menganggapnya dapat diterima, dan bagian-bagian protokol yang mana yang sama sekali tidak boleh bergantung pada timing?
mungkin sistemnya tidak benar-benar menghilangkan race.
mungkin sistemnya hanya membuat garis finis hampir mustahil untuk dicapai.
@BabylonLabs_io #baby $BABY
