Mua Crypto
Thị trường
Spot
FuturesBTC
Tiết kiệm
Trung tâm sự kiện
Trung tâm thưởng
Xem thêm
Lễ hội 0 phí
Hàm băm Poseidon: Hàm băm Poseidon là gì?Poseidon Hash là hàm băm mật mã được thiết kế để hoạt động hiệu quả trong các hệ thống bằng chứng zero-knowledge và những ứng dụng blockchain khác sử dụng mạch số học trên trườnHàm băm Poseidon: Hàm băm Poseidon là gì?Poseidon Hash là hàm băm mật mã được thiết kế để hoạt động hiệu quả trong các hệ thống bằng chứng zero-knowledge và những ứng dụng blockchain khác sử dụng mạch số học trên trườn

Hàm băm Poseidon

2026/10/13 16:46
#Advanced
Humanity
H$0.05672-2.66%
MemeCore
M$0.89578+18.23%
Gravity
G$0.003767-4.09%
PX
PX$0.0113--%
ZKsync
ZK$0.013549-9.93%

Hàm băm Poseidon là gì?

Poseidon Hash là hàm băm mật mã được thiết kế để hoạt động hiệu quả trong các hệ thống bằng chứng zero-knowledge và những ứng dụng blockchain khác sử dụng mạch số học trên trường hữu hạn.

Trong crypto, Poseidon nổi tiếng nhất là hàm băm thân thiện với ZK vì khi dùng trong SNARK, STARK, Bulletproofs và các hệ thống bằng chứng liên quan, hàm này có thể được tính với ít ràng buộc mạch hơn nhiều hàm băm truyền thống.

Hàm băm mật mã nhận dữ liệu đầu vào và tạo ra đầu ra có kích thước cố định. Đầu ra này phải khó đảo ngược, khó tìm va chạm và khó dự đoán nếu không tính toán hàm chính xác.

Poseidon khác với các hàm băm đa dụng như SHA-256 hoặc SHA-3 vì được xây dựng dựa trên các phép toán có chi phí chứng minh thấp hơn trong mạch zero-knowledge.

Bài báo về Poseidon được trình bày tại USENIX Security 2021 giải thích rằng Poseidon hoạt động trực tiếp với các phần tử trường hữu hạn và trong những bối cảnh được nghiên cứu có thể sử dụng ít ràng buộc hơn đáng kể trên mỗi bit thông điệp so với Pedersen Hash.

Poseidon thường được dùng cho cây Merkle, commitment, nullifier, cập nhật trạng thái riêng tư, cấu trúc dữ liệu thân thiện với bằng chứng và các ứng dụng blockchain cần tính hàm băm bên trong mạch bằng chứng.

Poseidon Hash không phải token, ví, cơ chế đồng thuận, sản phẩm sàn giao dịch hay thuật toán đào.

Cách hiểu đơn giản nhất là Poseidon Hash được thiết kế cho môi trường toán học của bằng chứng zero-knowledge thay vì cho hoạt động băm thông thường chỉ dùng CPU.

Vì sao Poseidon Hash quan trọng trong crypto?

Poseidon Hash quan trọng vì nhiều hệ thống crypto cần chứng minh dữ liệu được băm chính xác mà không tiết lộ chính dữ liệu riêng tư đó.

Bằng chứng zero-knowledge hữu ích trong blockchain vì cho phép người dùng chứng minh các thông tin về số dư, danh tính, giao dịch, tư cách thành viên hoặc phép tính mà không công khai mọi chi tiết.

Tuy nhiên, mỗi phép toán trong bằng chứng zero-knowledge đều có chi phí.

Nếu hàm băm tốn nhiều tài nguyên khi chạy trong mạch, bằng chứng có thể chậm hơn, lớn hơn, tốn kém hơn hoặc không khả thi với người dùng.

Các hàm băm truyền thống như SHA-256 và Keccak có độ tin cậy cao và được sử dụng rộng rãi, nhưng phụ thuộc nhiều vào phép toán theo bit vốn có thể tốn kém khi biểu diễn trong nhiều hệ thống bằng chứng số học.

Poseidon được tạo ra để giải quyết vấn đề này bằng cách sử dụng các phép toán phù hợp tự nhiên với trường hữu hạn, như phép cộng, phép nhân, S-box dạng lũy thừa và phép trộn ma trận.

Điều này khiến Poseidon hữu ích cho giao dịch bảo vệ quyền riêng tư, ZK rollup, bằng chứng danh tính, tính toán có thể xác minh, hợp đồng thông minh riêng tư và hệ thống mở rộng dựa trên bằng chứng.

Với nhà phát triển crypto, Poseidon có thể giảm chi phí tạo bằng chứng khi hàm băm chiếm phần lớn trong mạch.

Với người dùng, điều này có thể giúp các ứng dụng bảo vệ quyền riêng tư và mở rộng hoạt động nhanh hơn, rẻ hơn và thiết thực hơn.

Poseidon Hash hoạt động như thế nào?

Poseidon thường được mô tả là hàm băm dạng sponge, được xây dựng từ một phép hoán vị trên trường nguyên tố.

Cấu trúc sponge hấp thụ dữ liệu đầu vào vào trạng thái nội bộ rồi trích xuất đầu ra hàm băm.

Trạng thái nội bộ gồm các phần tử trường thay vì byte thông thường.

Phần tử trường là các số trong một trường toán học hữu hạn, cùng loại môi trường được nhiều mạch bằng chứng ZK sử dụng.

Poseidon áp dụng một chuỗi vòng lặp lên trạng thái nội bộ này.

Mỗi vòng thường kết hợp các hằng số vòng, phép toán S-box phi tuyến và trộn tuyến tính qua ma trận MDS hoặc cấu trúc ma trận tối ưu hóa.

Đặc tả Poseidon của Filecoin mô tả các tham số của Poseidon như trường nguyên tố, cấp độ bảo mật, kích thước trạng thái, số mũ S-box, số vòng đầy đủ, số vòng từng phần, hằng số vòng và ma trận MDS.

Trong các vòng đầy đủ, S-box được áp dụng cho mọi phần tử trong trạng thái.

