Cointime

Download App
iOS & Android

Sê-ri ZKP: Lỗ hổng đầu vào bút danh trong Hợp đồng xác minh của Circcom đã được sao chép

Tổng quan

Trước đó, một lỗ hổng chi tiêu gấp đôi trong hợp đồng xác minh bằng chứng không có kiến thức trên Semaphore đã được phát hiện bởi nhà phát triển người Nga, Poma. Vì tò mò, ý định ban đầu của tôi là sao chép PoC của lỗ hổng. Tuy nhiên, do mã lỗ hổng đã cũ và dự án tương đối phức tạp, tôi đã chọn tạo một PoC đơn giản để tái tạo lỗ hổng.

Giới thiệu

Nền tảng của công nghệ Zero Knowledge Proof (ZKP) nằm trong một thuật toán được gọi là “hệ thống bằng chứng”. Bằng cách thực hiện một loạt các tính toán trên tin nhắn, thuật toán tạo ra bằng chứng để chứng minh tính xác thực của tin nhắn. Người nhận có thể xác nhận tính xác thực của tin nhắn bằng cách chỉ xác minh bằng chứng mà không yêu cầu thêm thông tin.

Có nhiều sơ đồ triển khai khác nhau cho công nghệ ZKP mà chúng ta đã thảo luận trong bài viết trước “Tính năng kỹ thuật của các sơ đồ triển khai chính của ZKP”. Trong thử nghiệm này, nền tảng Circcom được sử dụng, sử dụng Groth16 và PlonK làm hệ thống bằng chứng. Trong quá trình phát triển, các nhà phát triển có thể chọn một trong hai hệ thống. Khung phát triển tự động tạo các tham số bằng chứng và hợp đồng xác minh mà không cần sửa đổi mạch.

Nói một cách đơn giản hơn, Circcom tạo dữ liệu nhân chứng và dữ liệu chứng thực ở phía khách hàng và gửi chúng vào hợp đồng. Hợp đồng verifier.sol xác minh dữ liệu đã gửi để xác nhận xem bằng chứng có tuân thủ các quy tắc đã chỉ định hay không. Cách tiếp cận này cho phép xác minh nhanh chóng, hiệu quả và an toàn đồng thời bảo vệ nội dung và quyền riêng tư của thư.

Phân tích lỗ hổng

1. Không có nhiều điều để thảo luận, vì vậy hãy chuyển thẳng sang phần mã có vấn đề. Vui lòng tham khảo chức năng “verifyHash” trong hình bên dưới. Mã được đặt trong hộp màu đỏ cho biết liệu dữ liệu nhân chứng cụ thể đã được sử dụng hay chưa. Phương pháp này thường được sử dụng để ngăn chặn chi tiêu gấp đôi. Tuy nhiên, lỗ hổng đã phát sinh trong dữ liệu nhân chứng “hash1”. Thông thường, một bộ dữ liệu bằng chứng cụ thể chỉ nên tương ứng với một bộ giá trị “hash1” cho mục đích xác minh.

2. Hàm “xác minh” trong hợp đồng “verifier.sol” thực hiện xác minh tính toán đường cong elip trên giá trị đầu vào thông qua hàm “scalar_mul()”. Hàm này tiến hành tính toán trên các đường cong elip sử dụng các tham số đầu vào và so khớp giá trị kết quả với giá trị được chỉ định trong bằng chứng được cung cấp. Do đó, chức năng xác nhận xem giá trị đầu vào có hợp lệ hay không.

3. Trong hợp đồng thông minh Solidity, việc mã hóa Fq bắt buộc phải sử dụng loại uint256. Tuy nhiên, vì giá trị tối đa của uint256 lớn hơn giá trị q, nên một số số nguyên riêng biệt có thể tương ứng với cùng một giá trị Fq sau phép toán modulo. Ví dụ: “s” và “s+q” chỉ cùng một điểm, cụ thể là điểm “sth”. Tương tự, “s+2q”, v.v. cũng là bí danh của điểm “s”. Hiện tượng này được gọi là "Bí danh đầu vào", theo đó các số nguyên này đóng vai trò là bút danh của nhau.

