Tác giả: ZAMA, Biên dịch: Golden Finance xiaozou

fhEVM là một giao thức hợp đồng thông minh bảo mật EVM sử dụng mã hóa đồng dạng hoàn toàn do dự án mã hóa đồng dạng hoàn toàn ZAMA phát triển.

Là một cơ chế lưu trữ và xử lý dữ liệu phi tập trung, blockchain yêu cầu tính minh bạch để các thành viên mạng có thể đạt được sự đồng thuận về trạng thái của hệ thống. Bản thân tính minh bạch này đặt ra những thách thức lớn về quyền riêng tư, vì mọi dữ liệu trên chuỗi đều được phân phối rộng rãi và hiển thị công khai, ngay cả khi ẩn sau các địa chỉ ẩn danh.

Làm thế nào để giải quyết thách thức này trong khi vẫn đảm bảo an ninh mạnh mẽ trên các blockchain hiện có là một lĩnh vực nghiên cứu đang được khám phá. Nếu không có giải pháp, tính minh bạch của blockchain có thể cản trở việc áp dụng một số ứng dụng hữu ích, do đó việc sử dụng blockchain rộng rãi phụ thuộc vào việc giải quyết thách thức về quyền riêng tư này.

Mục tiêu của fhEVM là giải quyết thách thức này cho các blockchain mục đích chung (Turing-complete) như Ethereum. Chúng tôi tin rằng cách duy nhất để phát triển hợp đồng thông minh có thể mở rộng quy mô là không yêu cầu nhà phát triển phải có chuyên môn về mật mã. Do đó, các giải pháp của chúng tôi được thiết kế để mang lại trải nghiệm trực quan và mượt mà cho nhà phát triển. Ngoài ra, các giải pháp bảo vệ quyền riêng tư thành công phải hỗ trợ các trường hợp sử dụng và mẫu thiết kế blockchain phổ biến, chẳng hạn như dễ dàng kết hợp dữ liệu từ nhiều người dùng khác nhau, lưu trữ dữ liệu được mã hóa trên chuỗi và biên soạn hợp đồng thông minh.

Giải pháp chúng tôi đề xuất dựa trên sự kết hợp giữa Mã hóa đồng dạng hoàn toàn (FHE) và Giao thức ngưỡng. Mọi dữ liệu đều được lưu trữ trên chuỗi và mọi người đều có thể truy cập, một số dữ liệu được mã hóa. Do tính chất xác định của việc đánh giá hàm đồng cấu, mọi người đều có thể thực hiện tính toán trên dữ liệu được mã hóa và sử dụng các giao thức đồng thuận thông thường. Điều này cũng cố tình bảo toàn lợi ích chính của tính minh bạch của blockchain: quá trình tính toán vẫn được công khai, trong khi chỉ có dữ liệu đang được tính toán là bị ẩn.

1. Đóng góp của fhEVM

Bài viết này sẽ giới thiệu các thành phần blockchain sáng tạo và cách sử dụng chúng để xây dựng blockchain dựa trên Máy ảo Ethereum (EVM) hỗ trợ tính toán các giá trị được mã hóa. Những đóng góp cụ thể như sau:

fhEVM, tích hợp thư viện FHE nguồn mở TFHE-rs [Zam22] của Zama vào EVM thông thường, hiển thị các hoạt động đồng hình dưới dạng hợp đồng được biên dịch trước.

Một cơ chế giải mã [Sma23] dựa trên giao thức ngưỡng phân tán [DDE+23] ngăn chặn các hoạt động xấu của hợp đồng thông minh độc hại nhưng linh hoạt và thân thiện với các nhà phát triển hợp đồng thông minh trung thực.

Thư viện Solidity giúp các nhà phát triển hợp đồng thông minh dễ dàng sử dụng dữ liệu được mã hóa trong hợp đồng của họ mà không cần thay đổi công cụ biên dịch.

Xin lưu ý rằng mặc dù bản trình bày ở đây dựa trên blockchain EVM nhưng cách tiếp cận của chúng tôi rất tổng quát và cũng có thể hỗ trợ các blockchain khác, chẳng hạn như blockchain dựa trên WASM. Ngoài ra, có thể dễ dàng sử dụng các cơ chế giải mã không ngưỡng.

2. Các trường hợp sử dụng

Nâng cao giá trị mật mã trên chuỗi và thậm chí tiết lộ nhiều trường hợp sử dụng của blockchain, một số trong đó được liệt kê dưới đây.

2.1 Mã thông báo ERC-20 được mã hóa

Tiêu chuẩn mã thông báo ERC-20 đồng nhất là một tiêu chuẩn quan trọng cho blockchain. Tuy nhiên, do tính chất công khai của hệ thống blockchain, số dư cá nhân của người nắm giữ token ERC-20 là công khai và việc cung cấp địa chỉ ẩn danh có thể dẫn đến các vấn đề về quyền riêng tư cá nhân. Vì fhEVM hỗ trợ sử dụng các giá trị được mã hóa trong hợp đồng thông minh nên có thể xây dựng phiên bản mã hóa của tiêu chuẩn mã thông báo ERC-20. Để thực hiện, bạn chỉ cần thay đổi kiểu dữ liệu của số dư từ số nguyên sang số nguyên được mã hóa và thay thế từng phép toán bằng phép toán FHE tương ứng.

2.2 Bắn mù

Đấu giá kín giá đầu tiên cho phép người trả giá gửi giá thầu riêng tư để không ai biết họ trả giá bao nhiêu. Khi thời hạn đấu giá kết thúc, người trả giá cao nhất sẽ được xác định và tuyên bố là người chiến thắng. Đấu giá ẩn khuyến khích người trả giá không cao hơn mức họ nghĩ giá trị của món đồ. Định dạng đấu giá này có thể được triển khai hoàn toàn trên chuỗi bằng cách sử dụng các giá trị được mã hóa, mà không yêu cầu một thực thể đáng tin cậy thực hiện tính toán trên các giá thầu dạng văn bản thuần túy, không giống như các giải pháp dựa trên cam kết hoặc bằng chứng không kiến ​​thức. Bằng cách sử dụng mã thông báo tiền điện tử ERC-20, người đấu giá chỉ cần chuyển số tiền điện tử vào hợp đồng thông minh đấu giá ẩn, sau đó so sánh giá thầu để xác định và tuyên bố người chiến thắng.

2.3 DAO tăng cường quyền riêng tư

Các Tổ chức Tự trị Phi tập trung (DAO) đang ngày càng trở nên phổ biến trong không gian blockchain như một cách để tạo ra các cộng đồng tự quản mà không cần một cơ quan trung ương. Họ dựa vào các hợp đồng thông minh để thực thi các quy tắc và đưa ra quyết định dựa trên phiếu bầu của các thành viên. Nói chung, DAO có kho bạc riêng được các thành viên quản lý thông qua các đề xuất. Các đề xuất sẽ được các thành viên bỏ phiếu và chỉ có thể được thực hiện sau khi được bỏ phiếu thông qua. Hệ thống bỏ phiếu ở đây có thể được triển khai thông qua hợp đồng token ERC-20, trong đó số lượng token mà thành viên nắm giữ phản ánh quyền biểu quyết của họ. Do đó, các giá trị được mã hóa trên chuỗi cho phép các thành viên DAO bỏ phiếu một cách bí mật.

Bằng cách sử dụng két tiền điện tử, DAO cũng có thể cân bằng sân chơi trong các cuộc đấu giá bằng cách ngăn không cho người khác biết trước thông tin chi tiết về tài trợ (tức là khả năng đấu giá).

2.4 Định danh danh tính phi tập trung

Danh tính phi tập trung (DID) là một loại định danh mới cung cấp cho cá nhân và tổ chức danh tính kỹ thuật số có thể xác minh và tự chủ. Bằng cách sử dụng dữ liệu được mã hóa, các hợp đồng thông minh trong fhEVM có thể lưu trữ và xử lý thông tin nhạy cảm liên quan đến danh tính người dùng một cách an toàn, do đó bảo vệ quyền riêng tư của người dùng trong suốt quá trình.

Ví dụ, một cơ quan trung ương hoặc chính phủ có thể công bố ngày sinh được mã hóa của người dùng được ủy quyền trong hợp đồng thông minh. Các bên được ủy quyền sau đó có thể truy vấn hợp đồng thông minh khi cần thiết để lấy thông tin về độ tuổi của người dùng (ví dụ: họ đã đủ tuổi hợp pháp hay chưa).

3. Công trình liên quan

Có nhiều cách để thực hiện tính toán hợp đồng thông minh trên các đầu vào riêng tư. Trong khi một số giải pháp có thể sử dụng nhiều công nghệ, chúng tôi thường nhóm các công nghệ này thành bốn loại:

Bằng chứng không kiến ​​thức (ZK), môi trường thực thi đáng tin cậy (TEE), tính toán đa bên an toàn (MPC) và mã hóa đồng cấu (HE).

3.1 Bằng chứng không kiến ​​thức (ZK)

Bằng chứng ZK giải quyết các thách thức về quyền riêng tư bằng cách chỉ lưu trữ dữ liệu đã gửi và bằng chứng tính toán chính xác trên chuỗi. Tuy nhiên, dữ liệu này phải ở dạng văn bản thuần túy để có thể tính toán được, nghĩa là phải lưu trữ một bản sao văn bản thuần túy của dữ liệu ở đâu đó. Cách này hiệu quả khi quá trình tính toán chỉ yêu cầu dữ liệu từ một bên, nhưng còn những ứng dụng yêu cầu dữ liệu từ nhiều bên thì sao?

ZCash [BCG+14] và Monero [Mon23] cung cấp tính ẩn danh cho cả người gửi và người nhận trong các giao dịch, đồng thời sử dụng các cam kết Pedersen [Ped92] để bảo vệ quyền riêng tư của số lượng mã thông báo được giao dịch.

Zexe [BCG+20] và VeriZexe [XCZ+23] cho phép đánh giá các tập lệnh tùy ý trong các chuỗi khối giống như zerocash bằng cách sử dụng zkSNARK. Hạn chế có liên quan là do nhiều hợp đồng thông minh hoặc nhiều bên không thể truy cập trạng thái được mã hóa trên chuỗi nên dữ liệu đầu vào phải được ít nhất một bên biết để tạo zkSNARK. Hiện tại, không thể cập nhật trạng thái được mã hóa bằng phương pháp này mà không làm rò rỉ thông tin.

Hawk [KMS+16] sử dụng bằng chứng ZK trong đó dữ liệu đầu vào cho hợp đồng thông minh được tiết lộ cho người quản lý đáng tin cậy thực hiện tính toán.

Giải pháp của chúng tôi là thực hiện tính toán trực tiếp trên dữ liệu được mã hóa, nghĩa là có thể dễ dàng tổng hợp và kết hợp dữ liệu từ nhiều người dùng và tính toán có thể được thực hiện trên chuỗi.

3.2 Môi trường thực thi đáng tin cậy (TEE)

Hệ thống blockchain dựa trên TEE chỉ lưu trữ dữ liệu được mã hóa trên chuỗi và thực hiện tính toán bằng cách giải mã dữ liệu trong vùng an toàn chứa khóa giải mã [YXC+18, KGM19, CZK+19, SCR23, Oas23, Pha23]. Tính bảo mật của các giải pháp như vậy phụ thuộc vào việc khóa giải mã có được lưu trữ an toàn trong vùng bảo mật hay không. Điều này khiến người dùng phụ thuộc vào phần cứng bảo mật và nhà sản xuất dựa vào cơ chế chứng thực từ xa.

