Proof of SQL kiểm chứng được phép tính, còn dữ liệu thì sao?

Space and Time Enterprise trả kết quả truy vấn kèm bằng chứng mật mã. Người nhận kiểm tra được phép tính nếu đã có dấu cam kết dữ liệu đáng tin cậy.

Proof of SQL kiểm chứng được phép tính, còn dữ liệu thì sao?

Một nhà cung cấp gửi cho khách hàng tổng số đơn đã giao đúng hạn, nhưng không muốn gửi kèm tên và địa chỉ của từng người mua. Nếu chỉ gửi một bảng tổng hợp, khách hàng khó biết phép đếm có tuân thủ điều kiện hai bên đã thống nhất hay không. Space and Time Enterprise đưa ra một cách tiếp cận: gửi kết quả truy vấn cùng bằng chứng mật mã để bên nhận tự kiểm tra. Bằng chứng có thể cho thấy phép tính khớp với một phiên bản dữ liệu đã được xác định. Nó không thể tự xác nhận các bản ghi trong phiên bản đó phản ánh đúng những gì diễn ra ngoài đời.

Một kết quả SQL có thêm gì khi đi kèm bằng chứng?

SQL là ngôn ngữ dùng để hỏi cơ sở dữ liệu. Ví dụ, một nhóm vận hành có thể yêu cầu đếm các đơn thuộc tháng trước và được đánh dấu giao đúng hạn. Trong cách làm thông thường, chương trình nhận câu trả lời từ máy chủ và tin rằng máy chủ đã thực hiện đúng. Nếu cần đối chiếu, người nhận có thể yêu cầu thêm bản ghi hoặc tự chạy phép đếm ở nơi có quyền đọc dữ liệu. Cả hai lựa chọn đều có thể làm tăng số người được xem thông tin chi tiết.

Space and Time Enterprise đưa bước tạo bằng chứng vào quá trình trả kết quả. Theo tài liệu của dự án, phản hồi gồm các dòng kết quả, bằng chứng và thông tin về các bảng được dùng. Bên kiểm tra dùng câu truy vấn, kết quả, bằng chứng và một cam kết dữ liệu đáng tin cậy. Cam kết ở đây là giá trị mật mã gắn với một trạng thái cụ thể của bảng, tương tự một dấu niêm phong số. Nó cho phép nói chính xác kết quả đang được kiểm tra trên phiên bản nào mà không phải chuyển toàn bộ bảng cho người nhận.

Dấu niêm phong đáng tin đến từ đâu?

Giả sử hai công ty đã đối chiếu sổ giao hàng cuối tháng và thống nhất một giá trị cam kết cho bản đó. Sau này, bên giữ sổ có thể chạy một truy vấn và gửi kết quả kèm bằng chứng. Bên kia kiểm tra bằng cam kết đã lưu độc lập. Nếu bên giữ sổ thay dữ liệu rồi tạo bằng chứng cho một phiên bản khác, bằng chứng đó không chứng minh được kết quả trên phiên bản mà hai bên đã thống nhất. Giá trị của phép kiểm tra nằm ở chỗ bên nhận không cần nhận lời máy chủ rằng bảng nào đã được sử dụng.

Tình huống thay đổi nếu máy chủ gửi cả kết quả, bằng chứng lẫn giá trị cam kết và bên nhận chấp nhận cả ba mà không đối chiếu. Tài liệu dự án cảnh báo rằng máy chủ có thể lấy một bảng tự tạo, lập cam kết cho bảng đó rồi chứng minh phép tính trên chính bảng đó. Phép kiểm tra vẫn có thể thành công về mặt mật mã. Vì vậy, doanh nghiệp cần một kênh xác nhận cam kết riêng: chẳng hạn lưu nó khi hai bên chốt sổ hoặc ghi nhận nó trong hệ thống kiểm toán. Mỗi lần thêm dữ liệu tạo ra một trạng thái mới; xác minh một báo cáo cũ đòi hỏi giữ đúng cam kết cũ.

Ba cách một báo cáo vẫn có thể sai

Thứ nhất, dữ liệu nguồn có thể sai. Nếu tài xế bấm hoàn thành trước khi giao hoặc một hệ thống nhập nhầm ngày, phép đếm vẫn có thể đúng trên bản ghi sai. Thứ hai, câu hỏi có thể sai. Truy vấn đếm theo ngày xuất kho sẽ cho kết quả khác truy vấn đếm theo ngày giao, dù cả hai đều có bằng chứng hợp lệ. Thứ ba, phạm vi có thể thiếu. Báo cáo từ một kho có thể được diễn giải nhầm là báo cáo của cả công ty. Ba vấn đề đó cần đối chiếu nguồn dữ liệu, định nghĩa chỉ số và phạm vi báo cáo.

Cũng cần xem phần kết quả tiết lộ điều gì. Không gửi toàn bộ bảng là một ưu điểm, nhưng cho phép hỏi nhiều câu chồng lấn có thể làm lộ thông tin. Chẳng hạn, nếu một người được phép hỏi tổng của hai nhóm chỉ khác nhau đúng một đơn hàng, chênh lệch có thể chỉ ra giá trị của đơn đó. Bằng chứng mật mã không quyết định ai được hỏi và được thấy những gì. Ứng dụng vẫn cần giới hạn truy vấn, phân quyền và kiểm soát đầu ra.

Khi nào đáng trả thêm chi phí để chứng minh?

Một bảng điều khiển nội bộ thay đổi từng giây có thể ưu tiên tốc độ và dễ vận hành. Một báo cáo dùng để đối soát giữa hai tổ chức hoặc làm điều kiện cho bước tự động có lý do rõ hơn để bổ sung bằng chứng. Thử nghiệm ban đầu nên chọn một chỉ số mà hai bên có thể định nghĩa được, đánh dấu phiên bản dữ liệu bằng cam kết, rồi đo thời gian tạo và kiểm tra bằng chứng. Hãy thử cả khi máy chủ gửi nhầm phiên bản hoặc khi người nhận không có cam kết độc lập; đó là những tình huống cho thấy quy trình có thực sự được bảo vệ hay chỉ đi theo đường chạy thuận lợi.

Kho mã của Space and Time Enterprise mô tả một giao diện có thể thêm dòng nhưng không cung cấp thao tác cập nhật hoặc xóa theo giao diện được công bố. Nó cũng có giới hạn dung lượng phục vụ tạo bằng chứng theo cấu hình. Đây là các yếu tố cần thử trước khi xem công cụ như một cơ sở dữ liệu thay thế. Cách dùng có giá trị hơn là chọn những phép tính mà bên nhận thực sự cần xác minh, thống nhất dữ liệu làm căn cứ và giữ riêng quy trình đối chiếu xem bản ghi được tạo như thế nào. Khi đó một kết quả SQL có bằng chứng giải quyết đúng một phần khó của việc kiểm toán: chứng minh máy đã tính ra con số ấy từ bộ dữ liệu đã chốt.

Nguồn: Space and Time Enterprise — mô tả hệ thống; kho mã và tài liệu xác minh.

Minh họa bảng dữ liệu và truy vấn, không phải giao diện Space and Time — Torrmal. Trang nguồn; CC BY-SA 4.0. Ảnh dùng nguyên bản.

Chia sẻ