Tôi đã suy nghĩ về vấn đề điện toán / tiền điện tử / cơ sở dữ liệu cụ thể này trong nhiều năm và tôi chỉ muốn biết liệu đã có giải pháp cho nó chưa. Thành thật mà nói, tôi không biết chính xác vấn đề này thuộc về lĩnh vực nào.
Tóm lại: người A có một danh sách dữ liệu, một người khác (B) có một thuật toán cung cấp cho mỗi mục trong danh sách này một điểm số và sau đó tổng hợp tất cả các điểm số này để cung cấp điểm tổng thể cho toàn bộ danh sách. Làm thế nào chúng ta có thể chạy thuật toán trên danh sách dữ liệu để dữ liệu được giữ cực kỳ an toàn (tốt nhất là không bao giờ rời khỏi người A) nhưng để người B có thể chắc chắn thuật toán chạy đúng và không bị giả mạo.
Đây là một ví dụ: Anna và Bob sống trong một ngôi làng lớn. Anna có một danh sách trên máy tính của cô ấy về tất cả những điều cô ấy đã làm trong làng, cả tốt và xấu. Bob đã tạo ra một thuật toán chấm điểm rất đơn giản cho các danh sách như vậy, nó chạy trên từng mục trong danh sách và cho điểm đó và sau đó cộng tất cả các số này lên để cho Anna điểm cuối cùng. Điểm số này cho Bob biết Anna có lợi như thế nào đối với cộng đồng làng xã và cụ thể theo ý kiến của Bobs. (Đây không chỉ là một ví dụ vì đây thực sự là hệ thống tôi muốn thực hiện)
Tuy nhiên Anna không muốn đưa cho Bob danh sách của mình, vì sau đó anh ta có quyền truy cập vào thông tin có khả năng lúng túng trong đó (mọi người đều có bộ xương trong tủ quần áo của họ). Tuy nhiên, Bob không tin tưởng Anna tự mình chạy các thuật toán của mình, vì cô có thể chỉ nói dối và nói với Bob rằng điểm số rất cao để Bob có nhiều khả năng giúp đỡ cô.
Có một vài giải pháp tôi đã nghĩ ra, nhưng tất cả đều có vấn đề:
A. Tìm một người ngẫu nhiên để lấy dữ liệu và chạy thuật toán và gửi lại điểm số, nhưng có thể khó đảm bảo rằng người ngẫu nhiên này không biết Anna và cố gắng giúp cô ấy hoặc tạo một bản sao của dữ liệu và sau đó thử để theo dõi nó và tống tiền Anna.
B. Để Anna chạy thuật toán nhưng bằng cách nào đó mã hóa mã kiểm tra vào điểm số, ví dụ, thay vì xếp hạng một sự kiện là 1 tỷ lệ là 1.0000000000797, theo cách mà sau này Bob có thể sử dụng mã này làm mã kiểm tra để xem liệu đã cho điểm số là chính xác. Tuy nhiên, kiểm tra này cũng có thể bị Bob sử dụng sai để chỉ ra những việc cụ thể mà Anna đã làm. Ngoài ra tôi có thể tưởng tượng một hệ thống như vậy sẽ không quan trọng đối với kỹ sư đảo ngược để Anna có thể cho điểm sai với mã kiểm tra chính xác, xem xét rằng Anna phải có quyền truy cập đầy đủ vào thuật toán Bobsons để chạy nó.
C. Ngôi làng tạo ra một máy chủ an toàn để lấy dữ liệu và thuật toán đó và chạy chúng cùng nhau. Tuy nhiên, cả Anna và Bob đều không thực sự tin tưởng bất cứ ai đủ để làm điều này và không tạo một bản sao dữ liệu hoặc sửa đổi điểm số, trừ khi có một số kiến trúc cơ bản an toàn để làm điều đó. Ngoài ra tôi muốn điều này là một hệ thống P2P.