a16z: Cicada, zincir üzerinde oylamayı etkinleştirmek için zaman kilitli bulmacaları ve sıfır bilgi kanıtlarını nasıl kullanır?

Cicada yeni gizlilik özelliklerine sahiptir, güven varsayımlarını en aza indirir ve Ethereum ana ağında kullanılabilecek kadar verimlidir.

**Yazan:**Michael Zhu

Derleyen: Lynn, MarsBit

Anlamlı bir şekilde işleyen tüm oylama sistemleri, dürüstlük ve şeffaflığa dayanır. Görünüşte, bu, blok zincirini bu sistemleri üzerine inşa etmek için ideal bir platform haline getiriyor - aslında, birçok merkezi olmayan kuruluş, toplu niyeti ifade etmenin bir yolu olarak izinsiz oylamayı benimsedi, genellikle büyük serveti kullandı veya durumunda anahtar protokol parametrelerini değiştirdi. Ancak on-chain oylamanın dezavantajları da vardır.Gizlilik hala keşfedilmemiş ve gelişmemiştir, bu da Web3 oylama sistemleri için iyi değildir—şu anda kullanımda olan on-chain oylama protokollerinin çoğunda oy pusulaları ve oylama sonuçları tamamen halka açıktır. Gizlilik olmadan, oylama sonuçları kolayca manipüle edilebilir ve seçmen teşvikleri yanlış hizalanabilir, bu da potansiyel olarak demokratik olmayan sonuçlara yol açabilir.

Bu nedenle Cicada'yı piyasaya sürüyoruz: özel zincir üzerinde oylamayı etkinleştirmek için zaman kilitli bulmacalardan ve sıfır bilgi kanıtlarından yararlanan yeni, açık kaynaklı bir Solidity kitaplığı. Mevcut sistemlerle karşılaştırıldığında, Cicada yeni gizlilik özelliklerine sahiptir, güven varsayımlarını en aza indirir ve Ethereum ana ağında kullanılabilecek kadar verimlidir.

Bu yazıda, oy verme gizliliğinin durumunu araştırıyoruz ve Cicada'nın nasıl çalıştığına dair üst düzey bir açıklama sağlıyoruz (resmi kanıtlar yakında geliyor). Ayrıca geliştiricileri GitHub deposunu kontrol etmeye teşvik ediyoruz - Cicada, farklı oylama şemalarını ve özelliklerini desteklemek için birçok şekilde ince ayar yapılabilir ve genişletilebilir ve bu olasılıkları keşfetmek için toplulukla birlikte çalışmayı umuyoruz.

Özel Anketlerin Kısa İncelemesi

Herhangi bir oylama sisteminde (zincir üzerinde veya başka türlü), dikkate alınması gereken birçok farklı gizlilik seviyesi vardır. Bireysel oy pusulalarının, devam eden sayımların ve seçmen kimliklerinin ifşa edilmesi, seçmen motivasyonunu farklı şekillerde etkiler. Hangi gizlilik özelliklerinin gerekli olduğu, oylamanın içeriğine bağlıdır. Kriptografi ve sosyal bilimler literatüründe sıkça görülen birkaç tanesi:

  • Oy Gizliliği: "Avustralya oy pusulaları" olarak da bilinen gizli oy pusulaları, bireysel seçmen tercihlerini korumanın ve rüşvet ve zorlamayı azaltmanın bir yolu olarak gerçek dünyadaki oylama sistemleri için geliştirilmiştir (zincir üzerinde ayarlanır, oy pusulasından daha güçlü bir mülkiyete ihtiyaç duyabiliriz) gizlilik - aşağıdaki "alınamadı" bölümüne bakın). Oy mahremiyeti aynı zamanda sosyal arzu edilirlik önyargısını da azaltabilir - birisi, başkalarının seçimleri hakkında ne düşündüğüne bağlı olarak oy verme konusunda daha az baskıya sahip olur.
  • Devam eden sayımların gizliliği: Pek çok oylama sistemi, katılımı ve seçmen teşviklerini etkilemekten kaçınmak için, devam eden sayımları veya seçmenler hala oy kullanırken her seçenek için kaç oy kullanıldığını gizler. Bunun gerçek dünyada gerçekleştiğini gördük; örneğin, daha geç oy kullanan ABD senatörlerinin, daha önce oy kullanan senatörlere göre partilerine katılma olasılığı daha yüksektir. Ve zincirleme: Belirteç ağırlıklı oylamada, balinalar rakiplerini önde tutarak (bazıları zaten kazanacaklarını varsayarak oy kullanamayacak kadar tembel olabilir) ve sonra kendi oylarını vererek rakiplerini sahte bir güvenlik duygusuna kaptırabilir. son dakika Gelin ve sonuca karar verin.
  • Seçmen anonimliği: Gerçek dünyadaki birçok oylama sisteminde oyunuz herkese açık değildir, ancak oy verdiğiniz gerçeği genellikle herkese açıktır. Bu, seçmen sahtekarlığını önlemek için önemlidir, çünkü seçmen kayıtlarını yayınlamak, insanların başkalarının kendi adlarına oy verip vermediğini kontrol etmelerini sağlar. Ancak zincir üzerinde, kriptografik ilkelleri kullanarak anonimliği korurken seçmen sahtekarlığını önleyebiliriz; örneğin Semaphore ile, henüz oy kullanmamış geçerli bir seçmen olduğunuzu sıfır bilgiyle kanıtlayabilirsiniz.
  • Alınabilirlik Yok: Bireysel seçmenler, üçüncü bir tarafa nasıl oy verdiklerini kanıtlamak için oy pusulalarının bir "makbuzunu" sağlar, aksi halde bilet satışıyla sonuçlanabilir. Yakından ilişkili ancak daha güçlü bir özellik, birinin seçmenleri belirli bir şekilde oy kullanmaya zorlamasını önleyen zorlama direncidir. Bu mülkler, oy haklarının akıllı sözleşme piyasaları aracılığıyla likit hale getirilebildiği merkezi olmayan bir ortamda özellikle caziptir. Ne yazık ki, bunların uygulanması da zordur - aslında, Juels ve diğerleri, güvenilir donanımın olmadığı izinsiz bir ortamda bunun imkansız olduğuna dikkat çeker.

