Nâng cao quyền riêng tư và tuân thủ giao dịch Blockchain: Hiểu biết sâu sắc về thực tiễn kỹ thuật đổi mới

Bài viết này được dịch máy
Xem bản gốc

Tác giả: @gyllone @Madao-3 @xiangxiecrypto

1. Giới thiệu

Quyền riêng tư và tuân thủ quy định của chuỗi khối đang trải qua một sự thay đổi năng động, được lấy cảm hứng đáng kể từ các tác phẩm quan trọng của @vbuterin@ameensol , bài viết sâu sắc của họ, Quyền riêng tư và tuân thủ quy định của chuỗi khối: Hướng tới sự cân bằng thực tế cùng với bài đăng trên diễn đàn khai sáng về nhóm quyền riêng tư được cấp phép, đã có đặt ra một khuôn khổ nền tảng để hiểu được sự cân bằng phức tạp giữa việc duy trì quyền riêng tư trong giao dịch và tuân thủ các quy định pháp lý. Các tài nguyên này đi sâu vào những thách thức và giải pháp khả thi để đồng bộ hóa quyền riêng tư với sự tuân thủ trong bối cảnh blockchain ngày càng phát triển.

Điểm mấu chốt rút ra từ công việc của họ là khái niệm về 'bộ địa chỉ trung thực', điều này ảnh hưởng sâu sắc đến cách tiếp cận của chúng tôi nhằm đạt được giao thức bảo mật thế hệ thứ hai. Trong khuôn khổ này, Nhà cung cấp bộ hiệp hội (ASP) nổi lên như những người hỗ trợ tín dụng quan trọng trong hệ thống tín dụng zk, đưa ra cách tiếp cận có cấu trúc để đánh giá và chứng thực mức độ tin cậy của người dùng. Trong khi đó, bằng chứng thành viên đảm bảo rằng tất cả những người tham gia giao dịch đều là một phần của bộ địa chỉ trung thực, tăng cường tính bảo mật cho giao thức của chúng tôi và cung cấp một môi trường an toàn hơn, đáng tin cậy hơn cho người dùng.

Tóm lại, công việc của Buterin và Soleimani là công cụ hướng dẫn cách tiếp cận của chúng tôi nhằm phát triển một hệ thống blockchain nhằm đề cao cả quyền riêng tư và tuân thủ quy định. Bằng cách tích hợp các khái niệm này vào hệ thống của mình, chúng tôi đã có thể tạo ra giao thức thế hệ thứ hai an toàn hơn, hiệu quả hơn và đảm bảo quyền riêng tư hơn.

2. Thành phần

2.1 Cơ sở hạ tầng

Tài sản có thể thay thế của người dùng được băm vào Cây Merkle nhị phân. Giả sử nút lá được khởi tạo với giá trị không đổi H'=\mathrm{Hash}(0) H = H a s h ( 0 ) cho đến khi bất kỳ nội dung nào chiếm vị trí của lá, khi đó nút lá phải được cập nhật thành H= \mathrm{Hash}(định danh \ | \ số tiền \ | \ cam kết) H = H a s h ( i d e n t i f i e r | số lượng _ _ _ _ | c o m m i t m e n t ) , trong đó mã định danh i d e n t i f i r thẻ liên kết của nội dung này (ví dụ: địa chỉ của người dùng) , số tiền số lượng của tài sản được lưu trữ tại nút lá và cam kết = \ mathrm { Hash } ( secret ) co m m it m e n t = H ash ( mật ) , với mật mật là chìa khóa của người dùng sở hữu tài sản.

Đối với một vị trí nút lá chưa được sử dụng, người dùng có thể gửi một tài sản vào nhóm và nhận vị trí đó trong khi cung cấp tài sản và cam kết. Để rút tiền, người dùng phải cung cấp số tiền rút, hàm băm lá mới, tập hợp con số nhận dạng và bằng chứng báo lỗi.

cây merkletree
merkletree 1401×842 66.4 KB

2.2 Bằng chứng về UTXO

Thiết kế của cơ chế rút tiền tương tự như mô hình UTXO. Người dùng chọn một tập hợp các nút lá cho biết tài sản của họ sẽ sử dụng làm đầu vào, sau đó băm số dư còn lại vào một nút lá mới làm đầu ra. Sự khác biệt giữa tổng đầu vào và đầu ra là số tiền rút ra.

Bây giờ, giả sử danh sách nguồn ULO là L L , với mỗi ULO có chỉ số i\in L i L , trước tiên chúng ta phải xác minh sự tồn tại của nó và sau đó tính toán bộ trừ của lá tương ứng trong mạch như sau:

\begin{aligned}commitment_i&=\mathrm{Hash}(secret_i)\\nullifier_i&=\mathrm{Hash}(secret_i^{-1})\\leaf_i&=\mathrm{Hash}(identifier_i \ | \ money_i \ | \ cam kết_i)\\root&=\mathrm{MerkleProof}(leaf_i, \ path)\end{aligned}
c o m m i t m e n t _ = H a s h ( s e c r e ti ) _ n u l l i f i e r tôi = H a s h ( se c r e t 1 i ) _ l e a f i = H a s h ( i d e n t i f i e r i | một tháng một lần _ _ _ | c o m m i t m e n t i ) nguồn gốc _ _ = M e r k l e P r o of ( l e a fi , _ _ p a t h s )

Tiếp theo, chúng ta cần chứng minh rằng tổng lượng đầu vào bằng tổng lượng đầu ra trong mạch và sau đó tạo ra đầu ra lá. Các phương trình sau đây thể hiện điều này:

\begin{aligned}\sum_{i\in L}amount_i&=amount_w + money_o\\commitment&=\mathrm{Hash}(secret)\\leaf&=\mathrm{Hash}(mã định danh \ | \ money_o \ | \ commit) \end{căn chỉnh}
i L a m o u n i _ = một số tiền o u n t w + một số tiền o u n o sự cam kết _ _ _ _ _ _ _ = H a s h ( s e c r e t ) cây _ _ = H a s h ( i d e n t i f i er _ | một tháng một lần _ _ _ | sự cam kết ) _ _ _ _ _ _ _

Trong đó số tiền_w một số tiền w số tiền rút, số tiền_o một số tiền số tiền đầu ra.

Trong quy trình trên, chúng ta đặt \{nullifier_i\__{i\in L} { n u l l i f i e r i } i L , l e a f , gốc r o o tmoney_w a m o n t các biến công khai của mạch, được xây dựng bởi Plonk .

2.3 Bằng chứng vô tội

2.3.1 Tại sao không có bằng chứng Merkle

Bằng chứng về sự ngây thơ trong Mạng ZKT nằm ở việc chứng minh rằng đầu vào đến từ một tập hợp tùy ý do người dùng xây dựng, đồng thời đảm bảo rằng tập hợp này được cung cấp công khai cho bất kỳ ai. Thông thường, tập hợp này có thể được tổ chức thành Cây Merkle mới và người dùng phải chứng minh rằng mỗi đầu vào cũng là một nút lá của Cây Merkle (Thật vậy, các giải pháp tập trung vào quyền riêng tư như Tornado Cash v2 và Privacy Pools đã áp dụng kiểu thiết kế này ).

Rõ ràng, nếu tập hợp nhỏ thì quyền riêng tư của người dùng sẽ bị xâm phạm. Nếu tập hợp quá lớn, việc tạo cây Merkle tương ứng sẽ phải chịu chi phí gas rất lớn trên EVM, vì các hàm băm thân thiện với ZK (Poseidon Hash) không được EVM tích hợp nguyên thủy trong khi việc tạo cây Merkle có độ phức tạp là hàm băm O(n).

Chúng tôi áp dụng Plookup để xây dựng bằng chứng về tư cách thành viên, thay vì Bằng chứng Merkle. Có 2 ưu điểm chính của Plookup trong bằng chứng thành viên của chúng tôi.

  • Trong giai đoạn chứng minh, chúng tôi không cần thực hiện bằng chứng merkle cho từng ULO, điều này làm giảm đáng kể kích thước mạch.

  • Trong giai đoạn xác minh, chúng tôi không cần thực hiện các thao tác băm trong EVM. Chỉ cần một cặp đường cong elip.

2.3.2 Nhúng Plookup

Giả sử người dùng cung cấp một bộ định danh có kích thước m m từ các ULO nguồn, được ký hiệu là \mathbf{t} t , thì chúng ta đệm bộ \mathbf{t} t bằng 0 cho đến khi nó đáp ứng kích thước của mạch kích thước n n .

\mathbf{t}=\{\mathrm{id__0,...,\mathrm{id__{m-1},0,...,0\}
t = { tôi d 0 , . . . , tôi d m 1 , 0 , . . . , 0 }

Hơn nữa, chúng ta định nghĩa \mathbf{q_T} q T , thỏa mãn q_{Ti}\cdot t_i = 0 q T i t i = 0 :

q_{Ti}=\left\{\begin{matrix}0, &\ i \leq m\\1, &\ i > m\end{matrix}\right.
q T i = { 0 , tôi m 1 , tôi > tôi

Đặt \mathbf{f} f là bảng truy vấn:

f_i = q_{Ki}\cdot c_i=\left\{\begin{matrix}c_i, &\ \mathrm{if \ the} \ i\mathrm{\ Gate \ is \ a \ lookup \ Gate}\\0, &\ \mathrm{otherwise}\end{matrix}\right.
f i = q K i c i = { c i , nếu như các _ _ Tôi cổng _ _ _  _ Một tra cứu _ _ _ _ cổng _ _ _ 0 , nếu không thì _ _ _ _ _ _
q_{Ki}=\left\{\begin{matrix}1, &\ \mathrm{if \ the} \ i\mathrm{\ Gate \ is \ a \ lookup \ Gate}\\0, &\ \mathrm{ ngược lại}\end{matrix}\right.
q K i = { 1 , nếu như các _ _ Tôi cổng _ _ _  _ Một tra cứu _ _ _ _ cổng _ _ _ 0 , nếu không thì _ _ _ _ _ _

Trong đó c_i c i là nhân chứng đầu ra được xác định trong cổng số học của Plonk, chúng ta kích hoạt nó khi c_i c i đại diện cho nhân chứng định danh. q_{Ki} q K i là bộ chọn bật/tắt cổng tra cứu.

Khi đó chúng ta chỉ cần chứng minh \mathbf{f} f là tập con của \mathbf{t} t , bởi Plookup.

Trong giai đoạn xác minh, bên cạnh xác minh bằng chứng zk-SNARK, chúng tôi cũng xác minh bằng chứng mở đầu của \mathbf{t} t tại \{1, \omega, \omega^2, ..., \omega^{m-1 }\} { 1 , ω , ω 2 , . . . , ω m 1 } để xác nhận tính đúng đắn của từng mã định danh trong \mathbf{t} t mà không cần bất kỳ thao tác băm nào.

3. Nhà cung cấp bộ hiệp hội

Cơ chế Nhà cung cấp bộ hiệp hội (ASP) cho phép bên thứ ba giám sát danh sách thành viên. Tương tự như người chứng thực, ASP cung cấp dịch vụ chứng thực cho người dùng cuối. Địa chỉ liên quan, cùng với dữ liệu được chứng thực và niêm phong tiềm năng, sẽ được gửi đến một hợp đồng thông minh ASP được chỉ định. Trong Mạng ZKT, bất kỳ thực thể nào cũng có thể đăng ký làm ASP. Việc lựa chọn sử dụng ASP nào tùy thuộc vào lựa chọn của người dùng cuối và Dapp.

Danh mục dữ liệu có thể được xác định bởi ASP, cho phép hỗ trợ nhiều loại dữ liệu tiềm năng từ web2, chẳng hạn như điểm tín dụng, kết quả KYC, v.v. Để chứng thực mọi dữ liệu thu được thông qua giao thức Bảo mật lớp vận chuyển (TLS) tiêu chuẩn (ví dụ: HTTPS) và để đáp ứng khối lượng lớn dữ liệu tiềm năng, chúng tôi khuyên bạn nên sử dụng thuật toán kiểu MPC-TLS trong ASP. Cách tiếp cận này, ban đầu được DECO giới thiệu và được PADO cải tiến đáng kể, sẽ được trình bày chi tiết hơn trong bài viết này. Trong khuôn khổ này, người dùng có thể chứng minh với người chứng thực rằng dữ liệu thực sự có nguồn gốc từ các nguồn dự định mà không làm rò rỉ bất kỳ thông tin nào khác.

Chúng tôi liệt kê quy trình làm việc cơ bản trong hình dưới đây.

quy trình làm việc asp
quy trình làm việc asp 1920×1080 88,7 KB

Việc đưa dữ liệu vào danh sách thành viên là tùy ý. Tính linh hoạt này phát sinh từ các tình huống trong đó mục nhập dữ liệu có thể đơn giản là nhị phân (CÓ/KHÔNG). Trong những trường hợp như vậy, hợp đồng thông minh chấp nhận các địa chỉ được đánh dấu là CÓ, cho phép bỏ qua các mục nhập dữ liệu không cần thiết. Tuy nhiên, khả năng lập trình có thể được đưa ra khi dữ liệu được niêm phong có ý nghĩa bổ sung. Chẳng hạn, ASP có thể chứng thực điểm FICO của người dùng và lưu trữ điểm được mã hóa trong hợp đồng thông minh. Sau đó, Dapps có thể đưa ra các điều kiện rút tiền thích ứng hơn. Ví dụ: người dùng có điểm FICO cao hơn có thể đủ điều kiện rút số lượng token lớn hơn, trong khi những người có điểm FICO thấp hơn có thể chỉ có quyền truy cập vào số lượng nhỏ hơn. Điều này mang lại mức độ linh hoạt cao hơn cho việc thiết kế các ứng dụng đa dạng.

4. Giải pháp tăng tốc phía khách hàng

Trong nỗ lực nâng cao trải nghiệm người dùng và hiệu quả trong hệ thống Mạng ZKT, chúng tôi đã tập trung vào tối ưu hóa tính toán phía máy khách. Sự tối ưu hóa này rất quan trọng để giảm gánh nặng tính toán trên thiết bị người dùng và đẩy nhanh quá trình xác minh và giao dịch.

4.1 Tích hợp WebAssugging

Việc tích hợp WebAssembly (Wasm) của chúng tôi cho phép thực thi các quy trình tạo bằng chứng mật mã phức tạp trực tiếp trong trình duyệt của người dùng. Bằng cách biên dịch mã Rust vào WebAssugging, chúng tôi đã giảm đáng kể sự phụ thuộc vào các máy chủ tập trung, đồng thời cải thiện khả năng phản hồi và hiệu quả của hệ thống.

4.2 Tối ưu hóa tính toán cục bộ

4.2.1 Logic quyết định giao dịch

Trong mô hình UTXO của chúng tôi, tiền của mỗi người dùng được thể hiện dưới dạng LƯU Ý được mã hóa, mỗi khoản tương ứng với một lượng tài sản cụ thể (ví dụ: ETH). Hệ thống của chúng tôi lựa chọn một cách thông minh sự kết hợp LƯU Ý thích hợp để thực hiện các yêu cầu rút tiền. Ví dụ: nếu người dùng có LƯU Ý 1 ETH, 1 ETH, 2 ETH và 3 ETH và muốn rút 2,5 ETH, hệ thống của chúng tôi sẽ tự động sử dụng LƯU Ý 1 ETH, 1 ETH và 2 ETH.

4.2.2 Tạo bằng chứng gửi tiền mới

Sau khi sử dụng một số LƯU Ý nhất định cho các giao dịch, hệ thống của chúng tôi tạo ra bằng chứng gửi tiền mới tương ứng với số tiền còn lại. Tiếp tục ví dụ trước, sau khi chi tiêu 1 ETH, 1 ETH và 2 ETH NOTES, bằng chứng gửi tiền mới cho 1,5 ETH sẽ được tạo, đảm bảo quản lý tiền an toàn và hiệu quả sau giao dịch.

4.2.3 Triển khai trong Plugin Chrome và ứng dụng iOS

Để đạt được sự tối ưu hóa tính toán này, chúng tôi đã triển khai các chiến lược phù hợp trong plugin Chrome và ứng dụng iOS của mình. Plugin Chrome tối ưu hóa việc lựa chọn LƯU Ý và quy trình tạo bằng chứng mới, tận dụng khả năng xử lý của trình duyệt. Ngược lại, ứng dụng iOS của chúng tôi sử dụng công nghệ đa luồng để tăng tốc các tính toán này, tận dụng tối đa khả năng hiệu suất cao của thiết bị iOS.

4.3 Chiến lược bộ nhớ đệm

Chúng tôi đã triển khai các chiến lược bộ nhớ đệm để giảm các yêu cầu mạng và tính toán dư thừa. Dữ liệu chính, chẳng hạn như các phần của Cây Merkle, được lưu vào bộ nhớ đệm trên thiết bị người dùng để truy xuất nhanh trong các giao dịch hoặc xác minh tiếp theo, giảm lưu lượng mạng và nâng cao đáng kể hiệu suất tổng thể của hệ thống.

4.4 Nâng cao trải nghiệm người dùng

Cuối cùng, chúng tôi tập trung cao độ vào việc nâng cao trải nghiệm người dùng. Điều này không chỉ liên quan đến việc tối ưu hóa kỹ thuật mà còn liên quan đến cải tiến trong thiết kế giao diện. Chúng tôi đảm bảo rằng giao diện người dùng trực quan và quá trình giao dịch diễn ra liền mạch. Phản hồi theo thời gian thực và thông báo lỗi chi tiết nâng cao sự tin cậy và hài lòng của người dùng.

Tóm lại, giải pháp tăng tốc phía khách hàng của chúng tôi là chiến lược quan trọng để nâng cao hiệu suất của hệ thống Mạng ZKT. Thông qua các ứng dụng công nghệ và phương pháp này, chúng tôi không chỉ nâng cao tốc độ và hiệu quả của giao dịch mà còn tối ưu hóa trải nghiệm người dùng, biến ZKT Network trở thành nền tảng bảo mật blockchain mạnh mẽ và thân thiện hơn với người dùng.

5. Nó có nghĩa là gì?

Tại ZKT Network, chúng tôi tận tâm hiện thực hóa một tầm nhìn lớn: dẫn đầu một cuộc cách mạng công nghệ bằng cách cân bằng quyền riêng tư của giao dịch blockchain với các tiêu chuẩn tuân thủ toàn cầu. Sự đổi mới của chúng tôi vượt ra ngoài lĩnh vực kỹ thuật, khám phá những biên giới mới trong sự cân bằng giữa quyền riêng tư và tuân thủ.

Do đó, chúng tôi nhiệt liệt mời các nhà nghiên cứu và chuyên gia trong lĩnh vực blockchain tham gia vào dự án của chúng tôi, đưa ra phản hồi và đề xuất để thúc đẩy lĩnh vực này. ZKT Network mong đợi sự hiểu biết chuyên môn và sự cộng tác của bạn để phát triển giải pháp bảo mật blockchain toàn diện và hiệu quả hơn.

Chúng tôi cũng khuyến khích các thành viên cộng đồng khám phá các ứng dụng đổi mới dựa trên khuôn khổ của chúng tôi, theo yêu cầu của họ. ZKT Network mong muốn cùng bạn tưởng tượng về tương lai, cùng nhau đối mặt với các thử thách và xây dựng một thế giới blockchain an toàn, tuân thủ và sáng tạo hơn.

Tại ZKT Network, chúng tôi tin rằng thông qua trí tuệ tập thể và nỗ lực hợp tác, chúng tôi có thể đạt được sự tích hợp hoàn hảo giữa bảo vệ quyền riêng tư và tuân thủ, tạo ra một tương lai tràn đầy khả năng.

6. Tóm tắt

Bài đăng này khám phá kỹ lưỡng các phương pháp và thực tiễn để đạt được sự cân bằng giữa bảo vệ quyền riêng tư và tuân thủ quy định trong công nghệ blockchain. Bằng cách kết hợp các ứng dụng đổi mới của bộ địa chỉ trung thực, tín dụng zk và bằng chứng thành viên, chúng tôi chứng minh cách duy trì quyền riêng tư của người dùng trong khi tuân thủ các tiêu chuẩn quy định. Trọng tâm mở rộng ra ngoài kiến trúc hệ thống và kỹ thuật để bao gồm các thực tiễn kỹ thuật và cải tiến về hiệu suất trải nghiệm người dùng. Mục tiêu của chúng tôi là thiết lập một hệ thống blockchain an toàn, hiệu quả, mang lại trải nghiệm đặc biệt cho người dùng. Thể hiện một bước tiến, giao thức giao dịch quyền riêng tư thế hệ thứ hai này báo hiệu một ngày mai tốt đẹp hơn, nơi quyền riêng tư không chỉ là một tính năng – đó là chuẩn mực.


Nguồn
Tuyên bố từ chối trách nhiệm: Nội dung trên chỉ là ý kiến của tác giả, không đại diện cho bất kỳ lập trường nào của Followin, không nhằm mục đích và sẽ không được hiểu hay hiểu là lời khuyên đầu tư từ Followin.
Thích
54
Thêm vào Yêu thích
17
Bình luận