Tajuk asal: "OpenRank: Memperkasakan Apl dengan Suapan Graf Kontekstual dan Diperibadikan"
Nota Editor:
Dalam artikel ini, pengarang melihat secara mendalam pada algoritma OpenRank oleh Metama, yang kini digunakan oleh algoritma Metama oleh OpenRank. Snaps, petua Degen dan Teknologi baharu yang digunakan oleh Supercast. OpenRank, sebagai lapisan pengkomputeran, boleh menjalankan berbilang algoritma graf reputasi Yang pertama diperkenalkan ialah algoritma eigentrust. Pengarang berkongsi sebab anda memerlukan graf binaan komuniti, konsep utama algoritma, cara ia berfungsi dan cara mencipta graf anda sendiri. Di samping itu, pengarang melihat pratonton tugas Bytexexplorers yang akan datang dan menggalakkan pembaca melanggan untuk mendapatkan kemas kini terkini.
Sebahagian besar bahagian hadapan mata wang kripto hari ini terdiri daripada papan pendahulu mudah dengan syiling teratas yang diisih mengikut volum dagangan, kecairan, pencetakan, mata, undian, dsb. Jika kami ingin memasuki pengalaman mata wang kripto gred pengguna yang boleh mengatasi gergasi Web2 hari ini, kami memerlukan lebih daripada papan pendahulu dalam apl kami.
OpenRank ialah salah satu asas yang membantu kami mencapai ini dan sudah digunakan oleh Metamask Snaps, Degen Tips dan Supercast. OpenRank ialah lapisan pengiraan yang boleh menjalankan beberapa algoritma graf reputasi, yang pertama ialah algoritma eigentrust.
Dalam artikel ini, saya akan memperkenalkan anda kepada algoritma eigentrust OpenRank dan membincangkan perkara berikut:
Kepentingan graf yang dibina komuniti, dan sebab anda memerlukannya
Konsep utama algoritma dan cara ia berfungsi
Untuk mengetahui cara untuk membuat graf anda sendiri, rujuk graf yang saya buat dalam buku nota Python
Jom mulakan!
Apabila membina algoritma dan aliran pengesyoran dalam mata wang kripto, anda akan menghadapi beberapa masalah data dengan cepat:
· Transaksi mengandungi banyak lapisan operasi
· Hubungan antara alamat boleh menjadi sangat kompleks dengan berbilang transaksi
· Alamat itu sendiri mengandungi identiti separa , setiap satunya adalah relevan dalam konteks yang berbeza
Ketiga-tiga perkara di atas berkembang pada kadar eksponen, mari kita panggil elemen yang semakin meningkat ini sebagai "konteks".
Anda juga tidak mahu bahagian belakang atau pasukan kejuruteraan data anda menangani masalah ini, lagipun mereka mempunyai produk untuk dibina. Zaman apl yang mempunyai struktur data pengguna dan pengguna telah berakhir, anda bukan lagi hanya mempunyai pautan ringkas, ID pengguna, suka/balas/kongsi dan ID siaran, tetapi anda boleh mempunyai penebusan, pemisahan, penurunan, pertukaran, Staking, perwakilan, mengundi, mencetak dan banyak lagi. Terdapat "operasi" baharu muncul hampir setiap hari, serta rantaian baharu, jenis dompet baharu, jenis identiti baharu dan sebagainya.
Saya telah berada dalam komuniti ahli sihir Dune selama bertahun-tahun dan telah menyaksikan kuasa komuniti itu. di luar kemampuan pasukan kecil. Saya juga telah melihat hampir setiap pasukan crypto kecil pergi daripada "Ya, kami boleh melakukan ini secara bebas dengan nod dan pangkalan data RDS" kepada "Kami perlu memanfaatkan alatan data binaan komuniti seperti The Graph dan Dune." Bagi saya, mencipta gabungan pertanyaan dan graf yang ditala untuk jenis aliran pengesyoran dan komuniti tertentu adalah masalah yang sama. Kami perlu mula mengumpul dan menguji graf yang boleh memberikan aliran pengesyoran pada setiap aplikasi, daripada pelanggan Farcaster hingga menyekat penjelajah.
Dalam ruang mata wang kripto, pengguna bukan sahaja mahu membawa graf sosial mereka ke aplikasi yang berbeza, tetapi juga konteks yang tersembunyi dalam graf ini. Jika saya mengikuti komuniti /degen secara aktif di Farcaster, saya ingin disyorkan pada Zora, Roam.xyz atau OnceUpon untuk aktiviti komuniti itu dan saya ingin dapat menukar pengesyoran itu kepada konteks yang lain komuniti yang saya sertai, cth. Masa depan adalah tempat pengguna menemui dan memilih suapan mereka sendiri, dan bukannya terhad kepada kumpulan atau ciri saluran tertentu pada satu platform.
Algoritma Eigentrust adalah serupa dengan PageRank kerana ia menyusun nod dalam rangkaian graf. Perbezaannya ialah ia memberi tumpuan kepada menangkap hubungan rakan-ke-rakan yang kompleks sebagai pengagihan kepercayaan. Ia pada asalnya dibina untuk memberikan skor kepercayaan dalam rangkaian perkongsian fail. Dalam dunia mata wang kripto, anda boleh bayangkan menggunakannya untuk memproksi pengetua tadbir urus berkualiti tinggi atau mengenal pasti kontrak pintar yang boleh dipercayai.
Berikut ialah formula untuk Eigentrust:
Terdapat dua input utama: nod pra-dipercayai dan graf amanah tempatan. "P" ialah pra-amanah anda dan "S" ialah amanah tempatan anda.
· Localtrust: Ini ialah ukuran interaksi antara dua nod anda, apabila nod "i" menghantar beberapa nilai kepada nod "j". Ini mungkin pemindahan token, pengesahan, balasan undian/suka, dsb.
· Pretrust: Ini adalah pilihan "benih" anda untuk nod dalam rangkaian yang sepatutnya lebih boleh dipercayai.
· "c": Pemalar ini (antara 0 dan 1) ialah berat nilai amanah antara graf amanah tempatan keseluruhan dan benih pra-amanah. Graf interaksi biasanya mempunyai taburan undang-undang kuasa, jadi wajaran pra-amanah yang lebih tinggi membantu menormalkan taburan nilai kedudukan akhir.
Jika formula matematik ini tidak mudah difahami, anda boleh membandingkannya dengan graf sosial seperti Twitter, di mana pengaruh seperti pengikut, suka, balasan dan lain-lain biasanya tertumpu kepada sebilangan kecil orang, mengakibatkan dinamik undang-undang kuasa . Dengan menubuhkan satu set individu yang berpengaruh dan memilih nilai "c" malar 0.5 atau lebih tinggi, sebenarnya, orang yang berinteraksi dengan individu yang dipercayai ini akan mewarisi separuh daripada nilai pengaruh itu. Beginilah cara anda mengimbangi dan mengagihkan skor kepercayaan dengan lebih sekata merentas rangkaian.
Katakan anda ingin mengisih 10,000 cadangan geran dalam aliran cadangan. Anda boleh menilai semua pengundi dan pencadang berdasarkan satu set interaksi pengundian (amanah tempatan) dan satu set pengundi yang dipercayai pilihan anda sendiri (pra-amanah). Anda boleh memilih pengundi pra-keyakinan anda dengan memilih 10 pengundi teratas yang telah anda wakilkan undian merentas berbilang DAO. Eigentrust akan dijalankan berdasarkan dua input ini dan memberi anda senarai pengundi yang lebih besar, disenaraikan dalam graf berdasarkan kepercayaan yang diwarisi daripada nod pra-dipercayai.
Dengan ini, anda kini boleh menimbang cadangan tadbir urus masa nyata menggunakan senarai nilai terperingkat ini untuk aliran pengesyoran yang lebih diperibadikan!
Ini mungkin masih terlalu abstrak, jadi saya akan menerangkannya dengan contoh kod konkrit dalam bahagian seterusnya. Perlu diingat bahawa OpenRank mengendalikan pengiraan dan penyimpanan graf Eigentrust ini dan mengesyorkan agar anda boleh menggunakan aliran pengesyoran output. Apa yang anda perlu lakukan ialah memutuskan input pra-amanah dan amanah tempatan.
Dalam contoh ini, saya ingin menyediakan aliran langganan kontrak yang disyorkan berdasarkan dompet pengguna Farcaster/base (Farcaster ialah aplikasi seperti Twitter). Outputnya hanyalah senarai id dan nilai, dalam rajah saya setiap id dikaitkan dengan id pengguna Farcaster (fid).
<em><span style="font-size: 14px;">数据来源</span></em>
Selepas mencipta graf kedudukan, kami menjana aliran rujukan ini berdasarkan interaksi kontrak utama mereka minggu lepas:
<span style="font-size: 14px;">数据来源</span>
Anda boleh melihat papan pemuka untuk melihat aliran rujukan lain yang dibuat daripada graf ini, mis. Dagangan token DEX dan aktiviti saluran Farcaster.
Sekarang anda telah melihat matlamatnya, mari bercakap tentang cara saya mencipta carta kedudukan ini.
Semua kod untuk contoh ini boleh didapati dalam buku nota hex.tech, atau anda boleh menggunakan buku nota jupyter jika anda lebih suka menjalankannya secara setempat.
Mula-mula, saya mencipta dua pertanyaan masing-masing untuk pra-amanah dan kepercayaan tempatan kami:
Pertanyaan pertama adalah untuk "nod pra-amanah" kami. Pertanyaan ini mengeluarkan pengguna teratas dalam saluran berdasarkan interaksi yang diterima (suka, tweet semula, balasan), formula saya ialah (suka + 3 tweet semula + 10 balasan). Kami akan mengambil 100 id pertama daripada pertanyaan ini sebagai nod kepercayaan kami.
<em><span style="font-size: 14px;">数据来源</span></em>
Pertanyaan kedua digunakan untuk menjejaki interaksi dalam rantaian antara nod, menggunakan alamat pautan pengguna dalam saluran /base. Oleh kerana aliran langganan akan mengesyorkan tindakan dalam rantaian, saya ingin memastikan untuk memilih graf interaksi berdasarkan jumlah interaksi dalam rantaian. Menggunakan nilai USD yang dipindahkan antara nod ialah proksi umum yang baik - Saya telah menjejaki pemindahan stablecoin dan ETH pada Optimisme, Base dan mainnet Ethereum.
<em><span style="font-size: 14px;">数据来源</span></em>
Kini setelah kita mempunyai nod pra-dipercayai dan graf amanah tempatan, mari lihat beberapa statistik ringkasan. 65,755 pengguna dalam saluran /base memindahkan token kepada orang lain dalam saluran dan 19% daripada graf (iaitu nod yang disambungkan) boleh dilalui dari nod pra-dipercayai kami. Peratusan ini mungkin berbeza-beza bergantung pada bagaimana Sybil data amanah tempatan graf itu. Pemindahan token boleh menjadi isyarat tinggi, tetapi ia juga boleh menjadi perdagangan berus, jadi tidak menghairankan bahawa majoriti graf tidak bersambung.
Selepas mengesahkan bahawa saiz data input dan sambungan adalah munasabah, kami boleh menjalankan dan menyimpan graf Eigentrust kami. Saya menyimpan graf saya dengan id "base_transfer_50" - anda boleh lihat di bawah bahawa ia hanya memerlukan 10 baris kod untuk melatih graf. Fikirkan OpenRank SDK sebagai model kriptografi scikit-belajar.
Adakah anda masih ingat pemalar "c" dalam formula sebelum ini? Mari kita lakukan carian grid pada nilai c yang berbeza (saya akan memanggilnya alfa) dan saiz benih pra-amanah yang berbeza untuk melihat yang mana satu memberi kita skor amanah log-normal yang paling banyak dan liputan tertinggi:
Di sana terdapat banyak pertukaran di sini dan tiada satu nilai terbaik untuk dipilih. Penyelarasan dan liputan yang tinggi ialah pilihan yang baik jika anda mahukan kepelbagaian yang kukuh dalam pengesyoran, tetapi untuk undian tadbir urus berkepentingan tinggi anda sebenarnya mungkin mahukan penumpuan kepercayaan yang lebih tinggi. Gunakan intuisi anda di sini.
Dari sini, kami boleh memasukkan nilai ke dalam pertanyaan langganan yang dipautkan pada permulaan papan pemuka Dune untuk mendapatkan aliran interaksi kontrak untuk pengguna yang dipercayai dalam saluran /base. Output pengesyoran subjektif ini membantu kami menghubungkan metrik biasa sebelumnya dengan lebih baik dengan gerak hati kami yang dijangkakan tentang kualiti output pengesyoran.
Selesai! Anda boleh menggunakan API Dune ini untuk menghidupkan mana-mana apl anda dengan segera.
Adakah anda bersedia untuk melakukannya sendiri? Anda boleh fork buku nota saya dan cuba sendiri, semua pautan yang diperlukan adalah di bawah:
· OpenRank Docs
· Python SDK repo
· Python Notebook
· Dune feed dashboard
Saya akan menjalankan misi Bytexplorers bulan depan, kami akan bersaing untuk mencipta graf aliran langganan terbaik untuk aplikasi crypto teratas.
Atas ialah kandungan terperinci Menyelam mendalam ke dalam algoritma Eigentrust OpenRank: Bagaimana untuk membina lapisan pengkomputeran sosial?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!