Kiểm tra các lỗ hổng trong giao thức Zerocoin

2022-02-21

Ý nghĩa của các lỗ hổng Zerocoin năm 2019 là gì?

Binance Research (Etienne)

 

  • Giao thức Zerocoin là một trong những nỗ lực đầu tiên nhằm cung cấp tính ẩn danh mạnh mẽ cho Bitcoin. Mặc dù không được triển khai trong giao thức Bitcoin, nhưng nó đã được triển khai như một loại tiền mã hoá độc lập vào năm 2015: ZCoin.

  • Giải quyết các vấn đề hiện có như truy xuất nguồn gốc giao dịch, giao thức Zerocoin hóa ra lại cực kỳ phổ biến và cũng được triển khai trên nhiều đồng tiền bảo mật (privacy coin) khác như PIVX, SmartCash, Zoin, Veil, v.v.

  • Tuy nhiên, một số sai sót trong giao thức đã dẫn đến tổn thất lớn và sự cố đến với các loại tiền mã hoá khác nhau đã được triển trên khai giao thức Zerocoin.

  • Kể từ đó, hầu hết trong số các loại tiền trên đã tách ra khỏi giao thức Zerocoin để áp dụng các giao thức mật mã thay thế và các giải pháp bảo mật khác. Trong số đó, các lựa chọn thay thế được sử dụng nhiều nhất là RingCT, sử dụng địa chỉ tàng hình, Super Sonic và Sigma. Các giao thức này bổ sung cho các giao thức bảo mật hiện có như zk-SNARKS (ví dụ: ZCash) và MimbleWimble (ví dụ: Grin).

  • Không thể phủ nhận, giao thức Zerocoin là một đóng góp đột phá cho ngành công nghiệp tiền mã hoá nói chung. Đây là một trong những giải pháp đầu tiên cung cấp các tính năng ẩn danh cho các blockchain dựa trên UTXO và mở đường cho sự phát triển của tất cả các tính năng bảo mật trên các giải pháp blockchain.

Trong 7 năm hoạt động, Zerocoin đã thể hiện một lịch sử đầy biến động, với một số lỗi và sai sót bảo mật.

Báo cáo này đưa ra một số vấn đề quan trọng nhất, tập trung nhiều hơn vào các sự cố  và hậu quả của năm 2019, từ quan điểm của các dự án khác nhau.

1. Tổng quan về Zerocoin và cách triển khai

1.1 Mô tả giao thức Zerocoin

Giao thức Zerocoin cho phép các giao dịch được ẩn danh mà không cần thông qua bất kỳ bên thứ ba đáng tin cậy nào (ví dụm như máy trộn Bitcoin). Thay vào đó, quá trình trộn diễn ra ở cấp độ giao thức.

Vào năm 2013, giao thức này được phát triển bởi nhà mật mã Matthew D. Green và các sinh viên của ông tại Viện Bảo Mật Thông Tin Johns Hopkins.

Cách Zerocoin hoạt động tương tự như một pool trộn, với sự khác biệt đáng chú ý là người dùng không phải dựa vào bất kỳ bên thứ ba nào. Tumbler được triển khai trực tiếp ở cấp giao thức.

Hệ thống này dựa trên hai token: basecoin (ví dụ: Bitcoin) và zerocoin. Coin được đúc bằng cách đốt các coin đã sử dụng hết và sau đó đổi lấy coin mới mà không có lịch sử giao dịch. Do quy trình mua lại hay khai thác này, người dùng ban đầu không thể truy xuất được lịch sử của basecoin.

Ví dụ: Alice muốn gửi cho Bob 1 BTC. Khi sử dụng giao thức zerocoin, Alice sẽ đúc một zerocoin (về cơ bản đây là một proof of possession), và gửi zerocoin cho Bob. Trong khi đó, 1 BTC được chuyển vào kho dự trữ token không thể chi tiêu được. Bất cứ khi nào Bob muốn chi tiêu một phần 1 BTC của mình, anh ta có thể sử dụng zerocoin của mình như một zero-knowledge proof (ZKP).

Biểu đồ 1 - Cơ chế Zerocoin từ góc độ giao dịch

Nguồn: Zerocoin Project, Binance Research

Giao thức Zerocoin dựa trên một thiết lập đáng tin cậy ban đầu; tức là, cần phải tin tưởng ai đó để tạo ra các tham số ban đầu rồi hủy các tham số đó. Ví dụ: ZCoin dựa trên bộ tích lũy RSA, cần tạo ra hai số nguyên tố lớn. Cụ thể, nó dựa trên các tham số RSA-2048, được tạo ra từ thử thách RSA factoring challenge1.

Được coi là một phần mở rộng cho giao thức Bitcoin, nhưng Zerocoin không được các nhà phát triển Bitcoin chấp thuận vì một số lý do, cụ thể là thời gian tính toán quá lớn, một số tranh cãi về tính hợp lệ của kết quả cuối cùng và liệu các thay đổi được đề xuất có quá căn bản và sai lệch so với whitepaper ban đầu của Bitcoin.

Thay vào đó, ZCoin đã được tạo ra vào cuối năm 20152 (dưới tên "Moneta") là tiền mã hoá độc lập đầu tiên được triển khai giao thức Zerocoin (xem phần tiếp theo).

Sự khác biệt giữa Zerocoin và Zerocash

Vào cuối năm 2013, giao thức Zerocoin đã được mở rộng lên một bản nâng cấp có tên là Zerocash.

Với mục tiêu cung cấp sự riêng tư, Zerocash đã giới thiệu các cải tiến hiệu quả (như kích thước proof nhỏ hơn, xác minh nhanh hơn) và nâng cao quyền riêng tư (với mã hóa bổ sung số tiền và cả địa chỉ người gửi/người nhận). Việc triển khai Zerocash được biết đến rộng rãi nhất là ZCash.

Mặc dù có một số ưu điểm chính, nhưng một số lý do đã giải thích tại sao Zerocash không thay thế được Zerocoin. Trong số đó, nổi bật nhất3 là:

  • Thiếu khả năng kiểm tra tổng nguồn cung: số dư được ẩn với giao thức Zerocash. Mặt khác, giao thức Zerocoin không ẩn chúng. Tuy nhiên, một số kẻ tấn công đã quản lý để tạo proof giả từ bộ tích lũy RSA mà không bị phát hiện (tức là tiêu tiền của người khác).

  • Ít thử nghiệm hơn trong mật mã nền tảng (triển khai chính của zkSNARKs là ZCash) và độ phức tạp chung của mật mã nền tảng của giao thức, làm cho việc kiểm tra hệ thống trở nên phức tạp.

  • Thời gian tạo giao dịch riêng tư cục bộ là khá cao do quy trình tính toán chuyên sâu.

Vì vậy mà giao thức Zerocoin vẫn độc lập với Zerocash. Phần còn lại của báo cáo này chỉ tập trung vào thuật toán Zerocoin và việc triển khai cốt lõi của nó, được xác định tại thư viện libzerocoin.

1.2 Tổng quan về các cách triển khai 

Bảng 1 - So sánh các triển khai độc lập dựa trên Zerocoin chính

Tên

Loại

Ghi chú

Năm

Blockchain hỗn hợp PoW / PoS (w / Master Nodes)

Blockchain PoS (w / Master Nodes)

Dựa vào Giao thức Time PoS v2 và đang tìm cách thay thế giao thức Zerocoin.

Từng dựa vào ZPoS (Zerocoin Proof of Stake) sau giai đoạn đầu dưới dạng tiền mã hoá PoW (thuật toán Quark).

Blockchain PoW (w / Master Nodes)

Đã xóa giao thức Zerocoin vào cuối năm 2017.

Blockchain LPoS 

Nghiên cứu mới đang được tiến hành để tìm ra giải pháp thay thế Zerocoin cho các giao dịch riêng tư.

Noir (ex-Zoin)

Blockchain PoS (w / Master Nodes)

Đã xóa giao thức Zerocoin và thông qua Sigma vào năm 2019 (từng dựa vào PoW).

Gravity Coin (ex- Hexxcoin)

Blockchain PoW (với Master Nodes)

Blockchain LPoS 