Giá trị “q” được đề cập ở đây liên quan đến thứ tự của nhóm tuần hoàn, biểu thị số lượng giá trị trong cùng một Fq có thể được nhập với nhiều số nguyên lớn. Về bản chất, ngay cả khi giá trị q được thêm vào hàm băm, nó vẫn có thể đáp ứng tiêu chí xác minh. Trong phạm vi của loại uint256, tối đa uint256_max/q số nguyên riêng biệt có thể biểu thị cùng một điểm. Điều này có nghĩa là một bộ bằng chứng có thể có tối đa 5 giá trị hash1 khớp và có thể vượt qua quá trình xác minh của hợp đồng.

Lỗ hổng tái phát

1. Phát triển một mạch cơ bản để nhập hai bộ dữ liệu và tạo dữ liệu nhân chứng, tức là "hash1", được sử dụng trong hợp đồng.

2. Biên dịch mạch để tạo “circuit_final.zkey”, “circuit.wasm” và “verifier.sol”. Sau đó, tạo một tập hợp các bằng chứng, hàm băm tiêu chuẩn và hàm băm bị hỏng.

3. Sau đó, triển khai hợp đồng và sử dụng “checkHash” được tạo trước đó để tiến hành quy trình xác minh. Quá trình xác minh thành công.

4. Tiếp theo, áp dụng dữ liệu nhân chứng giống hệt nhau và “attackHash” đã tạo trước đó. Phát hiện ra thì xác minh cũng thành công. Điều này chứng tỏ rằng một bộ bằng chứng có thể có một số giá trị băm phù hợp đáp ứng các tiêu chí xác minh của hợp đồng. Do đó, lỗ hổng bút danh đầu vào của hợp đồng xác minh Circo đã được sao chép một cách hiệu quả.

Giải pháp cho các lỗ hổng

Lỗ hổng phát sinh từ một bộ bằng chứng có thể có tối đa 5 giá trị băm phù hợp và đáp ứng các yêu cầu xác minh của hợp đồng. Do đó, cách sửa lỗi rất đơn giản: hạn chế tất cả các giá trị băm đầu vào ở một giá trị nhỏ hơn “q”.

Bản tóm tắt

Lỗ hổng bút danh đầu vào là một lỗ hổng thường xuyên gặp phải trong quá trình triển khai mật mã và bằng chứng không kiến thức. Nguyên nhân cơ bản của nó nằm ở chỗ giá trị tương đương với phần dư trong trường hữu hạn. Do đó, các nhà phát triển phải tập trung vào thứ tự của nhóm xác minh khi tạo mật mã.

Nhận tin tức mới nhất tại đây: Kênh Cointime — https://t.me/cointime_en

Các bình luận

Tất cả bình luận

