Thư viện Merkle Tree bằng Rust mới khơi mào tranh luận về ứng dụng thực tế ngoài Blockchain

Nhóm Cộng đồng BigGo
Thư viện Merkle Tree bằng Rust mới khơi mào tranh luận về ứng dụng thực tế ngoài Blockchain

Trong thế giới mật mã và cấu trúc dữ liệu, cây Merkle từ lâu đã là một khối xây dựng cơ bản cho các hệ thống yêu cầu xác minh dữ liệu hiệu quả. Việc phát hành gần đây rs-merkle-tree, một triển khai bằng Rust với các chỉ số hiệu suất ấn tượng và thiết kế mô-đun, đã khơi mào những cuộc thảo luận mới về vị trí của các cấu trúc mật mã này ngoài các ứng dụng blockchain nổi tiếng của chúng.

Các nhà phát triển đằng sau thư viện mới nhấn mạnh sự tối ưu hóa của nó cho các cấu trúc dữ liệu chỉ-ghi-bổ-sung thường thấy trong các hệ thống phân tán, nhật ký kiểm toán và các hệ thống minh bạch chứng chỉ. Với các backend lưu trữ và hàm băm có thể cấu hình, thư viện hướng đến việc cung cấp sự linh hoạt trong khi vẫn duy trì hiệu suất cao cho việc tạo và xác minh bằng chứng.

Vượt ra ngoài Blockchain: Cuộc tìm kiếm các ứng dụng thực tế

Cuộc thảo luận trong cộng đồng nhanh chóng chuyển hướng sang việc xác định các trường hợp sử dụng thực tế ngoài tiền mã hóa. Mặc dù blockchain vẫn là ứng dụng nổi bật nhất, các nhà phát triển đang khám phá các giải pháp thay thế khai thác thế mạnh cốt lõi của cây Merkle. Một bình luận viên lưu ý về thách thức trong việc tìm kiếm các ứng dụng bên ngoài lĩnh vực crypto và nhật ký minh bạch chứng chỉ, làm dấy lên một cuộc trò chuyện rộng hơn về các triển khai thực tế.

Tôi hiện đang khám phá cách các API khác nhau tính toán ETags. Tôi có xu hướng nghĩ rằng chi phí vận hành của Merkle-trees khiến chúng tương đối kém hữu ích hơn cho ETags đối với các API phân trang, nơi phản hồi nhỏ và việc băm phẳng thì nhanh.

Quan điểm này làm nổi bật việc đánh giá liên tục về nơi mà cây Merkle cung cấp giá trị thực sự so với nơi các giải pháp đơn giản hơn có thể đủ dùng. Cuộc thảo luận đã tiết lộ một số ứng dụng tiềm năng, bao gồm hệ thống tệp phân tán để chứng minh tính toàn vẹn dữ liệu, hệ thống kiểm soát phiên bản như Git và các trường hợp sử dụng bảo mật chuyên biệt yêu cầu xác minh dữ liệu lịch sử.

Điểm chuẩn Hiệu suất Tiết lộ những Bất ngờ về Lưu trữ

Các số liệu hiệu suất của thư viện đã tạo ra sự quan tâm đáng kể, đặc biệt là kết quả bất ngờ cho thấy SQLite vượt trội hơn RocksDB trong một số kịch bản. Điều này làm nhiều nhà phát triển ngạc nhiên, những người đã kỳ vọng các kho khóa-giá trị sẽ thống trị các bảng điểm chuẩn hiệu suất. Cộng đồng suy đoán rằng mẫu truy cập của cây, liên quan đến cả việc đọc và ghi trong khi chèn lá, có thể giải thích cho những kết quả trái ngược trực giác này.

Các điểm chuẩn được thực hiện trên phần cứng AMD Ryzen 7 cho thấy bộ nhớ trong đạt được thông lượng cao nhất ở 86.084 lá mỗi giây, trong khi các tùy chọn lưu trữ liên tục như Sled và SQLite mang lại hiệu suất đáng kể trong khoảng 22-43 nghìn lá mỗi giây. Thời gian tạo bằng chứng thay đổi đáng kể, với bộ nhớ trong hoàn thành bằng chứng trong vòng chưa đến 600 nano giây trong khi các giải pháp dựa trên cơ sở dữ liệu mất vài micro giây.