Lớp giao thức dựa trên sự đồng thuận của Lease Proof-of-Stake (LPoS) trên Giao thức Bitcoin Core mới nhất (hiện tại là 0,17). Giao thức Zerocoin đã được hợp nhất trong "Giao thức bảo mật Ghost" nhưng đã bị vô hiệu hóa vào tháng 4 năm 2019. NIX đã thông qua Sigma vào tháng 5 năm 2019.

Blockchain Hybrid PoW/PoS 

Phần thưởng staking hiện được trả bằng zerocoin. Kể từ tháng 7 năm 2019, nó đã được khử ẩn danh, nhưng vẫn có thể sử dụng và chi tiêu bằng zerocoin (đang tìm cách chuyển khỏi giao thức Zerocoin).

Nguồn: Binance Research

Mặc dù tất cả những triển khai này đều dựa trên giao thức Zerocoin, những loại tiền mã hoá này có nhiều điểm khác biệt không phải là trọng tâm4, nhưng một số thiết kế cơ bản của chúng vẫn được thảo luận trong báo cáo này.

1.3 Mô tả về ZCoin, PIVX và Veil

1.3.1 ZCoin (tiền Sigma, kể từ đầu năm 2019)

ZCoin là một loại tiền mã hoá, được ra mắt vào tháng 9 năm 2016, là sự triển khai độc lập đầu tiên của giao thức Zerocoin (như đã mô tả trong phần trước).

Các đặc điểm cốt lõi ZCoin bao gồm:

  • Dựa trên mã nguồn Bitcoin.

  • Proof of Work: dựa trên thuật toán khai thác MTP, một thuật toán kháng ASIC thân thiện với CPU.

  • Chức năng băm: Merkle Tree Function (MTP) đã thay thế Lyra2z kể từ năm 2018.

  • Thời gian tạo block: 5 phút (giảm từ 10 phút)

  • Kích thước block tối đa: 2MB

  • Tổng nguồn cung: 21 triệu (tăng lên 21,4 triệu sau khi khai thác một số sai sót). Phần thưởng khai thác giảm một nửa ~ cứ bốn năm một lần (hiện ở mức 25 ZCoin / block).

  • Giao thức Zerocoin: ZCoin là tiền mã hoá đầu tiên thực hiện giao thức này. Tuy nhiên, kể từ tháng 7 năm 2019, giao thức ZCoin’s Zerocoin đã ngừng hoạt động và được thay thế bằng Sigma, đồng thời nhu cầu thiết lập đáng tin cậy cũng không còn được dùng nữa.

Biểu đồ 2 - Giá ZCoin năm 2019 (USD)

Nguồn: CoinMarketCap, Binance Research.

1.3.2 PIVX

PIVX là một loại tiền mã hoá được thiết kế để đạt đượckhả năng thay thế, bảo mật giao dịch, quản trị cộng đồng, khả năng mở rộng mạng và khả năng sử dụng trong thế giới thực cho các mục đích trực tuyến, bắt đầu vào năm 2016.

Trước khi việc khai thác zerocoin bị vô hiệu hóa (vào đầu năm 2019), PIVX đã dựa vào:

  • PIVX bắt đầu như một mã fork của Dash (bản thân đến từ mã của Litecoin).

  • Được bắt đầu vào tháng 1 năm 2016 với tên DNET và được đổi tên thành PIVX vào tháng 1 năm 2017.

  • Giao thức Zerocoin: PIVX đã phát triển một triển khai tùy chỉnh của giao thức zerocoin dựa trên libzerocoin, được giới thiệu vào mạng chính vào cuối năm 2017.

  • Proof of Stake (PoS): sau giai đoạn PoW ban đầu (giữa tháng 1 và tháng 8 năm 2016 với thuật toán Quark), PIVX đã chuyển sang Proof of Stake tại block 259.201. Trên mạng PIVX, cả PIV và zPIV đều có thể được stake. Thông qua chương trình phần thưởng staking độc đáo này, tính năng staking riêng đã được cung cấp cùng với “staking thường xuyên”. Người dùng cũng có động lực sử dụng zPoS vì nó sẽ dẫn đến việc tăng 50% phần thưởng staking dự kiến. Mục đích là cung cấp thêm quyền riêng tư chống lại mã độc hành vi từ những người tham gia khác vì bộ ẩn danh vẫn là yếu tố chính cần xem xét5. Kể từ ngày 5 tháng 1 năm 2020, Giao thức PoS Time v2 đã được sử dụng, cũng kết hợp với Cold Staking.

  • Kích thước block tối đa: 2MB

  • Thời gian tạo block: 60 giây (retarget ở mọi khối)

  • Tỷ lệ phát thải coin: PIVX có giới hạn 6 PIV trên mỗi block. Tất cả phí giao dịch và phí đúc zPIV đều bị đốt cháy từ nguồn cung cấp coin thay vì được phân bổ cho phần thưởng masternode / staking bổ sung.

  • Tổng nguồn cung: đến tháng 6 năm 2060, tổng nguồn cung tối đa ước tính sẽ là 189.001.497 PIV. Không có giới hạn về nguồn cung. Tuy nhiên, PIVX thậm chí có thể giảm nguồn cung theo thời gian, tùy thuộc vào số lượng giao dịch.