Recommended for you

  • Tập đoàn EXOR: Từ chối đề xuất của Tether về việc mua cổ phần Juventus

    Tập đoàn EXOR: Từ chối lời đề nghị mua cổ phần Juventus của Tether, tái khẳng định ý định không bán. Trước đó, có thông tin cho rằng gã khổng lồ tiền điện tử Tether rất nghiêm túc trong việc mua lại Juventus và sẵn sàng đưa ra lời đề nghị mới vượt quá 2 tỷ euro.

  • Tether vừa đưa ra lời đề nghị mới để mua lại Juventus với tổng giá trị vượt quá 2 tỷ euro.

    Ông lớn trong lĩnh vực tiền điện tử Tether đang rất nghiêm túc với kế hoạch mua lại câu lạc bộ bóng đá Juventus và đang chuẩn bị một lời đề nghị mới trị giá hơn 2 tỷ euro. Hôm qua, Tether đã gửi đề nghị tới hội đồng quản trị Exor để mua lại 65,4% cổ phần của Juventus do công ty cổ phần gia đình Agnelli nắm giữ. Thông tin này được Giám đốc điều hành Paulo Aldoino công bố trên mạng xã hội, nhưng đây mới chỉ là bước khởi đầu của các cuộc đàm phán.

  • Quỹ ETF Ethereum giao ngay tại Mỹ đã ghi nhận dòng vốn ròng chảy ra ngoài là 19,4 triệu đô la vào ngày hôm qua.

    Theo dõi số liệu từ TraderT, quỹ ETF Ethereum giao ngay tại Mỹ đã ghi nhận dòng vốn ròng chảy ra ngoài là 19,4 triệu đô la vào ngày hôm qua.

  • Công ty China Asset Management (Hồng Kông) ra mắt quỹ thị trường tiền tệ mã hóa lớn nhất châu Á trên nền tảng Solana.

    Vào ngày 12 tháng 12, Katie He, Trưởng bộ phận Sản phẩm và Chiến lược tại ChinaAMC HK, đã thông báo tại hội nghị Solana Breakpoint rằng họ sẽ ra mắt quỹ thị trường tiền tệ được mã hóa đầu tiên và lớn nhất châu Á, được định giá bằng Đô la Hồng Kông (HKD), Đô la Mỹ (USD) và Nhân dân tệ Trung Quốc (RMB). Điều này mã hóa các công cụ thị trường tiền tệ truyền thống, cung cấp cho các nhà đầu tư quyền truy cập an toàn, trên chuỗi khối vào lợi nhuận ổn định, tính minh bạch hoàn toàn và thanh toán theo thời gian thực. Sau nhiều tháng hợp tác với các cơ quan quản lý và các đối tác như OSL, sự đổi mới này sẽ mở rộng từ Hồng Kông sang khu vực rộng lớn hơn và được triển khai trực tiếp trên blockchain Solana.

  • Ngân hàng Hoàng gia Canada đã mua 77.700 cổ phiếu Bitcoin của Mỹ.

    Theo các nguồn tin thị trường, Ngân hàng Hoàng gia Canada, với giá trị ước tính 1 nghìn tỷ đô la, đã mua 77.700 cổ phiếu của American Bitcoin (ABTC), trị giá khoảng 150.000 đô la. Công ty khai thác Bitcoin này được hậu thuẫn bởi Eric Trump, một thành viên của gia đình Trump.

  • Ngân hàng Nhân dân Trung Quốc: Tiếp tục thực hiện chính sách tiền tệ nới lỏng vừa phải và thúc đẩy quốc tế hóa đồng Nhân dân tệ.

    Ban Chấp hành Đảng ủy Ngân hàng Nhân dân Trung Quốc đã tổ chức một cuộc họp. Điểm ba của biên bản cuộc họp nêu rõ: Tiếp tục thực hiện chính sách tiền tệ nới lỏng vừa phải và đẩy nhanh cải cách cơ cấu phía cung tài chính. Thúc đẩy tăng trưởng kinh tế ổn định và sự phục hồi giá cả hợp lý sẽ là những cân nhắc quan trọng trong chính sách tiền tệ. Các công cụ chính sách tiền tệ khác nhau, như giảm tỷ lệ dự trữ bắt buộc và giảm lãi suất, sẽ được sử dụng linh hoạt và hiệu quả. Cường độ, tốc độ và thời điểm thực hiện chính sách sẽ được quản lý cẩn thận để duy trì thanh khoản dồi dào, thúc đẩy chi phí tài chính xã hội tổng thể thấp và tăng cường hỗ trợ tài chính cho nền kinh tế thực. Cơ chế truyền dẫn chính sách tiền tệ sẽ được làm trơn tru, việc sử dụng các công cụ chính sách tiền tệ cơ cấu sẽ được tối ưu hóa và sự phối hợp với chính sách tài khóa sẽ được tăng cường để khuyến khích và hướng dẫn các tổ chức tài chính tăng cường hỗ trợ cho các lĩnh vực trọng điểm như mở rộng nhu cầu nội địa, đổi mới công nghệ và các doanh nghiệp vừa và nhỏ (SMEs). Sự ổn định cơ bản của tỷ giá hối đoái Nhân dân tệ ở mức hợp lý và cân bằng sẽ được duy trì. Điểm năm của biên bản cuộc họp nêu rõ: Thúc đẩy ổn định việc mở cửa tài chính ở cấp cao và bảo vệ an ninh tài chính quốc gia của Trung Quốc. Triển khai các sáng kiến ​​quản trị toàn cầu và tích cực tham gia, thúc đẩy cải cách và hoàn thiện quản trị tài chính toàn cầu. Tiến hành ngoại giao tài chính thực dụng và hợp tác tiền tệ và tài chính đa phương và song phương. Thúc đẩy quốc tế hóa đồng Nhân dân tệ. Tiếp tục xây dựng và phát triển hệ thống thanh toán xuyên biên giới Nhân dân tệ đa kênh, phạm vi phủ sóng rộng. Phát triển ổn định đồng Nhân dân tệ kỹ thuật số.

  • Ngân hàng Trung ương Nhật Bản được cho là đang lên kế hoạch tăng lãi suất thêm nữa; một số quan chức tin rằng lãi suất trung lập sẽ cao hơn 1%.

    Theo các nguồn tin thân cận, các quan chức Ngân hàng Nhật Bản (BOJ) tin rằng lãi suất có khả năng tăng lên trên 0,75% trước khi kết thúc chu kỳ tăng lãi suất hiện tại, cho thấy có thể sẽ có thêm các đợt tăng lãi suất sau đợt tăng vào tuần tới. Các nguồn tin này cho biết các quan chức tin rằng ngay cả ở mức 0,75%, BOJ vẫn chưa đạt đến mức lãi suất trung lập. Một số quan chức thậm chí còn cho rằng 1% là dưới mức lãi suất trung lập. Các nguồn tin cho biết ngay cả khi BOJ cập nhật ước tính lãi suất trung lập dựa trên dữ liệu mới nhất, hiện tại họ cũng không kỳ vọng phạm vi này sẽ thu hẹp đáng kể. Ước tính hiện tại của BOJ về phạm vi lãi suất trung lập danh nghĩa là khoảng 1% đến 2,5%. Các nguồn tin cũng cho biết các quan chức BOJ tin rằng giới hạn trên và dưới của phạm vi này có thể chứa sai sót. (Jinshi)

  • Nexus ra mắt "Tuần lễ Quản lý Tài sản Tiên phong Node Light", tạo ra một kênh độc quyền dành cho người dùng node.

    Vào ngày 12 tháng 12, Nexus đã thông báo về sự kiện kéo dài năm ngày sắp tới mang tên "Tuần lễ Quản lý Tài sản Tiên phong Node Light", tập trung vào khái niệm cốt lõi "Đặc quyền Tài chính Định danh Node", cung cấp cho các thành viên tham gia hệ sinh thái cốt lõi một chu kỳ quản lý tài sản độc quyền, tách biệt với phần còn lại của nền tảng. Sự kiện này dành riêng cho người dùng node muốn đăng ký các gói quản lý tài sản độc quyền, đồng thời tạo tiền đề cho sự mong đợi của thị trường đối với việc ra mắt dịch vụ quản lý tài sản toàn nền tảng và NexSwap sau này.

  • Chủ tịch SEC Hoa Kỳ: Các thành viên tham gia DTC có thể chuyển chứng khoán được mã hóa sang ví đã đăng ký của các thành viên khác.

    Paul Atkins, Chủ tịch Ủy ban Chứng khoán và Giao dịch Hoa Kỳ (SEC), đã tuyên bố trong một bài báo được đăng tải trên nền tảng X rằng thị trường tài chính Hoa Kỳ sắp chuyển đổi sang công nghệ chuỗi khối (on-chain) và sẽ ưu tiên đổi mới cũng như tích cực áp dụng các công nghệ mới. SEC đã gửi thư cho Tập đoàn Lưu ký và Thanh toán bù trừ Hoa Kỳ (DTC) cho biết sẽ không có hành động nào được thực hiện. Thị trường chuỗi khối sẽ mang lại cho nhà đầu tư khả năng dự đoán, tính minh bạch và hiệu quả cao hơn. Hiện tại, các thành viên DTC có thể trực tiếp chuyển các chứng khoán được mã hóa đến ví đã đăng ký của các thành viên khác, và các giao dịch này sẽ được DTC ghi nhận và theo dõi.

  • Tether dự định huy động tới 20 tỷ đô la thông qua phát hành cổ phiếu.

    Theo Bloomberg, Tether dự định huy động tới 20 tỷ đô la thông qua việc phát hành cổ phiếu và sẽ xem xét việc mã hóa cổ phiếu thành token sau khi hoàn tất giao dịch. Các nguồn tin thân cận tiết lộ rằng các lãnh đạo của Tether đang xem xét nhiều phương án khác nhau, bao gồm mua lại cổ phiếu và lưu trữ cổ phiếu của công ty dưới dạng kỹ thuật số trên blockchain sau khi giao dịch hoàn tất.