Trong các vòng từng phần, S-box chỉ được áp dụng cho một phần trạng thái, giúp giảm chi phí nhưng vẫn hướng tới duy trì tính bảo mật.

Sau đủ số vòng, trạng thái cuối cùng được dùng để tạo đầu ra hàm băm.

Điều gì khiến Poseidon thân thiện với ZK?

Poseidon thân thiện với ZK vì các phép toán của nó dễ biểu diễn trong mạch số học với chi phí thấp.

Nhiều hệ thống tạo bằng chứng zero-knowledge biểu diễn phép tính dưới dạng các ràng buộc trên trường hữu hạn.

Phép cộng và phép nhân đơn giản trên trường đó thường rẻ hơn nhiều so với phép xoay theo bit, XOR theo bit và logic Boolean.

SHA-256 rất phù hợp với nhiều ứng dụng blockchain nhưng không được thiết kế để giảm thiểu số ràng buộc trong mạch số học.

Ngay từ đầu, Poseidon đã được thiết kế có tính đến các ràng buộc này.

Điều đó có nghĩa là trong nhiều hệ thống ZK, cây Merkle dùng Poseidon có thể rẻ hơn đáng kể để chứng minh so với cây Merkle dùng hàm băm kém thân thiện với mạch hơn.

Vì vậy, tùy hệ thống bằng chứng và cách triển khai, Poseidon có thể giảm thời gian tạo bằng chứng, mức sử dụng bộ nhớ và đôi khi cả chi phí xác minh on-chain.

Một phép thử hiệu năng năm 2024 về các hàm băm thân thiện với ZK và hệ thống tạo bằng chứng SNARK cho thấy Poseidon và Poseidon2 có hiệu suất tốt về thời gian chạy và mức sử dụng bộ nhớ trong các mạch cây Merkle được thử nghiệm.

Giá trị thực tiễn của Poseidon phụ thuộc vào trường, ngôn ngữ mạch, bộ tham số, hệ thống bằng chứng, chất lượng triển khai và các giả định bảo mật.

Poseidon hiệu quả vì phù hợp với môi trường tạo bằng chứng ZK thay vì đi ngược lại môi trường đó.

Poseidon Hash và trường hữu hạn

Trường hữu hạn là một hệ thống toán học có số phần tử cố định, trong đó phép cộng, trừ, nhân và chia tuân theo quy tắc xác định.

Nhiều hệ thống bằng chứng ZK thực hiện phép tính trên trường hữu hạn vì các phương trình bằng chứng được xây dựng từ phép toán trường.

Poseidon nhận các phần tử trường làm đầu vào và tạo một phần tử trường làm đầu ra.

Điều này khác với hàm băm hướng byte thông thường, vốn xử lý dữ liệu như chuỗi nhị phân.

Tài liệu Poseidon Circom giải thích rằng cấu trúc sponge của Poseidon nhận đầu vào từ trường nguyên tố và tạo một phần tử đầu ra duy nhất trong cùng trường.

Với nhà phát triển, điều này có nghĩa dữ liệu thường cần được mã hóa cẩn thận trước khi băm bằng Poseidon.

Địa chỉ ví, ID token, số lượng, nonce hoặc thông điệp có thể cần được chuyển đổi thành một hay nhiều phần tử trường hợp lệ.

Nếu hai hệ thống mã hóa cùng một dữ liệu theo cách khác nhau, chúng có thể tạo ra hash Poseidon khác nhau dù cùng sử dụng thuật toán cấp cao.

Vì vậy, lựa chọn trường, cách mã hóa, phân tách miền và lựa chọn tham số là yếu tố quan trọng trong các hệ thống crypto dùng Poseidon.

Poseidon Hash và cây Merkle

Cây Merkle là một trong những ứng dụng phổ biến nhất của Poseidon Hash trong crypto.

Cây Merkle kết hợp nhiều mẩu dữ liệu thành một hash gốc, từ đó có thể chứng minh tư cách thành viên một cách hiệu quả.

Trong ứng dụng ZK, người dùng có thể chứng minh rằng một ghi chú, commitment danh tính, bản ghi số dư hoặc mục trong allowlist thuộc cây Merkle mà không tiết lộ tất cả các mục trong cây.

Nếu mỗi tầng của cây dùng hàm băm truyền thống tốn kém trong mạch, bằng chứng sẽ đắt hơn.

Nếu mỗi tầng đều dùng Poseidon, bằng chứng tư cách thành viên thường có thể được tạo với chi phí thấp hơn.

Đó là lý do Poseidon thường được dùng trong hệ thống giao dịch riêng tư, hệ thống danh tính, tập hợp nullifier, cây trạng thái và cấu trúc bằng chứng liên quan đến rollup.

Hàm băm cây Merkle cần có khả năng chống va chạm để hai lá hoặc đường dẫn khác nhau không thể tạo cùng một hash gốc trong bất kỳ cuộc tấn công thực tế nào.

Do đó, tính bảo mật của Poseidon ảnh hưởng trực tiếp đến khả năng bảo vệ commitment, bằng chứng tư cách thành viên và xác nhận trạng thái tài sản.

Nhà phát triển không nên tùy tiện thay đổi tham số Poseidon trong cây Merkle vì tất cả các bên phải thống nhất chính xác một hàm băm để xác minh cùng hash gốc.

Poseidon Hash và commitment

Commitment cho phép người dùng khóa một giá trị mà chưa tiết lộ ngay.

Trong crypto, commitment được sử dụng cho chuyển tiền riêng tư, hệ thống danh tính, đấu giá kín, bỏ phiếu, cơ chế nullifier và trạng thái hợp đồng thông minh riêng tư.

Poseidon có thể dùng để tính commitment bên trong mạch ZK vì người dùng có thể chứng minh mình biết các đầu vào riêng tư tạo ra một commitment công khai.

Ví dụ, người dùng có thể giữ bí mật một giá trị và salt, đồng thời chỉ công bố kết quả hash Poseidon.

Tài liệu Mina về đầu vào riêng tư và hàm băm trình bày cách Poseidon băm các đầu vào trường trong ví dụ zkApp mà vẫn giữ bí mật đầu vào.

