Việc liên kết các khóa mật mã với danh tính đã là vấn đề từ khi sự giới thiệu của công nghệ. Thách thức là cung cấp và duy trì ánh xạ công khai và nhất quán giữa danh tính và khóa công khai (mà những danh tính đó có khóa riêng). Nếu không có ánh xạ như vậy, các thông điệp được dự định là bí mật có thể trở nên tồi tệ - đôi khi với kết quả thảm khốc. Thách thức tương tự này cũng tồn tại trong web3.
Ba giải pháp khả thi hiện đang tồn tại. Hai cách tiếp cận cổ điển là thư mục khóa công khai và mã hóa dựa trên danh tính. Thứ ba là mã hóa dựa trên đăng ký, cho đến gần đây hoàn toàn là lý thuyết. Ba cách tiếp cận cung cấp sự đánh đổi khác nhau giữa ẩn danh, tương tác và hiệu quả, thoạt nghe có vẻ rõ ràng, nhưng cài đặt blockchain giới thiệu các khả năng và ràng buộc mới. Mục tiêu của bài đăng này là khám phá không gian thiết kế này và so sánh các phương pháp này khi được triển khai trên blockchain. Khi người dùng cần tính minh bạch và ẩn danh trên chuỗi, một chương trình RBE thực tế là người chiến thắng rõ ràng – vượt qua giả định tin cậy mạnh mẽ của mã hóa dựa trên danh tính, nhưng phải trả giá.
Cách tiếp cận cổ điển để liên kết các khóa mật mã với các danh tính là cơ sở hạ tầng khóa công khai (PKI), với một thư mục khóa công khai ở trung tâm. Cách tiếp cận này đòi hỏi một người gửi tiềm năng phải tương tác với một bên thứ ba đáng tin cậy (người duy trì thư mục, hoặc cơ quan chứng nhận) để gửi tin nhắn. Ngoài ra, trong môi trường web2, việc duy trì thư mục này có thể tốn kém, mệt mỏi và dễ gặp lỗi, và người dùng đang đối mặt với rủi ro củalạm dụng bởi cơ quan chứng nhận.
Những nhà mật mã học đã đề xuất các phương án thay thế để vượt qua các vấn đề với PKI. Năm 1984, Adi Shamir đề xuấtmã hóa dựa trên danh tính (IBE), trong đó người dùng được định danh — số điện thoại, email, tên miền ENS — được sử dụng như là khóa công khai. Điều này loại bỏ việc cần phải duy trì một thư mục khóa công khai nhưng đồng thời đưa ra chi phí là phải có một bên thứ ba tin cậy (người tạo khóa). Dan Boneh và Matthew Franklin đã cấu trúc IBE thực tiễn đầu tiêntrong năm 2001, nhưng IBE vẫn chưa nhận được sự thông dụng rộng rãi trừ trong hệ sinh thái đóng như doanh nghiệp hoặc các triển khai của chính phủ, có lẽ do giả định tin tưởng mạnh mẽ. (Như chúng ta sẽ thấy bên dưới, giả định này có thể được giảm bớt một phần bằng cách phụ thuộc vào một nhóm đồng thuận tin cậy của các bên thay vì, mà một blockchain có thể dễ dàng tạo điều kiện.)
Một lựa chọn thứ ba, mã hóa dựa trên đăng ký (RBE), đã đượcđề xuất vào năm 2018. RBE duy trì kiến trúc chung giống như IBE nhưng thay thế trình tạo khóa đáng tin cậy bằng một "trình quản lý khóa" minh bạch chỉ thực hiện tính toán trên dữ liệu công khai (cụ thể, nó tích lũy khóa công khai thành một loại "tiêu hóa" có sẵn công khai). Tính minh bạch của người quản lý chính này làm cho cài đặt blockchain – nơi một hợp đồng thông minh có thể lấp đầy vai trò của người quản lý – một sự phù hợp tự nhiên cho RBE. RBE là lý thuyết cho đến năm 2022, khi các đồng tác giả của tôi và tôi giới thiệu xây dựng RBE hiệu quả thực tế đầu tiên.
Không gian thiết kế này phức tạp, và để so sánh những kế hoạch này yêu cầu xem xét nhiều chiều hướng. Để giữ mọi thứ đơn giản hơn, tôi sẽ đưa ra hai giả định:
Tôi sẽ thảo luận vào cuối về cách mà mỗi yếu tố bổ sung này có thể ảnh hưởng đến ba giải pháp tiềm năng của chúng tôi.
Tóm tắt: Bất kỳ ai đều có thể thêm một (id, pk) vào bảng trên chuỗi (thư mục) bằng cách gọi hợp đồng thông minh, miễn là ID chưa được yêu cầu.
Một PKI phi tập trung về cơ bản là một hợp đồng thông minh giữ một thư mục về danh tính và khóa công khai tương ứng của họ. Ví dụ, Đăng ký Ethereum Name Service (ENS)duy trì một bản đồ tên miền (“nhận dạng”) và siêu dữ liệu tương ứng của chúng, bao gồm các địa chỉ mà chúng giải quyết đến (từ giao dịch nơi có thể tạo ra một khóa công khai). Một PKI phi tập trung sẽ cung cấp tính năng đơn giản hơn nữa: danh sách được duy trì bởi hợp đồng sẽ chỉ lưu trữ khóa công khai tương ứng với mỗi ID.
Để đăng ký, người dùng tạo một cặp khóa (hoặc sử dụng cặp khóa được tạo trước đó) và gửi ID và khóa công khai của nó đến hợp đồng (có thể cùng với một số khoản thanh toán). Hợp đồng kiểm tra xem ID chưa được xác nhận quyền sở hữu hay chưa và nếu không, nó sẽ thêm ID và khóa công khai vào thư mục. Tại thời điểm này, bất kỳ ai cũng có thể mã hóa tin nhắn cho người dùng đã đăng ký bằng cách yêu cầu hợp đồng cung cấp khóa công khai tương ứng với ID. (Nếu người gửi đã mã hóa thứ gì đó cho người dùng này trước đó, họ không phải hỏi lại hợp đồng.) Với khóa công khai, người gửi có thể mã hóa tin nhắn của mình như bình thường và gửi bản mã cho người nhận, người có thể sử dụng khóa bí mật tương ứng để khôi phục tin nhắn.
Hãy xem xét các thuộc tính của phương pháp này.
Mặt tiêu cực của sổ cái:
Mặt tích cực là:
Khi nào bạn có thể sử dụng một thư mục khóa công khai? Một thư mục khóa công khai phi tập trung dễ dàng để thiết lập và quản lý, vì vậy nó là sự lựa chọn cơ bản tốt. Tuy nhiên, nếu chi phí lưu trữ hoặc quyền riêng tư là một vấn đề, một trong những lựa chọn khác dưới đây có thể là một lựa chọn tốt hơn.
Tóm lược: Danh tính của người dùng là khóa công khai của họ. Cần có một bên thứ ba hoặc các bên thứ ba tin cậy để phát hành khóa và giữ một bí mật chủ (cửa rọi) cho suốt thời gian hoạt động của hệ thống.
Trong IBE, người dùng không tạo ra cặp khóa riêng của mình mà thay vào đó đăng ký với một trình tạo khóa đáng tin cậy. Trình tạo khóa có một cặp khóa 'chủ' (msk, mpk trong hình vẽ). Dựa trên ID của người dùng, trình tạo khóa sử dụng khóa bí mật chủ msk và ID để tính toán một khóa bí mật cho người dùng. Khóa bí mật đó phải được truyền đến người dùng qua một kênh an toàn (có thể thiết lập với một giao thức trao đổi khóa).
IBE tối ưu hóa trải nghiệm của người gửi: Nó tải xuống mpk của trình tạo khóa một lần, sau đó nó có thể mã hóa một tin nhắn cho bất kỳ ID nào bằng cách sử dụng chính ID đó. Giải mã cũng đơn giản: một người dùng đã đăng ký có thể sử dụng khóa bí mật được cấp cho nó bởi trình tạo khóa để giải mã văn bản được mã hóa.
Khóa bí mật chủ của trình tạo khóa có tính bền vững hơn so với“chất thải độc hại” được tạo ra bởi các buổi lễ thiết lập đáng tin cậyđược sử dụng cho một số SNARK. Trình tạo khóa cần nó để phát hành bất kỳ khóa bí mật mới nào, vì vậy trình tạo khóa không thể xóa nó sau khi thiết lập như các tham gia trong lễ SNARK làm. Đó cũng là một thông tin nguy hiểm. Bất kỳ ai có msk đều có thể giải mã tất cả các tin nhắn được gửi đến bất kỳ người dùng nào trong hệ thống. Điều này có nghĩa là luôn có nguy cơ rò rỉ với hậu quả thảm khốc.
Ngay cả khi msk được giữ an toàn, mọi người dùng đăng ký trong hệ thống cần tin tưởng trình tạo khóa không đọc tin nhắn của nó, vì trình tạo khóa có thể giữ một bản sao khóa bí mật của người dùng hoặc tính toán lại từ msk bất cứ lúc nào. Thậm chí có thể trình tạo khóa có thể cấp khóa bí mật bị lỗi hoặc "bị ràng buộc" cho người dùng để giải mã tất cả các tin nhắn ngoại trừ một số tin nhắn bị cấm do trình tạo khóa xác định.
Niềm tin này thay vào đó có thể được phân phối trong một nhóm các máy tạo khóa, để người dùng chỉ cần tin tưởng một số ngưởi trong nhóm. Trong trường hợp đó, một số ít máy tạo khóa gian lận không thể khôi phục lại các khóa bí mật hoặc tính toán các khóa không tốt, và một kẻ tấn công sẽ phải xâm nhập vào nhiều hệ thống để đánh cắp toàn bộ bí mật chủ chốt.
Nếu người dùng đồng ý với giả định tin cậy này, (ngưỡng) IBE đem lại rất nhiều lợi ích:
Nhưng!
Khi nào bạn muốn sử dụng (ngưỡng) IBE? Nếu có một bên thứ ba hoặc các bên thứ ba đáng tin cậy và người dùng sẵn lòng tin tưởng họ, IBE cung cấp một lựa chọn tiết kiệm không gian (và do đó là rẻ hơn) so với việc đăng ký khóa trên chuỗi.
Tương tự như IBE, danh tính của người dùng được sử dụng như là khóa công khai của họ, nhưng bên thứ ba/ủy quyền tin cậy được thay thế bằng một bộ tích lũy minh bạch (được gọi là “người quản lý khóa”).
Trong phần này, tôi sẽ thảo luận về việc xây dựng RBE hiệu quả từ bài báo của tôi, vì khác với (theo kiến thức của tôi) chỉ có xây dựng thực tế khác, nó hiện có thể được triển khai trên một blockchain (dựa trên cặp thay vì dựa trên mạng tinh thể). Bất cứ khi nào tôi nói "RBE", tôi muốn nói đến cấu trúc cụ thể này, mặc dù một số tuyên bố có thể đúng với RBE nói chung.
Trong RBE, người dùng tạo cặp khóa của riêng mình và tính toán một số “giá trị cập nhật” (a trong hình) được suy ra từ khóa bí mật và chuỗi tham chiếu chung (CRS). Mặc dù sự hiện diện của một CRS có nghĩa là việc thiết lập không hoàn toàn không đáng tin cậy, CRS là powers-of-tauconstruction, which can betính toán phối hợp trên chuỗivà là an toàn miễn là có một đóng góp trung thành duy nhất.
Hợp đồng thông minh được thiết lập cho một số lượng người dùng dự kiến N, được nhóm lại thành các nhóm. Khi một người dùng đăng ký trong hệ thống, nó sẽ gửi ID, khóa công khai và giá trị cập nhật của mình đến hợp đồng thông minh. Hợp đồng thông minh duy trì một tập hợp các tham số công khai pp (khác với CRS), có thể được xem như một “bản tóm tắt” ngắn gọn của các khóa công khai của tất cả các bên đã đăng ký trong hệ thống. Khi nhận được yêu cầu đăng ký, nó thực hiện kiểm tra trên các giá trị cập nhật và nhân khóa công khai vào nhóm thích hợp của pp.
Người dùng đã đăng ký cũng cần duy trì một số “thông tin phụ trợ” ở địa phương, mà họ sử dụng để giúp giải mã và được thêm vào mỗi khi một người dùng mới đăng ký trong cùng một nhóm. Họ có thể tự cập nhật điều này bằng cách theo dõi blockchain để đăng ký trong nhóm của họ, hoặc hợp đồng thông minh có thể giúp bằng cách duy trì một danh sách các giá trị cập nhật nó nhận từ các đăng ký gần đây nhất (ví dụ, trong tuần trước), mà người dùng có thể lấy định kỳ (ít nhất một lần một tuần).
Người gửi trong hệ thống này tải xuống CRS một lần và thỉnh thoảng tải xuống phiên bản mới nhất của các tham số công khai. Đối với các tham số công khai, tất cả những gì quan trọng theo quan điểm của người gửi là chúng bao gồm khóa công khai của người nhận dự định; Nó không nhất thiết phải là phiên bản cập nhật nhất. Sau đó, người gửi có thể sử dụng CRS và các tham số công khai, cùng với ID người nhận, để mã hóa thư cho người nhận.
Sau khi nhận được một tin nhắn, người dùng kiểm tra thông tin phụ trợ được lưu trữ cục bộ của nó để kiểm tra giá trị qua một số kiểm tra. (Nếu không tìm thấy, điều đó có nghĩa là nó cần lấy thông tin cập nhật từ hợp đồng.) Sử dụng giá trị này và khóa bí mật của mình, người dùng có thể giải mã văn bản được mã hóa.
Rõ ràng, hệ thống này phức tạp hơn hai hệ thống khác. Nhưng nó yêu cầu ít lưu trữ trên chuỗi hơn thư mục khóa công khai trong khi tránh giả định niềm tin mạnh mẽ của IBE.
Với tiện ích mở rộng:
Khi nào bạn có thể muốn sử dụng RBE? RBE sử dụng ít không gian lưu trữ trên chuỗi hơn một đăng ký trên chuỗi trong khi đồng thời tránh các giả định tin cậy mạnh cần thiết bởi IBE. So với một đăng ký, RBE cũng cung cấp đáng tin cậy về quyền riêng tư hơn cho người gửi. Tuy nhiên, vì RBE chỉ mới trở thành một lựa chọn có thể thực hiện được cho quản lý khóa, chúng tôi chưa chắc chắn về các kịch bản nào sẽ hưởng lợi nhiều nhất từ sự kết hợp này.hãy cho tôi biếtnếu bạn có bất kỳ ý tưởng nào.
Tôi ước tính chi phí (tính đến ngày 30 tháng 7 năm 2024) của việc triển khai từng phương pháp trong số ba phương pháp tiếp cận này trên chuỗi trong máy tính xách tay Colab nàyKết quả cho một hệ thống có khả năng ~900K người dùng (số lượng tên miền duy nhất được đăng ký trong ENS tại thời điểm viết bài này) được hiển thị trong bảng dưới đây.
PKI không có chi phí thiết lập và chi phí đăng ký thấp cho mỗi người dùng, trong khi IBE có chi phí thiết lập nhỏ và đăng ký thực tế miễn phí cho mỗi người dùng. RBE có chi phí thiết lập cao hơn và chi phí đăng ký cao bất ngờ, mặc dù yêu cầu lưu trữ trên chuỗi thấp.
Phần lớn chi phí đăng ký (giả sử tính toán được thực hiện trên L2) đến từ thực tế là các bên phải cập nhật một phần của các tham số công khai trong lưu trữ liên tục, điều này làm tăng thêm chi phí đăng ký cao.
Mặc dù RBE đắt hơn các phương án thay thế, nhưng phân tích này cho thấy nó có thể triển khai được trên Ethereum mainnet một cách khả thi ngay hôm nay - mà không cần giả định rủi ro tiềm ẩn của PKI hoặc IBE. Và đó là trước các tối ưu hóa như triển khai nhiều phiên bản nhỏ hơn (và do đó rẻ hơn) hoặc sử dụng dữ liệu blob. Với những ưu điểm của mình như độ ẩn danh mạnh hơn và giả định tin cậy giảm đi, RBE có thể hấp dẫn đối với những người quan tâm đến sự riêng tư và các thiết lập không đáng tin cậy.
Noemi Glaeserlà một ứng cử viên tiến sĩ trong Khoa học Máy tính tại Đại học Maryland và Viện Max Planck cho Bảo mật và Quyền riêng tư và là một thực tập nghiên cứu tại a16z crypto trong mùa hè năm '23. Cô ấy là người nhận Học bổng Nghiên cứu Sau đại học NSF, và trước đó cô ấy là một thực tập nghiên cứu tại NTT Research.
Trong trường hợp của một thư mục khóa công khai, việc xử lý cập nhật và thu hồi khóa là đơn giản: để thu hồi một khóa, một bên yêu cầu hợp đồng xóa nó khỏi thư mục. Để cập nhật một khóa, mục nhập (id, pk) được ghi đè bằng một khóa mới thành (id, pk’).
Để thu hồi trong IBE, Boneh và Franklin đề nghị người dùng cập nhật định kỳ khóa của họ (ví dụ: mỗi tuần) và người gửi bao gồm khoảng thời gian hiện tại trong chuỗi nhận dạng khi mã hóa (ví dụ: "Bob
Cấu trúc RBE hiệu quả của chúng tôi đã không xem xét các bản cập nhật và thu hồi, một công việc theo dõicung cấp một trình biên dịch có thể “nâng cấp” hệ thống của chúng tôi để thêm các chức năng này.
Sử dụng giải pháp khả dụng dữ liệu (DAS) để di chuyển lưu trữ trên chuỗi khỏi chuỗi chỉ ảnh hưởng đến phép tính cho danh mục khóa công khai và RBE, giảm cả hai về cùng một lượng lưu trữ trên chuỗi. RBE vẫn giữ được lợi thế của việc bảo mật hơn cho người gửi, vì nó vẫn tránh rò rỉ danh tính người nhận thông qua các mô hình truy cập. IBE đã có lưu trữ trên chuỗi tối thiểu và không có lợi ích từ DAS.
Việc liên kết các khóa mật mã với danh tính đã là vấn đề từ khi sự giới thiệu của công nghệ. Thách thức là cung cấp và duy trì ánh xạ công khai và nhất quán giữa danh tính và khóa công khai (mà những danh tính đó có khóa riêng). Nếu không có ánh xạ như vậy, các thông điệp được dự định là bí mật có thể trở nên tồi tệ - đôi khi với kết quả thảm khốc. Thách thức tương tự này cũng tồn tại trong web3.
Ba giải pháp khả thi hiện đang tồn tại. Hai cách tiếp cận cổ điển là thư mục khóa công khai và mã hóa dựa trên danh tính. Thứ ba là mã hóa dựa trên đăng ký, cho đến gần đây hoàn toàn là lý thuyết. Ba cách tiếp cận cung cấp sự đánh đổi khác nhau giữa ẩn danh, tương tác và hiệu quả, thoạt nghe có vẻ rõ ràng, nhưng cài đặt blockchain giới thiệu các khả năng và ràng buộc mới. Mục tiêu của bài đăng này là khám phá không gian thiết kế này và so sánh các phương pháp này khi được triển khai trên blockchain. Khi người dùng cần tính minh bạch và ẩn danh trên chuỗi, một chương trình RBE thực tế là người chiến thắng rõ ràng – vượt qua giả định tin cậy mạnh mẽ của mã hóa dựa trên danh tính, nhưng phải trả giá.
Cách tiếp cận cổ điển để liên kết các khóa mật mã với các danh tính là cơ sở hạ tầng khóa công khai (PKI), với một thư mục khóa công khai ở trung tâm. Cách tiếp cận này đòi hỏi một người gửi tiềm năng phải tương tác với một bên thứ ba đáng tin cậy (người duy trì thư mục, hoặc cơ quan chứng nhận) để gửi tin nhắn. Ngoài ra, trong môi trường web2, việc duy trì thư mục này có thể tốn kém, mệt mỏi và dễ gặp lỗi, và người dùng đang đối mặt với rủi ro củalạm dụng bởi cơ quan chứng nhận.
Những nhà mật mã học đã đề xuất các phương án thay thế để vượt qua các vấn đề với PKI. Năm 1984, Adi Shamir đề xuấtmã hóa dựa trên danh tính (IBE), trong đó người dùng được định danh — số điện thoại, email, tên miền ENS — được sử dụng như là khóa công khai. Điều này loại bỏ việc cần phải duy trì một thư mục khóa công khai nhưng đồng thời đưa ra chi phí là phải có một bên thứ ba tin cậy (người tạo khóa). Dan Boneh và Matthew Franklin đã cấu trúc IBE thực tiễn đầu tiêntrong năm 2001, nhưng IBE vẫn chưa nhận được sự thông dụng rộng rãi trừ trong hệ sinh thái đóng như doanh nghiệp hoặc các triển khai của chính phủ, có lẽ do giả định tin tưởng mạnh mẽ. (Như chúng ta sẽ thấy bên dưới, giả định này có thể được giảm bớt một phần bằng cách phụ thuộc vào một nhóm đồng thuận tin cậy của các bên thay vì, mà một blockchain có thể dễ dàng tạo điều kiện.)
Một lựa chọn thứ ba, mã hóa dựa trên đăng ký (RBE), đã đượcđề xuất vào năm 2018. RBE duy trì kiến trúc chung giống như IBE nhưng thay thế trình tạo khóa đáng tin cậy bằng một "trình quản lý khóa" minh bạch chỉ thực hiện tính toán trên dữ liệu công khai (cụ thể, nó tích lũy khóa công khai thành một loại "tiêu hóa" có sẵn công khai). Tính minh bạch của người quản lý chính này làm cho cài đặt blockchain – nơi một hợp đồng thông minh có thể lấp đầy vai trò của người quản lý – một sự phù hợp tự nhiên cho RBE. RBE là lý thuyết cho đến năm 2022, khi các đồng tác giả của tôi và tôi giới thiệu xây dựng RBE hiệu quả thực tế đầu tiên.
Không gian thiết kế này phức tạp, và để so sánh những kế hoạch này yêu cầu xem xét nhiều chiều hướng. Để giữ mọi thứ đơn giản hơn, tôi sẽ đưa ra hai giả định:
Tôi sẽ thảo luận vào cuối về cách mà mỗi yếu tố bổ sung này có thể ảnh hưởng đến ba giải pháp tiềm năng của chúng tôi.
Tóm tắt: Bất kỳ ai đều có thể thêm một (id, pk) vào bảng trên chuỗi (thư mục) bằng cách gọi hợp đồng thông minh, miễn là ID chưa được yêu cầu.
Một PKI phi tập trung về cơ bản là một hợp đồng thông minh giữ một thư mục về danh tính và khóa công khai tương ứng của họ. Ví dụ, Đăng ký Ethereum Name Service (ENS)duy trì một bản đồ tên miền (“nhận dạng”) và siêu dữ liệu tương ứng của chúng, bao gồm các địa chỉ mà chúng giải quyết đến (từ giao dịch nơi có thể tạo ra một khóa công khai). Một PKI phi tập trung sẽ cung cấp tính năng đơn giản hơn nữa: danh sách được duy trì bởi hợp đồng sẽ chỉ lưu trữ khóa công khai tương ứng với mỗi ID.
Để đăng ký, người dùng tạo một cặp khóa (hoặc sử dụng cặp khóa được tạo trước đó) và gửi ID và khóa công khai của nó đến hợp đồng (có thể cùng với một số khoản thanh toán). Hợp đồng kiểm tra xem ID chưa được xác nhận quyền sở hữu hay chưa và nếu không, nó sẽ thêm ID và khóa công khai vào thư mục. Tại thời điểm này, bất kỳ ai cũng có thể mã hóa tin nhắn cho người dùng đã đăng ký bằng cách yêu cầu hợp đồng cung cấp khóa công khai tương ứng với ID. (Nếu người gửi đã mã hóa thứ gì đó cho người dùng này trước đó, họ không phải hỏi lại hợp đồng.) Với khóa công khai, người gửi có thể mã hóa tin nhắn của mình như bình thường và gửi bản mã cho người nhận, người có thể sử dụng khóa bí mật tương ứng để khôi phục tin nhắn.
Hãy xem xét các thuộc tính của phương pháp này.
Mặt tiêu cực của sổ cái:
Mặt tích cực là:
Khi nào bạn có thể sử dụng một thư mục khóa công khai? Một thư mục khóa công khai phi tập trung dễ dàng để thiết lập và quản lý, vì vậy nó là sự lựa chọn cơ bản tốt. Tuy nhiên, nếu chi phí lưu trữ hoặc quyền riêng tư là một vấn đề, một trong những lựa chọn khác dưới đây có thể là một lựa chọn tốt hơn.
Tóm lược: Danh tính của người dùng là khóa công khai của họ. Cần có một bên thứ ba hoặc các bên thứ ba tin cậy để phát hành khóa và giữ một bí mật chủ (cửa rọi) cho suốt thời gian hoạt động của hệ thống.
Trong IBE, người dùng không tạo ra cặp khóa riêng của mình mà thay vào đó đăng ký với một trình tạo khóa đáng tin cậy. Trình tạo khóa có một cặp khóa 'chủ' (msk, mpk trong hình vẽ). Dựa trên ID của người dùng, trình tạo khóa sử dụng khóa bí mật chủ msk và ID để tính toán một khóa bí mật cho người dùng. Khóa bí mật đó phải được truyền đến người dùng qua một kênh an toàn (có thể thiết lập với một giao thức trao đổi khóa).
IBE tối ưu hóa trải nghiệm của người gửi: Nó tải xuống mpk của trình tạo khóa một lần, sau đó nó có thể mã hóa một tin nhắn cho bất kỳ ID nào bằng cách sử dụng chính ID đó. Giải mã cũng đơn giản: một người dùng đã đăng ký có thể sử dụng khóa bí mật được cấp cho nó bởi trình tạo khóa để giải mã văn bản được mã hóa.
Khóa bí mật chủ của trình tạo khóa có tính bền vững hơn so với“chất thải độc hại” được tạo ra bởi các buổi lễ thiết lập đáng tin cậyđược sử dụng cho một số SNARK. Trình tạo khóa cần nó để phát hành bất kỳ khóa bí mật mới nào, vì vậy trình tạo khóa không thể xóa nó sau khi thiết lập như các tham gia trong lễ SNARK làm. Đó cũng là một thông tin nguy hiểm. Bất kỳ ai có msk đều có thể giải mã tất cả các tin nhắn được gửi đến bất kỳ người dùng nào trong hệ thống. Điều này có nghĩa là luôn có nguy cơ rò rỉ với hậu quả thảm khốc.
Ngay cả khi msk được giữ an toàn, mọi người dùng đăng ký trong hệ thống cần tin tưởng trình tạo khóa không đọc tin nhắn của nó, vì trình tạo khóa có thể giữ một bản sao khóa bí mật của người dùng hoặc tính toán lại từ msk bất cứ lúc nào. Thậm chí có thể trình tạo khóa có thể cấp khóa bí mật bị lỗi hoặc "bị ràng buộc" cho người dùng để giải mã tất cả các tin nhắn ngoại trừ một số tin nhắn bị cấm do trình tạo khóa xác định.
Niềm tin này thay vào đó có thể được phân phối trong một nhóm các máy tạo khóa, để người dùng chỉ cần tin tưởng một số ngưởi trong nhóm. Trong trường hợp đó, một số ít máy tạo khóa gian lận không thể khôi phục lại các khóa bí mật hoặc tính toán các khóa không tốt, và một kẻ tấn công sẽ phải xâm nhập vào nhiều hệ thống để đánh cắp toàn bộ bí mật chủ chốt.
Nếu người dùng đồng ý với giả định tin cậy này, (ngưỡng) IBE đem lại rất nhiều lợi ích:
Nhưng!
Khi nào bạn muốn sử dụng (ngưỡng) IBE? Nếu có một bên thứ ba hoặc các bên thứ ba đáng tin cậy và người dùng sẵn lòng tin tưởng họ, IBE cung cấp một lựa chọn tiết kiệm không gian (và do đó là rẻ hơn) so với việc đăng ký khóa trên chuỗi.
Tương tự như IBE, danh tính của người dùng được sử dụng như là khóa công khai của họ, nhưng bên thứ ba/ủy quyền tin cậy được thay thế bằng một bộ tích lũy minh bạch (được gọi là “người quản lý khóa”).
Trong phần này, tôi sẽ thảo luận về việc xây dựng RBE hiệu quả từ bài báo của tôi, vì khác với (theo kiến thức của tôi) chỉ có xây dựng thực tế khác, nó hiện có thể được triển khai trên một blockchain (dựa trên cặp thay vì dựa trên mạng tinh thể). Bất cứ khi nào tôi nói "RBE", tôi muốn nói đến cấu trúc cụ thể này, mặc dù một số tuyên bố có thể đúng với RBE nói chung.
Trong RBE, người dùng tạo cặp khóa của riêng mình và tính toán một số “giá trị cập nhật” (a trong hình) được suy ra từ khóa bí mật và chuỗi tham chiếu chung (CRS). Mặc dù sự hiện diện của một CRS có nghĩa là việc thiết lập không hoàn toàn không đáng tin cậy, CRS là powers-of-tauconstruction, which can betính toán phối hợp trên chuỗivà là an toàn miễn là có một đóng góp trung thành duy nhất.
Hợp đồng thông minh được thiết lập cho một số lượng người dùng dự kiến N, được nhóm lại thành các nhóm. Khi một người dùng đăng ký trong hệ thống, nó sẽ gửi ID, khóa công khai và giá trị cập nhật của mình đến hợp đồng thông minh. Hợp đồng thông minh duy trì một tập hợp các tham số công khai pp (khác với CRS), có thể được xem như một “bản tóm tắt” ngắn gọn của các khóa công khai của tất cả các bên đã đăng ký trong hệ thống. Khi nhận được yêu cầu đăng ký, nó thực hiện kiểm tra trên các giá trị cập nhật và nhân khóa công khai vào nhóm thích hợp của pp.
Người dùng đã đăng ký cũng cần duy trì một số “thông tin phụ trợ” ở địa phương, mà họ sử dụng để giúp giải mã và được thêm vào mỗi khi một người dùng mới đăng ký trong cùng một nhóm. Họ có thể tự cập nhật điều này bằng cách theo dõi blockchain để đăng ký trong nhóm của họ, hoặc hợp đồng thông minh có thể giúp bằng cách duy trì một danh sách các giá trị cập nhật nó nhận từ các đăng ký gần đây nhất (ví dụ, trong tuần trước), mà người dùng có thể lấy định kỳ (ít nhất một lần một tuần).
Người gửi trong hệ thống này tải xuống CRS một lần và thỉnh thoảng tải xuống phiên bản mới nhất của các tham số công khai. Đối với các tham số công khai, tất cả những gì quan trọng theo quan điểm của người gửi là chúng bao gồm khóa công khai của người nhận dự định; Nó không nhất thiết phải là phiên bản cập nhật nhất. Sau đó, người gửi có thể sử dụng CRS và các tham số công khai, cùng với ID người nhận, để mã hóa thư cho người nhận.
Sau khi nhận được một tin nhắn, người dùng kiểm tra thông tin phụ trợ được lưu trữ cục bộ của nó để kiểm tra giá trị qua một số kiểm tra. (Nếu không tìm thấy, điều đó có nghĩa là nó cần lấy thông tin cập nhật từ hợp đồng.) Sử dụng giá trị này và khóa bí mật của mình, người dùng có thể giải mã văn bản được mã hóa.
Rõ ràng, hệ thống này phức tạp hơn hai hệ thống khác. Nhưng nó yêu cầu ít lưu trữ trên chuỗi hơn thư mục khóa công khai trong khi tránh giả định niềm tin mạnh mẽ của IBE.
Với tiện ích mở rộng:
Khi nào bạn có thể muốn sử dụng RBE? RBE sử dụng ít không gian lưu trữ trên chuỗi hơn một đăng ký trên chuỗi trong khi đồng thời tránh các giả định tin cậy mạnh cần thiết bởi IBE. So với một đăng ký, RBE cũng cung cấp đáng tin cậy về quyền riêng tư hơn cho người gửi. Tuy nhiên, vì RBE chỉ mới trở thành một lựa chọn có thể thực hiện được cho quản lý khóa, chúng tôi chưa chắc chắn về các kịch bản nào sẽ hưởng lợi nhiều nhất từ sự kết hợp này.hãy cho tôi biếtnếu bạn có bất kỳ ý tưởng nào.
Tôi ước tính chi phí (tính đến ngày 30 tháng 7 năm 2024) của việc triển khai từng phương pháp trong số ba phương pháp tiếp cận này trên chuỗi trong máy tính xách tay Colab nàyKết quả cho một hệ thống có khả năng ~900K người dùng (số lượng tên miền duy nhất được đăng ký trong ENS tại thời điểm viết bài này) được hiển thị trong bảng dưới đây.
PKI không có chi phí thiết lập và chi phí đăng ký thấp cho mỗi người dùng, trong khi IBE có chi phí thiết lập nhỏ và đăng ký thực tế miễn phí cho mỗi người dùng. RBE có chi phí thiết lập cao hơn và chi phí đăng ký cao bất ngờ, mặc dù yêu cầu lưu trữ trên chuỗi thấp.
Phần lớn chi phí đăng ký (giả sử tính toán được thực hiện trên L2) đến từ thực tế là các bên phải cập nhật một phần của các tham số công khai trong lưu trữ liên tục, điều này làm tăng thêm chi phí đăng ký cao.
Mặc dù RBE đắt hơn các phương án thay thế, nhưng phân tích này cho thấy nó có thể triển khai được trên Ethereum mainnet một cách khả thi ngay hôm nay - mà không cần giả định rủi ro tiềm ẩn của PKI hoặc IBE. Và đó là trước các tối ưu hóa như triển khai nhiều phiên bản nhỏ hơn (và do đó rẻ hơn) hoặc sử dụng dữ liệu blob. Với những ưu điểm của mình như độ ẩn danh mạnh hơn và giả định tin cậy giảm đi, RBE có thể hấp dẫn đối với những người quan tâm đến sự riêng tư và các thiết lập không đáng tin cậy.
Noemi Glaeserlà một ứng cử viên tiến sĩ trong Khoa học Máy tính tại Đại học Maryland và Viện Max Planck cho Bảo mật và Quyền riêng tư và là một thực tập nghiên cứu tại a16z crypto trong mùa hè năm '23. Cô ấy là người nhận Học bổng Nghiên cứu Sau đại học NSF, và trước đó cô ấy là một thực tập nghiên cứu tại NTT Research.
Trong trường hợp của một thư mục khóa công khai, việc xử lý cập nhật và thu hồi khóa là đơn giản: để thu hồi một khóa, một bên yêu cầu hợp đồng xóa nó khỏi thư mục. Để cập nhật một khóa, mục nhập (id, pk) được ghi đè bằng một khóa mới thành (id, pk’).
Để thu hồi trong IBE, Boneh và Franklin đề nghị người dùng cập nhật định kỳ khóa của họ (ví dụ: mỗi tuần) và người gửi bao gồm khoảng thời gian hiện tại trong chuỗi nhận dạng khi mã hóa (ví dụ: "Bob
Cấu trúc RBE hiệu quả của chúng tôi đã không xem xét các bản cập nhật và thu hồi, một công việc theo dõicung cấp một trình biên dịch có thể “nâng cấp” hệ thống của chúng tôi để thêm các chức năng này.
Sử dụng giải pháp khả dụng dữ liệu (DAS) để di chuyển lưu trữ trên chuỗi khỏi chuỗi chỉ ảnh hưởng đến phép tính cho danh mục khóa công khai và RBE, giảm cả hai về cùng một lượng lưu trữ trên chuỗi. RBE vẫn giữ được lợi thế của việc bảo mật hơn cho người gửi, vì nó vẫn tránh rò rỉ danh tính người nhận thông qua các mô hình truy cập. IBE đã có lưu trữ trên chuỗi tối thiểu và không có lợi ích từ DAS.