#dusk $DUSK @Dusk Tôi vốn nghĩ rằng, Data Driver chỉ cần mang theo chữ ký của chủ sở hữu hợp đồng là đủ để đảm bảo an toàn. Đọc xong mã nguồn Dusk thì phần vững tâm còn lại chỉ là một nửa: chữ ký có thể chứng minh ai đã tải lên tệp, nhưng không thể chứng minh nó tương thích với phiên bản hợp đồng nào.
Trong Dusk, Data Driver là một tệp WASM độc lập. Ví, sàn giao dịch và bot dựa vào nó để đọc các byte “máy” mà hợp đồng xuất ra thành số tiền, quyền hạn và sự kiện, đồng thời cũng dựa vào nó để mã hóa thao tác của người dùng thành dữ liệu mà hợp đồng có thể thực thi. Khi tải lên, chủ sở hữu hợp đồng sẽ ký hash của tệp Driver; các node sau đó lưu theo hợp đồng ID.
Tôi nhận thấy rắc rối chủ yếu nằm ở phía client. Hiện tại W3sper cũng đăng ký và cache Driver theo hợp đồng ID. Bài “Issue” mở của kho lưu trữ chính thức chỉ ra rằng ở đây vẫn thiếu sự ràng buộc chặt giữa Driver với phiên bản hoặc hash của hợp đồng.
Vì vậy có thể xuất hiện một kiểu “lệch khớp” rất giống Dusk: thiết bị đầu cuối cũ tiếp tục dùng Driver cũ trong bộ nhớ đệm, trong khi thiết bị đầu cuối mới đã tải Driver mới. Cả hai tệp đều có thể đến từ đường dẫn hợp lệ, hai bên cũng đều không báo lỗi, nhưng ở cùng một độ cao (height) vẫn có thể đọc sai nghĩa các khoản tiền, sự kiện, thậm chí cả tham số giao dịch.
Trong giao dịch, tôi sợ nhất loại lỗi này. Giao dịch thất bại sẽ phát cảnh báo; còn dữ liệu bị đọc sai một cách lặng lẽ, thì số dư ví, vị thế bot và bản ghi trên nền tảng dữ liệu có thể đều “tính theo ý mình” cho đến khi tiền không khớp mới lộ ra.
Từ sau, tôi sẽ bổ sung các chỉ số để định giá $DUSK . Số lượng hợp đồng rất dễ bị chất đống, còn tỷ lệ trùng khớp hash Driver lại đáng giá hơn. Ví phổ biến, sàn giao dịch và indexer đã dùng phiên bản Driver nào, hiệu lực từ độ cao nào, và phiên bản cũ khi nào mất hiệu lực — tất cả đều nên tra được.
Dusk tách “thực thi hợp đồng” và “diễn giải hợp đồng” thành hai lớp, đổi lại sự linh hoạt, nhưng cũng phải gánh thêm một lớp trách nhiệm riêng: ngay cả tệp chính hãng, cũng phải chứng minh rằng nó chưa hết hạn. Chỉ khi đó, mọi người giao dịch mới yên tâm hơn.
$BTC
Trong Dusk, Data Driver là một tệp WASM độc lập. Ví, sàn giao dịch và bot dựa vào nó để đọc các byte “máy” mà hợp đồng xuất ra thành số tiền, quyền hạn và sự kiện, đồng thời cũng dựa vào nó để mã hóa thao tác của người dùng thành dữ liệu mà hợp đồng có thể thực thi. Khi tải lên, chủ sở hữu hợp đồng sẽ ký hash của tệp Driver; các node sau đó lưu theo hợp đồng ID.
Tôi nhận thấy rắc rối chủ yếu nằm ở phía client. Hiện tại W3sper cũng đăng ký và cache Driver theo hợp đồng ID. Bài “Issue” mở của kho lưu trữ chính thức chỉ ra rằng ở đây vẫn thiếu sự ràng buộc chặt giữa Driver với phiên bản hoặc hash của hợp đồng.
Vì vậy có thể xuất hiện một kiểu “lệch khớp” rất giống Dusk: thiết bị đầu cuối cũ tiếp tục dùng Driver cũ trong bộ nhớ đệm, trong khi thiết bị đầu cuối mới đã tải Driver mới. Cả hai tệp đều có thể đến từ đường dẫn hợp lệ, hai bên cũng đều không báo lỗi, nhưng ở cùng một độ cao (height) vẫn có thể đọc sai nghĩa các khoản tiền, sự kiện, thậm chí cả tham số giao dịch.
Trong giao dịch, tôi sợ nhất loại lỗi này. Giao dịch thất bại sẽ phát cảnh báo; còn dữ liệu bị đọc sai một cách lặng lẽ, thì số dư ví, vị thế bot và bản ghi trên nền tảng dữ liệu có thể đều “tính theo ý mình” cho đến khi tiền không khớp mới lộ ra.
Từ sau, tôi sẽ bổ sung các chỉ số để định giá $DUSK . Số lượng hợp đồng rất dễ bị chất đống, còn tỷ lệ trùng khớp hash Driver lại đáng giá hơn. Ví phổ biến, sàn giao dịch và indexer đã dùng phiên bản Driver nào, hiệu lực từ độ cao nào, và phiên bản cũ khi nào mất hiệu lực — tất cả đều nên tra được.
Dusk tách “thực thi hợp đồng” và “diễn giải hợp đồng” thành hai lớp, đổi lại sự linh hoạt, nhưng cũng phải gánh thêm một lớp trách nhiệm riêng: ngay cả tệp chính hãng, cũng phải chứng minh rằng nó chưa hết hạn. Chỉ khi đó, mọi người giao dịch mới yên tâm hơn.
$BTC