Mô hình này phổ biến vì bằng chứng có thể cho thấy người dùng biết dữ liệu ẩn mà không tiết lộ dữ liệu đó on-chain.

Tuy nhiên, mức độ an toàn của commitment chỉ tốt bằng entropy đầu vào, cách sử dụng salt, phân tách miền và cách triển khai.

Nếu giá trị được commitment dễ đoán, kẻ tấn công có thể băm các giá trị có khả năng xảy ra rồi so sánh đầu ra.

Salt ngẫu nhiên và cách mã hóa đầu vào được thiết kế tốt giúp giảm rủi ro này.

Poseidon Hash và nullifier

Nullifier là giá trị dùng để ngăn chi tiêu hai lần hoặc sử dụng lặp lại mà không tiết lộ ghi chú riêng tư hay danh tính ban đầu.

Trong hệ thống crypto chú trọng quyền riêng tư, người dùng có thể chứng minh mình sở hữu một ghi chú riêng tư hợp lệ và công bố nullifier để cho biết ghi chú đã được sử dụng.

Poseidon có thể được dùng để tạo nullifier bên trong mạch vì có thể băm hiệu quả dữ liệu ghi chú bí mật.

Hệ thống công khai kiểm tra xem nullifier đã xuất hiện trước đó hay chưa.

Bằng chứng riêng tư cho thấy nullifier được tạo chính xác từ một bí mật hợp lệ.

Nhờ đó, hệ thống có thể ngăn chi tiêu hai lần mà vẫn bảo vệ quyền riêng tư của commitment ban đầu.

Nếu hàm băm nullifier yếu, hệ thống bảo vệ quyền riêng tư có thể dễ bị tấn công sử dụng lặp lại, liên kết dữ liệu hoặc giả mạo.

Nếu cách mã hóa nullifier không nhất quán, người dùng có thể tạo bằng chứng không hợp lệ hoặc cập nhật trạng thái không tương thích.

Poseidon hữu ích trong trường hợp này vì logic nullifier và commitment có thể cần nhiều phép băm lặp lại bên trong mạch bằng chứng.

Poseidon Hash và ZK rollup

ZK rollup sử dụng bằng chứng zero-knowledge hoặc bằng chứng hợp lệ để chứng minh các lô giao dịch off-chain được thực thi chính xác.

Rollup thường cần hàm băm cho cây trạng thái, cây tài khoản, commitment giao dịch, nullifier, tổng hợp bằng chứng và commitment dữ liệu.

Poseidon có thể giảm chi phí cho các hoạt động cần băm nhiều này trong hệ thống tạo bằng chứng.

EIP-5988 của Ethereum đề xuất precompile Poseidon nhằm cải thiện khả năng tương tác giữa EVM và các ZK rollup hoặc validity rollup.

Theo trang EIP hiện có, EIP-5988 được đánh dấu là Stagnant và chưa trở thành precompile đang hoạt động trên Ethereum mainnet.

Điều này quan trọng vì nếu lớp nền tảng không hỗ trợ Poseidon gốc, hợp đồng có thể cần xác minh Poseidon bằng logic tùy chỉnh tốn kém hơn hoặc dùng các phương thức xác minh bằng chứng khác.

Precompile gốc có thể giúp một số mô hình tương tác ZK rẻ hơn, nhưng cũng cần lựa chọn tham số cẩn thận và rà soát bảo mật.

Vì vậy, vai trò của Poseidon trong rollup vừa mang tính kỹ thuật vừa liên quan đến toàn hệ sinh thái.

Poseidon Hash và SHA-256

Poseidon và SHA-256 đều là hàm băm mật mã nhưng được tối ưu cho những môi trường khác nhau.

SHA-256 được sử dụng rộng rãi trong Bitcoin, chữ ký số, tính toàn vẹn tệp và nhiều hệ thống bảo mật đa dụng.

SHA-256 đã phát triển lâu năm, được nghiên cứu rộng rãi và hoạt động hiệu quả trên phần cứng thông thường.

Poseidon mới hơn và được tối ưu cho phép toán trường hữu hạn bên trong hệ thống bằng chứng ZK.

Khi blockchain cần hàm băm đa dụng bên ngoài mạch bằng chứng, SHA-256 hoặc SHA-3 có thể là lựa chọn quen thuộc hơn.

Khi mạch ZK cần chứng minh nhiều phép băm, Poseidon có thể rẻ hơn đáng kể.

Điều này không có nghĩa Poseidon tự động tốt hơn SHA-256 trong mọi trường hợp.

Điều đó có nghĩa Poseidon có thể phù hợp hơn để tăng hiệu quả mạch ZK khi hệ thống được thiết kế dựa trên tham số và giả định bảo mật của nó.

Hệ thống crypto cần lựa chọn hàm băm phù hợp với mô hình mối đe dọa, nhu cầu tương thích, yêu cầu hiệu năng và mức độ trưởng thành.

Poseidon Hash so với Keccak và SHA-3

Keccak và SHA-3 là các thiết kế hàm băm dạng sponge được dùng trong nhiều ứng dụng mật mã.

Tiêu chuẩn NIST FIPS 202 quy định họ SHA-3 và các hàm đầu ra có thể mở rộng SHAKE dựa trên Keccak.

Keccak quan trọng trong crypto vì một số hệ thống blockchain sử dụng hàm băm kiểu Keccak cho địa chỉ, dữ liệu giao dịch, log và hoạt động hợp đồng thông minh.

Poseidon cũng sử dụng cách tiếp cận tương tự sponge nhưng được xây dựng trên trường hữu hạn và thiết kế cho hệ thống bằng chứng thay vì băm dữ liệu hướng byte đa dụng.

Keccak và SHA-3 được tiêu chuẩn hóa và có lịch sử sử dụng lâu hơn cho mục đích mật mã đa dụng.

Poseidon chuyên biệt hơn cho mạch ZK và tính toán có thể xác minh.

Trang dự án hàm băm của NIST liệt kê các thuật toán băm được phê duyệt như họ SHA-2 và SHA-3. Không nên mô tả Poseidon là phương án thay thế đa dụng được NIST phê duyệt cho các tiêu chuẩn này.

