原題: "OpenRank: Powering Apps with Contextual and Personalized Graph Feed"
編集者注:
この記事では、著者は、現在メタマスクで使用されている OpenRank の Eigentrust アルゴリズムを詳しく調べますスナップ、Degen チップ、および Supercast で使用される新しいテクノロジー。 OpenRank は、コンピューティング レイヤーとして、複数の評価グラフ アルゴリズムを実行できます。最初に導入されたのは、eigentrust アルゴリズムです。著者らは、コミュニティ作成のグラフが必要な理由、アルゴリズムの重要な概念、仕組み、独自のグラフの作成方法について説明します。さらに、著者は今後の Bytexexplorers タスクをプレビューし、最新の更新を入手するために購読することを読者に勧めています。
今日の暗号通貨フロントエンドのほとんどは、取引高、流動性、鋳造、ポイント、投票などで分類されたトップコインを含むシンプルなリーダーボードで構成されています。今日の Web2 大手を超える消費者レベルの暗号通貨エクスペリエンスを実現したいのであれば、アプリにはリーダーボード以上のものが必要です。
OpenRank はこれを達成するのに役立つ基礎の 1 つであり、すでに Metamask Snaps、Degen Tips、Supercast で使用されています。 OpenRank は、多数の評判グラフ アルゴリズムを実行できる計算レイヤーであり、その最初のアルゴリズムが eigentrust アルゴリズムです。
この記事では、OpenRank の eigentrust アルゴリズムを紹介し、以下について説明します:
コミュニティが構築したグラフの重要性と、それが必要な理由
アルゴリズムの重要な概念とその仕組み
方法を学ぶには独自のグラフを作成するには、Python ノートブックで作成したグラフを参照してください
始めましょう!
暗号通貨でアルゴリズムと推奨フローを構築すると、すぐにいくつかのデータの問題に直面します:
・トランザクションには多くの層の操作が含まれます
・アドレス間の関係は、複数のトランザクションにより無限に複雑になる可能性があります
・アドレス自体には部分的な ID が含まれます、それぞれが異なるコンテキストに関連しています
上記の 3 つのポイントはすべて指数関数的な速度で進化しています。これらの成長する要素を「コンテキスト」と呼びましょう。
また、バックエンド チームやデータ エンジニアリング チームには、構築すべき製品があるのに、これらの問題を処理してほしくありません。アプリがユーザーとユーザー データ構造を持つ時代は終わり、単純なリンク、ユーザー ID、いいね/返信/共有、投稿 ID だけではなく、償還、分割、ドロップ、スワップ、ステーキング、委任、投票、鋳造など。新しいチェーン、新しいタイプのウォレット、新しいタイプのアイデンティティなどと同様に、新しい「オペレーション」がほぼ毎日登場しています。
私は長年 Dune のウィザード コミュニティに参加しており、その強力なコミュニティの力を目の当たりにしてきました。小規模チームの能力を超えています。また、ほぼすべての小規模な暗号通貨チームが、「ノードと RDS データベースを使えば自分たちでできる」から「The Graph や Dune などのコミュニティが構築したデータ ツールを活用する必要がある」に至るのを見てきました。私にとって、特定のタイプのレコメンデーション フローとコミュニティ向けに調整されたクエリとグラフの組み合わせを作成することも同様の問題です。 Farcaster クライアントからブロック エクスプローラーまで、あらゆるアプリケーションで推奨フローを提供できるグラフの収集とテストを開始する必要があります。
暗号通貨の分野では、ユーザーはソーシャル グラフをさまざまなアプリケーションに持ち込むだけでなく、これらのグラフに隠されたコンテキストも持ち出したいと考えています。 Farcaster の /degen コミュニティを積極的にフォローしている場合、そのコミュニティのアクティビティに対して Zora、Roam.xyz、または OnceUpon で推奨されたいと考えています。また、その推奨を別のコミュニティのコンテキストに切り替えられるようにしたいと考えています。アートブロックコレクターなどのメンバー。将来は、単一プラットフォーム上の特定のグループやチャンネル機能に限定されるのではなく、ユーザーが独自のフィードを見つけて選択できるようになるでしょう。
Eigentrust アルゴリズムは、グラフ ネットワーク内のノードをランク付けするという点で PageRank に似ています。違いは、複雑なピアツーピア関係を信頼の分布として捉えることに焦点を当てていることです。これは元々、ファイル共有ネットワークで信頼スコアを割り当てるために構築されました。暗号通貨の世界では、高品質のガバナンスプリンシパルを代理したり、信頼できるスマートコントラクトを特定したりするために暗号通貨を使用することを想像できるでしょう。
Eigentrust の式は次のとおりです。
2 つの重要な入力があります: 事前に信頼されたノードとローカルの信頼グラフです。 「P」はプレトラスト、「S」はローカルトラストです。
· Localtrust: これは、ノード「i」がノード「j」に何らかの値を渡すときの 2 つのノード間の相互作用の測定値です。これには、トークンの転送、認証、投票の返信/いいね! などが考えられます。
· Pretrust: これは、より信頼できるネットワーク内のノードの「シード」の選択です。
· "c": この定数 (0 から 1 の間) は、ローカル信頼グラフ全体と信頼前シードの間の信頼値の重みです。通常、インタラクション グラフにはべき乗則分布があるため、事前信頼の重みを高くすると、最終的なランキング値の分布を正規化するのに役立ちます。
これらの数式が理解しにくい場合は、Twitter のようなソーシャル グラフにたとえることができます。Twitter では、通常、フォロワー、いいね、返信などの影響力が少数の人に集中し、べき乗則の力関係が生じます。 。影響力のある個人のセットを設定し、0.5 以上の定数「c」値を選択すると、事実上、これらの信頼できる個人がやり取りする人々は、その影響力の値の半分を継承することになります。これにより、信頼スコアのバランスをとり、ネットワーク全体でより均等に分散することができます。
推奨ストリームで 10,000 件の助成金提案を並べ替えたいとします。一連の投票インタラクション (ローカル信頼) および独自に選択した一連の信頼できる有権者 (事前信頼) に基づいて、すべての有権者と提案者を価値ランク付けできます。複数の DAO にわたって投票を委任した上位 10 人の有権者を選択することで、事前信頼有権者を選択できます。 Eigentrust はこれら 2 つの入力に基づいて実行され、事前に信頼されたノードから継承された信頼に基づいてグラフ内でランク付けされた、より大きな投票者のリストを提供します。
これにより、よりパーソナライズされた推奨フローのために、このランク付けされた値リストを使用してリアルタイムのガバナンス提案を比較検討できるようになりました。
これではまだ抽象的すぎると思われるため、次のセクションで具体的なコード例を使用して説明します。 OpenRank はこれらの Eigentrust グラフの計算と保存を処理し、出力推奨ストリームの使用を推奨することに留意してください。必要なのは、事前信頼とローカル信頼の入力を決定することだけです。
この例では、Farcaster/base (Farcaster は Twitter に似たアプリケーション) のユーザー ウォレットに基づいて、推奨される契約のサブスクリプション ストリームを提供したいと考えています。出力は単なる ID と値のリストであり、私の図では、各 ID は Farcaster ユーザー ID (fid) に関連付けられています。
<em><span style="font-size: 14px;">数据来源</span></em>
ランキンググラフを作成した後、先週の主な契約のやり取りに基づいてこの紹介フローを生成しました:
<span style="font-size: 14px;">数据来源</span>
ダッシュボードを表示して、このグラフから作成された他の紹介フローを確認できます。 DEX トークン取引と Farcaster チャネルのアクティビティ。
目標が見えたので、このランキング チャートをどのように作成したかについて話しましょう。
この例のコードはすべて hex.tech ノートブックにあります。ローカルで実行したい場合は、jupyter ノートブックを使用することもできます。
まず、事前信頼とローカル信頼にそれぞれ 2 つのクエリ を作成しました。
1 つ目のクエリは、「事前信頼ノード」用です。このクエリは、受信したインタラクション (いいね、リツイート、返信) に基づいてチャネル内の上位ユーザーを出力します。私の式は (いいね + 3 リツイート + 10 返信) です。このクエリから最初の 100 個の ID を信頼ノードとして取得します。
<em><span style="font-size: 14px;">数据来源</span></em>
2 番目のクエリは、/base チャネル内のユーザーのリンク アドレスを使用して、ノード間のオンチェーン インタラクションを追跡するために使用されます。サブスクリプション フローではオンチェーン アクションが推奨されるため、オンチェーン インタラクションの量に基づいてインタラクション グラフを選択するようにしたいと考えています。ノード間で転送される USD 値を使用することは、優れた一般的なプロキシです。私は、Optimism、Base、および Ethereum メインネットでのステーブルコインと ETH の転送を追跡しました。
<em><span style="font-size: 14px;">数据来源</span></em>
事前に信頼されたノードとローカル信頼グラフができたので、いくつかの要約統計を見てみましょう。 /base チャネルの 65,755 人のユーザーがチャネル内の他のユーザーにトークンを転送しており、グラフの 19% (つまり、接続されたノード) を事前に信頼されたノードから通過できます。このパーセンテージは、Sybil グラフのローカル信頼データがどの程度であるかによって異なる場合があります。トークンの転送は高シグナルである可能性がありますが、ブラシ取引である可能性もあるため、グラフの大部分が接続されていないことは驚くべきことではありません。
入力データと接続のサイズが適切であることを確認したら、Eigentrust グラフを実行して保存できます。 ID「base_transfer_50」でグラフを保存しました。グラフのトレーニングに必要なコードは 10 行だけであることが以下でわかります。 OpenRank SDK は暗号モデルの scikit-learn と考えてください。
前の式の定数「c」をまだ覚えていますか?さまざまな c 値 (アルファと呼びます) とさまざまな信頼前シード サイズでグリッド検索を実行して、どれが最も対数正規の信頼スコアと最高のカバレッジを与えるかを確認してみましょう:
ここでは多くのトレードオフがあり、最適な値を 1 つだけ選択することはできません。推奨事項に強い多様性が必要な場合は、高い正規化とカバレッジが良い選択ですが、一か八かのガバナンス投票の場合は、実際にはより高い信頼の集中が必要になる場合があります。ここであなたの直感を使ってください。
ここから、Dune のダッシュボードの先頭にリンクされているサブスクリプション クエリに値を挿入して、/base チャネルの信頼できるユーザーの契約対話のフローを取得できます。この主観的な推奨出力は、以前の一般的な指標を、推奨出力の品質について期待される直観とより適切に結び付けるのに役立ちます。
完了!この Dune API を使用すると、あらゆるアプリをすぐに強化できます。
自分で行う準備はできていますか?私のノートブックをフォークして自分で試すことができます。必要なリンクはすべて以下にあります:
· OpenRank Docs
· Python SDK リポジトリ
· Python Notebook
· Dune feed ダッシュボード
私は Bytexplorers ミッションを来月、私たちはトップの暗号アプリケーションの最高のサブスクリプション フロー グラフを作成するために競い合います。
以上がOpenRank の Eigentrust アルゴリズムの詳細: ソーシャル コンピューティング レイヤーを構築するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。