Điểm:1

Sử dụng zk-snarks để xác minh giá thầu cao nhất

lá cờ sn

Tôi hiểu rằng chúng tôi có thể xác minh rằng đã cung cấp thông tin đầu vào riêng tư một và đầu vào công khai b mà chúng ta có thể xác minh một lớn hơn b. Nhưng nếu tôi muốn giữ cả hai đầu vào ở chế độ riêng tư thì sao?

Bối cảnh là một cuộc đấu giá kín nơi chúng tôi cần xác minh xem ai trong số những người đặt giá thầu tư nhân có giá thầu cao nhất. Tôi chưa thấy bất kỳ ví dụ nào về cách đạt được điều này nhưng hy vọng ai đó ở đây có thể giúp chỉ cho tôi đi đúng hướng.

Manish Adhikari avatar
lá cờ us
Làm thế nào về việc sử dụng một số giải pháp cho vấn đề triệu phú của Yao. Bạn có thể sử dụng SNARK để chứng minh tính toàn vẹn của đầu vào nếu được yêu cầu
Điểm:3
lá cờ us

Giả sử có một bí mật chung $x$ được sử dụng để che giấu giá trị của $a$$b$, chỉ được biết đến bởi các diễn viên sở hữu $a$$b$. người xác minh $c$ là một số được chọn ngẫu nhiên và được cung cấp cho hai bên sở hữu $a$$b$. Sau đó, họ tính toán $ax-c$$bx-c$, và cung cấp chúng cho người xác minh. Người xác minh sau đó tính toán sự khác biệt giữa $ax-c$$bx-c$, đó là kết quả. Trong trường hợp như vậy, bởi vì $ax-c$$bx-c$ không chắc chắn chia hết cho $x$, không có cách nào để người xác minh tìm ra $x$ ngoài.

Lưu ý rằng có vấn đề với giao thức này, vì nó yêu cầu sự tương tác giữa người xác minh và hai bên mang $a$$b$.


CHỈNH SỬA: Khả năng thực tế của các tục ngữ A và B là giả mạo giá trị của họ

Có hai trường hợp về danh tính của người xác minh, cần được thảo luận riêng. Khả năng thứ nhất, người xác minh là người điều hành phiên đấu giá. Trong trường hợp này, A và B sẽ luôn cố gắng làm giả giá trị của chúng, vì người điều hành cuộc đấu giá không có cách nào biết được giá trị của $x$. Cả hai sẽ làm cùng một việc, không sử dụng $x$, nhưng một cái gì đó khác. Trong trường hợp như vậy, hành động của họ triệt tiêu lẫn nhau. Tuy nhiên, nếu người xác minh là một khán giả, thì không có lý do gì để họ giả mạo một giá trị và ngay cả khi họ làm như vậy, khán giả sẽ luôn biết. Do đó, vấn đề giả mạo một giá trị thực sự không tồn tại.

GeraldHost avatar
lá cờ sn
Cảm ơn anh bạn đó có ý nghĩa! Có cách nào để làm điều này mà không có một bí mật chung? bởi vì chắc chắn nếu cả hai bên biết bí mật và giá trị của `c` thì họ sẽ tìm ra được `a` và `b`? Có lẽ tôi đã hiểu sai điều gì đó.
Red Sun avatar
lá cờ us
@GeraldHost Tôi đã thêm thông tin mà bạn yêu cầu và làm rõ ý của tôi. Cảm ơn phản hồi của bạn.
Điểm:3
lá cờ in

Với zk-snarks, người ta sẽ xác minh bằng chứng rằng mối quan hệ "lớn hơn" đúng với $(a, b)$ bản rõ dưới dạng đầu vào riêng tư và để cam kết $(a, b)$ như một đầu vào công khai. Một người sẽ chia cả hai $a$$b$ thành các bit ("dây" theo cách nói của snarks) và tạo một mạch có các cổng nhân tạo ra "true" hoặc "false". Các mạch Verilog có thể hữu ích ở đây. Phép nhân có nghĩa là hệ phương trình R1CS đại diện cho mạch, là phần dành riêng cho vấn đề và là đầu vào cho thư viện snark triển khai hệ thống chứng minh Groth16.

Có mạch, người ta sẽ tạo ra hai khóa công khai, tạo và xác minh bằng chứng lén lút.

GeraldHost avatar
lá cờ sn
Để tạo bằng chứng này, bạn có cần biết giá trị của `a` và `b` không? Tôi tự hỏi liệu có cách nào để chứng minh `a` lớn hơn `b` mà không cần biết `b` không?
Vadym Fedyukovych avatar
lá cờ in
Nếu bạn bắt đầu với yêu cầu bắt buộc, bạn sẽ cung cấp bằng chứng thích hợp để đưa ra bằng chứng chống lại tiếng gầm gừ. Điều đó có nghĩa là cả hai và trong bản rõ.
Điểm:1
lá cờ in

Việc sử dụng ZK snark có phải là một yêu cầu không? Đây dường như là vấn đề triệu phú: https://vi.m.wikipedia.org/wiki/Yao%27s_Millionaires%27_problem

Điều này đơn giản hơn thực hiện SNARKS, đó là một tính toán được chia sẻ tương tác, không có bất kỳ trung tâm đáng tin cậy nào hoặc giả sử cả hai đầu vào đều được bảo vệ bởi một bí mật chung (như trong câu trả lời của Red Sun).

Trong một kịch bản đặt giá thầu, họ đưa ra các cam kết và chạy giao thức triệu phú. Không có lợi ích nào cho bất kỳ bên nào bằng cách sử dụng một giá trị trong giao thức triệu phú khác với những gì đã cam kết, nếu bạn giành chiến thắng, bạn sẽ cần phải tiết lộ cam kết và trả tiền và mọi hành vi phản bội sẽ bị phát hiện. Nhưng đối với bên thua cuộc, dường như có giá trị hạn chế trong việc không sử dụng cùng một giá trị trong cam kết.

Nếu bạn có một người đáng tin cậy để xem giá thầu nhưng bạn không tin tưởng anh ta công bằng, bạn có thể sử dụng bằng chứng ZK cho anh ta để chứng minh rằng anh ta trung thực, nhưng những điều này không giải quyết được vấn đề tin tưởng bên không tiết lộ các hồ sơ dự thầu. Bạn cần một số loại tính toán được chia sẻ như trong triệu phú để đảm bảo bí mật giá thầu với tất cả các bên khác.

Manish Adhikari avatar
lá cờ us
Tôi đã đề cập đến điều tương tự trong bình luận ở trên. Nhưng bằng chứng kiến ​​thức bằng không (như SNARK) có thể được sử dụng để chứng minh rằng thông tin đầu vào riêng tư của bạn đối với nó giống với giá trị giá thầu đã cam kết ban đầu, chẳng hạn như trong trường hợp này.
Meir Maor avatar
lá cờ in
Nhưng nếu bạn cam kết với một giá trị, sau đó chạy thuật toán triệu phú bằng cách sử dụng một thuật toán khác và giành chiến thắng, thì bạn vẫn cần tiết lộ giá trị ban đầu của mình. và thanh toán đúng số tiền mà bạn đã cam kết. Có vẻ như bạn vẫn cần một số tính toán được chia sẻ. Vì vậy, tôi không chắc bằng chứng ZK là cần thiết để làm gì.
Manish Adhikari avatar
lá cờ us
Có, nhưng bạn không cần tiết lộ giá thầu của mình nếu bạn thua

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.