Tiêu đề gốc: "OpenRank: Cung cấp nguồn cấp dữ liệu đồ thị theo ngữ cảnh và được cá nhân hóa"
Tác giả gốc: Andrew Hong
Bản tổng hợp gốc: Ladyfinger, BlockBeats
Ghi chú của biên tập viên:
Trong bài viết này, tác giả thảo luận về chuyên sâu về thuật toán Eigentrust của OpenRank, một công nghệ mới hiện đang được Metamask Snaps, mẹo Degen và Supercast sử dụng. OpenRank, với tư cách là một lớp điện toán, có thể chạy nhiều thuật toán biểu đồ danh tiếng. Thuật toán đầu tiên được giới thiệu là thuật toán eigentrust. Các tác giả chia sẻ lý do tại sao bạn cần các biểu đồ do cộng đồng xây dựng, các khái niệm chính của thuật toán, cách thức hoạt động và cách tạo biểu đồ của riêng bạn. Ngoài ra, tác giả còn xem trước các nhiệm vụ sắp tới của Bytexexplorers và khuyến khích độc giả đăng ký để nhận được những cập nhật mới nhất.

Giao diện người dùng tiền điện tử ngày nay Hầu hết đều có bảng xếp hạng đơn giản với các đồng tiền hàng đầu được sắp xếp theo khối lượng giao dịch, tính thanh khoản, hoạt động đúc tiền, điểm, phiếu bầu, v.v. Nếu muốn có được trải nghiệm tiền điện tử ở cấp độ người tiêu dùng có thể vượt qua những gã khổng lồ Web2 ngày nay, thì chúng tôi cần nhiều thứ hơn là bảng xếp hạng trong ứng dụng của mình.
OpenRank là một trong những nền tảng giúp chúng tôi đạt được điều này và đã được Metamask Snaps, Degen Tips và Supercast sử dụng. OpenRank là một lớp tính toán có thể chạy nhiều thuật toán biểu đồ danh tiếng, trong đó đầu tiên là thuật toán eigentrust.
Trong bài viết này, tôi sẽ giới thiệu cho bạn thuật toán eigentrust của OpenRank và thảo luận về những vấn đề sau:
Tầm quan trọng của biểu đồ xây dựng cộng đồng và lý do bạn cần chúng
Các khái niệm chính về thuật toán và cách thức hoạt động
Cách tạo biểu đồ của riêng bạn, hãy tham khảo biểu đồ tôi đã tạo trong Python Notebook
Hãy bắt đầu!
Khi xây dựng các thuật toán và luồng đề xuất trong tiền điện tử, bạn sẽ nhanh chóng gặp phải một số vấn đề về dữ liệu:
· Giao dịch chứa nhiều cấp độ hoạt động
· Mối quan hệ giữa các địa chỉ có thể trở nên vô cùng phức tạp thông qua nhiều giao dịch
· Bản thân địa chỉ chứa một phần danh tính, mỗi danh tính có liên quan trong các bối cảnh khác nhau
Cả ba điểm trên Chúng đều đang phát triển với tốc độ cấp số nhân. Chúng ta hãy gọi những yếu tố đang phát triển này là "bối cảnh".
Bạn cũng vậy. Bạn không muốn nhóm kỹ thuật dữ liệu hoặc phụ trợ của mình giải quyết những vấn đề này, dù sao thì họ cũng có sản phẩm để xây dựng. Thời của các ứng dụng có người dùng và cấu trúc dữ liệu người dùng đã qua, bạn không còn chỉ có một liên kết đơn giản, ID người dùng, lượt thích/trả lời/chia sẻ và ID bài đăng mà bạn có thể có các quy đổi, chia tách, thả, hoán đổi, Đặt cược, ủy quyền, bỏ phiếu, đúc tiền và nhiều hơn nữa. Hầu như ngày nào cũng có những "hoạt động" mới xuất hiện, cũng như các chuỗi mới, loại ví mới, loại danh tính mới, v.v.
Tôi đã là thành viên của cộng đồng phù thủy Dune trong nhiều năm và nhận thấy sức mạnh của cộng đồng vượt xa khả năng của một nhóm nhỏ. Tôi cũng đã thấy hầu hết mọi nhóm tiền điện tử nhỏ đều đi từ "Ừ, chúng tôi có thể thực hiện việc này một cách độc lập với nút và cơ sở dữ liệu RDS" đến "Chúng tôi cần tận dụng các công cụ dữ liệu do cộng đồng xây dựng như The Graph và Dune". Đối với tôi, việc tạo kết hợp các truy vấn và biểu đồ được điều chỉnh cho một loại luồng đề xuất và cộng đồng cụ thể là một vấn đề tương tự. Chúng tôi cần bắt đầu thu thập và thử nghiệm các biểu đồ có thể cung cấp luồng đề xuất trên mọi ứng dụng, từ ứng dụng khách Farcaster đến trình khám phá khối.
Trong không gian tiền điện tử, người dùng không chỉ muốn đưa biểu đồ xã hội của họ đến các ứng dụng khác nhau mà còn muốn ẩn chúng. Bối cảnh trong các sơ đồ này là cũng bị lấy đi. Nếu tôi đang tích cực theo dõi cộng đồng /degen trên Farcaster, tôi muốn được đề xuất trên Zora, Roam.xyz hoặc OnceUpon cho các hoạt động của cộng đồng đó và tôi muốn có thể chuyển đề xuất đó sang bối cảnh của một cộng đồng khác cộng đồng mà tôi là thành viên, ví dụ: nhà sưu tập artblocks. Tương lai sẽ là nơi người dùng khám phá và chọn nguồn cấp dữ liệu của riêng họ, thay vì bị giới hạn ở một tính năng nhóm hoặc kênh nhất định trên một nền tảng duy nhất.
Thuật toán Eigentrust Tương tự Dựa trên PageRank, nó xếp hạng các nút trong mạng biểu đồ. Sự khác biệt là nó tập trung vào việc nắm bắt các mối quan hệ ngang hàng phức tạp như một sự phân bổ niềm tin. Ban đầu nó được xây dựng để ấn định điểm tin cậy trong các mạng chia sẻ tệp. Trong thế giới tiền điện tử, bạn có thể tưởng tượng việc sử dụng nó để ủy quyền cho các nguyên tắc quản trị chất lượng cao hoặc xác định các hợp đồng thông minh đáng tin cậy.
Sau đây là công thức của Eigentrust:

Có hai thông tin đầu vào chính ở trên: các nút được tin cậy trước và biểu đồ tin cậy cục bộ. "P" là quỹ tín thác trước của bạn và "S" là quỹ tín thác địa phương của bạn.
· Tin cậy cục bộ (localtrust): Đây là thước đo của bạn về sự tương tác giữa hai nút. Khi nút "i" chuyển một giá trị nào đó tới nút "j". Đây có thể là chuyển mã thông báo, chứng thực, trả lời phiếu bầu/thích, v.v.
· Pretrust: Đây là sự lựa chọn "hạt giống" của bạn cho các nút trong mạng đáng tin cậy hơn.
· "c": Hằng số này (từ 0 đến 1) là trọng số của giá trị tin cậy giữa biểu đồ tin cậy tổng thể cục bộ và hạt giống trước tin cậy. Biểu đồ tương tác thường có phân bố theo quy luật lũy thừa, do đó, trọng số trước độ tin cậy cao hơn sẽ giúp bình thường hóa việc phân phối các giá trị xếp hạng cuối cùng.
Nếu những công thức toán học này không dễ hiểu, bạn có thể so sánh nó với một biểu đồ xã hội như Twitter. Các mức độ ảnh hưởng như người theo dõi, lượt thích, phản hồi, v.v. thường Tập trung vào một số ít người, dẫn đến động lực của định luật lũy thừa. Bằng cách thiết lập một tập hợp các cá nhân có ảnh hưởng và chọn giá trị “c” không đổi từ 0,5 trở lên, trên thực tế, những người mà những cá nhân đáng tin cậy này tương tác sẽ thừa hưởng một nửa giá trị của ảnh hưởng đó. Đây là cách bạn cân bằng và phân phối điểm tin cậy đồng đều hơn trên mạng.
Giả sử bạn muốn sắp xếp 10.000 đề xuất tài trợ trong luồng giới thiệu. Bạn có thể xếp hạng giá trị tất cả cử tri và người đề xuất dựa trên một tập hợp các tương tác bỏ phiếu (độ tin cậy địa phương) và một tập hợp cử tri đáng tin cậy mà bạn chọn (độ tin cậy trước). Bạn có thể chọn cử tri tín nhiệm trước bằng cách chọn 10 cử tri hàng đầu mà bạn đã ủy quyền bỏ phiếu trên nhiều DAO. Eigentrust sẽ chạy dựa trên hai thông tin đầu vào này và cung cấp cho bạn danh sách cử tri lớn hơn, được xếp hạng trong biểu đồ dựa trên độ tin cậy được kế thừa từ các nút được tin cậy trước.
Bằng cách này, giờ đây bạn có thể cân nhắc các đề xuất quản trị theo thời gian thực bằng cách sử dụng danh sách giá trị được xếp hạng này để có luồng đề xuất được cá nhân hóa hơn!
Điều này có thể vẫn còn quá trừu tượng, vì vậy tôi sẽ giải thích nó bằng các ví dụ mã cụ thể trong phần tiếp theo. Hãy nhớ rằng OpenRank xử lý việc tính toán và lưu trữ các biểu đồ Eigentrust này và khuyên bạn nên sử dụng luồng đề xuất đầu ra. Tất cả những gì bạn cần làm là quyết định đầu vào tin cậy trước và tin cậy cục bộ.
Trong ví dụ này, tôi muốn dựa trên Farcaster/baseví người dùng cung cấp luồng đăng ký cho các hợp đồng được đề xuất (Farcaster là một ứng dụng giống như Twitter). Đầu ra chỉ là danh sách các id và giá trị, trong sơ đồ của tôi, mỗi id được liên kết với id người dùng Farcaster (fid).

