BTC
ETH
HTX
SOL
BNB
Xem thị trường
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

a16z: Cách Cicada tận dụng các câu đố khóa thời gian và bằng chứng ZK để bỏ phiếu trực tuyến

火星财经
特邀专栏作者
2023-05-26 02:00
Bài viết này có khoảng 3717 từ, đọc toàn bộ bài viết mất khoảng 6 phút
Cicada có các thuộc tính riêng tư mới, giảm thiểu các giả định về niềm tin và đủ hiệu quả để sử dụng trên mạng chính Ethereum.
Tóm tắt AI
Mở rộng
Cicada có các thuộc tính riêng tư mới, giảm thiểu các giả định về niềm tin và đủ hiệu quả để sử dụng trên mạng chính Ethereum.

Tác giả gốc:Michael Zhu

Biên dịch gốc: Lynn, MarsBit

Tác giả gốc:Biên dịch gốc: Lynn, MarsBitTất cả các hệ thống bỏ phiếu hoạt động theo bất kỳ cách có ý nghĩa nào đều dựa trên tính toàn vẹn và minh bạch. Nhìn bề ngoài, điều này làm cho chuỗi khối trở thành một nền tảng lý tưởng để xây dựng các hệ thống này—thực tế, nhiều tổ chức phi tập trung đã chấp nhậnbỏ phiếu mà không được phépđể thể hiện ý định tập thể, thường là trong khi sử dụng tài sản đáng kể hoặc điều chỉnh các tham số giao thức chính. Nhưng bỏ phiếu trực tuyến cũng có nhược điểm,

Quyền riêng tư vẫn chưa được khám phá và chưa được khám phá

, không tốt cho các hệ thống bỏ phiếu Web3 - trong hầu hết các giao thức bỏ phiếu trực tuyến được sử dụng ngày nay, các lá phiếu và kết quả bỏ phiếu hoàn toàn công khai. Nếu không có quyền riêng tư, kết quả bỏ phiếu có thể dễ dàng bị thao túng và động cơ khuyến khích cử tri bị sai lệch, có khả năng dẫn đến kết quả phi dân chủ.Đó là lý do tại sao chúng tôi phát hành Cicada: một thư viện Solidity mã nguồn mở mới, tận dụng các câu đố khóa thời gian và bằng chứng không có kiến ​​thức để cho phép bỏ phiếu trực tuyến riêng tư. So với các hệ thống hiện có, Cicada có các thuộc tính riêng tư mới, giảm thiểu các giả định về độ tin cậy và đủ hiệu quả để sử dụng trên mạng chính Ethereum.Trong bài đăng này, chúng tôi khảo sát tình trạng quyền riêng tư khi bỏ phiếu và cung cấp mô tả cấp cao về cách thức hoạt động của Cicada (sắp có bằng chứng chính thức). Chúng tôi cũng khuyến khích các nhà phát triển xem xét

kho lưu trữ GitHub

- Cicada có thể được điều chỉnh và mở rộng theo nhiều cách để hỗ trợ các tính năng và chương trình bỏ phiếu khác nhau, đồng thời chúng tôi hy vọng có thể hợp tác với cộng đồng để khám phá những khả năng này.

  • Khảo sát ngắn gọn về bỏ phiếu kínTrong bất kỳ hệ thống bỏ phiếu nào (trên chuỗi hoặc cách khác), có nhiều mức độ riêng tư khác nhau cần xem xét. Việc tiết lộ các lá phiếu riêng lẻ, số lượng đang tranh cử và danh tính cử tri đều ảnh hưởng đến động lực của cử tri theo những cách khác nhau. Những thuộc tính riêng tư nào là cần thiết tùy thuộc vào bối cảnh của cuộc bỏ phiếu. Một số ít xuất hiện thường xuyên trong tài liệu mật mã và khoa học xã hội:Lá phiếu riêng tư: Lá phiếu kín, còn được gọi là "

  • bầu cử Úc

  • ”, được phát triển cho các hệ thống bỏ phiếu trong thế giới thực, như một cách để bảo vệ sở thích của từng cử tri, đồng thời giảm thiểu hối lộ và ép buộc (trong môi trường trực tuyến, chúng tôi có thể cần một tài sản mạnh hơn quyền riêng tư của phiếu bầu — xem bên dưới "Không có khả năng nhận tiền "). Quyền riêng tư về bầu cử cũng có thể giảm thiểu thành kiến ​​mong muốn của xã hội — một người nào đó có ít áp lực bỏ phiếu hơn dựa trên suy nghĩ của người khác về lựa chọn của họ.

  • Cử tri ẩn danh: Trong nhiều hệ thống bỏ phiếu trong thế giới thực, phiếu bầu của bạn không công khai, nhưng thực tế là bạn đã bỏ phiếu thường công khai. Điều này rất quan trọng để ngăn chặn hành vi gian lận cử tri, bởi vì việc xuất bản hồ sơ cử tri cho phép mọi người kiểm tra xem những người khác có bỏ phiếu nhân danh họ hay không. Tuy nhiên, trên chuỗi, chúng tôi có thể ngăn chặn hành vi gian lận của cử tri trong khi vẫn giữ được tính ẩn danh bằng cách sử dụng nguyên hàm mật mã—ví dụ: với Semaphore, bạn có thể chứng minh bằng không rằng bạn là cử tri hợp lệ chưa bỏ phiếu.chỉ raKhông nhận phiếu: Các cử tri cá nhân cung cấp "biên nhận" lá phiếu của họ để chứng minh cách họ đã bỏ phiếu cho bên thứ ba, điều này có thể dẫn đến việc bán vé. Một thuộc tính có liên quan chặt chẽ nhưng mạnh mẽ hơn là khả năng chống cưỡng chế, ngăn không cho ai đó ép buộc cử tri bỏ phiếu theo một cách nhất định. Những thuộc tính này đặc biệt hấp dẫn trong môi trường phi tập trung, nơi quyền biểu quyết có thể được thực hiện thanh khoản thông qua thị trường hợp đồng thông minh. Thật không may, chúng cũng khó thực hiện—trên thực tế, Juels et al.

