Để xây dựng dự án mà tôi đã đề cập trong chủ đề này, tôi bắt đầu tìm hiểu về zk-SNARKs. Một trong những điều tôi dường như hiểu được là phương thức chữ ký ECDSA và hash SHA-3 (trước đây được gọi là Keccak) không hoạt động tốt với zk-SNARKs vì chúng dẫn đến các mạch rất lớn. Theo hiểu biết của tôi, EdDSA với một số đường cong nhất định và hash Poseidon lại hoạt động tốt hơn trong khía cạnh này, với các mạch có thể nhỏ hơn hàng trăm lần.
Việc hash và xác minh chữ ký là các use case rất phổ biến trong các hợp đồng thông minh Solidity, nhưng Solidity sử dụng SHA-3 để hash và theo như tôi biết, tất cả các ví Ethereum đều dựa trên ECDSA. Điều đó có nghĩa là tất cả các hợp đồng thông minh Solidity đều khó chứng minh trong zk-SNARKs không? Nếu vậy, Polygon zkEVM đã giải quyết vấn đề đó như thế nào? Nó sử dụng sơ đồ zk-SNARK nào (Groth16 / PLONK / PLONKish / Halo2 / khác) ?




