Gần đây, tôi đã phát hiện ra một hiện tượng đau lòng: khi một loạt các nhà phát triển hợp đồng thông minh truy cập vào các oracle hàng đầu như Apro, tâm trí của họ tràn ngập suy nghĩ "chỉ cần cắm nó lên" - như thể có điều gì đó không ổn với nguồn dữ liệu.
Thật là một giấc mơ. Sự thật thực sự tàn nhẫn hơn nhiều: giây phút bạn kết nối với một nguồn dữ liệu, bạn sẽ trở thành tường lửa cuối cùng. Oracle cung cấp "sự thật trên chuỗi đã được xác minh", nhưng thực tế này được sử dụng như thế nào và như thế nào là tất cả của bạn.
Nói cách khác: bệnh viện đã mua một bộ dao mổ vô trùng nhập khẩu, và bản thân con dao vẫn ổn, nhưng bệnh nhân chết trên bàn mổ, bạn có thể đổ lỗi cho con dao không? Rõ ràng là không. Vấn đề là sự khéo léo của bác sĩ, không phải công cụ.
Các nhà phát triển phải ghi nhớ bốn quy luật sắt sau:
**Điều 1: Dữ liệu chỉ là nguyên liệu thô, và các nhà phát triển là người lái thực sự**
Apro cung cấp nguyên liệu chất lượng cao đã được xác minh theo cách phi tập trung. Nhưng nếu bạn làm món ăn mặn, lộn xộn hoặc có vấn đề với người dùng - đó là việc của bạn. Bạn phải xây dựng hệ thống giám sát chất lượng dữ liệu của riêng mình.
Ví dụ: nếu giá đột ngột nhảy vọt và lao xuống, vượt quá phạm vi dao động lý thuyết, hợp đồng của bạn có cơ chế ngắt mạch không? Hay để mức giá bất thường này kích hoạt thanh lý hàng loạt? Khi có sự cố mạng và dữ liệu chậm trễ, ứng dụng của bạn có chờ đợi một cách ngu ngốc hay nó tự động chuyển sang giải pháp bảo mật sao lưu? Những điều này không thể được bao quát bởi các nguồn dữ liệu.
**Điều 2: Chất lượng mã quyết định mọi thứ**
Dữ liệu mạnh nhất gặp mã dễ bị tấn công và kết quả là thảm họa. Bạn không thể sử dụng một chức năng chưa được kiểm tra nghiêm ngặt và có nguy cơ tràn bộ nhớ để xử lý thông tin giá liên quan đến tiền thật.
Nói một cách thẳng thắn, cấp mã của bạn phải tương đương với nguồn dữ liệu bạn chọn. Đây không phải là tùy chọn, nó là cơ bản.
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
Gần đây, tôi đã phát hiện ra một hiện tượng đau lòng: khi một loạt các nhà phát triển hợp đồng thông minh truy cập vào các oracle hàng đầu như Apro, tâm trí của họ tràn ngập suy nghĩ "chỉ cần cắm nó lên" - như thể có điều gì đó không ổn với nguồn dữ liệu.
Thật là một giấc mơ. Sự thật thực sự tàn nhẫn hơn nhiều: giây phút bạn kết nối với một nguồn dữ liệu, bạn sẽ trở thành tường lửa cuối cùng. Oracle cung cấp "sự thật trên chuỗi đã được xác minh", nhưng thực tế này được sử dụng như thế nào và như thế nào là tất cả của bạn.
Nói cách khác: bệnh viện đã mua một bộ dao mổ vô trùng nhập khẩu, và bản thân con dao vẫn ổn, nhưng bệnh nhân chết trên bàn mổ, bạn có thể đổ lỗi cho con dao không? Rõ ràng là không. Vấn đề là sự khéo léo của bác sĩ, không phải công cụ.
Các nhà phát triển phải ghi nhớ bốn quy luật sắt sau:
**Điều 1: Dữ liệu chỉ là nguyên liệu thô, và các nhà phát triển là người lái thực sự**
Apro cung cấp nguyên liệu chất lượng cao đã được xác minh theo cách phi tập trung. Nhưng nếu bạn làm món ăn mặn, lộn xộn hoặc có vấn đề với người dùng - đó là việc của bạn. Bạn phải xây dựng hệ thống giám sát chất lượng dữ liệu của riêng mình.
Ví dụ: nếu giá đột ngột nhảy vọt và lao xuống, vượt quá phạm vi dao động lý thuyết, hợp đồng của bạn có cơ chế ngắt mạch không? Hay để mức giá bất thường này kích hoạt thanh lý hàng loạt? Khi có sự cố mạng và dữ liệu chậm trễ, ứng dụng của bạn có chờ đợi một cách ngu ngốc hay nó tự động chuyển sang giải pháp bảo mật sao lưu? Những điều này không thể được bao quát bởi các nguồn dữ liệu.
**Điều 2: Chất lượng mã quyết định mọi thứ**
Dữ liệu mạnh nhất gặp mã dễ bị tấn công và kết quả là thảm họa. Bạn không thể sử dụng một chức năng chưa được kiểm tra nghiêm ngặt và có nguy cơ tràn bộ nhớ để xử lý thông tin giá liên quan đến tiền thật.
Nói một cách thẳng thắn, cấp mã của bạn phải tương đương với nguồn dữ liệu bạn chọn. Đây không phải là tùy chọn, nó là cơ bản.