chỉ ra

, điều này không thể thực hiện được trong môi trường không được phép nếu không có phần cứng đáng tin cậy.

Cicada tập trung vào quyền riêng tư trong quá trình kiểm phiếu, nhưng (như chúng ta sẽ thảo luận sau) nó có thể được kết hợp với bằng chứng thành viên nhóm không có kiến ​​thức để đạt được tính ẩn danh của cử tri và quyền riêng tư của lá phiếu.

Giới thiệu Cicada: Quyền riêng tư khi đếm phiếu bầu từ Vấn đề khóa thời gian đồng hìnhRivest, Shamir, Wagner, 1996 Để đạt được sự riêng tư của việc kiểm phiếu đang diễn ra, Cicada tận dụng các nguyên tắc mật mã mà (theo hiểu biết của chúng tôi) chưa từng được sử dụng trên chuỗi trước đây.

Đầu tiên, câu đố khóa thời gian (Malavolta Thyagarajan, 2019 ) là một câu đố mật mã chứa đựng một bí mật chỉ có thể được tiết lộ sau một khoảng thời gian định trước đã trôi qua—cụ thể hơn, một câu đố có thể được giải mã bằng cách thực hiện lặp đi lặp lại một số phép tính không song song. Các câu đố có khóa thời gian rất hữu ích trong bối cảnh bỏ phiếu để đạt được quyền riêng tư khi chạy số liệu thống kê: người dùng có thể gửi phiếu bầu của họ dưới dạng câu đố có khóa thời gian để chúng được giữ bí mật trong quá trình bỏ phiếu nhưng có thể được tiết lộ sau khi bỏ phiếu. Không giống như hầu hết các cấu trúc bỏ phiếu riêng tư khác, điều này cho phép quyền riêng tư thống kê hoạt động mà không cần dựa vào các cơ quan thống kê (chẳng hạn như nhân viên bầu cử đếm phiếu bầu trên giấy hoặc phiếu kỹ thuật số), ngưỡng mã hóa (một số bên đáng tin cậy phải hợp tác để giải mã tin nhắn) hoặc bất kỳ bên đáng tin cậy nào khác: Bất kỳ ai cũng có thể giải câu đố khóa thời gian để đảm bảo rằng kết quả được tiết lộ sau khi bỏ phiếu.

Thứ hai, một câu đố khóa thời gian đẳng cấu (

) có thuộc tính bổ sung là có thể thực hiện một số tính toán trên các giá trị được mã hóa với kiến ​​thức về khóa bí mật, câu đố giải mã hoặc sử dụng cửa hậu. Đặc biệt, một câu đố khóa thời gian đồng cấu tuyến tính cho phép chúng ta kết hợp các câu đố lại với nhau để tạo ra một câu đố mới gói gọn tổng các giá trị bí mật của câu đố ban đầu.