Nhà phát triển không nên sử dụng Poseidon chỉ vì thuật toán này có vẻ hiện đại.

Chỉ nên dùng Poseidon khi ứng dụng thực sự hưởng lợi từ hiệu quả mạch số học và có cách triển khai đã được rà soát.

Poseidon Hash so với Pedersen Hash

Pedersen Hash đã được sử dụng trong một số hệ thống quyền riêng tư và ZK nhờ các đặc tính đại số hữu ích và khả năng hoạt động hiệu quả trong một số môi trường đường cong elliptic.

Poseidon được thiết kế để hiệu quả hơn Pedersen Hash trong nhiều trường hợp sử dụng mạch số học.

Bài báo Poseidon của USENIX cho biết trong các bối cảnh được nghiên cứu, Poseidon có thể sử dụng ít ràng buộc hơn Pedersen Hash đáng kể trên mỗi bit thông điệp.

Đây là lý do lớn khiến Poseidon trở nên phổ biến trong các hệ thống ZK cần nhiều phép băm.

Tuy nhiên, Pedersen Hash và Poseidon có cấu trúc, giả định và yêu cầu triển khai khác nhau.

Dự án không nên thay thế hàm này bằng hàm kia nếu chưa kiểm tra khả năng tương thích, bằng chứng bảo mật, lựa chọn tham số và lịch sử kiểm toán.

Hệ thống cũ có thể tiếp tục dùng Pedersen Hash vì thay đổi hàm băm có thể làm hỏng commitment, hash gốc Merkle và xác minh bằng chứng hiện có.

Hệ thống mới có thể chọn Poseidon khi hiệu quả mạch là mục tiêu thiết kế cốt lõi.

Lựa chọn phù hợp nhất phụ thuộc vào việc hệ thống ưu tiên tính trưởng thành, khả năng tương thích, chi phí mạch hay khả năng nâng cấp.

Poseidon Hash so với MiMC và Rescue

MiMC, Rescue và Poseidon đều là ví dụ về hàm băm được thiết kế hướng đến phép toán số học thân thiện với hệ thống bằng chứng.

MiMC sử dụng cấu trúc đơn giản và đã được dùng trong nghiên cứu cũng như triển khai ZK.

Rescue cũng được thiết kế cho hàm băm hướng đến arithmetization.

Poseidon trở nên phổ biến vì đạt hiệu năng tốt trong nhiều bối cảnh mạch thực tế và hỗ trợ các cấu hình trường hữu hạn khác nhau.

Phép thử hiệu năng năm 2024 về hàm băm thân thiện với ZK cho thấy Poseidon và Poseidon2 nằm trong số những thuật toán có hiệu suất tốt nhất ở cấu hình và các giai đoạn tạo bằng chứng được thử nghiệm.

Điều này không có nghĩa Poseidon luôn vượt trội trong mọi mạch, hệ thống bằng chứng, trường hoặc môi trường phần cứng.

Hiệu năng có thể thay đổi tùy theo số đầu vào, kích thước trường, ràng buộc, ngôn ngữ triển khai, trình biên dịch, backend tạo bằng chứng và chain mục tiêu.

Nhóm chú trọng bảo mật nên thử nghiệm nhiều ứng viên thay vì cho rằng một hàm băm thân thiện với ZK luôn là lựa chọn tốt nhất.

Poseidon quan trọng vì được nghiên cứu và sử dụng rộng rãi, không phải vì mọi phương án khác đã lỗi thời.

Poseidon Hash và Poseidon2

Poseidon2 là phiên bản tối ưu hóa ra mắt sau Poseidon, được thiết kế để cải thiện hiệu năng trong khi vẫn giữ mục tiêu chung là tạo hàm băm thân thiện với ZK.

Bài báo về Poseidon2 giới thiệu Poseidon2 là phiên bản nhanh hơn của hàm băm Poseidon.

Các dự án ZK hiện đại có thể đánh giá Poseidon2 khi cần giảm chi phí tạo bằng chứng, băm Merkle nhanh hơn hoặc tăng hiệu quả trong các bộ công cụ tạo bằng chứng mới.

Poseidon2 không khiến mọi triển khai Poseidon hiện có trở nên lỗi thời.

Hệ thống hiện tại có thể phụ thuộc vào tham số Poseidon gốc để tương thích với hash gốc Merkle, bằng chứng, hợp đồng, ví hoặc commitment trạng thái cũ.

Chuyển từ Poseidon sang Poseidon2 là quá trình di chuyển giao thức, không phải chỉ là tái cấu trúc phần mềm đơn giản.

Với thiết kế mới, có thể xem xét Poseidon2 cùng Poseidon gốc và các hàm băm thân thiện với ZK khác.

Với thiết kế hiện có, khả năng tương thích và lịch sử kiểm toán có thể quan trọng hơn tốc độ thuần túy.

Giao thức crypto cần ghi rõ đang sử dụng Poseidon, Poseidon2 hay biến thể khác vì tên gọi tương tự có thể tạo đầu ra khác nhau.

Tham số Poseidon Hash

Poseidon không phải một hàm duy nhất, phổ quát, luôn tạo cùng một đầu ra trong mọi blockchain.

Đây là một họ các phiên bản hàm băm được xác định bằng tham số.

Các tham số quan trọng gồm modulus của trường nguyên tố, cấp độ bảo mật, chiều rộng trạng thái, rate, capacity, số mũ S-box, số vòng đầy đủ, số vòng từng phần, hằng số vòng và ma trận MDS.

Trang EIP-5988 liệt kê các tham số như modulus của trường nguyên tố, cấp độ bảo mật, số mũ S-box, rate đầu vào, kích thước trạng thái, số vòng đầy đủ, số vòng từng phần và cách mã hóa đầu vào.

Các dự án khác nhau có thể chọn tham số Poseidon khác nhau tùy theo trường, hệ thống bằng chứng, cấp độ bảo mật và yêu cầu hiệu năng.

Tính linh hoạt này hữu ích nhưng cũng tiềm ẩn rủi ro.

