Hãy tưởng tượng ba công ty muốn biết mức lương trung bình của tất cả nhân viên, nhưng không công ty nào chịu tiết lộ bảng lương riêng. Tính toán đa bên (MPC) giải quyết đúng bài toán này: nhiều bên có thể cùng tính ra kết quả mà không ai nhìn thấy dữ liệu đầu vào của bên còn lại.

Chia nhỏ bí mật bằng kỹ thuật chia sẻ bí mật

Nền tảng của hầu hết giao thức MPC là kỹ thuật chia sẻ bí mật (secret sharing). Cách đơn giản nhất là chia sẻ cộng dồn: giả sử bạn có giá trị x = 42, tạo hai số ngẫu nhiên a = 17 và b = 25 sao cho a + b = 42, rồi gửi a cho bên thứ nhất và b cho bên thứ hai. Không bên nào suy ra được 42 chỉ từ phần của mình. Phiên bản mạnh hơn là phương pháp chia sẻ bí mật của Shamir, dựa trên tính chất của đa thức: k điểm trên đa thức bậc (k-1) sẽ xác định duy nhất đa thức đó, nhưng ít hơn k điểm thì không tiết lộ thông tin gì. Cách này cho phép đặt ngưỡng, chẳng hạn cần 3 trong 5 bên hợp tác mới khôi phục được bí mật.

Tính toán trên dữ liệu đã chia

Phép cộng trên các phần chia bí mật rất đơn giản: mỗi bên cộng phần của mình, kết quả sẽ là phần chia của tổng. Nhưng phép nhân phức tạp hơn nhiều, vì tích hai đa thức bậc (k-1) tạo ra đa thức bậc (2k-2), làm tăng số phần chia cần thiết. Bộ ba Beaver giải quyết vấn đề này bằng cách chuẩn bị trước các bộ (a, b, c) với c = a × b trong giai đoạn tiền xử lý, rồi dùng chúng để "che" phép nhân thực tế ở giai đoạn tính toán. Giai đoạn tiền xử lý tốn tài nguyên nhưng không phụ thuộc vào dữ liệu thật nên có thể chạy trước.

Mạch garbled, một hướng tiếp cận khác

Giáo sư Andrew Yao đề xuất garbled circuits vào năm 1986 cho trường hợp hai bên. Ý tưởng là biểu diễn hàm cần tính dưới dạng mạch Boolean, rồi "mã hóa" từng cổng logic để người tham gia tính toán chỉ biết đầu ra mà không thấy các giá trị trung gian. Bên tạo mạch (garbler) mã hóa toàn bộ mạch và gửi cho bên đánh giá (evaluator). Bên đánh giá nhận đầu vào của mình qua giao thức chuyển giao không tiết lộ lựa chọn (oblivious transfer), tức kỹ thuật cho phép chọn một trong nhiều giá trị mà bên gửi không biết bên nhận đã chọn giá trị nào. Garbled circuits nhanh hơn secret sharing cho hàm phức tạp với ít bên tham gia, nhưng khó mở rộng khi số bên tăng.

Ứng dụng thực tế đang mở rộng

MPC không còn chỉ là lý thuyết. Các sàn crypto dùng MPC để quản lý khóa riêng tư (threshold signing), loại bỏ điểm thất bại duy nhất khi một máy chủ bị hack. Ngành tài chính dùng MPC để phát hiện gian lận liên ngân hàng mà không chia sẻ dữ liệu khách hàng. Trong AI, federated learning kết hợp MPC cho phép huấn luyện mô hình trên dữ liệu y tế phân tán mà bệnh viện không cần gửi hồ sơ bệnh nhân ra ngoài.

Thách thức lớn nhất vẫn là hiệu năng: giao tiếp giữa các bên tạo độ trễ đáng kể, đặc biệt với mạng chậm. Các nghiên cứu gần đây tập trung tối ưu giai đoạn tiền xử lý và giảm số vòng giao tiếp, đưa MPC từ mức "khả thi trên lý thuyết" tới khả năng triển khai thực tế cho nhiều bài toán cụ thể.