Cicada, devam eden oy sayımı gizliliğine odaklanır, ancak (daha sonra tartışacağımız gibi), seçmen anonimliği ve oy pusulası gizliliği elde etmek için sıfır bilgili grup üyeliği kanıtlarıyla birleştirilebilir.

Cicada Tanıtımı: Homomorfik Zaman Kilidi Sorunundan Oy Sayımı Gizliliği

Devam eden oy sayımının gizliliğini sağlamak için Cicada, (bildiğimiz kadarıyla) daha önce zincir üzerinde hiç kullanılmamış olan kriptografik ilkellerden yararlanır.

İlk olarak, zaman kilitli bulmaca (Rivest, Shamir, Wagner, 1996), yalnızca önceden belirlenmiş bir süre geçtikten sonra ortaya çıkabilecek bir sırrı kapsayan şifreli bir bulmacadır - daha spesifik olarak, bulmaca, Bazı Olmayanları Yap tarafından tekrarlanabilir. şifresini çözmek için paralel hesaplamalar. Zaman kilitli bulmacalar, oylama bağlamında çalışan istatistiklerin mahremiyetini sağlamak için kullanışlıdır: kullanıcılar oylarını zaman kilitli bulmacalar olarak gönderebilirler, böylece oylama işlemi sırasında gizli tutulurlar ancak oylamadan sonra açığa çıkarılabilirler. Diğer birçok özel oylama yapısının aksine, bu, istatistiksel gizliliğin istatistik kurumlarına (kağıt veya dijital oy pusulalarını sayan seçim çalışanları gibi), eşik şifrelemeye (bir mesajın şifresini çözmek için birkaç güvenilir tarafın işbirliği yapması gerekir) veya herhangi bir Diğer güvenilir tarafa güvenmeden çalışmasına olanak tanır: Oylamadan sonra sonucun açıklanmasını sağlamak için herkes bir zaman kilidi bulmacasını çözebilir.

İkincisi, izomorfik bir zaman kilidi bulmacası (Malavolta Thyagarajan, 2019), gizli anahtar bilgisi, bulmacanın şifresinin çözülmesi veya bir arka kapı kullanımı ile şifrelenmiş değerler üzerinde bazı hesaplamaların mümkün olduğu ek özelliğine sahiptir. Özellikle, doğrusal olarak homomorfik bir zaman kilitli bulmaca, orijinal bulmacanın gizli değerlerinin toplamını kapsayan yeni bir bulmaca üretmek için bulmacaları bir araya getirmemize olanak tanır.

Makalenin yazarlarının işaret ettiği gibi, doğrusal homomorfik zaman kilitli bulmacalar, özel oylama için özellikle çok uygun bir ilkeldir: oylar bulmaca olarak kodlanabilir ve kodlanmış bir nihai Sayma Bulmacası elde etmek için homomorfik olarak birleştirilebilirler. Bu, nihai sonucu ortaya çıkarmak için her oy için benzersiz bir bulmacayı çözmek yerine yalnızca bir hesaplamanın gerekli olduğu anlamına gelir.

