Bởi: Zooko Wilcox, Jason McGee và Taylor Hornby của Shielded Labs
Tóm tắt
Shielded Labs đang hợp tác với The Zcash Foundation, Tachyon Group, Valar Group và Phòng thí nghiệm Phát triển Mở Zcash (ZODL) về một đề xuất có tên "Ironwood" nhằm khôi phục khả năng cho người dùng xác minh tính hợp lệ của lượng cung lưu thông của Zcash.
Tuần trước, một lỗ hổng làm giả nghiêm trọng đã được phát hiện trong pool Orchard của Zcash. Lỗ hổng đã được khắc phục thông qua một bản nâng cấp mạng khẩn cấp do ZODL và các bên tham gia hệ sinh thái khác phối hợp, và đã được hoàn thành vào ngày 2 tháng 6.
Mặc dù chúng tôi tin rằng khả năng lỗ hổng bị khai thác là thấp (vì những lý do được nêu trong công bố của chúng tôi), các thuộc tính riêng tư của Orchard ngăn người dùng tự mình xác minh điều đó.
Ironwood sẽ cho phép người dùng xác minh rằng lượng cung lưu thông của Zcash là chính xác. Người dùng sẽ có được khả năng này ngay sau khi kích hoạt Ironwood, bằng cách đơn giản cộng dồn số dư của các pool đang hoạt động. Họ sẽ không cần phải suy luận về động lực hay hành động của người khác, cũng như không cần chờ đợi quá trình di chuyển từ pool Orchard, để xác minh rằng tổng lượng cung lưu thông của Zcash là chính xác.
Ironwood
Mục tiêu của Ironwood là khôi phục khả năng của mỗi người dùng Zcash trong việc xác minh tính toàn vẹn nguồn cung của Zcash. Khả năng xác minh này đã bị suy giảm do sự tồn tại của lỗ hổng làm giả. Ngay sau khi kích hoạt, người dùng sẽ có thể độc lập xác minh rằng lượng cung lưu thông của Zcash là hợp lệ, chỉ bằng cách chạy một node.
Để đạt được điều này, Ironwood sẽ:
- Tạo một pool ẩn mới sử dụng mạch Orchard với lỗ hổng làm giả gần đây đã được sửa.
- Từ chối là không hợp lệ bất kỳ giao dịch nào tạo ra đầu ra mới trong pool Orchard cũ.
- Tăng cường sự đảm bảo về cơ sở mã, sử dụng các kỹ thuật như kiểm toán bảo mật có hỗ trợ AI và xác minh hình thức, tất cả nhằm đảm bảo không có thêm lỗi làm giả nào.
Tại sao Ironwood hoạt động
Ironwood thay đổi những gì có thể xảy ra bên trong pool Orchard.
Sau khi kích hoạt, bất kỳ giao dịch nào tạo ra đầu ra mới trong pool Orchard sẽ bị từ chối. Điều này có nghĩa là ZEC sẽ không thể tiếp tục lưu thông trong pool đó nữa. Kể từ thời điểm đó, tiền trong pool Orchard chỉ có thể di chuyển bằng cách thoát khỏi pool thông qua cơ chế turnstile.
Cơ chế turnstile là cơ chế kế toán trên chuỗi của Zcash cho các chuyển khoản giữa các pool. Chúng theo dõi lượng ZEC đã vào và ra khỏi mỗi pool và từ chối bất kỳ giao dịch nào cố gắng chuyển ra nhiều ZEC hơn lượng đã vào hợp lệ.
Cùng với nhau, các quy tắc này có nghĩa là người dùng không cần phải chờ đợi tất cả hoặc bất kỳ khoản tiền Orchard nào được di chuyển. Ngay khi Ironwood được kích hoạt, người dùng có thể xác minh từ các quy tắc đồng thuận rằng không có nhiều hơn lượng ZEC chính xác có thể được lưu thông. Điều này cung cấp một sự đảm bảo tức thì, không cần tin cậy về tính hợp lệ của lượng cung lưu thông của Zcash. ZEC thừa không thể lưu thông bí mật giữa những người dùng pool Orchard, cũng như không thể thoát sang pool khác.
Tạo bằng chứng về việc liệu lỗ hổng có bị khai thác hay không
Ironwood cũng có thể cung cấp bằng chứng về việc liệu lỗ hổng Orchard có từng bị khai thác hay không, nhưng việc đạt được mục tiêu của nó không phụ thuộc vào việc liệu bằng chứng đó có xuất hiện hay không.
Khi người dùng di chuyển tiền từ pool Orchard hiện tại sang pool mới, bất kỳ kẻ làm giả giả định nào cũng phải đối mặt với một sự lựa chọn: cố gắng di chuyển tiền giả và có nguy cơ lộ diện, hoặc bỏ lại chúng và có nguy cơ không thể di chuyển chúng trong tương lai.
Điều này tạo ra hai kết quả có thể xảy ra:
Kết quả A: Không có ZEC thừa nào cố gắng rời khỏi pool Orchard hiện tại. Đây sẽ là bằng chứng mạnh mẽ rằng lỗ hổng chưa bao giờ bị khai thác, vì một kẻ làm giả sẽ có động lực mạnh mẽ để di chuyển tiền giả trước khi người dùng hợp pháp hoàn thành quá trình di chuyển của họ.
Kết quả B: ZEC thừa cố gắng rời khỏi pool Orchard hiện tại. Trong trường hợp này, tiền thừa sẽ không thể rời khỏi pool và sẽ bị phá hủy một cách hiệu quả. Thật không may, điều này là cần thiết để bảo toàn lượng cung lưu thông hiện tại trên tất cả các pool. Điều này cũng sẽ cung cấp bằng chứng có thể xác minh công khai rằng việc làm giả đã xảy ra. Vì chúng tôi nghĩ rằng lỗ hổng không bị khai thác, chúng tôi nghĩ kết quả này khó xảy ra.
Ví
Chúng tôi khuyến nghị rằng tất cả các ví hỗ trợ pool Orchard hiện tại nên thêm hỗ trợ cho pool mới.
Các ví nên tiếp tục hỗ trợ pool Orchard hiện tại bình thường cho đến khi Ironwood được kích hoạt, và sau đó di chuyển tiền của người dùng từ pool Orchard hiện tại sang pool mới. Mặc dù việc di chuyển có những tác động đến quyền riêng tư (cụ thể là nó tiết lộ số lượng ZEC được chuyển và thời gian chuyển), chúng tôi tin rằng tác động đến quyền riêng tư của người dùng là khiêm tốn và có thể được giảm thiểu hơn nữa thông qua hành vi của ví.
Các người nhận Orchard hiện tại (tức là địa chỉ) vẫn có hiệu lực và không cần phải thay đổi. ZEC được gửi đến người nhận Orchard được tạo trước khi kích hoạt Ironwood sẽ tự động được nhận dưới dạng ZEC trong pool mới.
Thời gian
Giống như hầu hết các bản nâng cấp mạng, Ironwood sẽ yêu cầu phát triển, thử nghiệm, đánh giá và phối hợp trên toàn bộ hệ sinh thái. Kinh nghiệm cho thấy công việc này thường mất nhiều thời gian hơn dự kiến, vì vậy chúng tôi tin rằng tốt hơn là nên thận trọng khi thảo luận về mốc thời gian hơn là hứa quá nhiều và làm không đủ.
Một nguồn không chắc chắn bổ sung là việc ngừng sử dụng zcashd đang diễn ra. Mặc dù Shielded Labs không trực tiếp tham gia vào nỗ lực đó, việc di chuyển các sàn giao dịch, pool khai thác, ví và các nhà cung cấp cơ sở hạ tầng khác sang Zebra có thể ảnh hưởng đến thời gian của bản nâng cấp mạng này.
Chúng tôi hy vọng sẽ hiểu rõ hơn về mốc thời gian khi các kế hoạch triển khai trưởng thành hơn và các cuộc thảo luận tiếp tục.
Kết luận
Chúng tôi muốn nhấn mạnh rằng chúng tôi tin rằng việc khai thác trước đó lỗ hổng Orchard là khó xảy ra. Nhưng người dùng không nên phải tin tưởng vào đánh giá của chúng tôi, hay của bất kỳ ai khác, khi nói đến tính toàn vẹn của nguồn cung Zcash.
Ironwood được thiết kế để khôi phục một sự đảm bảo về lượng cung lưu thông của Zcash mà bất kỳ ai cũng có thể tự mình xác minh. Cho dù lỗ hổng có từng bị khai thác hay không, mục tiêu vẫn giống nhau: làm cho tính toàn vẹn của nguồn cung Zcash trở thành thứ có thể xác minh được.
Chúng tôi tin rằng Ironwood là hướng đi tốt nhất và mong muốn được thảo luận về đề xuất này với cộng đồng Zcash.
Lời cảm ơn
Cảm ơn Sean Bowe, Dev Ojha, David Campbell, Alex Bornstein, Nate Wilcox, Kris Nuttycombe, Vitalik Buterin, Balaji Srinivasan, Taylor Hornby, Josh Swihart và Tatyana vì đã đánh giá và phản hồi. Đặc biệt cảm ơn Kris Nuttycombe vì đã đề xuất rằng bản nâng cấp Ironwood vô hiệu hóa các giao dịch tạo ra đầu ra trong pool Orchard cũ. Điều này hóa ra là quan trọng để Ironwood đạt được mục tiêu của nó.





