zkDocs: Chia sẻ thông tin không có kiến ​​thức Thông tin dữ liệu PlatoBlockchain. Tìm kiếm dọc. Ái.

zkDocs: Chia sẻ thông tin không có kiến ​​thức

Phần lớn các giao dịch blockchain được thiết kế công khai, sẵn có cho bất kỳ ai sẵn sàng kiểm tra chúng. Mặc dù có khả năng kiểm tra tuyệt vời nhưng điều này khiến chúng trở thành lựa chọn ít rõ ràng hơn trong việc chuyển tiếp thông tin cá nhân. Ví dụ: bạn sẽ không muốn cam kết số an sinh xã hội của mình với chuỗi khối Ethereum. Tuy nhiên chúng ta có thể sử dụng bằng chứng không kiến ​​thức (cho phép chúng tôi chứng minh sự thật về thông tin bằng mật mã mà không tiết lộ thông tin) để không chỉ bảo vệ quyền riêng tư mà còn cải thiện quy trình xác minh và chia sẻ thông tin truyền thống ngày nay.

Ví dụ, nhiều các tổ chức và cơ quan dựa vào việc chia sẻ thông tin cá nhân một cách cẩn thận và xác minh tính xác thực của thông tin đó cho các đơn đăng ký từ cho vay thế chấp đến tuyển sinh đại học. Nhưng trên thực tế, các quy trình công việc bảo vệ quyền riêng tư này liên quan đến một loạt xác nhận quyền truy cập chủ quan khi con người truy vấn người khác. Chúng thường là các quy trình dễ xảy ra lỗi, không hiệu quả và bị rò rỉ, làm lộ ra những thông tin không cần thiết và có thể không phù hợp để xử lý những dữ liệu nhạy cảm nhất của chúng ta.

Ở đây, chúng tôi chứng minh cách một số nguyên tắc mã hóa được phát triển và phổ biến bởi phong trào web3 có thể cải thiện quy trình xác minh thông tin, đồng thời duy trì cả quyền riêng tư và phân quyền, thông qua các quy trình mới được phát hành của chúng tôi. kho lưu trữ zkDocs. Đó là một công cụ để tạo “tài liệu không có kiến ​​thức” cho phép các bên khác nhau trong một quy trình công việc nhất định chia sẻ và xác minh thông tin, đồng thời đảm bảo thông tin đáp ứng các tiêu chí nhất định — mà không làm lộ thông tin một cách không cần thiết.

[Nhúng nội dung]

Nhưng trước tiên: cách thức hoạt động, các cơ chế chính và hơn thế nữa

Hãy bắt đầu với tổng quan nhanh về ba tác nhân quan trọng trong quy trình làm việc của zkDocs và cách họ có thể tương tác để đăng ký và phê duyệt khoản thế chấp.

  • Người xác minh: Quản trị viên hoặc người tạo lược đồ zkDoc. Trong ví dụ của chúng tôi, người xác minh là người cho vay thế chấp.
  • Người gửi: Cá nhân hoặc các cá nhân đang tìm cách xác minh dữ liệu bằng lược đồ. Đây là người xin vay tiền hoặc người mua nhà tiềm năng.
  • Người chứng thực: Một cá nhân hoặc tổ chức đáng tin cậy có thể chứng thực tính trung thực của một hoặc nhiều trường của người gửi. Đây có thể là người sử dụng lao động hoặc người định giá nhà.

Thông thường, đơn đăng ký thế chấp bắt đầu quy trình xác minh trong đó người cho vay thế chấp (người xác minh) thuê các tổ chức đáng tin cậy khác để xác nhận người nộp đơn (người nộp đơn) đáp ứng các yêu cầu của họ. Sau khi đơn đăng ký được chuyển từ tổ chức này sang tổ chức khác (người chứng thực), người cho vay ban đầu có thể phê duyệt khoản vay.

