Blockchain Data Validation: The critical Role of Sorting
Blockchain teknolojisi, paylaşılan bir öncüllüğe ilişkin binlerce işlemi kabul eden merkezi olmayan bir düğüm ağına bağlıdır.Bu anlaşmanın kalbindeki veriler geçerlilik: her yeni işlem bloğunun doğrulanması ve protokol kuralları için kontrol edilmesi gereken bir işlemdir. Bu makale, doğrulama süreçlerinin gerektirdiği şekilde, belirli uygulamalar, ticaret-offlar ve gerçek dünya uygulamalarını hızlandırmanın etkili hale getirilmesi için blokaj haline gelir.
Blockchain Data Validation
Bir blok zincirinde geçerli olan veriler, birkaç doğrulama katmanını içerir. Birincisi, her işlem kriptografik olarak imzalanmalıdır, gönderenin malvarlığı harcama yetkisine sahip olması gerekir.İkinci olarak, işlem, ağ kurallarının -örneğin, gönderenin bakiyesinin yeterli olması ve çift yatırımın olması gerekir. Üçüncü olarak, birden fazla işlem içeren bir blok, çoğu zaman iş kanıtı, iş kanıtı, risk kanıtı veya pratik Bizans hatası toleransı. Sorting. Sorting, ikinci ve üçüncü katmanlarda öncelikle bir rol oynamak gerekir: Blok içinde blok, sipariş etmek ve daha hızlı bir şekilde tespit etmek için blok halindeki işlemleri onaylayın.
Birçok blokta varsayılan yaklaşım, blokta göründüğü sırada işlemleri doğrulamaktır. Ancak bu lineer tarama, bloklar yüzlerce veya binlerce işlemi içerken yavaş olabilir. İşlem setinden önce, geçerli olan yazarların daha hızlı aramalarını gerçekleştirmek için belirli bir veriden yararlanabilmesi ve daha az geçişte koşullu çekleri uygulamaları mümkündür.
Neden Sorting Teknikleri Madde
Varsayılan bir diziye dönüşen bir koleksiyona dönüşerek, O(log n) veya O(n) zamanında O(n ^) yerine giriş sipariş eden algoritmaların eklenmesini gerektiren algoritmaların eklenmesi gerekir.In Blockchain validation, the benefits include:
- [[Döneticileri:0)Faster tekrar algılama[[Dönder:0)[[Dönerilmiş listeler, lineer olmayan işlemleri veya çatışmaları lineer zamanda bulmak için karşılaştırıldığında karşılaştırılabilir.
- [FONT:0]Efficient range sorgular[Dönetici: 1) Örneğin, tüm işlem zamanlarının geçerli bir zaman içinde düşmesini geçerlidir.
- [FONT:0]Gelişmiş bir konsensiyon performansı[[[Dönetici:0)[[Dönetici performansı[[Dönetici:0))[[[Döneticileri))[[[Döneticileri değiştir]; Bazı konsensiyon protokolleri (örneğin, PBFT) işlem işlemlerinin, genel olarak, tüm düğümlerin ekstra müzakere olmadan aynı sıraya gelmesini gerektirir.
- [FONT=0)Redük hafıza ayak izi[[[Dönetici:0)[[Döneci)[[[Döneci))[[[[değiştir | kaynağı değiştirilmiş veriler sıkıştırılabilir veya indekslenmiş durumda, geçerli olmayan düğümler için depolama gereksinimlerine daha etkili bir şekilde daha düşük.
Türleme olmadan, geçerli biratör, her işleme karşı her işlemi karşılaştırmak zorunda kalabilir - O (n^2) blok boyutları büyüdükçe kullanılamaz. Sorting preprocesses the data so that next validation steps can run in near-linear time.
Blockchain Validation için Common Sorting Techniques
Tüm tür algoritmaları blok zincir ortamları için eşit derecede uygun değildir. Seçim, veri özelliklerine (boyutlu, stabilite gereksinimleri) ve donanım kısıtlamalarına bağlıdır (kücretsiz hafıza, determinist davranışlar için ihtiyaç vardır). Aşağıda en ilgili algoritmaları ve uygulamalarını blok zinciri doğrulamada inceleyeceğiz.
Hızlı Sort
Hızlı tür ortalama O(n log n) performansı ve yerinde sıralama yeteneği için yaygın olarak kullanılır. Blokta genellikle geçerlilik öncesinde işlem listesini sıralamak için kullanılır. çünkü hızlı bir şekilde bir tür bölüm veri önemli bir şekilde dağıtılırsa, aynı zamanda geçerli bir aralığın dışına çıkan kartpostal işlemlerine de kullanılabilir - örneğin, minimum eşiğin altına alınan işlemleri filtrelemek için.
Merge Sort
Merge sort, giriş dağılımının ne olursa olsun tutarlı O(n) performansı sağlar, o zaman geri bildirim ortamları için daha güvenli bir seçim yapar. istikrarlı tür mülk, işlemlerin eşit öncelikli olarak (örneğin, aynı ücret) kendi orijinal teslim siparişini tutar, örneğin bazı bloklar kesmeden önce işlem teklifleri ayarlamanız önemlidir. Merge sorti gerekir.
Heap Sort
Heap sort, belirli işlemleri önceliklendirmek zorunda kaldığında değerlidir. Örneğin, O(log n) zamanında en yüksek ceza işlemi alabilir, doğrulama işlemlerinin ilk önce ( Bitcoin ücret piyasasındaki en kârlı işlemleri yapabilmesine izin verir). Heap sorti de O(n log n) en kötü durumdaki bir algoritmadır, hafıza-konstularında iyi bir denge sunar.
Radix Sort
İşlem ID'leri (hashes) veya nonce değerleri gibi tamsa anahtarlar için, radix tür O(n * k) zaman elde edebilir, k'nin anahtar uzunluğu nedir, radix tür, özellikle de paralel uygulama için kıyaslanmış anahtarlar için uygun olmayabilir. Radix tipi, O'nun (n log n) alt kısmından kaçınır ve böylece sabit uzunlukta tekrarlanabilir.
Addion Sort for Small Subsets
Eklem türü O(n^2), n çok küçük (tipik olarak < 20) Blockchains genellikle büyük işlem kümeleri daha küçük toplu olarak bölmek (örneğin, shards) bir shard içinde, ekleme türü, bir tür bir gelen işlemleri küresel sıralamaya sokmadan önce sipariş edilen bir liste tutmak için kullanılabilir.
Blockchain Validation Protokolünde Sorting
Bir blok zinciri doğrulama hattına türleme, nerede ve ne zaman meydana geldiği konusunda dikkatli bir düşünce gerektirir. Aşağıda, her biri farklı sistem mimarilerine uygundur.
1. Desen 1: Prevalidation Sorting of Transaction Lists
Bir düğüm her işlem için dijital imzaları ve kural kontrollerini doğrulamadan önce, işlem kimlik, gönderileyici adresi ve düğümleri içeren bir kompozit anahtarla işlem dizisini değiştirebilir ve bu, aynı gönderileyiciden tekrarlamanızı sağlar, çift-spent UTXOs'u tanımlar ve bu işlem, herhangi bir bağımlılık kısıtlamasına saygı gösterir (örneğin, bir işlem başka şekilde ortaya çıkabilir).
Uygulamada, bu, bir tür çağrı ile geçerli olan işlem döngüsünü sararak uygulanır. Örneğin, Tendermint tabanlı bir blokajda, "DeliverTx' yöntemi, alınan işlem listesini kullanarak, geçerlilik süresine kadar (sender, nonce) 'u kullanarak uygulamaktadır.
2. Sezon 2. Bölüme Göre Bloklar veya Hash
Bir akran ağındaki düğümler birden fazla kaynaktan blok aldığında, kanaldaki anahtar-koice kuralını belirlemeliler. Anahtarlamalı bloklar üst düzey zamanları (veya blok tarafından bağlantı noktası olarak) ilk olarak onaylamalarına yardımcı olur.In delegated kanıtı (DPoS), nihai sayıya kadar bloklar.
3. Desen 3: Batch Geçerliliği için Sort Ağaçlarını Gösterdi
Bir Merkle ağacı verimli bir üyelik kanıtları sağlar, ancak ağaç, sipariş edilmemiş terklerden inşa edilirse, kanıt nesli ve doğrulama düğümleri arasında tutar.Bir tür Merkle ağacı inşa ederek (bir işlem olarak sipariş edilir) bir şekilde Merkle ağacının kısaltılmasını ve geçişini kolaylaştırması gerekir.
Sorting Teknikleri Kullanımının Faydaları
Blok Zincirinde sipariş edilen uygulama, ağ yığını boyunca ölçülebilir gelişmelerin kabul edilmesi:
- [FONT:0)Faster geçerlilik:[Dönder:[Dönder:0) Sorter, kategori sayısı, bütünleme kontrolleri için gerekli olan karşılaştırma sayısını azaltır, akademik literatürde bildirilen% 20-40 oranında azaltır (örneğin, [[Düzgeçmiş, [[Dövme., s.)
- [FONT:0)Enhanced doğruluk:[Dönetici:[Dönetici:0) Sorted data structures, dizi boşluklar veya tekrarlanan hataları hemen ortaya çıkarır, tespit edilmemiş dolandırıcılık oranını azaltır.
- [FONT:0)Scalability:[Dönetici:[Dönetici: 0) ] Blok boyutları 1 MB'den 100 MB'ye kadar artış gösterirken, bu tür bir üstte sadece logarithmally, lineer zamanlı geçerlilik lineer olarak büyüyebilir. Sorting gelecekteki kırılgan ölçeklendirmeyi sağlar.
- [FONT:0)Deterministic behavior:[Dönetici:[Dönetici:0)Deterministic behavior:[Dönetici: 0,4][/FONT] İzinli blok zincirlerde, tüm düğümlerin aynı geçerliliğe ulaşması gerekir, değişken işlem emrine yol açan yok.
- [FONT:0)Better ücret tahminleri:[Döneticileri Ödemek:0) Ücretle Ödemek, madenciler veya geçerli memurların, doğrudan ağ ekonomik teşviklerini etkileyen bloklar inşa etmelerine olanak sağlar.
Meydanlar ve düşünceler
Bu avantajlarına rağmen, blok zinciri doğrulamasında türleme, geliştiricilerin dikkatle yönetilmesi gereken ticari işlemleri tanıtmaktadır.
C ⁇ Overhead of Sorting
Kendi kendine göre CPU döngüleri. 10.000 işlem boyutu için, iyi bir O (n log n) tür, modern donanımda blok başına yaklaşık 0.1-0.5 ms ekler - imza doğrulama ile kıyaslanabilir (bu 10-100 m alabilir). ancak, eğer sıralama birden fazla kez yapılırsa (örneğin, her devlet değişikliğinden sonra), eksler. Geliştiriciler tüm boru hattını profilli ve tembel sıralamayı dikkate almalıdır: yalnızca veriler siparişten faydalanacak şekilde erişilebilir.
Işık Nodes'te bellek Kıtlamaları
Işık müşterileri veya gömülü geçerli yazıcılar sınırlı RAM olabilir. Merge sort's O(n) hafıza çok büyük bloklar için bir sorun olabilir. Bu tür durumlarda, heap tür veya iteratif hızlı tür gibi konum algoritmaları tercih edilmelidir.
Saldırı Vectors
Bir reklam, verileri bir türe dönüştürebilecek şekilde etkileyebilirse, belirli bir algoritma için en kötü bir giriş yapabilir veya monotonlukla işlemlerinizi teslim edebilir, O (n.2) için sipariş edilen bir tür birleşmeye neden olabilir. Savunmalar, rastgele bir şekilde geri çekilmek için geri çekilmek veya en kötü durumdaki performansı kabul etmek hala kabul edilebilir bir eşiği tarafından bağlıdır. Bazı bloklar O (n log n) zamanı için bir araya gelir.
Sort on Sorting Order
Ortamsal sistemlerde, düğümler, farklı alanlarda (örneğin, ücret vs. zamantamp) farklı geçerliliği hesaplamaları gerekir. Bu nedenle, yalnızca bir teker kapsamı içinde (örneğin, bir blok) veya türleme işlemine bağlı olarak) bağlı olarak oluşturulmalıdır.
Gelişmiş düşünceler: Dağıtılmış Consensus'ta Sorting
Temel doğrulamanın ötesinde, sıralama daha gelişmiş blok mimarisinde rol oynar, aynı zamanda paralel infaz ve çapraz zincir iletişimi gibi.
Shard Assignment için sıralayın
Göndericinin adresinin, her kovanın aynı işlemlere ait olduğu işlem listesini, paralel işleme ve çapraz iletişim yüklerine dayalı olarak belirli bir mülke tahsis edilir.Rekadet #} (bucket sort) her kovan aynı işlem adımına ait olduğu işlem listesini, "bağışlama işlemine ve kesme işlemine izin verir.
Paralel Yüksek Bağlantı için Sıralama
Modern CPUlar ve GPUlar paralel bir tür yetenek sunar (örneğin, CUDA Thrust, Intel TBB). Blockchain doğrulamacılar bunları alt saniyedeki bloklar için, yüzlerce işlemden önce sabitlenmiş olan bazı projeler için bile. Paralel sürümler ortaktır. ancak, bakım, donanıma dayalı olarak ayrıştırılması gerekir: paralel olarak, genellikle ortak olmayan çalışmalardan yararlanarak, bu tür bir şekilde desteklenmeyen bir algoritmayı kullanmak gerekir.
Cross-Chain Validation'da Sorting
Birden fazla blok zincirle (örneğin, atom değişimleri veya röle zincirleri) kapsayan işlemleri geçerli olduğunda, bu tür bir şekilde teslimat ve yeniden oynama saldırılarını garanti etmek için paketler listesini kullanabilir.A r zincir kaynak zincirinin blok yüksekliği tarafından gelen başlıkları sıralayabilir.
Gerçek-Dünya Örnekleri
Birkaç büyük blokaj uygulamaları zaten geçerlilik akışlarında türleme teknikleri dahil, sık sık örtülü olarak.
- [FONT:0)Bitcoin) – Bir adayın blok bloğunu yapmadan önce banampool'da para ödemesi gereken işlemlerden kaçınarak madencilik yazılımı da bağımlılık (çocuk bakıcılık siparişi) ile ilgili işlemlerden kaçınmak için, önceden belirlenmiş bir işlemden kaçınmak için.
- [FONT:0)Ethereum 2.0 (Beacon Chain)) – Bir blok önermeden önce, geçerlileyiciler, bir deterministik liste oluşturmak için geçerli olan endeksler tarafından bekliyor. devlet geçiş fonksiyonu o zaman blokun depozito ağacı doğru depozito kökü hesaplamak için endekste ayrılır.
- [FONT:0]Hyperledger Fabric[Dönetici: 1) sipariş servisi (Kafka veya Raft) alınan siparişde işlem önerileri sunar. Ancak, akranların, talep edilen işlemleri isim alanı (kanı ID) tarafından belirlenen işlemleri, bu zincirlemedeki çağrıların eşler için tutarlı bir şekilde işlenmesini sağlamak için sipariş eder. Fabric'nin onay mantığı da, çatışmaları tespit etmek için yazılı setleri bir liste kullanır.
- [FONT=0)Solana[DÜDÜT:1) – Solana'nın Tower BFT konsensüsüsü, küresel olarak sipariş edilen olayların sırasını oluşturan bir kanıt örneği kullanır.Sistem, PoH'nin doğrulamadan önce aldığı işlemler, 50.000 TPS'yi aşırı yüksek bir süre boyunca sağlar.
Blockchain Validation Sorting Sorting için En İyi Uygulamalar
Yukarıdaki analize dayanarak, geliştiriciler bu yönergeleri blok zincir tasarımına dahil ederken takip etmelidir:
- [FONT:0) Doğru aşama için doğru algoritmayı desteklemektedir. Genel amaçlı istikrar ve en kötü durumda garantiler için bir araya gelir.Sorular ve paralel donanım mevcut olduğunda radix tipi kullanın.
- [FONT:0)Etmenlik (Dönetici)[Dönetici)[değiştir | kaynağı değiştir] Her zaman protokol parçası olarak anahtar ve koaratoru belirt; yüzen karşılaştırmalardan kaçının; tam olarak tam olarak yerine, ya da enum kullanın.
- [FONT:0] Gerçek iş yükleri üzerine İchmark (Dönetici) Test, zaman zaman ayırmak için en kötü davalı girişleri test etmek için geçerli değildir.
- [FONT:0]Consider or improveal sorting.[DÜT:1] Sorte sadece sıralanmış mülk gerekli olduğunda. Örneğin, gelen işlemlerin unsorted listesini tutar, ancak bir kez blok oluşturmadan önce.
- [FONT:0]Leverage donanım ivmesi.[[Dönetici:0]Döneticileri doğrultabilirse, doğrulayıcı bir GPU veya birden fazla çekirdek üzerinde çalışırsa, paralel tür kütüphaneler kullanın. Sonuçlar düğümler arasında yenidenroducize edilir.
- [FONT:0]Document trade-offs.[[Dönetici:0] Neden hızlı bir şekilde bir araya getirilen bir tür seçtiniz? bellek kısıtlamaları var? Kamu belgeleri, operatörlerin performans özelliklerini tahmin etmelerine yardımcı olur.
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Dizi teknikleri sadece blokaj verilerinin geçerliliği konusunda bir uygulama detayı değildir; doğrulanmadan dolayı ölçeklendirmek, güvenlik ve determinizm. Hızlı bir şekilde, bir tür, heap sort ve radix tür, blokaj geliştiricileri, doğruluğu azaltmadan ölçeklendirmek için önemli bir optimizasyondur. Blok zincir ağları kabul etmeye ve işlem hacminde büyümeye devam ettikçe, akıllı uygulama yüksek performanslı sistemler oluşturmak için kritik bir araç olarak kalacaktır.