Như các tác giả của bài báo đã chỉ ra, các câu đố khóa thời gian đồng hình tuyến tính là một công cụ nguyên thủy đặc biệt phù hợp để bỏ phiếu kín: phiếu bầu có thể được mã hóa dưới dạng câu đố và chúng có thể được kết hợp đồng hình để có được Câu đố đếm cuối cùng được mã hóa. Điều này có nghĩa là chỉ cần một phép tính để đưa ra kết quả cuối cùng, thay vì giải một câu đố duy nhất cho mỗi phiếu bầu.

Một cấu trúc mới: Hiệu quả và Đánh đổi

Có một số vấn đề cần xem xét để một kế hoạch bỏ phiếu trở nên thực tế trên chuỗi. Đầu tiên, kẻ tấn công có thể cố gắng thao túng phiếu bầu bằng cách bỏ phiếu được mã hóa không chính xác. Ví dụ: chúng tôi có thể muốn câu đố khóa thời gian cho mỗi lá phiếu được mã hóa dưới dạng giá trị boolean: "1" cho đề xuất được bỏ phiếu và "0" cho đề xuất chống lại. Một người ủng hộ đề xuất nhiệt thành có thể cố gắng viết mã gì đó như "100" để mở rộng quyền biểu quyết hiệu quả của họ.

Chúng tôi có thể ngăn chặn cuộc tấn công này bằng cách yêu cầu cử tri gửi bằng chứng không biết về tính hợp lệ của phiếu bầu cùng với chính phiếu bầu đó. Tuy nhiên, bằng chứng không kiến ​​thức rất tốn kém về mặt tính toán - để giữ cho chi phí tham gia của cử tri ở mức thấp nhất có thể, bằng chứng phải (1) phía máy khách có thể tính toán hiệu quả và (2) có thể kiểm chứng hiệu quả trên chuỗi.

Để chứng minh hiệu quả nhất có thể, chúng tôi sử dụng giao thức sigma tùy chỉnh—chứng minh không kiến ​​thức được thiết kế cho các quan hệ đại số cụ thể, thay vì hệ thống chứng minh chung. Điều này làm cho thời gian xác minh cực kỳ nhanh: tạo bằng chứng hợp lệ của lá phiếu bằng Python mất 14 ms trên máy tính xách tay có sẵn.

Mặc dù trình xác thực cho giao thức sigma đơn giản về mặt khái niệm, nhưng nó yêu cầu một số lượng khá lớn các phép lũy thừa mô-đun. Lược đồ đồng cấu tuyến tính của Malavolta và Thyagarajan sử dụng mã hóa Paillier, vì vậy các phép lũy thừa này sẽ thực hiện modulo N^2 cho một số RSA modulo N. Đối với kích thước hợp lý của N, phép lũy thừa rất tốn kém (hàng triệu gas) trên hầu hết các chuỗi EVM. Để giảm chi phí, Cicada sử dụng ElGamal hàm mũ - ElGamal hàm mũ vẫn cung cấp các phép đồng cấu phụ gia, nhưng hoạt động trên các mô đun nhỏ hơn (N thay vì N^2).

Một nhược điểm của việc sử dụng ElGamal là bước cuối cùng của việc giải mã số đếm yêu cầu bruteforcing nhật ký riêng biệt (lưu ý rằng điều này được thực hiện ngoài chuỗi và được xác minh hiệu quả trên chuỗi). Do đó, nó chỉ hoạt động nếu số phiếu bầu cuối cùng dự kiến ​​là khá nhỏ (ví dụ: ít hơn 2^32 hoặc khoảng 4,3 triệu phiếu bầu). Trong sơ đồ gốc dựa trên Paillier, số lượng có thể được giải mã một cách hiệu quả bất kể kích thước của chúng.

Việc chọn mô đun RSA N cũng liên quan đến sự đánh đổi. Việc triển khai của chúng tôi sử dụng mô-đun 1024 bit để tiết kiệm gas. Mặc dù giá trị này cao hơn nhiều so với mô-đun RSA lớn nhất từng được tính công khai (829 bit), nhưng nó thấp hơn kích thước thường được khuyến nghị là 2048 bit để mã hóa hoặc ký RSA. Tuy nhiên, ứng dụng của chúng tôi không yêu cầu bảo mật lâu dài: một khi cuộc bầu cử kết thúc, sẽ không có rủi ro nếu N được xem xét trong tương lai. Việc sử dụng một mô-đun tương đối nhỏ là hợp lý, giả sử rằng số lượng và phiếu bầu được công khai sau khi hết thời gian khóa. (Điều này cũng có thể dễ dàng cập nhật trong tương lai nếu thuật toán phân tách được cải thiện.)

Ẩn danh và Tư cách cử tri

Như đã đề cập ở trên, Cicada cung cấp quyền riêng tư về số lần chạy - một thuộc tính câu đố bị khóa thời gian giúp giữ kín số phiếu bầu trong khi bỏ phiếu. Tuy nhiên, mỗi lá phiếu riêng lẻ cũng là một câu đố khóa thời gian, được mã hóa theo cùng một tham số công khai. Điều này có nghĩa là số đếm có thể được giải mã (bằng cách thực hiện các phép tính cần thiết), mỗi phiếu bầu cũng vậy. Nói cách khác, Cicada chỉ đảm bảo quyền riêng tư của lá phiếu trong quá trình bỏ phiếu — nếu những người quan sát tò mò muốn giải mã lá phiếu của một cử tri cụ thể, họ có thể làm như vậy. Giải mã bất kỳ lá phiếu riêng lẻ nào cũng tốn kém như giải mã số đếm cuối cùng, do đó, thật ngây thơ khi giải mã hoàn toàn một lá phiếu có n cử tri. Nhưng tất cả các phiếu bầu này có thể được giải mã song song (giả sử có đủ máy), mất cùng một lượng thời gian đồng hồ treo tường để giải mã lần kiểm phiếu cuối cùng.Đối với một số phiếu bầu, điều này có thể không được mong muốn. Mặc dù chúng tôi hài lòng với việc chạy quyền riêng tư kiểm phiếu tạm thời, nhưng chúng tôi có thể muốn quyền riêng tư bỏ phiếu vô thời hạn. Để đạt được điều này, chúng tôi có thể kết hợp Cicada với một giao thức đủ điều kiện của cử tri ẩn danh, được khởi tạo bằng bằng chứng không cần biết về tư cách thành viên nhóm. Theo cách đó, ngay cả khi lá phiếu được giải mật, tất cả những gì nó tiết lộ là ai đó đã bỏ phiếu theo cách đó - và chúng tôi đã biết điều đó từ việc kiểm phiếu.đâyđâyđây

đây

đề nghị).

cơ quan thống kê

Một trong những ưu tiên hàng đầu của chúng tôi khi thiết kế Cicada là tránh sự cần thiết của cơ quan thống kê: nhiều cấu trúc bỏ phiếu riêng yêu cầu cơ quan thống kê bán tin cậy (hoặc ủy ban được ủy quyền, được điều phối thông qua tính toán đa bên an toàn) để nhận và tổng hợp phiếu bầu. Trong bối cảnh chuỗi khối, điều này có nghĩa là các kế hoạch này không thể được thực hiện chỉ bằng các hợp đồng thông minh, mà cần có sự can thiệp và tin tưởng của con người.

Trong hầu hết các cấu trúc, cơ quan kiểm phiếu không được tin cậy về tính chính trực (họ không thể thao túng số phiếu), nhưng được tin cậy về tính sống động - nếu họ ngoại tuyến, họ không thể tính toán kết quả cuối cùng, làm trì hoãn việc bỏ phiếu vô thời hạn. Trong một số cấu trúc, họ cũng được tin cậy để duy trì quyền riêng tư—nghĩa là họ biết cách mỗi cá nhân bỏ phiếu, nhưng phải công bố kết quả bỏ phiếu mà không tiết lộ thông tin này.

Mặc dù các cơ quan thống kê là một giả định hợp lý (và cần thiết) trong nhiều tình huống trong thế giới thực, nhưng chúng không lý tưởng trong môi trường chuỗi khối, nơi mục tiêu của chúng tôi là giảm thiểu sự tin cậy và đảm bảo khả năng chống kiểm duyệt.

Cicada khám phá một trong nhiều hướng trong lĩnh vực quyền riêng tư khi bỏ phiếu trên chuỗi và bổ sung cho nhiều nghiên cứu đang được thực hiện bởi các nhóm khác. Như đã đề cập ở trên, Cicada có liên quan chặt chẽ với các công nghệ thành viên nhóm ẩn danh như semaphores, bằng chứng lưu trữ ZK và trình vô hiệu hóa giới hạn tỷ lệ. Cicada cũng có thể tích hợp trình kiểm tra bằng chứng lạc quan do nhóm Nouns Vortex đề xuất để giảm bớt gánh nặng về xăng cho cử tri.

Sự an toàn
a16z
Chào mừng tham gia cộng đồng chính thức của Odaily
Nhóm đăng ký
https://t.me/Odaily_News
Nhóm trò chuyện
https://t.me/Odaily_CryptoPunk
Tài khoản chính thức
https://twitter.com/OdailyChina
Nhóm trò chuyện
https://t.me/Odaily_CryptoPunk