Kiến trúc mà chúng tôi bố trí cho phép người xác minh chỉ định lược đồ các trường và người chứng thực đáng tin cậy, và sau đó chỉ định một số ràng buộc đối với các trường đó. Trong trường hợp đăng ký thế chấp, người cho vay có thể chỉ định rằng tổng giá trị tài sản thế chấp của người nộp đơn lớn hơn số nợ chưa thanh toán của họ.

zkDocs cũng cho phép người gửi chỉ chia sẻ thông tin thích hợp với từng người chứng thực. Ví dụ: người sử dụng lao động chỉ có thể chứng thực mức lương và tình trạng việc làm của người nộp đơn mà không cần xem các chi tiết tài chính không cần thiết. 

Sau đó, người gửi có thể tạo bằng chứng không có kiến ​​thức cho thấy lược đồ đã được điền trung thực - và mỗi trường đã được chứng thực chính xác - mà không tiết lộ bất kỳ dữ liệu cơ bản nào. Bất kỳ bên nào (bao gồm cả người xác minh) đều có thể xác thực bằng chứng không có kiến ​​thức thông qua một phép tính nhẹ.

Có hai cơ chế chính cần lưu ý: chứng thựcbằng chứng không kiến ​​thức.

Sử dụng blockchain để chứng thực

Các chuỗi khối công khai có một số đặc tính khiến chúng trở nên lý tưởng cho việc chứng thực: khả năng chống kiểm duyệt, tính sẵn có của dữ liệu công khai, khả năng kiểm toán và khóa ký bí mật. Người chứng thực có thể sử dụng khóa riêng của họ để ký tất cả các giao dịch được gửi tới blockchain, đảm bảo chứng thực không thể bị làm giả hoặc giả mạo.

Tuy nhiên, một trong những nhược điểm của việc đăng chứng thực lên blockchain là các giá trị cơ bản được hiển thị công khai. zkDocs giải quyết vấn đề này bằng cách phát sóng cam kết về mật mã đến các giá trị thay vì các giá trị văn bản rõ ràng. Những cam kết này vẫn được công khai nhưng giá trị cơ bản của chúng không được nhìn thấy rõ ràng.

Cam kết về mật mã là gì?

Cam kết mật mã cho phép một bên tạo cam kết đối với một số dữ liệu riêng tư. Sau này người cam kết có thể mở cam kết để lộ dữ liệu đã cam kết. 

Các kế hoạch cam kết phải (1) ẩn, nghĩa là cam kết không tiết lộ gì về dữ liệu và (2) ràng buộc, nghĩa là người cam kết không thể tìm thấy một cam kết mà nó có thể mở theo hai cách khác nhau. 

Sơ đồ cam kết đơn giản nhất được xây dựng từ hàm băm mật mã - ví dụ: Băm Poseidon. Để cam kết với một số dữ liệu, người chuyển giao tính toán: cam kết ← tư thế(dữ liệu, khâm mạng), Ở đâu khâm mạng là một chuỗi 512 bit ngẫu nhiên. Để mở cam kết sau này, người cam kết tiết lộ dữ liệukhâm mạng. Bất kỳ ai cũng có thể xác minh rằng cam kết đã được mở chính xác.

Xác minh dữ liệu riêng tư thông qua bằng chứng không có kiến ​​thức

Bằng chứng không có kiến ​​thức là một phương pháp chứng minh sự thật về dữ liệu mà không tiết lộ bất kỳ điều gì về dữ liệu cơ bản. Với zkDocs, người gửi có thể tạo bằng chứng không có kiến ​​thức rằng tất cả dữ liệu đã được cam kết và đáp ứng các ràng buộc bắt buộc. Bất kỳ bên thứ ba nào cũng có thể thực hiện tính toán xác minh mà không cần biết hoặc không có thông tin về dữ liệu cơ bản.

Kết quả là dữ liệu cần thiết để xác minh việc gửi lược đồ zkDoc được cung cấp công khai và có thể kiểm tra đầy đủ trong khi vẫn luôn ở chế độ riêng tư.

Cụ thể, người gửi tạo ra bằng chứng không có kiến ​​thức rằng họ biết một mảng (giá trị, khâm mạng) các cặp sao cho:

  • poseidon(value[i], nonce[i]) == prior_commitment[i]
  • value[0], …, value[n] thỏa mãn các ràng buộc

Người gửi có thể tạo bằng chứng không có kiến ​​thức bằng cách sử dụng mạch này và phát nó cho bất kỳ bên nào quan tâm đến việc xác minh dữ liệu của họ. Bất kỳ ai cũng có thể chạy bằng chứng và xác nhận tính hợp lệ của các trường trong lược đồ.

Để chứng minh, chúng ta hãy xem xét hai trường hợp nghiên cứu ngắn.

Ví dụ: đơn xin thế chấp

Trước tiên, hãy quay lại ứng dụng thế chấp, một ví dụ tuyệt vời về quy trình chứng thực thông tin có thể được cải thiện với zkDocs.

Người cho vay thế chấp (người xác minh, trong trường hợp này) sẽ tạo một lược đồ cho zkDoc như sau:


{
  "fields": [
    {
      "field_name": "salary"
    },
    {
      "field_name": "401k_income"
    },
    {
      "field_name": "bank_account_balance"
    },
    {
      "field_name": "property_value"
    },
    {
      "field_name": "loan_value"
    }
  ],
  "constraints": [
    {
      "fieldA": "bank_account_balance",
      "fieldB": "property_value",
      "op": "ADD",
      "constraint": "GT",
      "fieldCompare": "loan_value"
    },
    {
      "fieldA": "salary",
      "fieldB": "401k_income",
      "op": "ADD",
      "constraint": "GT",
      "constant": 65000
    }
  ],
  "trusted_institutions": [
    {
      "human_name": "Employer",
      "address": "0xabcd..."
    },
    {
      "human_name": "Home Appraiser",
      "address": "0xabcd..."
    },
    {
      "human_name": "401k Provider",
      "address": "0xabcd..."
    },
    {
      "human_name": "Checking Account Provider",
      "address": "0xabcd..."
    },
    {
      "human_name": "Creditor",
      "address": "0xabcd..."
    }
  ]
}

Đầu tiên, lược đồ chỉ định một số trường mà người cho vay quan tâm: tiền lương, thu nhập 401(k), số dư tài khoản séc, giá trị tài sản và giá trị khoản vay. 

Sau đó, có hai ràng buộc đối với các trường đó: 

  1. Tổng giá trị tài sản và số dư tài khoản ngân hàng lớn hơn giá trị khoản vay
  2. Tổng thu nhập và tiền lương 401(k) lớn hơn 65,000 USD mỗi năm

Và cuối cùng, năm tổ chức được tin cậy để chứng thực thông tin này:

  1. Sử dụng lao động
  2. Người định giá nhà
  3. 401 (k) nhà cung cấp
  4. Kiểm tra nhà cung cấp tài khoản
  5. Chủ nợ

Để đăng ký thế chấp, người nộp đơn điền vào các trường được liệt kê trong phần “trường” bằng cách sử dụng giao diện người dùng zkDocs và xuất bản cam kết mật mã trên chuỗi cho từng trường. Sau đó, người nộp đơn sẽ gửi các trường văn bản rõ ràng có liên quan, cùng với các nonces cho mỗi cam kết, tới từng tổ chức chứng nhận (từ bộ được liệt kê dưới trusted_institutions). Giao diện người dùng zkDocs thực hiện việc này thông qua các siêu liên kết.

Mỗi người chứng thực xác minh thông tin văn bản rõ ràng có liên quan và chứng thực cam kết bằng cách ký bằng khóa riêng Ethereum của họ. Sau đó, người nộp đơn có thể gửi giao dịch tới blockchain bao gồm bằng chứng không có kiến ​​thức về tính hợp lệ của các cam kết và ràng buộc, do đó đủ điều kiện là người nhận thế chấp hợp lệ. Tổ chức thế chấp xác minh sẽ không cần thực hiện xác minh bổ sung để xác nhận tính toàn vẹn của đơn đăng ký.

Ví dụ: Khoản vay MakerDAO RWA

MakerDAO là một giao thức cho vay, cho đến nay, đã phát hành 6 tỷ đô la cho vay có mệnh giá bằng DAI (mã thông báo được chốt bằng USD). Bộ phận Tài sản Thế giới Thực (RWA) của Maker đang nỗ lực cung cấp các khoản vay bằng DAI cho những người cho vay hạ nguồn, cho phép DAI trực tiếp thúc đẩy tăng trưởng kinh tế trong thế giới thực. Nhưng Maker là một DAO, có mã thông báo quản trị được sở hữu bởi khoảng 78,000 ví duy nhất, mỗi ví có quyền tham gia vào quá trình quản trị và định hướng tương lai của giao thức. 

Hầu hết các quyết định lớn của Nhà sản xuất, chẳng hạn như quyết định tiếp nhận nguồn tài sản thế chấp mới, đều được thảo luận trong diễn đàn công cộng. Tuy nhiên, một tổ chức hoặc cá nhân đăng ký khoản vay từ Maker có thể không quan tâm đến việc chia sẻ toàn bộ tài chính của họ với công chúng vì một số lý do, từ quyền riêng tư đến bí mật thương mại. Thay vào đó, Maker có thể xuất bản zkDoc với lược đồ tương tự như sau:


{
  "fields": [
    {
      "field_name": "custodian_name"
    }, 
    {
      "field_name""total_loan"
    },
    {
      "field_name": "total_collateral_value"
    },
    {
      "field_name": "amount_repaid"
    }
  ],
  "constraints": [
    {
      "fieldA": "total_loan",
      "fieldB": "amount_repaid",
      "op": "SUB",
      "constraint": "LT",
      "fieldCompare": "total_collateral_value"
    }
  ],
  "trusted_institutions": [
    {
      "address": "0xabcd…",
      "human_name": "Bob the Custodian"
    }
  ]
}

Lược đồ này sẽ cho phép những người tham gia quản trị đảm bảo rằng giao thức không gặp phải rủi ro vô lý mà không yêu cầu tất cả những người đăng ký khoản vay RWA vi phạm quyền riêng tư của họ.

***
zkDocs, như hiện đang được triển khai, sử dụng:

  • Các giao dịch đã ký (hoặc bất kỳ chuỗi nào tương thích với EVM) để xác minh tính xác thực của chứng thực
  • Không gian khối công cộng để lưu trữ cả các cam kết và chứng thực
  • Hợp đồng thông minh để xác minh bằng chứng không có kiến ​​thức 

Ngoài các thuộc tính về khả năng kiểm tra và quyền riêng tư của zkDocs, còn có một trục thú vị khác: Sau khi xác minh thông tin cá nhân có sẵn trên blockchain công khai, người dùng và nhà phát triển có thể soạn thông tin được xác minh zkDoc bằng ứng dụng của riêng họ. Người ta có thể tưởng tượng lịch sử khoản vay đóng vai trò tạo nên danh tiếng của DAO, hồ sơ hàng quý được cộng đồng xác minh để điều chỉnh các tham số giao thức, đơn đăng ký đại học tức thời, tỷ lệ giao thức chiết khấu cho người dùng đáng tin cậy trong cộng đồng khác, v.v.

Mục tiêu của chúng tôi khi chia sẻ bằng chứng về khái niệm này là để chứng minh cách các nguyên tắc tính toán mới này có thể được sử dụng trong sản xuất ngày nay và giúp đẩy nhanh việc áp dụng chúng bằng cách đưa nhiều ứng dụng trực tuyến hơn. Nếu bạn đang dự định triển khai zkDocs để sản xuất hoặc sử dụng sơ đồ tương tự, vui lòng liên hệ trên Twitter.

Dấu thời gian:

Thêm từ Andreessen Horowitz