Yazarlar: Omer Shlomovits, ZenGo.
Bu makalede, TSS’in ne olduğundan, blockchain dünyasına ne gibi potansiyel avantajlar getireceğinden, blockchain istemcilerinde nasıl uygulamaya alınabileceğinden, Shamir gizli paylaşımından ve Multisig’den farklarının neler olduğundan, TSS dağıtılmış anahtar yönetimi için farklı kullanım alanlarının neler olduğundan ve son olarak risklerden ve sınırlamalardan bahsedeceğiz.
Kriptografinin gücü
Blockchain
Bu makalede, bu gelişmelerden bir tanesine odaklanacağız: etkin güvenli eşik değerli imzalar (TSS).
MPC ve eşik değerli imzalar düzeni (TSS)
Çoklu parti hesaplamaları (MPC), kriptografinin Andrew C. Yao'nın çığır açıcı çalışmalarıyla neredeyse 40 yıl önce başlayan bir dalıdır. MPC'de, birbirlerine güven duymayan partiler bir fonksiyonu girdilere dayanarak ve girdileri gizli tutarak ortak bir şekilde hesaplamaya çalışır.
Örnek olarak, bir şirketin n sayıda çalışanının kendi maaşlarını açık etmeden kimin en yüksek maaşa sahip olduğunu öğrenmeye çalıştığını farz edelim. Burada gizli girdiler maaşlar ve çıktı da en yüksek maaşa sahip çalışanın ismi olur. Bu hesaplama MPC ile yapıldığında, hesaplama süresince tek bir maaş bile açığa çıkmadan bu isme ulaşılabilir.
MPC'nin başlıca iki özelliği doğruluk ve gizliliktir:
Doğruluk: algoritmanın ortaya koyduğu sonuç doğrudur (beklendiği üzere).
Gizlilik: bir partinin elindeki gizli girdi verisi diğer partilerin eline geçmez.
Bir dijital imzayı dağıtılmış şekilde hesaplamak için MPC kullanacağız. Yukarıdaki özelliklerin imzalara nasıl uygulanabileceğine göz atalım. Hatırlarsanız imzalar için üç adımımız var:
Anahtar Yaratma: İlk adım aynı zamanda en kompleks olan adımdır. Açık olacak ve gelecekteki imzaları doğrulamak için kullanılacak bir anahtar yaratmalıyız. Ama aynı zamanda her parti için adına gizli paylaşım diyeceğimiz bir bireysel gizli anahtar da yaratacağız. Doğruluk ve gizlilik bağlamında fonksiyon, tüm partiler için aynı açık anahtar çıktısını ve her bir parti için farklı bir gizli paylaşım çıktısı verecektir. Böylelikle: (1) gizlilik: hiçbir gizli paylaşım verisi partiler arasında paylaşılmaz ve (2) doğruluk: açık anahtar gizli paylaşımların bir fonksiyonudur.
İmzalama: bu adım bir imza yaratma fonksiyonu içerir. Her bir partinin girdisi, o partinin gizli paylaşımıdır ve bir önceki adımın çıktısı olarak yaratılmıştır (dağıtılmış imza oluşturulması). Ayrıca bir de herkes tarafından bilinen ve imzalanacak mesaj olan açık çıktı bulunur. Çıktı bir dijital imza olacaktır ve gizlilik özelliği hesaplama sırasında gizli paylaşımların açığa çıkmamasını garanti altına alır.
- Doğrulama: doğrulama algoritması klasik düzendekiyle aynı kalır. Tek anahtar imzalarıyla uyumlu olabilmek için, açık anahtar bilgisine sahip herkesin imzaları doğrulayabilmesi ve onaylayabilmesi gerekir. Bu da tam olarak blockchain doğrulama nodelarının yaptığı şeydir.
Eşik değerli imza düzeni (TSS) bu dağıtılmış imza oluşturulması (DKG) ve eşik değerli imza düzeninin dağıtılmış şekilde imzalanmasına verilen isimdir.
TSS'i blockchainlerle birleştirmek
Bunu daha ayrıntılı şekilde açıklamak için, klasik blockchain tasarımlarında yeni adreslerin nasıl yaratıldığını kısaca anlatacağız. En temelde, bir özel anahtar yaratarak yeni bir adres oluşturabilir ve daha sonra özel anahtara dayanan bir açık anahtar hesaplayabiliriz. Son olarak da, açık anahtardan bir açık adres türetebiliriz.
TSS kullanıldığında açık anahtar, her biri özel anahtarın gizli paylaşımına sahip (kişisel bölümler diğer partilerle paylaşılmaz) n sayıda parti tarafından ortaklaşa hesaplanır. Açık anahtarı kullanarak geleneksel sistemdeki gibi açık adresi türetebilir ve böylece blockchaini adresin nasıl yaratıldığından bağımsız kılabiliriz. Buradaki avantaj, her bir partinin elinde bir parça olduğu için özel anahtarın tek hata noktası olmaktan çıkmasıdır.
Aynı şey işlemleri imzalarken de yapılabilir. Bu durumda, özel anahtarını kullanarak imzalama yapan tek bir parti yerine imza çoklu partiler arasında dağıtılmış olarak yaratılır. Böylece yeteri kadar kişi dürüst davrandığı sürece her bir parti geçerli bir imza yaratabilir. Burada da yerel bir hesaplama (tek hata noktası) yerine interaktif bir hesaplama kullanılmış olur.
Dağıtılmış imza oluşturma sürecinin farklı erişim yapılarına izin verecek şekilde yapılabileceğini belirtmek önemlidir: genel “n üzerinden t” ayarında güvenlikten feragat edilmeden özel anahtarla ilgili işlemlerde t sayıda ihtiyari hata tolere edilebilir.
TSS ve Multisig Kıyaslaması
Başka bir deyişle, hem çoklu imza hem de TSS özünde benzer hedeflere ulaşmaya çalışır fakat TSS kriptografiyi zincir dışı kullanırken çoklu imza zincir üstünde yer alır. Fakat, blockchainin çoklu imzayı kodlaması için bir yol gereklidir. Bu da gizliliğe zarar verebilir çünkü erişim yapısı (imza atanların sayısı) blockchain üzerinde açığa çıkar. Çoklu imza işlemlerinin masrafı daha yüksektir çünkü farklı imza sahiplerinin elindeki bilgilerin de blockchain üzerinden paylaşılması gerekir.
TSS'de, imza sahiplerine yönelik bilgiler standart görünümlü bir işlem olarak dosyalanarak masraflar düşürülür ve gizlilik korunur. Diğer yandan, çoklu imza etkileşimsiz de olabilir. Böylece farklı imza sahipleri arasında karmaşık bir iletişim katmanı çalıştırmanın yaratacağı zorluk ortadan kalkar.
TSS ve Shamir gizli paylaşım yapısı kıyaslaması
Shamir gizli paylaşım yapısı (SSSS) özel anahtarı dağıtılmış şekilde saklamak için bir yol sunar. Böylece özel anahtar bekleme halindeyken birden fazla yerde depolanmış halde olur. SSSS ve TSS arasında iki fark bulunur:
Anahtar Oluşturma: SSSS'te özel anahtar gizli paylaşımlarının yaratılmasından sorumlu olan "dağıtıcı" adında tek bir parti bulunur. Bu da Anahtarın Oluşturulması sırasında, özel anahtarın tek bir yerde yaratıldığı ve daha sonra dağıtıcı tarafından farklı lokasyonlara dağıtıldığı anlamına gelir. TSS'te dağıtıcı bulunmaz çünkü bu rol özel anahtarın hiçbir zaman tek bir lokasyonda olmayacağı şekilde dağıtılmış durumdadır.
İmzalama: SSSS'te partilerin imza atabilmek için özel anahtarın tamamını yeniden yapılandırmaları gerekir. Bu da imzaya ihtiyaç duyulan her seferde tek hata noktasının ortaya çıkmasına neden olur. TSS'te imzalama işlemi, gizli paylaşımları tekrar yapılandırmadan dağıtılmış şekilde yapılır.
Görüldüğü üzere, TSS'te özel anahtar (sistemin güvenliğini temsil eden) var olduğu tüm süre boyunca hiçbir zaman tek bir yerde bulunmaz.
Eşik değerli cüzdanlar
Eşik değerli cüzdanlarda işler daha karmaşıktır. HD yapı oluşturmak mümkün olsa da, bu oluşturma süreci diğer bir MPC protokolü gibi dağıtılmış şekilde hesaplanmalıdır. Partilerin kullanılacak bir sonraki anahtarı belirlemek için ortaklaşa karar vermeleri gerekir. Diğer bir deyişle her bir parti kendine ait bir tohum cümleye sahiptir. Tohum cümleler birbirlerinden ayrı olarak oluşturulur ve hiçbir zaman bir araya getirilmez. Böylece bir parti kendi başına tohumdan özel anahtar türetemez.
TSS temelli cüzdanlar ayrıca güvenliğe yönelik güzel bir özelliğe sahiptir: karşılık gelen açık anahtar ve blockchain adresini değiştirmeden özel anahtar rotasyonuna izin verilmesi. Proaktif gizli paylaşım olarak da bilinen özel anahtar rotasyonu gizli paylaşımları girdi olarak kullanan ve bundan yeni bir gizli paylaşım seti çıktısı yaratan bir diğer MPC protokolüdür. Eski gizli paylaşımlar silinebilir ve yeniler aynı şekilde kullanılabilir.
Böylesi bir yapı güvenliğe bir zaman boyutu ekleyerek bir saldırganın eşik değerli bir cüzdana saldırabilmesi için aynı anda birden fazla lokasyonda bulunmasını zorunlu kılar. Rotasyondan önceki ve sonraki gizli paylaşımları bir araya getirmek, sahte imza yaratmak isteyen bir saldırgana ekstra güç sağlamaz.
Bu tip cüzdanların olumsuz tarafı tohum cümleye sahip olmadıkları için tekli anahtar cüzdan sistemleriyle uyumsuz olmalarıdır. Bu yüzden hangi partilerin gizli paylaşımları elinde tutacağını değerlendirmek önemlidir.
Birkaç olası mimari vardır:
Dışarıdan TSS hizmeti: kullanıcı kendi adına "n" sayıda sunucunun hesaplamayı yapmasına izin verir. Anahtar üretimi, yönetimi ve imzaları, varlıkların sahibi olmayan fakat bazı teşvikler karşılığında bir güvenlik katmanı sunan hizmet sağlayıcılarına bırakılır.
Çoklu cihaz kullanımı: Kullanıcı, sahip olduğu cihazlar arasında TSS kullanır. Örneğin, bir parti aynı IoT cihazıyken diğer parti kullanıcının cep telefonu, bir diğer parti dizüstü bilgisayarı vs olur.
Hibrid: TSS, bazı partilerin dış hizmet sağlayıcılar tarafından bazılarının da kullanıcının sahip olduğu cihazlar tarafından kontrol edileceği şekilde kullanılır.
İlk yöntem kullanıcı istemcisi tarafındaki yoğun TSS hesaplamasının yükünü azaltır. Diğer yandan, hizmet sağlayıcı sahtekarlık yaparak (yeteri kadarının aynı anda saldırıya uğramadığını varsayıyoruz ama aslında uygulamada uğrayalabilirler) kullanıcının varlıklarını çalabilir.
İkinci yöntem kullanıcıya tam kontrol sağlar ama çevrimiçi olmak ve TSS hesaplamasına katılmak için birden fazla cihaza ihtiyaç duyulacağı için işlemleri külfetli hale getirir.
Üçüncü seçenek, hem kullanıcıya işlem yapmak için kolay ve hızlı bir yol sunduğu hem de kullanıcının izni olmadan işlem yapılmasına izin vermediği için iki taraf için de en iyi seçenek olarak kabul edilir.
TSS ve Akıllı Kontratlar
Riskler
Son fikirler
Bu makalede, blockchaini kullanma şeklimizi büyük oranda değiştirme potansiyeline sahip etkileyici bir kriptografik ilke olan eşik değerli imza düzeni (TSS) hakkında temel bilgiler sunduk.
Ek okumalar: