Dağıtılmış İzlenebilirliği olan Grup İmza Şemaları (veya bir imzanın adil bir şekilde nasıl açılacağı)

Anne-Laure Delva tarafından resim

Bu yazıda grup imza şemalarını tartışmak ve özellikle dağıtılmış izlenebilirliği olan grup imzalarını tartışmak ve bunun neden bu imzaların nasıl kullanılacağına bir örnek olarak Helix konsensüs protokolünü kullanarak dağıtılmış sistemler için ilginç bir şifreleme aracı olduğunu göstermek istiyorum.

Chaum ve Van Heyst tarafından verilen grup imzaları, bir grubun bir üyesine grup adına isimsiz olarak imza atmalarına izin verirken, özel durumlarda imzalayanın kimliğini takip etme imkanı sunar. Yani, grup katılımcıları, doğrulama anahtarlarını kullanarak, bir grubun gerçekten bir kişi tarafından imza oluşturulduğunu ancak kim tarafından söylenemediğini kontrol edebilirler. Uyuşmazlık veya yanlış davranış durumunda, izleme otoritesi imzalayanı geri izlemek için izleme anahtarını kullanır.

Bazı kullanım durumlarında tek bir izleme yetkisine sahip olmak işe yarar. Bununla birlikte, diğer birçok durumda, herkesin anonimlikten kurtulma konusunda güvendiği tek bir otorite yoktur ve bu yüzden birkaç otorite arasında sorumluluğu bölmek daha mantıklıdır. Bu görüş Benjumea ve ark. “Adil izlenebilir çoklu grup imzaları” tasarlamak. Düzenlerinde, birden fazla adalet otoritesi işbirliği yaparsa imza açmak mümkündür. Adalet yetkilileri ayrıca, şüpheli bir kullanıcının izleme anahtarını ortaya çıkarmak için işbirliği yapabilir. Bu anahtar, bir mesajın diğer kullanıcıların anonimliğini iptal etmeden belirli bir kullanıcı tarafından imzalanıp imzalanmadığını kontrol etmek için kullanılabilir.

Bu güne, Zheng ve arkadaşlarının “Eşik İzlenebilirliği Olan Demokratik Grup İmzaları” ve Blomer et'in “Eşik İzlenebilirliği Olan Demokratik Grup İmzaları” ve Blomer ve ark.nın “Eşik İzlenebilirliği Olan Demokratik Grup İmzaları” gibi dağıtılmış izlenebilirliği olan birkaç imza şeması var al. üzerinde daha ayrıntılı çalışacağım.

Helix'te dağıtılmış izlenebilirliği olan grup imzaları

Orbs'ta, işlemlerin adil bir şekilde yapılmasını sağlamak için özel olarak tasarlanan orijinal konsensüs protokolümüz olan Helix'i geliştiriyoruz. Helix'teki anahtar kavram, ağ düğümlerinin hangi işlemlerin yeni bir blokta veya sıralarında yer aldığını manipüle edememesidir. Özellikle belirli düğümleri veya kullanıcıları sansürleyemezler ve kendi işlemlerini önemli ölçüde lehine tutamazlar. Bu blog gönderisinde Helix hakkında daha fazla bilgi edinebilirsiniz.

Helix'teki adalet için önemli bir katkıda bulunan, kullanıcıların işlemlerini şifrelemelerini ve ardından orijinal işlemlerin yalnızca blok zincirine eklendikten sonra şifrelerini çözmelerini sağlamaktır. İşlemleri şifrelemenin bir bedeli var, özellikle de geçerli işlemler yerine ağa önemsiz yollayan kullanıcıları ve düğümleri cezalandırma ihtiyacını arttırıyor. Bu nedenle itibarlarını azaltmak için hangi ağ düğümlerinin sorunlu işlemlerden sorumlu olduğunu ortaya çıkarmak için bir mekanizmaya ihtiyacımız var.

Bunu, dağılmış izlenebilirliği olan grup imzalarını kullanarak, her ağ düğümünün bir adalet otoritesi olarak hizmet etmesini sağlayarak ve imzaları açmak ve izlemek için eşik sayıda otorite gerektirmesini sağlayabiliriz.