Nếu hai hệ thống cùng tuyên bố sử dụng Poseidon nhưng chọn tham số khác nhau, cùng một đầu vào có thể tạo ra hash khác nhau.

Nếu hệ thống chọn tham số yếu, các giả định bảo mật có thể không còn đúng.

Nhà phát triển nên sử dụng bộ tham số đã được rà soát kỹ và bộ vector kiểm thử, thay vì tùy tiện tự đặt tham số.

Phân tách miền trong Poseidon Hash

Phân tách miền là cách bảo đảm cùng một hàm băm không bị vô tình tái sử dụng cho hai mục đích khác nhau theo cách gây nhầm lẫn hoặc tạo rủi ro tấn công.

Ví dụ, giao thức có thể dùng Poseidon cho lá Merkle, nút nội bộ Merkle, commitment, nullifier và định danh tài khoản.

Nếu đầu vào không được phân biệt bằng thẻ, tiền tố, quy tắc số đầu vào hoặc cách mã hóa có cấu trúc, hai loại dữ liệu khác nhau có thể được băm thành cùng một định dạng.

Điều này có thể gây ra hành vi khó hiểu hoặc không an toàn.

Phân tách miền giúp bảo đảm hash dùng cho một mục đích không bị nhầm với hash dùng cho mục đích khác.

Trong hệ thống Poseidon, việc phân tách miền có thể được thực hiện bằng cách thêm thẻ miền vào trạng thái, dùng hằng số khác nhau, dùng số đầu vào khác nhau hoặc dùng định dạng đầu vào có cấu trúc.

Phương pháp cụ thể cần được quy định trong đặc tả giao thức.

Nhà phát triển không nên dựa vào chú thích không chính thức hoặc giả định ở giao diện để phân tách miền.

Khi Poseidon bảo vệ tài sản, định dạng đầu vào cần chính xác và có thể xác minh.

Các thuộc tính bảo mật của Poseidon Hash

Poseidon hướng tới cung cấp các thuộc tính tiêu chuẩn của hàm băm mật mã như khả năng chống va chạm, chống tìm tiền ảnh và chống tìm tiền ảnh thứ hai với bộ tham số được chọn.

Khả năng chống va chạm nghĩa là không thể tìm hai đầu vào khác nhau có cùng đầu ra trong thời gian tính toán khả thi.

Khả năng chống tìm tiền ảnh nghĩa là không thể tìm một đầu vào tạo ra đầu ra cho trước trong thời gian tính toán khả thi.

Khả năng chống tìm tiền ảnh thứ hai nghĩa là không thể tìm đầu vào thứ hai có cùng hash với đầu vào đã biết trong thời gian tính toán khả thi.

Tài liệu tham khảo về hàm băm của NIST mô tả đây là những thuộc tính được kỳ vọng ở các hàm băm được phê duyệt, dù bản thân Poseidon không nằm trong danh sách hàm băm đa dụng được NIST phê duyệt.

Với Poseidon, các thuộc tính này phụ thuộc vào tham số chính xác, cách triển khai đúng, phương pháp mã hóa an toàn và khả năng chống lại các cuộc tấn công đại số.

Sáng kiến phân tích mật mã Poseidon hiện mô tả Poseidon và Poseidon2 là các hàm băm dành cho tính toán có thể xác minh, đồng thời nêu bật những hoạt động nghiên cứu bảo mật đang diễn ra.

Điều này có lợi vì các thiết kế mật mã mới cần được cộng đồng kiểm tra công khai trước khi được tin dùng trong hệ thống giá trị cao.

Người dùng nên xem Poseidon là công nghệ quan trọng và được sử dụng rộng rãi, nhưng vẫn mới hơn các hàm băm truyền thống đã tồn tại hàng chục năm.

Rủi ro khi sử dụng Poseidon Hash

Rủi ro đầu tiên là lựa chọn tham số không chính xác.

Bộ tham số yếu hoặc không theo tiêu chuẩn có thể làm giảm mức độ an toàn hoặc phá vỡ khả năng tương thích với hệ thống khác.

Rủi ro thứ hai là lỗi triển khai.

Lỗi nhỏ trong hằng số vòng, phép rút gọn trường, padding, chiều rộng trạng thái hoặc phép nhân ma trận có thể tạo hash sai và bằng chứng không hợp lệ.

Rủi ro thứ ba là mã hóa mơ hồ.

Các cách đóng gói byte khác nhau thành phần tử trường có thể tạo hash khác nhau hoặc va chạm không an toàn ở cấp ứng dụng.

Rủi ro thứ tư là phân tách miền không đầy đủ.

Không nên trộn hash commitment, hash nút Merkle và hash nullifier nếu không có nhãn hoặc cấu trúc rõ ràng.

Rủi ro thứ năm là sử dụng Poseidon quá rộng ngoài môi trường dự kiến.

Poseidon phát huy tốt nhất với vai trò hàm băm thân thiện với hệ thống bằng chứng trong mạch trường hữu hạn, không phải phương án thay thế phổ quát cho mọi hàm băm truyền thống.

Rủi ro thứ sáu là mức độ trưởng thành vì Poseidon mới hơn SHA-2, SHA-3 và Keccak.

Poseidon Hash trong hợp đồng thông minh

Hợp đồng thông minh có thể tương tác với Poseidon theo nhiều cách.

Hợp đồng có thể xác minh một bằng chứng trong đó Poseidon được sử dụng bên trong mạch chạy off-chain.

Hợp đồng có thể lưu hash gốc Merkle dựa trên Poseidon và kiểm tra đầu ra bằng chứng phụ thuộc vào các hash gốc đó.

Hợp đồng có thể gọi trực tiếp cách triển khai Poseidon nếu nền tảng hỗ trợ với chi phí đủ thấp.

Trên các chain dựa trên EVM, việc tính Poseidon trực tiếp trong hợp đồng có thể tốn kém nếu không có precompile gốc hoặc hỗ trợ opcode tối ưu hóa.

Đó là lý do EIP-5988 đề xuất precompile Poseidon cho Ethereum, dù trang đề xuất hiện được đánh dấu Stagnant.

