Chủ đề thịnh hành
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Hai lỗ hổng đầu tiên được biết đến chống lại các mạch ZK trực tiếp vừa xảy ra, và chúng không phải là những lỗi thiếu tinh vi.
Chúng là các trình xác minh Groth16 được triển khai mà không hoàn thành nghi thức thiết lập đáng tin cậy. Một cái đã được cứu bởi hacker mũ trắng với giá khoảng ~$1.5 triệu, cái còn lại đã bị rút sạch 5 ETH.
🧵
Cả hai giao thức đều sử dụng Circom + snarkjs, là ngăn xếp phổ biến nhất cho các triển khai Groth16.
Lỗi ở đâu? Họ đã bỏ qua Giai đoạn 2 của thiết lập tin cậy: bước đóng góp cụ thể cho mạch.
Nếu không có nó, các tham số γ và δ của khóa xác minh đều được đặt thành cùng một giá trị: các gens G2.
Tại sao γ = δ lại phá hỏng mọi thứ?
Các kiểm tra xác minh Groth16:
e(-A, B) · e(α, β) · e(vk_x, γ) · e(C, δ) = 1
Khi γ = δ, một kẻ tấn công có thể đặt C = -vk_x để hủy bỏ cả hai hạng tử, sau đó đặt A = α, B = β để hủy bỏ phần còn lại. Phương trình trở thành 1 · 1 = 1. Không cần nhân chứng.
Giao thức Foom (~1,4 triệu USD) là một dApp xổ số trên Base và Ethereum. Một cuộc giải cứu của whitehat bởi @duha_real và một whitehat độc lập khác đã rút hết các hợp đồng trước khi một tác nhân độc hại có thể làm điều đó, lặp lại các chứng cứ giả mạo để trích xuất 99,97–99,99% token.
Giao thức Veil (~$5K) là một nhánh của Tornado Cash trên Base. Một kẻ tấn công đã rút toàn bộ quỹ trong một giao dịch, 29 lần rút tiền giả sử dụng các nullifier giả như 0xdead0000, rút toàn bộ số dư 2.9 ETH của quỹ.
Đây là snarkjs hoạt động như thiết kế. Khi bạn chạy groth16 setup, nó khởi tạo γ và δ đến bộ sinh G2 như một chỗ giữ. Bạn được mong đợi chạy zkey contribute để ngẫu nhiên hóa δ. Bỏ qua bước đó, và trình xác minh của bạn sẽ chấp nhận bất kỳ chứng cứ nào.
Điều đáng sợ là: đây không phải là một lỗi mã hóa sâu sắc hay một lỗi mạch tinh vi. Đó là một sai lầm trong việc triển khai: thiếu một lệnh CLI. Và nó đã tồn tại trong môi trường sản xuất với những quỹ thực sự có nguy cơ.
những điểm rút ra:
- Luôn xem xét các kịch bản triển khai, không chỉ mã mạch
- Kiểm tra các khóa xác minh của bạn: nếu vk_gamma_2 == vk_delta_2, các chứng minh của bạn có thể bị làm giả
- Chúng tôi đã làm việc với @DedaubSecurity để quét các chuỗi EVM cho các hợp đồng bị ảnh hưởng khác, không tìm thấy hợp đồng có giá trị cao, nhưng vẫn có một số hợp đồng tồn tại
4,14K
Hàng đầu
Thứ hạng
Yêu thích
