Năm ngoái đúng lúc này, tôi còn cãi qua cãi lại với người ta—“Xác minh logic chạy ngoài WASM sandbox? Không phải tự đào hố cho mình sao”. Hồi đó tôi vừa đọc xong một báo cáo tổng kết về một chuỗi bị rút ruột do lỗ hổng hợp đồng thông minh, trong đầu chỉ toàn ý nghĩ “code càng ít càng an toàn”.
Điểm hồi điều chỉnh tiềm năng, BTC còn dư địa tăng không?
Sau đó tôi thật sự vận hành chạy node Dusk, mới thấy chuyện không đơn giản như vậy.
Tôi xem qua bộ mã test của Piecrust bên họ, và cũng cố tình đi tìm bài nghiên cứu hiệu năng được trích dẫn nhiều lần—họ đo tổn hao của WASM so với code native dưới các tập lệnh khác nhau, và trong bối cảnh mã hóa có thể vọt tới 255%. Nghĩ mà xem: chữ ký BLS và các chứng minh ZK mà mỗi ngày Dusk xử lý, cái nào chẳng là “kẻ ăn tính toán” lớn? Mỗi giao dịch đều phải được diễn giải thực thi trong WASM, tương đương việc bạn lái xe tiêu xăng 25 lít/100 km—chủ cây xăng cười không khép được miệng, ví của bạn thì trước tiên chịu không nổi.
Vì vậy họ biến các thao tác mật mã tần suất cao thành host function, gọi thẳng phần hiện thực native. Nói trắng ra là: đường nào đi thường xuyên thì đừng để lắp rào cản, đường thỉnh thoảng đi thì mới soi xét kỹ.
Tất nhiên vẫn có rủi ro—bán kính tin cậy từ “toàn bộ WASM sandbox” thu lại thành “vài dòng code C có viết sao cho ổn không”. Cái đầu cho cảm giác an toàn kiểu cô lập ở mức vật lý, cái sau thì thuần túy xem tay nghề kỹ sư có vững hay không. Tôi đã lén lút lật góc trang web và lục ra báo cáo kiểm toán Q3 năm 2024 của họ—ít nhất thời điểm đó những tình huống biên họ đo thì chưa nổ. Nhưng nói đi thì cũng phải nói lại: những lỗ hổng dạng này từ trước tới nay không phải tự nhiên “test ra” được, mà là do người ta “nhồi dữ liệu” vào. Ngày nào đó có người nhét vào một bằng chứng được bịa công phu, kích hoạt một chỗ tràn số nguyên trong host function mà chẳng ai để ý—chậc, cảnh đó hiện tại tôi tạm thời không muốn tận mắt chứng kiến.
Nhưng nếu bạn muốn vạn vô một mất, thì thôi đừng làm public chain; quay về viết chương trình chạy offline còn yên tâm hơn. Nhóm Dusk tính bài toán theo cách khác: hiệu năng “nghẽn cổ chai” là chuyện của hôm nay, còn vấn đề an ninh ngày mai vẫn vá được. Tôi chạy node ba năm, đã thấy các chuỗi chết đi phần lớn cũng là do gas quá cao nên chẳng ai dùng; hoặc bị phá vỡ là về số không—dù sao tôi cũng chưa tự mình chứng kiến.
Vì vậy thái độ của tôi bây giờ mềm hơn trước. Trước đây lúc ăn cơm với bạn bè tôi còn cứng miệng nói “cứ quan sát thêm”, rồi về sau lặng lẽ đẩy phiên bản node lên bản mới nhất. Dự án dám đục lỗ trên sandbox không nhiều, và Dusk là một trong số đó. #dusk $DUSK @Dusk
Điểm hồi điều chỉnh tiềm năng, BTC còn dư địa tăng không?
Sau đó tôi thật sự vận hành chạy node Dusk, mới thấy chuyện không đơn giản như vậy.
Tôi xem qua bộ mã test của Piecrust bên họ, và cũng cố tình đi tìm bài nghiên cứu hiệu năng được trích dẫn nhiều lần—họ đo tổn hao của WASM so với code native dưới các tập lệnh khác nhau, và trong bối cảnh mã hóa có thể vọt tới 255%. Nghĩ mà xem: chữ ký BLS và các chứng minh ZK mà mỗi ngày Dusk xử lý, cái nào chẳng là “kẻ ăn tính toán” lớn? Mỗi giao dịch đều phải được diễn giải thực thi trong WASM, tương đương việc bạn lái xe tiêu xăng 25 lít/100 km—chủ cây xăng cười không khép được miệng, ví của bạn thì trước tiên chịu không nổi.
Vì vậy họ biến các thao tác mật mã tần suất cao thành host function, gọi thẳng phần hiện thực native. Nói trắng ra là: đường nào đi thường xuyên thì đừng để lắp rào cản, đường thỉnh thoảng đi thì mới soi xét kỹ.
Tất nhiên vẫn có rủi ro—bán kính tin cậy từ “toàn bộ WASM sandbox” thu lại thành “vài dòng code C có viết sao cho ổn không”. Cái đầu cho cảm giác an toàn kiểu cô lập ở mức vật lý, cái sau thì thuần túy xem tay nghề kỹ sư có vững hay không. Tôi đã lén lút lật góc trang web và lục ra báo cáo kiểm toán Q3 năm 2024 của họ—ít nhất thời điểm đó những tình huống biên họ đo thì chưa nổ. Nhưng nói đi thì cũng phải nói lại: những lỗ hổng dạng này từ trước tới nay không phải tự nhiên “test ra” được, mà là do người ta “nhồi dữ liệu” vào. Ngày nào đó có người nhét vào một bằng chứng được bịa công phu, kích hoạt một chỗ tràn số nguyên trong host function mà chẳng ai để ý—chậc, cảnh đó hiện tại tôi tạm thời không muốn tận mắt chứng kiến.
Nhưng nếu bạn muốn vạn vô một mất, thì thôi đừng làm public chain; quay về viết chương trình chạy offline còn yên tâm hơn. Nhóm Dusk tính bài toán theo cách khác: hiệu năng “nghẽn cổ chai” là chuyện của hôm nay, còn vấn đề an ninh ngày mai vẫn vá được. Tôi chạy node ba năm, đã thấy các chuỗi chết đi phần lớn cũng là do gas quá cao nên chẳng ai dùng; hoặc bị phá vỡ là về số không—dù sao tôi cũng chưa tự mình chứng kiến.
Vì vậy thái độ của tôi bây giờ mềm hơn trước. Trước đây lúc ăn cơm với bạn bè tôi còn cứng miệng nói “cứ quan sát thêm”, rồi về sau lặng lẽ đẩy phiên bản node lên bản mới nhất. Dự án dám đục lỗ trên sandbox không nhiều, và Dusk là một trong số đó. #dusk $DUSK @Dusk