Yeni bir yapı: verimlilik ve dengeler

Bir oylama planının zincir üzerinde pratik olması için dikkate alınması gereken birkaç konu vardır. İlk olarak, bir saldırgan yanlış kodlanmış bir oy pusulası kullanarak oyları manipüle etmeye çalışabilir. Örneğin, her oylama için zaman kilidi bulmacasının bir boole değeri olarak kodlanmasını isteyebiliriz: Oylanan teklif için "1" ve hayır için "0". Ateşli bir teklif destekçisi, etkili oylama gücünü artırmak için "100" gibi bir şeyi kodlamaya çalışabilir.

Seçmenin, oylamayla birlikte oylamanın geçerliliğine ilişkin sıfır bilgili bir kanıt sunmasını sağlayarak bu saldırıyı önleyebiliriz. Ancak, sıfır bilgi kanıtları hesaplama açısından pahalıdır—seçmen katılımının maliyetini mümkün olduğunca düşük tutmak için kanıtlar (1) müşteri tarafında verimli bir şekilde hesaplanabilir ve (2) zincir üzerinde verimli bir şekilde doğrulanabilir olmalıdır.

Kanıtları olabildiğince verimli hale getirmek için özel bir sigma protokolü kullanıyoruz - genel bir ispat sistemi yerine belirli cebirsel ilişkiler için tasarlanmış sıfır bilgili ispatlar. Bu, kanıtlama süresini son derece hızlı hale getirir: Python'da bir oy pusulası geçerlilik kanıtı oluşturmak, kullanıma hazır bir dizüstü bilgisayarda 14 ms sürer.

Sigma protokolünün doğrulayıcısı kavramsal olarak basit olsa da, oldukça fazla sayıda modüler üstelleştirme gerektirir. Malavolta ve Thyagarajan'ın doğrusal homomorfik şeması, Paillier şifrelemesini kullanır, bu nedenle bu üsler, bazı RSA modülo N için N^2 modülünü gerçekleştirir. Makul N boyutları için, çoğu EVM zincirinde üs alma çok pahalıdır (milyonlarca gaz). Maliyetleri azaltmak için Cicada, Üstel ElGamal'ı kullanır - Üstel ElGamal, eklemeli homomorfizmler sağlamaya devam eder, ancak daha küçük modüller üzerinde çalışır (N^2 yerine N).

