Saya menghabiskan waktu untuk mencari tahu mengapa kesepakatan antara beberapa operator @NewtonProtocol masih dapat menghasilkan nilai eksternal yang salah.
Pada awalnya, konsensus median terlihat seperti perlindungan alami.
Jika satu operator melaporkan harga yang tidak biasa sementara yang lain mengembalikan nilai yang serupa, median mengurangi pengaruh dari pencilan tersebut.

Namun, perlindungan itu bekerja paling baik ketika operator gagal secara independen.
Kasus yang lebih sulit muncul ketika beberapa operator setuju karena mereka bergantung pada sumber hulu yang sama.
Bayangkan lima operator Newton yang menjalankan infrastruktur terpisah. Permintaan oracle mereka tampak independen, tetapi setiap permintaan pada akhirnya akan terselesaikan ke penyedia yang bergantung pada umpan harga yang sama yang mendasarinya.
Feed itu tertinggal selama pergerakan pasar yang cepat. Aset sudah diperdagangkan mendekati $80, sementara sumber bersama masih melaporkan nilai mendekati $100.
Karena para operator melakukan kueri pada momen yang sedikit berbeda, respons mereka tidak identik. Satu mengembalikan 99.8, yang lain melaporkan 100.1, dan nilai lainnya tetap berada di kisaran yang kurang lebih sama.

Penyebarannya terlihat sehat. Setiap respons mungkin tetap berada dalam toleransi yang dikonfigurasi. Median stabil, dan kebijakan menerima harga kanonik yang tampak didukung oleh beberapa operator.
Itu juga salah.
Ini pembedaan yang penting:
keragaman operator tidak otomatis menciptakan keragaman sumber.
Sebuah median memberi tahu sistem di mana nilai-nilai yang dilaporkan mengelompok. Median dapat membatasi outlier yang terisolasi dan meratakan perbedaan biasa yang disebabkan oleh latensi atau waktu pembaruan.
Hal itu tidak mengungkap apakah nilai-nilai tersebut berasal dari pengamatan independen atau dari satu kesalahan bersama yang diulang di beberapa mesin.
Hal itu membuat kegagalan yang berkorelasi lebih berbahaya daripada ketidaksepakatan yang terlihat.
Kesalahan yang terisolasi menciptakan gesekan.
Kesalahan upstream yang dibagi bersama menciptakan rasa percaya diri.
Sisa jalur eksekusi Newton masih dapat berperilaku dengan benar. Operator dapat menilai kebijakan yang dimaksud terhadap input kanonik dan menandatangani hasil yang sama. Penegasan (attestation) yang dihasilkan dapat tetap konsisten dengan input tersebut, dan validator aplikasi dapat menerimanya sebelum eksekusi.
Sebuah aplikasi pinjaman kemudian dapat menyetujui penarikan karena nilai agunan yang dilaporkan tetap berada di atas ambang batas yang diperlukan, meskipun harga pasar sebenarnya seharusnya menyebabkan kebijakan menolaknya.
Tidak ada operator yang perlu bertindak secara tidak jujur.
Kegagalan dimulai di bawah himpunan operator.
Itulah sebabnya menghitung jumlah operator saja tidak cukup. Endpoint yang terpisah bisa berbagi satu cache. Berbagai vendor data mungkin melisensikan feed bursa yang sama. Mesin-mesin independen dapat menjalankan kode oracle identik terhadap satu penyedia.
Dengan demikian, jaringan dapat tampak terdesentralisasi pada lapisan operator, sementara tetap terkonsentrasi pada lapisan data.
Untuk mengurangi risiko itu, diperlukan kontrol sebelum agregasi dimulai.
Kebijakan mungkin perlu batas kesegaran (freshness) yang ketat dan stempel waktu yang terkait dengan permintaan. Desain oracle mungkin perlu memiliki keluarga sumber yang benar-benar independen, bukan beberapa antarmuka untuk data yang sama. Lapisan koordinasi juga mungkin perlu gagal dengan aman (fail closed) ketika tidak dapat menetapkan pemisahan yang cukup antara nilai yang dilaporkan dan asal-usulnya.
Namun, membuktikan independensi itu sulit.
Dua penyedia bisa terlihat tidak terkait sambil bergantung pada tempat transaksi (market venue) yang sama. Sebuah endpoint cadangan dapat berbagi infrastruktur dengan endpoint utama. Median yang bersih dapat menyembunyikan hubungan-hubungan itu karena agregasi melihat nilai-nilainya, bukan rantai ketergantungan lengkap di belakangnya.
Konsensus median Newton dapat mengurangi ketidaksepakatan biasa antar operator.
Batasannya muncul ketika kesepakatan mencerminkan celah buta yang dibagi bersama alih-alih bukti independen.
Pertanyaan pentingnya bukan hanya berapa banyak operator yang mengembalikan jawaban yang sama.
Pertanyaannya adalah apakah Newton dapat menentukan berapa banyak jalur yang benar-benar independen menuju realitas yang menghasilkan jawaban tersebut.
@NewtonProtocol #Newt $BEAT $DEXE $NEWT