Nếu không có hàm nguyên thủy gốc, nhà phát triển thường giữ phần tính Poseidon trong mạch ZK rồi xác minh bằng chứng on-chain thay vì tính lại mọi hash on-chain.

Một số hệ thống không dùng EVM hoặc được thiết kế gốc cho ZK hỗ trợ trực tiếp tốt hơn đối với hàm băm dựa trên trường.

Nhà phát triển cần kiểm tra benchmark phí gas, chi phí bằng chứng, chi phí bộ xác minh và các giả định bảo mật trước khi quyết định chạy Poseidon ở đâu.

Kiến trúc rẻ nhất không phải lúc nào cũng là kiến trúc an toàn nhất.

Poseidon Hash trong ví và ứng dụng người dùng

Ví và ứng dụng người dùng có thể sử dụng Poseidon một cách gián tiếp dù người dùng không bao giờ nhìn thấy tên Poseidon.

Ví bảo vệ quyền riêng tư có thể dùng Poseidon để tạo commitment hoặc nullifier.

Ứng dụng danh tính ZK có thể dùng Poseidon để băm các thuộc tính riêng tư thành commitment thân thiện với hệ thống bằng chứng.

Trò chơi hoặc ứng dụng xã hội dùng bằng chứng ZK có thể sử dụng Poseidon để tạo commitment cho nước đi, điểm số, thông tin xác thực hoặc quyền truy cập riêng tư.

Người dùng có thể chỉ thấy yêu cầu giao dịch, trong khi ứng dụng tạo hash Poseidon ở hậu trường.

Điều này tạo ra thách thức về trải nghiệm người dùng vì người dùng khó kiểm tra đầu vào của hash có chính xác hay không.

Nếu có thể, ví nên hiển thị ý nghĩa giao dịch rõ ràng thay vì các phần tử trường thô.

Nhà phát triển nên tránh yêu cầu người dùng tin vào hash không được giải thích khi ký giao dịch chuyển tài sản.

Poseidon có thể bảo vệ quyền riêng tư, nhưng thiết kế ví kém vẫn có thể khiến người dùng gặp phishing hoặc phê duyệt độc hại.

Poseidon Hash và khả năng tương tác

Khả năng tương tác gặp khó khăn vì Poseidon có nhiều bộ tham số khả dĩ.

Hai hệ thống có thể đều hỗ trợ Poseidon nhưng vẫn không tương thích nếu sử dụng trường, chiều rộng trạng thái, số vòng, ma trận MDS, quy tắc padding hoặc thẻ miền khác nhau.

Điều này quan trọng với bridge, rollup, ví, light client, bộ tổng hợp bằng chứng và hệ thống danh tính liên chuỗi.

Nếu một chain xác minh hash gốc Poseidon được tạo từ chain khác, cả hai phía phải thống nhất chính xác phiên bản hàm băm.

Nếu ví tạo commitment cho một giao thức, ví phải dùng cùng cách mã hóa với bộ xác minh.

Nếu mạch bằng chứng và hợp đồng thông minh không thống nhất dù chỉ một tham số, việc xác minh có thể thất bại hoặc trở nên không an toàn.

Khả năng tương tác đòi hỏi đặc tả chính thức, bộ vector kiểm thử, thư viện đã kiểm toán và tên tham số có quản lý phiên bản.

Dự án nên tránh tuyên bố “tương thích Poseidon” mà không nêu rõ đang nói đến phiên bản Poseidon nào.

Trong crypto, độ chính xác rất quan trọng vì chỉ một bit khác biệt cũng có thể khiến bằng chứng hợp lệ trở thành không hợp lệ.

Poseidon Hash và kiểm toán

Kiểm toán hệ thống dựa trên Poseidon cần xem xét cả mật mã lẫn ứng dụng.

Kiểm toán viên cần xác minh dự án sử dụng bộ tham số Poseidon đã được biết đến và rà soát.

Kiểm toán viên cần xác nhận đầu ra triển khai khớp với bộ vector kiểm thử đáng tin cậy.

Kiểm toán viên cần xác nhận cách mã hóa đầu vào không mơ hồ và không thể gây nhầm lẫn giữa các miền.

Kiểm toán viên cần xác nhận các phần tử trường được kiểm tra phạm vi khi cần thiết.

Kiểm toán viên cần xác nhận mã off-chain và mã mạch sử dụng cùng một phiên bản hàm băm.

Kiểm toán viên cần xác nhận commitment, nullifier và nút cây Merkle sử dụng cách phân tách miền an toàn.

Kiểm toán viên cần xác nhận bản nâng cấp không âm thầm thay đổi hàm băm và làm hỏng trạng thái cũ.

Với hệ thống giá trị cao, việc đánh giá mật mã độc lập rất quan trọng vì rà soát mã thông thường có thể không phát hiện được lỗi sử dụng hàm băm tinh vi.

Cách triển khai Poseidon chính xác chỉ an toàn khi được sử dụng đúng trong toàn bộ giao thức.

Lợi ích của Poseidon Hash

Lợi ích đầu tiên của Poseidon Hash là giảm chi phí mạch cho nhiều khối lượng công việc băm ZK.

Lợi ích thứ hai là tương thích tự nhiên với phép toán trường hữu hạn được nhiều hệ thống bằng chứng sử dụng.

Lợi ích thứ ba là phù hợp với cây Merkle, commitment, nullifier và hệ thống trạng thái riêng tư.

Lợi ích thứ tư là linh hoạt trên nhiều trường và hệ thống bằng chứng khác nhau.

Lợi ích thứ năm là giúp các ứng dụng crypto bảo vệ quyền riêng tư trở nên thiết thực hơn.

Lợi ích thứ sáu là giảm khối lượng xử lý của bên tạo bằng chứng khi các phép băm chiếm phần lớn trong mạch.

Lợi ích thứ bảy là hỗ trợ thiết kế ZK rollup và bằng chứng hợp lệ hiệu quả hơn.

Lợi ích thứ tám là giúp commitment đầu vào riêng tư dễ dàng hơn mà không cần tiết lộ chúng on-chain.

