Kriptografik anahtarları kimliklerle bağlantılı hale getirmek, Gate.io'ya kadar bir sorun olmuştur.teknolojinin tanıtılması. Zorluk, kimlikler ve ilgili özel anahtarlara sahip olan genel anahtarlar arasında halka açık ve tutarlı bir eşleştirme sağlamaktır. Böyle bir eşleştirme olmadan, gizli kalması amaçlanan mesajlar yanlışlıkla açığa çıkabilir - bazen felaketle sonuçlanabilir. Bu zorluk, web3'te de varlığını sürdürmektedir.
Şu anda üç olası çözüm mevcuttur. İki klasik yaklaşım, ortak anahtar dizini ve kimlik tabanlı şifrelemedir. Üçüncüsü, yakın zamana kadar tamamen teorik olan kayıt tabanlı şifrelemedir. Üç yaklaşım, anonimlik, etkileşim ve verimlilik arasında farklı ödünleşimler sunar, bu ilk başta açık görünebilir, ancak blok zinciri ayarı yeni olasılıklar ve kısıtlamalar sunar. O halde bu yazının amacı, bu tasarım alanını keşfetmek ve bir blok zincirinde konuşlandırıldığında bu yaklaşımları karşılaştırmaktır. Kullanıcılar zincir üzerinde şeffaflığa ve anonimliğe ihtiyaç duyduğunda, pratik bir RBE şeması açık ara kazanandır - kimlik tabanlı şifrelemenin güçlü güven varsayımının üstesinden gelir, ancak bunun bir bedeli vardır.
Kriptografik anahtarları kimliklerle ilişkilendirmenin klasik yaklaşımı, kalbinde bir genel anahtar dizini olan bir genel anahtar altyapısıdır (PKI). Bu yaklaşım, mesaj göndermek için potansiyel bir göndericinin güvenilen üçüncü bir tarafa (dizinin bakıcısı veya sertifika otoritesi) etkileşimde bulunmasını gerektirir. Ek olarak, web2 ortamında bu dizinin korunması maliyetli, sıkıcı ve ...hata eğilimli, ve kullanıcılar risk altına girersertifika yetkilisi tarafından kötüye kullanım.
Kriptograflar, PKI'ların sorunlarını atlatmak için alternatifler önerdiler. 1984 yılında,Adi Shamir önerdi bir tarafın tanımlayıcısının (telefon numarası, e-posta, ENS alan adı) genel anahtar görevi gördüğü kimlik tabanlı şifreleme (IBE). Bu, bir ortak anahtar dizini tutma ihtiyacını ortadan kaldırır, ancak güvenilir bir üçüncü taraf (anahtar oluşturucu) sunma pahasına gelir. Dan Boneh ve Matthew Franklin verdi ilk pratik IBE yapısı2001'de, ancak IBE, kurumsal veya hükümet dağıtımları, belki de güçlü güven varsayımından kaynaklanmıştır. (Aşağıda göreceğimiz gibi, bu varsayım kısmen, bir blok zinciri kolayca kolaylık sağlayabilirken, güvenilir bir kota partiye güvenmek suretiyle hafifletilebilir.)
Üçüncü bir seçenek olan kayıt tabanlı şifreleme (RBE), önerilen2018'de. RBE, güvenilir anahtar üreteciyi şeffaf bir "anahtar muhafızı" ile değiştirerek IBE ile aynı genel mimariyi korur (özellikle, genel anahtarları bir tür halka açık "özet" olarak biriktirir). Bu anahtar muhafızının şeffaflığı, akıllı bir sözleşmenin muhafızın rolünü doldurabileceği blok zinciri ayarına doğal bir uyum sağlar. RBE, ortak yazarlarım ve benim tanıttığım 2022'ye kadar teorikti. ilk pratik olarak etkili RBE yapı.
Bu tasarım alanı karmaşık ve bu şemaları karşılaştırmak için birçok boyutu dikkate almak gerekir. Daha basit tutmak için, iki varsayım yapacağım:
Her bir ek düşüncenin üç potansiyel çözümümüzü nasıl etkileyebileceğini sonunda tartışacağım.
Özet: Kimse henüz talep edilmemişse, herhangi biri akıllı kontratı çağırarak (id, pk) girişini zincir üstü bir tabloya (dizin) ekleyebilir.
Merkezi olmayan bir PKI, kimlikleri ve bunların karşılık gelen genel anahtarlarını içeren bir dizin tutan bir akıllı sözleşmedir. Örneğin, Gate.io, kullanıcıların kimliklerini ve genel anahtarlarını kaydeden bir merkezi olmayan bir borsadır.Ethereum Ad Hizmeti (ENS) Kaydıbir domain adları (“kimlikler”) ve bunların karşılık gelen meta verilerinin, dahil olmak üzere, çözümlenen adreslerini (hangi işlemlerden genel bir anahtar türetilebilir) eşleştirmesini korur. Merkezi olmayan bir PKI, daha da basit bir işlevsellik sağlar: kontrat tarafından korunan liste yalnızca her bir kimliğe karşılık gelen genel anahtarı depolar.
Kayıt olmak için bir kullanıcı anahtar çifti oluşturur (veya önceden oluşturulmuş bir anahtar çiftini kullanır) ve kimlik bilgisini ve genel anahtarını sözleşmeye gönderir (belki bir ödemeyle birlikte). Sözleşme, kimliğin henüz talep edilmediğini kontrol eder ve eğer öyleyse, kimlik bilgisini ve genel anahtarı dizine ekler. Bu noktada, herhangi biri bir ID'ye karşılık gelen genel anahtarı sormak için sözleşmeye başvurarak kayıtlı bir kullanıcıya bir mesajı şifreleyebilir. (Gönderici daha önce bu kullanıcıya bir şeyler şifrelediyse, sözleşmeye tekrar sorması gerekmez.) Gönderici, genel anahtarla mesajını normal şekilde şifreleyebilir ve şifreli metni alıcıya gönderebilir, alıcı ise karşılık gelen gizli anahtarı kullanarak mesajı geri alabilir.
Bu yöntemin özelliklerine bir göz atalım.
Muhasebenin olumsuz tarafında:
Olumlu yönüyle:
Ne zaman bir ortak anahtar dizini kullanmak isteyebilirsiniz? Merkezi olmayan bir açık anahtar dizininin kurulumu ve yönetimi kolaydır, bu nedenle iyi bir temel seçimdir. Bununla birlikte, depolama maliyetleri veya gizlilik bir endişe kaynağıysa, aşağıdaki diğer seçeneklerden biri daha iyi bir seçim olabilir.
Özet: Bir kullanıcının kimliği, onların genel anahtarıdır. Güvenilir bir üçüncü taraf veya taraflar, anahtarları vermek ve sistemın ömrü boyunca bir ana sır (kapı) tutmak için gereklidir.
IBE'de, bir kullanıcı kendi anahtar çiftini oluşturmaz, bunun yerine güvenilir bir anahtar üreticiye kaydolur. Anahtar üreticinin bir 'ana' anahtar çifti vardır (şekilde msk, mpk). Bir kullanıcının kimliği verildiğinde, anahtar üretici, ana gizli anahtarı msk ve kimlik kullanılarak kullanıcı için bir gizli anahtar hesaplar. Bu gizli anahtarın kullanıcıya güvenli bir kanal üzerinden iletilmesi gerekmektedir (bu, bir iletişim kanalı ile kurulabilir).anahtar değişim protokolü.
IBE, gönderenin deneyimini optimize eder: Anahtar oluşturucunun mpk'sını bir kez indirir, ardından kimliğin kendisini kullanarak bir mesajı herhangi bir kimliğe şifreleyebilir. Şifre çözme de basittir: kayıtlı bir kullanıcı, şifreli metnin şifresini çözmek için anahtar oluşturucu tarafından kendisine verilen gizli anahtarı kullanabilir.
Anahtar üretecinin ana gizli anahtarı daha kalıcıdır.güvenilir kurulum törenleri tarafından üretilen “toksik atık”SNARK'lar için kullanılır. Anahtar üreticisi, yeni gizli anahtarları vermek için buna ihtiyaç duyar, bu yüzden SNARK törenlerindeki katılımcılar gibi kurulumdan sonra silemez. Ayrıca, tehlikeli bir bilgidir. Msk'ya sahip olan herkes, sistemdeki herhangi bir kullanıcıya gönderilen tüm mesajları şifre çözebilir. Bu, felaketle sonuçlanabilecek bir dışarıya sızma riski olduğu anlamına gelir.
Msk güvende tutulsa bile, sisteme kaydolan her kullanıcının, anahtar oluşturucunun mesajlarını okumaması için anahtar oluşturucuya güvenmesi gerekir, çünkü anahtar oluşturucu kullanıcının gizli anahtarının bir kopyasını tutabilir veya istediği zaman msk'dan yeniden hesaplayabilir. Anahtar oluşturucunun, kullanıcıya, anahtar oluşturucu tarafından belirlenen bazı yasaklanmış iletiler dışındaki tüm iletilerin şifresini çözen hatalı veya "kısıtlanmış" bir gizli anahtar vermesi bile mümkün olabilir.
Bu güven, bunun yerine bir anahtar üreteci quorumunda dağıtılabilir, böylece bir kullanıcının yalnızca bir eşik sayıda olanlarına güvenmesi gerekir. Bu durumda, az sayıda kötü niyetli anahtar üreticisi gizli anahtarları kurtaramaz veya kötü anahtarlar hesaplayamaz ve bir saldırganın tam ana anahtarı çalmak için birden fazla sisteme girmesi gerekir.
Kullanıcılar bu güven varsayımını kabul ediyorsa, (eşik) IBE'nin birçok avantajı vardır:
Ama!
Ne zaman (eşik) IBE kullanmak isteyebilirsiniz? Güvenilir bir üçüncü taraf veya taraflar mevcutsa ve kullanıcılar onlara güvenmeye istekliyse, IBE, zincir üzerindeki bir anahtar kaydına kıyasla çok daha yerden tasarruflu (ve bu nedenle daha ucuz) bir seçenek sunar.
Özet: IBE'ye benzer şekilde, bir kullanıcının kimliği ortak anahtar görevi görür, ancak güvenilir üçüncü taraf/çekirdek şeffaf bir akümülatör ("anahtar küratör" olarak adlandırılır) ile değiştirilir.
Bu bölümde, verimli RBE yapısını tartışacağım. kağıdım, çünkü benim bildiğim gibi değil, sadece diğer pratik inşaat, şu anda bir blokzincirinde (kafes tabanlı yerine çift tabanlı olarak eşleme yapılan) uygulanabilir durumda. 'RBE' dediğim her zaman bu belirli yapıyı kastederim, ancak bazı ifadeler genel olarak RBE için doğru olabilir.
RBE'de, bir kullanıcı kendi anahtar çiftini oluşturur ve gizli anahtardan ve ortak referans dizesinden (CRS) türetilen bazı "güncelleme değerlerini" (şekilde a) hesaplar. Bir CRS'nin varlığı, kurulumun tamamen güvenilmez olmadığı anlamına gelse de, CRS bir tau güçleri inşaat, hangi olabilir zincir üzerinde işbirlikçi olarak hesaplanmışve tek bir dürüst katkı olduğu sürece güvenlidir.
Akıllı sözleşme, kullanıcıların beklenen sayısı N'ye gruplandığı kovallar için kurulur. Bir kullanıcı sisteme kaydolduğunda, kimlik, genel anahtar ve güncelleme değerlerini akıllı sözleşmeye gönderir. Akıllı sözleşme, sistemde kayıtlı tüm tarafların genel anahtarlarının özlü bir 'özeti' olarak düşünülebilecek genel parametreler pp kümesini (CRS'den farklı) korur. Bir kayıt isteği aldığında, güncelleme değerlerinde bir kontrol yapar ve genel anahtarı pp'nin uygun kovasına çarpar.
Kayıtlı kullanıcıların ayrıca, şifre çözmeye yardımcı olmak için kullandıkları ve aynı pakete yeni bir kullanıcı kaydolduğunda eklenen bazı "yardımcı bilgileri" yerel olarak tutmaları gerekir. Kovalarındaki kayıtlar için blok zincirini izleyerek bunu kendileri güncelleyebilirler veya akıllı sözleşme, kullanıcıların periyodik olarak (en az haftada bir kez) çekebilecekleri en son kayıtlardan (örneğin, geçen hafta içinde) aldığı güncelleme değerlerinin bir listesini tutarak yardımcı olabilir.
Bu sistemdeki gönderenler CRS'yi bir kez indirir ve bazen genel parametrelerin en son sürümünü indirir. Genel parametreler için, gönderenin bakış açısından önemli olan tek şey, hedeflenen alıcının genel anahtarını içermeleridir; En güncel sürüm olmak zorunda değildir. Gönderen daha sonra alıcıya gönderilen bir iletiyi şifrelemek için alıcı kimliğiyle birlikte CRS'yi ve genel parametreleri kullanabilir.
Bir ileti alındığında, kullanıcı bunun için yerel olarak depolanan yardımcı bilgilerini bir kontrolü geçen bir değer için kontrol eder. (Eğer hiçbir şey bulamazsa, bu, sözleşmeden bir güncelleme alması gerektiği anlamına gelir.) Bu değeri ve gizli anahtarını kullanarak, kullanıcı şifreli metni çözebilir.
Açıkça, bu plan diğer ikisinden daha karmaşıktır. Ancak, genel anahtar dizininden daha az on-chain depolama gerektirirken, IBE'nin güçlü güven varsayımından kaçınır.
Uzantılarla:
Ne zaman RBE kullanmak isteyebilirsiniz? RBE, IBE tarafından gerektirilen güçlü güven varsayımlarını aynı anda önlerken, bir zincir dışı kayıt defterinden daha az zincir dışı depolama kullanır. Bir kayıt defterine kıyasla, RBE gönderene daha güçlü gizlilik garantileri sunar. Ancak, RBE yalnızca anahtar yönetimi için geçerli bir seçenek haline geldiğinden, bu özelliklerin kombinasyonundan en çok hangi senaryoların yararlanacağı henüz kesin değil. Lütfen bana haber verherhangi bir fikriniz varsa.
Bu üç yaklaşımı (30 Temmuz 2024 tarihine kadar) zincir üzerinde dağıtmanın maliyetlerini tahmin ettim.bu Colab defteri. ~900 bin kullanıcılı bir sistem kapasitesi için sonuçlar ( Bu yazının yazıldığı sırada ENS'de kayıtlı benzersiz alan adları) aşağıdaki tabloda gösterilmiştir.
PKI'nın kurulum maliyeti yoktur ve kullanıcı başına düşük bir kayıt maliyeti vardır, oysa IBE'nin küçük bir kurulum maliyeti ve neredeyse ücretsiz bir kayıt maliyeti vardır. RBE'nin daha yüksek bir kurulum maliyeti ve düşük zincir üstü depolama gerektirmesi nedeniyle beklenmedik yüksek bir kayıt maliyeti vardır.
Kayıt maliyetinin büyük kısmı (hesaplamanın bir L2'de yapıldığı varsayılarak), tarafların kalıcı depolamada genel parametrelerin bir parçasını güncellemesi gerektiğinden kaynaklanır ve bu da yüksek bir kayıt maliyetine neden olur.
RBE alternatiflerinden daha pahalı olsa da, bu analiz, PKI veya IBE'nin potansiyel olarak riskli güven varsayımları olmadan bugün Ethereum ana ağında uygulanabilir bir şekilde konuşlandırılabileceğini gösteriyor. Ve bu, birden çok, daha küçük (ve dolayısıyla daha ucuz) örnek dağıtma veya blob verilerini kullanma gibi iyileştirmelerden öncedir. RBE'nin açık anahtar dizinine ve IBE'ye göre daha güçlü anonimlik ve azalan güven varsayımları şeklinde avantajları olduğu göz önüne alındığında, gizliliğe ve güvenilmez kurulumlara değer verenler için çekici olabilir.
Noemi GlaeserMaryland Üniversitesi'nde ve Güvenlik ve Gizlilik için Max Planck Enstitüsü'nde Bilgisayar Bilimleri doktora adayıdır ve '23 yazında a16z crypto'da araştırma stajyeriydi. NSF Lisansüstü Araştırma Bursu'nun sahibi olan ve daha önce NTT Research'te araştırma stajyeri olan biridir.
Genel anahtar dizini durumunda, anahtar güncellemeleri ve iptalleri ele almak basittir: Bir anahtarı iptal etmek için bir tarafın sözleşmeden onu dizinden silmesi istenir. Bir anahtarı güncellemek için giriş (id, pk), yeni bir anahtarı (id, pk’) ile üzerine yazılır.
IBE'de iptal için, Boneh ve Franklin kullanıcıların periyodik olarak anahtarlarını güncellemelerini (örneğin, her hafta) ve gönderenlerin şifrelerken kimlik dizesine geçerli zaman dilimini dahil etmelerini önerdi (örneğin, "Bob
Verimli RBE yapımız, güncellemeleri ve iptalleri dikkate almadı, bir Takip ÇalışmalarıBu işlevsellikleri eklemek için şemamızı "yükseltebilen" bir derleyici verir.
Zincir üstü depolamayı zincir dışına taşımak için bir veri kullanılabilirliği çözümü (DAS) kullanmak, yalnızca açık anahtar dizini ve RBE hesabını etkileyecek ve her ikisini de aynı miktarda zincir içi depolamaya indirgeyecektir. RBE, alıcı kimliğinin erişim kalıpları aracılığıyla sızdırılmasını önlediğinden, gönderen için daha özel olma avantajını koruyacaktır. IBE'nin zaten minimum zincir içi depolama alanı vardı ve DAS'tan yararlanamayacaktı.
Kriptografik anahtarları kimliklerle bağlantılı hale getirmek, Gate.io'ya kadar bir sorun olmuştur.teknolojinin tanıtılması. Zorluk, kimlikler ve ilgili özel anahtarlara sahip olan genel anahtarlar arasında halka açık ve tutarlı bir eşleştirme sağlamaktır. Böyle bir eşleştirme olmadan, gizli kalması amaçlanan mesajlar yanlışlıkla açığa çıkabilir - bazen felaketle sonuçlanabilir. Bu zorluk, web3'te de varlığını sürdürmektedir.
Şu anda üç olası çözüm mevcuttur. İki klasik yaklaşım, ortak anahtar dizini ve kimlik tabanlı şifrelemedir. Üçüncüsü, yakın zamana kadar tamamen teorik olan kayıt tabanlı şifrelemedir. Üç yaklaşım, anonimlik, etkileşim ve verimlilik arasında farklı ödünleşimler sunar, bu ilk başta açık görünebilir, ancak blok zinciri ayarı yeni olasılıklar ve kısıtlamalar sunar. O halde bu yazının amacı, bu tasarım alanını keşfetmek ve bir blok zincirinde konuşlandırıldığında bu yaklaşımları karşılaştırmaktır. Kullanıcılar zincir üzerinde şeffaflığa ve anonimliğe ihtiyaç duyduğunda, pratik bir RBE şeması açık ara kazanandır - kimlik tabanlı şifrelemenin güçlü güven varsayımının üstesinden gelir, ancak bunun bir bedeli vardır.
Kriptografik anahtarları kimliklerle ilişkilendirmenin klasik yaklaşımı, kalbinde bir genel anahtar dizini olan bir genel anahtar altyapısıdır (PKI). Bu yaklaşım, mesaj göndermek için potansiyel bir göndericinin güvenilen üçüncü bir tarafa (dizinin bakıcısı veya sertifika otoritesi) etkileşimde bulunmasını gerektirir. Ek olarak, web2 ortamında bu dizinin korunması maliyetli, sıkıcı ve ...hata eğilimli, ve kullanıcılar risk altına girersertifika yetkilisi tarafından kötüye kullanım.
Kriptograflar, PKI'ların sorunlarını atlatmak için alternatifler önerdiler. 1984 yılında,Adi Shamir önerdi bir tarafın tanımlayıcısının (telefon numarası, e-posta, ENS alan adı) genel anahtar görevi gördüğü kimlik tabanlı şifreleme (IBE). Bu, bir ortak anahtar dizini tutma ihtiyacını ortadan kaldırır, ancak güvenilir bir üçüncü taraf (anahtar oluşturucu) sunma pahasına gelir. Dan Boneh ve Matthew Franklin verdi ilk pratik IBE yapısı2001'de, ancak IBE, kurumsal veya hükümet dağıtımları, belki de güçlü güven varsayımından kaynaklanmıştır. (Aşağıda göreceğimiz gibi, bu varsayım kısmen, bir blok zinciri kolayca kolaylık sağlayabilirken, güvenilir bir kota partiye güvenmek suretiyle hafifletilebilir.)
Üçüncü bir seçenek olan kayıt tabanlı şifreleme (RBE), önerilen2018'de. RBE, güvenilir anahtar üreteciyi şeffaf bir "anahtar muhafızı" ile değiştirerek IBE ile aynı genel mimariyi korur (özellikle, genel anahtarları bir tür halka açık "özet" olarak biriktirir). Bu anahtar muhafızının şeffaflığı, akıllı bir sözleşmenin muhafızın rolünü doldurabileceği blok zinciri ayarına doğal bir uyum sağlar. RBE, ortak yazarlarım ve benim tanıttığım 2022'ye kadar teorikti. ilk pratik olarak etkili RBE yapı.
Bu tasarım alanı karmaşık ve bu şemaları karşılaştırmak için birçok boyutu dikkate almak gerekir. Daha basit tutmak için, iki varsayım yapacağım:
Her bir ek düşüncenin üç potansiyel çözümümüzü nasıl etkileyebileceğini sonunda tartışacağım.
Özet: Kimse henüz talep edilmemişse, herhangi biri akıllı kontratı çağırarak (id, pk) girişini zincir üstü bir tabloya (dizin) ekleyebilir.
Merkezi olmayan bir PKI, kimlikleri ve bunların karşılık gelen genel anahtarlarını içeren bir dizin tutan bir akıllı sözleşmedir. Örneğin, Gate.io, kullanıcıların kimliklerini ve genel anahtarlarını kaydeden bir merkezi olmayan bir borsadır.Ethereum Ad Hizmeti (ENS) Kaydıbir domain adları (“kimlikler”) ve bunların karşılık gelen meta verilerinin, dahil olmak üzere, çözümlenen adreslerini (hangi işlemlerden genel bir anahtar türetilebilir) eşleştirmesini korur. Merkezi olmayan bir PKI, daha da basit bir işlevsellik sağlar: kontrat tarafından korunan liste yalnızca her bir kimliğe karşılık gelen genel anahtarı depolar.
Kayıt olmak için bir kullanıcı anahtar çifti oluşturur (veya önceden oluşturulmuş bir anahtar çiftini kullanır) ve kimlik bilgisini ve genel anahtarını sözleşmeye gönderir (belki bir ödemeyle birlikte). Sözleşme, kimliğin henüz talep edilmediğini kontrol eder ve eğer öyleyse, kimlik bilgisini ve genel anahtarı dizine ekler. Bu noktada, herhangi biri bir ID'ye karşılık gelen genel anahtarı sormak için sözleşmeye başvurarak kayıtlı bir kullanıcıya bir mesajı şifreleyebilir. (Gönderici daha önce bu kullanıcıya bir şeyler şifrelediyse, sözleşmeye tekrar sorması gerekmez.) Gönderici, genel anahtarla mesajını normal şekilde şifreleyebilir ve şifreli metni alıcıya gönderebilir, alıcı ise karşılık gelen gizli anahtarı kullanarak mesajı geri alabilir.
Bu yöntemin özelliklerine bir göz atalım.
Muhasebenin olumsuz tarafında:
Olumlu yönüyle:
Ne zaman bir ortak anahtar dizini kullanmak isteyebilirsiniz? Merkezi olmayan bir açık anahtar dizininin kurulumu ve yönetimi kolaydır, bu nedenle iyi bir temel seçimdir. Bununla birlikte, depolama maliyetleri veya gizlilik bir endişe kaynağıysa, aşağıdaki diğer seçeneklerden biri daha iyi bir seçim olabilir.
Özet: Bir kullanıcının kimliği, onların genel anahtarıdır. Güvenilir bir üçüncü taraf veya taraflar, anahtarları vermek ve sistemın ömrü boyunca bir ana sır (kapı) tutmak için gereklidir.
IBE'de, bir kullanıcı kendi anahtar çiftini oluşturmaz, bunun yerine güvenilir bir anahtar üreticiye kaydolur. Anahtar üreticinin bir 'ana' anahtar çifti vardır (şekilde msk, mpk). Bir kullanıcının kimliği verildiğinde, anahtar üretici, ana gizli anahtarı msk ve kimlik kullanılarak kullanıcı için bir gizli anahtar hesaplar. Bu gizli anahtarın kullanıcıya güvenli bir kanal üzerinden iletilmesi gerekmektedir (bu, bir iletişim kanalı ile kurulabilir).anahtar değişim protokolü.
IBE, gönderenin deneyimini optimize eder: Anahtar oluşturucunun mpk'sını bir kez indirir, ardından kimliğin kendisini kullanarak bir mesajı herhangi bir kimliğe şifreleyebilir. Şifre çözme de basittir: kayıtlı bir kullanıcı, şifreli metnin şifresini çözmek için anahtar oluşturucu tarafından kendisine verilen gizli anahtarı kullanabilir.
Anahtar üretecinin ana gizli anahtarı daha kalıcıdır.güvenilir kurulum törenleri tarafından üretilen “toksik atık”SNARK'lar için kullanılır. Anahtar üreticisi, yeni gizli anahtarları vermek için buna ihtiyaç duyar, bu yüzden SNARK törenlerindeki katılımcılar gibi kurulumdan sonra silemez. Ayrıca, tehlikeli bir bilgidir. Msk'ya sahip olan herkes, sistemdeki herhangi bir kullanıcıya gönderilen tüm mesajları şifre çözebilir. Bu, felaketle sonuçlanabilecek bir dışarıya sızma riski olduğu anlamına gelir.
Msk güvende tutulsa bile, sisteme kaydolan her kullanıcının, anahtar oluşturucunun mesajlarını okumaması için anahtar oluşturucuya güvenmesi gerekir, çünkü anahtar oluşturucu kullanıcının gizli anahtarının bir kopyasını tutabilir veya istediği zaman msk'dan yeniden hesaplayabilir. Anahtar oluşturucunun, kullanıcıya, anahtar oluşturucu tarafından belirlenen bazı yasaklanmış iletiler dışındaki tüm iletilerin şifresini çözen hatalı veya "kısıtlanmış" bir gizli anahtar vermesi bile mümkün olabilir.
Bu güven, bunun yerine bir anahtar üreteci quorumunda dağıtılabilir, böylece bir kullanıcının yalnızca bir eşik sayıda olanlarına güvenmesi gerekir. Bu durumda, az sayıda kötü niyetli anahtar üreticisi gizli anahtarları kurtaramaz veya kötü anahtarlar hesaplayamaz ve bir saldırganın tam ana anahtarı çalmak için birden fazla sisteme girmesi gerekir.
Kullanıcılar bu güven varsayımını kabul ediyorsa, (eşik) IBE'nin birçok avantajı vardır:
Ama!
Ne zaman (eşik) IBE kullanmak isteyebilirsiniz? Güvenilir bir üçüncü taraf veya taraflar mevcutsa ve kullanıcılar onlara güvenmeye istekliyse, IBE, zincir üzerindeki bir anahtar kaydına kıyasla çok daha yerden tasarruflu (ve bu nedenle daha ucuz) bir seçenek sunar.
Özet: IBE'ye benzer şekilde, bir kullanıcının kimliği ortak anahtar görevi görür, ancak güvenilir üçüncü taraf/çekirdek şeffaf bir akümülatör ("anahtar küratör" olarak adlandırılır) ile değiştirilir.
Bu bölümde, verimli RBE yapısını tartışacağım. kağıdım, çünkü benim bildiğim gibi değil, sadece diğer pratik inşaat, şu anda bir blokzincirinde (kafes tabanlı yerine çift tabanlı olarak eşleme yapılan) uygulanabilir durumda. 'RBE' dediğim her zaman bu belirli yapıyı kastederim, ancak bazı ifadeler genel olarak RBE için doğru olabilir.
RBE'de, bir kullanıcı kendi anahtar çiftini oluşturur ve gizli anahtardan ve ortak referans dizesinden (CRS) türetilen bazı "güncelleme değerlerini" (şekilde a) hesaplar. Bir CRS'nin varlığı, kurulumun tamamen güvenilmez olmadığı anlamına gelse de, CRS bir tau güçleri inşaat, hangi olabilir zincir üzerinde işbirlikçi olarak hesaplanmışve tek bir dürüst katkı olduğu sürece güvenlidir.
Akıllı sözleşme, kullanıcıların beklenen sayısı N'ye gruplandığı kovallar için kurulur. Bir kullanıcı sisteme kaydolduğunda, kimlik, genel anahtar ve güncelleme değerlerini akıllı sözleşmeye gönderir. Akıllı sözleşme, sistemde kayıtlı tüm tarafların genel anahtarlarının özlü bir 'özeti' olarak düşünülebilecek genel parametreler pp kümesini (CRS'den farklı) korur. Bir kayıt isteği aldığında, güncelleme değerlerinde bir kontrol yapar ve genel anahtarı pp'nin uygun kovasına çarpar.
Kayıtlı kullanıcıların ayrıca, şifre çözmeye yardımcı olmak için kullandıkları ve aynı pakete yeni bir kullanıcı kaydolduğunda eklenen bazı "yardımcı bilgileri" yerel olarak tutmaları gerekir. Kovalarındaki kayıtlar için blok zincirini izleyerek bunu kendileri güncelleyebilirler veya akıllı sözleşme, kullanıcıların periyodik olarak (en az haftada bir kez) çekebilecekleri en son kayıtlardan (örneğin, geçen hafta içinde) aldığı güncelleme değerlerinin bir listesini tutarak yardımcı olabilir.
Bu sistemdeki gönderenler CRS'yi bir kez indirir ve bazen genel parametrelerin en son sürümünü indirir. Genel parametreler için, gönderenin bakış açısından önemli olan tek şey, hedeflenen alıcının genel anahtarını içermeleridir; En güncel sürüm olmak zorunda değildir. Gönderen daha sonra alıcıya gönderilen bir iletiyi şifrelemek için alıcı kimliğiyle birlikte CRS'yi ve genel parametreleri kullanabilir.
Bir ileti alındığında, kullanıcı bunun için yerel olarak depolanan yardımcı bilgilerini bir kontrolü geçen bir değer için kontrol eder. (Eğer hiçbir şey bulamazsa, bu, sözleşmeden bir güncelleme alması gerektiği anlamına gelir.) Bu değeri ve gizli anahtarını kullanarak, kullanıcı şifreli metni çözebilir.
Açıkça, bu plan diğer ikisinden daha karmaşıktır. Ancak, genel anahtar dizininden daha az on-chain depolama gerektirirken, IBE'nin güçlü güven varsayımından kaçınır.
Uzantılarla:
Ne zaman RBE kullanmak isteyebilirsiniz? RBE, IBE tarafından gerektirilen güçlü güven varsayımlarını aynı anda önlerken, bir zincir dışı kayıt defterinden daha az zincir dışı depolama kullanır. Bir kayıt defterine kıyasla, RBE gönderene daha güçlü gizlilik garantileri sunar. Ancak, RBE yalnızca anahtar yönetimi için geçerli bir seçenek haline geldiğinden, bu özelliklerin kombinasyonundan en çok hangi senaryoların yararlanacağı henüz kesin değil. Lütfen bana haber verherhangi bir fikriniz varsa.
Bu üç yaklaşımı (30 Temmuz 2024 tarihine kadar) zincir üzerinde dağıtmanın maliyetlerini tahmin ettim.bu Colab defteri. ~900 bin kullanıcılı bir sistem kapasitesi için sonuçlar ( Bu yazının yazıldığı sırada ENS'de kayıtlı benzersiz alan adları) aşağıdaki tabloda gösterilmiştir.
PKI'nın kurulum maliyeti yoktur ve kullanıcı başına düşük bir kayıt maliyeti vardır, oysa IBE'nin küçük bir kurulum maliyeti ve neredeyse ücretsiz bir kayıt maliyeti vardır. RBE'nin daha yüksek bir kurulum maliyeti ve düşük zincir üstü depolama gerektirmesi nedeniyle beklenmedik yüksek bir kayıt maliyeti vardır.
Kayıt maliyetinin büyük kısmı (hesaplamanın bir L2'de yapıldığı varsayılarak), tarafların kalıcı depolamada genel parametrelerin bir parçasını güncellemesi gerektiğinden kaynaklanır ve bu da yüksek bir kayıt maliyetine neden olur.
RBE alternatiflerinden daha pahalı olsa da, bu analiz, PKI veya IBE'nin potansiyel olarak riskli güven varsayımları olmadan bugün Ethereum ana ağında uygulanabilir bir şekilde konuşlandırılabileceğini gösteriyor. Ve bu, birden çok, daha küçük (ve dolayısıyla daha ucuz) örnek dağıtma veya blob verilerini kullanma gibi iyileştirmelerden öncedir. RBE'nin açık anahtar dizinine ve IBE'ye göre daha güçlü anonimlik ve azalan güven varsayımları şeklinde avantajları olduğu göz önüne alındığında, gizliliğe ve güvenilmez kurulumlara değer verenler için çekici olabilir.
Noemi GlaeserMaryland Üniversitesi'nde ve Güvenlik ve Gizlilik için Max Planck Enstitüsü'nde Bilgisayar Bilimleri doktora adayıdır ve '23 yazında a16z crypto'da araştırma stajyeriydi. NSF Lisansüstü Araştırma Bursu'nun sahibi olan ve daha önce NTT Research'te araştırma stajyeri olan biridir.
Genel anahtar dizini durumunda, anahtar güncellemeleri ve iptalleri ele almak basittir: Bir anahtarı iptal etmek için bir tarafın sözleşmeden onu dizinden silmesi istenir. Bir anahtarı güncellemek için giriş (id, pk), yeni bir anahtarı (id, pk’) ile üzerine yazılır.
IBE'de iptal için, Boneh ve Franklin kullanıcıların periyodik olarak anahtarlarını güncellemelerini (örneğin, her hafta) ve gönderenlerin şifrelerken kimlik dizesine geçerli zaman dilimini dahil etmelerini önerdi (örneğin, "Bob
Verimli RBE yapımız, güncellemeleri ve iptalleri dikkate almadı, bir Takip ÇalışmalarıBu işlevsellikleri eklemek için şemamızı "yükseltebilen" bir derleyici verir.
Zincir üstü depolamayı zincir dışına taşımak için bir veri kullanılabilirliği çözümü (DAS) kullanmak, yalnızca açık anahtar dizini ve RBE hesabını etkileyecek ve her ikisini de aynı miktarda zincir içi depolamaya indirgeyecektir. RBE, alıcı kimliğinin erişim kalıpları aracılığıyla sızdırılmasını önlediğinden, gönderen için daha özel olma avantajını koruyacaktır. IBE'nin zaten minimum zincir içi depolama alanı vardı ve DAS'tan yararlanamayacaktı.