Biểu đồ 3 - Giá PIVX năm 2019 (USD)

Nguồn: CoinMarketCap, Binance Research.

1.3.3 Veil

Veil là một loại tiền mã hoá, được James Burden tạo ra vào đầu năm 2018 (còn được gọi là 4x13), James không những là một chuyên gia về quyền riêng tư cho tiền mã hoá, mà còn là người dẫn đầu cho PIVX (xem tiểu mục 1.2).

Veil ra đời nhằm mục đích cung cấp "quyền riêng tư toàn thời gian mà không ảnh hưởng đến sức mạnh của tính ẩn danh".

Về cốt lõi, Veil dựa vào:

  • Phần mềm giao thức bitcoin: phiên bản 0.1.7 của phần mềm bitcoin được sử dụng.

  • Giao thức Zerocoin: sử dụng libzerocoin (được mô tả trong tiểu mục trước).

  • RingCT dựa trên sự triển khai của Particl.

  • Địa chỉ ẩn: việc sử dụng địa chỉ một lần cho mọi giao dịch được thực hiện.

Các đặc điểm khác bao gồm:

  • Sự đồng thuận Proof of Work (PoW) dựa trên thuật toán băm X16RT kháng ASIC (ASIC-resistant). Mục đích nhằm cung cấp sự phân phối công bằng cho các coin mới được tạo ra.

  • Hệ thống Proof-of-Stake (PoS) dựa vào việc tiến hành stake và thưởng trực tiếp bằng mệnh giá Zerocoin. Mục đích nhằm thưởng cho những người sở hữu coin Veil.

  • Trong cơ chế kết hợp hai lần này, những người tham gia PoS phải tìm thấy mục tiêu của một block (trong số sáu block).

  • Thời gian tạo block: 60 giây (retarget ở mọi khối)

  • Tổng nguồn cung: 300 triệu.

  • Kích thước block: 2MB.

  • Hệ thống đồng thuận Cơ chế Proof-of-Work và Proof-of-Stake:

  • Tự động đúc: Veil dựa vào tính năng tự động đúc: trừ khi được chỉ định rõ ràng, "basecoin veil" sẽ tự động được chuyển đổi thành "zerocoin veil".

Veil cũng sử dụng đa giao dịch Zerocoin chi tiêu, do các giao dịch đa khối (multi-block). Vì tài nguyên máy tính đắt tiền (và giao thức zerocoin chỉ cho phép tối đa 20 mệnh giá zerocoin trong một giao dịch), tính năng chi tiêu nhiều giao dịch này được tự động chia thành hai hoặc nhiều khối.

Biểu đồ 4 - Giá Veil năm 2019 (USD)

Nguồn: CoinMarketCap, Binance Research.

2. Những sai sót và sự cố lịch sử của tiền mã hoá dựa trên Zerocoin

2.1 Mô tả các sai sót và các cuộc tấn công vectơ trong lịch sử

2.1.1 Sự cố năm 2017 của ZCoin

Vào năm 2017, một sự cố đã xảy ra, vài tháng sau khi ZCoin tiết lộ rằng một lỗi đánh máy trong mã nguồn đã bị khai thác để tạo ra thêm 370.000 ZCoin6.

Sau sự cố khai thác này, đội ngũ ZCoin đã thông báo có khoảng 18.171 coin đã được tạo ra. Cụ thể là ai đó có khả năng tạo ra các khoản chi tiêu giả, do đó làm tăng nguồn cung ZCoin.

Để khắc phục sự cố ngay lập tức, đội ngũ đã phát hành ngay một bản cập nhật khẩn cấp để ngăn chặn việc chi thêm zerocoin. Kết quả là libzerocoin v2 được phát hành, dẫn đến một đợt hardfork của ZCoin và việc giới thiệu lại các khoản chi tiêu bằng zerocoin.

Ngược lại, các dự án khác như SmartCash đã ngừng kích hoạt Zerocoin, sau đó quyết định không áp dụng chính thức và loại bỏ Zerocoin vào đầu năm 20187.

2.1.2 Khả năng tấn công từ chối chi tiêu (2017)

Một lỗ hổng khai thác khác đã được tiết lộ công khai vào năm 2017 bởi các nhà nghiên cứu tại Friedrich Alexander Universität ở Đức. Cuộc tấn công này thường được gọi là cuộc tấn công từ chối chi tiêu, nó cho phép một người dùng xấu phá hủy tiền của những người dùng trung thực.

Cuộc tấn công hoạt động như sau:

  • Một người dùng trung thực muốn chi tiêu zerocoin của mình và gửi giao dịch chi tiêu (bao gồm cả số sê-ri) đến mạng.

  • Trong khi đó, kẻ tấn công cần quyền kiểm soát mạng của đối tượng nạn nhân, và sẽ chặn thông điệp chi tiêu để đảm bảo rằng nó không bao giờ đến được các nút của mạng. Sau đó, kẻ tấn công tạo ra một zerocoin độc hại mới có cùng số sê-ri và họ có thể tiêu số zerocoin này bằng cách tiết lộ số sê-ri chính xác.

  • Sau lần chi tiêu ban đầu của người dùng độc hại, nếu cá nhân trung thực cố gắng chi tiêu số zerocoin của mình, giao dịch sẽ bị mạng từ chối và được coi là chi tiêu gấp đôi do khoản chi tiêu độc hại trước đó.

Kết quả là người dùng độc hại sẽ đốt zerocoin trước người dùng trung thực, chiếm đoạt các coin mới và "không có lịch sử" của người dùng trung thực.

Biểu đồ 5 - Mô tả cuộc tấn công từ chối chi tiêu

Nguồn: Binance Research.

Tuy nhiên, phần thưởng từ kiểu tấn công này không chỉ giới hạn ở các hiệu ứng on-chain. Lợi nhuận tiềm năng lớn hơn từ việc khai thác này sẽ tạo ra một đợt hoảng loạn ngắn, tại đó người dùng sẽ bán tháo khi nghe về cuộc tấn công vào giao thức, trong khi kẻ tấn công sẽ nắm giữ một vị trí short trên chính tài sản đó (ví dụ: Zcoin). Tuy nhiên, vào năm 2017, việc xây dựng một vị thế short trong ZCoin là tương đối khó, do đó khiến cho kiểu tấn công này khó tiến hành.

Hơn nữa, như đã đề cập bởi chính đội ngũ ZCoin, nguy cơ cuộc tấn công thất bại vẫn cao và một cá nhân độc hại cũng có thể trở thành nạn nhân của cuộc tấn công của chính mình8.

2.1.3 Các vấn đề triển khai trong libzerocoin ảnh hưởng đến PIVX (2019)

Vào ngày 6 tháng 3 năm 2019, đội ngũ PIVX đã tiết lộ các yếu tố tạo nên một cuộc tấn công được phát hiện trên giao thức zerocoin của mạng PIVX (tức là zPIV).

Lỗ hổng này cho phép một cá nhân độc hại giả mạo các sê-ri và sử dụng zerocoin vốn không được đúc ngay từ đầu. Không giống như cuộc tấn công được mô tả trong tiểu mục 1.4, nó sẽ không dẫn đến việc tiền của người dùng bị đánh cắp hoặc bị mất. Tuy nhiên, nó sẽ có tác động đến lạm phát vì nguồn cung lưu thông có thể tăng độc lập với lịch trình lạm phát được chỉ định của PIVX.