Lợi ích thứ chín là cho phép nhà phát triển xây dựng cấu trúc dữ liệu thân thiện với bằng chứng, vốn sẽ tốn kém hơn nếu dùng hàm băm truyền thống.

Lợi ích thứ mười là Poseidon đã nhận được sự quan tâm đáng kể từ giới nghiên cứu, hoạt động benchmark và công việc triển khai trong hệ sinh thái ZK.

Hạn chế của Poseidon Hash

Hạn chế đầu tiên là Poseidon mới hơn các hàm băm truyền thống như SHA-256, SHA-3 và Keccak.

Hạn chế thứ hai là Poseidon nhạy với tham số, nên hai cách triển khai có thể không khớp nhau.

Hạn chế thứ ba là Poseidon không phải phương án thay thế đa dụng cho SHA-2 hoặc SHA-3 được NIST phê duyệt.

Hạn chế thứ tư là cách mã hóa sai có thể tạo rủi ro ở cấp ứng dụng ngay cả khi thiết kế hàm băm vững chắc.

Hạn chế thứ năm là hỗ trợ trong hợp đồng thông minh có thể tốn kém hoặc không khả dụng nếu không có precompile gốc.

Hạn chế thứ sáu là khả năng tương tác trong hệ sinh thái có thể khó khăn vì các hệ thống khác nhau có thể chọn trường và tham số khác nhau.

Hạn chế thứ bảy là hoạt động phân tích mật mã vẫn đang diễn ra, nên các nhóm cần theo dõi nghiên cứu mới và cảnh báo bảo mật.

Hạn chế thứ tám là mức tăng hiệu quả của Poseidon phụ thuộc vào hệ thống bằng chứng và thiết kế mạch.

Hạn chế thứ chín là nhà phát triển thiếu chuyên môn có thể dùng sai Poseidon khi sao chép hằng số, thay đổi số đầu vào hoặc bỏ qua vector kiểm thử.

Hạn chế thứ mười là Poseidon không bảo vệ người dùng khỏi phishing, hợp đồng độc hại, ví bị xâm phạm hoặc tokenomics không tốt.

Thực tiễn tốt cho nhà phát triển

Sử dụng thư viện Poseidon đã được kiểm toán thay vì tự viết cách triển khai mới từ đầu.

Chọn bộ tham số đã được rà soát kỹ, phù hợp với trường và hệ thống bằng chứng mà giao thức sử dụng.

Công bố chính xác tham số, thẻ miền, số đầu vào, quy tắc padding và bộ vector kiểm thử.

Phân tách miền cho các mục đích khác nhau như lá, nút nội bộ, commitment, nullifier và hash thông điệp.

Đảm bảo mã off-chain, mã mạch và logic xác minh on-chain sử dụng cùng một phiên bản Poseidon.

Kiểm tra phạm vi đầu vào khi mạch yêu cầu phần tử trường được chuyển đổi từ dữ liệu byte.

Benchmark Poseidon với các phương án khác trong mạch thực tế thay vì chỉ dựa vào tuyên bố chung.

Lập kế hoạch di chuyển cẩn thận vì thay đổi hàm băm có thể làm mất hiệu lực hash gốc Merkle và commitment cũ.

Theo dõi cập nhật phân tích mật mã và đánh giá bảo mật, đặc biệt với giao thức giá trị cao.

Ghi rõ khi hệ thống sử dụng Poseidon, Poseidon2 hoặc một hàm băm thân thiện với ZK khác.

Thực tiễn tốt cho người dùng

Hãy hiểu rằng Poseidon thường là công cụ mật mã chạy ở hậu trường, không phải thứ người dùng tương tác trực tiếp.

Sử dụng ứng dụng có kiểm toán rõ ràng, tài liệu công khai và quy trình ví uy tín.

Đừng cho rằng dự án an toàn chỉ vì tuyên bố sử dụng Poseidon.

Kiểm tra xem dự án có giải thích cách bảo vệ dữ liệu riêng tư, commitment, nullifier và hash gốc Merkle hay không.

Thận trọng với ứng dụng không rõ nguồn gốc yêu cầu ký hoặc phê duyệt nhưng che giấu nội dung giao dịch.

Hãy nhớ rằng hàm băm mạnh không thể khắc phục hợp đồng thông minh yếu hoặc quy trình lưu ký không an toàn.

Không sử dụng lại bí mật yếu trong hệ thống commitment vì kẻ tấn công có thể đoán các đầu vào có entropy thấp.

Sử dụng salt ngẫu nhiên khi thiết kế ứng dụng yêu cầu commitment có salt.

Làm theo hướng dẫn chính thức của ví và giao thức khi nâng cấp giữa các phiên bản hàm băm hoặc hệ thống bằng chứng.

Xem hệ thống bảo vệ quyền riêng tư là hệ thống trọng yếu về bảo mật và tránh dùng công cụ thử nghiệm cho tài sản giá trị cao nếu chưa hiểu rõ rủi ro.

Những hiểu lầm thường gặp về Poseidon Hash

Một hiểu lầm là Poseidon là phiên bản SHA-256 nhanh hơn trong mọi trường hợp.

Poseidon chủ yếu nhanh hơn khi xét đến ràng buộc mạch ZK, không nhất thiết là hàm băm CPU đa dụng nhanh hơn cho mọi ứng dụng.

Một hiểu lầm khác là mọi cách triển khai Poseidon đều tương thích.

Trường, hằng số, chiều rộng trạng thái, số vòng, cách mã hóa và thẻ miền khác nhau có thể tạo ra đầu ra khác nhau.

Một hiểu lầm khác là Poseidon tự động khiến hệ thống bảo vệ quyền riêng tư.

Poseidon có thể hỗ trợ công cụ bảo vệ quyền riêng tư, nhưng quyền riêng tư còn phụ thuộc vào thiết kế mạch, cách xử lý metadata, hành vi ví, tập hợp ẩn danh và logic hợp đồng thông minh.

Một hiểu lầm khác là Poseidon không có rủi ro vì nhiều hệ thống ZK sử dụng nó.