ElGamal kullanmanın bir dezavantajı, sayımın şifresini çözmenin son adımının ayrı günlüğün kaba kuvvetle uygulanmasını gerektirmesidir (bunun zincir dışında yapıldığını ve zincir üzerinde etkili bir şekilde doğrulandığını unutmayın). Bu nedenle, yalnızca beklenen nihai oy sayısı oldukça küçükse çalışır (2^32'den az veya yaklaşık 4,3 milyon oy). Orijinal Paillier tabanlı şemada, sayımların şifresi, boyutlarına bakılmaksızın verimli bir şekilde çözülebilir.

RSA modülü N'nin seçilmesi aynı zamanda takasları da içerir. Uygulamamız, gaz verimliliği için 1024 bitlik bir modül kullanır. Bu, şimdiye kadar genel olarak çarpanlarına ayrılan en büyük RSA modülünün (829 bit) çok üzerinde olsa da, RSA şifrelemesi veya imzalaması için yaygın olarak önerilen 2048 bit boyutunun altındadır. Ancak uygulamamız uzun vadeli güvenlik gerektirmiyor: seçim bittiğinde, gelecekte N'nin düşünülmesi durumunda risk yok. Zaman kilidi sona erdikten sonra sayımların ve oyların kamuya açıklandığını varsayarsak, nispeten küçük bir modül kullanmak mantıklıdır. (Ayrıştırma algoritması gelişirse bu, gelecekte kolayca güncellenebilir.)

Anonimlik ve Seçmen Uygunluğu

Yukarıda bahsedildiği gibi Cicada, oylama sırasında oy sayımlarını gizli tutan zamana bağlı bir bulmaca özelliği olan çalıştırma sayısı gizliliği sağlar. Bununla birlikte, her bir oy pusulası, aynı genel parametreler altında şifrelenmiş bir zaman kilidi bulmacasıdır. Bu, sayının şifresinin çözülebileceği gibi (gerekli hesaplamalar yapılarak), her oylamanın da çözülebileceği anlamına gelir. Başka bir deyişle, Cicada oy pusulasının gizliliğini yalnızca oylama sırasında garanti eder - meraklı gözlemciler belirli bir seçmenin oy pusulasının şifresini çözmek isterse bunu yapabilirler. Herhangi bir oy pusulasının şifresini çözmek, son sayımın şifresini çözmek kadar pahalıdır, bu nedenle, n seçmeni olan bir oy pusulasının şifresini tamamen çözmek safça O(n) çalışması gerektirir. Ancak tüm bu oyların şifresi paralel olarak çözülebilir (yeterli makine olduğu varsayılarak), son çetelenin şifresini çözmek için gereken duvar saati ile aynı miktarda zaman harcanır.

Bazı oylar için bu arzu edilmeyebilir. Oy sayma gizliliğini geçici olarak yürütmekten memnun olsak da, oylama gizliliğini süresiz olarak isteyebiliriz. Bunu başarmak için, Cicada'yı, grup üyeliğinin sıfır bilgi kanıtıyla somutlaştırılan anonim bir seçmen uygunluk protokolüyle birleştirebiliriz. Bu şekilde, oy pusulasının gizliliği kaldırılsa bile, ortaya çıkan tek şey birinin o yönde oy kullandığıdır ve bunu sayımdan zaten biliyoruz.

Depomuzda, seçmen anonimleştirme için Semaphore kullanan bir örnek sözleşmeye yer veriyoruz. Bununla birlikte, Cicada sözleşmesinin kendisinin seçmen uygunluğunun nasıl belirlendiği veya uygulandığı hakkında hiçbir varsayımda bulunmadığına dikkat edin. Özellikle, Semaphore'u örneğin Semacaulk veya ZK Proof of State (burada ve burada önerildiği gibi) ile değiştirebilirsiniz.

İstatistik Kurumu

Cicada'yı tasarlamadaki ilk önceliklerimizden biri, bir istatistik kurumuna ihtiyaç duymamaktı: birçok özel oylama yapısı, oyları almak ve toplamak için yarı güvenilir bir istatistik kurumuna (veya güvenli çok taraflı hesaplama yoluyla koordine edilen yetki verilmiş bir komiteye) ihtiyaç duyar. Blockchain bağlamında bu, bu planların yalnızca akıllı sözleşmelerle yürütülemeyeceği ve bazı insan müdahalesi ve güveni gerektireceği anlamına gelir.

Çoğu yapıda, sayım yetkililerine bütünlük açısından güvenilmez (oy sayımını manipüle edemezler), ancak canlılık için güvenilir - çevrimdışılarsa nihai sonucu hesaplayamazlar ve oylamayı süresiz olarak ertelerler. Bazı yapılarda, mahremiyeti korumaları konusunda da güvenilirdirler; yani, her bir bireyin nasıl oy kullandığını bilirler, ancak oylama sonuçlarını bu bilgileri ifşa etmeden yayınlamaları beklenir.

İstatistiksel otoriteler, birçok gerçek dünya senaryosunda makul (ve gerekli) bir varsayım olsa da, amacımızın güveni en aza indirmek ve sansüre karşı direnci sağlamak olduğu bir blockchain ortamında ideal değildir.

Cicada, zincir üstü oylama mahremiyeti alanındaki birçok yönden birini araştırıyor ve diğer gruplar tarafından yapılan araştırmaların çoğunu tamamlıyor. Yukarıda bahsedildiği gibi, Cicada semaforlar, ZK depolama kanıtı ve hız sınırı geçersiz kılıcılar gibi anonim grup üyeliği teknolojileriyle yakından ilgilidir. Cicada, seçmenlerin gaz yükünü azaltmak için Nouns Vortex ekibi tarafından önerilen iyimser kanıt denetleyicisini de entegre edebilir.

Cicada'yı farklı oylama şemalarını (örneğin, belirteç ağırlıklı oylama, ikinci dereceden oylama) destekleyecek şekilde uyarlama fırsatı da vardır - daha karmaşık şemalar, Ethereum ana ağı için hesaplama açısından çok pahalı olabilir, ancak L2'de pratik olabilirler. Bunu akılda tutarak, Cicada'yı bundan sonra nereye götüreceğimize dair katkılarınızı, çatallarınızı ve önerilerinizi memnuniyetle karşılıyoruz.

*Teşekkürler: Cicada, Joseph Bonneau ile birlikte geliştirildi. Oylama mahremiyetinin tarihsel geçmişi hakkında arka plan bilgisi için Andrew Hall'a teşekkürler. Bu makaleyle ilgili geri bildirimi için Robert Hackett'a da teşekkür ederiz. Düzenleme için Stephanie Zinn'e özel teşekkürler. *

View Original
  • Reward
  • Comment
  • Share
Comment
0/400
No comments