Tüm oylama sistemlerinin etkili olabilmesi için dürüstlük ve şeffaflığa dayanması gerekir. Yüzeyde, blockchain bu sistemleri oluşturmak için ideal bir platform gibi görünüyor. Aslında izinsiz oylama, birçok merkezi olmayan kuruluş tarafından, genellikle önemli mali gücün kullanılması veya önemli protokol parametrelerinin ayarlanması bağlamında, toplu iradeyi ifade etmek için benimsenmiştir. Bununla birlikte, zincirleme oylamanın bazı dezavantajları vardır ve Web3 oylama sistemleri için gizlilik sorunları tam olarak araştırılmamıştır, bu da olumsuz bir etki yaratmıştır. Günümüzde kullanılan çoğu zincirleme oylama protokolünde, oy pusulaları ve oylama sonuçları tamamen halka açıktır. Mahremiyet korumasının olmaması, oylama sonuçlarının manipülasyona açık olduğu ve aynı zamanda seçmenler için tutarsız teşviklere yol açarak potansiyel olarak demokratik olmayan sonuçlara yol açtığı anlamına gelir.
Bu amaçla, zincir üzerinde özel oylama için zaman kilitli bulmacalardan ve sıfır bilgi kanıtlarından yararlanan yeni, açık kaynaklı bir Solidity kitaplığı olan Cicada'yı başlatıyoruz. Mevcut sistemlerle karşılaştırıldığında, Cicada benzersiz gizlilik özelliklerine sahiptir, güvene olan güveni en aza indirir ve ayrıca Ethereum ana ağında çok verimlidir.
Bu yazıda, oy verme gizliliğinin mevcut durumunu araştırıyoruz ve Cicada'nın nasıl çalıştığına dair üst düzey bir giriş sağlıyoruz (resmi kanıtlar bunu takip edecek). Ayrıca geliştiricileri ayrıntılar için GitHub deposuna gitmeye teşvik ediyoruz - Cicada, farklı oylama şemaları ve özellikleri için esnek bir şekilde ayarlanabilir ve genişletilebilir. Bu olasılıkları birlikte keşfetmek için toplulukla birlikte çalışmayı sabırsızlıkla bekliyoruz.
Oylama Gizliliğine Genel Bakış
Herhangi bir oylama sisteminde (zincir üzerinde veya başka türlü), birçok farklı gizlilik düzeyini göz önünde bulundurmamız gerekir. Bireysel oy pusulalarının, devam eden oy sayımlarının ve seçmen kimliğinin ifşa edilmesi, seçmenleri farklı şekillerde etkiler. İstenen gizlilik özellikleri oydan oya değişir, ancak kriptografi ve sosyal bilimler literatüründe sıklıkla ele alınan bazı özellikler şunlardır:
******Oy Gizliliği: "Avustralya oy pusulası" olarak da bilinen gizli oylama, gerçek dünyadaki oylama sistemlerinde bireysel seçmenlerin gizliliğini korumanın ve rüşvet ve zorlamayı azaltmanın bir yoludur (zincir üzerinde Yukarıdaki ortamda, biz gizli oylamadan daha güçlü bir mekanizmaya ihtiyaç duyabilir, ayrıntılar için aşağıdaki "makbuz yok" bölümüne bakın). Oy mahremiyeti aynı zamanda sosyal arzu edilirlik önyargısını da azaltabilir; insanların, diğer insanların seçimleri hakkında ne düşündüklerine dayanarak oy verme olasılığı daha düşüktür.
******Oy Saymanın Gizliliği: Birçok oylama sistemi, katılım ve seçmen teşvikleri üzerindeki etkiyi önlemek için seçmen oylaması sırasında devam eden oy sayımlarını, yani her bir seçeneğin aldığı oy sayısını gizler. Bunun gerçek dünyada olduğunu gördük: örneğin, daha geç oy kullanan ABD senatörlerinin, daha önce oy kullanan senatörlere göre partileriyle aynı hizaya gelme olasılığı daha yüksektir. Zincirdeki Token ağırlıklı oylamada dev balinalar, rakiplerini önde tutarak (bazı insanlar bu insanların nasılsa kazanacağını düşündükleri için oy kullanamayacak kadar tembel olabilirler) ve ardından seçimde kendilerine oy vererek sahte güvenlik duygularını sürdürebilirler. Son an, sonucu belirlemek için oylama.
****** Seçmen Anonimliği: Gerçek dünyadaki birçok oylama sisteminde oyunuz gizli tutulur, ancak oy verip vermediğiniz genellikle başkaları tarafından bilinir. Bu, seçmen dolandırıcılığına karşı bir koruma görevi görebilir, çünkü kimin oy kullandığına dair kayıtların yayınlanması, insanların birinin kendi adına oy kullanıp kullanmadığını kontrol etmesine olanak tanır. Bununla birlikte, zincir üzerinde, anonimliği korurken seçmen sahtekarlığını önlemek için kriptografik ilkelleri kullanabiliriz - örneğin, bir Semafor kullanarak, uygun bir seçmen olduğunuzu ve henüz oy kullanmadığınızı sıfır bilgili bir şekilde kanıtlayabilirsiniz.
****** Alınamazlık: Seçmenler, oylarının bir başkasına nasıl verildiğini kanıtlamak için oy pusulalarının "makbuzunu" üçüncü bir tarafa vermemelidir, bu da oy pusulasının satışına yol açabilir. Zorlama direnci, birinin belirli bir şekilde oy kullanmaya zorlanmasını önleyen, yakından ilişkili başka bir özelliktir. Bu özellikler, oylama gücünün bir akıllı sözleşme pazarı aracılığıyla likit hale gelebildiği merkezi olmayan bir ortamda özellikle caziptir. Ne yazık ki, bu özelliklerin elde edilmesi çok zordur. Gerçekten de, Juels ve diğerleri, bu özelliklerin güvenilir donanım olmadan izinsiz bir ortamda elde edilmesinin imkansız olduğuna dikkat çekiyor.
Cicada, sürekli oy sayımı gizliliğine odaklanır, ancak (daha sonra tartışacağımız gibi), seçmen anonimliği ve oy pusulası gizliliği için sıfır bilgili grup üyeliği kanıtlarıyla birlikte kullanılabilir.
Cicada: Homomorfik Zaman Kilidi Bulmacalarını Kullanarak Oy Sayımı Gizliliği
Kesintisiz oy sayımı gizliliği elde etmek için Cicada, (bildiğimiz kadarıyla) zincir üzerinde hiç kullanılmamış kriptografik ilkelleri ödünç alır.
Birincisi, zaman kilitli bulmaca (Rivest, Shamir, Wagner, 1996), sırları ancak önceden belirlenmiş bir süre geçtikten sonra - daha spesifik olarak, yalnızca belirli bir işlemi tekrar tekrar yürüterek - ortaya çıkabilen bir kriptografik bulmacadır. bulmaca çözmek için kullanılır. Zaman kilitli bulmacalar, devam eden oy sayımı gizliliği için oy verme bağlamında kullanışlıdır: kullanıcılar oylarını zaman kilitli bulmacalar olarak gönderebilirler, böylece oylama işlemi sırasında oyları gizli kalır, ancak oylama ifşa edildikten sonra erişilebilir. Diğer birçok özel oylama yapısının aksine, bu, 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 işbirliği yapmalıdır) veya başka herhangi bir güvenilir tarafa güvenmeden oy sayımı gizliliğinin elde edilmesini sağlar. : oylamadan sonra sonucun açıklanmasını sağlamak için herkes zaman kilidi bulmacasını çözebilir.
İkincisi, homomorfik 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 yapılabilmesi gibi ek bir özelliğe sahiptir. Özellikle lineer homomorfik timelock bulmacası, orijinal bulmacaların gizli değerlerinin toplamını içeren yeni bir bulmaca oluşturmak için bulmacaları bir araya getirmemize olanak tanır.
Makale yazarlarının belirttiği gibi, doğrusal homomorfik zaman kilitli bulmacalar, özel oylama için özellikle uygundur: oylar, bulmacalar olarak kodlanabilir ve nihai istatistikleri kodlayan bulmacalar elde etmek için homomorfik olarak birleştirilebilirler. Bu, her oy için benzersiz bir bulmacayı çözmek yerine, nihai çeteleyi ortaya çıkarmak için yalnızca bir hesaplamanın gerekli olduğu anlamına gelir.
Yeni Sistem: Verimlilik ve Dengeler
Zincir üzerinde pratik olarak uygulanabilen bir oylama planı için dikkate alınması gereken birkaç faktör vardır. Birincisi, bir saldırgan yanlış kodlanmış oy pusulaları göndererek oylama sonuçlarını manipüle etmeye çalışabilir. Örneğin, her oy pusulasının zaman kilidi bulmacasının bir boole değeri kodlamasını bekleyebiliriz: oylanan karar için "1" ve aleyhte için "0". Ateşli bir destekçi, etkin oy gücünü artırmak için "100" gibi bir kod kullanmayı deneyebilir.
Oy pusulasını göndermenin yanı sıra seçmenlerden sıfır bilgi kanıtı sunmalarını isteyerek bu saldırıyı önleyebiliriz. Bununla birlikte, sıfır bilgi kanıtları hesaplama açısından pahalı olabilir - seçmen katılımının maliyetini mümkün olduğunca düşük tutmak için kanıtların (1) müşteri tarafında verimli bir şekilde hesaplanması ve (2) zincir üzerinde verimli bir şekilde doğrulanması gerekir.
Kanıtı olabildiğince verimli hale getirmek için özel bir sigma protokolü kullanıyoruz. Bu, genel bir ispat sistemi değil, belirli cebirsel ilişkiler için tasarlanmış sıfır bilgili bir ispattır. Bu, prova sürelerini büyük ölçüde hızlandırır: kullanıma hazır bir dizüstü bilgisayarda, Python'da bir oy pusulası geçerlilik kanıtı oluşturmak yalnızca 14 milisaniye sürer.
Bu sigma protokolünün doğrulama süreci kavramsal olarak basit olsa da, aslında birkaç büyük modulo üstel işlemi gerektirir. Malavolta ve Thyagarajan'ın doğrusal homomorfik şeması Paillier şifrelemesini kullanır, bu nedenle bu üstel işlemler, bazı RSA modülleri N^2 olan modülo olarak gerçekleştirilecektir. Oldukça büyük bir N için, bu üs alma işlemleri çoğu EVM zincirinde engelleyicidir (milyonlarca gaz gerektirir). Bu maliyeti azaltmak için Cicada, bunun yerine hala ek homomorfizm sağlayan, ancak daha küçük bir modülde (N^2 yerine N) çalışan ElGamal üssünü kullanır.
ElGamal kullanmanın bir dezavantajı, istatistiklerin şifresini çözmek için kapsamlı ayrık logaritmalar gerektirmesidir (bunun zincir dışında yapıldığını ve zincir üzerinde verimli bir şekilde doğrulandığını unutmayın). Bu nedenle, yalnızca beklenen nihai sayı nispeten küçükse kullanılmalıdır (örneğin, 2^32'den az, yaklaşık 4,3 milyon oy). Orijinal Paillier tabanlı şemada, istatistiklerin boyutundan bağımsız olarak şifresi verimli bir şekilde çözülebilir.
RSA modülü N'nin seçilmesi aynı zamanda takasları da içerir. Yöntemimiz, gaz verimliliğini artırmak için 1024 bitlik bir modül kullanır. Bu, çarpanlara ayırma için maksimum RSA modülünün (829 bit olan) çok üzerinde olsa da, genellikle RSA şifrelemesi veya imzalaması için önerilen 2048 bit boyutunun altındadır. Bununla birlikte, uygulamamızda uzun vadeli güvenliğe ihtiyacımız yok: seçim bittiğinde, gelecekteki N'nin çarpanlara ayrılması durumunda hiçbir risk yok. Zaman kilidinin süresi dolduktan sonra, istatistiklerin ve oyların halka açık hale geleceği varsayılarak nispeten küçük bir modül kullanmak mantıklıdır. (Faktorlara ayırma algoritması gelişirse bu, gelecekte kolayca güncellenebilir.)
Anonimlik ve Seçmen Uygunluğu
Yukarıda bahsedildiği gibi, Cicada sürekli oy çetelesi gizliliği sağlar - bir zaman kilidi bulmacası, oylama sırasında çeteleleri gizli tutar. Bununla birlikte, her oy aynı zamanda aynı genel parametreler altında şifrelenmiş bir zaman kilidi bulmacasıdır. Bu, istatistiklerin şifresinin çözülebileceği gibi (gerekli hesaplamalar yapılarak), her oylamanın da çözülebileceği anlamına gelir.
Diğer bir deyişle, Cicada yalnızca oylama sırasında oyların gizliliğini garanti eder. Meraklı bir gözlemci belirli bir seçmenin oy pusulasını deşifre etmek isterse, bunu sandıklar kapandıktan sonra da yapabilir. Herhangi bir oy pusulasının şifresini çözmenin maliyeti, son oy pusulasının şifresini çözmenin maliyetiyle aynıdır, bu nedenle n seçmeni olan bir oy pusulasının şifresini tamamen çözmek O(n) çalışma gerektirir. Ancak, tüm bu oyların şifresi, son çetelenin şifresinin çözülmesiyle aynı süreyi alan bir süreçte (yeterli bilgisayar olduğu varsayılarak) paralel olarak çözülebilir.
Bazı anketler için bu ideal olmayabilir. Geçici oy sayımı gizliliğinden memnun olsak da, kalıcı oy gizliliğine sahip olmayı isteyebiliriz. Bunu başarmak için, Cicada'yı grup üyeliğinin sıfır bilgi kanıtı yoluyla anonim bir seçmen uygunluk protokolüyle birleştirebiliriz. Bu şekilde, oy pusulalarının gizliliği kaldırılsa bile, yalnızca birinin nasıl oy kullandığını ortaya çıkaracaktır ki bu zaten çetelede ortaya çıkmıştır.
Depomuzda, seçmen anonimliği için Semafor kullanan bir sözleşme örneği sunuyoruz. Cicada sözleşmesinin kendisinin seçmen uygunluğunun belirlenmesi veya uygulanması hakkında hiçbir varsayımda bulunmadığına dikkat edin. Özellikle Semaphore'u Semacaulk veya ZK Proof of State ile değiştirebilirsiniz.
Oy sayma kurumu
Cicada'yı tasarlarken ilk hedeflerimizden biri, oy sayma kurumlarına güvenmekten kaçınmaktı: birçok özel oy, oyları alan ve toplayan yarı güvenilir bir sayım kurumu (veya güvenli çok taraflı hesaplama yoluyla işbirliği yapan komite) gerektirir. Blockchain bağlamında bu, bu şemaların yalnızca akıllı sözleşmeler yoluyla gerçekleştirilemeyeceği, ancak biraz insan müdahalesi ve güven gerektirdiği anlamına gelir.
Çoğu rejimde, istatistik kurumlarına dürüstlük açısından güvenilir (oy sayımlarını manipüle edemezler), ancak aktif kalmaları gerekir - eğer çevrimdışılarsa, nihai sonuçlar hesaplanamaz ve oylama sonuçları süresiz olarak oyalanır. Bazı sistemlerde, gizliliği korumak için istatistik ajanslarına da güvenilmektedir. Yani her seçmenin oyunu biliyorlar ama bu bilgiyi açıklamadan sonuçları yayınlıyorlar.
İstatistik kurumları birçok gerçek dünya senaryosunda makul (ve gerekli) olsa da, amacımızın güveni en aza indirmek ve sansüre karşı direnci sağlamak olduğu blok zincirleri bağlamında ideal değiller.
Çözüm
Cicada, zincir üstü oylama mahremiyeti alanında birçok yönü keşfediyor ve diğer gruplar tarafından devam eden araştırmaları tamamlıyor. Yukarıda bahsedildiği gibi Cicada, Semaphore, ZK depolama kanıtı ve hız sınırlayıcı geçersiz kılıcılar gibi anonim grup üyeliği teknolojilerini tamamlar. Cicada, seçmenlerin üzerindeki gaz yükünü azaltmak için Nouns Vortex ekibi tarafından önerilen iyimser kanıt denetleyicisiyle de birleştirilebilir.
Ayrıca, Cicada'yı farklı oylama şemalarını (örneğin ağırlıklı oylama, ikinci dereceden oylama) destekleyecek şekilde ayarlama fırsatımız var, daha karmaşık şemalar Ethereum ana ağı için hesaplama açısından pahalı olabilirken, bunlar Katman 2 ağlarında uygulanabilir olabilir. Bunu akılda tutarak, Cicada'nın gelecekteki yönü için her türlü öneriyi memnuniyetle karşılıyoruz.
View Original
The content is for reference only, not a solicitation or offer. No investment, tax, or legal advice provided. See Disclaimer for more risks disclosure.
Cicada: Timelock Bulmacaları ve ZK Yoluyla Zincir Üzerinde Özel Oylama
Tüm oylama sistemlerinin etkili olabilmesi için dürüstlük ve şeffaflığa dayanması gerekir. Yüzeyde, blockchain bu sistemleri oluşturmak için ideal bir platform gibi görünüyor. Aslında izinsiz oylama, birçok merkezi olmayan kuruluş tarafından, genellikle önemli mali gücün kullanılması veya önemli protokol parametrelerinin ayarlanması bağlamında, toplu iradeyi ifade etmek için benimsenmiştir. Bununla birlikte, zincirleme oylamanın bazı dezavantajları vardır ve Web3 oylama sistemleri için gizlilik sorunları tam olarak araştırılmamıştır, bu da olumsuz bir etki yaratmıştır. Günümüzde kullanılan çoğu zincirleme oylama protokolünde, oy pusulaları ve oylama sonuçları tamamen halka açıktır. Mahremiyet korumasının olmaması, oylama sonuçlarının manipülasyona açık olduğu ve aynı zamanda seçmenler için tutarsız teşviklere yol açarak potansiyel olarak demokratik olmayan sonuçlara yol açtığı anlamına gelir.
Bu amaçla, zincir üzerinde özel oylama için zaman kilitli bulmacalardan ve sıfır bilgi kanıtlarından yararlanan yeni, açık kaynaklı bir Solidity kitaplığı olan Cicada'yı başlatıyoruz. Mevcut sistemlerle karşılaştırıldığında, Cicada benzersiz gizlilik özelliklerine sahiptir, güvene olan güveni en aza indirir ve ayrıca Ethereum ana ağında çok verimlidir.
Bu yazıda, oy verme gizliliğinin mevcut durumunu araştırıyoruz ve Cicada'nın nasıl çalıştığına dair üst düzey bir giriş sağlıyoruz (resmi kanıtlar bunu takip edecek). Ayrıca geliştiricileri ayrıntılar için GitHub deposuna gitmeye teşvik ediyoruz - Cicada, farklı oylama şemaları ve özellikleri için esnek bir şekilde ayarlanabilir ve genişletilebilir. Bu olasılıkları birlikte keşfetmek için toplulukla birlikte çalışmayı sabırsızlıkla bekliyoruz.
Oylama Gizliliğine Genel Bakış
Herhangi bir oylama sisteminde (zincir üzerinde veya başka türlü), birçok farklı gizlilik düzeyini göz önünde bulundurmamız gerekir. Bireysel oy pusulalarının, devam eden oy sayımlarının ve seçmen kimliğinin ifşa edilmesi, seçmenleri farklı şekillerde etkiler. İstenen gizlilik özellikleri oydan oya değişir, ancak kriptografi ve sosyal bilimler literatüründe sıklıkla ele alınan bazı özellikler şunlardır:
******Oy Gizliliği: "Avustralya oy pusulası" olarak da bilinen gizli oylama, gerçek dünyadaki oylama sistemlerinde bireysel seçmenlerin gizliliğini korumanın ve rüşvet ve zorlamayı azaltmanın bir yoludur (zincir üzerinde Yukarıdaki ortamda, biz gizli oylamadan daha güçlü bir mekanizmaya ihtiyaç duyabilir, ayrıntılar için aşağıdaki "makbuz yok" bölümüne bakın). Oy mahremiyeti aynı zamanda sosyal arzu edilirlik önyargısını da azaltabilir; insanların, diğer insanların seçimleri hakkında ne düşündüklerine dayanarak oy verme olasılığı daha düşüktür.
******Oy Saymanın Gizliliği: Birçok oylama sistemi, katılım ve seçmen teşvikleri üzerindeki etkiyi önlemek için seçmen oylaması sırasında devam eden oy sayımlarını, yani her bir seçeneğin aldığı oy sayısını gizler. Bunun gerçek dünyada olduğunu gördük: örneğin, daha geç oy kullanan ABD senatörlerinin, daha önce oy kullanan senatörlere göre partileriyle aynı hizaya gelme olasılığı daha yüksektir. Zincirdeki Token ağırlıklı oylamada dev balinalar, rakiplerini önde tutarak (bazı insanlar bu insanların nasılsa kazanacağını düşündükleri için oy kullanamayacak kadar tembel olabilirler) ve ardından seçimde kendilerine oy vererek sahte güvenlik duygularını sürdürebilirler. Son an, sonucu belirlemek için oylama.
****** Seçmen Anonimliği: Gerçek dünyadaki birçok oylama sisteminde oyunuz gizli tutulur, ancak oy verip vermediğiniz genellikle başkaları tarafından bilinir. Bu, seçmen dolandırıcılığına karşı bir koruma görevi görebilir, çünkü kimin oy kullandığına dair kayıtların yayınlanması, insanların birinin kendi adına oy kullanıp kullanmadığını kontrol etmesine olanak tanır. Bununla birlikte, zincir üzerinde, anonimliği korurken seçmen sahtekarlığını önlemek için kriptografik ilkelleri kullanabiliriz - örneğin, bir Semafor kullanarak, uygun bir seçmen olduğunuzu ve henüz oy kullanmadığınızı sıfır bilgili bir şekilde kanıtlayabilirsiniz.
****** Alınamazlık: Seçmenler, oylarının bir başkasına nasıl verildiğini kanıtlamak için oy pusulalarının "makbuzunu" üçüncü bir tarafa vermemelidir, bu da oy pusulasının satışına yol açabilir. Zorlama direnci, birinin belirli bir şekilde oy kullanmaya zorlanmasını önleyen, yakından ilişkili başka bir özelliktir. Bu özellikler, oylama gücünün bir akıllı sözleşme pazarı aracılığıyla likit hale gelebildiği merkezi olmayan bir ortamda özellikle caziptir. Ne yazık ki, bu özelliklerin elde edilmesi çok zordur. Gerçekten de, Juels ve diğerleri, bu özelliklerin güvenilir donanım olmadan izinsiz bir ortamda elde edilmesinin imkansız olduğuna dikkat çekiyor.
Cicada, sürekli oy sayımı gizliliğine odaklanır, ancak (daha sonra tartışacağımız gibi), seçmen anonimliği ve oy pusulası gizliliği için sıfır bilgili grup üyeliği kanıtlarıyla birlikte kullanılabilir.
Cicada: Homomorfik Zaman Kilidi Bulmacalarını Kullanarak Oy Sayımı Gizliliği
Kesintisiz oy sayımı gizliliği elde etmek için Cicada, (bildiğimiz kadarıyla) zincir üzerinde hiç kullanılmamış kriptografik ilkelleri ödünç alır.
Birincisi, zaman kilitli bulmaca (Rivest, Shamir, Wagner, 1996), sırları ancak önceden belirlenmiş bir süre geçtikten sonra - daha spesifik olarak, yalnızca belirli bir işlemi tekrar tekrar yürüterek - ortaya çıkabilen bir kriptografik bulmacadır. bulmaca çözmek için kullanılır. Zaman kilitli bulmacalar, devam eden oy sayımı gizliliği için oy verme bağlamında kullanışlıdır: kullanıcılar oylarını zaman kilitli bulmacalar olarak gönderebilirler, böylece oylama işlemi sırasında oyları gizli kalır, ancak oylama ifşa edildikten sonra erişilebilir. Diğer birçok özel oylama yapısının aksine, bu, 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 işbirliği yapmalıdır) veya başka herhangi bir güvenilir tarafa güvenmeden oy sayımı gizliliğinin elde edilmesini sağlar. : oylamadan sonra sonucun açıklanmasını sağlamak için herkes zaman kilidi bulmacasını çözebilir.
İkincisi, homomorfik 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 yapılabilmesi gibi ek bir özelliğe sahiptir. Özellikle lineer homomorfik timelock bulmacası, orijinal bulmacaların gizli değerlerinin toplamını içeren yeni bir bulmaca oluşturmak için bulmacaları bir araya getirmemize olanak tanır.
Makale yazarlarının belirttiği gibi, doğrusal homomorfik zaman kilitli bulmacalar, özel oylama için özellikle uygundur: oylar, bulmacalar olarak kodlanabilir ve nihai istatistikleri kodlayan bulmacalar elde etmek için homomorfik olarak birleştirilebilirler. Bu, her oy için benzersiz bir bulmacayı çözmek yerine, nihai çeteleyi ortaya çıkarmak için yalnızca bir hesaplamanın gerekli olduğu anlamına gelir.
Yeni Sistem: Verimlilik ve Dengeler
Zincir üzerinde pratik olarak uygulanabilen bir oylama planı için dikkate alınması gereken birkaç faktör vardır. Birincisi, bir saldırgan yanlış kodlanmış oy pusulaları göndererek oylama sonuçlarını manipüle etmeye çalışabilir. Örneğin, her oy pusulasının zaman kilidi bulmacasının bir boole değeri kodlamasını bekleyebiliriz: oylanan karar için "1" ve aleyhte için "0". Ateşli bir destekçi, etkin oy gücünü artırmak için "100" gibi bir kod kullanmayı deneyebilir.
Oy pusulasını göndermenin yanı sıra seçmenlerden sıfır bilgi kanıtı sunmalarını isteyerek bu saldırıyı önleyebiliriz. Bununla birlikte, sıfır bilgi kanıtları hesaplama açısından pahalı olabilir - seçmen katılımının maliyetini mümkün olduğunca düşük tutmak için kanıtların (1) müşteri tarafında verimli bir şekilde hesaplanması ve (2) zincir üzerinde verimli bir şekilde doğrulanması gerekir.
Kanıtı olabildiğince verimli hale getirmek için özel bir sigma protokolü kullanıyoruz. Bu, genel bir ispat sistemi değil, belirli cebirsel ilişkiler için tasarlanmış sıfır bilgili bir ispattır. Bu, prova sürelerini büyük ölçüde hızlandırır: kullanıma hazır bir dizüstü bilgisayarda, Python'da bir oy pusulası geçerlilik kanıtı oluşturmak yalnızca 14 milisaniye sürer.
Bu sigma protokolünün doğrulama süreci kavramsal olarak basit olsa da, aslında birkaç büyük modulo üstel işlemi gerektirir. Malavolta ve Thyagarajan'ın doğrusal homomorfik şeması Paillier şifrelemesini kullanır, bu nedenle bu üstel işlemler, bazı RSA modülleri N^2 olan modülo olarak gerçekleştirilecektir. Oldukça büyük bir N için, bu üs alma işlemleri çoğu EVM zincirinde engelleyicidir (milyonlarca gaz gerektirir). Bu maliyeti azaltmak için Cicada, bunun yerine hala ek homomorfizm sağlayan, ancak daha küçük bir modülde (N^2 yerine N) çalışan ElGamal üssünü kullanır.
ElGamal kullanmanın bir dezavantajı, istatistiklerin şifresini çözmek için kapsamlı ayrık logaritmalar gerektirmesidir (bunun zincir dışında yapıldığını ve zincir üzerinde verimli bir şekilde doğrulandığını unutmayın). Bu nedenle, yalnızca beklenen nihai sayı nispeten küçükse kullanılmalıdır (örneğin, 2^32'den az, yaklaşık 4,3 milyon oy). Orijinal Paillier tabanlı şemada, istatistiklerin boyutundan bağımsız olarak şifresi verimli bir şekilde çözülebilir.
RSA modülü N'nin seçilmesi aynı zamanda takasları da içerir. Yöntemimiz, gaz verimliliğini artırmak için 1024 bitlik bir modül kullanır. Bu, çarpanlara ayırma için maksimum RSA modülünün (829 bit olan) çok üzerinde olsa da, genellikle RSA şifrelemesi veya imzalaması için önerilen 2048 bit boyutunun altındadır. Bununla birlikte, uygulamamızda uzun vadeli güvenliğe ihtiyacımız yok: seçim bittiğinde, gelecekteki N'nin çarpanlara ayrılması durumunda hiçbir risk yok. Zaman kilidinin süresi dolduktan sonra, istatistiklerin ve oyların halka açık hale geleceği varsayılarak nispeten küçük bir modül kullanmak mantıklıdır. (Faktorlara ayırma algoritması gelişirse bu, gelecekte kolayca güncellenebilir.)
Anonimlik ve Seçmen Uygunluğu
Yukarıda bahsedildiği gibi, Cicada sürekli oy çetelesi gizliliği sağlar - bir zaman kilidi bulmacası, oylama sırasında çeteleleri gizli tutar. Bununla birlikte, her oy aynı zamanda aynı genel parametreler altında şifrelenmiş bir zaman kilidi bulmacasıdır. Bu, istatistiklerin şifresinin çözülebileceği gibi (gerekli hesaplamalar yapılarak), her oylamanın da çözülebileceği anlamına gelir.
Diğer bir deyişle, Cicada yalnızca oylama sırasında oyların gizliliğini garanti eder. Meraklı bir gözlemci belirli bir seçmenin oy pusulasını deşifre etmek isterse, bunu sandıklar kapandıktan sonra da yapabilir. Herhangi bir oy pusulasının şifresini çözmenin maliyeti, son oy pusulasının şifresini çözmenin maliyetiyle aynıdır, bu nedenle n seçmeni olan bir oy pusulasının şifresini tamamen çözmek O(n) çalışma gerektirir. Ancak, tüm bu oyların şifresi, son çetelenin şifresinin çözülmesiyle aynı süreyi alan bir süreçte (yeterli bilgisayar olduğu varsayılarak) paralel olarak çözülebilir.
Bazı anketler için bu ideal olmayabilir. Geçici oy sayımı gizliliğinden memnun olsak da, kalıcı oy gizliliğine sahip olmayı isteyebiliriz. Bunu başarmak için, Cicada'yı grup üyeliğinin sıfır bilgi kanıtı yoluyla anonim bir seçmen uygunluk protokolüyle birleştirebiliriz. Bu şekilde, oy pusulalarının gizliliği kaldırılsa bile, yalnızca birinin nasıl oy kullandığını ortaya çıkaracaktır ki bu zaten çetelede ortaya çıkmıştır.
Depomuzda, seçmen anonimliği için Semafor kullanan bir sözleşme örneği sunuyoruz. Cicada sözleşmesinin kendisinin seçmen uygunluğunun belirlenmesi veya uygulanması hakkında hiçbir varsayımda bulunmadığına dikkat edin. Özellikle Semaphore'u Semacaulk veya ZK Proof of State ile değiştirebilirsiniz.
Oy sayma kurumu
Cicada'yı tasarlarken ilk hedeflerimizden biri, oy sayma kurumlarına güvenmekten kaçınmaktı: birçok özel oy, oyları alan ve toplayan yarı güvenilir bir sayım kurumu (veya güvenli çok taraflı hesaplama yoluyla işbirliği yapan komite) gerektirir. Blockchain bağlamında bu, bu şemaların yalnızca akıllı sözleşmeler yoluyla gerçekleştirilemeyeceği, ancak biraz insan müdahalesi ve güven gerektirdiği anlamına gelir.
Çoğu rejimde, istatistik kurumlarına dürüstlük açısından güvenilir (oy sayımlarını manipüle edemezler), ancak aktif kalmaları gerekir - eğer çevrimdışılarsa, nihai sonuçlar hesaplanamaz ve oylama sonuçları süresiz olarak oyalanır. Bazı sistemlerde, gizliliği korumak için istatistik ajanslarına da güvenilmektedir. Yani her seçmenin oyunu biliyorlar ama bu bilgiyi açıklamadan sonuçları yayınlıyorlar.
İstatistik kurumları birçok gerçek dünya senaryosunda makul (ve gerekli) olsa da, amacımızın güveni en aza indirmek ve sansüre karşı direnci sağlamak olduğu blok zincirleri bağlamında ideal değiller.
Çözüm
Cicada, zincir üstü oylama mahremiyeti alanında birçok yönü keşfediyor ve diğer gruplar tarafından devam eden araştırmaları tamamlıyor. Yukarıda bahsedildiği gibi Cicada, Semaphore, ZK depolama kanıtı ve hız sınırlayıcı geçersiz kılıcılar gibi anonim grup üyeliği teknolojilerini tamamlar. Cicada, seçmenlerin üzerindeki gaz yükünü azaltmak için Nouns Vortex ekibi tarafından önerilen iyimser kanıt denetleyicisiyle de birleştirilebilir.
Ayrıca, Cicada'yı farklı oylama şemalarını (örneğin ağırlıklı oylama, ikinci dereceden oylama) destekleyecek şekilde ayarlama fırsatımız var, daha karmaşık şemalar Ethereum ana ağı için hesaplama açısından pahalı olabilirken, bunlar Katman 2 ağlarında uygulanabilir olabilir. Bunu akılda tutarak, Cicada'nın gelecekteki yönü için her türlü öneriyi memnuniyetle karşılıyoruz.