Poseidon hữu ích và được nghiên cứu rộng rãi nhưng vẫn mới hơn các hàm băm truyền thống, nên cần sử dụng với tham số và kiểm toán cẩn thận.

Một hiểu lầm khác là người dùng cần tự so sánh hash Poseidon để xác minh an toàn.

Đa số người dùng cần ví được thiết kế tốt và giao thức đã kiểm toán hơn là tự kiểm tra hash thô.

Câu hỏi thường gặp

Poseidon Hash nghĩa là gì?

Poseidon Hash là hàm băm mật mã được thiết kế để hoạt động hiệu quả trong hệ thống bằng chứng zero-knowledge và mạch số học trường hữu hạn.

Vì sao Poseidon được gọi là thân thiện với ZK?

Poseidon được gọi là thân thiện với ZK vì sử dụng các phép toán có chi phí biểu diễn trong nhiều mạch bằng chứng zero-knowledge thấp hơn các hàm băm truyền thống phụ thuộc nhiều vào phép toán theo bit.

Poseidon Hash có giống SHA-256 không?

Không. SHA-256 là hàm băm đa dụng truyền thống, còn Poseidon chuyên biệt cho việc băm hiệu quả bên trong hệ thống bằng chứng ZK.

Poseidon Hash có được dùng cho cây Merkle không?

Có. Poseidon thường được dùng cho cây Merkle trong hệ thống ZK vì bằng chứng tư cách thành viên Merkle thường cần nhiều phép băm lặp lại trong mạch.

Poseidon Hash có được dùng cho commitment không?

Có. Poseidon có thể được dùng để tạo commitment cho giá trị riêng tư, giúp người dùng chứng minh mình biết đầu vào ẩn mà không tiết lộ chúng.

Poseidon Hash có được NIST tiêu chuẩn hóa không?

Không. Các tiêu chuẩn hàm băm đa dụng được NIST phê duyệt gồm họ SHA-2 và SHA-3, còn Poseidon là hàm băm chuyên biệt, thân thiện với ZK chứ không phải phương án thay thế đa dụng được NIST phê duyệt.

Poseidon2 là gì?

Poseidon2 là phiên bản Poseidon được tối ưu hóa để nhanh hơn, hướng tới các trường hợp sử dụng hàm băm thân thiện với ZK tương tự.

Poseidon Hash có thể được dùng trong hợp đồng thông minh không?

Có, nhưng việc tính trực tiếp trong hợp đồng thông minh có thể tốn kém, trừ khi nền tảng hỗ trợ tối ưu như precompile hoặc hàm gốc.

Vì sao Poseidon có nhiều bộ tham số khác nhau?

Poseidon là một họ các phiên bản hàm băm. Các tham số như modulus của trường, kích thước trạng thái, số mũ S-box, số vòng và hằng số phải phù hợp với hệ thống bằng chứng mục tiêu và cấp độ bảo mật.

Hai hệ thống Poseidon có thể tạo hash khác nhau không?

Có. Hai hệ thống có thể tạo hash khác nhau từ cùng đầu vào nếu sử dụng tham số, trường, cách mã hóa, quy tắc padding hoặc thẻ miền khác nhau.

Poseidon Hash có an toàn không?

Poseidon được nghiên cứu rộng rãi và sử dụng trong hệ thống ZK, nhưng mức độ an toàn phụ thuộc vào tham số chính xác, cách triển khai đã kiểm toán, cách mã hóa an toàn và hoạt động phân tích mật mã liên tục.

Chỉ riêng Poseidon Hash có giúp ứng dụng crypto bảo vệ quyền riêng tư không?

Không. Poseidon có thể hỗ trợ thiết kế bảo vệ quyền riêng tư, nhưng điều này còn đòi hỏi thiết kế mạch chính xác, hành vi ví an toàn, tập hợp ẩn danh phù hợp và kỹ thuật giao thức cẩn trọng.

Kết luận

Poseidon Hash là hàm băm mật mã được xây dựng cho phép toán trường hữu hạn mà các hệ thống bằng chứng zero-knowledge sử dụng.

Poseidon quan trọng trong crypto vì ứng dụng ZK thường cần băm commitment, nullifier, đường dẫn Merkle, đầu vào riêng tư và dữ liệu trạng thái bên trong mạch bằng chứng.

Trong nhiều môi trường mạch, Poseidon có thể khiến các phép toán này rẻ hơn nhiều so với hàm băm truyền thống thiên về phép toán theo bit.

Hiệu quả này hỗ trợ giao dịch bảo vệ quyền riêng tư, ZK rollup, hệ thống danh tính, hợp đồng thông minh thân thiện với bằng chứng và tính toán có thể xác minh.

Poseidon không phải phương án thay thế phổ quát cho SHA-256, Keccak hoặc SHA-3 vì các hàm băm truyền thống này vẫn có độ trưởng thành cao và giữ vai trò quan trọng trong mật mã đa dụng.

Ưu điểm chính của Poseidon thể hiện rõ khi cần biểu diễn hoạt động băm trong hệ thống bằng chứng trên trường hữu hạn.

Những thách thức thực tiễn lớn nhất gồm lựa chọn tham số, tính chính xác của triển khai, phân tách miền, quy tắc mã hóa, hỗ trợ hợp đồng thông minh và khả năng tương tác trong hệ sinh thái.

Nhà phát triển nên dùng thư viện đã kiểm toán, công bố vector kiểm thử, ghi rõ tham số và theo dõi nghiên cứu mật mã hiện tại.

Người dùng nên hiểu Poseidon thường là thành phần bảo mật ẩn, đồng thời đánh giá ứng dụng dựa trên chất lượng kiểm toán tổng thể, độ an toàn của ví và thiết kế giao thức.

Cách hiểu đơn giản nhất về Poseidon Hash là đây là hàm băm thân thiện với hệ thống bằng chứng, được xây dựng để giúp hệ thống crypto zero-knowledge nhanh hơn và thiết thực hơn mà không tiết lộ dữ liệu riêng tư.
BTC ETFs See $679M in Outflows
BTC ETFs See $679M in OutflowsBTC ETFs See $679M in Outflows
Citi sees BTC at $113K. What do institutions see?