So sánh Hiệu năng Benchmark

Storage Backend Thông lượng add_leaves (Kelem/s) Thời gian Tạo Proof
memory 86.084 560.990 ns
sled 43.280 7.878 µs
sqlite 22.348 14.562 µs
rocksdb 18.280 34.391 µs

Các benchmark được đo trên bộ xử lý AMD Ryzen 7 7700 8-Core với RAM 64GB

Triển khai Kỹ thuật Khơi mào Câu hỏi về Đồng thời

Tính chất tuần tự hiện tại của thư viện đã đặt ra câu hỏi về các hoạt động đồng thời. Các nhà phát triển bày tỏ sự quan tâm đến việc hiểu cách triển khai có thể mở rộng sang môi trường đa luồng như thế nào, đặc biệt là với bản chất chỉ-ghi-bổ-sung của cây Merkle. Những người bảo trì thừa nhận đang làm việc trên các mô hình đồng thời nhưng bày tỏ sự không chắc chắn về cách tiếp cận tối ưu.

Hiệu quả lưu trữ cũng nổi lên như một cân nhắc chính, với các nhà phát triển thảo luận liệu lưu trữ SQL có đại diện cho việc kỹ sư quá mức cho thứ về cơ bản chỉ là một cấu trúc dữ liệu phân cấp hay không. Một số gợi ý rằng các phương pháp tiếp cận dựa trên tệp đơn giản hơn sử dụng bố cục tiêu chuẩn hóa có thể mang lại đặc tính hiệu suất tốt hơn cho một số trường hợp sử dụng cụ thể.

Việc phát triển đang diễn ra các backend lưu trữ async cho thấy sự tiến hóa của thư viện hướng tới các mẫu I/O hiện đại, mặc dù các triển khai cụ thể vẫn đang được thảo luận. Cộng đồng dường như háo hức muốn xem thư viện thích nghi với các mô hình lập trình không đồng bộ phổ biến trong các ứng dụng mạng như thế nào.

Hiệu suất lưu trữ cho 1.000.000 lá (Độ sâu 32)

Lưu trữ Dung lượng đĩa sử dụng
sled 290.00 MiB
rocksdb 183.27 MiB
sqlite 159.18 MiB

Tương lai của Cấu trúc Dữ liệu Mật mã

Khi cuộc thảo luận tiếp tục, rõ ràng là cây Merkle chiếm một vị trí chuyên biệt nhưng quan trọng trong thiết kế hệ thống phân tán. Việc triển khai bằng Rust mới đại diện cho cả một thành tựu kỹ thuật và một chất xúc tác để xem xét lại nơi mà các cấu trúc này cung cấp giá trị thực sự. Trọng tâm của cộng đồng vào các ứng dụng thực tế ngoài blockchain cho thấy sự trưởng thành trong cách các nhà phát triển tiếp cận các nguyên thủy mật mã - không phải là các giải pháp đi tìm vấn đề, mà là các công cụ có điểm mạnh cụ thể cho các kịch bản cụ thể.

Thiết kế mô-đun của thư viện, cho phép các backend lưu trữ và hàm băm khác nhau, phản ánh sự hiểu biết rằng một kích cỡ không phù hợp cho tất cả trong các hệ thống phân tán. Khi các nhà phát triển tiếp tục khám phá các trường hợp sử dụng từ minh bạch chứng chỉ đến hệ thống tệp phân tán và nhật ký kiểm toán, cuộc thảo luận xung quanh rs-merkle-tree đóng vai trò như một vi mô của các xu hướng rộng lớn hơn trong lập trình hệ thống - cân bằng hiệu suất, tính linh hoạt và tính hữu ích thực tế.

Tham khảo: rs-merkle-tree