Rastgele Sayılar ve Merkezi Olmayan Ağlar: Pratik Uygulamalar

Giriş

“Rastgele sayı üretimi şansa bırakılmayacak kadar önemlidir.”
Robert Cavue, 1970

Bu makale, güvenilmeyen bir ortamda kolektif rastgele sayı üretimi kullanan çözümlerin pratik uygulamasına ayrılmıştır. Kısacası, blockchainlerde random'un nasıl ve neden kullanıldığı ve "iyi" rastgelenin "kötü"den nasıl ayırt edileceği hakkında biraz bilgi. Gerçekten rastgele bir sayı oluşturmak, tek bir bilgisayarda bile son derece zor bir sorundur ve kriptograflar tarafından uzun süredir incelenmektedir. Merkezi olmayan ağlarda rastgele sayıların üretilmesi daha da karmaşık ve önemlidir.

Tartışmasız bir rastgele sayı üretme yeteneği, birçok kritik sorunu etkili bir şekilde çözmemize ve mevcut şemaları önemli ölçüde iyileştirmemize olanak tanıyan, katılımcıların birbirlerine güvenmediği ağlardadır. Üstelik deneyimsiz okuyucuya ilk bakışta göründüğü gibi kumar ve piyango burada bir numaralı amaç değil.

Rastgele sayı üretimi

Bilgisayarlar kendi başlarına rasgele sayılar üretemezler; bunu yapmak için dışarıdan yardıma ihtiyaç duyarlar. Bilgisayar, örneğin fare hareketlerinden, kullanılan bellek miktarından, işlemci pinlerindeki kaçak akımlardan ve entropi kaynakları adı verilen diğer birçok kaynaktan bazı rastgele değerler elde edebilir. Bu değerlerin kendisi tamamen rastgele değildir, çünkü belirli bir aralıktadırlar veya öngörülebilir bir değişiklik düzenine sahiptirler. Bu tür sayıları belirli bir aralık içinde gerçekten rastgele bir sayıya dönüştürmek için, entropi kaynağının eşit olmayan şekilde dağıtılmış değerlerinden eşit şekilde dağıtılmış sözde rastgele değerler üretmek üzere bunlara kripto dönüşümler uygulanır. Ortaya çıkan değerlere sözde rastgele denir çünkü bunlar gerçekten rastgele değil, deterministik olarak entropiden türetilmiştir. Herhangi bir iyi şifreleme algoritması, verileri şifrelerken, istatistiksel olarak rastgele bir diziden ayırt edilemeyen şifreli metinler üretir; bu nedenle, rastgelelik üretmek için, küçük aralıklarda bile değerlerin yalnızca iyi tekrarlanabilirliği ve öngörülemezliğini sağlayan bir entropi kaynağı alabilirsiniz. işin geri kalanı bitlerin dağıtılması ve karıştırılmasıdır. Ortaya çıkan değer, şifreleme algoritması tarafından devralınacaktır.

Kısa bir eğitim programını tamamlamak için, tek bir cihazda bile rastgele sayılar üretmenin verilerimizin güvenliğini sağlamanın temel taşlarından biri olduğunu ekleyeceğim.Oluşturulan sözde rastgele sayılar, çeşitli ağlarda güvenli bağlantılar kurarken kullanılır. yük dengeleme, bütünlük izleme ve daha birçok uygulama için şifreleme anahtarları. Birçok protokolün güvenliği, güvenilir, harici olarak tahmin edilemeyen rastgele bir rastgele oluşturma, bunu saklama ve protokolün bir sonraki adımına kadar açığa çıkarmama yeteneğine bağlıdır, aksi takdirde güvenlik tehlikeye girer. Sahte rastgele değer üretecine yapılan bir saldırı son derece tehlikelidir ve rastgelelik oluşturmayı kullanan tüm yazılımları anında tehdit eder.

Kriptografi konusunda temel bir ders aldıysanız tüm bunları biliyor olmalısınız, o halde merkezi olmayan ağlar hakkında devam edelim.

Blockchainlerde rastgele

Öncelikle akıllı sözleşme desteğine sahip blockchainlerden bahsedeceğim; yüksek kaliteli, yadsınamaz rastlantısallığın sağladığı fırsatlardan tam anlamıyla yararlanabilenler onlardır. Ayrıca, kısaca bu teknolojiye "Herkese Açık Doğrulanabilir Rastgele İşaretler”veya PVRB. Blok zincirleri bilgilerin herhangi bir katılımcı tarafından doğrulanabildiği ağlar olduğundan, ismin önemli kısmı “Kamuya Açık Olarak Doğrulanabilir”dir, yani. Herkes, blockchainde yayınlanan sonuç numarasının aşağıdaki özelliklere sahip olduğuna dair kanıt elde etmek için hesaplamaları kullanabilir:

  • Sonuç, kanıtlanabilir şekilde tekdüze bir dağılıma sahip olmalı, yani kanıtlanabilir derecede güçlü bir kriptografiye dayanmalıdır.
  • Sonucun herhangi bir bitini kontrol etmek mümkün değildir. Sonuç olarak, sonuç önceden tahmin edilemez.
  • Protokole katılmayarak veya ağı saldırı mesajlarıyla aşırı yükleyerek üretim protokolünü sabote edemezsiniz.
  • Yukarıdakilerin tümü, izin verilen sayıda sahtekâr protokol katılımcısının (örneğin katılımcıların 1/3'ünün) gizli anlaşmalarına karşı dayanıklı olmalıdır.

Küçük bir katılımcı grubunun kontrollü çift/tek rastgele üretme olasılığı bile bir güvenlik açığıdır. Grubun rastgele verilmesini durdurma yeteneği bir güvenlik açığıdır. Genel olarak pek çok sorun var ve bu görev kolay değil...

Öyle görünüyor ki PVRB için en önemli uygulama çeşitli oyunlar, piyangolar ve genel olarak blockchain üzerindeki her türlü kumardır. Aslında bu önemli bir yön, ancak blockchainlerde rastlantısallığın daha da önemli uygulamaları var. Şimdi onlara bakalım.

Konsensüs Algoritmaları

PVRB, ağ konsensüsünün düzenlenmesinde büyük bir rol oynar. Blok zincirlerindeki işlemler elektronik imzayla korunur, dolayısıyla "bir işleme yapılan saldırı" her zaman bir işlemin bir bloğa (veya birkaç bloğa) dahil edilmesi/hariç tutulması anlamına gelir. Konsensüs algoritmasının asıl görevi ise bu işlemlerin sırası ve bu işlemleri içeren blokların sırası üzerinde anlaşmaya varmaktır. Ayrıca, gerçek blok zincirleri için gerekli bir özellik kesinliktir - ağın, sonlandırılmış bloğa kadar olan zincirin nihai olduğunu ve yeni bir çatalın ortaya çıkması nedeniyle asla hariç tutulmayacağını kabul etme yeteneği. Genellikle, bir bloğun geçerli ve en önemlisi nihai olduğunu kabul etmek için, blok üreticilerinin çoğunluğundan (bundan sonra BP - blok üreticileri olarak anılacaktır) imza toplamak gerekir; bu, en azından blok zincirinin teslim edilmesini gerektirir. tüm BP'lere dağıtılması ve imzaların tüm BP'ler arasında dağıtılması. BP'lerin sayısı arttıkça, ağdaki gerekli mesajların sayısı da katlanarak artar; bu nedenle, örneğin Hyperledger pBFT konsensusunda kullanılan, kesinlik gerektiren konsensüs algoritmaları, birkaç düzine BP'den başlayarak gereken hızda çalışmaz. çok sayıda bağlantı.

Ağda inkar edilemez ve dürüst bir PVRB varsa, en basit yaklaşımla bile, buna göre blok üreticilerinden biri seçilebilir ve protokolün bir turu sırasında onu "lider" olarak atayabilirsiniz. Eğer sahipsek N blok üreticileri M: M > 1/2 N dürüstse, işlemleri sansürlemiyorsa ve zinciri "çifte harcama" saldırısı gerçekleştirmek için çatallaştırmıyorsa, tekdüze dağıtılmış rakipsiz bir PVRB kullanmak, dürüst bir liderin seçilmesine olanak tanıyacaktır M / N (M / N > 1/2). Her lidere, bir blok üretip zinciri doğrulayabileceği kendi zaman aralığı atanırsa ve bu aralıklar zaman açısından eşitse, o zaman dürüst BP'lerin blok zinciri, kötü niyetli BP'lerin oluşturduğu zincirden daha uzun olacaktır ve fikir birliği Algoritma zincirin uzunluğuna dayanır ve sadece "kötü" olanı atar. Her BP'ye eşit zaman dilimleri tahsis etme ilkesi ilk olarak Graphene'de (EOS'un öncüsü) uygulandı ve çoğu bloğun tek bir imzayla kapatılmasına olanak tanıyor, bu da ağ yükünü büyük ölçüde azaltıyor ve bu fikir birliğinin son derece hızlı ve daha hızlı çalışmasına olanak tanıyor. istikrarlı bir şekilde. Ancak EOS ağının artık 2/3 BP imzasıyla onaylanan özel blokları (Son Geri Dönülemez Blok) kullanması gerekiyor. Bu bloklar kesinliğin sağlanmasına hizmet eder (son Geri Dönülemez Bloktan önce başlayan bir zincir çatalının imkansızlığı).

Ayrıca, gerçek uygulamalarda protokol şeması daha karmaşıktır - önerilen bloklar için oylama, eksik bloklar ve ağda sorunlar olması durumunda ağı korumak için birkaç aşamada gerçekleştirilir, ancak bunu hesaba katarak bile PVRB kullanan konsensüs algoritmaları gerektirir BP'ler arasında önemli ölçüde daha az mesaj vardır, bu da onların geleneksel PVFT'den veya onun çeşitli modifikasyonlarından daha hızlı olmasını mümkün kılar.

Bu tür algoritmaların en belirgin temsilcisi: Ouroboros BP'nin gizli anlaşmasına karşı matematiksel olarak kanıtlanabilir olduğu söylenen Cardano ekibinden.

Ouroboros'ta PVRB, "BP ​​programı" olarak adlandırılan programı tanımlamak için kullanılır - her BP'ye bir blok yayınlamak için kendi zaman aralığının atandığı bir program. PVRB kullanmanın en büyük avantajı, BP'lerin tam “eşitliği”dir (bilançolarının büyüklüğüne göre). PVRB'nin bütünlüğü, kötü niyetli BP'lerin zaman aralıklarının zamanlamasını kontrol edememesini ve dolayısıyla zincirin çatallarını önceden hazırlayıp analiz ederek zinciri manipüle edememesini ve bir çatal seçmek için sadece çatalın uzunluğuna güvenmek yeterlidir. BP'nin "faydasını" ve bloklarının "ağırlığını" hesaplamak için zor yollar kullanmadan zincir.

Genel olarak, merkezi olmayan bir ağda rastgele bir katılımcının seçilmesinin gerekli olduğu tüm durumlarda, PVRB, örneğin bir blok karmasına dayalı deterministik bir seçenek yerine neredeyse her zaman en iyi seçimdir. PVRB olmadan, bir katılımcının seçimini etkileme yeteneği, saldırganın kararda daha büyük bir pay elde etmek için bir sonraki yozlaşmış katılımcıyı veya birkaçını aynı anda seçmek için birden fazla gelecekten seçim yapabileceği saldırılara yol açar. PVRB'nin kullanılması bu tür saldırıların itibarını zedeler.

Ölçeklendirme ve yük dengeleme

PVRB ayrıca yük azaltma ve ödeme ölçeklendirme gibi görevlerde de büyük fayda sağlayabilir. Başlangıç ​​olarak kendinizi tanımak mantıklıdır. makale Rivesta “Mikroödeme Olarak Elektronik Piyango Biletleri”. Genel fikir, ödeyiciden alıcıya 100 1c ödeme yapmak yerine, 1$ = 100c ödülle dürüst bir piyango oynayabilirsiniz; burada ödemeyi yapan kişi, her biri için bankaya 1 "piyango biletinden" birini verir. 100c ödeme. Bu biletlerden biri 1 dolarlık bir kavanoz kazanıyor ve alıcının blockchain'e kaydedebileceği bu bilet oluyor. En önemlisi geri kalan 99 biletin alıcı ile ödeyen arasında herhangi bir dış katılım olmadan, özel bir kanal üzerinden ve istenilen hızda aktarılmasıdır. Emercoin ağındaki bu şemayı temel alan protokolün iyi bir açıklaması okunabilir burada.

Bu planın, alıcının kazanan bileti aldıktan hemen sonra ödeme yapan kişiye hizmet vermeyi durdurabilmesi gibi birkaç sorunu vardır, ancak dakika başına faturalandırma veya hizmetlere elektronik abonelikler gibi birçok özel uygulama için bunlar ihmal edilebilir. Temel gereklilik elbette piyangonun adil olmasıdır ve uygulanması için bir PVRB kesinlikle gereklidir.

Rastgele bir katılımcının seçimi, farklı BP'lerin yalnızca kendi işlem kapsamlarını işlemesine olanak tanıyarak blok zincirini yatay olarak ölçeklendirmeyi amaçlayan parçalama protokolleri için de son derece önemlidir. Bu, özellikle parçaları birleştirirken güvenlik açısından son derece zor bir iştir. Konsensüs algoritmalarında olduğu gibi, belirli bir parçadan sorumlu olanları atamak amacıyla rastgele bir BP'nin adil seçimi de PVRB'nin görevidir. Merkezi sistemlerde, parçalar bir dengeleyici tarafından atanır; yalnızca istekten elde edilen hash'i hesaplar ve bunu gerekli uygulayıcıya gönderir. Blok zincirlerde bu atamayı etkileme yeteneği, fikir birliğine yönelik bir saldırıya yol açabilir. Örneğin bir saldırgan, işlemlerin içeriklerini kontrol edebilir, kontrol ettiği parçaya hangi işlemlerin gideceğini kontrol edebilir ve içindeki blok zincirini manipüle edebilir. Ethereum'da görevlerin parçalanması için rastgele sayıların kullanılması sorununa ilişkin bir tartışmayı okuyabilirsiniz. burada
Parçalama, blockchain alanındaki en iddialı ve ciddi sorunlardan biridir; çözümü, fantastik performans ve hacime sahip merkezi olmayan ağların oluşturulmasına olanak tanıyacak. PVRB bunu çözecek önemli bloklardan sadece bir tanesi.

Oyunlar, ekonomik protokoller, tahkim

Oyun endüstrisinde rastgele sayıların rolünü abartmak zordur. Çevrimiçi kumarhanelerde açık kullanım ve bir oyuncunun hareketinin etkilerini hesaplarken örtülü kullanım, merkezi bir rastgelelik kaynağına güvenmenin hiçbir yolu olmayan merkezi olmayan ağlar için son derece zor problemlerdir. Ancak rastgele seçim aynı zamanda birçok ekonomik sorunu da çözebilir ve daha basit ve daha etkili protokollerin oluşturulmasına yardımcı olabilir. Diyelim ki protokolümüzde bazı ucuz hizmetlerin ödenmesine ilişkin anlaşmazlıklar var ve bu anlaşmazlıklar oldukça nadiren ortaya çıkıyor. Bu durumda, eğer tartışmasız bir PVRB varsa, müşteriler ve satıcılar anlaşmazlıkları rastgele ancak belirli bir olasılıkla çözme konusunda anlaşabilirler. Örneğin %60 olasılıkla müşteri kazanır, %40 olasılıkla satıcı kazanır. İlk bakışta saçma olan bu yaklaşım, üçüncü bir tarafın katılımı olmadan ve gereksiz zaman kaybı olmadan, her iki tarafın da yararına olacak şekilde, kesin olarak öngörülebilir bir kazanç/kayıp payı ile anlaşmazlıkları otomatik olarak çözmenize olanak tanır. Ayrıca olasılık oranı dinamik olabilir ve bazı küresel değişkenlere bağlı olabilir. Örneğin, bir şirket iyi durumdaysa, anlaşmazlık sayısı az ve kârlılığı yüksekse, şirket otomatik olarak bir anlaşmazlığı çözme olasılığını müşteri odaklılığa doğru kaydırabilir, örneğin 70/30 veya 80/20 veya tam tersi, Anlaşmazlıklar çok fazla para gerektiriyorsa ve hileli ya da yetersizse, olasılığı diğer yöne kaydırabilirsiniz.

Token küratörlüğündeki kayıtlar, tahmin pazarları, tahvil eğrileri ve diğerleri gibi çok sayıda ilgi çekici merkezi olmayan protokol, iyi davranışların ödüllendirildiği ve kötü davranışların cezalandırıldığı ekonomik oyunlardır. Genellikle korumaların birbiriyle çatıştığı güvenlik sorunları içerirler. Milyarlarca tokena sahip “balinaların” (“büyük stake”) saldırılarına karşı korunan şey, küçük bakiyeli binlerce hesabın (“sybil stake”) saldırılarına ve tek bir saldırıya karşı alınan önlemlere karşı savunmasızdır. Büyük bir hisseyle çalışmayı kârsız hale getirmek için oluşturulan doğrusal ücretler genellikle başka bir saldırı tarafından itibarsızlaştırılır. Ekonomik bir oyundan bahsettiğimiz için, karşılık gelen istatistiksel ağırlıklar önceden hesaplanabilir ve komisyonları uygun dağılıma sahip rastgele komisyonlarla değiştirebiliriz. Bu tür olasılıksal komisyonlar, eğer blok zinciri güvenilir bir rastgelelik kaynağına sahipse ve herhangi bir karmaşık hesaplama gerektirmiyorsa son derece basit bir şekilde uygulanır; bu da hem balinalar hem de sinsiler için hayatı zorlaştırır.
Aynı zamanda, bu rastgelelikteki tek bir bit üzerindeki kontrolün hile yapmanıza, olasılıkları yarı yarıya azaltmanıza ve artırmanıza olanak sağladığını hatırlamaya devam etmek gerekir, dolayısıyla dürüst bir PVRB, bu tür protokollerin en önemli bileşenidir.

Doğru rastgeleyi nerede bulabilirim?

Teorik olarak, merkezi olmayan ağlarda adil rastgele seçim, neredeyse her protokolü gizli anlaşmalara karşı kanıtlanabilir şekilde güvenli hale getirir. Mantık oldukça basittir; eğer ağ tek bir 0 veya 1 bit üzerinde anlaşırsa ve katılımcıların yarısından azı sahtekârsa, o zaman yeterli sayıda yineleme verildiğinde ağın bu bit üzerinde sabit bir olasılıkla fikir birliğine varması garanti edilir. Basitçe, dürüst bir rastgele 51 katılımcıdan 100'ini %51 oranında seçeceği için. Ama bu teoride çünkü... gerçek ağlarda, makalelerde olduğu gibi bu düzeyde bir güvenlik sağlamak için, ana bilgisayarlar arasında çok sayıda mesaj, karmaşık çok geçişli şifreleme gereklidir ve protokolün herhangi bir komplikasyonu, anında yeni saldırı vektörlerini ekler.
Bu nedenle, gerçek uygulamalarla, çoklu denetimlerle, yüklemelerle ve tabii ki gerçek saldırılarla test edilmek için yeterli süre kullanılmış olan, blok zincirlerde kanıtlanmış dirençli bir PVRB'yi henüz göremiyoruz. ürün gerçekten güvenli.

Bununla birlikte, birçok umut verici yaklaşım var, birçok ayrıntıda farklılık gösteriyorlar ve bunlardan biri kesinlikle sorunu çözecek. Modern bilgi işlem kaynaklarıyla, kriptografik teori oldukça akıllıca pratik uygulamalara dönüştürülebilir. Gelecekte PVRB uygulamaları hakkında konuşmaktan mutluluk duyacağız: artık bunlardan birkaçı var, her birinin kendine ait önemli özellikleri ve uygulama özellikleri var ve her birinin arkasında iyi bir fikir var. Rastgeleleştirmeye katılan çok fazla ekip yok ve her birinin deneyimi diğer herkes için son derece önemli. Bilgilerimizin, öncekilerin deneyimlerini de dikkate alarak diğer ekiplerin daha hızlı hareket etmesine olanak sağlayacağını umuyoruz.

Kaynak: habr.com

Yorum ekle