Trong khi mã hóa đã có từ hàng nghìn năm trước thì mật mã có thể lập trình là một công nghệ hiện đại. Được mô tả là “mật mã có mục đích chung… [hoặc] một ngôn ngữ biểu đạt cho các yêu cầu”, đó là ý tưởng rằng một mật mã nguyên thủy như bằng chứng ZK có thể được tạo ra đủ linh hoạt và thích ứng để nhà phát triển có thể lập trình gần như bất kỳ chức năng nào trên đó. Rằng có thể tồn tại một chuỗi logic không gián đoạn từ việc ai đó nhấp vào nút trên trang web cho đến bằng chứng toán học đảm bảo tính bảo mật của hoạt động mã hóa.
https://youtu.be/qAfprVCBhdQ?t=1024
Trong khi mật mã truyền thống dựa trên các bộ chức năng cố định, đòi hỏi một nhà mật mã có tay nghề cao để xây dựng một hệ thống chuyên biệt cho mọi cơ chế mới, thì mật mã có thể lập trình cho phép các nhà phát triển triển khai các thuộc tính và chức năng mật mã bằng ngôn ngữ gần hơn với những gì họ đã hiểu. Nó cung cấp cho các nhà phát triển không phải là chuyên gia về mật mã một giao diện quen thuộc hơn.
Bằng chứng ZK lần đầu tiên được hình thành vào năm 1989 nhưng chủ yếu vẫn mang tính lý thuyết cho đến năm 2012 khi một loại bằng chứng ZK gọi là zk-SNARK được phát hiện. Nguyên thủy mới này cho phép các bằng chứng ZK chứng minh hoặc xác thực gần như mọi chức năng hoặc tính toán tùy ý.
Kể từ khi zkSNARKS trở nên khả thi, các nguồn lực và nhân tài đã đổ vào xây dựng zCash, zkRollups, zkEVM và một loạt ứng dụng khác bắt đầu bằng chữ z. Hóa ra, các hệ thống phi tập trung như Ethereum và blockchain nói chung là động lực hoàn hảo để thu hút mọi người quan tâm đến mật mã, biến một lĩnh vực nghiên cứu từng không thực tế thành một hệ sinh thái tích cực với các ứng dụng thực tế của người dùng cuối.
Không có gì đảm bảo rằng Tính toán nhiều bên (MPC), Mã hóa đồng hình hoàn toàn (FHE) và Obfuscation không thể phân biệt (iO) sẽ đi theo cùng một con đường như ZK, trở nên thiết thực hơn, tối ưu hóa hơn và có mục đích chung hơn theo thời gian. Nhưng ở giai đoạn đầu này, điều đó chắc chắn là có thể.
Nếu bạn coi mật mã có thể lập trình được như một loại máy tính kỹ thuật số, được xây dựng trên những giả định nhất định cho phép có những đặc tính và đảm bảo nhất định, thì chúng ta vẫn đang ở giai đoạn phần cứng. Chúng tôi vẫn đang tích cực tìm ra cách tốt nhất để xây dựng các cổng hoặc mạch logic cho máy tính mới này.
Để hiểu rõ hơn về bối cảnh chung của mật mã có thể lập trình, hãy bắt đầu bằng cách ước tính gần đúng vị trí của MPC, FHE và IO trong mối quan hệ với ZK và lẫn nhau. Trong phần này và thực sự là tất cả các phần tiếp theo, chúng ta sẽ đánh đổi sắc thái, độ chính xác và hình thức để có được sự đơn giản và khả năng tiếp cận.
Cách đơn giản nhất để giải thích về mật mã là thông tin nào được giữ kín hoặc bí mật. Và những gì hệ thống chứng minh hoặc tiết lộ.
Bạn cũng có thể coi mỗi hệ thống này đại diện cho một người bạn chung tưởng tượng. Wikipedia gọi người bạn này là “Tony”. Tony là người không thể sai lầm, liêm khiết và hoàn toàn đáng tin cậy. Công việc của Tony là giữ bí mật. Trong bảng bên dưới, hãy coi “Các yếu tố riêng tư” là những bí mật mà Tony có thể tin tưởng giữ, “Trường hợp sử dụng” là những nhiệm vụ mà Tony có thể thực hiện khá tốt và “Tính thực tế” là mức độ khéo léo mà Tony có thể thực hiện những nhiệm vụ này ngày nay.
Các bảng trên nhằm mục đích đưa ra ý tưởng sơ bộ cho các lĩnh vực khác nhau của mật mã có thể lập trình. Bây giờ, chúng ta hãy đi sâu hơn một chút và xem lại những gì MPC, FHE và iO làm cùng với một số thông tin thú vị về từng lĩnh vực.
Tính toán nhiều bên (MPC) cho phép nhiều bên cùng tính toán một số chức năng đã được thống nhất mà không tiết lộ bất kỳ dữ liệu nào cho những người tham gia khác. Với MPC, phép tính tương tự được áp dụng cho dữ liệu của mọi người nhưng thông tin đầu vào của mỗi bên được giữ bí mật. Các giá trị trung gian cũng sẽ được giữ bí mật. Chỉ có đầu ra được tiết lộ ở cuối.
Ngược lại với ZK, MPC mang tính hợp tác. Nó cho phép các bên khác nhau cộng tác trên cùng một tính toán, mỗi bên đóng góp dữ liệu của riêng mình để đạt được kết quả chung mà mọi người đều mong muốn.
Chúng ta có thể so sánh ZK và MPC trong bối cảnh của hệ thống AI để có thêm bối cảnh. ZK sẽ rất giỏi trong việc xác thực hoặc xác minh một phần dữ liệu đến từ người thật hoặc từ điện thoại của một người. MPC tốt hơn cho việc đào tạo hệ thống AI vì các cá nhân, nhóm hoặc tổ chức khác nhau có thể chia sẻ dữ liệu nhạy cảm với hệ thống AI nhưng tin tưởng rằng dữ liệu sẽ không bị tiết lộ cho bất kỳ ai khác.
MPC được Andrew Yao nghĩ ra vào năm 1982 để giải quyết một thí nghiệm tư duy có tên là “Vấn đề triệu phú”, trong đó hai triệu phú muốn biết ai giàu hơn mà không cho nhau biết họ có bao nhiêu tiền. Giải pháp là sử dụng các mạch bị cắt xén, theo Vitalik Buterin, người thường xuyên giải thích các khái niệm mật mã, cũng là một trong những cách cơ bản nhất để bạn hiểu rõ MPC.
[Trước khi tìm hiểu về mạch bị cắt xén, bạn cần biết mạch số học nói chung là gì. Nếu bạn chưa quen với ý tưởng về mạch điện, có một lời giải thích đơn giản ở đây.]
MPC là một quá trình tương tác gồm nhiều bước, trong đó triệu phú số 1 (Alice the Garbler) trước tiên phải tạo mạch, nhập giá trị ròng của cô ấy, sau đó chuyển nó thành dạng bị cắt xén hoặc mã hóa trước khi chuyển nó cho triệu phú số 2 (Người đánh giá Bob). ). Khi Bob bắt tay vào thực hiện mạch điện, công việc của anh ấy là cộng giá trị tài sản ròng của mình, sau đó đánh giá hoặc chạy mạch điện để đảm bảo nó chính xác. Cuối cùng, Bob giải mã kết quả đầu ra cuối cùng và chẳng hạn như biết rằng Alice giàu hơn, nhưng không bao giờ biết rằng Alice trên thực tế giàu hơn rất nhiều và lẽ ra anh ta không nên đưa ra các giả định.
Bài toán triệu phú và các mạch điện bị cắt xén như một giải pháp rất quan trọng đối với sự phát triển ban đầu của MPC. Nhưng ứng dụng của nó bị hạn chế. Một phiên bản phức tạp và nhiều sắc thái hơn của vấn đề, được gọi là Vấn đề triệu phú xã hội chủ nghĩa, kiểm tra xem hai triệu phú có giàu như nhau hay không, thay vì tiết lộ xem ai có nhiều tiền hơn. Sự khác biệt tinh tế này đã mở rộng đáng kể chức năng MPC nhưng yêu cầu các giải pháp và kỹ thuật mã hóa phức tạp hơn nằm ngoài phạm vi của bài viết này.
Mã hóa hoàn toàn đồng hình (FHE) cho phép tính toán trên dữ liệu được mã hóa. Nó có thể thực hiện một chức năng trên dữ liệu được mã hóa giống như thể nó chưa được mã hóa. Đầu ra của hàm chỉ được giải mã bởi bên có khóa bí mật. Nếu chúng ta coi mã hóa như một hộp đen che giấu bí mật thì FHE đảm bảo rằng dữ liệu và các phép tính trên dữ liệu đó vẫn nằm trong hộp đen đó.
Mặc dù không có thử nghiệm tư tưởng nổi tiếng nào như Bài toán triệu phú cho MPC, nhưng FHE đã giải quyết được điểm yếu cơ bản về bảo mật: “nhu cầu giải mã trước khi xử lý dữ liệu”.
https://www.zama.ai/post/the-revolution-of-fhe
Trong bối cảnh AI, FHE sẽ giữ tất cả dữ liệu giữa người dùng (người giữ khóa bí mật) và hệ thống AI được mã hóa. Người dùng tương tác với hệ thống như bình thường, nhưng người dùng có thể tin tưởng rằng AI chưa bao giờ “học” được bất cứ điều gì về dữ liệu được cung cấp. Toàn bộ sự tương tác sẽ được mã hóa. AI không bao giờ biết bạn đã nhập hoặc hỏi những gì, bạn đã gửi những bức ảnh nào hoặc ai đã gửi nó, nhưng vẫn có thể trả lời như thể nó biết thông tin.
Nếu nó hoạt động, FHE sẽ là một trong những công nghệ bảo vệ quyền riêng tư mạnh mẽ nhất hiện có. Và ai biết? Trong 10 năm nữa, chúng ta thậm chí có thể có FHE-EVM.
So với MPC và ZK, FHE – hiện tại – nằm ở phần cuối của quang phổ mang tính lý thuyết hơn hoặc ít thực tế hơn. Công nghệ này chỉ được coi là khả thi vào năm 2009 khi Craig Gentry tìm ra cách xử lý tiếng ồn.
Các hoạt động FHE đòi hỏi tính toán rất chuyên sâu vì “nhiễu” được thêm vào trong quá trình mã hóa để tăng cường bảo mật. Nhiễu trong FHE là một giá trị ngẫu nhiên nhỏ được thêm vào bản rõ (dữ liệu không được mã hóa) trước khi nó được chuyển thành bản mã (dữ liệu được mã hóa). Mỗi hoạt động làm tăng tiếng ồn. Trong khi các phép tính cộng và trừ gây ra sự tăng nhiễu không đáng kể, thì phép nhân lại tốn kém hơn về mặt tính toán, dẫn đến tăng nhiễu đáng kể. Vì vậy, khi độ phức tạp của chương trình tăng lên, nhiễu – không gian cần thiết để chứa nhiễu và các tài nguyên tính toán cần thiết để xử lý nhiễu – sẽ tích tụ.
Bước đột phá của Gentry là một kỹ thuật gọi là bootstrapping, có thể giảm nhiễu và cho phép tính toán nhiều hơn trên dữ liệu được mã hóa trong hệ thống FHE. Bootstrapping lấy văn bản mã hóa và giải mã nó theo cách đồng hình, có nghĩa là giảm mức độ nhiễu trên một phần dữ liệu được mã hóa mà không thực sự tiết lộ nó là gì. Kết quả là một bản mã có độ nhiễu được xác định trước thấp hơn nhiều, do đó cho phép chúng ta tính toán thêm trên bản mã. Nói chung, việc khởi động cho phép chúng ta tránh được nhu cầu có không gian cao hơn để tăng tiếng ồn khi độ phức tạp của tính toán tăng lên. Chúng ta có thể giới hạn không gian cho một vài thao tác và khởi động lại nhiều lần để tính toán các phép tính lớn tùy ý mà không ảnh hưởng đến dữ liệu gốc.
Tùy thuộc vào sơ đồ FHE, quá trình khởi động có thể mất vài phút hoặc mili giây. Nếu quá trình khởi động chậm hơn, chi phí tính toán có thể được dàn trải bằng cách áp dụng nó cho nhiều bản mã cùng một lúc. Nếu quá trình khởi động nhanh hơn, nó thường đi kèm với sự đánh đổi là chỉ làm việc với các đoạn văn bản gốc nhỏ (thường là 8 bit) tại một thời điểm để duy trì hiệu quả.
Nếu FHE biến tất cả các phần tử của phép tính thành hộp đen thì iO sẽ biến chính phép tính đó thành hộp đen.
Tính năng xáo trộn không thể phân biệt (iO) được coi là hệ thống mật mã mạnh nhất trong lĩnh vực khả năng lý thuyết. Trong một bài báo, iO được mô tả là “công cụ bậc thầy mà từ đó gần như mọi giao thức mã hóa khác có thể được xây dựng” và được các chuyên gia mật mã gọi là “viên ngọc quý” và “một công cụ mã hóa nguyên thủy để thống trị tất cả”.
Theo Amit Sahai, giáo sư nổi tiếng với việc giải thích các bằng chứng ZK cho trẻ em và là một trong những nhà nghiên cứu đã nghĩ ra cách xây dựng iO dựa trên các giả định có cơ sở vững chắc, iO hoạt động trên một mô hình khác về cơ bản so với các hệ thống mật mã trước đây. IO cho rằng đối thủ đã có thể đọc được suy nghĩ của bạn (một phép ẩn dụ cho máy tính của bạn). Bí mật của bạn đã được biết nên không thể giấu được. Điều duy nhất bạn có thể làm là làm xáo trộn những gì đối thủ đã có thể nhìn thấy.
Mục đích của iO là làm cho hai hàm hoặc phép tính trở nên khó hiểu như nhau. Nếu bạn biến hai phép tính thành một dạng không thể phân biệt được với nhau thì bạn có thể ẩn cách thức hoạt động của chương trình. Nếu bạn không thể phân biệt được sự khác biệt giữa hai chương trình, thì bạn không biết chương trình nào trong hai chương trình đang được thực thi và không thể suy ra thông tin nào từ một trong hai chương trình, ngoài việc cả hai đều thực hiện cùng một chức năng. Cả hai chương trình đều lấy cùng một đầu vào và tạo ra cùng một đầu ra, nhưng iO làm điều đó nên không ai có thể tìm ra cách thực hiện.
Với iO, bạn có thể che giấu cấu trúc của mọi loại chức năng, bao gồm gần như tất cả các chức năng tạo nên mật mã. Nói cách khác, bằng cách che khuất gần như mọi thứ, bạn đạt được mật mã có thể lập trình cho mục đích chung nhất mà trên đó các nguyên thủy khác có thể được lập trình trên đó.
Về mặt kỹ thuật, có một hộp đen lớn hơn iO. Theo nghĩa đen, nó được gọi là che giấu hộp đen. Nhưng điều đó vẫn là không thể.
Không ai biết cách xây dựng iO cho đến năm 2013, khi các bản đồ đa tuyến được đề xuất bởi Garg, Gentry, Halevi, Raykova, Sahai, Waters. Một chương trình máy tính có thể được chia nhỏ như những mảnh ghép rồi bị che khuất bằng các bản đồ đa tuyến. Các phần bị che khuất có thể được tập hợp lại để đạt được chức năng tương tự như chương trình gốc mà không để lộ hoạt động bên trong của nó.
Bản đồ đa tuyến tính là sự khái quát hóa của các bản đồ hoặc cặp song tuyến tính được sử dụng trong Mật mã đường cong Elliptic (ECC). Mặc dù bản đồ song tuyến tính là nền tảng cho các sơ đồ mã hóa hiện có như chữ ký BLS nhưng chúng không đủ phức tạp hoặc đủ biểu cảm đối với iO. Và trong khi các bản đồ đa tuyến có thể xử lý iO, cấu trúc đại số mới được phát triển này dễ bị tấn công và không an toàn nên việc dựa vào các bản đồ đa tuyến thường không làm hài lòng các nhà mật mã học. Sân lại bị kẹt.
Sau đó, vào năm 2020, Jain, Lin và Sahai đã đề xuất một giải pháp tuy khác thường và mới mẻ nhưng lại đủ đơn giản để các nhà mật mã học suy luận và thay vì dựa vào các giả định mới được phát triển như bản đồ đa tuyến, phiên bản iO này có thể được xây dựng trên nhiều hơn nữa. các giả định tiêu chuẩn và có cơ sở đã được nghiên cứu trong nhiều thập kỷ như Học với lỗi (LWE). Với bước đột phá mới nhất này, iO lại trở nên khả thi. Chén thánh vẫn còn trong tầm tay.
Mỗi hệ thống mật mã được tạo thành từ các giả định toán học và kỹ thuật mã hóa khác nhau. Không có bước đột phá nào có thể giải quyết được tất cả các vấn đề trong một hệ thống. Thay vào đó, các khám phá tuân theo một loạt các bước nhỏ và bước nhảy vọt lớn không thể đoán trước làm thay đổi các giả định và kỹ thuật hiện có, từ đó dẫn đến nhiều đột phá và khám phá hơn. Và cứ mỗi khám phá thành công thì lại có nhiều khám phá khác lại không.
Trong một bài thuyết trình trên iO, Sahai đã mô tả lĩnh vực này như đang ở “vùng hoang dã chưa được đặt tên”, nơi thậm chí còn không rõ những gì chưa được hiểu và những vấn đề phù hợp cần giải quyết là gì.
Các nhóm như PSE chủ yếu làm việc ở khía cạnh thực tế hoặc ứng dụng của mật mã có thể lập trình, tập trung vào các nguyên thủy như ZK và MPC với các giả định có cơ sở vững chắc đã được thử nghiệm thực tế, tương đối tối ưu hóa và được cho là an toàn và hiệu quả. Mặc dù còn rất nhiều tối ưu hóa, nhưng ZK hiện đã chắc chắn nằm trong phạm vi thực tế. Nhưng cũng có lúc ZK bị giam giữ ở vùng hoang dã hoang sơ.
Để tối đa hóa số lượng các công cụ bảo vệ quyền riêng tư, bảo đảm an ninh, xác minh khiếu nại, hỗ trợ mật mã mà thế giới có quyền truy cập, ít nhất chúng ta nên nheo mắt về phía chân trời của những gì sắp xảy ra vì không ai có thể đoán trước được điều gì sẽ xảy ra. sẽ có hiệu lực trong 10 năm tới.
Bài thuyết trình của Sahai bao gồm một trích dẫn từ một bài báo trên tạp chí Nature năm 2003 của Steven Weinberg có tên là Bốn bài học vàng, nêu bật một lý do khác để nghiên cứu vấn đề hiện không thực tế.
“Khi tôi giảng dạy tại Viện Công nghệ Massachusetts vào cuối những năm 1960, một sinh viên nói với tôi rằng anh ấy muốn đi sâu vào thuyết tương đối rộng hơn là lĩnh vực tôi đang nghiên cứu, vật lý hạt cơ bản, bởi vì các nguyên lý của thuyết tương đối rộng đã được biết đến rộng rãi. , trong khi điều sau có vẻ như là một mớ hỗn độn đối với anh ta. Tôi chợt nhận ra rằng anh ấy vừa đưa ra một lý do hoàn toàn chính đáng để làm điều ngược lại… Lời khuyên của tôi là hãy giải quyết những rắc rối - đó là nơi hành động.”
Mật mã có thể lập trình đang được khám phá bởi nhiều nhóm bao gồm PSE và 0xPARC, những người đồng tổ chức sự kiện kéo dài 2 ngày có tên là Hội nghị về mật mã có thể lập trình diễn ra tại Istanbul, Thổ Nhĩ Kỳ vào ngày 16 và 17 tháng 11 năm 2023.
Hãy đến chào!
Hoặc tìm PSE trực tuyến trên Discord.
Trong khi mã hóa đã có từ hàng nghìn năm trước thì mật mã có thể lập trình là một công nghệ hiện đại. Được mô tả là “mật mã có mục đích chung… [hoặc] một ngôn ngữ biểu đạt cho các yêu cầu”, đó là ý tưởng rằng một mật mã nguyên thủy như bằng chứng ZK có thể được tạo ra đủ linh hoạt và thích ứng để nhà phát triển có thể lập trình gần như bất kỳ chức năng nào trên đó. Rằng có thể tồn tại một chuỗi logic không gián đoạn từ việc ai đó nhấp vào nút trên trang web cho đến bằng chứng toán học đảm bảo tính bảo mật của hoạt động mã hóa.
https://youtu.be/qAfprVCBhdQ?t=1024
Trong khi mật mã truyền thống dựa trên các bộ chức năng cố định, đòi hỏi một nhà mật mã có tay nghề cao để xây dựng một hệ thống chuyên biệt cho mọi cơ chế mới, thì mật mã có thể lập trình cho phép các nhà phát triển triển khai các thuộc tính và chức năng mật mã bằng ngôn ngữ gần hơn với những gì họ đã hiểu. Nó cung cấp cho các nhà phát triển không phải là chuyên gia về mật mã một giao diện quen thuộc hơn.
Bằng chứng ZK lần đầu tiên được hình thành vào năm 1989 nhưng chủ yếu vẫn mang tính lý thuyết cho đến năm 2012 khi một loại bằng chứng ZK gọi là zk-SNARK được phát hiện. Nguyên thủy mới này cho phép các bằng chứng ZK chứng minh hoặc xác thực gần như mọi chức năng hoặc tính toán tùy ý.
Kể từ khi zkSNARKS trở nên khả thi, các nguồn lực và nhân tài đã đổ vào xây dựng zCash, zkRollups, zkEVM và một loạt ứng dụng khác bắt đầu bằng chữ z. Hóa ra, các hệ thống phi tập trung như Ethereum và blockchain nói chung là động lực hoàn hảo để thu hút mọi người quan tâm đến mật mã, biến một lĩnh vực nghiên cứu từng không thực tế thành một hệ sinh thái tích cực với các ứng dụng thực tế của người dùng cuối.
Không có gì đảm bảo rằng Tính toán nhiều bên (MPC), Mã hóa đồng hình hoàn toàn (FHE) và Obfuscation không thể phân biệt (iO) sẽ đi theo cùng một con đường như ZK, trở nên thiết thực hơn, tối ưu hóa hơn và có mục đích chung hơn theo thời gian. Nhưng ở giai đoạn đầu này, điều đó chắc chắn là có thể.
Nếu bạn coi mật mã có thể lập trình được như một loại máy tính kỹ thuật số, được xây dựng trên những giả định nhất định cho phép có những đặc tính và đảm bảo nhất định, thì chúng ta vẫn đang ở giai đoạn phần cứng. Chúng tôi vẫn đang tích cực tìm ra cách tốt nhất để xây dựng các cổng hoặc mạch logic cho máy tính mới này.
Để hiểu rõ hơn về bối cảnh chung của mật mã có thể lập trình, hãy bắt đầu bằng cách ước tính gần đúng vị trí của MPC, FHE và IO trong mối quan hệ với ZK và lẫn nhau. Trong phần này và thực sự là tất cả các phần tiếp theo, chúng ta sẽ đánh đổi sắc thái, độ chính xác và hình thức để có được sự đơn giản và khả năng tiếp cận.
Cách đơn giản nhất để giải thích về mật mã là thông tin nào được giữ kín hoặc bí mật. Và những gì hệ thống chứng minh hoặc tiết lộ.
Bạn cũng có thể coi mỗi hệ thống này đại diện cho một người bạn chung tưởng tượng. Wikipedia gọi người bạn này là “Tony”. Tony là người không thể sai lầm, liêm khiết và hoàn toàn đáng tin cậy. Công việc của Tony là giữ bí mật. Trong bảng bên dưới, hãy coi “Các yếu tố riêng tư” là những bí mật mà Tony có thể tin tưởng giữ, “Trường hợp sử dụng” là những nhiệm vụ mà Tony có thể thực hiện khá tốt và “Tính thực tế” là mức độ khéo léo mà Tony có thể thực hiện những nhiệm vụ này ngày nay.
Các bảng trên nhằm mục đích đưa ra ý tưởng sơ bộ cho các lĩnh vực khác nhau của mật mã có thể lập trình. Bây giờ, chúng ta hãy đi sâu hơn một chút và xem lại những gì MPC, FHE và iO làm cùng với một số thông tin thú vị về từng lĩnh vực.
Tính toán nhiều bên (MPC) cho phép nhiều bên cùng tính toán một số chức năng đã được thống nhất mà không tiết lộ bất kỳ dữ liệu nào cho những người tham gia khác. Với MPC, phép tính tương tự được áp dụng cho dữ liệu của mọi người nhưng thông tin đầu vào của mỗi bên được giữ bí mật. Các giá trị trung gian cũng sẽ được giữ bí mật. Chỉ có đầu ra được tiết lộ ở cuối.
Ngược lại với ZK, MPC mang tính hợp tác. Nó cho phép các bên khác nhau cộng tác trên cùng một tính toán, mỗi bên đóng góp dữ liệu của riêng mình để đạt được kết quả chung mà mọi người đều mong muốn.
Chúng ta có thể so sánh ZK và MPC trong bối cảnh của hệ thống AI để có thêm bối cảnh. ZK sẽ rất giỏi trong việc xác thực hoặc xác minh một phần dữ liệu đến từ người thật hoặc từ điện thoại của một người. MPC tốt hơn cho việc đào tạo hệ thống AI vì các cá nhân, nhóm hoặc tổ chức khác nhau có thể chia sẻ dữ liệu nhạy cảm với hệ thống AI nhưng tin tưởng rằng dữ liệu sẽ không bị tiết lộ cho bất kỳ ai khác.
MPC được Andrew Yao nghĩ ra vào năm 1982 để giải quyết một thí nghiệm tư duy có tên là “Vấn đề triệu phú”, trong đó hai triệu phú muốn biết ai giàu hơn mà không cho nhau biết họ có bao nhiêu tiền. Giải pháp là sử dụng các mạch bị cắt xén, theo Vitalik Buterin, người thường xuyên giải thích các khái niệm mật mã, cũng là một trong những cách cơ bản nhất để bạn hiểu rõ MPC.
[Trước khi tìm hiểu về mạch bị cắt xén, bạn cần biết mạch số học nói chung là gì. Nếu bạn chưa quen với ý tưởng về mạch điện, có một lời giải thích đơn giản ở đây.]
MPC là một quá trình tương tác gồm nhiều bước, trong đó triệu phú số 1 (Alice the Garbler) trước tiên phải tạo mạch, nhập giá trị ròng của cô ấy, sau đó chuyển nó thành dạng bị cắt xén hoặc mã hóa trước khi chuyển nó cho triệu phú số 2 (Người đánh giá Bob). ). Khi Bob bắt tay vào thực hiện mạch điện, công việc của anh ấy là cộng giá trị tài sản ròng của mình, sau đó đánh giá hoặc chạy mạch điện để đảm bảo nó chính xác. Cuối cùng, Bob giải mã kết quả đầu ra cuối cùng và chẳng hạn như biết rằng Alice giàu hơn, nhưng không bao giờ biết rằng Alice trên thực tế giàu hơn rất nhiều và lẽ ra anh ta không nên đưa ra các giả định.
Bài toán triệu phú và các mạch điện bị cắt xén như một giải pháp rất quan trọng đối với sự phát triển ban đầu của MPC. Nhưng ứng dụng của nó bị hạn chế. Một phiên bản phức tạp và nhiều sắc thái hơn của vấn đề, được gọi là Vấn đề triệu phú xã hội chủ nghĩa, kiểm tra xem hai triệu phú có giàu như nhau hay không, thay vì tiết lộ xem ai có nhiều tiền hơn. Sự khác biệt tinh tế này đã mở rộng đáng kể chức năng MPC nhưng yêu cầu các giải pháp và kỹ thuật mã hóa phức tạp hơn nằm ngoài phạm vi của bài viết này.
Mã hóa hoàn toàn đồng hình (FHE) cho phép tính toán trên dữ liệu được mã hóa. Nó có thể thực hiện một chức năng trên dữ liệu được mã hóa giống như thể nó chưa được mã hóa. Đầu ra của hàm chỉ được giải mã bởi bên có khóa bí mật. Nếu chúng ta coi mã hóa như một hộp đen che giấu bí mật thì FHE đảm bảo rằng dữ liệu và các phép tính trên dữ liệu đó vẫn nằm trong hộp đen đó.
Mặc dù không có thử nghiệm tư tưởng nổi tiếng nào như Bài toán triệu phú cho MPC, nhưng FHE đã giải quyết được điểm yếu cơ bản về bảo mật: “nhu cầu giải mã trước khi xử lý dữ liệu”.
https://www.zama.ai/post/the-revolution-of-fhe
Trong bối cảnh AI, FHE sẽ giữ tất cả dữ liệu giữa người dùng (người giữ khóa bí mật) và hệ thống AI được mã hóa. Người dùng tương tác với hệ thống như bình thường, nhưng người dùng có thể tin tưởng rằng AI chưa bao giờ “học” được bất cứ điều gì về dữ liệu được cung cấp. Toàn bộ sự tương tác sẽ được mã hóa. AI không bao giờ biết bạn đã nhập hoặc hỏi những gì, bạn đã gửi những bức ảnh nào hoặc ai đã gửi nó, nhưng vẫn có thể trả lời như thể nó biết thông tin.
Nếu nó hoạt động, FHE sẽ là một trong những công nghệ bảo vệ quyền riêng tư mạnh mẽ nhất hiện có. Và ai biết? Trong 10 năm nữa, chúng ta thậm chí có thể có FHE-EVM.
So với MPC và ZK, FHE – hiện tại – nằm ở phần cuối của quang phổ mang tính lý thuyết hơn hoặc ít thực tế hơn. Công nghệ này chỉ được coi là khả thi vào năm 2009 khi Craig Gentry tìm ra cách xử lý tiếng ồn.
Các hoạt động FHE đòi hỏi tính toán rất chuyên sâu vì “nhiễu” được thêm vào trong quá trình mã hóa để tăng cường bảo mật. Nhiễu trong FHE là một giá trị ngẫu nhiên nhỏ được thêm vào bản rõ (dữ liệu không được mã hóa) trước khi nó được chuyển thành bản mã (dữ liệu được mã hóa). Mỗi hoạt động làm tăng tiếng ồn. Trong khi các phép tính cộng và trừ gây ra sự tăng nhiễu không đáng kể, thì phép nhân lại tốn kém hơn về mặt tính toán, dẫn đến tăng nhiễu đáng kể. Vì vậy, khi độ phức tạp của chương trình tăng lên, nhiễu – không gian cần thiết để chứa nhiễu và các tài nguyên tính toán cần thiết để xử lý nhiễu – sẽ tích tụ.
Bước đột phá của Gentry là một kỹ thuật gọi là bootstrapping, có thể giảm nhiễu và cho phép tính toán nhiều hơn trên dữ liệu được mã hóa trong hệ thống FHE. Bootstrapping lấy văn bản mã hóa và giải mã nó theo cách đồng hình, có nghĩa là giảm mức độ nhiễu trên một phần dữ liệu được mã hóa mà không thực sự tiết lộ nó là gì. Kết quả là một bản mã có độ nhiễu được xác định trước thấp hơn nhiều, do đó cho phép chúng ta tính toán thêm trên bản mã. Nói chung, việc khởi động cho phép chúng ta tránh được nhu cầu có không gian cao hơn để tăng tiếng ồn khi độ phức tạp của tính toán tăng lên. Chúng ta có thể giới hạn không gian cho một vài thao tác và khởi động lại nhiều lần để tính toán các phép tính lớn tùy ý mà không ảnh hưởng đến dữ liệu gốc.
Tùy thuộc vào sơ đồ FHE, quá trình khởi động có thể mất vài phút hoặc mili giây. Nếu quá trình khởi động chậm hơn, chi phí tính toán có thể được dàn trải bằng cách áp dụng nó cho nhiều bản mã cùng một lúc. Nếu quá trình khởi động nhanh hơn, nó thường đi kèm với sự đánh đổi là chỉ làm việc với các đoạn văn bản gốc nhỏ (thường là 8 bit) tại một thời điểm để duy trì hiệu quả.
Nếu FHE biến tất cả các phần tử của phép tính thành hộp đen thì iO sẽ biến chính phép tính đó thành hộp đen.
Tính năng xáo trộn không thể phân biệt (iO) được coi là hệ thống mật mã mạnh nhất trong lĩnh vực khả năng lý thuyết. Trong một bài báo, iO được mô tả là “công cụ bậc thầy mà từ đó gần như mọi giao thức mã hóa khác có thể được xây dựng” và được các chuyên gia mật mã gọi là “viên ngọc quý” và “một công cụ mã hóa nguyên thủy để thống trị tất cả”.
Theo Amit Sahai, giáo sư nổi tiếng với việc giải thích các bằng chứng ZK cho trẻ em và là một trong những nhà nghiên cứu đã nghĩ ra cách xây dựng iO dựa trên các giả định có cơ sở vững chắc, iO hoạt động trên một mô hình khác về cơ bản so với các hệ thống mật mã trước đây. IO cho rằng đối thủ đã có thể đọc được suy nghĩ của bạn (một phép ẩn dụ cho máy tính của bạn). Bí mật của bạn đã được biết nên không thể giấu được. Điều duy nhất bạn có thể làm là làm xáo trộn những gì đối thủ đã có thể nhìn thấy.
Mục đích của iO là làm cho hai hàm hoặc phép tính trở nên khó hiểu như nhau. Nếu bạn biến hai phép tính thành một dạng không thể phân biệt được với nhau thì bạn có thể ẩn cách thức hoạt động của chương trình. Nếu bạn không thể phân biệt được sự khác biệt giữa hai chương trình, thì bạn không biết chương trình nào trong hai chương trình đang được thực thi và không thể suy ra thông tin nào từ một trong hai chương trình, ngoài việc cả hai đều thực hiện cùng một chức năng. Cả hai chương trình đều lấy cùng một đầu vào và tạo ra cùng một đầu ra, nhưng iO làm điều đó nên không ai có thể tìm ra cách thực hiện.
Với iO, bạn có thể che giấu cấu trúc của mọi loại chức năng, bao gồm gần như tất cả các chức năng tạo nên mật mã. Nói cách khác, bằng cách che khuất gần như mọi thứ, bạn đạt được mật mã có thể lập trình cho mục đích chung nhất mà trên đó các nguyên thủy khác có thể được lập trình trên đó.
Về mặt kỹ thuật, có một hộp đen lớn hơn iO. Theo nghĩa đen, nó được gọi là che giấu hộp đen. Nhưng điều đó vẫn là không thể.
Không ai biết cách xây dựng iO cho đến năm 2013, khi các bản đồ đa tuyến được đề xuất bởi Garg, Gentry, Halevi, Raykova, Sahai, Waters. Một chương trình máy tính có thể được chia nhỏ như những mảnh ghép rồi bị che khuất bằng các bản đồ đa tuyến. Các phần bị che khuất có thể được tập hợp lại để đạt được chức năng tương tự như chương trình gốc mà không để lộ hoạt động bên trong của nó.
Bản đồ đa tuyến tính là sự khái quát hóa của các bản đồ hoặc cặp song tuyến tính được sử dụng trong Mật mã đường cong Elliptic (ECC). Mặc dù bản đồ song tuyến tính là nền tảng cho các sơ đồ mã hóa hiện có như chữ ký BLS nhưng chúng không đủ phức tạp hoặc đủ biểu cảm đối với iO. Và trong khi các bản đồ đa tuyến có thể xử lý iO, cấu trúc đại số mới được phát triển này dễ bị tấn công và không an toàn nên việc dựa vào các bản đồ đa tuyến thường không làm hài lòng các nhà mật mã học. Sân lại bị kẹt.
Sau đó, vào năm 2020, Jain, Lin và Sahai đã đề xuất một giải pháp tuy khác thường và mới mẻ nhưng lại đủ đơn giản để các nhà mật mã học suy luận và thay vì dựa vào các giả định mới được phát triển như bản đồ đa tuyến, phiên bản iO này có thể được xây dựng trên nhiều hơn nữa. các giả định tiêu chuẩn và có cơ sở đã được nghiên cứu trong nhiều thập kỷ như Học với lỗi (LWE). Với bước đột phá mới nhất này, iO lại trở nên khả thi. Chén thánh vẫn còn trong tầm tay.
Mỗi hệ thống mật mã được tạo thành từ các giả định toán học và kỹ thuật mã hóa khác nhau. Không có bước đột phá nào có thể giải quyết được tất cả các vấn đề trong một hệ thống. Thay vào đó, các khám phá tuân theo một loạt các bước nhỏ và bước nhảy vọt lớn không thể đoán trước làm thay đổi các giả định và kỹ thuật hiện có, từ đó dẫn đến nhiều đột phá và khám phá hơn. Và cứ mỗi khám phá thành công thì lại có nhiều khám phá khác lại không.
Trong một bài thuyết trình trên iO, Sahai đã mô tả lĩnh vực này như đang ở “vùng hoang dã chưa được đặt tên”, nơi thậm chí còn không rõ những gì chưa được hiểu và những vấn đề phù hợp cần giải quyết là gì.
Các nhóm như PSE chủ yếu làm việc ở khía cạnh thực tế hoặc ứng dụng của mật mã có thể lập trình, tập trung vào các nguyên thủy như ZK và MPC với các giả định có cơ sở vững chắc đã được thử nghiệm thực tế, tương đối tối ưu hóa và được cho là an toàn và hiệu quả. Mặc dù còn rất nhiều tối ưu hóa, nhưng ZK hiện đã chắc chắn nằm trong phạm vi thực tế. Nhưng cũng có lúc ZK bị giam giữ ở vùng hoang dã hoang sơ.
Để tối đa hóa số lượng các công cụ bảo vệ quyền riêng tư, bảo đảm an ninh, xác minh khiếu nại, hỗ trợ mật mã mà thế giới có quyền truy cập, ít nhất chúng ta nên nheo mắt về phía chân trời của những gì sắp xảy ra vì không ai có thể đoán trước được điều gì sẽ xảy ra. sẽ có hiệu lực trong 10 năm tới.
Bài thuyết trình của Sahai bao gồm một trích dẫn từ một bài báo trên tạp chí Nature năm 2003 của Steven Weinberg có tên là Bốn bài học vàng, nêu bật một lý do khác để nghiên cứu vấn đề hiện không thực tế.
“Khi tôi giảng dạy tại Viện Công nghệ Massachusetts vào cuối những năm 1960, một sinh viên nói với tôi rằng anh ấy muốn đi sâu vào thuyết tương đối rộng hơn là lĩnh vực tôi đang nghiên cứu, vật lý hạt cơ bản, bởi vì các nguyên lý của thuyết tương đối rộng đã được biết đến rộng rãi. , trong khi điều sau có vẻ như là một mớ hỗn độn đối với anh ta. Tôi chợt nhận ra rằng anh ấy vừa đưa ra một lý do hoàn toàn chính đáng để làm điều ngược lại… Lời khuyên của tôi là hãy giải quyết những rắc rối - đó là nơi hành động.”
Mật mã có thể lập trình đang được khám phá bởi nhiều nhóm bao gồm PSE và 0xPARC, những người đồng tổ chức sự kiện kéo dài 2 ngày có tên là Hội nghị về mật mã có thể lập trình diễn ra tại Istanbul, Thổ Nhĩ Kỳ vào ngày 16 và 17 tháng 11 năm 2023.
Hãy đến chào!
Hoặc tìm PSE trực tuyến trên Discord.