Şimdi bir işlemin Helix'te yaptığı akışı ve dağıtılmış izlenebilirliği olan grup imzalarının nasıl kullanılabileceğini açıklamaya gidiyorum. Bu belirli akışla daha az ilgileniyorsanız, ileriye atlayıp aday imza planını okuyabilirsiniz. Akış, bir kullanıcı bir işlem oluşturduğunda, şifrelendiğinde ve ilişkilendirildiği bir ağ düğümüne gönderdiğinde başlar. Ağ düğümü daha sonra adil bir izlenebilir grup imza şeması kullanarak işlemi imzalar ve işlemi ağa iletir. İşlemi bir bloğa dahil etmeden önce, blok oluşturucu işlemin geçerli bir grup imzasına sahip olup olmadığını kontrol eder. Blok, blok zincirine eklendikten sonra, bloktaki işlemlerin şifresini çözmek için bir işlem (eşik sayıda düğüm gerektirir) başlatırız. Gerekirse (örneğin, şifresi çözülen işlemin geçersiz olduğu ortaya çıkıyor) eşik sayıda düğüm işbirliği yapıyor ve hangi düğümü bu işlemi imzaladığını görmek için imzayı açıyor.

Akış için bir başka olası seçenek deşifre işlemine paralel olarak imzaları varsayılan olarak açmaktır. İmzayı varsayılan olarak açmanın avantajı, bu şekilde hatalı işlemler için özel bir protokol başlatmamıza gerek kalmaması ve bunun yerine normal akışın bir parçası olarak gerçekleştirilmemizdir. Diğer bir seçenek ise (belirli bir yaramazlık düğümünü izlemek için kullanılan) bir izleme anahtarının ortaya çıkması sürecini dahil etmektir. Ayrıca bazı grup imza şemalarının, imzalayıcıların, imzaları yukarıdaki akışta kullanmadığımız kendilerine ait olduğunu iddia edebileceği hak talep fonksiyonelliğine de sahip olduğunu not ettik.

Akışımızdan, aradığımız güvenlik gereksinimlerini karşılıyoruz:

  • Anonimlik: Bir grup imzası, eşikten daha fazla sayıda adalet otoritesi işbirliği yapmadıkça, onu üreten üyenin kimliğini ortaya çıkarmaz.
  • İzlenebilirlik gizliliği korur: Eğer bir düğüm bir imzanın kaynağı olduğunu iddia ederse veya kimliği izleme algoritmasının bir parçası olarak ortaya çıkarsa, bu kalan geçmiş veya gelecekteki grup imzalarının verdiği gizliliği içermez.
  • Bağlantısızlık: Aynı imza sahibi tarafından üretilen iki ya da daha fazla imzanın eşik sayıda makam işbirliği yapmadan ilişkilendirilmesi mümkün değildir.
  • Ayrılmazlık: Grup ve izleme yöneticileri grubun geri kalanıyla uyuşsa bile, dürüst bir grup üyesini çerçeveleyemezler. Bir kullanıcı iki farklı yolla çerçevelenebilir: yetkili makamlar ve diğer kullanıcılar, masum bir kullanıcıya açılan veya izleyen bir imza oluşturabilir (bu gereksinime aynı zamanda güçlü yönelebilirlik de denir) veya kullanıcı tarafından üretilen bir imza talep edebilir. onların kendi.

Diğer önemli gereksinimler şunlardır: işaretçilerin ve izleyicilerin dinamik değişimini desteklemek ve güvenilir kurulum gerektirmemesi.

Aday İmza Şeması

Halen bilinen en etkili imza şemalarından biri, “Kısa grup imzaları” başlıklı makalelerinde tanıttıkları Boneh, Boyen ve Shacham (BBS) 'dir. İmza şeması, kullanmamız için gereken bazı özelliklerden yoksundur. Birincisi, grup imza şeması dağıtılmış izlenebilirlik sağlamaz, daha ziyade merkezi bir izleme otoritesi gerektirir. Ek olarak, onların düzeni “izlenebilirliği anonimlik korur” özelliğini karşılamaz (çünkü daha sonra açıklanacak olan CCA-anonimlik sağlamaz). Dahası, anahtar oluşturma süreci güvenilir bir satıcı gerektirir. Neyse ki, ilk iki konuyla ilgilenen takip raporları var. Fikirler, dağıtılmış izlenebilirlik sunan bir CCA anonim imza planına ulaşmak için birleştirilebilir. Güvenilir satıcıdan kurtulmak, bu düzeni seçersek ele alınması gereken bir konudur.

