원제: "OpenRank: 상황에 맞는 개인화된 그래프 피드로 앱 강화"
편집자 주:
이 기사에서 저자는 현재 Metamask에서 사용되는 OpenRank의 Eigentrust 알고리즘을 심층적으로 살펴봅니다. Snaps, Degen 팁 및 Supercast에서 사용하는 새로운 기술입니다. 컴퓨팅 계층인 OpenRank는 여러 평판 그래프 알고리즘을 실행할 수 있습니다. 첫 번째로 소개된 것은 고유신뢰 알고리즘입니다. 저자는 커뮤니티 기반 그래프가 필요한 이유, 알고리즘의 주요 개념, 작동 방식, 자신만의 그래프를 만드는 방법을 공유합니다. 또한 저자는 다가오는 Bytexexplorers 작업을 미리 보고 독자들이 최신 업데이트를 받기 위해 구독하도록 권장합니다.
오늘날 암호화폐 프런트엔드의 대부분은 거래량, 유동성, 주조, 포인트, 투표 등을 기준으로 정렬된 상위 코인이 포함된 간단한 순위표로 구성됩니다. 오늘날의 Web2 거대 기업을 능가할 수 있는 소비자급 암호화폐 경험을 원한다면 앱에 리더보드 이상의 것이 필요합니다.
OpenRank는 이를 달성하는 데 도움이 되는 초석 중 하나이며 이미 Metamask Snaps, Degen Tips 및 Supercast에서 사용되고 있습니다. OpenRank는 다양한 평판 그래프 알고리즘을 실행할 수 있는 계산 계층이며, 그 중 첫 번째는 고유 신뢰 알고리즘입니다.
이 기사에서는 OpenRank의 고유 신뢰 알고리즘을 소개하고 다음 사항에 대해 논의합니다.
커뮤니티 구축 그래프의 중요성과 이것이 필요한 이유
알고리즘의 주요 개념 및 작동 방식
방법을 알아보려면 나만의 그래프를 만들려면 제가 Python 노트북에 만든 그래프를 참고하세요
시작해 보세요!
암호화폐에서 알고리즘 및 추천 흐름을 구축할 때 다음과 같은 몇 가지 데이터 문제에 빠르게 직면하게 됩니다.
· 거래에는 여러 작업 계층이 포함됩니다.
· 여러 거래로 인해 주소 간의 관계가 무한히 복잡해질 수 있습니다.
· 주소 자체에 부분적인 신원이 포함되어 있습니다. , 각각은 서로 다른 맥락과 관련이 있습니다
위의 세 가지 사항은 모두 기하급수적으로 발전하고 있습니다. 이러한 증가하는 요소를 "컨텍스트"라고 부르겠습니다.
또한 백엔드 또는 데이터 엔지니어링 팀이 구축할 제품이 있으므로 이러한 문제를 처리하는 것을 원하지 않습니다. 앱에 사용자 및 사용자 데이터 구조가 있는 시대는 끝났습니다. 더 이상 단순한 링크, 사용자 ID(좋아요/답글/공유 및 게시물 ID)만 있는 것이 아니라 상환, 분할, 삭제, 스왑, 스테이킹, 위임 등을 할 수 있습니다. 투표, 주조 등. 거의 매일 새로운 "작업"이 나타나고 있으며, 새로운 체인, 새로운 유형의 지갑, 새로운 유형의 ID 등이 있습니다.
저는 Dune의 마법사 커뮤니티에 수년 동안 참여해 왔으며 커뮤니티의 강력함을 목격했습니다. 소규모 팀의 능력을 넘어서는 것입니다. 또한 거의 모든 소규모 암호화폐 팀이 "예, 노드와 RDS 데이터베이스를 사용하여 독립적으로 이 작업을 수행할 수 있습니다."에서 "The Graph 및 Dune과 같은 커뮤니티 구축 데이터 도구를 활용해야 합니다."로 전환하는 것을 보았습니다. 나에게는 특정 유형의 추천 흐름과 커뮤니티에 맞게 조정된 쿼리와 그래프의 조합을 만드는 것도 비슷한 문제입니다. Farcaster 클라이언트부터 블록 탐색기까지 모든 애플리케이션에 추천 흐름을 제공할 수 있는 그래프를 수집하고 테스트해야 합니다.
암호화폐 공간에서 사용자는 자신의 소셜 그래프를 다양한 애플리케이션으로 가져오고 싶어할 뿐만 아니라 이러한 그래프에 숨겨진 컨텍스트도 원합니다. Farcaster에서 /degen 커뮤니티를 적극적으로 팔로우하고 있다면 해당 커뮤니티의 활동에 대해 Zora, Roam.xyz 또는 OnceUpon에서 추천을 받고 싶고 해당 추천을 다른 컨텍스트로 전환할 수 있기를 바랍니다. 나는 커뮤니티(예: artblocks Collector)의 회원입니다. 미래는 단일 플랫폼의 특정 그룹이나 채널 기능에 국한되지 않고 사용자가 자신의 피드를 발견하고 선택하는 시대가 될 것입니다.
Eigentrust 알고리즘은 그래프 네트워크에서 노드 순위를 매긴다는 점에서 PageRank와 유사합니다. 차이점은 신뢰의 분포로서 복잡한 P2P 관계를 포착하는 데 중점을 둔다는 것입니다. 원래는 파일 공유 네트워크에서 신뢰 점수를 할당하기 위해 만들어졌습니다. 암호화폐 세계에서는 이를 사용하여 고품질 거버넌스 주체를 프록시하거나 신뢰할 수 있는 스마트 계약을 식별하는 것을 상상할 수 있습니다.
Eigentrust의 공식은 다음과 같습니다.
두 가지 주요 입력이 있습니다: 사전 신뢰 노드와 로컬 신뢰 그래프. "P"는 사전 신뢰이고 "S"는 로컬 신뢰입니다.
· Localtrust: 이는 노드 "i"가 노드 "j"에 어떤 값을 전달할 때 두 노드 간의 상호 작용을 측정한 것입니다. 이는 토큰 전송, 증명, 투표 응답/좋아요 등이 될 수 있습니다.
· 사전 신뢰: 이는 더 신뢰할 수 있는 네트워크의 노드에 대한 "시드"를 선택하는 것입니다.
· "c": 이 상수(0과 1 사이)는 전체 로컬 신뢰 그래프와 사전 신뢰 시드 간의 신뢰 값 가중치입니다. 상호 작용 그래프에는 일반적으로 거듭제곱 분포가 있으므로 사전 신뢰 가중치가 높을수록 최종 순위 값의 분포를 정규화하는 데 도움이 됩니다.
이러한 수학 공식이 이해하기 쉽지 않다면 트위터와 같은 소셜 그래프에 비유하면 됩니다. 트위터와 같은 소셜 그래프에서는 일반적으로 팔로어, 좋아요, 답글 등의 영향력이 소수의 사람에게 집중되어 멱의 법칙 역학이 발생합니다. . 영향력 있는 개인 세트를 설정하고 0.5 이상의 일정한 "c" 값을 선택하면 실제로 이러한 신뢰할 수 있는 개인과 상호 작용하는 사람들은 해당 영향력 값의 절반을 상속하게 됩니다. 이것이 네트워크 전반에 걸쳐 신뢰 점수의 균형을 맞추고 분배하는 방법입니다.
추천 스트림에서 10,000개의 보조금 제안을 정렬한다고 가정해 보겠습니다. 일련의 투표 상호 작용(로컬 신뢰)과 자신이 선택한 신뢰할 수 있는 투표자 세트(사전 신뢰)를 기반으로 모든 투표자와 제안자의 가치 순위를 매길 수 있습니다. 여러 DAO에 걸쳐 투표를 위임한 상위 10명의 유권자를 선택하여 사전 신뢰 유권자를 선택할 수 있습니다. Eigentrust는 이 두 가지 입력을 기반으로 실행되며 사전 신뢰된 노드에서 상속된 신뢰를 기반으로 그래프에서 순위가 매겨진 더 큰 유권자 목록을 제공합니다.
이제 더 개인화된 추천 흐름을 위해 이 순위 값 목록을 사용하여 실시간 거버넌스 제안을 평가할 수 있습니다!
아직 너무 추상적인 내용일 수 있으므로 다음 섹션에서 구체적인 코드 예시를 통해 설명하겠습니다. 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>
대시보드를 보고 이 그래프에서 생성된 다른 추천 흐름을 볼 수 있습니다(예: NFT 발행, DEX 토큰 거래 및 Farcaster 채널 활동.
이제 목표를 확인했으므로 이 순위 차트를 어떻게 만들었는지 이야기해 보겠습니다.
이 예제의 모든 코드는 hex.tech 노트북에서 찾을 수 있습니다. 또는 로컬에서 실행하려는 경우 jupyter 노트북을 사용할 수 있습니다.
먼저 사전 신뢰와 로컬 신뢰에 대해 각각 두 개의 쿼리를 만들었습니다.
첫 번째 쿼리는 "사전 신뢰 노드"에 대한 것입니다. 이 쿼리는 수신된 상호 작용(좋아요, 리트윗, 답글)을 기반으로 채널의 상위 사용자를 출력합니다. 내 공식은 (좋아요 + 리트윗 3개 + 답글 10개)입니다. 이 쿼리의 처음 100개 ID를 신뢰 노드로 사용합니다.
<em><span style="font-size: 14px;">数据来源</span></em>
두 번째 쿼리는 /base 채널에 있는 사용자의 링크 주소를 사용하여 노드 간의 온체인 상호 작용을 추적하는 데 사용됩니다. 구독 흐름은 온체인 작업을 권장하므로 온체인 상호작용의 양을 기반으로 상호작용 그래프를 선택하고 싶습니다. 노드 간에 전송되는 USD 가치를 사용하는 것은 좋은 일반적인 프록시입니다. 저는 Optimism, Base 및 Ethereum 메인넷에서 스테이블 코인과 ETH 전송을 추적했습니다.
<em><span style="font-size: 14px;">数据来源</span></em>
이제 사전 신뢰 노드와 로컬 신뢰 그래프가 있으므로 몇 가지 요약 통계를 살펴보겠습니다. /base 채널의 65,755명의 사용자가 채널의 다른 사용자에게 토큰을 전송했으며 그래프의 19%(즉, 연결된 노드)는 사전 신뢰할 수 있는 노드에서 탐색할 수 있습니다. 이 비율은 Sybil 그래프의 로컬 신뢰 데이터가 어떤지에 따라 달라질 수 있습니다. 토큰 전송은 높은 신호일 수 있지만 브러시 거래일 수도 있으므로 그래프의 대부분이 연결되지 않은 것은 놀라운 일이 아닙니다.
입력 데이터의 크기와 연결이 적절한지 확인한 후 Eigentrust 그래프를 실행하고 저장할 수 있습니다. 저는 "base_transfer_50"이라는 ID로 그래프를 저장했습니다. 아래에서 그래프를 훈련하는 데 10줄의 코드만 필요하다는 것을 알 수 있습니다. OpenRank SDK를 암호화 모델의 scikit-learn으로 생각하세요.
이전 수식의 상수 "c"를 아직도 기억하시나요? 다양한 c 값(알파라고 부르겠습니다)과 다양한 사전 신뢰 시드 크기에 대한 그리드 검색을 수행하여 어느 것이 가장 로그 정규 신뢰 점수와 가장 높은 적용 범위를 제공하는지 확인하겠습니다.
거기 여기에는 많은 장단점이 있으며 선택할 수 있는 최고의 가치는 없습니다. 높은 정규화 및 적용 범위는 권장 사항의 강력한 다양성을 원하는 경우 좋은 선택이지만, 높은 이해 관계의 거버넌스 투표의 경우 실제로 더 높은 신뢰 집중을 원할 수 있습니다. 여기에서 직관을 사용하십시오.
여기에서 Dune 대시보드 시작 부분에 연결된 구독 쿼리에 값을 삽입하여 /base 채널에서 신뢰할 수 있는 사용자에 대한 계약 상호 작용 흐름을 얻을 수 있습니다. 이 주관적인 권장 사항 출력은 이전의 공통 측정 항목을 권장 사항 출력의 품질에 대해 예상되는 직관과 더 잘 연결하는 데 도움이 됩니다.
완료! 이 Dune API를 사용하여 모든 앱을 즉시 강화할 수 있습니다.
직접 할 준비가 되셨나요? 내 노트북을 포크하여 직접 시도해 볼 수 있습니다. 필요한 모든 링크는 다음과 같습니다.
· OpenRank Docs
· Python SDK repo
· Python Notebook
· Dune 피드 대시보드
다음 달에는 최고의 암호화폐 애플리케이션을 위한 최고의 구독 흐름 그래프를 만들기 위해 경쟁할 것입니다.
위 내용은 OpenRank의 Eigentrust 알고리즘에 대한 심층 분석: 소셜 컴퓨팅 계층을 구축하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!