Sau khi phát hiện ra các block không hợp lệ, đội ngũ PIVX đã thấy một lỗ hổng đang bị triển khai bởi các cá nhân độc hại, trong khi giao thức Zerocoin đã bị vô hiệu hóa một cách thận trọng (dựa trên sporks9).

Theo PIVX, hai yếu tố chính dẫn đến khả năng khai thác lỗ hổng này:

  1. Trong thư viện libzerocoin, việc kiểm tra chữ ký giao dịch chỉ được thực hiện trên 256 bit cuối cùng chứ không phải trên toàn bộ đối tượng, trong khi số sê-ri được lưu trữ dưới dạng số cho phép lưu trữ dữ liệu lớn hơn 256 bit.

  2. Chữ ký xác minh nhận biết được thực hiện sau khi xác minh chữ ký chi tiêu coin. Việc này không xác minh rằng kích thước bit của số sê-ri thấp hơn 256 bit.

Để biết thêm chi tiết đầy đủ cùng với việc triển khai, vui lòng truy cập thông tin giải thích toàn diện do đội ngũ PIVX cung cấp, bao gồm phân tích on-chain về tác động của việc khai thác này. Các chi tiết khác cũng được cung cấp ở đây.

Lỗ hổng này không ảnh hưởng đến ZCoin, nhưng ảnh hưởng đến nhiều loại fork PIVX chủ yếu là tiền mã hoá có vốn hóa thấp.

2.2.4 Mô tả về lỗ hổng mật mã gần đây nhất (2019)

Vào tháng 4 năm 2019, ZCoin đã trải qua một cuộc tấn công dựa trên các lỗ hổng mật mã trong thiết kế giao thức cốt lõi của Zerocoin.

ZCoin đã tiết lộ chi tiết đầy đủ về cuộc tấn công vào ngày 30 tháng 4 năm 2019 trong một bài đăng trên blog.

Dựa trên thông tin do ZCoin cung cấp, kẻ tấn công chỉ cần có ít nhất một coin được đúc hợp pháp và có thể tạo ra bao nhiêu chi tiêu tùy thích (bằng bất kỳ loại tiền mã hóa dựa trên Zerocoin nào). Những khoản chi tiêu giả này không thể phân biệt được với những khoản chi tiêu thực.

Biểu đồ 6 - Mô tả cuộc tấn công (so với quy trình đào / chi tiêu zerocoin thông thường)

Nguồn: Binance Research.

Từ góc độ mật mã, có thể tạo ra proof sai chỉ với một zerocoin được đúc.

Phần tiếp theo chúng ta sẽ thảo luận về tác động lên ZCoin, PIVX và Veil từ cuộc tấn công này.

2.2. Tác động từ các cuộc tấn công (gần đây) của năm 2019

2.2.1 ZCoin

Như một bản sửa lỗi khẩn cấp, đội ngũ đã quyết định vô hiệu hóa các zerocoin đã được đúc và ngăn không cho tiến hành bất kỳ khoản chi tiêu nào của zerocoin. Việc này có hiệu quả đóng băng tiền trong bộ tích lũy cho đến khi phát hành Sigma.

Sau khi kết thúc thời hạn chuyển đổi zerocoin vào ngày 20 tháng 1, tổng thiệt hại từ cuộc tấn công được đánh giá: khoảng 66.996 XZC đã bị giả mạo thông qua lỗ hổng này.

Nhờ vào chữ ký cụ thể từ cuộc tấn công, đội ngũ cũng có thể đưa vào danh sách đen coin được đúc, giúp ngăn những kẻ tấn công chuyển đổi một số zerocoins thành Sigma. Do đó, tổng thiệt hại ước tính lên tới 54.321 XZC, theo cập nhật gần đây của ZCoin's.

Vào tháng 7 năm 2019, đội ngũ đã chính thức loại bỏ giao thức Zerocoin và thay thế bằng Sigma, đồng thời bỏ qua sự cần thiết của bất kỳ thiết lập đáng tin cậy nào. ZCoin ngừng sử dụng giao thức Zerocoin kể từ đầu năm 2018.

Sau khi chuyển sang Sigma, ZCoin đã ra đời tính năng “đúc lại” (remint) zerocoin, tức là chuyển từ zerocoin sang Sigma.

2.2.2 PIVX