Blomer ve diğ. “Dağıtılmış izlenebilirliği olan kısa grup imzaları”, dağıtılmış izlenebilirliği desteklemek için BBS'nin planı genişletildi. Bu, aşağıdaki şekilde gerçekleştirilir. BBS programında imzanın bir kısmı, gizli anahtarın (kısmen) şifrelenmesi ve bu şifreli metnin şifresini çözmek için açılış miktarlarıdır. Blomer tarafından yazılan makalede, şifrelemeyi eşik şifrelemeye değiştirirler. Bir imza açmak iki işlemden oluşur, ilki imzadan açık bir pay elde etmek, ikincisi imzalayanın anahtarının şifresini çözmek için eşik sayıdaki hisse senetlerini birleştirmektir. Yaptıkları bir diğer değişiklik ise, adalet yetkililerine değil, sadece kullanıcı tarafından bilinen gizli anahtara ek bir unsur eklemek. Bu, adalet makamlarının diğer üyeler adına imza alamayacağını garanti eder.

BBS tarafından yapılan şema CPA-anonimlik sağlar. Kabaca, bu, düşmanın iz imza protokolünü sorgulamaması koşuluyla imzaların isimsiz olduğu anlamına gelir. Bununla birlikte, bir rakip imzalı mesajlar üretip bunları blok zincirine gönderebileceği ve daha sonra normal akışımızın bir parçası olarak izleneceği için, bu varsayım bizim düzenimizde haklı değildir. Bu nedenle, imza planının CCA anonim olmasını istiyoruz; bu, açık \ izleme protokolüne erişen bir rakip bile, eşik sayıda adalet yetkilisi ile işbirliği yapmadan imzayı izleyemediği anlamına gelir. “Çevrimiçi iletişim araçlarıyla iletişimi etkin kılan etkileşimli olmayan kanıtlar” başlıklı makalesinde Fischlin, imza planını BBS tarafından CCA güvenliğine dönüştürmek için bir yöntem sunmaktadır. Bu, şifrelemede kullanılan rasgele değerler için etkileşimli olmayan, sıfır bilgi içeren bir bilgi kanıtı oluşturan imzaya bileşen ekleyerek çalışır. Gayri resmi olarak, bu, rakiplerin izleme protokolü ile etkileşimden fazla bir şey kazanmadıklarını garanti eder çünkü geçerli bir mesajı imzalamak için ilk başta şifrelemeyi oluşturmak için kullanılan rastgele değerleri bilmek zorundaydı.

İmzanın büyüklüğü

BBS grup imza planının yazarlar tarafından önerilen parametreler altındaki uzunluğu 1.533 bittir. Bu, benzer güvenlikli imzalar için 1,024 veya 2,048 bit uzunluğunda olan RSA imzasının boyutuyla karşılaştırılabilir. Dağıtılmış izlenebilirlik eklemek, imzayı daha uzun yapmaz, ancak karmaşıklığı, payları birleştirmek için lagrange polinom interpolasyonunun hesaplanmasını gerektirir.

Bilginin sıfır bilgi kanıtı gelince, bu nispeten büyüktür ve hesaplanması maliyetlidir. Makalede önerilen parametreler için, toplam 5,053 bitlik bir imza uzunluğu anlamına gelen 3,520 bitlik bir uzunluktur.

İmza paylarının büyüklüğü hisse başına 340 bittir.

Konuyla ilgili yararlı tartışmalar için Steven Goldfeder'e teşekkür etmek istiyorum.

* Küreler beyaz kağıtlarını okuyun: https://www.orbs.com/white-papers

Orbs topluluğuna katılın:

  • Telgraf: https://t.me/orbs_network
  • Twitter: https://twitter.com/orbs_network
  • Reddit: https://www.reddit.com/r/ORBS_Network/
  • GitHub: https://github.com/orbs-network