Trước đây tôi xem quyền riêng tư của hợp đồng, mắt cứ dán vào khu lưu trữ. Các trường đã được mã hóa được đặt sẵn đó, nhìn thôi đã thấy yên tâm. Hôm nay khi cạy điều kiện đăng ký của RUES, hai từ hạn định đã trói chặt tôi lại. Hợp đồng của @Dusk có thể giấu trạng thái, nhưng đăng ký không phải là làm mù; nó sẽ nhận contract_id trước, rồi mới nhận event_name. Rõ ràng khả năng hiển thị tách nhánh ngay từ đây.
Tôi bày D-03 và D-37 ra thành hai cột. Bên trái ghi mã hóa lưu trữ, bên phải ghi lớp sự kiện. Tôi khoanh phần JSON header và raw event bytes trong ví dụ đăng ký. Sự kiện hợp đồng $DUSK sẽ được gửi cho người đăng ký theo đúng điều kiện. Khi thấy raw event bytes hiển thị nguyên dạng có thể đọc được, tôi như nhận được một thông báo lỗi: nhắc tôi đừng lấy kết luận từ lớp lưu trữ che lên lớp log. Các trường đăng ký không phải để trang trí; chúng quyết định ai có thể thu thập những mảnh hành vi nào.
Nói thẳng: khóa tủ hồ sơ không đồng nghĩa là sổ đăng ký nhận đồ ở cổng cũng bị khóa. Trạng thái giống như vật liệu bên trong tủ, còn sự kiện giống như tờ giấy lấy hàng dán ngay trước cửa. Bộ lập chỉ mục chưa chắc chạm tới trường mã hóa, nhưng có thể sẽ sắp xếp rất chăm chỉ thời gian, lần gọi và tên. Khi đặt hai cột cạnh nhau, tôi mới dần nhận ra: quyền riêng tư không phải là một nút bấm, mà là kết quả được tính riêng theo từng lớp hiển thị.
Ở đây có một ranh giới rất thực tế. Sự kiện không cần phải lộ số lượng tài sản trực tiếp thì đã tạo rủi ro. Chỉ cần gom lại mốc thời gian, các quan hệ gọi xuất hiện lặp đi lặp lại và các tên liên quan, người ngoài đã có thể suy ra gần đúng. Chỉ truy vấn trạng thái hợp đồng sẽ bỏ sót một đường truy vấn. Tách lớp sự kiện ra đưa riêng vào danh sách kiểm tra—không phải soi mói, mà là tránh đến lúc sau mới phát hiện ra: dáng vẻ hành vi đã được ghép từ log.
Vì vậy bây giờ tôi không chỉ hỏi lưu trữ có mã hóa hay không, mà còn truy hỏi sự kiện được phát như thế nào, ai có thể đăng ký, và liệu các trường có được ẩn bớt hay không. Thà tốn thêm một phút đọc các trường, còn hơn coi mặc định hiển thị là mặc định riêng tư. Mã hóa lưu trữ đương nhiên có ích, nhưng không đồng nghĩa với việc log tự động trở nên bảo mật. Trong danh sách kiểm tra hợp đồng riêng tư, lớp sự kiện phải có một dòng riêng. Bộ lập chỉ mục càng chăm chỉ, dòng này càng không thể bỏ qua. #dusk
Tôi bày D-03 và D-37 ra thành hai cột. Bên trái ghi mã hóa lưu trữ, bên phải ghi lớp sự kiện. Tôi khoanh phần JSON header và raw event bytes trong ví dụ đăng ký. Sự kiện hợp đồng $DUSK sẽ được gửi cho người đăng ký theo đúng điều kiện. Khi thấy raw event bytes hiển thị nguyên dạng có thể đọc được, tôi như nhận được một thông báo lỗi: nhắc tôi đừng lấy kết luận từ lớp lưu trữ che lên lớp log. Các trường đăng ký không phải để trang trí; chúng quyết định ai có thể thu thập những mảnh hành vi nào.
Nói thẳng: khóa tủ hồ sơ không đồng nghĩa là sổ đăng ký nhận đồ ở cổng cũng bị khóa. Trạng thái giống như vật liệu bên trong tủ, còn sự kiện giống như tờ giấy lấy hàng dán ngay trước cửa. Bộ lập chỉ mục chưa chắc chạm tới trường mã hóa, nhưng có thể sẽ sắp xếp rất chăm chỉ thời gian, lần gọi và tên. Khi đặt hai cột cạnh nhau, tôi mới dần nhận ra: quyền riêng tư không phải là một nút bấm, mà là kết quả được tính riêng theo từng lớp hiển thị.
Ở đây có một ranh giới rất thực tế. Sự kiện không cần phải lộ số lượng tài sản trực tiếp thì đã tạo rủi ro. Chỉ cần gom lại mốc thời gian, các quan hệ gọi xuất hiện lặp đi lặp lại và các tên liên quan, người ngoài đã có thể suy ra gần đúng. Chỉ truy vấn trạng thái hợp đồng sẽ bỏ sót một đường truy vấn. Tách lớp sự kiện ra đưa riêng vào danh sách kiểm tra—không phải soi mói, mà là tránh đến lúc sau mới phát hiện ra: dáng vẻ hành vi đã được ghép từ log.
Vì vậy bây giờ tôi không chỉ hỏi lưu trữ có mã hóa hay không, mà còn truy hỏi sự kiện được phát như thế nào, ai có thể đăng ký, và liệu các trường có được ẩn bớt hay không. Thà tốn thêm một phút đọc các trường, còn hơn coi mặc định hiển thị là mặc định riêng tư. Mã hóa lưu trữ đương nhiên có ích, nhưng không đồng nghĩa với việc log tự động trở nên bảo mật. Trong danh sách kiểm tra hợp đồng riêng tư, lớp sự kiện phải có một dòng riêng. Bộ lập chỉ mục càng chăm chỉ, dòng này càng không thể bỏ qua. #dusk