Phương pháp enclave đã nhiều lần được chứng minh là dễ bị tấn công kênh phụ [VMW+18, LSG+18, KHF+19, vMK+21, TKK+22, vSSY+22], bao gồm các cuộc tấn công chỉ nhằm vào các mẫu truy cập bộ nhớ bị rò rỉ [JLLJ+23].

3.3 Tính toán đa bên (MPC)

zkHawk [BCT21] và V-zkHawk [BT22] sử dụng giao thức MPC để thay thế trình quản lý đáng tin cậy trong Hawk [KMS+16] và tất cả các bên tham gia cần phải tham gia trực tuyến.

Eagle [BCDF23] cải thiện kiến ​​trúc Hawk bằng cách cho phép khách hàng thuê ngoài dữ liệu đầu vào của họ cho công cụ MPC, sau đó công cụ này sẽ thực hiện các phép tính cho họ. Eagle cũng bổ sung các tính năng như nhận biết hủy bỏ và khả năng xác minh công khai vào công cụ MPC thuê ngoài. Mặc dù trong Eagle, các bên tham gia không nhất thiết phải trực tuyến mọi lúc, nhưng họ cần phải tương tác với công cụ MPC trong ít nhất một vòng để cung cấp thông tin đầu vào [DDN+16].

Mặc dù tài liệu màu vàng của họ rất chi tiết nhưng không có thông tin nào về cách Partisia [Par23] đạt được khả năng lưu trữ bảo vệ quyền riêng tư.

3.4 Mã hóa đồng cấu (HE)

Một số giải pháp mã hóa đồng dạng dựa trên mã hóa đồng dạng một phần đã được đề xuất, hạn chế các loại hoạt động thực thi và do đó chỉ hỗ trợ các lớp hợp đồng thông minh và ứng dụng cụ thể. Ví dụ, Zether [BAZB20] sử dụng chương trình mã hóa dựa trên ElGamal để đảm bảo chuyển tiền một cách bảo mật. Nhưng khi nói đến các hợp đồng thông minh phức tạp hơn, điều này là không đủ để đạt được tính bảo mật hoàn toàn.

Zkay [SBG+19] định nghĩa cách sử dụng FHE để thực thi hợp đồng thông minh Ethereum, nhưng sử dụng bên thứ ba đáng tin cậy nắm giữ khóa giải mã. smartFHE [SWA23] xây dựng FHE bằng cách sử dụng BFV [FV12] làm khối xây dựng cơ bản (HE). Trong thiết lập của mình, mỗi ví sẽ chạy quy trình tạo khóa BFV cục bộ để có được cặp khóa công khai. Khóa của nhiều ví khác nhau, do đó, để thực hiện các hợp đồng thông minh phức tạp hơn, chẳng hạn như đấu thầu mù, cần phải chạy giao thức tạo khóa phân tán và tạo khóa chung (pk, sk). Sau đó, văn bản mã hóa liên quan đến phép tính cần được mã hóa lại theo pk mới và sau khi thực hiện cú đánh mù một cách đồng dạng, cần chạy giao thức giải mã phân tán để có được kết quả (mặc dù giao thức giải mã phân tán không được nêu chi tiết trong tài liệu của họ).

PESCA [Dai22] sử dụng kiến ​​trúc tương tự như của chúng tôi, với khóa công khai toàn cầu pk mà mọi người sử dụng để mã hóa số dư của riêng họ và giao thức FHE ngưỡng để giúp giải mã đầu ra. Một điểm khác biệt chính là giao thức ngưỡng của họ hoạt động theo modulo số nguyên tố q = p, trong khi giao thức ngưỡng của chúng tôi hoạt động trên vành Zq, trong đó q thường là lũy thừa của 2. Một điểm khác biệt nữa là trong PESCA, mô đun FHE ngưỡng q tăng theo cấp số nhân với số lượng bên n; nghĩa là, mô đun bản mã phải tăng theo hệ số (n!) 3 so với phương án không ngưỡng.

Đã có một số Đề xuất cải tiến Ethereum (EIP) khám phá ý tưởng bổ sung bộ lưu trữ được mã hóa đồng hình vào EVM.