Nguồn dữ liệu
Sau khi tạo biểu đồ xếp hạng, chúng tôi dựa trên Tương tác hợp đồng chính của Chu đã tạo ra luồng đề xuất này:

Nguồn dữ liệu
Bạn có thể Xem trang tổng quan để xem các luồng giới thiệu khác được tạo từ biểu đồ này, chẳng hạn như đúc NFT, giao dịch mã thông báo DEX và hoạt động kênh Farcaster.
Bây giờ bạn đã thấy mục tiêu, hãy nói về cách tôi Tạo bảng xếp hạng này.
Bạn có thể tìm thấy tất cả mã cho ví dụ này tại hex.tech notebook hoặc nếu muốn chạy cục bộ, bạn cũng có thể sử dụng sổ tay jupyter.
Đầu tiên, tôi tạo hai truy vấn tương ứng cho quỹ tín thác trước và quỹ tín thác địa phương của chúng tôi:
Truy vấn đầu tiên là "nút được tin cậy trước" của chúng tôi. Truy vấn này đưa ra những người dùng hàng đầu trong kênh dựa trên các tương tác nhận được (lượt thích, lượt tweet lại, lượt trả lời), công thức của tôi là (lượt thích + 3 lượt retweet + 10 lượt trả lời). Chúng tôi sẽ lấy 100 id đầu tiên từ truy vấn này làm nút tin cậy.