Để phản hồi lại sự cố được mô tả trong tiểu mục 2.1.3, đội ngũ PIVX đã vô hiệu hóa các tính năng bảo mật từ Zerocoin, thông qua một spork. Kể từ đó, zerocoin đã được sử dụng ở chế độ công khai, tức là tương tự như các giao dịch UTXO thông thường.

Cụ thể, việc đào zerocoin đã bị vô hiệu hóa trong khi chi tiêu bằng zerocoin vẫn được kích hoạt (với các liên kết đầy đủ đến basecoin ban đầu). Hơn nữa, nhóm nghiên cứu dựa vào Schnorr Signature để đảm bảo rằng zerocoin có thể được sử dụng trở lại bằng basecoin, mà không có bất kỳ tiếp xúc nào với lỗ hổng đã tồn tại trước đó.

Vào ngày 5 tháng 1 năm 2020, PoS Time Protocol v2 đã được giới thiệu với bản phát hành 4.0 (cùng với Cold Staking). Sau hardfork này, PIVX dự kiến sẽ sớm công bố giao thức bảo mật tiếp theo của mình. Để biết chi tiết về mật mã, vui lòng truy cập liên kết này.

2.2.3 Veil

Sau khi lỗ hổng được phát hiện bởi ZCoin vào ngày 17/04/2019, đội ngũ Veil quyết định hủy kích hoạt tính năng ẩn danh từ giao thức Zerocoin. Ban đầu nó đã ngăn chặn được cuộc tấn công được tiến hành vào chuỗi Veil.

Đối với Veil, phần thưởng staking chỉ có thể được thanh toán bằng zerocoin (và không phải bằng basecoin). Do đó, bản sửa lỗi ban đầu không dựa vào việc hủy kích hoạt sự phụ thuộc hoàn toàn vào giao thức zerocoin thông qua một hardfork ngay lập tức.

Bản sửa lỗi ban đầu bao gồm việc bổ sung một bản vá để yêu cầu tất cả các khoản chi tiêu bằng zerocoin phải có chữ ký đính kèm liên kết số tiền chi tiêu với tiền đúc. Nói cách khác, zero-knowledge proof là cần thiết để ngăn chặn việc chi tiêu gấp đôi đã được thay thế bằng một chữ ký duy nhất, dẫn đến việc loại bỏ tính năng ẩn danh nhưng vẫn giải quyết được việc khai thác.

Tuy nhiên, cuộc tấn công đã "phát triển" và bản sửa lỗi ban đầu không ngăn được những kẻ tấn công ăn cắp tiền từ bộ tích luỹ. Như một giải pháp cấp bách, Veil đã quyết định:

  • Làm việc với các sàn giao dịch: việc rút và gửi tiền đã bị tạm ngưng để ngăn chặn bất kỳ giao dịch nào trên mạng, điều này có thể dẫn đến việc mất tiền đáng kể.

  • Trở lại trạng thái "đúng" bằng cách thêm lại số dư bị đánh cắp vào các pool zerocoin và ngăn các zerocoin còn lại chưa được xáo trộn với RingCT.

Hơn nữa, đội ngũ đã vô hiệu hóa zero-knowledge proof về việc làm cho zerocoin hoạt động theo cách tương tự với các giao dịch UTXO (bình thường) khác. Tuy nhiên, không giống như PIVX, việc đào và phát hành zerocoin không bị vô hiệu hóa (vì chỉ có thể stake bằng zerocoin), nhưng các tính năng bảo mật đã không tồn tại kể từ đó.

Về trung và dài hạn, đội ngũ đã quyết định áp dụng một số giải pháp:

  • Điều chỉnh lịch trình phát thải: cuộc tấn công này đã làm tăng nguồn cung lên 12.441.690 coin một cách hiệu quả. Để đáp lại, phần thưởng của người sáng lập đã bị giảm (khoảng 10 triệu veil) để bù đắp phần lớn sự gia tăng nguồn cung này và sẽ đốt cháy chúng, cùng với 2,1 triệu bổ sung (vượt quá chi phí ngân sách chung dành cho sự phát triển của dự án ).

  • Đẩy nhanh việc rời khỏi giao thức Zerocoin: đội ngũ cũng đã xác nhận mong muốn tách khỏi giao thức Zerocoin, giống như ZCoin.

Cho đến nay, giải pháp nổi bật nhất cần xem xét là staking RingCT để stake ẩn danh một lần nữa. Ngoài ra, đội ngũ cũng đang nghiên cứu một giao thức mới sử dụng Supersonic proof.

3. Kết luận và bài học kinh nghiệm

Không giống như các sự cố trước đây, lỗ hổng Zerocoin mới nhất đã ảnh hưởng rộng rãi đến bối cảnh hiện có của các privacy coin.

ZCoin, lần đầu triển khai (lớn nhất theo marketcap), đã rời khỏi giao thức và đã kích hoạt thành công Sigma kể từ tháng 8 năm 2019. Đội ngũ bắt đầu làm việc với một giải pháp thay thế cho giao thức Zerocoin từ đầu năm 2018, tuy nhiên quá trình chuyển đổi được thực hiện trong vòng một khung thời gian rất ngắn (sau sự cố).

PIVX đã ngừng kích hoạt các tính năng bảo mật từ giao thức Zerocoin nhưng vẫn chưa tiết lộ toàn bộ phạm vi kế hoạch ngoài việc tiết lộ mong muốn thay thế hoàn toàn việc sử dụng Zerocoin. Kể từ sự cố năm 2019, zerocoin đã được sử dụng ở chế độ công khai, tức là, theo cách tương tự như các giao dịch UTXO thông thường.

Veil đã phải chịu một cú sốc lạm phát lớn, nhưng đội ngũ Veil đã tìm cách cứu dự án của họ  thông qua việc hợp tác với các địa điểm giao dịch và từ bỏ một phần đáng kể phân bổ của những người sáng lập. Do đó, Veil đã quyết định thay thế hoàn toàn giao thức Zerocoin trong tương lai cũng như làm việc với các đề xuất thay thế (ví dụ như staking RingCT).

Sự cố gần đây này có thể đánh dấu sự kết thúc của một trong những giải pháp bảo mật blockchain mang tính biểu tượng nhất, do đó cần đẩy nhanh sự chuyển đổi của bối cảnh privacy coin. Tuy nhiên, Zerocoin, với tư cách là một giao thức, có thể sẽ tiếp tục được cải tiến dựa trên các đề xuất thiết kế khác nhau (ví dụ: từ người đồng sáng tạo Equihash  Dmitry Khovratovich), có khả năng giải quyết các lỗ hổng mật mã được phát hiện gần đây.

Báo cáo này được đóng góp rất nhiều từ các cuộc thảo luận với các thành viên từ các đội ngũ làm việc về lĩnh vực privacy coin.

Phụ lục

  1. Thử thách bao thanh toán hoàn thành thành công cuối cùng xảy ra tại RSA-768. https://web.archive.org/web/20130507091636/http://www.rsa.com/rsalabs/node.asp?id=2092

  2. https://news.bitcoin.com/first-implementation-zerocoin-released-introducing-moneta/

  3. Bản nâng cấp non trẻ của Zerocash vào năm 2018 đã giới thiệu những cải tiến quan trọng về hiệu quả của các địa chỉ được bảo vệ. https://z.cash/upgrade/sapling/

  4. Bất kỳ ai muốn tìm hiểu thêm về các dự án này hãy truy cập các liên kết được cung cấp trong bảng trên.

  5. Cụ thể, hiệu quả của giao thức bảo mật vẫn là một chức năng của bộ ẩn danh của nó.

  6. Vấn đề này không liên quan đến chính giao thức Zerocoin. Do đó, nó sẽ bị bỏ qua trong phần còn lại của báo cáo.

  7. https://twitter.com/scashofficial/status/976179827756580864 Xin lưu ý rằng các lý do khác cũng đã được cung cấp.

  8. Như đã bao gồm trong báo cáo, “nó thực sự có thể xảy ra khi giao dịch chi tiêu của nạn nhân được đưa vào blockchain trước giao dịch chi tiêu của kẻ tấn công. Nếu điều đó xảy ra, thì zerocoin của kẻ tấn công chứ không phải của nạn nhân sẽ trở nên không đáng tin cậy".

Spork là fork nhiều giai đoạn. Khái niệm này đã được phổ biến bởi Dash