Hầu hết các giao diện tiền điện tử ngày nay bao gồm cá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, thanh khoản, đú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, 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 một số 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 sơ đồ xây dựng cộng đồng và lý do bạn cần chúng

Các khái niệm chính của thuật toán và cách thức hoạt động của nó

Cách tạo biểu đồ của riêng bạn, hãy tham khảo biểu đồ tôi đã tạo trong sổ ghi chép Python

hãy bắt đầu!

Tại sao phải xây dựng biểu đồ đề xuất với cộng đồng thay vì chỉ dựa vào nhóm máy học của riêng bạn?

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 phần có liên quan đến các ngữ cảnh khác nhau

Cả ba yếu tố trên đều đang phát triển với tốc độ cấp số nhân. Hãy gọi những yếu tố đang phát triển này là “bối cảnh”.

Nhóm ML nhỏ của bạn không thể theo kịp dòng ý tưởng không ngừng nghỉ

Bạn cũng 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, sau tất cả, họ 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 tin rằng trong năm tới, ngành công nghiệp tiền điện tử sẽ phát triển một cộng đồng khoa học dữ liệu đồ thị dựa trên giao thức và sản phẩm OpenRank

Tôi đã là thành viên của cộng đồng phù thủy Dune trong nhiều năm và đã thấy cộng đồng này có thể mạnh mẽ đến mức nào ngoài 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 sự kết hợp giữa 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.

Khái niệm về luồng đề xuất là bắt chước và sẽ bị loại bỏ. Người dùng trở thành người quản lý nội dung

Trong không gian tiền điện tử, người dùng không chỉ muốn đưa các biểu đồ xã hội của họ đến các ứng dụng khác nhau mà còn cả bối cảnh ẩn trong các biểu đồ đó. 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 của OpenRank hoạt động như thế nào?

Thuật toán Eigentrust tương tự như PageRank ở chỗ nó xếp hạng các nút trong mạng đồ thị. 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.

Đây là công thức của Eigentrust:

Có hai đầ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ộ: Đâ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 số giá trị cho 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 tiền 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 phép toán không dễ hiểu, hãy coi nó giống như một biểu đồ xã hội như Twitter, nơi mà những ả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 luật lũy thừa năng động. 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.

Điều này liên quan như thế nào đến việc chọn bất kỳ bối cảnh nào và tạo bất kỳ luồng đề xuất nào?

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ể sử dụng danh sách giá trị được xếp hạng này để cân nhắc các đề xuất quản trị theo thời gian thực nhằm tạo ra 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ộ.

Làm cách nào để xây dựng biểu đồ Eigentrust bằng OpenRank?

bàn thắng tuyệt đỉnh

Trong ví dụ này, tôi muốn cung cấp luồng đăng ký gồm các hợp đồng được đề xuất dựa trên ví người dùng của Farcaster/base (Farcaster là một ứng dụng giống 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 đã tạo luồng đề xuất này dựa trên các tương tác hợp đồng chính của họ trong tuần qua:

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ư khai thác NFT, giao dịch mã thông báo DEX và hoạt động kênh Farcaster.

Mã số

Bây giờ bạn đã thấy các mục tiêu, hãy nói về cách tôi tạo biểu đồ xếp hạng này.

Tất cả mã cho ví dụ này có thể được tìm thấy trong sổ ghi chép hex.tech hoặc bạn có thể sử dụng sổ ghi chép jupyter nếu bạn muốn chạy nó cục bộ.

Đầu tiên, tôi tạo hai truy vấn cho độ tin cậy trước và độ tin cậy cục bộ của chúng tôi:

Truy vấn đầu tiên là "nút 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, sử dụng địa chỉ liên kết của người dùng trong kênh /base. 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 Phân tích biểu đồ đầu vào và kiểm tra biểu đồ Eigentrust đầu ra

Bây giờ chúng ta đã có các nút 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 đồ. 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 rằng kích thước của dữ liệu đầu vào và các kết nối là 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ã.

Bạn có nhớ hằng số "c" trong công thức trước không? Hãy thực hiện tìm kiếm dạng lưới cho các giá trị khác nhau của c (tôi sẽ 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:

Có rất nhiều sự đánh đổi ở đây và không có giá trị nào tốt nhất để 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 ta có thể chèn các giá trị vào truy vấn đăng ký được liên kết ở đầu bảng điều khiển của Dune để nhận được luồng tương tác hợp đồng cho những người dùng đáng tin cậy trong 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.

đóng đinh nó! 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.

Tìm hiểu cách xây dựng biểu đồ OpenRank Eigentrust của riêng bạn

Bạn đã sẵn sàng tự mình giải quyết vấn đề chưa? Bạn có thể fork cuốn sổ của tôi và tự mình thử, tất cả các liên kết cần thiết đều có bên dưới:

· Tài liệu OpenRank

· Kho lưu trữ SDK Python

· Sổ tay Python

· Trang tổng quan về nguồn cấp dữ liệu Dune