Nguồn dữ liệu
Truy vấn thứ hai được sử dụng để theo dõi các tương tác trên chuỗi giữa các nút bằng cách sử dụng kênh /base của người dùng địa chỉ liên kết. Vì luồng đăng ký sẽ đề xuất các hành động trên chuỗi nên tôi muốn đảm bảo chọn biểu đồ tương tác dựa trên số lượng tương tác trên chuỗi. Sử dụng giá trị USD được chuyển giữa các nút là một proxy chung tốt - Tôi đã theo dõi chuyển khoản stablecoin và ETH trên Optimism, Base và mạng chính Ethereum.

Nguồn dữ liệu
Bây giờ chúng ta đã có các nút được tin cậy trước và biểu đồ độ tin cậy cục bộ, hãy xem một số thống kê tóm tắt. 65.755 người dùng trong kênh /base đã chuyển mã thông báo cho những người khác trong kênh và 19% biểu đồ (tức là các nút được kết nối) có thể được truyền qua từ các nút đáng tin cậy trước của chúng tôi. Tỷ lệ phần trăm này có thể thay đổi tùy thuộc vào cách Sybil dữ liệu tin cậy cục bộ của biểu đồ. Việc chuyển mã thông báo có thể là tín hiệu cao nhưng chúng cũng có thể là giao dịch ngắn hạn, vì vậy không có gì đáng ngạc nhiên khi phần lớn biểu đồ không được kết nối.

Sau khi xác nhận dữ liệu đầu vào Sau khi kích thước và kết nối hợp lý, chúng ta có thể chạy và lưu biểu đồ Eigentrust của mình. Tôi đã lưu biểu đồ của mình với id "base_transfer_50" - bạn có thể thấy bên dưới rằng chỉ cần 10 dòng mã để huấn luyện biểu đồ. Hãy coi OpenRank SDK như một công cụ tìm hiểu khoa học về các mô hình mật mã.

Hãy nhớ công thức trước hằng số "c"? Hãy thực hiện tìm kiếm dạng lưới trên các giá trị khác nhau của c (tôi gọi nó là alpha) và các kích thước hạt giống trước độ tin cậy khác nhau để xem cái nào mang lại cho chúng ta điểm tin cậy log-bình thường nhất và mức độ bao phủ cao nhất:

Ở đây có rất nhiều sự đánh đổi và không có giá trị nào tốt nhất để bạn lựa chọn. Mức độ chính quy và mức độ bao phủ cao là một lựa chọn tốt nếu bạn muốn có sự đa dạng mạnh mẽ trong các đề xuất, nhưng đối với các phiếu bầu quản trị có mức độ đặt cược cao, bạn thực sự có thể muốn có sự tập trung tin cậy cao hơn. Hãy sử dụng trực giác của bạn ở đây.
Từ đây, chúng tôi có thể chèn giá trị vào truy vấn đăng ký được liên kết ở đầu trang tổng quan của Dune để nhận các tương tác hợp đồng cho người dùng đáng tin cậy trong luồng kênh /base. Kết quả đề xuất mang tính chủ quan này giúp chúng tôi kết nối tốt hơn các số liệu chung trước đó với trực giác mong đợi của chúng tôi về chất lượng của kết quả đề xuất.

Xong! Bạn có thể sử dụng API Dune này để cấp nguồn cho bất kỳ ứng dụng nào của mình ngay lập tức.
Bạn đã sẵn sàng tự mình làm điều đó chưa? Bạn có thể fork cuốn sổ của tôi và tự mình dùng thử, tất cả các liên kết cần thiết đều có ở bên dưới:
· Bảng điều khiển nguồn cấp dữ liệu Dune
Tôi sẽ thực hiện sứ mệnh Bytexplorers trong tháng tới và chúng tôi Cuộc thi để tạo biểu đồ luồng đăng ký tốt nhất cho các ứng dụng tiền điện tử hàng đầu, hãy nhớ đăng ký để được thông báo khi nhiệm vụ bắt đầu!
Bản gốc văn bản Liên kết
Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:
Nhóm Telegram đăng ký: https://t.me/theblockbeats
Nhóm Telegram thảo luận: https://t.me/BlockBeats_App
Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia