Polkadot : vision d'un cadre multi-chaînes hétérogène
Özet
POLKADOT: HETEROJEN ÇOK ZİNCİRLİ BİR ÇERÇEVE VİZYONU TASLAK 1 DR. GAVİN AHŞAP KURUCU, ETHEREUM & PARİTE [email protected] Özet. Günümüzün blockchain mimarilerinin tümü, özellikle pratik genişletilebilirlik ve ölçeklenebilirlik araçlarının yanı sıra bir dizi sorundan muzdariptir. Bunun, fikir birliği mimarisinin çok önemli iki parçasını birbirine bağlamasından kaynaklandığına inanıyoruz: kanoniklik ve geçerlilik birbirine çok yakındır. Bu makale, heterojen çoklu zincir mimarisini tanıtmaktadır. bu ikisini temelde birbirinden ayırıyor. Bu iki parçayı bölümlere ayırarak ve sağlanan genel işlevselliği mutlak minimumda tutarak Güvenlik ve ulaşım açısından, çekirdeğin yerinde genişletilebilirliğine yönelik pratik araçlar sunuyoruz. Ölçeklenebilirlik şu şekilde ele alınır: bu iki işleve böl ve yönet yaklaşımı, bağlı çekirdeğin ölçeğini, teşvik yoluyla genişletiyor güvenilmeyen genel düğümler. Bu mimarinin heterojen doğası, çok farklı türden konsensüs sistemlerinin güvene dayalı olmayan, tamamen merkezi olmayan bir "federasyon" içinde birlikte çalışmasına olanak tanıyarak, açık ve kapalı ağların güvensiz erişime sahip olmasına olanak tanır. Birbirimiz. Aşağıdakiler gibi önceden var olan bir veya daha fazla ağ ile geriye dönük uyumluluk sağlamanın bir yolunu ortaya koyduk: Ethereum. Böyle bir sistemin pratik olarak genel arayışta temel düzeyde yararlı bir bileşen sağladığına inanıyoruz. Küresel ticarette ölçeklenebilirlik ve gizlilik düzeylerine ulaşabilen uygulanabilir bir sistem. 1. Önsöz Bunun teknik bir “vizyon” özeti olması amaçlanmıştır blockchain paradigmasını daha da geliştirmek için alınabilecek olası bir yön ve bu yönün neden mantıklı olduğuna dair bazı gerekçeler. Şurada yer alıyor: Gelişimin bu aşamasında mümkün olduğu kadar fazla ayrıntı somut bir iyileşme sağlayabilecek bir sistem blockchain teknolojisinin çeşitli yönleri. Resmi veya başka türlü bir spesifikasyon olması amaçlanmamıştır. Kapsamlı olması ya da bir olması amaçlanmamıştır. son tasarım. Temel olmayan hususları kapsaması amaçlanmamıştır. API'ler, bağlamalar, diller ve kullanım. Bu özellikle deneyseldir; nerede parametreler belirtilirse, değişmeleri muhtemeldir. Mekanizmalar topluluğa yanıt olarak eklenebilir, geliştirilebilir ve kaldırılabilir fikirler ve eleştiriler. Bu makalenin büyük bir kısmı muhtemelen Deneysel kanıt ve prototiplemenin sağladığı gibi revize edilebilir Neyin işe yarayıp neyin yaramayacağına dair bize bilgi verin. Bu belge, protokolün temel bir tanımını ve alınabilecek talimatlara ilişkin fikirleri içerir. çeşitli yönleri geliştirmek. Çekirdek olması öngörülüyor açıklama bir başlangıç için başlangıç noktası olarak kullanılacaktır bir dizi kavram kanıtı. Son bir “versiyon 1.0” şu şekilde olacaktır: kanıtlanmış ve kararlı hale gelen ek fikirlerle birlikte bu rafine protokole dayanmaktadır. Projenin hedeflerine ulaşması için gerekli olan 1.1. Tarih. • 09/10/2016: 0.1.0'a dayanıklı1 • 20/10/2016: 0.1.0'a dayanıklı2 • 01/11/2016: 0.1.0'a dayanıklı3 • 10/11/2016: 0.1.0 2. Giriş Blok zincirleri, “Nesnelerin İnterneti” de dahil olmak üzere birçok alanda büyük fayda vaat ediyor (IoT), finans, yönetişim, kimlik yönetimi, web merkezi olmayanlaştırma ve varlık takibi. Ancak buna rağmen teknolojik vaat ve büyük konuşma, henüz göremedik mevcut teknolojinin önemli gerçek dünyaya yayılması. Bunun günümüzün beş önemli başarısızlığından kaynaklandığına inanıyoruz. teknoloji yığınları: Ölçeklenebilirlik: Küresel olarak ne kadar kaynak harcanıyor? sistemin tek bir işlemi işlemesi için işleme, bant genişliği ve depolama ve kaç tane işlemler makul bir şekilde gerçekleştirilebilir zirve koşulları? Yalıtılabilirlik: Çoklu bireylerin farklı ihtiyaçları Taraflar ve başvurular aynı çerçeve altında optimuma yakın bir düzeyde ele alınabiliyor mu? Geliştirilebilirlik: Araçlar ne kadar iyi çalışıyor? Yap API'ler geliştiricilerin ihtiyaçlarını karşılıyor mu? Eğitim materyalleri mevcut mu? Doğru entegrasyonlar mevcut mu? Yönetişim: Ağ esnek kalabilir mi? zaman içinde gelişip uyum sağlıyor mu? Kararlar olabilir mi Yeterli kapsayıcılık, meşruluk ve etkili bir liderlik sağlamak için şeffaflık merkezi olmayan sistem? Uygulanabilirlik: Teknoloji gerçekten kendi başına yakıcı bir ihtiyacı karşılıyor mu? Aradaki boşluğu kapatmak için başka bir "ara katman yazılımı" gerekli mi? gerçek uygulamalar? Bu çalışmamızda ilk ikisini ele almayı amaçlıyoruz. Sorunlar: ölçeklenebilirlik ve yalıtılabilirlik. Bununla birlikte, inanıyoruz Polkadot çerçevesi bu sorun sınıflarının her birinde anlamlı iyileştirmeler sağlayabilir. Modern, verimli blockchain uygulamalar gibi Eşlik Ethereum istemcisi [17] işlem yapabilirfazla Performanslı tüketici donanımı üzerinde çalışırken saniyede 3.000 işlem. Ancak mevcut gerçek dünya blockchain ağlar pratik olarak yaklaşık 30 ile sınırlıdır saniye başına işlemler. Bu sınırlama temel olarak mevcut eşzamanlı konsensüs mekanizmalarının geniş zamanlama güvenlik marjları gerektirmesinden kaynaklanmaktadır. nedeniyle daha da kötüleşen beklenen işlem süresi 1
Résumé
POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 DR. GAVIN BOIS FONDATEUR, ETHEREUM & PARITÉ [email protected] Résumé. Les architectures blockchain actuelles souffrent toutes d'un certain nombre de problèmes, notamment les moyens pratiques d'extensibilité et d'évolutivité. Nous pensons que cela découle du fait de lier deux parties très importantes de l'architecture du consensus, à savoir canonicité et validité, trop étroitement liées. Cet article présente une architecture, la multi-chaîne hétérogène, ce qui distingue fondamentalement les deux. En compartimentant ces deux parties et en gardant la fonctionnalité globale fournie au minimum absolu de sécurité et de transport, nous introduisons des moyens pratiques d’extensibilité du noyau in situ. L'évolutivité est abordée via une approche « diviser pour mieux régner » sur ces deux fonctions, en s'éloignant de son noyau solidaire grâce à l'incitation des nœuds publics non fiables. La nature hétérogène de cette architecture permet à de nombreux types très divergents de systèmes de consensus d'interagir dans une « fédération » sans confiance et entièrement décentralisée, permettant aux réseaux ouverts et fermés d'avoir un accès sans confiance à les uns les autres. Nous proposons un moyen d'assurer une rétrocompatibilité avec un ou plusieurs réseaux préexistants tels que Ethereum. Nous pensons qu'un tel système constitue un élément de base utile dans la recherche globale d'un système implémentable capable d’atteindre les niveaux d’évolutivité et de confidentialité du commerce mondial. 1. Préface Ceci est destiné à être un résumé technique de la « vision » d'une direction possible qui pourrait être prise pour développer davantage le paradigme blockchain, ainsi que quelques justifications expliquant pourquoi cette direction est judicieuse. Il s'étend dans autant de détails que possible à ce stade de développement un système qui peut apporter une amélioration concrète sur un nombre d'aspects de la technologie blockchain. Il ne s’agit pas d’une spécification, formelle ou autre. Il n'est pas destiné à être exhaustif ni à être un conception finale. Il n’est pas destiné à couvrir les aspects non essentiels du framework tels que les API, les liaisons, les langages et utilisation. Ceci est particulièrement expérimental ; où les paramètres sont précisés, ils sont susceptibles de changer. Les mécanismes être ajouté, affiné et supprimé en réponse aux besoins de la communauté idées et critiques. De grandes parties de ce document seront probablement être révisé à mesure que les preuves expérimentales et le prototypage le donnent nous des informations sur ce qui fonctionnera et ce qui ne fonctionnera pas. Ce document comprend une description de base du protocole ainsi que des idées d'orientations qui peuvent être prises pour améliorer divers aspects. Il est prévu que le noyau description servira de point de départ à une première série de preuves de concept. Une dernière « version 1.0 » serait basé sur ce protocole raffiné ainsi que sur les idées supplémentaires qui ont fait leurs preuves et sont déterminées à nécessaires pour que le projet atteigne ses objectifs. 1.1. Histoire. • 10/09/2016 : 0.1.0-proof1 • 20/10/2016 : 0.1.0-proof2 • 01/11/2016 : 0.1.0-proof3 • 11/10/2016 : 0.1.0 2. Présentation Les blockchains se sont révélées très prometteuses dans plusieurs domaines, notamment celui de « l’Internet des objets ». (IoT), finance, gouvernance, gestion des identités, décentralisation du Web et suivi des actifs. Cependant, malgré le promesse technologique et grand discours, nous n'avons pas encore vu déploiement significatif dans le monde réel de la technologie actuelle. Nous pensons que cela est dû à cinq échecs majeurs du système actuel. piles technologiques : Évolutivité : combien de ressources sont dépensées à l'échelle mondiale sur le traitement, la bande passante et le stockage pour que le système puisse traiter une seule transaction et combien les transactions peuvent être raisonnablement traitées sous conditions de pointe ? Isolatabilité : les besoins divergents de plusieurs les parties et les demandes soient-elles traitées à un degré quasi optimal dans le même cadre ? Développabilité : dans quelle mesure les outils fonctionnent-ils ? Faire les API répondent-elles aux besoins des développeurs ? Des supports pédagogiques sont-ils disponibles ? Les bonnes intégrations sont-elles là ? Gouvernance : le réseau peut-il rester flexible évoluer et s'adapter au fil du temps ? Les décisions peuvent-elles être fait avec suffisamment d’inclusivité, de légitimité et transparence pour assurer un leadership efficace d’un système décentralisé ? Applicabilité : la technologie répond-elle réellement à elle seule à un besoin pressant ? Un autre « middleware » est-il nécessaire pour combler le fossé entre applications réelles ? Dans le présent travail, nous visons à aborder les deux premiers enjeux : évolutivité et isolabilité. Cela dit, nous croyons le cadre Polkadot peut apporter des améliorations significatives dans chacune de ces classes de problèmes. Des implémentations blockchain modernes et efficaces telles que le client Parité Ethereum [17] peut déclencheress au-delà de 3 000 transactions par seconde lors de l'exécution sur du matériel grand public performant. Cependant, le monde réel actuel Les réseaux blockchain sont pratiquement limités à une trentaine de transactions par seconde. Cette limitation provient principalement du fait que les mécanismes actuels de consensus synchrone nécessitent de larges marges de sécurité temporelles sur le délai de traitement prévu, qui est exacerbé par le 1
giriiş
Blok zincirleri, “Nesnelerin İnterneti” de dahil olmak üzere birçok alanda büyük fayda vaat ediyor (IoT), finans, yönetişim, kimlik yönetimi, web merkezi olmayanlaştırma ve varlık takibi. Ancak buna rağmen teknolojik vaat ve büyük konuşma, henüz göremedik mevcut teknolojinin önemli gerçek dünyaya yayılması. Bunun günümüzün beş önemli başarısızlığından kaynaklandığına inanıyoruz. teknoloji yığınları: Ölçeklenebilirlik: Küresel olarak ne kadar kaynak harcanıyor? sistemin tek bir işlemi işlemesi için işleme, bant genişliği ve depolama ve kaç tane işlemler makul bir şekilde gerçekleştirilebilir zirve koşulları? Yalıtılabilirlik: Çoklu bireylerin farklı ihtiyaçları Taraflar ve başvurular aynı çerçeve altında optimuma yakın bir düzeyde ele alınabiliyor mu? Geliştirilebilirlik: Araçlar ne kadar iyi çalışıyor? Yap API'ler geliştiricilerin ihtiyaçlarını karşılıyor mu? Eğitim materyalleri mevcut mu? Doğru entegrasyonlar mevcut mu? Yönetişim: Ağ esnek kalabilir mi? zaman içinde gelişip uyum sağlıyor mu? Kararlar olabilir mi Yeterli kapsayıcılık, meşruluk ve etkili bir liderlik sağlamak için şeffaflık merkezi olmayan sistem? Uygulanabilirlik: Teknoloji gerçekten kendi başına yakıcı bir ihtiyacı karşılıyor mu? Aradaki boşluğu kapatmak için başka bir "ara katman yazılımı" gerekli mi? gerçek uygulamalar? Bu çalışmamızda ilk ikisini ele almayı amaçlıyoruz. Sorunlar: ölçeklenebilirlik ve yalıtılabilirlik. Bununla birlikte, inanıyoruz Polkadot çerçevesi bu sorun sınıflarının her birinde anlamlı iyileştirmeler sağlayabilir. Modern, verimli blockchain uygulamalar gibi Eşlik Ethereum istemcisi [17] şunu aşabilir: Performanslı tüketici donanımı üzerinde çalışırken saniyede 3.000 işlem. Ancak mevcut gerçek dünya blockchain ağlar pratikte yaklaşık 30 ile sınırlıdır saniye başına işlemler. Bu sınırlama temel olarak mevcut eşzamanlı konsensüs mekanizmalarının geniş zamanlama güvenlik marjları gerektirmesinden kaynaklanmaktadır. nedeniyle daha da kötüleşen beklenen işlem süresiPOLKADOT: HETEROJEN ÇOK ZİNCİRLİ BİR ÇERÇEVE VİZYONU TASLAK 1 2 Daha yavaş uygulamaları destekleme arzusu. Bunun nedeni altta yatan fikir birliği mimarisi: durum geçiş mekanizması veya tarafların bir araya geldiği araçlar ve işlemleri yürütür, mantığı temelden birbirine bağlıdır fikir birliğine varılmış “kanonikleştirme” mekanizmasına veya Tarafların çeşitli seçeneklerden biri üzerinde anlaşmaya vardıkları araç mümkün, geçerli, geçmişler. Bu, hem Bitcoin [15] ve Ethereum [5,23] gibi proof-of-work (PoW) sistemleri hem de NXT [8] ve Bitshares [12] gibi stake kanıtı (PoS) sistemleri için eşit derecede geçerlidir: sonuçta hepsi aynı handikaptan muzdariptir. Bu basit bir blockchains'nin başarıya ulaşmasına yardımcı olan strateji. Ancak, bu iki mekanizmayı tek bir ünitede sıkı bir şekilde birleştirerek protokolün yanı sıra birden fazla farklı öğeyi de bir araya getiriyoruz farklı risk profillerine, farklı ölçeklenebilirlik gereksinimlerine ve farklı gizlilik ihtiyaçlarına sahip aktörler ve uygulamalar. Tek beden herkese uymaz. Çoğu zaman durum böyledir Geniş bir kitleye ulaşma arzusunda olan bir ağ, en düşük ortak paydayla sonuçlanan bir muhafazakarlık derecesini benimser optimal olarak az sayıda kişiye hizmet vermek ve sonuçta başarısızlığa yol açmak Bazen yenilik yapma, performans gösterme ve uyum sağlama yeteneğinde dramatik bir şekilde öyle. Örneğin bazı sistemler. Factom [21] durum geçiş mekanizmasını tamamen bırakın. Ancak çoğu Arzuladığımız fayda, geçiş durumuna geçme yeteneğini gerektirir paylaşılan bir durum makinesine göre. Bırakmak çözer alternatif bir sorun; bir alternatif sunmuyor çözüm. Bu nedenle, makul bir yönün olduğu açık görünüyor ölçeklenebilir merkezi olmayan bir bilişime giden yolu keşfetmek platform, fikir birliği mimarisini birbirinden ayırmaktır. durum geçiş mekanizması. Ve belki de şaşırtıcı olmayan bir şekilde bu, Polkadot'nın ölçeklenebilirliğe çözüm olarak benimsediği stratejidir. 2.1. Protokol, Uygulama ve Ağ. Beğen Bitcoin ve Ethereum, Polkadot aynı anda bir ağ protokolüne ve (şimdiye kadar varsayılan) birincil ağ protokolüne atıfta bulunur Bu protokolü çalıştıran genel ağ. Polkadot ücretsiz ve açık bir proje olarak tasarlanmıştır; protokol spesifikasyonu Creative Commons lisansı altındadır ve kod FLOSS lisansı altına yerleştiriliyor. Proje açık bir şekilde geliştirildi ve katkıları kabul etti nerede faydalı olurlarsa olsunlar. RFC'lerden oluşan bir sistem, pek de farklı değil Python Geliştirme Önerileri, bir araç sağlayacaktır Protokol değişiklikleri ve yükseltmeleri üzerinde kamuya açık işbirliği yapmak. Polkadot protokolünü ilk uygulamamız Parite Polkadot Platformu olarak bilinecek ve API ile birlikte tam bir protokol uygulamasını içerir bağlamalar. Diğer Eşlik blockchain uygulamalarında olduğu gibi, PPP, genel amaçlı bir blockchain teknoloji yığını olacak şekilde tasarlanmıştır; ne yalnızca genel bir ağ için ne de özel/konsorsiyum operasyonu. Gelişimi bu şekilde far dahil olmak üzere çeşitli taraflarca finanse edildi İngiliz hükümetinden bir hibe. Yine de bu belgede Polkadot şu şekilde açıklanmaktadır: halka açık bir ağın bağlamı. Genel bir ağda öngördüğümüz işlevsellik, gerekli olanın bir üst kümesidir. alternatif (örn. özel ve/veya konsorsiyum) ayarlar. Ayrıca bu bağlamda Polkadot'nin tam kapsamı daha net bir şekilde tanımlanıp tartışılacaktır. Bu şu anlama geliyor okuyucu belirli mekanizmaların olabileceğinin farkında olmalıdır. Polkadot ile doğrudan alakalı olmayan şekilde tanımlanmalı (örneğin diğer genel ağlarla birlikte çalışma) kamuya açık olmayan (“izin verilen”) durumlarda konuşlandırıldığında. 2.2. Önceki çalışma. Temel fikir birliğinin devlet geçişinden ayrılması gayri resmi olarak önerildi en az iki yıl boyunca özel olarak - Max Kaye, devrimin ilk günlerinde böyle bir stratejinin savunucusuydu. Ethereum. Zincir olarak bilinen daha karmaşık ölçeklenebilir bir çözüm tarihi Haziran 2014'e kadar uzanan ve ilk kez daha sonra yayınlanan lifler o yıl1, şeffaf bir zincirler arası yürütme mekanizması sağlayan tek bir aktarma zinciri ve birden fazla homojen zincirin gerekliliği ortaya çıktı. Uyumsuzluğun bedeli ödendi işlem gecikmesi yoluyla - işlem gerektiren işlemler sistemin farklı bölümlerinin koordinasyonu işlenmesi daha uzun sürer. Polkadot mimarisinin çoğunu bundan ve takip eden görüşmelerden alıyor Tasarımı ve hükümleri açısından büyük farklılıklar gösterse de çeşitli insanlar tarafından tercih edilir. Polkadot ile karşılaştırılabilecek bir sistem olmasa da aslında üretimde, bazı alakalı birkaç sistem önemli düzeyde az da olsa önerilmiştir. detay. Bu öneriler şunlar olabilir:sistemlere ayrılmış küresel olarak tutarlılık kavramını düşüren veya azaltan küresel bir hizmet sağlamaya çalışan devlet makinesi homojen parçalar aracılığıyla tutarlı tekli makine ve yalnızca heterojenliği hedefleyenler. 2.2.1. Küresel Devleti olmayan sistemler. Factom [21], uygun olmayan şekilde kanoniklik gösteren bir sistemdir geçerlilik, verilerin kronikleştirilmesine etkili bir şekilde izin verir. Küresel devletten kaçınma ve zorluklar nedeniyle bunun getirdiği ölçeklendirme ile ölçeklenebilir bir çözüm sayılabilir. Ancak daha önce de belirtildiği gibi set çözdüğü problemlerin sayısı kesinlikle ve önemli ölçüde daha azdır. Tangle [18] fikir birliği sistemlerine yeni bir yaklaşımdır. İşlemleri bloklar halinde düzenlemek ve durum değişikliklerine küresel olarak kanonik bir sıralama vermek için sıkı bir şekilde bağlantılı bir liste üzerinde fikir birliği oluşturmak yerine, yoğun şekilde yapılandırılmış bir sıralama fikrinden büyük ölçüde vazgeçilir ve bunun yerine daha önceki öğelerin kanonikleştirilmesine yardımcı olan daha sonraki öğelerle birlikte bağımlı işlemlerin yönlendirilmiş, döngüsel olmayan bir grafiğini zorlar açık referans yoluyla. Keyfi durum değişiklikleri için, bu bağımlılık grafiği hızla kontrol edilemez hale gelecektir, ancak çok daha basit olan UTXO model2 için bu şu şekilde olur: oldukça makul. Çünkü sistem sadece gevşek bir şekilde tutarlıdır ve işlemler genellikle birbirinden bağımsızdır. Öte yandan, büyük miktarda küresel paralellik oldukça doğal. UTXO modelini kullanmanın etkisi var Tangle'ı tamamen değer aktarımı sağlayan bir "para birimi" ile sınırlamak daha genel veya genişletilebilir bir şey yerine sistem. Üstelik katı küresel tutarlılık olmadan, mutlak bir kontrole ihtiyaç duyma eğiliminde olan diğer sistemlerle etkileşim Sistem durumu hakkında derece bilgisi pratik hale gelir. 1https://github.com/ethereum/wiki/wiki/Chain-Fibers-Redux 2harcanmamış işlem çıktısı, Bitcoin'nin kullandığı model, burada durum etkin olarak bir değerle ilişkili adres kümesidir; işlemler bu tür adresleri bir araya getirir ve bunları toplamı eşdeğer olan yeni bir adres kümesi halinde yeniden düzenler
POLKADOT: HETEROJEN ÇOK ZİNCİRLİ BİR ÇERÇEVE VİZYONU TASLAK 1 3 2.2.2. Heterojen Zincir Sistemleri. Yan zincirler [3] bir ana Bitcoin zinciri arasında güvenilmez etkileşime izin verecek Bitcoin protokolüne önerilen ekleme ve ek yan zincirler. Herhangi bir hüküm bulunmamaktadır Yan zincirler arasındaki 'zengin' etkileşimin derecesi: etkileşim, yan zincirlerin birbirine bağlanmasına izin vermekle sınırlı olacaktır. yerel düzeyde birbirlerinin varlıklarının koruyucuları jargon—iki yönlü sabit 3. Nihai vizyon, Bitcoin para biriminin sağlanabileceği bir çerçeveye yöneliktir. sabitleme yoluyla ek, eğer çevresel ise, işlevsellik daha egzotik durum geçişiyle diğer bazı zincirlere Bitcoin protokolünün izin verdiği sistemler. Bu anlamda, Yan zincirler ölçeklenebilirlikten ziyade genişletilebilirliğe yöneliktir. Aslında yan zincirlerin geçerliliğine ilişkin temelde hiçbir hüküm yoktur; Bir zincirden tokens (ör. Bitcoin) bir yan zincir adına tutulanlar yalnızca Yan zincirin madencileri kanonikleştirmeye teşvik etme yeteneği geçerli geçişler Bitcoin ağının güvenliği başkaları adına çalışmaya kolaylıkla geçiş yapılamaz blockchains. Ayrıca Bitcoin sağlanmasına yönelik bir protokol Madenciler madeni birleştiriyor (yani kanonikleştirme güçlerini yan zincirinkine kopyalıyorlar) ve daha da önemlisi, yan zincirin geçişlerinin yan zincirin dışında olduğunu doğruluyorlar bu teklifin kapsamı. Cosmos [10] önerilen bir çok zincirli sistemdir. Yan zincirlerle aynı damar, Nakamoto PoW'u değiştiriyor Jae Kwon'un Tendermint algoritması için fikir birliği yöntemi. Esasen birden fazla zinciri tanımlar (birbirinde faaliyet gösteren) bölgeleri) her biri ayrı ayrı Tendermint örneklerini ve bir ağ üzerinden güven gerektirmeyen iletişim aracını kullanıyor ana göbek zinciri. Bu zincirler arası iletişim, keyfi bilgilerden ziyade dijital varlıkların (“özellikle tokens hakkında”) aktarımıyla sınırlıdır, ancak bu tür zincirler arası iletişimin veriler için bir dönüş yolu vardır, örneğin Göndericiye aktarımın durumu hakkında rapor vermek. Bölgelere ayrılmış zincirler için doğrulayıcı kümeler ve özellikle onları teşvik etmenin araçları yan zincirler gibi bırakıldı çözülmemiş bir sorun olarak Genel varsayım şudur her bölgeli zincirin kendisi token değerinde bir değere sahip olacak ve bu değerin enflasyonu validators'yi ödemek için kullanılacak. Hala erken aşamalarda Tasarım konusunda şu anda teklif, ölçeklenebilir hedefe ulaşmanın ekonomik araçlarına ilişkin kapsamlı ayrıntılardan yoksundur. Küresel geçerliliğin kesinliği. Ancak bölgeler ile merkez arasında gereken gevşek tutarlılık, bölgelere ayrılmış parametreler üzerinde ilave esneklik için daha güçlü bir sistem uygulayan bir sistemle karşılaştırıldığında zincirler tutarlılık. 2.2.3. Casper. Casper [6] ve Polkadot arasında henüz kapsamlı bir inceleme veya yan yana karşılaştırma yok oldukça kapsamlı bir inceleme yapılabilir ancak ikisinin (ve buna bağlı olarak yanlış) karakterizasyonu. Casper, PoS konsensüs algoritmasının nasıl yeniden tasarlandığını gösteriyor katılımcıların hangi çatala dair bahis oynadıkları temeline dayanabilir. sonuçta kanonik hale gelecektir. Ağa karşı dayanıklı olmasını sağlamak için büyük önem verildi çatallar, uzatıldığında bile ve temel Ethereum modelinin üzerinde bir miktar ek ölçeklenebilirliğe sahiptir. olarak Casper bugüne kadar önemli ölçüde daha fazla olma eğilimindeydi. Polkadot ve atalarından daha karmaşık bir protokol ve temel blockchain biçiminden önemli sapma. o Casper'ın gelecekte nasıl yineleneceği henüz bilinmiyor ve nihayet konuşlandırıldığında neye benzeyeceği. Casper ve Polkadot her ikisi de ilginç yeni protokolleri ve bir anlamda Ethereum, aralarında önemli farklar var Nihai hedefler ve dağıtım yolları. Casper bir Ethereum Orijinal olarak tasarlanmış temel merkezli proje istemeden protokolde PoS değişikliği yapmak temelde ölçeklenebilir bir blockchain oluşturun. Önemli olan, daha kapsamlı bir şey olmaktan ziyade bir hard fork olacak şekilde tasarlandı ve bu nedenle tüm Ethereum istemcileri ve kullanıcıları Yükseltilmesi veya belirsiz bir benimseme çatalında kalması gerekiyor. Bu nedenle, sıkı kuralların olduğu merkezi olmayan bir projenin doğasında olduğu gibi dağıtım önemli ölçüde daha zor hale gelir. koordinasyon gereklidir. Polkadot birkaç açıdan farklılık gösterir; her şeyden önce, Polkadot tamamen genişletilebilir ve ölçeklenebilir olacak şekilde tasarlanmıştır blockchain geliştirme, dağıtım ve etkileşim testi yatak. Büyük ölçüde geleceğe yönelik bir emniyet kemeri olacak şekilde inşa edilmiştir. yeni blockchain asimile etaşırı karmaşık merkezi olmayan koordinasyon olmadan kullanılabilir hale gelen teknoloji veya sert çatallar. Halihazırda bunun gibi çeşitli kullanım senaryolarını öngörüyoruz. şifrelenmiş konsorsiyum zincirleri ve yüksek frekanslı zincirler olarak yapılması gerçekçi olmayan çok düşük blok süreleriyle Ethereum'nin şu anda öngörülen gelecekteki herhangi bir sürümü. Son olarak, onunla Ethereum arasındaki bağlantı son derece yüksektir gevşek; Ethereum tarafından herhangi bir işlem yapılmasına gerek yoktur. ikisi arasında güvenilir işlem iletimini etkinleştir ağlar. Kısacası Casper/Ethereum 2.0 ve Polkadot Nihai hedeflerine inandığımız bazı geçici benzerlikleri paylaşıyoruz önemli ölçüde farklıdır ve rekabet etmek yerine, iki protokolün sonuçta bir arada var olması muhtemeldir öngörülebilir gelecek için karşılıklı yarar sağlayan ilişkiler.
Introduction
Les blockchains se sont révélées très prometteuses dans plusieurs domaines, notamment celui de « l’Internet des objets ». (IoT), finance, gouvernance, gestion des identités, décentralisation du Web et suivi des actifs. Cependant, malgré le promesse technologique et grand discours, nous n'avons pas encore vu déploiement significatif dans le monde réel de la technologie actuelle. Nous pensons que cela est dû à cinq échecs majeurs du système actuel. piles technologiques : Évolutivité : combien de ressources sont dépensées à l'échelle mondiale sur le traitement, la bande passante et le stockage pour que le système puisse traiter une seule transaction et combien les transactions peuvent être raisonnablement traitées sous conditions de pointe ? Isolatabilité : les besoins divergents de plusieurs les parties et les demandes soient-elles traitées à un degré quasi optimal dans le même cadre ? Développabilité : dans quelle mesure les outils fonctionnent-ils ? Faire les API répondent-elles aux besoins des développeurs ? Des supports pédagogiques sont-ils disponibles ? Les bonnes intégrations sont-elles là ? Gouvernance : le réseau peut-il rester flexible évoluer et s'adapter au fil du temps ? Les décisions peuvent-elles être fait avec suffisamment d’inclusivité, de légitimité et transparence pour assurer un leadership efficace d’un système décentralisé ? Applicabilité : la technologie répond-elle réellement à elle seule à un besoin pressant ? Un autre « middleware » est-il nécessaire pour combler le fossé entre applications réelles ? Dans le présent travail, nous visons à aborder les deux premiers enjeux : évolutivité et isolabilité. Cela dit, nous croyons le cadre Polkadot peut apporter des améliorations significatives dans chacune de ces classes de problèmes. Des implémentations blockchain modernes et efficaces telles que le client Parité Ethereum [17] peut traiter au-delà de 3 000 transactions par seconde lors de l'exécution sur du matériel grand public performant. Cependant, le monde réel actuel Les réseaux blockchain sont pratiquement limités à une trentaine de transactions par seconde. Cette limitation provient principalement du fait que les mécanismes actuels de consensus synchrone nécessitent de larges marges de sécurité temporelles sur le délai de traitement prévu, qui est exacerbé par lePOLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 2 désir de prendre en charge des mises en œuvre plus lentes. Ceci est dû à l’architecture consensuelle sous-jacente : le mécanisme de transition étatique, ou les moyens par lesquels les parties se rassemblent et exécuter des transactions, a sa logique fondamentalement liée dans le mécanisme de « canonisation » du consensus, ou moyen par lequel les parties conviennent d'un certain nombre de des histoires possibles et valides. Cela s'applique également aux systèmes proof-of-work (PoW) tels que Bitcoin [15] et Ethereum [5,23] et aux systèmes de preuve de participation (PoS) tels que NXT [8] et Bitshares [12] : tous souffrent finalement du même handicap. C'est un simple stratégie qui a contribué au succès de blockchain. Cependant, en couplant étroitement ces deux mécanismes en une seule unité du protocole, nous regroupons également plusieurs des acteurs et des applications présentant différents profils de risque, différentes exigences d’évolutivité et différents besoins en matière de confidentialité. Une taille unique ne convient pas à tout le monde. Trop souvent, il arrive que dans un désir d'attirer un large public, un réseau adopte un certain degré de conservatisme qui se traduit par un plus petit dénominateur commun servir de manière optimale quelques-uns et conduire finalement à un échec dans la capacité à innover, à performer et à s'adapter, parfois dramatiquement. Certains systèmes tels que par ex. Factom [21] abandonne complètement le mécanisme de transition d'état. Cependant, une grande partie des l'utilité que nous désirons nécessite la capacité de passer d'un état à l'autre selon une machine à états partagée. Le laisser tomber résout un problème alternatif ; cela ne fournit pas d'alternative solution. Il semble donc clair qu'une direction raisonnable à explorer comme voie vers un calcul décentralisé évolutif plateforme est de dissocier l’architecture de consensus de le mécanisme de transition d’État. Et, sans surprise, c’est la stratégie adoptée par Polkadot comme solution d’évolutivité. 2.1. Protocole, mise en œuvre et réseau. Comme Bitcoin et Ethereum, Polkadot font à la fois référence à un protocole réseau et au protocole principal (jusqu'ici présupposé) réseau public qui exécute ce protocole. Polkadot se veut un projet libre et ouvert, la spécification du protocole étant sous licence Creative Commons et le le code étant placé sous une licence FLOSS. Le projet est développé de manière ouverte et accepte les contributions partout où ils sont utiles. Un système de RFC, un peu comme les propositions d'amélioration de Python, permettront de collaborer publiquement sur les modifications et les mises à niveau du protocole. Notre mise en œuvre initiale du protocole Polkadot sera connue sous le nom de Plateforme Parity Polkadot et inclure une implémentation complète du protocole avec l'API liaisons. Comme les autres implémentations de Parity blockchain, PPP est conçu pour être une pile technologique blockchain à usage général, ni uniquement pour un réseau public ni pour opération privée/consortium. Son développement donc jusqu'à présent, a été financé par plusieurs parties, notamment à travers une subvention du gouvernement britannique. Cet article décrit néanmoins Polkadot sous le contexte d’un réseau public. La fonctionnalité que nous envisageons dans un réseau public est un surensemble de celle requise dans contextes alternatifs (par exemple privés et/ou consortium). De plus, dans ce contexte, la portée complète de Polkadot peut être décrit et discuté plus clairement. Cela veut dire le lecteur doit être conscient que certains mécanismes peuvent être décrits (par exemple l'interfonctionnement avec d'autres réseaux publics) qui ne concernent pas directement Polkadot lorsqu'ils sont déployés dans des situations non publiques (« autorisées »). 2.2. Travaux antérieurs. Il a été proposé de manière informelle de dissocier le consensus sous-jacent de la transition étatique. en privé pendant au moins deux ans – Max Kaye était partisan d’une telle stratégie dès les premiers jours de Ethereum. Une solution évolutive plus complexe connue sous le nom de Chain fibres, datant de juin 2014 et publié pour la première fois plus tard cette année-là1, a plaidé en faveur d’une chaîne de relais unique et de plusieurs chaînes homogènes fournissant un mécanisme d’exécution inter-chaînes transparent. La décohérence a été payée via la latence des transactions (transactions nécessitant le la coordination de parties disparates du système serait prendre plus de temps à traiter. Polkadot tire une grande partie de son architecture de cela et des conversations de suivi avec diverses personnes, bien qu'il diffère grandement dans une grande partie de sa conception et de ses dispositions. Bien qu'il n'existe aucun système comparable à Polkadot actuellement en production, plusieurs systèmes d'une certaine pertinence ont été proposés, bien que peu nombreux et à un niveau substantiel de détail. Ces propositions peuvent êtredécomposé en systèmes qui abandonnent ou réduisent la notion de cohérence globale machine à états, celles qui tentent de fournir un système global machine singleton cohérente à travers des fragments homogènes et celles qui ciblent uniquement l’hétérogénéité. 2.2.1. Systèmes sans état global. Factom [21] est un système qui démontre la canonicité sans les validité, permettant effectivement la chronique des données. En raison de la nécessité d'éviter l'état mondial et les difficultés avec la mise à l'échelle que cela apporte, cela peut être considéré comme une solution évolutive. Cependant, comme mentionné précédemment, l'ensemble Le nombre de problèmes qu’il résout est strictement et sensiblement moindre. Tangle [18] est une nouvelle approche des systèmes de consensus. Plutôt que d'organiser les transactions en blocs et de former un consensus sur une liste strictement liée pour donner un ordre globalement canonique des changements d'état, il abandonne largement l'idée d'un ordre fortement structuré et préfère plutôt pousse à un graphique acyclique dirigé des transactions dépendantes avec des éléments ultérieurs aidant à canoniser les éléments antérieurs grâce à des références explicites. Pour les changements d'état arbitraires, ce graphe de dépendance deviendrait vite insoluble, cependant, pour le modèle UTXO2 beaucoup plus simple, cela devient tout à fait raisonnable. Parce que le système n’est que vaguement cohérent et que les transactions sont généralement indépendantes les unes des autres. d'autre part, une grande partie du parallélisme mondial devient tout à fait naturel. L'utilisation du modèle UTXO a l'effet de limiter Tangle à une « monnaie » purement de transfert de valeur système plutôt que quelque chose de plus général ou extensible. De plus, sans la stricte cohérence globale, l'interaction avec d'autres systèmes, qui ont tendance à nécessiter une cohérence absolue, une connaissance approfondie de l’état du système devient peu pratique. 1https://github.com/ethereum/wiki/wiki/Chain-Fibers-Redux 2sortie de transaction non dépensée, le modèle utilisé par Bitcoin dans lequel l'état est en fait l'ensemble d'adresses associé à une certaine valeur ; les transactions rassemblent ces adresses et les reforment en un nouvel ensemble d'adresses dont la somme totale est équivalente
POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 3 2.2.2. Systèmes de chaînes hétérogènes. Les chaînes latérales [3] sont un ajout proposé au protocole Bitcoin qui permettrait une interaction sans confiance entre la chaîne principale Bitcoin et des chaînes latérales supplémentaires. Aucune disposition n'est prévue pour degré d’interaction « riche » entre les chaînes latérales : l’interaction se limiterait à permettre aux chaînes latérales d’être gardiens des actifs de chacun, effectuant – au niveau local jargon - une ancrage à double sens 3. La vision finale est celle d'un cadre dans lequel la monnaie Bitcoin pourrait être dotée de fonctionnalité supplémentaire, bien que périphérique, grâce à son rattachement sur d'autres chaînes avec une transition d'état plus exotique systèmes que le protocole Bitcoin ne le permet. En ce sens, les chaînes latérales abordent l’extensibilité plutôt que l’évolutivité. En effet, il n’existe fondamentalement aucune disposition relative à la validité des side-chains ; tokens d'une chaîne (par exemple Bitcoin) détenus au nom d'une side-chain sont garantis uniquement par le la capacité de la chaîne latérale à inciter les mineurs à canoniser transitions valides. La sécurité du réseau Bitcoin ne peut pas facilement être transféré pour travailler pour le compte d’autres blockchains. De plus, un protocole pour assurer Bitcoin les mineurs fusionnent le mien (c'est-à-dire dupliquent leur pouvoir de canonisation sur celui de la side-chain) et, plus important encore, valident que les transitions de la side-chain sont en dehors du portée de cette proposition. Cosmos [10] est un système multi-chaîne proposé dans le même veine que les side-chains, en échangeant le Nakamoto PoW méthode de consensus pour l’algorithme Tendermint de Jae Kwon. Essentiellement, il décrit plusieurs chaînes (opérant dans zones) chacune utilisant des instances individuelles de Tendermint, ainsi qu'un moyen de communication sans confiance via un chaîne de moyeu principale. Cette communication inter-chaînes est limitée au transfert d'actifs numériques (« en particulier sur tokens ») plutôt qu'à des informations arbitraires, mais une telle communication inter-chaînes a un chemin de retour pour les données, par ex. informer l'expéditeur de l'état du transfert. Ensembles de validateurs pour les chaînes zonées, et en particulier les moyens de les inciter sont, comme les chaînes latérales, laissés comme un problème non résolu. L'hypothèse générale est que chaque chaîne zonée détiendra elle-même un token de valeur dont l'inflation est utilisée pour payer les validator. Encore au début de conception, à l'heure actuelle, la proposition manque de détails complets sur les moyens économiques permettant d'atteindre l'évolutivité certitude sur la validité globale. Cependant, la faible cohérence requise entre les zones et le hub permettra pour une flexibilité supplémentaire sur les paramètres du zonage chaînes par rapport à celle d’un système imposant des cohérence. 2.2.3. Casper. Pour l'instant, aucun examen complet ni comparaison côte à côte entre Casper [6] et Polkadot ont été faites, même si l'on peut faire une analyse assez radicale (et par conséquent inexacte) caractérisation des deux. Casper est une réinvention de la façon dont un algorithme de consensus PoS pourrait être basé sur des participants pariant sur quelle fourchette deviendrait finalement canonique. Une attention considérable a été accordée à la garantie qu'il soit robuste pour le réseau forks, même lorsqu'ils sont prolongés, et ont un certain degré d'évolutivité supplémentaire en plus du modèle de base Ethereum. Comme Ainsi, Casper à ce jour a eu tendance à être beaucoup plus protocole complexe que Polkadot et ses ancêtres, et un écart substantiel par rapport au format de base blockchain. Il on ne sait toujours pas comment Casper va itérer à l'avenir et à quoi il ressemblera s’il est finalement déployé. Alors que Casper et Polkadot représentent tous deux de nouveaux protocoles intéressants et, dans un certain sens, des augmentations de Ethereum, il existe des différences substantielles entre leurs objectifs ultimes et voies de déploiement. Casper est un Ethereum Projet centré sur la fondation initialement conçu être une modification PoS du protocole sans volonté de créer un blockchain fondamentalement évolutif. Fondamentalement, c'est conçu pour être un hard-fork, plutôt que quelque chose de plus expansif et donc tous les clients et utilisateurs Ethereum seraient nécessaire pour mettre à niveau ou rester sur un fork d’adoption incertaine. En tant que tel, le déploiement est rendu beaucoup plus difficile, ce qui est inhérent à un projet décentralisé où des une coordination est nécessaire. Polkadot diffère de plusieurs manières ; avant tout, Polkadot est conçu pour être un système entièrement extensible et évolutif. blockchain test de développement, de déploiement et d'interaction lit. Il est conçu pour être un harnais largement évolutif, capable de assimiler le nouveau blockchainla technologie dès qu’elle devient disponible sans coordination décentralisée trop compliquée ou des fourches dures. Nous envisageons déjà plusieurs cas d'utilisation tels comme chaînes de consortium cryptées et chaînes à haute fréquence avec des temps de blocage très faibles, irréalistes à réaliser toute version future de Ethereum actuellement envisagée. Enfin, le couplage entre celui-ci et Ethereum est extrêmement lâche; aucune action de la part de Ethereum n'est nécessaire pour activer le transfert de transactions sans confiance entre les deux réseaux. En bref, alors que Casper/Ethereum 2.0 et Polkadot partagent quelques similitudes éphémères, nous pensons que leur objectif final est sensiblement différent et que plutôt que de rivaliser, les deux protocoles finiront probablement par coexister dans le cadre d’un relation mutuellement bénéfique dans un avenir prévisible.
Özet
Polkadot ölçeklenebilir, heterojen bir çoklu zincirdir. Bu önceki blockchain uygulamalarından farklı olduğu anlamına gelir değişen tek bir zincir sağlamaya odaklanmış olan potansiyel uygulamalara göre genellik dereceleri, Polkadot kendisi hiçbir şekilde doğal bir uygulama işlevselliği sağlamak üzere tasarlanmıştır. Aksine, Polkadot ana kayayı sağlar Çok sayıda doğrulanabilir bilginin yer aldığı “aktarma zinciri”, küresel olarak tutarlı dinamik veri yapıları barındırılabilir yan yana. Bu veri yapılarına “paralelleştirilmiş” diyoruz özel bir ihtiyaç olmasa da zincirler veya parachainler doğası gereği blockchain olmaları. Başka bir deyişle, Polkadot, bir dizi bağımsız zincire (ör. Ethereum, Ethereum Classic, Namecoin ve Bitcoin) çok önemli iki nokta hariç: • Havuzlanmış güvenlik; • güven gerektirmeyen zincirler arası işlem yapılabilirlik. Bu noktalar, Polkadot öğesinin "ölçeklenebilir" olduğunu düşünmemizin nedenidir. Prensip olarak, Polkadot üzerinde konuşlandırılacak bir sorun büyük ölçüde paralelleştirilebilir (ölçeği genişletilebilir) çok sayıda parachain. Çünkü her birinin tüm yönleri parachain Polkadot ağının farklı bir bölümü tarafından paralel olarak yürütülebilir, sistemin bazı yetenekleri vardır ölçeklendirmek için. Polkadot oldukça basit bir parça sağlar 3aslında bir zincirdeki tokens'yi yok ederek başka bir zincirde tokens'yi oluşturmadan oluşan tek yönlü sabitlemenin aksine Orijinal tokens'yi kurtarmak için bunun tersini yapacak mekanizmaPOLKADOT: HETEROJEN ÇOK ZİNCİRLİ BİR ÇERÇEVE VİZYONU TASLAK 1 4 karmaşıklığın çoğunu ara yazılım düzeyinde ele almayı bırakan altyapı. Bu, kalkınma riskini azaltmayı amaçlayan bilinçli bir karardır. Kısa sürede geliştirilecek gerekli yazılımlar ve güvenliği konusunda iyi düzeyde bir güven ile sağlamlık. 3.1. Polkadot Felsefesi. Polkadot gerekir üzerine oturulacak mutlak kaya gibi sağlam bir temel sağlar. bir sonraki mutabakat sistemi dalgasını oluşturun üretim kapasitesine sahip olgun tasarımlardan kaynaklanan risk spektrumu yeni oluşan fikirlere. Polkadot, güvenlik, izolasyon ve iletişim konusunda güçlü garantiler sunarak aşağıdakilere izin verebilir: bir dizi özellik arasından seçim yapmak için parachainler. Aslında, çeşitli deneysel blockchain'lerin mantıklı kabul edilebilecek özellikleri zorladığını öngörüyoruz bugün. muhafazakar görüyoruz benzer yüksek değerli zincirler Bitcoin veya Z-cash [20] daha düşük değerle birlikte mevcut “Tema zincirleri” (böyle pazarlama, çok eğlenceli) ve test ağları sıfır veya sıfıra yakın ücretlerle. Tamamen şifrelenmiş görüyoruz, "karanlık", birlikte çalışan konsorsiyum zincirleri - ve hatta son derece işlevsel ve açık zincirlere hizmet sağlamak Ethereum gibi olanlar gibi. Deneysel yeni görüyoruz Sübjektif zaman yüklü wasm gibi VM tabanlı zincirler zincir, zorlu bilgi işlem sorunlarını daha olgun Ethereum benzeri bir zincirden dış kaynak olarak sağlama aracı olarak kullanılıyor veya daha kısıtlı Bitcoin benzeri bir zincir. Zincir yükseltmelerini yönetmek için Polkadot doğası gereği muhtemelen dayalı bir tür yönetim yapısını desteklemek mevcut istikrarlı siyasi sistemlere ilişkindir ve Sarı Kağıt Konseyi'ne benzer iki meclisli bir yapıya sahiptir [24]. olarak nihai otorite, temel stake edilebilir token sahipleri "referandum" kontrolüne sahip olacaktır. Kullanıcıların düşüncelerini yansıtmak için Geliştirme ihtiyacı ama geliştiricilerin meşruiyet ihtiyacı, makul bir yönlendirmenin oluşmasını bekliyoruz bir “kullanıcı” komitesinin iki odası (aşağıdakilerden oluşur) validators teminatlı) ve bir “teknik” komite oluşturuldu büyük müşteri geliştiricileri ve ekosistem oyuncularından oluşan bir ekip.
token sahiplerinden oluşan bir grup nihai meşruiyeti koruyacak ve bu yapıyı geliştirmek, yeniden parametrelendirmek, değiştirmek veya feshetmek için bir süper çoğunluk oluşturacaktır; Nihai ihtiyaçtan şüphe etmeyin: Twain'in sözleriyle “Hükümetler ve bebek bezleri sık sık değiştirilmeli ve aynı sebep”. Yeniden parametrelendirmenin daha geniş bir konsensüs mekanizması içinde düzenlenmesi tipik olarak önemsiz olsa da, değiştirme ve genişletme gibi daha niteliksel değişiklikler büyük ihtimalle otomatik olmayan “yumuşak kararnameler” (ör. Bir blok numarasının kanonikleştirilmesi yoluyla ve hash resmi olarak yeni protokolü belirten bir belge) veya bir temel konsensüs mekanizmasının bulunmasını gerektirir. kendisinin herhangi bir yönünü tanımlayacak kadar zengin bir dil bunun değişmesi gerekebilir. İkincisi nihai bir amaçtır, ancak birincisinin seçilme olasılığı daha yüksektir Makul bir geliştirme zaman çizelgesini kolaylaştırmak. Polkadot'nin temel ilkeleri ve içinde yer aldığı kurallar Tüm tasarım kararlarını değerlendiriyoruz: Minimal: Polkadot mümkün olduğunca az işlevselliğe sahip olmalıdır. Basit: Hiçbir ek karmaşıklık mevcut olmamalıdır temel protokolde makul olarak olabileceğinden ara yazılıma yüklenmiş, aracılığıyla yerleştirildi parachain veya daha sonraki bir optimizasyonda tanıtıldı. Genel: gereksiz gereksinim yok, kısıtlama veya parachainlere sınırlama getirilmeli; Polkadot, fikir birliği sistemi geliştirme için optimize edilebilecek bir test ortamı olmalıdır. Uzantıların yer aldığı modeli mümkün olduğunca soyut hale getirmek. Sağlam: Polkadot temel olarak bir sağlamalıdır kararlı taban katmanı. Ekonomik sağlamlığın yanı sıra bu aynı zamanda merkezi olmayan yönetim anlamına da gelir. yüksek ödüllü saldırıların vektörleri.
Résumé
Polkadot est une multi-chaîne hétérogène évolutive. Ceci signifie que contrairement aux implémentations précédentes de blockchain qui se sont concentrés sur la fourniture d'une chaîne unique de différents degrés de généralité sur les applications potentielles, Polkadot lui-même est conçu pour fournir aucune fonctionnalité d’application inhérente. Au lieu de cela, Polkadot fournit le fondement « chaîne relais » sur laquelle un grand nombre de données validables, des structures de données dynamiques globalement cohérentes peuvent être hébergées côte à côte. Nous appelons ces structures de données « parallélisées » chaînes ou parachaines, bien qu'il n'y ait pas de besoin spécifique de ils doivent être de nature blockchain. En d'autres termes, Polkadot peut être considéré comme équivalent à un ensemble de chaînes indépendantes (par exemple l'ensemble contenant Ethereum, Ethereum Classic, Namecoin et Bitcoin) sauf deux points très importants : • Sécurité mutualisée ; • Transactabilité inter-chaînes sans confiance. Ces points sont la raison pour laquelle nous considérons Polkadot comme étant « évolutif ». En principe, un problème à déployer sur Polkadot peut être considérablement parallélisé (évolué) sur un grand nombre de parachaines. Puisque tous les aspects de chacun la parachain peut être conduite en parallèle par un segment différent du réseau Polkadot, le système a une certaine capacité à l'échelle. Polkadot fournit un élément plutôt simple de 3par opposition à un ancrage à sens unique qui consiste essentiellement à détruire les token dans une chaîne pour créer des token dans une autre sans que mécanisme pour faire l'inverse afin de récupérer les token d'originePOLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 4 infrastructure laissant une grande partie de la complexité à résoudre au niveau du middleware. Il s'agit d'une décision consciente destinée à réduire les risques de développement, permettant au logiciel requis à développer dans un court laps de temps et avec un bon niveau de confiance quant à sa sécurité et robustesse. 3.1. La philosophie de Polkadot. Polkadot devrait fournir une base solide comme le roc sur laquelle construire la prochaine vague de systèmes de consensus, tout au long le spectre des risques des conceptions matures capables de production aux idées naissantes. En offrant de solides garanties en matière de sécurité, d'isolement et de communication, Polkadot peut permettre parachains pour choisir eux-mêmes parmi une gamme de propriétés. En effet, nous prévoyons diverses blockchain expérimentales poussant les propriétés de ce qui pourrait être considéré comme raisonnable. aujourd'hui. Nous voyons des conservateurs, chaînes à haute valeur similaires à Bitcoin ou Z-cash [20] coexistant avec des valeurs de moindre valeur « chaînes thématiques » (tel le marketing, si amusant) et réseaux de test avec des frais nuls ou quasi nuls. Nous voyons entièrement crypté, « sombres », des chaînes de consortium opérant aux côtés – et même fournir des services à des chaînes hautement fonctionnelles et ouvertes comme ceux comme Ethereum. Nous voyons de nouvelles expériences Chaînes basées sur des machines virtuelles telles qu'un wasm subjectif chargé en temps chaîne utilisée comme moyen d'externalisation de problèmes de calcul difficiles à partir d'une chaîne de type Ethereum plus mature ou une chaîne de type Bitcoin plus restreinte. Pour gérer les mises à niveau de la chaîne, Polkadot sera intrinsèquement soutenir une sorte de structure de gouvernance, probablement basée sur les systèmes politiques stables existants et ayant un aspect bicaméral similaire au Conseil du Livre Jaune [24]. Comme l'autorité ultime, les détenteurs sous-jacents de token jalonnables auraient un contrôle « référendaire ». Pour refléter les attentes des utilisateurs besoin de développement mais le besoin de légitimité des développeurs, nous nous attendons à ce qu'une direction raisonnable soit de se former les deux chambres d’un comité « usagers » (composé de cautionnés validators) et un comité « technique » composé de grands clients développeurs et acteurs de l’écosystème. Le un corps de détenteurs de token conserverait la légitimité ultime et formerait une majorité qualifiée pour augmenter, reparamétrer, remplacer ou dissoudre cette structure, ce que nous ne doutez pas de la nécessité éventuelle de : selon les mots de Twain « Les gouvernements et les couches doivent être changés souvent, et pour la même raison ». Alors que le reparamétrage est généralement simple à organiser dans le cadre d'un mécanisme de consensus plus large, des changements plus qualitatifs tels que le remplacement et l'augmentation seraient nécessaires. il faudra probablement soit des « décrets souples » non automatisés (par ex. par la canonisation d'un numéro de bloc et le hash d'un document précisant formellement le nouveau protocole) ou nécessiter que le mécanisme de consensus principal contienne un langage suffisamment riche pour décrire n’importe quel aspect de lui-même qui devra peut-être changer. Ce dernier est un objectif éventuel, cependant, les premiers sont plus susceptibles d'être choisis afin de faciliter un calendrier de développement raisonnable. Les principes fondamentaux de Polkadot et les règles dans lesquelles nous évaluons que toutes les décisions de conception sont : Minimal : Polkadot doit avoir le moins de fonctionnalités possible. Simple : aucune complexité supplémentaire ne devrait être présente dans le protocole de base que ce qui peut raisonnablement être déchargé dans le middleware, placé à travers un parachain ou introduit dans une optimisation ultérieure. Général : pas d'exigence, de contrainte inutile ou une limitation devrait être imposée aux parachaines ; Polkadot devrait être un banc d'essai pour le développement d'un système de consensus qui peut être optimisé grâce à rendre le modèle dans lequel les extensions s'intègrent aussi abstrait que possible. Robuste : Polkadot devrait fournir fondamentalement couche de base stable. Outre la solidité économique, cela signifie également décentraliser pour minimiser les vecteurs d’attaques à haute récompense.
Polkadot katılımı
Polkadot bakımında dört temel rol vardır ağ: derleyici, balıkçı, aday gösteren ve validator. içinde Polkadot'nin olası bir uygulaması, ikinci rol aslında iki role ayrılabilir: temel validator ve kullanılabilirlik garantörü; bu bölümde tartışılıyor 6.5.3. Harmanlayıcı Balıkçı Doğrulayıcılar (bu grup) Doğrulayıcılar (diğer gruplar) onaylıyor olur monitörler raporlar kötü davranış blok sağlar adaylar için Aday gösteren Şekil 1. Polkadot'nin dört rolü. 4.1. Doğrulayıcılar. validator en yüksek ücrettir ve Polkadot ağında yeni blokların kapatılmasına yardımcı olur. validator'nın rolü yeterince yüksek bir bağa bağlıdır diğer bağlı tarafların ödeme yapmasına izin vermemize rağmen yatırılıyor onlar adına hareket etmek üzere bir veya daha fazla validator aday gösterin ve validator tahvilinin bu tür bir kısmının mutlaka validator'ya ait olması gerekmeyebilir, bunun yerine bu kişilere ait olabilir aday gösterenler. Bir validator, yüksek kullanılabilirlik ve bant genişliğine sahip bir aktarma zinciri istemci uygulamasını çalıştırmalıdır. Her blokta düğüm onaylama rolünü kabul etmeye hazır olmalıdır aday gösterilen bir parachain üzerinde yeni bir blok. Bu süreç adayın alınmasını, doğrulanmasını ve yeniden yayınlanmasını içerir bloklar. Adaylık deterministiktir ancak çok önceden tahmin edilmesi neredeyse imkansızdır. validator yapamadığı için tam senkronizasyonu sürdürmesi makul olarak beklenebilir tüm parachain'lerin veri tabanına göre, validator'nin önerilen yeni bir zincir tasarlama görevini aday göstermesi bekleniyor Parachain bloğunu harmanlayıcı olarak bilinen üçüncü bir tarafa aktarır. Tüm yeni parachain blokları atanmış validator alt grupları tarafından uygun şekilde onaylandıktan sonra, validators daha sonra aktarma zinciri bloğunu kendisinin onaylaması gerekir. Bu şunları içerir: işlem kuyruklarının durumunun güncellenmesi (esasen verileri bir parachain'in çıktı kuyruğundan diğerine taşımak parachain'in giriş kuyruğu), işlemleri işleme Onaylanmış aktarma zinciri işlem seti ve onaylanması son parachain değişiklikleri de dahil olmak üzere son blok.POLKADOT: HETEROJEN ÇOK ZİNCİRLİ BİR ÇERÇEVE VİZYONU TASLAK 1 5 validator fikir birliği bulma görevini yerine getirmiyor seçtiğimiz fikir birliği algoritmasının kurallarına göre cezalandırılır. Başlangıçtaki kasıtsız arızalar için bu, validator ödülünün durdurulması. Tekrarlanan arızalar güvenlik bağlarının azalmasına (yanma yoluyla) neden olur. Çift imzalama gibi muhtemelen kötü niyetli eylemler veya Geçersiz bir blok sağlamak için komplo kurmak, bağın tamamı (kısmen yanmış ancak çoğunlukla verilmiştir) muhbirlere ve dürüst aktörlere). Bir bakıma validator'ler madencilik havuzlarına benziyor mevcut PoW'un blockchains'si. 4.2. Aday gösterenler. Aday gösteren, hisse sahibi bir partidir validator'nin teminat tahviline katkıda bulunan kişi. onlar Risk sermayesi yerleştirmek dışında ek bir rolü yoktur ve belirli bir validator (veya bunların bakımında sorumlu bir şekilde hareket etmek ağ. Orantılı bir artış veya azalma alırlar tahvilin büyümesine göre mevduatlarında katkıda bulunurlar. Sıralayıcılarla birlikte aday gösterenler de bazı ülkelerde günümüz PoW ağlarındaki madencilere benzer bir his veriyor. 4.3. Harmanlayıcılar. İşlem harmanlayıcıları (kısaca harmanlayıcılar) validators'nin geçerli bilgiler üretmesine yardımcı olan taraflar mı? Parachain blokları. Belirli bir parachain için “tam düğüm” sağlarlar; gerekli olan her şeyi muhafaza ettikleri anlamına gelir Yeni bloklar yazabilmek ve yürütebilmek için gerekli bilgiler işlemler, madencilerin mevcut PoW blockchains üzerinde yaptıklarıyla hemen hemen aynı şekilde yapılır. Normal şartlarda onlar mühürsüz bir kayıt oluşturmak için işlemleri toplayacak ve yürütecek sıfır bilgiyle birlikte engelleyin ve sağlayın şu anda sorumlu olan bir veya daha fazla validators'ye kanıt bir parachain bloğu öneriyor. Düzenleyenler, aday gösterenler ve validator'ler arasındaki ilişkinin kesin niteliği muhtemelen değişecek zaman. Başlangıçta, derleyicilerin çok yakın çalışmasını bekliyoruz validators ile, çünkü yalnızca birkaç tane olacak (belki küçük işlem hacmine sahip yalnızca bir) parachain(ler). İlk istemci uygulaması, RPC'leri içerecektir. Parachain harmanlayıcı düğümü, bir (aktarma zinciri) validator düğümüne koşulsuz olarak geçerli olduğu kanıtlanabilen bir parachain sağlamak için Blok. Senkronize edilmiş bir sürümünü sürdürmenin maliyeti olarak bu tür parachainlerin tümü artıyor, ek görmeyi bekliyoruz ayırmaya yardımcı olacak altyapı mevcuttur. Bağımsız, ekonomik motivasyona sahip taraflara yönelik görevler. Sonunda, rekabet eden harmanlayıcı havuzlarını görmeyi bekliyoruz. En fazla işlem ücretini toplayın. Bu tür düzenleyicilerle, ödül gelirlerinden sürekli bir pay almak için belirli bir süre boyunca belirli validator'lere hizmet vermek üzere sözleşme yapılabilir. Alternatif olarak, "serbest" derleyiciler basitçe bir Piyasa, anında ödenecek ödülün rekabetçi bir payı karşılığında geçerli parachain blokları sunuyor. Benzer şekilde, merkezi olmayan aday havuzları birden fazla adaya izin verecektir. katılımcıları koordine etmek ve görevini paylaşmak üzere bir araya getirdi. validator. Bu havuzlama yeteneği açık katılımı garanti eder daha merkezi olmayan bir sisteme yol açmaktadır. 4.4. Balıkçılar. Diğer iki aktif partinin aksine, balıkçılar blok yazarlığıyla doğrudan ilişkili değil süreç. Daha ziyade bağımsız “ödül avcıları”dırlar büyük bir tek seferlik ödülle motive edildi. Tam olarak nedeniyle Balıkçıların varlığı nedeniyle, uygunsuz davranış olaylarının nadiren meydana gelmesini bekleriz ve bunlar yalnızca balıkçılar nedeniyle gerçekleştiğinde bağlı tarafın gizli anahtar güvenliği konusunda dikkatsiz olması, kötü niyetle değil. İsim geliyor Beklenen ödül sıklığından, katılım için gereken minimum gereksinimlerden ve nihai ödül boyutundan. Balıkçılar ödüllerini zamanında kanıtlayarak alıyorlar en az bir bağlı taraf yasa dışı hareket etti. Yasa dışı eylemler her biri aynı onaylı ebeveynle iki blok imzalamayı veya parachain durumunda geçersiz bir anlaşmanın onaylanmasına yardımcı olmayı içerir Blok. Aşırı ödüllendirmeyi veya taviz vermeyi önlemek ve bir oturumun gizli anahtarının yasa dışı kullanımı, temel ödül tek bir validator'nin yasa dışı olarak imzalanmış mesajını sağlamak minimum. Bu ödül asimptotik olarak arttıkça artar. diğer validator'lerden gelen yasa dışı imzaları doğrulamak gerçek bir saldırıyı ima ediyor. Asimptot ayarlandı en azından temel güvenlik iddiamızı takiben %66 oranında validator'ların üçte ikisi iyiliksever davranıyor. Balıkçılar bir bakıma “tam düğümlere” benzerler. kaynakların ihtiyaç duyduğu günümüz blockchain sistemleri nispeten küçüktür ve istikrarlı çalışma süresi taahhüdü ve bant genişliği gerekli değildir. Balıkçılar bu konuda farklılık gösteriyor küçük bir tahvil yatırmaları gerektiği kadar.Bu bağ engelliyor validators'nin zamanını ve hesaplamasını boşa harcayan sybil saldırıları kaynaklar. Hemen geri çekilebilir, muhtemelen hayır birkaç dolara eşdeğerden daha fazla ve yol açabilir yaramaz bir davranışı fark ederek büyük bir ödül elde etmek validator.
Participation à Polkadot
Il y a quatre rôles de base dans l'entretien d'un Polkadot réseau : assembleur, pêcheur, proposant et validator. Dans une implémentation possible de Polkadot, ce dernier rôle peut en fait se décomposer en deux rôles : validator de base et garant de disponibilité ; ceci est discuté dans la section 6.5.3. Assembleur Pêcheur Validateurs (ce groupe) Validateurs (autres groupes) approuve devient moniteurs rapports mauvais comportement à fournit un bloc candidats pour Proposant Figure 1. L'interaction entre le quatre rôles de Polkadot. 4.1. Validateurs. A validator est la charge la plus élevée et aide à sceller les nouveaux blocs sur le réseau Polkadot. Le rôle du validator dépend d’une liaison suffisamment élevée en cours de dépôt, bien que nous autorisons d'autres parties cautionnées à nommer un ou plusieurs validator pour agir en leur nom et en tant que une telle partie de l'obligation de validator n'appartient pas nécessairement à validator lui-même, mais plutôt à ceux-ci. proposants. Un validator doit exécuter une implémentation client de chaîne de relais avec une disponibilité et une bande passante élevées. A chaque bloc le nœud doit être prêt à accepter le rôle de ratification un nouveau bloc sur une parachain nommée. Ce processus consiste à recevoir, valider et republier les candidats blocs. La nomination est déterministe mais pratiquement imprévisible longtemps à l’avance. Puisque le validator ne peut pas on peut raisonnablement s'attendre à ce qu'il maintienne un système entièrement synchronisé base de données de toutes les parachaines, il est prévu que le validator désignera la tâche de concevoir une nouvelle suggestion bloc parachain à un tiers, connu sous le nom d’assembleur. Une fois que tous les nouveaux blocs de parachain ont été correctement ratifiés par leurs sous-groupes validator désignés, validators devra alors ratifier lui-même le bloc de la chaîne relais. Cela implique mettre à jour l'état des files d'attente de transactions (essentiellement déplacer les données de la file d'attente de sortie d'une parachain vers une autre file d'attente d'entrée de parachain), traitant les transactions de l’ensemble des transactions en chaîne relais ratifié et ratifiant le bloc final, y compris les changements finaux de parachain.POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 5 A validator ne remplissant pas son devoir de trouver un consensus selon les règles de l’algorithme de consensus choisi, est puni. Pour les pannes initiales involontaires, cela passe par retenir la récompense du validator. Les échecs répétés entraînent la réduction de leur caution (par brûlage). Actions manifestement malveillantes telles que la double signature ou conspirer pour fournir un bloc invalide entraîne la perte de la totalité du lien (qui est partiellement brûlé mais en grande partie donné à l'informateur et aux acteurs honnêtes). Dans un certain sens, les validator sont similaires aux pools miniers du PoW actuel blockchains. 4.2. Les proposants. Un proposant est une partie prenante qui contribue au cautionnement d'un validator. Ils n'ont aucun rôle supplémentaire, sauf celui de placer du capital-risque et, tels pour signaler qu'ils font confiance à un validator particulier (ou ensemble de ceux-ci) à agir de manière responsable dans leur entretien du réseau. Ils bénéficient d'une majoration ou d'une réduction au prorata dans leur dépôt en fonction de la croissance de l’obligation à laquelle ils contribuent. Avec les assembleurs, les proposants sont ensuite dans certains sens similaire aux mineurs des réseaux PoW actuels. 4.3. Collateurs. Assembleurs de transactions (assembleurs en abrégé) sont des parties qui aident les validator à produire des blocs de parachaine. Ils maintiennent un « nœud complet » pour une parachain particulière ; ce qui signifie qu'ils conservent tous les éléments nécessaires informations pour pouvoir créer de nouveaux blocs et exécuter transactions de la même manière que les mineurs le font sur les PoW actuels blockchain. Dans des circonstances normales, ils rassemblera et exécutera des transactions pour créer un compte non scellé bloquer et le fournir, avec une connaissance nulle preuve, à un ou plusieurs validator actuellement responsables de proposant un bloc parachain. La nature précise de la relation entre les assembleurs, les proposants et les validator changera probablement au fil du temps. le temps. Dans un premier temps, nous attendons des assembleurs qu'ils travaillent en étroite collaboration avec validators, puisqu'il n'y en aura que quelques-uns (peut-être une seule) parachain(s) avec un faible volume de transactions. Le la mise en œuvre initiale du client inclura des RPC pour permettre un nœud de collecte de parachain pour fournir inconditionnellement un nœud (relaychain) validator avec une parachain dont la validité est prouvée bloquer. Comme le coût de maintenance d'une version synchronisée de toutes ces parachaines augmentent, nous nous attendons à voir des infrastructure en place qui aidera à séparer les obligations envers des partis indépendants et motivés par l’économie. À terme, nous nous attendons à voir des pools d'assembleurs rivaliser pour perçoivent le plus de frais de transaction. Ces assembleurs peuvent être engagés par contrat pour servir des validator particuliers pendant un certain temps en échange d'une part continue du produit de la récompense. Alternativement, les assembleurs « indépendants » peuvent simplement créer un marché offrant des blocs de parachain valides en échange d'une part compétitive de la récompense payable immédiatement. De même, les pools de proposants décentralisés permettraient à plusieurs participants liés pour coordonner et partager le devoir d’un validator. Cette capacité de mutualisation garantit une participation ouverte conduisant à un système plus décentralisé. 4.4. Pêcheurs. Contrairement aux deux autres partis actifs, les pêcheurs ne sont pas directement liés à la création des blocs processus. Ce sont plutôt des « chasseurs de primes » indépendants. motivé par une grande récompense unique. Justement à cause de En raison de l'existence des pêcheurs, nous nous attendons à ce que les cas de mauvaise conduite se produisent rarement, et lorsqu'ils se produisent uniquement à cause de la partie cautionnée étant négligente avec la sécurité de la clé secrète, plutôt que par intention malveillante. Le nom vient de la fréquence attendue de la récompense, des exigences minimales pour participer et du montant éventuel de la récompense. Les pêcheurs reçoivent leur récompense en fournissant en temps opportun la preuve que au moins une partie cautionnée a agi illégalement. Actions illégales inclure la signature de deux blocs chacun avec le même parent ratifié ou, dans le cas des parachains, aider à ratifier un invalide bloquer. Pour éviter la récompense excessive ou le compromis et utilisation illicite de la clé secrète d’une session, la récompense de base pour fournir un seul message signé illégalement de validator est minime. Cette récompense augmente asymptotiquement à mesure que des signatures illégales corroborantes d'autres validator sont à condition d'impliquer une véritable attaque. L'asymptote est définie à 66 % suite à notre affirmation de sécurité de base selon laquelle au moins les deux tiers des validator agissent avec bienveillance. Les pêcheurs ressemblent quelque peu aux « nœuds complets » dans systèmes blockchain actuels dont les ressources nécessaires sont relativement petits et l'engagement d'une disponibilité stable et la bande passante n'est pas nécessaire. Les pêcheurs diffèrent tellement d'autant qu'ils doivent déposer une petite caution.Ce lien empêche Sybil attaque en faisant perdre du temps et du calcul à validators ressources. Il est immédiatement retirable, probablement non plus que l'équivalent de quelques dollars et peut conduire à récolter une lourde récompense en repérant un mauvais comportement validator.
Tasarıma Genel Bakış
Bu bölüm, konuyla ilgili kısa bir genel bakış sunmayı amaçlamaktadır. bir bütün olarak sistem. Konunun daha kapsamlı bir araştırması Sistemi takip eden bölümde verilmiştir. 5.1. Konsensüs. Aktarma zincirinde Polkadot şunu başarır: karşılıklı olarak kabul edilen geçerli bir dizi karar üzerinde düşük düzeyde fikir birliği modern bir eşzamansız Bizans hataya dayanıklı (BFT) algoritması aracılığıyla bloklar. Algoritma ilham alacak basit Tendermint [11] ve çok daha fazlası ile HoneyBadgerBFT [14] dahil. İkincisi bir sağlar keyfi bir şekilde etkin ve hataya dayanıklı bir fikir birliği çoğunlukla zararsız otoriteler veya validators kümesi göz önüne alındığında kusurlu ağ altyapısı. Yetki kanıtı (PoA) tarzı bir ağ için yalnızca bu yeterli olacaktır, ancak Polkadot olduğu düşünülüyor tamamen açık ve halka açık bir ağ olarak da dağıtılabilir belirli bir kuruluş veya güvenilir olmayan durum sürdürmek için gerekli olan yetkidir. Bu nedenle bir ihtiyacımız var validators kümesini belirleme ve teşvik etme araçları dürüst olmaları. Bunun için PoS tabanlı seçimi kullanıyoruz Kriterler. 5.2. Bahsi Kanıtlamak. Ağın olduğunu varsayıyoruz ne kadar "bahis" olduğunu ölçmek için bazı araçlara sahip olacak herhangi bir hesabın olması. Karşılaştırma kolaylığı için önceden var olan sistemlere ölçü birimi diyeceğiz “tokens”. Ne yazık ki bu terim ideal olmaktan uzaktır. pek çok neden var, en azından bunun basit bir skaler olması bir hesapla ilişkili değer, hiçbir kavram yoktur bireysellik. validator'lerin nadiren (en fazla) seçildiğini hayal ediyoruz günde bir kez ama belki üç ayda bir kadar nadiren), Aday Hisse Kanıtı (NPoS) şeması aracılığıyla. Teşvik, oranlı bir tahsis yoluyla gerçekleşebilir.POLKADOT: HETEROJEN ÇOK ZİNCİRLİ BİR ÇERÇEVE VİZYONU TASLAK 1 6 Röle zincir Doğrulayıcı sürüsü (her biri kendi rengine göre renklendirilmiştir) belirlenmiş parachain) İşlem (tarafından gönderildi dış aktör) Parachain köprü Sanal parachain (örneğin Ethereum) Parachain Parachain kuyruklar ve G/Ç Yayılan işlemler Aday gönderimini engelle 2. sıra Röle zinciri Parachain topluluğu Hesap Gelen işlem Giden işlem Zincirler arası işlemler (validators tarafından yönetilmektedir) Harmanlayıcı Yayılan blok Balıkçı Şekil 2. Polkadot sisteminin özet şeması. Bu, harmanlayıcıların kullanıcı işlemlerini toplayıp yaymasının yanı sıra blok adaylarını balıkçılara ve validator'lere yaydığını gösteriyor. Aynı zamanda bir hesabın kendi parachain'inden gerçekleştirilen bir işlemi aktarma zinciri aracılığıyla nasıl yayınlayabileceğini gösterir ve oradaki bir hesaba yapılan bir işlem olarak yorumlanabileceği başka bir parachain'e. token temel genişletmeden gelen fonlar (%100'e kadar) yılda, ancak daha büyük ihtimalle %10 civarındadır. toplanan işlem ücretleri. Tüm token sahipler olduğundan, para tabanı genişlemesi genellikle enflasyona yol açsa da katılımda adil bir fırsata sahip olacak, hiçbir tokensahibinin değerinin düşmesine maruz kalması gerekmeyecek almaktan mutlu olmaları koşuluyla, zaman içinde holdingleri Konsensüs mekanizmasındaki rolü. Belirli bir oran tokens sayısı staking süreci için hedeflenecektir; the etkili token temel genişletme şu şekilde ayarlanacaktır: Bu hedefe ulaşmak için piyasaya dayalı bir mekanizma. Doğrulayıcılar büyük ölçüde çıkarlarına bağlı; çıkıyor validators'nin tahvilleri, validators'nin görevleri sona erdikten uzun süre sonra (belki yaklaşık 3 ay) yerinde kalır. Bu uzun tahvil tasfiye süresi gelecekteki uygunsuz davranışlara izin verir zincirin periyodik kontrol noktasına kadar cezalandırılır. Kötü davranış, cezanın azaltılması gibi cezalarla sonuçlanır. Ödül veya kasıtlı olarak taviz veren durumlarda ağın bütünlüğünün bozulması, validator bağlantısının bir kısmını veya tamamını kaybetmesi diğer validator'lere, muhbirlere veya paydaşlara pay bir bütün olarak (yanma yoluyla). Örneğin, bir validator bir çatalın her iki dalını da onaylamaya çalışan kişi (bazen "kısa menzilli" saldırı olarak bilinir) tanımlanabilir ve ikinci şekilde cezalandırılır. Uzun menzilli "tehlikede olmayan" saldırılar4, basit bir "kontrol noktası" mandalı aracılığıyla atlatılır ve bu, zincirin tehlikeli bir şekilde yeniden düzenlenmesini engeller. özellikle zincir derinliği. İstemcilerin yeni senkronize edilmesini sağlamak için yanlış zincire aldanamazlar, düzenli olarak “Sert çatallanmalar” meydana gelecektir (en fazla validators'nin tahvil tasfiyesi), son kontrol noktası bloğunu hashes istemcilere sabit kodlayan. Bu, ayak izini azaltan başka bir "sonlu zincir uzunluğu" ölçüsüyle iyi bir uyum sağlar veya oluşum bloğunun periyodik olarak sıfırlanması. 5.3. Parachain'ler ve Harmanlayıcılar. Her parachain alır aktarma zincirine benzer güvenlik düzenlemeleri: the Parachain'lerin başlıkları röle zinciri bloğunun içinde mühürlenmiştir Onayın ardından yeniden düzenlemenin veya "çifte harcamanın" mümkün olmamasını sağlamak. Bu, Bitcoin'nin yan zincirleri ve birleştirme madenciliği tarafından sunulana benzer bir güvenlik garantisidir. Ancak Polkadot aynı zamanda parachainlerin durum geçişlerinin geçerli olduğuna dair güçlü garantiler de sağlar. Bu validator kümesinin kriptografik olarak rastgele alt kümelere bölünmesi yoluyla gerçekleşir; başına bir alt küme parachain'de alt kümeler blok başına potansiyel olarak farklılık gösterir. Bu kurulum genellikle parachainlerin blok sürelerinin artacağını ima eder en az röle zincirininki kadar uzun olmalıdır. spesifik bölümlendirmenin kapsam dışında olduğunu belirleme araçları 4Böyle bir saldırı, düşmanın başlangıç bloğundan itibaren tamamen yeni bir tarih zinciri oluşturduğu yerdir. Bir kontrol yoluyla dengede göreceli olarak önemsiz bir paya sahip olsalar da, diğer tüm paylara göre kendi paylarına düşen payı kademeli olarak artırabilirler Paydaşlar, alternatif tarihlerinin tek aktif katılımcılarıdır. Yaratılışta hiçbir içsel fiziksel sınırlama bulunmadığından (oldukça gerçek hesaplama enerjisinin harcanması gereken PoW'un aksine), gerçek zincirden daha uzun bir zincir oluşturabilirler. nispeten kısa bir zaman aralığına sahiptir ve ağın kanonik durumunu devralarak onu potansiyel olarak en uzun ve en iyi hale getirir.POLKADOT: HETEROJEN ÇOK ZİNCİRLİ BİR ÇERÇEVE VİZYONU TASLAK 1 7 bu belgenin ancak muhtemelen aşağıdakilere dayalı olması muhtemeldir: RanDAO [19] benzeri bir taahhüt-açıklama çerçevesi veya her parachain'in önceki bloklarından birleştirilmiş verileri kullanın kriptografik olarak güvenli bir hash altında. validator'lerin bu tür alt kümelerinin aşağıdakileri sağlaması gerekir: Geçerliliği garanti edilen parachain blok adayı (açık) tahvillere el konulmasının acısı). Geçerlilik iki etrafında döner önemli noktalar; ilk olarak özünde geçerli olduğu - yani tüm durum geçişleri aslına sadık kalınarak gerçekleştirildi ve hepsi Referans verilen harici veriler (yani işlemler) dahil edilmek üzere geçerlidir. İkincisi, kendi dışsal olan herhangi bir verinin harici işlemler gibi adayın yeterince yüksek kullanılabilirliğe sahip olması, böylece katılımcıların indirin ve bloğu manuel olarak çalıştırın.5 Doğrulayıcılar yalnızca hiçbir harici "işlem" verisi içermeyen "boş" bir blok sağlayabilir, ancak bunu yapmaları halinde daha düşük bir ödül alma riskiyle karşı karşıya kalabilirler. Birlikte çalışıyorlar derleyiciler (bireyler) ile bir parachain dedikodu protokolü İşlemleri bloklar halinde toplayan ve bloğun ebeveyninin geçerli bir alt öğesi olduğuna dair etkileşimli olmayan, sıfır bilgili bir kanıt sağlayan (ve herhangi bir işlemi üstlenen) sıkıntıları için ücretler). Kendilerini belirlemek parachain protokollerine bırakılmıştır. Spam önleme araçları: "bilgi işlem kaynağı ölçümü" veya "işlem ücreti" gibi temel bir kavram yoktur röle zinciri tarafından empoze edilir. Aktarma zinciri protokolü tarafından da bu konuda doğrudan bir yaptırım bulunmamaktadır (gerçi Paydaşların benimsemeyi seçmesi pek olası değil düzgün bir mekanizma sağlamayan bir parachain). Bu, zincirlerin farklı olma ihtimaline açık bir işarettir. Ethereum, ör. çok daha basit bir ücret modeline veya henüz önerilmemiş başka bir spam önleme modeline sahip Bitcoin benzeri bir zincir. Polkadot'in aktarma zincirinin kendisi muhtemelen bir Ethereum-benzeri hesaplar ve durum zinciri, muhtemelen bir EVMtürevi. Röle zinciri düğümlerinin gerekli olacağından önemli miktarda başka işlem ve işlem hacmi yapmak büyük işlem ücretleri yoluyla kısmen en aza indirilecek ve araştırma modellerimizin gerektirmesi durumunda bir blok boyutu sınırı. 5.4. Zincirler Arası İletişim. Polkadot'nin kritik son bileşeni zincirler arası iletişimdir. O zamandan beri Parachain'ler aralarında bir tür bilgi kanalına sahip olabilir, biz de Polkadot a olarak düşünmemize izin veriyoruz. ölçeklenebilir çoklu zincir. Polkadot durumunda iletişim olabildiğince basittir: parachain (bu zincirin mantığına göre) yapabilir Bir işlemin ikinci bir parachain'e gönderilmesini sağlamak veya potansiyel olarak röle zinciri. Harici işlemler gibi blockchains üretiminde tamamen eşzamansızdırlar ve onların herhangi bir şeyi geri döndürme konusunda içsel bir yetenekleri yoktur. bir tür bilginin kökenine geri dönmesi. Hedef: alır önceki veriler bloğun validators. Hesap şu gönderiyi alır: giriş kaldırıldı giriş Merkle tree Hesap gönderi gönderir: giriş yerleştirildi çıkış Merkle tree hedef için paraşütle atlama çıkış Kaynak: paylaşımlar sonraki bloktaki veriler validators posta kanıtının saklandığı yer Parachain çıkışı Merkle ağaç yönlendirilmiş referans yerleştirildi hedef parachain'de giriş Merkle tree giriş Şekil 3. Temel şematik gösterim gönderilenler için yönlendirmenin ana bölümleri işlemler (“gönderiler”). Minimum uygulama karmaşıklığını sağlamak için minimum risk ve asgari düz ceket arasında gelecek Parachain mimarilerinde bu zincirler arası işlemler standart harici imzalı işlemlerden etkili bir şekilde ayırt edilemez. İşlemin bir parachain tanımlama yeteneği sağlayan bir kaynak segmenti vardır ve isteğe bağlı boyutta olabilecek bir adres. Bitcoin ve Ethereum gibi yaygın mevcut sistemlerin aksine, zincirler arası işlemler herhangi bir türde ücret "ödemesi" ile birlikte gelmez; Bu tür herhangi bir ödemenin kaynak ve hedef parachainler üzerindeki müzakere mantığı yoluyla yönetilmesi gerekir. Bunun için önerilene benzer bir sistem Ethereum'in Serenity sürümü [7] basit bir yöntem olabilir böyle bir zincirler arası kaynak ödemesini yönetme zamanı gelince başkalarının da öne çıkabileceğini varsayıyoruz. Zincirler arası işlemler basit bir çözüm kullanılarak çözülür sağlamak için Merkle tree temeline dayalı kuyruklama mekanizması sadakat. Röle zinciri bakımcılarının görevi işlemleri bir parachain'in çıkış kuyruğunda taşıyın hedef parachain'in giriş kuyruğuna. aktarılan işlemlere aktarma zincirinde başvurulur, ancak bunlar ilgili değildiray-chain işlemlerinin kendisi. Bir parachain'in başka bir parachain'e spam göndermesini önlemek için işlemler, bir işlemin gönderilebilmesi için gereklidir hedefin giriş kuyruğunun çok büyük olmaması önceki bloğun bitiş zamanı. Giriş ise Blok işleme sonrasında sıra çok büyükse, bu durumda "doymuş" olarak kabul edilir ve hiçbir işlem şu adrese yönlendirilemez: tekrar altına düşene kadar sonraki bloklar içinde Sınır. Bu kuyruklar aktarma zincirinde yönetilir Parachainlerin birbirlerinin doygunluğunu belirlemesine izin vermek durum; bu şekilde bir işlemi yayınlamak için başarısız bir girişim Durmuş bir varış noktasına eşzamanlı olarak rapor edilebilir. (Geri dönüş yolu bulunmadığından ikincil bir işlemin bu nedenle başarısız olması durumunda geri bildirim yapılamamaktadır.) ilk arayana ve diğer bazı kurtarma yollarına gerçekleşmesi gerekirdi.) 5.5. Polkadot ve Ethereum. Ethereum'nin Turing bütünlüğü nedeniyle, Polkadot ve Ethereum'nin birlikte çalışabilmesi için bol miktarda fırsat olmasını bekliyoruz en azından kolayca çıkarılabilecek bazı güvenlik sınırları dahilinde. Kısaca, işlemlerin şu andan itibaren gerçekleşmesini öngörüyoruz: Polkadot, validators tarafından imzalanıp daha sonra beslenebilir 5Böyle bir görev validator'ler arasında paylaşılabilir veya yoğun biçimde bağlı validator'ler kümesinin atanmış görevi haline gelebilir. kullanılabilirlik garantörleri.
POLKADOT: HETEROJEN ÇOK ZİNCİRLİ BİR ÇERÇEVE VİZYONU TASLAK 1 8 Ethereum burada yorumlanıp yürürlüğe konulabilirler bir işlem yönlendirme sözleşmesi. Diğer yönde ise özel olarak biçimlendirilmiş günlüklerin (olayların) kullanımını öngörüyoruz belirli bir mesajın iletilmesi gerektiğinin hızlı bir şekilde doğrulanmasına olanak tanıyan bir "kaçış sözleşmesi"nden geliyor. 5.5.1. Polkadot - Ethereum arası. Bir seçim yoluyla BFT fikir birliği mekanizması, validator'lerin oluşturduğu bir Onay oylamasıyla belirlenen paydaşlar grubu mekanizma ile güvenli bir fikir birliğine varabiliriz. nadiren değişen ve mütevazı sayıda validators. Toplam 144 validators olan bir sistemde blok süresi 4 saniye ve 900 blokluk sonluluk (kötü amaçlı yazılımlara izin verir) Çift oy verme gibi davranışların bildirilmesi, cezalandırılması ve onarılmış), bir bloğun geçerliliği makul bir şekilde 97 kadar az imzayla (144'ün üçte ikisi artı bir) ve ardından hiçbir sorgulamanın yapılmadığı 60 dakikalık doğrulama süresiyle kanıtlanmış sayılır. Ethereum bir "zorla girme sözleşmesi" düzenleyebilir 144 imza sahibini koruyabilir ve onlar tarafından kontrol edilebilir onlar. Eliptik eğri dijital imza (ECDSA) kurtarma işlemi EVM altında yalnızca 3.000 gaz gerektirdiğinden ve muhtemelen doğrulamanın yalnızca bir tarihte gerçekleşmesini isteriz. validators'lik süper çoğunluk (tam oybirliği yerine), bir talimatın onaylandığını doğrulayan Ethereum tutarındaki taban maliyet Polkadot ağından gelen gazın 300.000'den fazla olmayacağı, yani gazın yalnızca %6'sı olacağı gerektiği şekilde doğrulandı toplam blok gaz limiti 5,5M'dir. validators sayısını artırmak (sorunlarla başa çıkmak için gerekli olacak şekilde) düzinelerce zincir) bu maliyeti kaçınılmaz olarak artırıyor ancak Ethereum'nin işlem bant genişliğinin teknoloji olgunlaştıkça ve zaman içinde büyümesi genel olarak bekleniyor altyapı iyileşiyor. Olmadığı gerçeğiyle birlikte tüm validator'lerin dahil olması gerekir (ör. yalnızca en yüksek stake edilen validator'ler böyle bir görev için çağrılabilir) Bu mekanizmanın sınırları oldukça geniştir. Bu tür validator'lerin günlük rotasyonunu varsayarsak (ki bu Oldukça ihtiyatlı (haftalık, hatta aylık kabul edilebilir), o zaman bakım ağının maliyeti bu Ethereum-yönlendirme köprüsünün sayısı 540.000 civarında olacaktır günlük gaz veya mevcut gaz fiyatlarıyla yıllık 45 dolar. Köprü üzerinden tek başına iletilen temel bir işlemin maliyeti yaklaşık 0,11 dolar; ek sözleşme hesaplamasının maliyeti olacaktır elbette daha fazlası. İşlemleri tamponlayarak ve paketleyerek birlikte, izinsiz girme yetkilendirme maliyetleri kolaylıkla karşılanabilir. paylaşılarak işlem başına maliyetin önemli ölçüde azaltılması; yönlendirmeden önce 20 işlem gerekiyorsa, o zaman temel bir işlemin iletilmesinin maliyeti yaklaşık 0,01 dolar. Bu çoklu imza sözleşme modeline ilginç ve daha ucuz bir alternatif, çok taraflı sahiplik semantiğine ulaşmak için eşik imzaların kullanılması olacaktır. ECDSA için eşik imza şemaları hesaplama açısından pahalıdır, diğer planlar için olanlar Schnorr imzaları gibi imzalar oldukça makul. Ethereum bunu sağlayacak ilkelleri tanıtmayı planlıyor Yaklaşan Metropolis hardfork'unda kullanımı ucuz planlar. Eğer böyle bir yöntem kullanılabilseydi, gaz maliyetleri Polkadot işlemini Ethereum'ye iletmek için ağ önemli ölçüde sıfıra yakın bir seviyeye düşecek doğrulama için temel maliyetlerin ötesinde genel giderler imza ve temel işlemin yürütülmesi. Bu modelde, Polkadot'nin validator düğümleri mesajları imzalamaktan başka çok az şey yapmak. İşlemlerin gerçekte Ethereum ağına yönlendirilmesini sağlamak için, validator'lardan herhangi birinin kendisinin de burada ikamet edeceğini varsayalım Ethereum ağı veya daha büyük ihtimalle o küçük ödüller mesajı ileten ilk aktöre sunulacaktır. ağa (ödül önemsiz bir şekilde ödenebilir) işlem yaratıcısı). 5.5.2. Ethereum - Polkadot arası. İşlemlerin gerçekleşmesi Ethereum'den Polkadot'ye iletilen basit günlük kavramını kullanır. Bir Ethereum sözleşmesi belirli bir Polkadot parachain'ine bir işlem göndermek istediğinde, sadece özel bir "ayrılma sözleşmesi" imzalaması yeterli. Ayrılma sözleşmesi olabilecek her türlü ödemeyi alacaktır. gerekli olmalı ve bir Merkle kanıtı ve karşılık gelen bloğun başlığının geçerli olduğuna dair bir iddia yoluyla varlığının kanıtlanabilmesi için bir kayıt talimatı yayınlayın ve kanonik. Son iki koşuldan geçerlilik belki de kanıtlamak en basiti. Prensip olarak tek şartkanıta ihtiyaç duyan her Polkadot düğüm için (yani atanmış validator düğümleri), standart bir Ethereum düğümünün tamamen senkronize edilmiş bir örneğini çalıştıracak şekilde. Ne yazık ki, bu oldukça ağır bir bağımlılıktır. bir daha hafif yöntem, basit bir kanıt kullanmak olacaktır. başlık yalnızca sağlanarak doğru şekilde değerlendirildi Ethereum'nin düzgün bir şekilde yürütülmesi için gereken durum denemesinin bir kısmı bloktaki işlemleri yapın ve günlüklerin (blok makbuzunda bulunan) geçerli olup olmadığını kontrol edin. Böyle “SPV benzeri”6 Kanıtlar henüz önemli miktarda bilgi gerektirebilir; uygun bir şekilde, genellikle bunlara ihtiyaç duyulmaz hepsi: Polkadot içindeki bir tahvil sistemi tahvillere izin verir üçüncü tarafların başlıklarını kaybetme riskiyle karşı karşıya kalmaları başka bir üçüncü tarafın (“balıkçı” gibi, bkz. 6.2.3) başlığın geçersiz olduğuna dair bir kanıt sunması durumunda tahvil (özellikle devlet kökü veya makbuz köklerinin sahtekar olduğu). Ethereum gibi sonlandırılmayan bir PoW ağında, kanonikliğin kesin olarak kanıtlanması imkansızdır. Bu sorunu çözmek için her türlü veriye güvenmeye çalışan uygulamalar Zincire bağlı neden-sonuç ilişkileri için bir dizi “onay” bekleyin veya bağımlı işlem belli bir seviyeye gelinceye kadar bekleyin. Zincir içindeki belirli derinlik. Ethereum tarihinde bu derinlik, bilinen ağ sorunu olmayan en az değerli işlemler için 1 bloktan, olduğu gibi 1200 bloğa kadar değişir borsalar için ilk Frontier sürümü sırasındaki durum. Sabit “Homestead” ağında bu rakam Çoğu borsa için 120 blok ve muhtemelen bunu alırız benzer bir parametre. Yani biz yapabilir hayal et bizim Polkadot tarafı Ethereumarayüzünün bazı basit işlevlere sahip olmasını sağlamak: Ethereum ağından yeni bir başlık kabul edin ve PoW'u doğrulayın; belirli bir günlük, yeterli derinliğe (ve ileriye doğru) sahip bir başlık için Ethereum tarafı koparma sözleşmesi tarafından yayınlandı Polkadot içindeki ilgili mesajı) ve son olarak daha önce kabul edilmiş ancak kabul edilmiş kanıtları kabul edebilmek henüz etkinleştirilmemiş başlık, geçersiz bir makbuz kökü içeriyor. Aslında Ethereum başlık verilerinin kendisini almak için (ve herhangi bir SPV kanıtı veya geçerlilik/kanoniklik reddi) Polkadot ağı, yönlendirme için bir teşvik 6SPV, Bitcoin'de Basitleştirilmiş Ödeme Doğrulamasına atıfta bulunur ve müşterilerin yalnızca tutarken işlemleri doğrulaması için bir yöntem açıklar. En uzun PoW zincirinin tüm blok başlıklarının bir kopyası.POLKADOT: HETEROJEN ÇOK ZİNCİRLİ BİR ÇERÇEVE VİZYONU TASLAK 1 9 veriye ihtiyaç var. Bu bir ödeme kadar basit olabilir (Ethereum tarafında toplanan ücretlerden finanse edilir) ödendi başlığı olan yararlı bir bloğu iletebilen herkese geçerlidir. Doğrulayıcılardan son birkaç bin bloğa ilişkin bilgileri saklamaları istenecektir. bazı protokole özgü araçlarla veya üzerinde tutulan bir sözleşme aracılığıyla çatalları yönetebilme röle zinciri. 5.6. Polkadot ve Bitcoin. Bitcoin karşılıklı çalışma Polkadot için ilginç bir zorluk sunuyor: sözde “İki yönlü bağlantı” faydalı bir altyapı parçası olabilir her iki ağın da tarafında olmak. Ancak nedeniyle böyle bir sabitleyicinin güvenli bir şekilde sağlanması koşuluyla Bitcoin sınırlamaları önemsiz olmayan bir girişim. Bir işlemin teslim edilmesi Bitcoin ila Polkadot arası prensipte Ethereum için olana benzer bir işlemle yapılabilir; bir “çıkış adresi” Polkadot validator'ler tarafından bir şekilde kontrol ediliyor olabilir aktarılan token'leri (ve onlarla birlikte gönderilen verileri) alın. SPV kanıtları teşvikli oracle'ler tarafından sağlanabilir ve, bir onay süresiyle birlikte verilen bir ödül işlemi ima eden kanonik olmayan blokların tanımlanması “çifte harcandı”. Daha sonra sahip olunan tüm token'ler Bu durumda "kaçış adresi" prensipte daha sonra dağıtılmak üzere aynı validator'lar tarafından kontrol edilecektir. Ancak sorun, birikintilerin dönen bir validator setinden nasıl güvenli bir şekilde kontrol edilebileceğidir. aksine Ethereum dayalı olarak keyfi kararlar alabilen imza kombinasyonları üzerine Bitcoin büyük ölçüde çoğu müşteri yalnızca maksimum 3 tarafla çoklu imza işlemlerini kabul ettiğinden daha sınırlıdır. Bunu 36'ya, hatta istenildiği gibi binlerce kişiye çıkarmak mevcut protokol uyarınca imkansızdır. Seçeneklerden biri, etkinleştirmek için Bitcoin protokolünü değiştirmektir. bu tür işlevsellik, ancak buna "sert çatallar" da denir Bitcoin dünyasında son girişimlere göre değerlendirme yapmak zor. Olasılıklardan biri eşik imzaların kullanılmasıdır. tek olarak tanımlanabilir bir kamuya izin veren kriptografik şemalar birden fazla gizli "parça" tarafından etkin bir şekilde kontrol edilebilecek anahtar, geçerli bir imza oluşturmak için bunların bir kısmı veya tamamı kullanılmalıdır. Maalesef eşik imzaları uyumlu Bitcoin'nin ECDSA'sı hesaplama açısından pahalıdır polinom karmaşıklığı yaratır ve oluşturur. Bunun gibi diğer planlar a Schnorr imzaları çok daha düşük maliyetler sağlar, ancak Bitcoin'ya dahil edilebilecekleri zaman çizelgesi protokol belirsizdir. Mevduatın nihai güvenliği, bir dizi bağlı validators, diğer bir seçenek de Çoklu imza anahtar sahiplerini yalnızca büyük ölçüde azaltın toplam validators'nin bağlı alt kümesi öyle ki eşik imzalar mümkün hale gelir (veya en kötü ihtimalle Bitcoin'nin yerel imzası) çoklu imza mümkündür). Bu elbette azaltır validator'lerin yasa dışı davranması durumunda tazminatlardan düşülebilecek toplam teminat tutarı, ancak bu zarif bir bozulmadır, sadece bir üst sınır belirler arasında güvenli bir şekilde çalıştırılabilecek fon miktarı iki ağ (ya da aslında bir saldırı durumunda kayıp yüzdesi) validator'lerden başarılı). Bu nedenle, makul derecede güvenli bir Bitcoin birlikte çalışabilirlik “sanal parachain” yerleştirmenin gerçekçi olmadığına inanıyoruz. iki ağ arasında, yine de belirsiz bir zaman çizelgesine sahip önemli bir çaba ve büyük olasılıkla paydaşların işbirliğini gerektiren ağ.
Aperçu de la conception
Cette section a pour but de donner un bref aperçu de système dans son ensemble. Une exploration plus approfondie du Le système est donné dans la section qui le suit. 5.1. Consensus. Sur la chaîne-relais, Polkadot réalise consensus de bas niveau sur un ensemble de critères valables mutuellement convenus bloque grâce à un algorithme byzantin asynchrone moderne de tolérance aux pannes (BFT). L'algorithme s'inspirera par le simple Tendermint [11] et le nettement plus impliqué HoneyBadgerBFT [14]. Ce dernier fournit un consensus efficace et tolérant aux pannes sur un infrastructure de réseau défectueuse, étant donné un ensemble d’autorités pour la plupart inoffensives ou validators. Pour un réseau de type preuve d'autorité (PoA), cela seul serait suffisant, mais Polkadot est supposé être également déployable en réseau dans un environnement entièrement ouvert et public situation sans organisation particulière ni confiance autorité nécessaire à son entretien. En tant que tel, nous avons besoin d'un moyens de déterminer un ensemble de validator et d'inciter eux pour être honnête. Pour cela, nous utilisons une sélection basée sur PoS critères. 5.2. Prouver l'enjeu. Nous supposons que le réseau aura des moyens de mesurer le montant de la « mise » n'importe quel compte particulier a. Pour faciliter la comparaison avec systèmes préexistants, nous appellerons l'unité de mesure « tokens ». Malheureusement, le terme est loin d'être idéal pour un un certain nombre de raisons, notamment le fait qu'il s'agit simplement d'un scalaire valeur associée à un compte, il n'y a aucune notion de individualité. Nous imaginons que les validator soient élus, rarement (au plus une fois par jour mais peut-être aussi rarement qu'une fois par trimestre), via un système de preuve de participation nommée (NPoS). L'incitation peut se faire par le biais d'une allocation au prorata dePOLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 6 Relais chaîne Essaim de validateurs (chacun coloré par son parachaîne désignée) Transaction (soumis par acteur externe) Parachaine pont Parachaine virtuelle (par exemple Ethereum) Parachaine Parachaine files d'attente et E/S Transactions propagées Bloquer la soumission des candidats 2ème commande Chaîne relais Communauté Parachain Compte Transaction entrante Transaction sortante Transactions inter-chaînes (géré par validators) Assembleur Bloc propagé Pêcheur Figure 2. Un schéma récapitulatif du système Polkadot. Cela montre les assembleurs collectant et propageant les transactions des utilisateurs, ainsi que la propagation des candidats au bloc aux pêcheurs et aux validator. C'est aussi montre comment un compte peut poster une transaction qui est effectuée depuis sa parachain, via la chaine-relais et ensuite dans une autre parachain où cela peut être interprété comme une transaction sur un compte là-bas. fonds provenant d'une expansion de base token (jusqu'à 100 % par an, mais plus probablement autour de 10 %), ainsi que tous les frais de transaction perçus. Alors que l’expansion de la base monétaire conduit généralement à l’inflation, puisque tous les propriétaires de token aurait une chance équitable de participer, aucun titulaire de token n'aurait besoin de subir une réduction de la valeur de son avoirs au fil du temps, à condition qu'ils soient heureux de prendre un rôle dans le mécanisme de consensus. Une proportion particulière des token seraient ciblés pour le processus staking ; le l’expansion effective de la base token serait ajustée grâce à un mécanisme basé sur le marché pour atteindre cet objectif. Les validateurs sont fortement liés par leurs enjeux ; sortir Les obligations des validator restent en place longtemps après la fin des fonctions des validator (peut-être environ 3 mois). Ce long la période de liquidation des obligations permet à une mauvaise conduite future d'être sanctionné jusqu'au contrôle périodique de la chaîne. Une mauvaise conduite entraîne des sanctions, telles qu'une réduction de récompense ou, dans les cas qui compromettent intentionnellement la l'intégrité du réseau, le validator perdant tout ou partie de son l'enjeu à d'autres validators, informateurs ou parties prenantes dans son ensemble (par brûlage). Par exemple, un validator qui tente de ratifier les deux branches d'une fourchette (parfois connue sous le nom d’attaque « à courte portée ») peut être identifiée et puni de cette dernière manière. Les attaques à longue portée « sans enjeu »4 sont contournées grâce à un simple « point de contrôle » qui empêche une dangereuse réorganisation en chaîne de plus d’un profondeur de chaîne particulière. Pour garantir la synchronisation des clients ne peuvent pas se laisser tromper par la mauvaise chaîne, régulier des « hard forks » se produiront (au plus pendant la même période du liquidation des obligations de validators) qui code en dur le bloc de point de contrôle récent hashes dans les clients. Cela s’accorde bien avec une mesure supplémentaire de réduction de l’empreinte de « longueur de chaîne finie » ou réinitialisation périodique du bloc de genèse. 5.3. Parachains et assembleurs. Chaque parachain obtient des conditions de sécurité similaires à celles de la chaîne relais : le les en-têtes des parachains sont scellés dans le bloc de chaîne de relais s’assurer qu’aucune réorganisation, ou « double dépense », n’est possible après confirmation. Il s’agit d’une garantie de sécurité similaire à celle offerte par les side-chains et la fusion de Bitcoin. Polkadot, cependant, fournit également de fortes garanties que les transitions d'état des parachains sont valides. Ceci cela se produit lorsque l'ensemble des validator est segmenté de manière cryptographique aléatoire en sous-ensembles ; un sous-ensemble par parachain, les sous-ensembles potentiellement différents par bloc. Ceci la configuration implique généralement que les temps de blocage des parachains seront être au moins aussi longue que celle de la chaîne-relais. Le spécifique les moyens permettant de déterminer le partage ne relèvent pas du champ d'application 4Une telle attaque est le moment où l’adversaire forge une chaîne historique entièrement nouvelle à partir du bloc de genèse. En contrôlant un part de participation relativement insignifiante au départ, ils sont capables d'augmenter progressivement leur part de participation par rapport à tous les autres parties prenantes car ils sont les seuls participants actifs à leur histoire alternative. Puisqu'il n'existe aucune limitation physique intrinsèque à la création de blocs (contrairement à PoW où une énergie de calcul assez réelle doit être dépensée), ils sont capables de créer une chaîne plus longue que la chaîne réelle dans un une période de temps relativement courte et en fera potentiellement la plus longue et la meilleure, reprenant l'état canonique du réseau.POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 7 de ce document mais serait probablement basé soit sur un cadre de validation-révélation similaire au RanDAO [19] ou utiliser les données combinées des blocs précédents de chaque parachain sous un hash cryptographiquement sécurisé. De tels sous-ensembles de validator sont nécessaires pour fournir un candidat de bloc parachain qui est garanti valide (sur peine de confiscation de la caution). La validité s'articule autour de deux points importants; d’abord qu’il est intrinsèquement valable – que toutes les transitions d'état ont été exécutées fidèlement et que tout les données externes référencées (c'est-à-dire les transactions) sont valables pour l'inclusion. Deuxièmement, que toute donnée extrinsèque à son Le candidat, comme ces transactions externes, a une disponibilité suffisamment élevée pour que les participants puissent téléchargez-le et exécutez le bloc manuellement.5 Les validateurs peuvent fournir uniquement un bloc « nul » ne contenant aucune donnée de « transactions » externe, mais peuvent courir le risque d'obtenir une récompense réduite s'ils le font. Ils travaillent aux côtés un protocole de potins en parachain avec des assembleurs – des particuliers qui rassemblent les transactions en blocs et fournissent une preuve non interactive et sans connaissance que le bloc constitue un enfant valide de son parent (et prend toute transaction frais pour leurs ennuis). Il appartient aux protocoles de parachain de spécifier les leurs moyens de prévention du spam : il n'existe pas de notion fondamentale de « mesure des ressources de calcul » ou de « frais de transaction » imposée par la chaîne-relais. Il n'y a pas non plus d'application directe à ce sujet par le protocole de chaîne de relais (bien qu'il Il est peu probable que les parties prenantes choisissent d'adopter une parachain qui ne fournissait pas un mécanisme décent). Il s’agit d’un clin d’œil explicite à la possibilité de chaînes contrairement à Ethereum, par ex. une chaîne de type Bitcoin qui a un modèle de frais beaucoup plus simple ou un autre modèle de prévention du spam, qui n'a pas encore été proposé. La chaîne de relais de Polkadot elle-même existera probablement en tant que Comptes et chaîne d'état de type Ethereum, éventuellement un dérivé EVM. Puisque les nœuds de la chaîne relais devront effectuer d'autres traitements substantiels, débit de transaction sera minimisé en partie grâce à des frais de transaction importants et, si nos modèles de recherche l'exigent, une limite de taille de bloc. 5.4. Communication inter-chaînes. Le dernier ingrédient essentiel de Polkadot est la communication inter-chaînes. Depuis les parachains peuvent avoir une sorte de canal d'information entre elles, nous nous permettons de considérer Polkadot un multi-chaîne évolutive. Dans le cas de Polkadot, la communication est aussi simple que possible : des transactions s'exécutant dans un les parachain sont (selon la logique de cette chaîne) capables de effectuer l'envoi d'une transaction dans une deuxième parachain ou, potentiellement, la chaîne relais. Comme les transactions externes sur les blockchain de production, ils sont entièrement asynchrones et il n'y a aucune capacité intrinsèque pour eux de rendre quoi que ce soit type d'information jusqu'à son origine. Destination : obtient données antérieures les validators du bloc. Le compte reçoit la publication : entrée supprimée de entrée Merkle tree Le compte envoie le message : entrée placée dans sortie Merkle tree pour destination parachaine sortie Source : partages données avec le bloc suivant validators preuve de courrier stockée dans sortie de parachain Merkle arbre référence routé placée dans les parachaines de destination entrée Merkle tree entrée Figure 3. Un schéma de base montrant les principales parties du routage pour posté transactions (« posts »). Pour garantir une complexité de mise en œuvre minimale, un minimum risque et minime camisole de force de avenir architectures parachain, ces transactions interchaînes sont en fait impossible à distinguer des transactions standard signées en externe. La transaction a un segment d'origine, offrant la possibilité d'identifier une parachain, et une adresse qui peut être de taille arbitraire. Contrairement aux systèmes actuels courants tels que Bitcoin et Ethereum, les transactions inter-chaînes ne s'accompagnent d'aucun type de « paiement » de frais associés ; tout paiement de ce type doit être géré via une logique de négociation sur les parachains source et de destination. Un système tel que celui proposé pour La version Serenity de Ethereum [7] serait un moyen simple de gérer un tel paiement de ressources inter-chaînes, bien que nous supposons que d’autres pourraient apparaître en temps voulu. Les transactions interchaînes sont résolues à l'aide d'un simple mécanisme de file d'attente basé sur un Merkle tree pour garantir fidélité. C'est la tâche des mainteneurs de la chaîne de relais de déplacer les transactions sur la file d'attente de sortie d'une parachain dans la file d’attente d’entrée de la parachain de destination. Le les transactions passées sont référencées sur la chaîne de relais, mais ne sont pas pertinentestransactions en chaîne elles-mêmes. Pour empêcher une parachain de spammer une autre parachain avec transactions, pour qu'une transaction soit envoyée, il est nécessaire que la file d'attente d'entrée de la destination ne soit pas trop grande à l'heure de fin du bloc précédent. Si l'entrée est trop grande après le traitement des blocs, elle est alors considérée comme « saturée » et aucune transaction ne peut être acheminée vers dans les blocs suivants jusqu'à ce qu'il soit réduit en dessous du limite. Ces files d'attente sont administrées sur la chaîne-relais permettre aux parachains de déterminer la saturation de chacun statut ; de cette façon, une tentative infructueuse de publier une transaction vers une destination bloquée peut être signalé de manière synchrone. (Mais comme aucun chemin de retour n'existe, si une transaction secondaire échouait pour cette raison, elle ne pourrait pas être signalée. à l'appelant d'origine et à d'autres moyens de récupération devrait avoir lieu.) 5.5. Polkadot et Ethereum. En raison de l'exhaustivité de Turing de Ethereum, nous pensons qu'il existe de nombreuses possibilités pour Polkadot et Ethereum d'être interopérables avec les uns les autres, du moins dans certaines limites de sécurité facilement déductibles. En bref, nous envisageons que les transactions de Polkadot peut être signé par validators puis introduit dans 5Une telle tâche pourrait être partagée entre les validator ou pourrait devenir la tâche désignée d'un ensemble de validator fortement liés, connu sous le nom de garants de disponibilité.
POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 8 Ethereum où ils peuvent être interprétés et mis en œuvre par un contrat de transmission de transactions. Dans l'autre sens, nous prévoyons l'utilisation de journaux (événements) spécialement formatés provenant d’un « contrat de rupture » pour permettre une vérification rapide qu’un message particulier doit être transmis. 5.5.1. Polkadot à Ethereum. Grâce au choix d'un BFT mécanisme de consensus avec validators formés à partir d'un ensemble de parties prenantes déterminées par un vote d'approbation mécanisme, nous sommes en mesure d’obtenir un consensus sûr avec un changement peu fréquent et nombre modeste de validator. Dans un système avec un total de 144 validators, un temps de bloc de 4 secondes et une finalité de 900 blocs (permettant des attaques malveillantes) les comportements tels que les doubles votes doivent être signalés et punis et réparé), la validité d'un blocage peut raisonnablement être est considérée comme prouvée par seulement 97 signatures (les deux tiers de 144 plus une) et une période de vérification ultérieure de 60 minutes au cours de laquelle aucune contestation n'est déposée. Ethereum est en mesure d'héberger un « contrat de rodage » qui peut maintenir les 144 signataires et être contrôlé par eux. Étant donné que la récupération de la signature numérique à courbe elliptique (ECDSA) ne nécessite que 3 000 gaz sous le EVM, et depuis nous voudrions probablement que la validation n'ait lieu que sur un majorité qualifiée de validator (plutôt que l'unanimité totale), le coût de base de Ethereum confirmant qu'une instruction a été correctement validé car provenant du réseau Polkadot ne représenterait pas plus de 300 000 gaz, soit seulement 6 % du la limite totale de gaz du bloc à 5,5 M. Augmenter le nombre de validator (ce qui serait nécessaire pour faire face aux des dizaines de chaînes) augmente inévitablement ce coût, mais on s'attend généralement à ce que la bande passante de transaction de Ethereum augmente au fil du temps à mesure que la technologie évolue et les infrastructures s’améliorent. Avec le fait que non tous les validator doivent être impliqués (par exemple, seul le niveau le plus élevé les validator jalonnés peuvent être sollicités pour une telle tâche), le les limites de ce mécanisme s’étendent raisonnablement bien. En supposant une rotation quotidienne de ces validator (ce qui est assez conservateur (une fréquence hebdomadaire ou même mensuelle peut être acceptable), alors le coût pour le réseau de maintenance ce pont de transfert Ethereum serait d'environ 540 000 gaz par jour ou, aux prix actuels du gaz, 45 $ par an. Une transaction de base transmise seule via le pont coûterait environ 0,11 $ ; le calcul supplémentaire du contrat coûterait plus, bien sûr. En tamponnant et en regroupant les transactions ensemble, les coûts d'autorisation d'effraction peuvent facilement être partagé, réduisant considérablement le coût par transaction ; si 20 transactions étaient nécessaires avant la transmission, alors le coût de transmission d'une transaction de base tomberait à environ 0,01 $. Une alternative intéressante et moins coûteuse à ce modèle de contrat multisignature serait d’utiliser des signatures à seuil afin d’obtenir la sémantique de propriété multilatérale. Alors que les schémas de signature à seuil pour l'ECDSA sont coûteux en calcul, ceux des autres schémas comme les signatures Schnorr sont très raisonnables. Ethereum envisage d'introduire des primitives qui rendraient un tel des schémas bon marché à utiliser dans le prochain hardfork de Metropolis. Si un tel moyen pouvait être utilisé, les coûts du gaz pour transférer une transaction Polkadot vers le Ethereum le réseau serait considérablement réduit à un niveau proche de zéro frais généraux qui s'ajoutent aux coûts de base liés à la validation du signature et exécution de la transaction sous-jacente. Dans ce modèle, les nœuds validator de Polkadot auraient faire peu d'autre que signer des messages. Pour que les transactions soient réellement acheminées sur le réseau Ethereum, nous supposons que les validator eux-mêmes résideraient également sur le réseau Ethereum ou, plus probablement, que de petites primes être proposé au premier acteur qui transmet le message sur au réseau (la prime pourrait trivialement être versée au initiateur de la transaction). 5.5.2. Ethereum à Polkadot. Faire en sorte que les transactions soient transmis de Ethereum à Polkadot utilise la simple notion de logs. Lorsqu'un contrat Ethereum souhaite envoyer une transaction vers une parachain particulière de Polkadot, il suffit de faire appel à un « contrat de rupture » spécial. Le contrat de rupture accepterait tout paiement qui pourrait être requis et émettre une instruction de journalisation afin que son existence puisse être prouvée par une preuve Merkle et une affirmation que l'en-tête du bloc correspondant est valide et canonique. Parmi ces deux dernières conditions, la validité est peut-être la le plus simple à prouver. En principe, la seule exigence estpour chaque nœud Polkadot nécessitant la preuve (c'est-à-dire des nœuds validator désignés) pour exécuter une instance entièrement synchronisée d'un nœud Ethereum standard. Malheureusement, il s’agit en soi d’une dépendance assez lourde. Un plus méthode légère consisterait à utiliser une preuve simple que le l'en-tête a été évalué correctement en fournissant uniquement le une partie du test d'état de Ethereum nécessaire pour s'exécuter correctement les transactions du bloc et vérifier que les logs (contenus dans le reçu de bloc) sont valides. Un tel « SPV-like »6 les preuves peuvent pourtant nécessiter une quantité substantielle d'informations ; commodément, ils ne seraient généralement pas nécessaires à tous : un système de liaison à l'intérieur de Polkadot permettrait les tiers à soumettre des en-têtes au risque de perdre leur caution si un autre tiers (tel qu’un « pêcheur », voir 6.2.3) fournit la preuve que l’en-tête n’est pas valide (en particulier que la racine de l'État ou la racine du reçu étaient des imposteurs). Sur un réseau PoW non finalisant comme Ethereum, le la canonicité est impossible à prouver de manière concluante. Pour résoudre ce problème, les applications qui tentent de s'appuyer sur n'importe quel type de cause à effet dépendant d’une chaîne, attendez un certain nombre de « confirmations » ou jusqu’à ce que la transaction dépendante soit à un certain point. profondeur particulière au sein de la chaîne. Le Ethereum, ceci la profondeur varie de 1 bloc pour les transactions les moins précieuses sans problème de réseau connu à 1 200 blocs comme c'était le cas ce fut le cas lors de la première version de Frontier pour les échanges. Sur le réseau stable « Homestead », ce chiffre se situe à 120 blocs pour la plupart des échanges, et nous prendrions probablement un paramètre similaire. Alors nous peut imaginer notre Côté Polkadot Ethereuminterface pour avoir quelques fonctions simples : pouvoir acceptez un nouvel en-tête du réseau Ethereum et validez le PoW, pour pouvoir accepter une preuve qu'un un journal particulier a été émis par le contrat de rupture côté Ethereum pour un en-tête de profondeur suffisante (et vers l'avant le message correspondant dans Polkadot) et enfin être capable d'accepter des preuves qu'un document précédemment accepté mais l'en-tête non encore adopté contient une racine de reçu non valide. Pour obtenir réellement les données d'en-tête Ethereum elles-mêmes (et toutes preuves SPV ou réfutations de validité/canonicité) dans le réseau Polkadot, une incitation à la réexpédition 6SPV fait référence à la vérification simplifiée des paiements dans Bitcoin et décrit une méthode permettant aux clients de vérifier les transactions tout en ne conservant que une copie de tous les en-têtes de blocs de la plus longue chaîne PoW.POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 9 des données sont nécessaires. Cela pourrait être aussi simple qu'un paiement (financé par les frais perçus du côté Ethereum) payé à toute personne capable de transmettre un bloc utile dont l'en-tête est valide. Les validateurs seraient appelés à conserver les informations relatives aux derniers milliers de blocs afin de être capable de gérer les forks, soit par des moyens protocolaires intrinsèques, soit par le biais d'un contrat maintenu sur le chaîne de relais. 5.6. Polkadot et Bitcoin. Bitcoin interopération présente un défi intéressant pour Polkadot : un soi-disant un « ancrage bidirectionnel » serait une infrastructure utile avoir du côté des deux réseaux. Cependant, en raison de les limites de Bitcoin, à condition qu'une telle cheville soit solidement une entreprise non triviale. Réaliser une transaction depuis Bitcoin à Polkadot peut en principe être réalisé avec un processus similaire à celui de Ethereum ; une « adresse en petits groupes » contrôlé d'une manière ou d'une autre par les Polkadot validator pourraient recevoir les token transférés (et les données envoyées avec eux). Les preuves SPV pourraient être fournies par des oracle incités et, accompagné d'une période de confirmation, une prime accordée pour identifier les blocs non canoniques impliquant la transaction a été « dépensé deux fois ». Tous les token alors possédés dans le « l'adresse de rupture » serait alors, en principe, contrôlée par ces mêmes validator pour une dispersion ultérieure. Le problème est cependant de savoir comment les dépôts peuvent être contrôlés en toute sécurité à partir d'un ensemble validator rotatif. Contrairement à Ethereum qui est capable de prendre des décisions arbitraires basées sur sur des combinaisons de signatures, Bitcoin est substantiellement plus limité, la plupart des clients n'acceptant que les transactions multisignatures avec un maximum de 3 parties. Étendre ce chiffre à 36, voire à des milliers comme on pourrait le souhaiter en fin de compte, est impossible dans le cadre du protocole actuel. Une option consiste à modifier le protocole Bitcoin pour activer une telle fonctionnalité, mais ce qu'on appelle des « hard forks » dans le Le monde Bitcoin est difficile à organiser à en juger par les tentatives récentes. Une possibilité est l'utilisation de signatures à seuil, schémas cryptographiques pour permettre à un public identifiable une seule fois clé pour être contrôlée efficacement par plusieurs « parties » secrètes dont tout ou partie doit être utilisé pour créer une signature valide. Malheureusement, les signatures de seuil sont compatibles avec l'ECDSA de Bitcoin sont coûteux en calcul créer et de complexité polynomiale. D'autres schémas tels a Les signatures Schnorr offrent des coûts bien inférieurs, mais le calendrier sur lequel ils peuvent être introduits dans le Bitcoin le protocole est incertain. Puisque la sécurité ultime des dépôts repose sur un certain nombre de validator liés, une autre option consiste à réduire les détenteurs de clés multi-signatures à seulement un nombre important sous-ensemble lié du total de validators tel que ce seuil les signatures deviennent réalisables (ou, au pire, les signatures natives de Bitcoin la multi-signature est possible). Cela réduit bien sûr le montant total des obligations qui pourraient être déduites à titre de réparations si les validator se comportaient illégalement, mais cela est une dégradation gracieuse, fixant simplement une limite supérieure de le montant des fonds qui peuvent circuler en toute sécurité entre le deux réseaux (ou encore, sur le % de pertes en cas d'attaque des validator réussissent). En tant que tel, nous pensons qu’il n’est pas irréaliste de placer une « parachain virtuelle » d’interopérabilité Bitcoin raisonnablement sécurisée. entre les deux réseaux, mais néanmoins un effort conséquent avec un calendrier incertain et très probablement exigeant la coopération des parties prenantes au sein de ce réseau.
Ayrıntılı Protokol
Protokol kabaca üçe ayrılabilir Parçalar: fikir birliği mekanizması, parachain arayüzü ve zincirler arası işlem yönlendirme. 6.1. Röle zinciri Operasyon. röle zinciri irade büyük ihtimalle Ethereum'a genel olarak benzeyen bir zincir olabilir, çünkü hesaba durum eşleme adresi ile durum tabanlıdır bilgi, esas olarak bakiyeler ve (tekrar oynatmayı önlemek için) işlem sayacı. Hesapları buraya yerleştirmek tek bir amaca hizmet eder: Kimliğin sahip olduğu muhasebeyi sağlamak sistemdeki payın miktarı.7 Ancak dikkate değer farklılıklar olacaktır: • Sözleşmeler işlemler yoluyla dağıtılamaz; Aktarma zincirindeki uygulama işlevselliğinden kaçınma arzusundan dolayı, sözleşmelerin kamuya açık hale getirilmesini desteklemek. • Bilgi işlem kaynağı kullanımı (“gaz”) hesaba katılmaz; kamusal kullanıma açık tek işlevler olduğundan gaz muhasebesinin arkasındaki mantık düzeltilecek artık tutmuyor. Bu nedenle sabit bir ücret uygulanacaktır. her durumda daha fazla performansa olanak tanır yapılması gerekebilecek dinamik kod yürütme ve daha basit bir işlem formatı. • Listelenen sözleşmeler için otomatik yürütmeye ve ağ mesajı çıktılarına izin veren özel işlevsellik desteklenir. Aktarma zincirinin bir VM'ye sahip olması durumunda ve bu EVM temel alınarak, maksimum basitliği sağlamak için bir dizi değişiklik yapılacaktır. Muhtemelen bir dizi yerleşik sözleşmeye sahiptir (şu adrestekilere benzer) platforma özel izin vermek için Ethereum içindeki 1-4 adresleri) Bir fikir birliği sözleşmesi de dahil olmak üzere yönetilmesi gereken görevler, validator sözleşmesi ve parachain sözleşmesi. EVM değilse, WebAssembly [2] (wasm) arka ucu en olası alternatiftir; bu durumda genel yapı benzer olurdu ama gerek olmazdı Wasm'ın geçerli bir hedef olduğu yerleşik sözleşmeler için olgunlaşmamış diller yerine genel amaçlı diller için ve EVM için sınırlı diller. Mevcut Ethereum protokolünden diğer olası sapmalar da oldukça mümkündür; örneğin, protokolün basitleştirilmesi. Aynı blok içerisinde çakışmayan işlemlerin paralel olarak yürütülmesine olanak tanıyan işlem-makbuz formatı, Serenity değişiklik serisi için önerildiği gibi. Pek olası olmasa da, Serenity benzeri bir şeyin olması mümkündür. "saf" zincir, aktarma zinciri olarak konuşlandırılabilir ve staking token gibi şeyleri yönetmek için özel bir sözleşme bunu temel bir parçası haline getirmek yerine dengeler zincirin protokolü. Şu anda bunun pek olası olmadığını düşünüyoruz yeterince mükemmel bir protokol basitleştirmesi sunacak içerdiği ek karmaşıklık ve belirsizliğe değer onu geliştirmede. 7Sistemin genel güvenliğinden belirli bir sahibinin sorumlu olduğu tutarı temsil etmenin bir yolu olarak, bu hisse hesapları kaçınılmaz olarak bazı ekonomik değerleri kodlar. Ancak şunu da anlamak gerekir ki, bu tür değerlerin kullanılmasına yönelik bir niyet söz konusu değildir. herhangi bir şekilde gerçek dünya mal ve hizmetleriyle takas amacıyla token'lerin şunlara benzetilemeyeceği belirtilmelidir: para birimidir ve bu nedenle aktarma zinciri, uygulamalara ilişkin nihilist felsefesini korur.POLKADOT: HETEROJEN ÇOK ZİNCİRLİ BİR ÇERÇEVE VİZYONU TASLAK 1 10 Konsensüs mekanizmasını, validator setini, doğrulama mekanizmasını ve parachainleri yönetmek için gereken bir dizi küçük işlevsellik vardır. Bunlar yekpare bir protokol altında birlikte uygulanabilir. Bununla birlikte, modülerliğin göstergesi olarak bunları aktarma zincirinin "sözleşmeleri" olarak tanımlıyoruz. Bu gerekir nesneler oldukları anlamına gelecek şekilde alınmalıdır (anlamında) nesne yönelimli programlama) aktarma zincirinin konsensüs mekanizması tarafından yönetilir, ancak bu zorunlu değildir. EVM benzeri işlem kodlarındaki programlar olarak tanımlanırlar veya aracılığıyla ayrı ayrı adreslenebilir olsalar bile hesap sistemi. 6.2. Bahis Sözleşmesi. Bu sözleşme validator kümesini korur. Şunları yönetir: • şu anda hangi hesapların validators olduğu; • kısaca validators olmaya müsait olanlar uyarı; • hangi hesaplara hisse adaylığı yerleştirildi bir validator; • staking hacmi, kabul edilebilir ödeme oranları ve adresleri ve kısa vadeli (oturum) kimliklerini içeren her birinin özellikleri. Bir hesabın üye olma arzusunu kaydetmesine olanak tanır. bağlı validator (gereksinimleriyle birlikte), bir kimliğe aday olmak ve önceden mevcut bağlı validators için bu durumdan çıkma isteklerini kaydetmek için. Aynı zamanda doğrulama ve kanonikleştirme mekanizması için makinenin kendisini içerir. 6.2.1. Stake-token Likidite. Genellikle arzu edilir toplam staking tokens'nin mümkün olduğu kadar çoğuna sahip olmak beri ağ bakım operasyonlarında görevlendirildi bu, ağ güvenliğini doğrudan staking token'nin genel "piyasa değerine" bağlar. Bu kolayca yapılabilir para biriminin şişirilmesi ve gelirlerin katılımcılara validators olarak dağıtılması yoluyla teşvik edilebilir. Ancak bunu yapmak bir sorun yaratır: token ise Staking Sözleşmesinde indirim cezasıyla kilitlenmişse, önemli bir kısmı nasıl yeterince kalabilir? Fiyat keşfine izin vermek için sıvı mı? Buna bir yanıt, temel hisseli token üzerinde değiştirilebilir token'leri güvence altına alan basit bir türev sözleşmesine izin vermektir. Bunu güvene dayalı olmayan bir şekilde düzenlemek zordur. Ayrıca, bu türev token'ler, farklı Avro Bölgesi hükümetlerinin tahvillerinin takas edilebilir olmaması nedeniyle aynı nedenle eşit olarak ele alınamaz: dayanak varlığın başarısızlığa uğraması ve yeniden oluşması ihtimalidir değersiz. Avro Bölgesi hükümetleri ile varsayılan. validator-bahisli tokens ile validator olabilir kötü niyetli davranın ve cezalandırılın. İlkelerimize sadık kalarak en basit çözümü seçiyoruz: token'ların tümü stake edilmeyecektir. Bu şu anlama gelir token'lerin bir kısmı (belki %20) zorunlu olarak sıvı kalacaktır. Bu, güvenlik açısından kusurlu olsa da, güvenlik açısından temel bir fark yaratması pek olası değildir. ağın güvenliği; Tahvillere el konulmasından kaynaklanabilecek tazminatların yüzde 80'i hala yapılabilecek %100 staking "mükemmel durum" ile karşılaştırıldığında. Stacked ve likit token'ler arasındaki oran, ters açık artırma mekanizması yoluyla oldukça basit bir şekilde hedeflenebilir. Temel olarak, token sahipleri validator olmakla ilgileniyorlar her biri staking sözleşmesine şunu belirten bir teklif gönderir: almaları gereken minimum ödeme oranı parçası. Her oturumun başında (oturumlar düzenli olarak, belki saatte bir kez kadar sıklıkta meydana gelir) validator yuva her isteğe göre doldurulacak validator'nın bahis miktarı ve ödeme oranı. Olası bir algoritma çünkü bu, en düşük teklifleri verenleri almak olacaktır. hedeflenen toplam hisseden daha yüksek olmayan bir hisseyi temsil eder yuva sayısına bölünür ve bu miktarın yarısının alt sınırından daha az olamaz. Yuvalar doldurulamıyorsa, alt sınır, tatmin etmek için bazı faktörlerle tekrar tekrar azaltılabilir. 6.2.2. Aday gösterme. Güvenle aday gösterilmek mümkündür staking tokens olanları aktif bir validator'ye bağlayarak onlara veririz validator'nin görevlerinin sorumluluğu. Eserlerin aday gösterilmesi onay-oylama sistemi aracılığıyla. Her aday aday staking sözleşmesine bir talimat gönderebilir altında bir veya daha fazla validator kimliği ifade eden sorumluluklarını emanet etmeye hazırdırlar. Her oturumda adayların tahvilleri dağıtılır. bir veya daha fazla validator ile temsil edilir. Dağıtma algoritması, eşdeğer toplamın validators kümesi için optimize eder tahviller. Aday gösterenlerin tahvilleri validator a'nın etkin sorumluluğu altına girer.ya faiz kazanırsın ya da acı çekersin buna göre ceza indirimi. 6.2.3. Senetlere El Koyma/Yakma. Belirli validator davranışları, teminatlarının cezai olarak azaltılmasıyla sonuçlanır. Eğer Tahvilin izin verilen minimum seviyenin altına düşürülmesi, oturum zamanından önce sonlandırıldı ve başka bir oturum başlatıldı. Cezalandırılabilir validator uygunsuz davranışların kapsamlı olmayan listesi şunları içerir: • Sağlayamayan bir parachain grubunun parçası olmak parachain bloğunun geçerliliği konusunda fikir birliği; • geçersiz bir belgenin geçerliliği için aktif olarak imza atmak parachain bloğu; • çıkış yüklerini önceden sağlayamama uygun olarak oylandı; • fikir birliği süreci sırasında hareketsizlik; • rakip çatallardaki aktarma zinciri bloklarının doğrulanması. Bazı hatalı davranış vakaları ağın bütünlüğünü tehdit eder (geçersiz parachain bloklarının imzalanması ve bir çatalın birden fazla tarafının doğrulanması gibi) ve dolayısıyla bağın tamamen azaltılması yoluyla etkili bir şekilde sürgüne yol açar. içinde diğer, daha az ciddi durumlar (örn. fikir birliğinde hareketsizlik) süreç) veya suçun kesin olarak dağıtılamadığı durumlarda (etkisiz bir grubun parçası olmak), küçük bir kısım Bunun yerine teminat para cezasına çarptırılabilir. İkinci durumda, bu kötü amaçlı olduğundan emin olmak için alt grup karmaşasıyla iyi çalışır düğümler, ikincil olarak hasar görmüş hayırsever düğümlerden önemli ölçüde daha fazla kayba uğrar. Bazı durumlarda (örneğin, çoklu çatal doğrulaması ve geçersiz alt blok imzalama) validator'ler sürekli doğrulama nedeniyle birbirlerinin hatalı davranışlarını kendileri kolayca tespit edemiyorlar Her bir parachain bloğunun kaldırılması çok zorlu bir görev olacaktır. Burada dışındaki tarafların desteğinin sağlanması gerekmektedir. Bu tür hatalı davranışları doğrulamak ve raporlamak için doğrulama süreci. Taraflar bu tür bir faaliyeti bildirdikleri için bir ödül alırlar; "Balıkçı" terimi, bu durumun pek mümkün olmamasından kaynaklanıyor böyle bir ödülden. Bu vakalar genellikle çok ciddi olduğundan, el konulan tahvilden her türlü ödülün kolayca ödenebileceğini öngörüyoruz. Genelde yanmayı dengelemeyi tercih ederiz (yani hiçbir şeye indirgeme) yerine yeniden tahsis ile toptan yeniden tahsis girişiminde bulunuldu. Bunun etkisi var
POLKADOT: HETEROJEN ÇOK ZİNCİRLİ BİR ÇERÇEVE VİZYONU TASLAK 1 11 token'nin genel değerini artırarak, ağ belirli bir düzeyden ziyade genel olarak bir dereceye kadar keşifte yer alan taraf. Bu esas olarak bir güvenlik amaçlıdır Mekanizma: İlgili büyük miktarlar, hepsi aşırı ve akut davranış teşviklerine yol açabilir tek bir hedefe bahşedilmiştir. Genel olarak, ödülün ağ için doğrulamayı değerli kılacak kadar büyük olması, ancak bir doğrulamanın karşılanmasının maliyetini karşılayacak kadar da büyük olmaması önemlidir. iyi finanse edilmiş, iyi organize edilmiş “endüstriyel düzeyde” suç Kötü davranışlara zorlamak için bazı şanssız validator'ya hack saldırısı. Bu şekilde, talep edilen tutarın genellikle hatalı validator'nin doğrudan bağından daha büyük, öyle ki yaramazlık yapmaktan ve ödül için kendini ihbar etmekten kaynaklanan sapkın teşvikler. Bu durumla açıkça mücadele edilebilir olmak için asgari doğrudan tahvil şartı aracılığıyla validator veya dolaylı olarak aday gösterenleri, yatırılmış küçük tahvilleri olan validator'ların büyük bir teşvikinin olmadığı konusunda eğiterek iyi davranmak. 6.3. Parachain Kaydı. Her parachain şu şekilde tanımlanır: bu kayıt defteri. Nispeten basit bir veritabanı benzeri yapıdır ve hem statik hem de dinamik bilgileri tutar. her zincir. Statik bilgiler zincir indeksini (basit bir tamsayı), doğrulama protokolü kimliğiyle birlikte bir farklı sınıfları birbirinden ayırmanın bir yolu doğru doğrulama algoritmasının olabilmesi için parachain geçerli bir aday öne sürmekle görevli validators tarafından yönetiliyor. İlk kavram kanıtı yerleştirmeye odaklanacaktır. yeni doğrulama algoritmalarını istemcilerin kendilerine aktarır ve her seferinde protokolün sert bir şekilde çatallanmasını gerektirir. ek zincir sınıfı eklendi. Sonuçta yine de doğrulama algoritmasını belirtmek mümkün olabilir Müşterilerin kullanabileceği kadar titiz ve etkili bir yol yeni parachain'lerle etkili bir şekilde çalışabilmektedir. sert çatal. Bunun olası bir yolu şunu belirtmek olacaktır: köklü bir parachain doğrulama algoritması, WebAssembly gibi yerel olarak derlenmiş, platformdan bağımsız bir dil. Belirlemek için ek araştırma gereklidir bunun gerçekten mümkün olup olmadığı, ancak eğer öyleyse, bununla birlikte sert çatalları ortadan kaldırmanın muazzam avantajı kesinlikle. Dinamik bilgi, işlem yönlendirme sisteminin küresel anlaşmaya sahip olması gereken yönlerini içerir. Parachain'in giriş kuyruğu olarak (bölüm 6.6'da açıklanmıştır). Kayıt defteri yalnızca parachain'lerin eklenmesini sağlayabilir tam referandum oylaması yoluyla; bu yönetilebilir dahili olarak ancak daha büyük olasılıkla harici bir yere yerleştirilir kapsamında yeniden kullanımı kolaylaştırmak amacıyla referandum sözleşmesi daha genel yönetişim bileşenleri. Parametreler oylama gereklilikleri (örneğin gerekli yeter çoğunluk, çoğunluk ek zincirlerin ve diğerlerinin kaydı için gerekli) daha az resmi sistem yükseltmeleri bir “ana anayasa” ama muhtemelen oldukça geleneksel bir anayasayı takip edecekler. en azından başlangıçta yol. Kesin formülasyon bitti mevcut çalışmanın kapsamı, ancak ör. toplam sistemin üçte birinden fazlasıyla geçecek üçte ikilik bir çoğunluk Hisselerin olumlu oylanması mantıklı bir başlangıç noktası olabilir. Ek işlemler arasında parachainlerin askıya alınması ve kaldırılması yer alır. Uzaklaştırma umarım hiçbir zaman olmaz olur, ancak en azından bir koruma olacak şekilde tasarlanmıştır Parachain'in doğrulama sisteminde bazı zorlu problemler var. Bunun olabileceği en bariz örnek validators'nin üzerinde anlaşamamasına yol açan uygulamalar arasında fikir birliği açısından kritik bir farka ihtiyaç duyulmaktadır. geçerlilik veya bloklar. Doğrulayıcıların kullanması teşvik edilecektir. birden fazla istemci uygulamasını gerçekleştirebilmeleri için tahvillere el konulmadan önce böyle bir sorunu tespit etmek. Askıya alma acil bir tedbir olduğundan, dinamik validator-oylamanın himayesi altında referandumdan daha fazlası. Yeniden etkinleştirme her ikisi de mümkün olabilir validators'den veya referandumdan. Parachainlerin tamamen ortadan kaldırılması ancak referandumdan sonra gerekli olacak düzenli bir geçişe izin vermek için önemli miktarda ödemesiz süre ya bağımsız bir zincir ya da başka bir zincirin parçası olmak fikir birliği sistemi. Ek süre muhtemelen Ayların sırasına göre düzenlenir ve farklı sıralamaların yapılabilmesi için parachain kayıt defterinde her zincir bazında düzenlenmesi muhtemeldir. Parachain'ler duruma göre farklı ödemesiz sürelerden yararlanabilirler onların ihtiyacı. 6.4. Sızdırmazlık Rölesi Blokları. Sızdırmazlık, özünde, kanonikleştirme sürecine; yani temel bir veri hangisini dönüştürorijinali temelde tekil ve anlamlı bir şeye dönüştürür. PoW zinciri altında, mühürleme aslında madencilikle eşanlamlıdır. Bizim durumumuzda, validators'den bir belgenin geçerliliği, kullanılabilirliği ve kanonikliğine ilişkin imzalı ifadelerin toplanmasını içerir. belirli röle zinciri bloğu ve parachain blokları temsil ediyor. Temel BFT fikir birliği algoritmasının mekaniği mevcut çalışmanın kapsamı dışındadır. Yapacağız bunun yerine bunu varsayan bir ilkel kullanarak tanımlayın. fikir birliği yaratan devlet makinesi. Sonuçta bekliyoruz bir dizi umut verici BFT fikir birliğinden ilham almak çekirdekteki algoritmalar; Tangaora [9] (BFT çeşidi) Raft [16]), Tendermint [11] ve HoneyBadgerBFT [14]. Algoritmanın paralel olarak birden fazla parachain üzerinde anlaşmaya varması gerekecek, bu da alışılagelmiş olandan farklı olacaktır. blockchain fikir birliği mekanizmaları. Bir kez olduğunu varsayıyoruz fikir birliğine varıldığında fikir birliğini kaydedebiliriz herhangi biri tarafından sağlanabilecek reddedilemez bir kanıtla Katılımcılar buna. Ayrıca hatalı davranışı da varsayıyoruz. protokol dahilinde genellikle küçük bir miktara indirgenebilir en aza indirmek için yaramazlık yapan katılımcıları içeren grup cezayı verirken ikincil hasar.8 İmzalı ifadelerimizin şeklini alan kanıt, röle zinciri bloğunun başlığına birlikte yerleştirilir aktarma zincirinin durum kökü ve işlem deneme kökü başta olmak üzere bazı diğer alanlarla birlikte.
sızdırmazlık süreç alır yer altında bir bekar fikir birliği yaratan mekanizma adresleme ikisi de the röle zincirinin bloğu ve parachainlerin blokları aktarıcının içeriğinin bir kısmı: parachain'ler alt grupları tarafından ayrı ayrı "taahhüt edilmez" ve daha sonra harmanlanmaz daha sonra. Bu, aktarma zinciri için daha karmaşık bir süreçle sonuçlanır, ancak gecikmeyi en aza indirerek ve tüm sistemin fikir birliğini tek bir aşamada tamamlamamıza olanak tanır. oldukça karmaşık veri kullanılabilirliği gereksinimleri için aşağıdaki yönlendirme işlemi için faydalıdır. 8Tendermint BFT ve orijinal Slasher gibi mevcut PoS tabanlı BFT fikir birliği şemaları bu iddiaları karşılamaktadır.
POLKADOT: HETEROJEN ÇOK ZİNCİRLİ BİR ÇERÇEVE VİZYONU TASLAK 1 12 Her katılımcının fikir birliği makinesinin durumu basit (2 boyutlu) bir tablo olarak modellenebilir. Her katılımcının (validator) formda bir dizi bilgisi vardır. Her bir parachain blok adayı ve aktarma zinciri blok adayı ile ilgili olarak diğer katılımcıların imzalı beyanlarının (“oyları”). Bilgi seti iki parçadan oluşmaktadır veri sayısı: Kullanılabilirlik: var bu validator sahip olmak çıkış bu bloktan işlem sonrası bilgiler Aşağıdaki blokta parachain adaylarını doğru şekilde doğrulayabiliyorlar mı? Oy verebilirler 1(bilinen) veya 0 (henüz bilinmiyor). Bir kez onlar 1 oy, benzer şekilde oy vermeye kararlılar bu sürecin geri kalanı. Daha sonra geçerli olmayan oylar buna saygı duymak cezanın gerekçesidir. Geçerlilik: parachain bloğu geçerli mi ve hepsi geçerli mi? harici referanslı veriler (ör. işlemler) müsait mi? Bu yalnızca oy verdikleri parachain'e atanan validator'ler için geçerlidir. 1 (geçerli), -1 (geçersiz) veya 0 şeklinde oy verebilirler. (henüz bilinmiyor). Sıfır dışında oy verdiklerinde, geri kalan süre boyunca bu şekilde oy kullanmaya kararlıyız süreç. Daha sonra buna saygı göstermeyen oylar ceza gerekçesidir. Tüm validator'ler oy vermelidir; Yukarıdaki kurallara uygun olarak oylar yeniden gönderilebilir. ilerlemesi Konsensüs, paralel olarak gerçekleşen her bir parachain üzerinde birden fazla standart BFT konsensüs algoritması olarak modellenebilir. Bunlar potansiyel olarak göreceli olarak engellendiğinden kötü niyetli aktörlerin küçük bir azınlığı yoğunlaşıyor tek bir parachain grubu için genel fikir birliği mevcuttur En kötü senaryoyu sınırlayan bir geri durdurma noktası oluşturun yalnızca bir veya daha fazla geçersiz parachain bloğuna kilitlenme (ve Sorumlulara bir dizi ceza). Bireysel blokların geçerliliği için temel kurallar (toplam validators kümesinin bir bütün olarak elde edilmesine olanak sağlar) benzersiz parachain adayı olma konusunda fikir birliği kanonik röleden referans alınacak): • validator üyelerinin en az üçte ikisinin olumlu oy kullanması ve hiçbirinin olumsuz oy kullanmaması gerekir; • çıkış kuyruğu bilgilerinin kullanılabilirliği konusunda üçte birden fazla validator olumlu oy kullanmalıdır. Geçerliliğe ilişkin en az bir olumlu ve en az bir olumsuz oy olması halinde istisnai bir durum yaratılır ve validator'lerden oluşan grubun tamamı karar vermek için oy kullanmalı kötü niyetli taraflar varsa veya kazara bir durum varsa çatal. Geçerli ve geçersiz oyların dışında üçüncü tür oylar izin veriliyor, her ikisine de oy vermeye eşdeğer, yani Düğümün çelişkili görüşleri var. Bunun nedeni şunlar olabilir: düğümün sahibi birden fazla uygulamayı çalıştırıyor katılmıyorum, bu da protokolde olası bir belirsizliğe işaret ediyor. Tüm oylar tam validator kümesinden sayıldıktan sonra, eğer kaybedilen görüşün en azından küçük bir oranı vardır ( parametrelendirilebilir; en fazla yarısı, belki de önemli ölçüde daha az) kazanan görüşün oylarının, o zaman olduğu varsayılır kazara bir parachain çatalı olursa, parachain otomatik olarak konsensüs sürecinden askıya alınır. Aksi takdirde bunun kötü niyetli bir davranış olduğunu varsayarız ve cezalandırırız. muhalif görüşe oy veren azınlık. Sonuç, aşağıdakileri gösteren bir dizi imzadır: kanoniklik. Röle zinciri bloğu daha sonra kapatılabilir ve bir sonraki bloğun mühürlenmesi süreci başladı. 6.5. Sızdırmazlık Röle Bloklarına yönelik iyileştirmeler. iken bu sızdırmazlık yöntemi sistemin çalışması konusunda güçlü garantiler verir, çok iyi ölçeklenmez çünkü her parachain'in anahtar bilgisinin kendine ait olması gerekir kullanılabilirlik, tüm validator'lerin üçte birinden fazlası tarafından garanti edilir. Bu, her validator'nin sorumluluk ayak izinin olduğu anlamına gelir daha fazla zincir eklendikçe büyür. Açık fikir birliği ağlarında veri kullanılabilirliği özünde çözülmemiş bir sorun olduğundan, validator düğümlerine yerleştirilen yükü azaltmanın yolları vardır. Basit bir çözüm, validators'nin omuz vermesi gerektiğini fark etmektir. Veri kullanılabilirliği sorumluluğu kendilerine ait olduğundan, verileri kendilerinin saklaması, iletmesi veya çoğaltması gerekmez. Muhtemelen ilişkili (ya da hatta tam olarak) ikincil veri siloları aynı) bu verileri derleyen derleyiciler şunları yönetebilir: validator'lerin faiz/gelirlerinin bir kısmını ödeme olarak sunarak kullanılabilirliği garanti etme görevi. Ancak bu, bir miktar orta düzeyde ölçeklenebilirlik satın alsa da, yine de altta yatan soruna yardımcı olmuyor; o zamandan beri daha fazla zincir eklemek genel olarak ek validator gerektirecektir; devam eden ağ kaynağı tüketimi (özellikle bant genişliği açısından) karesi ile birlikte artar. thezincirler uzun vadede savunulamaz bir özelliktir. Eninde sonunda kafamızı vurmaya devam edeceğiz şunu belirten temel sınırlamaya karşı: Güvenli olarak kabul edilebilecek bir fikir birliği ağı, devam eden bant genişliği gereksinimleri toplam mertebesindedir validators çarpı toplam giriş bilgisi. Bunun nedeni güvenilmeyen bir ağın, veri depolama görevini birçok düğüme düzgün bir şekilde dağıtamaması fazlasıyla dağıtılabilir işleme görevi dışında. 6.5.1. Gecikme ile tanışın. Bunu yumuşatmanın bir yolu Kural, aciliyet kavramını gevşetmektir. validators'nin %33+1 validators'nin kullanılabilirlik için oy vermesini hemen değil, yalnızca eninde sonunda zorunlu kılarak, üstel veri yayılımından daha iyi yararlanabilir ve veri alışverişindeki zirve noktaların dengelenmesine yardımcı olabiliriz. Makul bir eşitlik (kanıtlanmamış olsa da) şunlar olabilir: (1) gecikme = katılımcılar × zincirler Mevcut modelde sistemin boyutu ölçekleniyor İşlemenin yapılmasını sağlamak için zincir sayısıyla dağıtılmış; her zincir en az bir validator gerektireceğinden ve kullanılabilirlik kanıtını sabit bir değere sabitledik oranı validators ise katılımcılar da benzer şekilde büyür zincir sayısı ile. Sonuç olarak: (2) gecikme = boyut2 Bu, sistem büyüdükçe gerekli bant genişliğinin ve kullanılabilirliğe kadar olan gecikmenin tüm ağ genelinde bilindiği anlamına gelir. numara olarak da nitelendirilebilecek ağ kesinlikten önceki blok sayısı karesiyle birlikte artar. bu önemli bir büyüme faktörüdür ve önemli bir engel teşkil edebilir ve bizi “düz olmayan” paradigmalara zorlayabilir birkaç “Polkadotes”i bir hiyerarşi halinde oluşturmak gibi direklerin bir aktarma zinciri ağacı aracılığıyla çok seviyeli yönlendirilmesi için.
POLKADOT: HETEROJEN ÇOK ZİNCİRLİ BİR ÇERÇEVE VİZYONU TASLAK 1 13 6.5.2. Halkın Katılımı. Bir olası yön daha sürece halkın katılımını sağlamaktır. Mikro şikayet sistemi. Balıkçılara benzer şekilde, iddia eden validator'leri denetleyen harici taraflar olabilir kullanılabilirlik. Görevleri bu tür bir uygunluğu gösteremeyen birini bulmaktır. Bunu yaparken onlar diğer validator'lere mikro şikayette bulunabilir. PoW veya Sybil saldırısını azaltmak için hisseli tahvil kullanılabilir bu da sistemi büyük ölçüde işe yaramaz hale getirecektir. 6.5.3. Kullanılabilirlik Garantörleri. Son bir rota şu olacaktır: ikinci bir bağlı validator kümesini "kullanılabilirlik" olarak aday gösterin garantörler”. Bunlar normal validator'lerde olduğu gibi bağlanır ve hatta aynı kümeden bile alınabilir. (eğer öyleyse, en azından oturum başına, uzun vadeli bir süre boyunca seçileceklerdir). Normal validator'lerin aksine, onlar Parachain'ler arasında geçiş yapmazdım ama bunun yerine Tüm önemli zincirler arası verilerin kullanılabilirliğini doğrulamak için tek bir grup oluşturun. Bunun katılımcılar ve zincirler arasındaki denkliği gevşetme avantajı vardır. Esas olarak zincirler büyür (orijinal zincir validator seti ile birlikte), oysa katılımcılar ve özellikle veri kullanılabilirliği vasiyetinde yer alanlar en azından alt doğrusal kalabilirler ve muhtemelen sabit. 6.5.4. Harmanlayıcı Tercihleri. Bunun önemli bir yönü Sistemin amacı sağlıklı seçim yapılmasını sağlamaktır. herhangi bir parachain'de blokları oluşturan harmanlayıcılar. eğer bir tek bir harmanlayıcı bir parachain'e hakim oldu, ardından bazı saldırılar oldu eksikliği olasılığı nedeniyle daha uygulanabilir hale gelir. dış verilerin mevcudiyeti daha az belirgin olacaktır. Bir seçenek parachain bloklarını yapay olarak ağırlıklandırmaktır. çok çeşitli derleyicileri tercih etmek için sözde rastgele bir mekanizma. İlk etapta şunu isteriz: validators'nin desteklediği fikir birliği mekanizmasının bir parçası olarak Parachain blok adaylarının “daha ağır” olduğu belirlendi. Benzer şekilde, validators'yi şunu yapmaya teşvik etmeliyiz: bulabilecekleri en ağır bloğu önerin; bu olabilir ödüllerinin bir kısmını adaylarının ağırlığına orantılı hale getirerek yapılır. Harmanlayıcılara makul bir adalet sağlanmasını sağlamak adaylarının kazanan olarak seçilme şansı Adayın fikir birliği içinde olması durumunda, belirli bir ağırlığı belirleriz. Parachain blok adayı, her bir harmanlayıcıya bağlı rastgele bir fonksiyon üzerinde belirlenir. Örneğin, alarak harmanlayıcının adresi arasındaki XOR mesafe ölçüsü ve bazı kriptografik olarak güvenli sahte rastgele numaralar oluşturulan bloğun noktasına yakın olarak belirlenir (kavramsal bir “kazanan bilet”). Bu, her birine etkili bir şekilde verir harmanlayıcı (veya daha spesifik olarak her harmanlayıcının adresi) aday bloğunun "kazanması" için rastgele şans diğerleri. Tek bir harmanlayıcının kazanan bilete yakın bir adresi "madencilik" yapmasının ve böylece her bloğun favorisi olsaydı, harmanlayıcının adresine bir miktar atalet eklerdik. Bu onları istemek kadar basit olabilir adreste temel miktarda para bulunması. bir daha Zarif yaklaşım, yakınlığa ağırlık vermek olacaktır. park edilen para miktarıyla bilet kazanma söz konusu adres. Modelleme henüz yapılmamışken, bu mekanizmanın çok fazla olanak sağlaması oldukça mümkündür. Küçük paydaşların derleyici olarak katkıda bulunmaları. 6.5.5. Aşırı Kilolu Bloklar. Bir validator kümesinin güvenliği ihlal edilirse, bir blok oluşturabilir ve önerebilirler. geçerlidir, yürütülmesi aşırı miktarda zaman alır ve doğrulayın. Bu bir validator grubunun yapabileceği bir sorundur. makul bir şekilde çok uzun zaman alan bir blok oluşturur Kısa yola izin veren belirli bir bilgi parçası zaten bilinmiyorsa, örneğin; büyük çarpanlara ayırma birinci sınıf. Eğer tek bir derleyici bu bilgiyi biliyorsa, o zaman kendilerininkini alma konusunda açık bir avantaja sahip olacaklar diğerleri eski bloğu işlemekle meşgul olduğu sürece adaylar kabul edildi. Bu bloklara fazla kilolu diyoruz. validator'lerin bu blokları göndermesine ve doğrulamasına karşı koruma, büyük ölçüde aşağıdakilerle aynı kisvenin altında kalır: geçersiz bloklar, ancak ek bir uyarıyla: Çünkü bir bloğun yürütülmesi için geçen süre (ve dolayısıyla durumu aşırı kilo) subjektiftir, oylamanın nihai sonucu Kötü davranışlar esasen üç kampa ayrılacaktır. Bir olasılık bloğun kesinlikle aşırı kilolu olmamasıdır. bu durumda üçte ikiden fazlası yapabileceklerini beyan ediyor bloğu belirli bir limit dahilinde yürütün (örneğin, bloklar arasında izin verilen toplam sürenin %50'si). Bir diğeri ise blok d'dirkesinlikle fazla kilolu - eğer daha fazlaysa bu olurdu üçte ikisi bloğu yürütemediklerini beyan ediyor söz konusu limit dahilinde. Son bir olasılık oldukça eşit validators arasında fikir ayrılığı. Bu durumda şunları yapabiliriz: orantılı bir ceza uygulamayı seçin. validators'nin ne zaman olabileceklerini tahmin edebilmelerini sağlamak için Aşırı ağırlıklı bir blok önerirken, her blok için kendi performanslarına ilişkin bilgi yayınlamalarını talep etmek mantıklı olabilir. Yeterli bir süre boyunca, bu onların işlem hızlarının profilini çıkarmalarına olanak sağlamalıdır onları yargılayacak akranlarına göre. 6.5.6. Harmanlayıcı Sigortası. validators için bir sorun kaldı: PoW ağlarından farklı olarak, bir harmanlayıcının bilgilerini kontrol etmek için Geçerlilik için bloğun içindeki işlemleri gerçekten yürütmeleri gerekir. Kötü niyetli harmanlayıcılar validator'lere geçersiz veya aşırı ağırlıklı bloklar besleyerek onların sıkıntı yaşamasına neden olabilir (boşa harcama) kaynakları) ve potansiyel olarak önemli bir fırsat maliyeti talep etmektedir. Bunu azaltmak için basit bir strateji öneriyoruz. validators'nin bir parçası. İlk olarak parachain blok adayları gönderildi validators'ye geçiş zinciri hesabından imza atılmalıdır fonlarla; değilse validator düşmelidir hemen. İkinci olarak, bu tür adaylar, aşağıdakilerin bir kombinasyonu (örneğin çarpma) yoluyla öncelik sırasına konmalıdır: belirli bir sınıra kadar hesaptaki fon miktarı, derleyicinin geçmişte başarılı bir şekilde önerdiği önceki blokların sayısı (önceki bloklardan bahsetmeye bile gerek yok) cezalar) ve kazanmaya yakınlık faktörü daha önce tartışıldığı gibi bilet. Kapak aynı olmalı davada validator'ye ödenen cezai tazminat olarak geçersiz bir blok gönderiyorlar. Düzenleyicileri geçersiz veya fazla kilolu blok adaylarını validators'ye göndermekten caydırmak için herhangi bir validator Bir sonraki bloğa, hatalı davranış iddiasında bulunan ve hatalı davranan toplayıcının hesabındaki fonların bir kısmının veya tamamının transfer edilmesi sonucunu doğuran kusurlu bloğu içeren bir işlem yerleştirir mağdur validator adına hesap verin. Bu tür işlemler, harmanlayıcının işlem yapamayacağını garantilemek için diğer işlemleri önden çalıştırır. cezadan önce fonları kaldırın. miktarı Hasar olarak aktarılan fonlar henüz dinamik bir parametredir
POLKADOT: HETEROJEN ÇOK ZİNCİRLİ BİR ÇERÇEVE VİZYONU TASLAK 1 14 modellenecek ancak neden olunan kederin düzeyini yansıtacak şekilde muhtemelen validator blok ödülünün bir oranı olacaktır. Kime Kötü niyetli validator'lerin, toplayıcıların fonlarına keyfi olarak el koymasını önlemek için, düzenleyici, validator'nin kararına, karşılığında rastgele seçilmiş validator'lardan oluşan bir jüri ile itiraz edebilir. küçük bir depozito yatırmak için. validator'nin lehine karar verirlerse depozito onlar tarafından tüketilir. Değilse, depozito iade edilir ve validator para cezasına çarptırılır (çünkü validator çok daha kubbeli bir konumda, ceza kesilecek muhtemelen oldukça ağır olacaktır). 6.6. Zincirler arası İşlem Yönlendirme. Zincirler arası işlem yönlendirme temel bakımlardan biridir Aktarma zincirinin görevleri ve validator'leri. Bu Gönderilen bir işlemin (genellikle basitçe "göndermek" olarak kısaltılır) istenen çıktı olmaktan nasıl çıkacağını yöneten mantık bir kaynak parachain'den başka bir hedef parachain'in herhangi bir güven olmadan pazarlık edilemez girdisi olmaya gereksinimleri. Yukarıdaki ifadeleri dikkatle seçiyoruz; özellikle biz kaynakta bir işlem olmasını gerektirmez Parachain bu gönderiyi açıkça onayladı. Tek Modelimize koyduğumuz kısıtlamalar parachainlerin genel bloklarının bir parçası olarak paketlenmiş olarak sağlamalıdır işlem çıktısı, sonucu olan gönderiler bloğun yürütülmesi. Bu gönderiler birkaç FIFO kuyruğu olarak yapılandırılmıştır; the listelerin sayısı yönlendirme tabanı olarak bilinir ve 16 civarında. Özellikle bu sayı miktarı temsil ediyor başvurmak zorunda kalmadan destekleyebileceğimiz parachain sayısı çok fazlı yönlendirme. Başlangıçta Polkadot bunu destekleyecektir bir çeşit doğrudan yönlendirme, ancak biz olası bir yönlendirmeyi özetleyeceğiz bir araç olarak çok aşamalı yönlendirme süreci (“hiper yönlendirme”) Başlangıçtaki parachain setinin çok ötesine ölçeklendirme. Biz varsaymak bu hepsi katılımcılar biliyorum the sonraki iki blok için alt gruplamalar n, n + 1. Özetle, Yönlendirme sistemi şu aşamaları takip eder: • CollatorS: Doğrulayıcıların iletişim üyeleri[n][S] • Harmanlayıcılar: HER ALT GRUP İÇİN: Doğrulayıcıların[n][s] en az 1 üyesi temas halinde • Harmanlayıcılar: HER alt grup İÇİN: varsaymak çıkış[n −1][s][S] mevcut (tüm gelen gönderiler) verileri son bloktan 'S'ye aktarın) • Harmanlayıcılar: S için blok adayı b'yi oluşturun: (b.başlık, b.ext, b.kanıt, b.makbuz, b.çıkış) • Harmanlayıcılar: Gönder kanıt bilgi kanıt[S] = (b.başlık, b.ext, b.kanıt, b.makbuz) ila Doğrulayıcılar[n][S] • CollatorS: Harici işlem verilerinin b.ext olmasını sağlayın diğer derleyicilerin ve validator'lerin kullanımına sunulur • Harmanlayıcılar: İÇİN HER BİRİ alt grup s: Gönder çıkış bilgi çıkış[n][S][s] = (b.başlık, b.makbuz, b.çıkış[lar]) için the alma alt grup üyeler arasında sonraki blok Doğrulayıcılar[n + 1][s] • V alidatorV : Aynı kümedeki tüm üyeleri önceden bağlayın sonraki blok için: N = Zincir[n + 1][V ]; bağlanmak tüm validators v öyle ki Zincir[n + 1][v] = N • DoğrulayıcıV : Bunun için tüm veri girişlerini toplayın blok: İÇİN HER BİRİ alt grup s: Al çıkış[n −1][s][Zincir[n][V ]], diğer validators v'den Zincir[n][v] = Zincir[n][V ] olacak şekilde alın. Muhtemelen girişimin kanıtı için rastgele seçilmiş diğer validator'lerden geçiyoruz. • DoğrulayıcıV : Bunun için aday kanıtlarını kabul edin blok kanıtı[Zincir[n][V ]]. Oy bloğunun geçerliliği • DoğrulayıcıV : Şunun için aday çıkış verilerini kabul edin: sonraki blok: HER alt grup İÇİN, kabul et çıkış[n][s][N]. Oy engelleme çıkış kullanılabilirliği; ilgilenen validator'ler arasında yeniden yayınlayın, öyle ki Zincir[n + 1][v] = Zincir[n + 1][V ]. • DoğrulayıcıV : UZLAŞMAYA KADAR Burada: egress[n][from][to] geçerli çıkış kuyruğudur Parachain'den 'başlangıç'a giden gönderiler için bilgi 'n' blok numarasındaki parachain 'to'. CollatorS, parachain S için bir harmanlayıcıdır. V alidators[n][s], n blok numarasındaki parachain s için validators kümesidir. Tam tersine, Zincir[n][v], n numaralı blokta validator v'nin atandığı parachaindir. Block.egress[to] çıkıştır bazı parachain blok bloklarından gelen gönderi kuyruğu hedef parachain'dir. Harmanlayıcılar (işlem) ücretlerini topladıkları için blokları kanonik hale geliyor, teşvik ediliyorlar her bir sonraki blok hedefi için alt grubun üyeler mevcut çıkış kuyruğu hakkında bilgilendirilir Blok. Doğrulayıcılar yalnızca bir (parachain) blok üzerinde fikir birliği oluşturmaya teşvik edilir, bu nedenle pek umursamazlar hangi harmanlayıcının bloğu sonuçta kanonik hale gelir. içinde prensip olarak, bir validator bir derleyiciyle bağlılık oluşturabilir ve diğer derleyicilerin şansını azaltmak için komplo kurabilir blokların kanonik hale gelmesi, ancak bu hem zordur rastgele seçim nedeniyle düzenlemek içinvalidators'nin işlemi için Parachain'lere karşı, dayanıklı parachain blokları için ödenecek ücretlerde indirim yapılarak bu savunma yapılabilir. fikir birliği süreci. 6.6.1. Harici Veri Kullanılabilirliği. Parachain'in sağlanması harici verilerin aslında mevcut olması kalıcı bir sorundur İş yükünü dağıtmayı amaçlayan merkezi olmayan sistemler ağ. Sorunun merkezinde kullanılabilirlik var mümkün olmadığı için bunu belirten sorun etkileşimli olmayan bir kullanılabilirlik kanıtı veya herhangi bir türde ibraz etmek BFT sisteminin düzgün bir şekilde çalışması için kullanılabilir olmadığının kanıtı Doğruluğu aşağıdakilere dayanan herhangi bir geçişi doğrulamak bazı harici verilerin kullanılabilirliği, maksimum sayı kabul edilebilir Bizans düğümlerinin sayısı artı sistemin bir tanesi mevcut verilerin doğrulanması gerekir. Polkadot gibi bir sistemin ölçeğinin düzgün şekilde genişletilmesi için bu bir soruna davetiye çıkarıyor: eğer sabit bir oran validators ise Verilerin kullanılabilirliğini doğrulamalıdır ve varsayarak validators, verilerin mevcut olduğunu iddia etmeden önce verileri gerçekten depolamak isteyecekse, o zaman bu durumdan nasıl kaçınabiliriz? sistem boyutu (ve dolayısıyla validators sayısı) arttıkça bant genişliği/depolama gereksinimlerinin artması sorunu mu var? Olası bir cevap ayrı bir sete sahip olmak olabilir Siparişleri artan validators (kullanılabilirlik garantörleri) sayısı bir bütün olarak Polkadot boyutunda alt çizgisel olarak. bu 6.5.3'te açıklanmıştır. Ayrıca ikincil bir numaramız da var. Bir grup olarak derleyiciler, tüm verilerin doğrulanmasını sağlamak için içsel bir teşvike sahiptir. seçtikleri parachain için uygunlar çünkü onsuz yapabilecekleri başka bloklar yazamazlar işlem ücretlerini toplayın. Düzenleyiciler ayrıca üyelikleri değişkenlik gösteren bir grup oluşturur (rastgele doğası nedeniyle) parachain validator grupları) girişi önemsiz ve kolay
POLKADOT: HETEROJEN ÇOK ZİNCİRLİ BİR ÇERÇEVE VİZYONU TASLAK 1 15 kanıtlamak. Bu nedenle son derleyicilerin (belki de son birkaç bin bloğun) meydan okumalarına izin veriliyor. belirli bir parachain için harici verilerin kullanılabilirliği küçük bir tahvil için validators'ye blok yapın. Doğrulayıcılar, açıkça suç teşkil eden validator alt grubundan ifade veren kişilerle iletişime geçmeli ve ya verileri alıp derleyiciye iade etmeli ya da durumu üst kademeye iletmelidir. mevcudiyetin bulunmadığına dair ifade vererek meseleyi ifade etmek (veri sayımlarını sağlamanın doğrudan reddedilmesi tahvillere el koyma suçu olarak kabul edilir, bu nedenle uygunsuz davranış validator muhtemelen sadece bağlantıyı kes) ve ek validator'lerle iletişim kurma aynı testi yapmak için. İkinci durumda, teminat verenin tahvili iade edilir. Bu tür müsaitlik durumu olmayan referansları sunabilecek validator yeter sayısına ulaşıldığında serbest bırakılırlar, yaramazlık yapan alt grup cezalandırılır ve engelleme geri alınır. 6.6.2. Mesaj Yönlendirme. Her parachain başlığı bir içerir çıkış-üçlü-kök; bu, şunu içeren bir try'nin köküdür yönlendirme tabanı bölmeleri, her bölme birleştirilmiş bir listedir çıkış direkleri. Merkle kanıtları her yerde sunulabilir belirli bir parachain'in olduğunu kanıtlamak için parachain validators bloğun belirli bir hedef parachain için belirli bir çıkış kuyruğu vardı. Bir parachain bloğunun işlenmesinin başlangıcında, her biri söz konusu bloğa bağlı diğer parachain'in çıkış kuyruğu: bloğumuzun giriş kuyruğuna birleştirildi. Güçlü sanıyoruz, muhtemelen CSPR9, herhangi biri arasında herhangi bir kayırmacılık sunmayan deterministik bir operasyon elde etmek için alt blok sıralaması Parachain blok eşleştirmesi. Harmanlayıcılar yeni kuyruğu hesaplar ve çıkış kuyruklarını parachain'in kurallarına göre boşaltın mantık. Giriş kuyruğunun içeriği açıkça yazılmıştır parachain bloğuna. Bunun iki ana amacı vardır: İlk olarak, bu, parachain'in diğer parachain'lerden ayrı olarak güvenilir bir şekilde senkronize edilebileceği anlamına gelir. İkincisi, tüm girişin gerçekleşmesi durumunda veri lojistiğini basitleştirir kuyruk tek bir blokta işlenemiyor; validator'ler ve harmanlayıcılar aşağıdaki blokları işleyebilir kuyruğun verilerini özel olarak kaynaklamak zorunda kalmadan. Parachain'in giriş kuyruğu bir eşiğin üzerindeyse blok işlemenin sonunda miktar, ardından işaretlenir Aktarma zinciri doygun hale gelir ve başka mesaj gönderilemez. temizlenene kadar kendisine teslim edilecektir. Merkle kanıtları harmanlayıcının işleminin doğruluğunu göstermek için kullanılır Parachain bloğunun kanıtı. 6.6.3. Eleştiri. Bu temelle ilgili küçük bir kusur Mekanizma bomba sonrası saldırıdır. Burası her şeyin olduğu yer Parachain'ler mümkün olan maksimum miktarda gönderi gönderir belirli bir parachain'e. Bu hedefin bağlantısını sağlarken giriş kuyruğuna tek seferde girer, tekrar tekrar hasar verilmez standart bir işlem DoS saldırısı. Bir dizi iyi senkronize edilmiş ve normal şekilde çalışıyor N parachain için kötü amaçlı olmayan harmanlayıcılar ve validator'ler, Parachain başına N × M toplam validators ve L harmanlayıcı, biz blok başına toplam veri yollarını şu şekilde parçalayabilir: Doğrulayıcı: M −1+L+L: diğer validator'ler için M −1 Parachain setinde, bir aday parachain bloğu sağlayan her bir harmanlayıcı için L ve her bir harmanlayıcı için ikinci bir L önceki bloğun çıkış yüklerini gerektiren sonraki bloğun. (İkincisi aslında daha çok en kötü duruma benziyor Harmanlayıcıların bu tür bilgileri paylaşması muhtemel olduğundan operasyon veriler.) Harmanlayıcı: M +kN: İlgili her bir bağlantı için M parachain bloğu validator, çıkış yüklerini her parachain validator grubunun bazı alt kümelerine dağıtmak için kN bir sonraki blok (ve muhtemelen bazı tercih edilen harmanlayıcı(lar)). Bu nedenle, düğüm başına veri yolu yolları doğrusal olarak büyür sistemin genel karmaşıklığı ile. Bu iken makul, sistem yüzlerce veya binlerce parachain'e ölçeklendiğinden bir miktar iletişim gecikmesi olabilir daha düşük bir karmaşıklık büyüme oranı karşılığında emilir. Bu durumda çok aşamalı bir yönlendirme algoritması kullanılabilir. anlık yolların sayısını azaltmak için depolama arabellekleri ve gecikmenin eklenmesi pahasına. 6.6.4. Hyper-cube Yönlendirme. Hyper-cube yönlendirme çoğunlukla bir uzantı olarak oluşturulabilen bir mekanizmadır. Yukarıda açıklanan temel yönlendirme mekanizması. Esasen, Parachain ve alt grup düğümlerinin sayısıyla düğüm bağlantısını artırmak yerine yalnızca Parachainlerin logaritması. Gönderiler şu tarihler arasında geçiş yapabilir: Birkaç parachain kuyruğu nihai teslimata doğru ilerliyor. Yönlendirmenin kendisi deterministik ve basittir. Şununla başlıyoruz: giriş/çıkış kuyruklarındaki kutu sayısının sınırlandırılması; toplam parachain sayısı yerine bunlaryönlendirme tabanı (b) . Bu numara olarak sabitlenecek Parachainlerin sayısı değişir, bunun yerine yönlendirme üssü (e) yükseltilir. Bu modelde mesaj hacmimiz O(be) ile büyür, yollar sabit kalır ve gecikme (veya teslimat için gereken blok sayısı) O(e) ile. Yönlendirme modelimiz e boyutlu bir hiperküptür, küpün her iki tarafı da b olası konuma sahiptir. Her blokta mesajları tek bir eksen boyunca yönlendiririz. Biz Ekseni sıralı olarak değiştirerek blokların en kötü durumda teslim süresini garanti altına alırsınız. Parachain işlemenin bir parçası olarak, yurtdışına bağlı Giriş kuyruğunda bulunan mesajlar, verilen gereklilik dikkate alınarak derhal uygun çıkış kuyruğunun bölmesine yönlendirilir. geçerli blok numarası (ve dolayısıyla yönlendirme boyutu). Bu süreç her atlama için ek veri aktarımı gerektirir teslimat rotasında, ancak bu başlı başına bir sorun bazı alternatif yöntemler kullanılarak hafifletilebilecek olan veri yükünün teslimi ve yalnızca bir referans içermesi, deneme sonrası gönderinin tam yükü yerine. Bir sistem için böyle bir hiper küp yönlendirme örneği 4 parachain ile b = 2 ve e = 2 şöyle olabilir: Aşama 0, her M mesajında: • sub0: eğer Mdest ∈{2, 3} ise sendTo(2) yoksa devam et • sub1: eğer Mdest ∈{2, 3} ise sendTo(3) yoksa devam et • sub2: eğer Mdest ∈{0, 1} ise sendTo(0) yoksa devam et • sub3: eğer Mdest ∈{0, 1} ise sendTo(1) yoksa devam et Aşama 1, her M mesajında: • sub0: eğer Mdest ∈{1, 3} ise sendTo(1) yoksa devam et • sub1: eğer Mdest ∈{0, 2} ise sendTo(0) yoksa devam et • sub2: eğer Mdest ∈{1, 3} ise sendTo(3) yoksa devam et • sub3: eğer Mdest ∈{0, 2} ise sendTo(2) yoksa devam et Buradaki iki boyutu ilk boyut olarak görmek kolaydır. hedef indeksin iki biti; ilk blok için yüksek dereceli bit tek başına kullanılır. İkinci blok anlaşmaları düşük dereceli bit ile. Her ikisi de gerçekleştiğinde (keyfi olarak sipariş) ardından gönderi yönlendirilecektir. 9kriptografik olarak güvenli sözde rastgele
POLKADOT: HETEROJEN ÇOK ZİNCİRLİ BİR ÇERÇEVE VİZYONU TASLAK 1 16 6.6.5. Serendipity'yi en üst düzeye çıkarmak. Temelde bir değişiklik teklifte sabit toplam c2 −c validators görülecektir; her alt grupta c−1 validators. Her blok yerine validators'nin yapılandırılmamış bir yeniden bölümlenmesi var Parachain'ler arasında, bunun yerine her parachain alt grubu için, her validator benzersiz ve farklı bir numaraya atanacaktır Aşağıdaki blokta parachain alt grubu. Bu herhangi iki blok arasında herhangi bir değişken için değişmezliğe yol açar iki parachain çifti var, iki validators var Parachain sorumluluklarını değiştirdik. Bu, kullanılabilirlik konusunda mutlak garantiler elde etmek için kullanılamasa da (tek bir validator ara sıra devre dışı kalacaktır, hatta yardımsever), yine de genel durumu optimize edebilir. Bu yaklaşım komplikasyonsuz değildir. Parachain'in eklenmesi aynı zamanda yeniden yapılanmayı da gerektirecektir. validator kümesinin. Ayrıca validators sayısı parachain sayısının karesine bağlıdır, başlangıçta çok küçük başlayacak ve sonunda çok büyüyecekti çok hızlı, yaklaşık 50 parachain'den sonra savunulamaz hale geliyor. Bunların hiçbiri temel sorunlar değil. İlk durumda, validator kümelerinin yeniden düzenlenmesi olması gereken bir şeydir zaten düzenli olarak yapılıyor. validator boyutuyla ilgili olarak ayarlandı, çok küçük olduğunda birden fazla validator atanabilir aynı parachain'e bir tam sayı faktörü uygulayarak genel toplam validators. 6.6.4'te tartışılan Hypercube Routing gibi çok aşamalı bir yönlendirme mekanizması, çok sayıda validators gereksinimini hafifletmek çok sayıda zincir olduğunda. 6.7. Parachain Doğrulaması. A validator'in asıl amacı iyi ilişkilere sahip bir aktör olarak bir parachain'in Blok, herhangi bir durum geçişi, herhangi bir harici işlem dahil ancak bunlarla sınırlı olmamak üzere geçerlidir. giriş kuyruğundaki tüm bekleme noktaları ve son durum çıkış kuyruğundan. Sürecin kendisi oldukça basittir. validator önceki bloğu mühürledikten sonra özgürdürler aday parachain bloğu sağlamak için çalışmaya başlamak bir sonraki konsensüs turuna aday. Başlangıçta, validator bir parachain harmanlayıcı (sonraki bölümde anlatılacaktır) veya bir parachain harmanlayıcı aracılığıyla bir parachain blok adayını bulur. eş-validators. Parachain bloğu aday verileri bloğun başlığını, önceki bloğun başlığını içerir, dahil edilen tüm harici giriş verileri (Ethereum ve Bitcoin için, bu tür veriler işlemler olarak anılacaktır, ancak prensipte keyfi amaçlar için rastgele veri yapıları içerebilirler), çıkış kuyruğu verileri ve durum geçişi geçerliliğini kanıtlamak için dahili veriler (Ethereum için) bu, her bir işlemi yürütmek için gereken çeşitli durum/depolama düğümleri olacaktır). Deneysel kanıtlar, yeni bir Ethereum bloğu için bu tam veri kümesini gösteriyor en fazla birkaç yüz KiB olacaktır. Eş zamanlı olarak, henüz yapılmadıysa validator Başlangıçta önceki bloğun geçişinden önceki bloğun geçişine ilişkin bilgileri almaya çalışmak validators ve sonrası için imza atan tüm validators'den verilerin kullanılabilirliği. validator böyle bir aday bloğu aldığında, daha sonra bunu yerel olarak doğrularlar. Doğrulama işlemi parachain sınıfının validator modülünde bulunur; yazılması gereken fikir birliğine duyarlı yazılım modülü Polkadot'nin herhangi bir uygulaması için (prensipte olsa da) C ABI'ye sahip bir kütüphane, tek bir kütüphanenin uygulamalar arasında uygun şekilde paylaştırılmalıdır. yalnızca tek bir “referans” uygulamaya sahip olmaktan kaynaklanan güvenlik azalması). Süreç, önceki bloğun başlığını alır ve yakın zamanda üzerinde anlaşmaya varılan aktarma zinciri aracılığıyla kimliğini doğrular. hash kaydedilmesi gereken blok. Ana başlığın geçerliliği doğrulandıktan sonra özel parachain sınıfın doğrulama işlevi çağrılabilir. Bu, bir dizi veri alanını kabul eden tek bir işlevdir (kabaca daha önce verilenler) ve basit bir Boole değeri döndürmek bloğun geçerliliğini ilan ediyor. Bu tür doğrulama işlevlerinin çoğu ilk olarak doğrudan türetilebilen başlık alanları ana blok (örn. ebeveyn hash, sayı). Takip ediliyor bunu yaparak, herhangi bir dahili veri yapısını şu şekilde dolduracaklar: işlemleri ve/veya gönderileri işlemek için gerekli. Ethereum benzeri bir zincir için bu, bir için ihtiyaç duyulacak düğümleri içeren veritabanını deneyin. işlemlerin tam olarak yürütülmesi. Diğer zincir türlerinde şunlar olabilir: diğer ponarıcı mekanizmalar. İşlem tamamlandıktan sonra, giriş gönderileri ve harici işlemler (veya harici verilerin temsil ettiği şey) zincirin spesifikasyonuna göre dengelenmiş, yürürlüğe konmuştur. (Bir mantıklı varsayılan, tüm giriş gönderilerinin olmasını gerektirmek olabilir harici işlemlere hizmet verilmeden önce işlenir, ancak buna parachain mantığının karar vermesi gerekir.) Bu yasayla bir dizi çıkış noktası oluşturulacak. oluşturuldu ve bunların gerçekten eşleştiği doğrulanacak derleyicinin adayı. Son olarak, uygun şekilde doldurulmuş başlık, adayın başlığına göre kontrol edilecektir. Tamamen doğrulanmış bir aday blokla validator daha sonra başlığının hash'sına oy verebilir ve gerekli tüm doğrulama bilgilerini alt grubundaki ortak validator'lere gönderebilir. 6.7.1. Parachain Düzenleyicileri. Parachain harmanlayıcıları madencilerin görevlerinin çoğunu yerine getiren bağımsız operatörlerdir günümüzün blockchain ağlarında. Bunlar spesifiktir belirli bir parachain'e. Çalıştırmak için şunları yapmaları gerekir: hem röle zincirini hem de tam senkronizeyi koruyun Parachain. "Tam senkronize"nin kesin anlamı parachain sınıfına bağlı olacaktır ancak her zaman parachain giriş kuyruğunun mevcut durumunu içerecektir. Ethereum durumunda bu aynı zamanda en azından bakımı da içerir son birkaç bloğun Merkle ağacı veri tabanı, ancak ayrıca Bloom dahil çeşitli diğer veri yapılarını da içerir Hesabın varlığı, aile bilgileri, günlük kaydı için filtreler blok numarası için çıkışlar ve geriye doğru arama tabloları. İki zinciri senkronize tutmanın yanı sıra, ayrıca bir işlem kuyruğunu koruyarak ve uygun şekilde doğrulanmış işlemleri kabul ederek işlemler için "avlanmalı" halka açık ağdan. Sıra ve zincirle, her blokta seçilen validator'ler için (aktarma zinciri senkronize olduğundan kimliği bilinen) yeni aday bloklar oluşturabilir ve bunları geçerlilik kanıtı gibi çeşitli yardımcı bilgiler eş ağ. Zahmetine karşılık, içerdiği işlemlere ilişkin tüm ücretleri tahsil eder. Bunun etrafında çeşitli ekonomiler dönüyor düzenleme. Yoğun rekabetin olduğu bir piyasada teminat verenlerin fazlalığı varsa, işlemin gerçekleşmesi mümkündür ücretler teşvik amacıyla validators parachain ile paylaşılacaktır belirli bir harmanlayıcı bloğunun dahil edilmesi. Benzer şekilde,
POLKADOT: HETEROJEN ÇOK ZİNCİRLİ BİR ÇERÇEVE VİZYONU TASLAK 1 17 bazı düzenleyiciler ihtiyaç duyulan ücretleri bile artırabilir bloğun daha çekici hale getirilmesi için ödeme yapılması validators. Bu durumda doğal bir pazarın oluşması gerekmektedir. daha yüksek ücretler ödeyen işlemler kuyruğu atlıyor ve zincire daha hızlı dahil olma. 6.8. Ağ oluşturma. Geleneksel blockchains üzerinde ağ oluşturma Ethereum ve Bitcoin gibi oldukça basit gereksinimlere sahiptir. Tüm işlemler ve bloklar basit, yönlendirilmemiş bir dedikoduyla yayınlanır. Senkronizasyon daha kapsamlıdır, özellikle Ethereum ile ancak gerçekte bu mantık şunun içinde yer alıyordu: birkaç istek ve yanıt mesajı türü etrafında çözümlenen protokolün kendisinden ziyade akran stratejisi. Ethereum devp2p protokolüyle mevcut protokol teklifleri konusunda ilerleme kaydederken, bu da birçok kişiye olanak sağladı alt protokoller tek bir eş bağlantı üzerinden çoğaltılacak ve dolayısıyla aynı eş katman paylaşımına sahip olacak ve birçok p2p protokolleri aynı anda, Ethereum kısmı protokol hala nispeten basit kaldı ve p2p protokol bir süredir önemli konularla tamamlanmamış durumda QoS desteği gibi işlevsellik eksik. Ne yazık ki, daha yaygın bir "web 3" protokolü oluşturma arzusu büyük ölçüde başarısız oldu, bunu kullanan tek proje açıkça bunlardı Ethereum toplu satıştan finanse edildi. Polkadot ile ilgili gereksinimler oldukça daha önemlidir. Tamamen tek tip bir ağ yerine, Polkadot her birinin akran yapısından ve çeşitli ağlardan farklı gereksinimleri olan çeşitli katılımcı türleri vardır Katılımcıların hakkında sohbet etme eğiliminde olacağı “yollar” özel veriler. Bu, önemli ölçüde daha yapılandırılmış bir ağ katmanı ve bunu destekleyen bir protokol anlamına gelir. muhtemelen gerekli olacaktır. Ayrıca, yeni tür “zincir” gibi gelecekteki eklemeleri kolaylaştıracak genişletilebilirlik, kendileri yeni bir katman yapısı gerektirir. Ağ oluşturmanın nasıl yapıldığına dair derinlemesine bir tartışma protokol bu belgenin kapsamı dışında görünebilir, bazı gereksinim analizleri makul olabilir. Yapabiliriz ağ katılımcılarımızı kabaca iki gruba ayırın (röle zinciri, parachainler) her biri üç alt kümeden oluşur. Yapabiliriz ayrıca parachain katılımcılarının her birinin yalnızca aksine kendi aralarında sohbet etmekle ilgileniyorlar diğer parachainlerdeki katılımcılar: • Aktarma zinciri katılımcıları: • Doğrulayıcılar: P, her biri için P[s] alt kümelerine bölünür paraşütle atlama • Kullanılabilirlik Garantörleri: A (bu, protokolün temel formunda Doğrulayıcılar tarafından temsil edilebilir) • Aktarma zinciri istemcileri: M (her birinin üyelerini not edin) Parachain seti aynı zamanda M'nin üyesi olma eğiliminde olacaktır) • Parachain katılımcıları: • Parachain Düzenleyicileri: C[0], C[1], . . . • Parachain Balıkçıları: F[0], F[1], . . . • Parachain istemcileri: S[0], S[1], . . . • Parachain ışık istemcileri: L[0], L[1], . . . Genel olarak belirli iletişim sınıflarını adlandırırız bu kümelerin üyeleri arasında gerçekleşme eğiliminde olacaktır: • P | bir <-> P | C:
dolu ayarlamak arasında validators/garantörler zorunluluk olmak iyi bağlantılara sahip için fikir birliğine varmak. • P[s] <-> C[s] | P[s]: Belirli bir parachain grubunun üyesi olan her validator dedikodu yapma eğiliminde olacaktır bu tür diğer üyelerle ve derleyicilerle Blok adaylarını keşfetmek ve paylaşmak için bu parachain'in. • A <-> P[s] | C | A: Her kullanılabilirlik garantörü fikir birliğine duyarlı çapraz zincirleri toplaması gerekecek kendisine atanan validator'lardan gelen veriler; derleyiciler aynı zamanda fikir birliği şansını da optimize edebilir kullanılabilirlik garantörlerine reklam vererek engelleyin. Ellerine geçtikten sonra veriler şu adrese dağıtılacak: fikir birliğini kolaylaştırmak için bu tür başka garantörler. • P[s] <-> A | P[s']: Parachain validators olacak önceki validator grubundan veya kullanılabilirlik garantörlerinden ek giriş verileri toplaması gerekiyor. • F[s] <-> P: Balıkçılar rapor verirken herhangi bir katılımcıyla ilgili bir hak talebi. • M <-> M | P | C: Genel aktarma zinciri istemcileri, verileri validator'lerden ve garantörlerden dağıtır. • S[s] <-> S[s] | P[ler] | C: Parachain istemcileri verileri validator/garantörlerden dağıtır. • L[s] <-> L[s] | S[s]: Parachain ışık istemcileri Verileri tam istemcilerden dağıtın. Verimli bir taşıma mekanizması sağlamak için “düz” bir yer paylaşımlı ağ (Ethereum'nin devp2p'si gibi) burada her biri düğüm, kendi uygunluk değerini (keyfi olmayan bir şekilde) farklılaştırmaz. akranlarının uygun olması muhtemel değildir. Makul ölçüde genişletilebilir akran seçimi ve keşif mekanizması muhtemelen ihtiyaç duyacaktır agresif olmasının yanı sıra protokole dahil edilecek Doğru türden akranları sağlamak için ileriye yönelik bir planlama planlamak "tesadüfen" bağlanıyorlardoğru zamanda harekete geçtik. Akran oluşturmanın kesin stratejisi her katılımcı sınıfı için farklı olacaktır: uygun şekilde ölçeklendirilmiş bir çoklu zincir, harmanlayıcıların ya sürekli olması gerekecek buna uygun olarak seçilen validator'lere yeniden bağlanılıyor veya validators alt kümesiyle devam eden anlaşmalara ihtiyaç var validator için işe yaramaz oldukları çoğu zaman bağlantılarının kesilmediğinden emin olmak için. Düzenleyiciler aynı zamanda doğal olarak bir tanesini korumaya çalışacaklardır. veya kullanılabilirlik garantörüne daha istikrarlı bağlantılar fikir birliğine duyarlı yaklaşımlarının hızlı bir şekilde yayılmasını sağlamak üzere kurulmuştur. veri. Kullanılabilirlik garantörleri çoğunlukla bir birbirleriyle ve validators ile istikrarlı bağlantı (konsensüs ve konsensüs açısından kritik parachain verileri için) onaylıyorlar) ve bazı derleyicilere (parachain için) veriler) ve bazı balıkçılar ve tam müşteriler (dağıtım için) bilgi). Doğrulayıcılar diğer validator'leri, özellikle de aynı alt gruptakileri ve herhangi bir onlara parachain blok adayları sağlayabilecek harmanlayıcılar. Balıkçılar ve genel bayrak zinciri ve parachain istemciler genellikle bağlantıyı açık tutmayı hedeflerler. validator veya garantör, ancak benzer birçok başka düğüm var aksi takdirde kendilerine. Parachain hafif istemcileri de benzer şekilde parachain'in tam istemcisine bağlanmayı hedefleyecektir. sadece diğer parachain ışık istemcileri olmasa da. 6.8.1. Akran Kaybı Sorunu. Temel protokol teklifinde, bu alt kümelerin her biri, doğrulama için atanan validator'ler olarak her blokta rastgele olarak değişir. Parachain geçişleri rastgele seçilir. Bu olabilir farklı (eş olmayan) düğümlerin bir sorun olması gerekir birbirleri arasında veri aktarımı. Ya güvenmek gerekir adil bir şekilde dağıtılmış ve iyi bağlanmış bir eş ağ
POLKADOT: HETEROJEN ÇOK ZİNCİRLİ BİR ÇERÇEVE VİZYONU TASLAK 1 18 Atlama mesafesinin (ve dolayısıyla en kötü durumdaki gecikmenin) yalnızca ağ boyutunun logaritmasıyla arttığından emin olun (Kademlia benzeri bir protokol [13] burada yardımcı olabilir) veya bir eş kümesini korumak için gerekli bağlantı anlaşmasının gerçekleşmesine izin vermek amacıyla daha uzun blok süreleri uygulayın. düğümün mevcut iletişim ihtiyaçlarını yansıtır. Bunların hiçbiri mükemmel çözüm değil: uzun blok süreleri ağa zorlanmak onu işe yaramaz hale getirebilir özel uygulamalar ve zincirler. Hatta mükemmel bir adil ve bağlı ağ önemli miktarda israfa neden olacaktır İlgisiz düğümlerin sahip olması nedeniyle ölçeklendikçe bant genişliği onlara faydası olmayan verileri iletmek. Her iki yön de çözümün bir parçasını oluştursa da, Gecikmeyi en aza indirmeye yardımcı olacak makul bir optimizasyon bu parachain'in volatilitesini kısıtlamak için validator üyeliği yalnızca blok serileri arasında yeniden atayarak (örneğin 15'li gruplar halinde, 4 saniyede bir blok süresi, bağlantıların yalnızca bir kez değiştirilmesi anlamına gelir dakika) veya üyeliği kademeli olarak değiştirerek, örn. bir seferde bir üye tarafından değiştiriliyor (örneğin eğer varsa) Her bir parachain'e 15 validator atanmışsa, bu durumda ortalama olarak tamamen benzersiz olanlarla arasında tam bir dakika olacaktır. setleri). Akran kaybının miktarını sınırlayarak ve avantajlı akran bağlantılarının iyi bir şekilde kurulmasını sağlayarak Parachain'in kısmi öngörülebilirliği yoluyla ilerlemek ayarlar, her düğümün kalıcı olarak korunmasına yardımcı olabiliriz tesadüfen akran seçimi. 6.8.2. Etkili Bir Ağ Protokolüne Giden Yol. Muhtemelen En etkili ve makul geliştirme çabası, yuvarlanmak yerine önceden var olan bir protokolün kullanılmasına odaklanacaktır. bizim. Çeşitli eşler arası temel protokoller mevcuttur Ethereum'nin kendi devp2p'sini kullanabilir veya artırabiliriz [22], IPFS'nin libp2p'si [1] ve GNU'nun GNUnet'i [4]. Bu protokollerin tam bir incelemesi ve bunların bir Belirli yapısal garantileri, dinamik eş yönlendirmeyi ve genişletilebilir alt protokolleri destekleyen modüler eş ağ bu belgenin kapsamı dışındadır ancak bir Polkadot'nin uygulanmasında önemli bir adım. 7. Protokolün Uygulanabilirliği 7.1. Zincirler Arası İşlem Ödemesi. Harika bir zaman Ethereum'nin gazı gibi bütünsel bir hesaplama kaynağı muhasebe çerçevesine olan ihtiyacın ortadan kaldırılmasıyla bir miktar özgürlük ve basitlik kazanılır, bu önemli bir soruyu gündeme getirir: Gaz olmadan bir parachain nasıl yapılır? Başka bir parachain'in onu hesaplama yapmaya zorlamasını önlemek mi istiyorsunuz? İşlem sonrası giriş kuyruğuna güvenebiliriz Bir zincirin diğerine spam göndermesini önlemek için tamponlar işlem verileri, işlem sırasında spam gönderilmesini önlemek için protokol tarafından sağlanan eşdeğer bir mekanizma yoktur. Bu daha üst seviyeye bırakılmış bir sorundur. Zincirlerden beri gelen mesajlara keyfi anlambilim eklemekte özgürdürler. işlem sonrası veriler, hesaplamanın yapılmasını sağlayabiliriz başlamadan önce ödenmesi gerekmektedir. Buna benzer bir şekilde Ethereum Serenity'nin benimsediği model, hayal edebiliyoruz izin veren bir parachain içindeki "zorla girme" sözleşmesi validator karşılığında ödeme garanti edilecek belirli bir hacimde işlem kaynağının sağlanması. Bu kaynaklar gaz gibi bir şeyle ölçülebilir, ancak aynı zamanda öznel uygulama süresi veya Bitcoin benzeri sabit ücret modeli gibi tamamen yeni bir model de olabilir. Bu tek başına o kadar da kullanışlı değil çünkü zincir dışı arayanın onlara ulaşabildiğini kolayca varsayamayız. Hırsızlık tarafından tanınan değer mekanizması ne olursa olsun sözleşme. Ancak kaynak zincirinde ikincil bir “kırılma” sözleşmesi hayal edebiliriz. İki sözleşme birlikte birbirini tanıyan bir köprü oluşturacak ve değer eşdeğerliği sağlar. (Stake etme-tokens, mevcut her biri ödemeler dengesini dengelemek için kullanılabilir.) Böyle başka bir zincire çağrı yapmak, vekillik yapmak anlamına gelir ulaşımı sağlayacak olan bu köprüden zincirler arasında değer aktarımının müzakere edilmesi Hedef parachain'de gereken hesaplama kaynakları için ödeme yapın. 7.2. Ek Zincirler. iken the ekleme arasında bir parachain nispeten ucuz bir işlemdir, ücretsiz değildir. Daha fazla parachain, parachain başına daha az validators anlamına gelir ve sonunda her biri bir değere sahip daha fazla sayıda validator azaltılmış ortalama tahvil. Parachain'e saldırmanın daha küçük bir zorlama maliyeti sorunu, balıkçılar, büyüyen validator grubu aslında bir altta yatan fikir birliğinin mekaniği nedeniyle daha yüksek gecikme derecesiama. Ayrıca her parachain validators'yi üzme potansiyelini de beraberinde getiriyor aşırı külfetli doğrulama algoritması. Bu nedenle, validators tutarında bir "fiyat" olacaktır. ve/veya paydaş topluluğunun çıkaracağı yeni bir parachain eklenmesi. Zincirlere yönelik bu pazar muhtemelen aşağıdakilerden birinin eklendiğini görebilirsiniz: • Bir parçası haline getirilecek net katkı payı ödemesi muhtemelen sıfır olan zincirler (staking tokens'nin kilitlenmesi veya yakılması açısından) (örn. konsorsiyum zincirleri, Doge zincirleri, uygulamaya özel zincirler); • ağa gerçek değer sağlayan zincirler belirli işlevlerin eklenmesi zor başka bir yere ulaşmak (örneğin gizlilik, dahili ölçeklenebilirlik, hizmet bağlantıları). Esasen, paydaş topluluğunun şunları yapması gerekecektir: finansal veya finansal olarak alt zincirler eklemeye teşvik edilebilir röleye özellikli zincirler ekleme arzusuyla. Eklenen yeni zincirlerin çok büyük bir etki yaratacağı öngörülüyor. yeni zincirlerin çıkarılmasına olanak tanıyan kısa bir çıkarma süresi taviz verme riski olmadan denenebilir orta veya uzun vadeli değer teklifi. 8. Sonuç Bir kişinin bir makale yazmak için izleyebileceği bir yönü özetledik önceden var olan belirli protokollerle geriye doğru uyumlu olma potansiyeline sahip, ölçeklenebilir, heterojen çok zincirli protokol blockchain ağlar. Böyle bir protokol kapsamında katılımcılar İstisnai derecede özgür bir şekilde genişletilebilecek ve mevcut kullanıcılar için tipik bir maliyet olmaksızın genişletilebilecek genel bir sistem oluşturmak için aydınlanmış kişisel çıkarlar doğrultusunda çalışın. standart bir blockchain tasarımından gelir. biz verdik dahil olacak mimarinin kaba bir taslağı katılımcıların doğası, ekonomik teşvikleri ve dahil olmaları gereken süreçler. bizde temel bir tasarım tanımladı ve onun güçlü yönlerini tartıştı ve sınırlamalar; buna göre başka talimatlarımız da var bu sınırlamaları hafifletebilir ve tamamen ölçeklenebilir bir blockchain çözümüne doğru daha fazla zemin sağlayabilir.POLKADOT: HETEROJEN ÇOK ZİNCİRLİ BİR ÇERÇEVE VİZYONU TASLAK 1 19 8.1. Eksik Materyal ve Açık Sorular. Ağ çatallanması, protokolün farklı uygulamalarından dolayı her zaman bir olasılıktır. Böyle bir durumdan iyileşme olağanüstü durum tartışılmadı. Ağın zorunlu olarak sıfırdan farklı bir sonuçlandırma periyoduna sahip olacağı göz önüne alındığında, Aktarım zinciri çatallanmasından kurtulmak büyük bir sorun olmasa da, dikkatli bir entegrasyon gerektirecektir. fikir birliği protokolü. Tahvillere el konulması ve bunun tersine ödül hükmü derinlemesine araştırılmamıştır. Şu anda ödülleri varsayıyoruz kazanan her şeyi alır esasına göre sağlanır: bu Balıkçılara en iyi teşvik modelini verin. Kısa süreli bir taahhüt-açıklama süreci birçok balıkçının Ödüllerin daha adil dağılımını sağlayarak ödülü talep etmek, ancak süreç ek gecikmeye yol açabilir uygunsuz davranışın tespiti. 8.2. Teşekkürler. Hepsine çok teşekkürler Bunu belli belirsiz bir hale getirmeye yardımcı olan düzeltmenler prezentabl şekil. Özellikle Peter Czaban, Bjorn Wagner, Ken Kappler, Robert Habermeier, Vitalik Buterin, Reto Trinkler ve Jack Petersson. Herkese teşekkürler Fikirlere veya başlangıçlara katkıda bulunan insanlar Bu konuda Marek Kotewicz ve Aeron Buchanan özel olarak anılmayı hak ediyor. Ve yardımları için herkese teşekkürler yol boyunca. Tüm hatalar bana aittir. Bu çalışmanın bazı bölümleri, ilk araştırmalar da dahil olmak üzere fikir birliği algoritmaları kısmen İngilizler tarafından finanse edildi Innovate UK programı kapsamında hükümet.
Protocole en détail
Le protocole peut être grossièrement décomposé en trois parties : le mécanisme de consensus, l'interface parachain et le routage des transactions inter-chaînes. 6.1. Chaîne relais Opération. Le chaîne-relais va il s'agit probablement d'une chaîne globalement similaire à Ethereum dans la mesure où elle est basé sur l'état avec l'adresse de mappage d'état au compte informations, principalement les soldes et (pour éviter les rediffusions) un compteur de transactions. Placer les comptes ici répond à un seul objectif : rendre compte de ce que possède l’identité. quel montant de participation dans le système.7 Il y aura cependant des différences notables : • Les contrats ne peuvent pas être déployés via des transactions ; suite à la volonté d’éviter les fonctionnalités applicatives sur la chaîne relais, il ne sera pas accompagner le déploiement public des contrats. • L'utilisation des ressources de calcul (« gaz ») n'est pas comptabilisée ; puisque les seules fonctions disponibles pour un usage public sera corrigée, la justification de la comptabilisation du gaz ne tient plus. A ce titre, un tarif forfaitaire s'appliquera en tous les cas, permettant plus de performances dans tous les cas exécution de code dynamique qui peut être nécessaire et un format de transaction plus simple. • Une fonctionnalité spéciale est prise en charge pour les contrats répertoriés qui permet l'exécution automatique et la sortie de messages réseau. Dans le cas où la chaîne de relais possède une VM et que ce soit basé sur le EVM, il comporterait un certain nombre de modifications pour assurer une simplicité maximale. Ce serait probablement avoir un certain nombre de contrats intégrés (similaires à ceux de adresses 1 à 4 dans Ethereum) pour permettre des tâches à gérer, y compris un contrat consensuel, un Contrat validator et un contrat parachain. Si ce n’est pas le EVM, alors un backend WebAssembly [2] (wasm) est l’alternative la plus probable ; dans ce cas, l'ensemble la structure serait similaire, mais il ne serait pas nécessaire pour que les contrats intégrés avec Wasm soient une cible viable pour les langages à usage général plutôt que pour les langages immatures et langues limitées pour le EVM. D'autres écarts probables par rapport au protocole actuel Ethereum sont tout à fait possibles, par exemple une simplification du format de reçu de transaction permettant l'exécution parallèle de transactions non conflictuelles au sein d'un même bloc, comme proposé pour la série de changements Serenity. Il est possible, bien que peu probable, qu'un chaîne « pure » soit déployée comme chaîne-relais, permettant une contrat particulier pour gérer des choses comme le staking token équilibres plutôt que d’en faire un élément fondamental de le protocole de la chaîne. À l'heure actuelle, nous estimons qu'il est peu probable que cela offrera une simplification protocolaire suffisamment grande pour être cela vaut la complexité et l'incertitude supplémentaires impliquées en le développant. 7Afin de représenter le montant qu'un détenteur donné est responsable de la sécurité globale du système, ces comptes de participation seront codent inévitablement une certaine valeur économique. Toutefois, il convient de comprendre que, puisqu'il n'est pas prévu que de telles valeurs soient utilisées dans de quelque manière que ce soit dans le but d'échanger contre des biens et services du monde réel, il convient par conséquent de noter que les token ne doivent pas être assimilés à monnaie et à ce titre la chaîne-relais conserve sa philosophie nihiliste en matière d'applications.POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 10 Il existe un certain nombre de petites fonctionnalités requises pour administrer le mécanisme de consensus, l'ensemble validator, le mécanisme de validation et les parachains. Ces pourraient être mis en œuvre ensemble dans le cadre d’un protocole monolithique. Cependant, pour des raisons de modularité augure, nous les qualifions de « contrats » de la chaîne-relais. Cela devrait être interprété comme signifiant qu'ils sont des objets (au sens de programmation orientée objet) gérée par le mécanisme de consensus de la relaychain, mais pas nécessairement cela ils sont définis comme des programmes dans des opcodes de type EVM, ni même qu'ils soient adressables individuellement via le système de compte. 6.2. Contrat de jalonnement. Ce contrat maintient l'ensemble validator. Il gère : • quels comptes sont actuellement des validator ; • qui sont disponibles pour devenir validators en bref avis ; • quels comptes ont placé une participation en nominant à un validator ; • les propriétés de chacun, y compris le volume staking, les taux de paiement et adresses acceptables et les identités (session) à court terme. Il permet à un compte d'enregistrer une envie de devenir les validator liés (avec ses exigences), pour désigner une certaine identité, et pour les validator liés préexistants, d'enregistrer leur désir de quitter ce statut. C'est aussi comprend le mécanisme lui-même pour le mécanisme de validation et de canonisation. 6.2.1. Mise-token Liquidité. Il est généralement souhaitable de avoir autant que possible du total de staking token jalonné dans les opérations de maintenance du réseau depuis cela lie directement la sécurité du réseau à la « capitalisation boursière » globale du staking token. Cela peut facilement être encouragé en gonflant la monnaie et en distribuant les bénéfices à ceux qui participent en tant que validators. Cependant, cela pose un problème : si le token est bloqué dans le Contrat de Staking sous peine de réduction, comment une partie substantielle peut-elle rester suffisamment liquide afin de permettre la découverte des prix ? Une réponse à cela consiste à autoriser un contrat dérivé simple, garantissant des token fongibles sur un token sous-jacent jalonné. C’est difficile à organiser sans confiance. De plus, ces dérivés token ne peuvent pas être traités de la même manière pour la même raison que les différentes obligations d’État de la zone euro ne sont pas fongibles : il est une chance que l'actif sous-jacent échoue et devienne sans valeur. Avec les gouvernements de la zone euro, il pourrait y avoir un par défaut. Avec validator jalonnés de token, les validator peuvent agir de manière malveillante et être puni. Conformément à nos principes, nous optons pour la solution la plus simple : tous les token ne sont pas jalonnés. Cela voudrait dire que une certaine proportion (peut-être 20 %) des token resteront forcément liquides. Bien que cela soit imparfait du point de vue de la sécurité, il est peu probable que cela fasse une différence fondamentale en termes de sécurité. la sécurité du réseau ; 80 % des réparations possibles grâce aux confiscations de cautions pourraient encore être effectuées par rapport au « cas parfait » de 100 % staking. Le rapport entre les token mis en jeu et les token liquides peut être ciblé assez simplement grâce à un mécanisme d'enchères inversées. Essentiellement, les titulaires de token intéressés à devenir validator chacun publierait une offre pour le contrat staking indiquant le taux de paiement minimum dont ils auraient besoin pour prendre partie. Au début de chaque séance (les séances seraient se produisent régulièrement, peut-être aussi souvent qu'une fois par heure), le validator créneaux seraient pourvus en fonction de chaque candidat La mise et le taux de paiement de validator. Un algorithme possible car ce serait prendre ceux qui ont les offres les plus basses et qui représenter une mise ne dépassant pas la mise totale visée divisé par le nombre d'emplacements et ne doit pas être inférieur à une limite inférieure égale à la moitié de ce montant. Si les créneaux ne peuvent pas être pourvus, la limite inférieure pourrait être réduite à plusieurs reprises d'un certain facteur afin de satisfaire. 6.2.2. Nomination. Il est possible de nommer en toute confiance ceux staking tokens à un validator actif, leur donnant la responsabilité des fonctions de validator. Œuvres en nomination grâce à un système de vote d’approbation. Chaque proposant potentiel peut publier une instruction sur le contrat staking exprimant une ou plusieurs identités validator sous lesquelles responsabilité qu'ils sont prêts à confier à leur caution. À chaque séance, les liens des proposants sont dispersés pour être représenté par un ou plusieurs validator. L'algorithme de dispersion optimise pour un ensemble de validators de total équivalent obligations. Les cautions des proposants deviennent sous la responsabilité effective du validator aet susciter de l'intérêt ou subir un réduction de la peine en conséquence. 6.2.3. Confiscation/incendie des obligations. Certains comportements validator entraînent une réduction punitive de leur caution. Si la caution est réduite en dessous du minimum autorisé, le une session est terminée prématurément et une autre démarre. Une liste non exhaustive de comportements répréhensibles validator punissables comprend : • Faire partie d'un groupe parachain incapable de fournir consensus sur la validité d’un bloc parachain ; • signer activement pour la validité d'un invalide bloc de parachaine ; • incapacité à fournir des charges utiles de sortie auparavant voté comme disponible ; • inactivité pendant le processus de consensus ; • valider les blocs relais-chaînes sur les fourches concurrentes. Certains cas de mauvais comportement menacent l’intégrité du réseau (comme la signature de blocs de parachain invalides et la validation de plusieurs côtés d’un fork) et entraînent ainsi un exil effectif par la réduction totale de la liaison. Dans d'autres cas moins graves (par exemple inactivité dans le consensus processus) ou dans les cas où le blâme ne peut être attribué avec précision (faire partie d'un groupe inefficace), une petite partie de la caution peut en revanche être condamné à une amende. Dans ce dernier cas, cela fonctionne bien avec le désabonnement des sous-groupes pour garantir que les messages malveillants les nœuds subissent beaucoup plus de pertes que les nœuds bienveillants endommagés collatéralement. Dans certains cas (par exemple, validation multi-fork et invalide signature de sous-bloc) validators ne peuvent pas eux-mêmes détecter facilement le mauvais comportement de chacun car une vérification constante de chaque bloc de parachain serait une tâche trop ardue. Ici il est nécessaire d'obtenir le soutien de parties extérieures à le processus de validation pour vérifier et signaler un tel comportement inapproprié. Les parties reçoivent une récompense pour avoir signalé une telle activité ; leur terme, « pêcheurs », vient de l’improbabilité d'une telle récompense. Étant donné que ces cas sont généralement très graves, nous envisageons que toute récompense puisse facilement être payée à partir de la caution confisquée. En général, nous préférons équilibrer la combustion (c'est-à-dire réduction à néant) avec réaffectation, plutôt que tenter une réallocation globale. Cela a pour effet de
POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 11 augmentant la valeur globale du token, compensant le réseau en général dans une certaine mesure plutôt que le réseau spécifique partie impliquée dans la découverte. C'est principalement par mesure de sécurité mécanisme : les sommes importantes impliquées pourraient conduire à des incitations comportementales extrêmes et aiguës si elles étaient toutes accordé à une seule cible. En général, il est important que la récompense soit suffisamment importante pour que la vérification soit utile pour le réseau, mais pas au point de compenser les coûts liés à la mise en place d'un système de vérification. une criminalité « de niveau industriel » bien financée et bien orchestrée attaque de piratage informatique contre un validator malchanceux pour forcer un mauvais comportement. De cette façon, le montant réclamé ne devrait généralement pas être supérieur au lien direct du validator errant, de peur qu'un une incitation perverse survient à se comporter mal et à se dénoncer pour obtenir la prime. Cela peut être combattu soit explicitement grâce à une exigence minimale de cautionnement direct pour être un validator ou implicitement en informant les proposants que les validator avec peu d'obligations déposées ne sont pas très incitées de bien se comporter. 6.3. Registre Parachain. Chaque parachain est définie dans ce registre. Il s'agit d'une construction de type base de données relativement simple qui contient à la fois des informations statiques et dynamiques sur chaque chaîne. Les informations statiques incluent l'index de chaîne (un simple entier), ainsi que l'identité du protocole de validation, un moyen de distinguer les différentes classes de parachain afin que l'algorithme de validation correct puisse être dirigé par des validator chargés de présenter un candidat valable. Une première preuve de concept se concentrerait sur la mise en place les nouveaux algorithmes de validation dans les clients eux-mêmes, nécessitant effectivement un hard fork du protocole à chaque fois qu'un une classe supplémentaire de chaîne a été ajoutée. Mais en fin de compte, il peut être possible de spécifier l'algorithme de validation dans une manière à la fois rigoureuse et suffisamment efficace pour que les clients soient capable de travailler efficacement avec de nouvelles parachaines sans fourchette dure. Une piste possible pour y parvenir serait de préciser l'algorithme de validation de la parachain dans un système bien établi, langage compilé nativement et indépendant de la plate-forme, tel que WebAssembly. Des recherches supplémentaires sont nécessaires pour déterminer si cela est vraiment réalisable, mais si c'est le cas, cela pourrait apporter avec lui l'énorme avantage de bannir les hard-forks pour de bon. Les informations dynamiques incluent des aspects du système de routage des transactions qui doivent faire l'objet d'un accord global, tel que comme file d’attente d’entrée de la parachain (décrite dans la section 6.6). Le registre ne peut ajouter que des parachaines par un vote référendaire complet ; cela pourrait être géré en interne mais serait plus probablement placé dans un environnement externe contrat référendaire afin de faciliter la réutilisation dans le cadre des éléments de gouvernance plus généraux. Les paramètres à conditions de vote (par exemple, quorum requis, majorité requis) pour l'enregistrement de chaînes supplémentaires et autres, des mises à niveau moins formelles du système seront définies dans un « constitution » mais sont susceptibles de suivre un modèle assez traditionnel. chemin, du moins au début. La formulation précise est hors de portée du présent travail, mais par ex. une majorité qualifiée des deux tiers sera adoptée avec plus d'un tiers du système total Un vote positif peut être un point de départ judicieux. Les opérations supplémentaires incluent la suspension et la suppression des parachaines. Nous espérons que la suspension ne sera jamais se produire, mais il est conçu pour être une protection au moins il y a un problème insoluble dans le système de validation d’une parachain. Le cas le plus évident où cela pourrait Ce qui est nécessaire, c'est une différence critique par consensus entre les implémentations, ce qui conduit les validator à ne pas pouvoir s'entendre sur validité ou blocages. Les validateurs seraient encouragés à utiliser plusieurs implémentations client afin qu'ils puissent détecter un tel problème avant la confiscation de la caution. La suspension étant une mesure d'urgence, il serait sous les auspices de la dynamique validator-vote plutôt qu'un référendum. La réintégration serait possible à la fois des validators ou un référendum. La suppression totale des parachaines n’interviendrait que après un référendum et avec lequel serait exigé un période de grâce substantielle pour permettre une transition ordonnée vers soit une chaîne autonome, soit pour faire partie d'une autre système de consensus. Le délai de grâce serait probablement de l'ordre des mois et est susceptible d'être défini sur une base par chaîne dans le registre des parachaines afin que les différents les parachains peuvent bénéficier de différents délais de grâce selon leur besoin. 6.4. Scellement des blocs relais. Le scellement fait essentiellement référence à au processus de canonisation ; c'est-à-dire une donnée de base transformer quimappe l’original en quelque chose de fondamentalement singulier et significatif. Sous une chaîne PoW, l’étanchéité est en fait synonyme d’exploitation minière. Dans notre cas, cela implique la collecte de déclarations signées de validator sur la validité, la disponibilité et la canonique d'un bloc de chaîne de relais particulier et les blocs de parachain qui cela représente. La mécanique de l’algorithme de consensus BFT sous-jacent est hors de portée du présent travail. Nous allons décrivez-le plutôt en utilisant une primitive qui suppose un machine à états créatrice de consensus. En fin de compte, nous nous attendons s'inspirer d'un certain nombre de consensus BFT prometteurs algorithmes au cœur ; Tangaora [9] (une variante BFT de Raft [16]), Tendermint [11] et HoneyBadgerBFT [14]. L'algorithme devra parvenir à un accord sur plusieurs parachains en parallèle, différant ainsi de l'habituel blockchain mécanismes de consensus. Nous supposons qu'une fois le consensus est atteint, nous sommes en mesure d'enregistrer le consensus dans une preuve irréfutable qui peut être fournie par n'importe lequel des les participants à celui-ci. Nous supposons également qu'un mauvais comportement au sein du protocole peut être généralement réduit à un petit groupe contenant des participants qui se comportent mal pour minimiser les dommages collatéraux en infligeant une punition.8 La preuve, qui prend la forme de nos déclarations signées, est placée ensemble dans l’en-tête du bloc relais-chaîne. avec certains autres champs, notamment la racine statetrie de la chaîne relais et la racine transaction-trie. Le étanchéité processus prend endroit sous un célibataire générer un consensus mécanisme adressage les deux le le bloc de la chaîne relais et les blocs des parachains qui font une partie du contenu du relais : les parachains ne sont pas « engagées » séparément par leurs sous-groupes puis rassemblées plus tard. Cela se traduit par un processus plus complexe pour la chaîne de relais, mais nous permet de parvenir à un consensus sur l'ensemble du système en une seule étape, minimisant ainsi la latence et permettant pour des exigences de disponibilité de données assez complexes qui sont utile pour le processus de routage ci-dessous. 8Les systèmes de consensus existants basés sur PoS BFT tels que Tendermint BFT et le Slasher original répondent à ces affirmations.
POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 12 L’état de la machine à consensus de chaque participant peut être modélisé comme un simple tableau (2 dimensions). Chaque participant (validator) dispose d'un ensemble d'informations, sous la forme de déclarations signées (« votes ») des autres participants, concernant chaque candidat au bloc parachain ainsi que le candidat au bloc relaychain. L'ensemble des informations est composé de deux éléments de données : Disponibilité : oui ceci validator avoir sortie informations de publication de transaction de ce bloc afin sont-ils capables de valider correctement les candidats parachain sur le bloc suivant ? Ils peuvent voter soit 1 (connu) ou 0 (pas encore connu). Une fois qu'ils vote 1, ils s'engagent à voter de la même manière pour le reste de ce processus. Votes ultérieurs qui ne le font pas respectez, ce sont des motifs de punition. Validité : le bloc parachain est-il valide et c'est tout données référencées en externe (par ex. opérations) disponible ? Ceci ne concerne que les validator attribués à la parachain sur laquelle ils votent. Ils peuvent voter soit 1 (valide), -1 (invalide) ou 0 (pas encore connu). Une fois qu'ils votent non zéro, ils nous nous engageons à voter de cette façon pour le reste de le processus. Des votes ultérieurs qui ne respectent pas cela sont des motifs de punition. Tous les validator doivent soumettre des votes ; les votes peuvent être soumis à nouveau, qualifiés par les règles ci-dessus. La progression de le consensus peut être modélisé comme plusieurs algorithmes de consensus standard BFT sur chaque parachain se produisant en parallèle. Puisque ceux-ci sont potentiellement contrecarrés par un petite minorité d’acteurs malveillants concentrés dans un seul groupe de parachain, le consensus global existe pour établir un filet de sécurité, limitant le pire des cas impasse à simplement un ou plusieurs blocs de parachain vides (et une série de sanctions pour les responsables). Les règles de base pour la validité des blocs individuels (qui permettent à l'ensemble total de validator dans son ensemble d'arriver à consensus sur le fait qu'il devienne le candidat unique de la parachain à référencer depuis le relais canonique) : • doit avoir au moins les deux tiers de ses validator votant positivement et aucun votant négativement ; • doit avoir plus d'un tiers de validator votant positivement sur la disponibilité des informations sur la file d'attente de sortie. S'il y a au moins un vote positif et au moins un vote négatif sur la validité, une condition exceptionnelle est créée et l'ensemble des validator doivent voter pour déterminer s'il y a des parties malveillantes ou s'il y a un accident fourchette. Outre les votes valides et invalides, un troisième type de votes sont autorisés, ce qui équivaut à voter pour les deux, ce qui signifie que le nœud a des opinions contradictoires. Cela pourrait être dû au le propriétaire du nœud exécutant plusieurs implémentations qui le font pas d’accord, ce qui indique une possible ambiguïté dans le protocole. Une fois que tous les votes ont été comptés à partir de l'ensemble complet validator, si l'opinion perdante a au moins une petite proportion (à être paramétré ; au plus la moitié, peut-être beaucoup moins) des votes de l'opinion gagnante, alors il est supposé être un fork accidentel de parachain et la parachain est automatiquement suspendue du processus de consensus. Dans le cas contraire, nous considérerons qu'il s'agit d'un acte malveillant et punirons le minorité qui votait pour l’opinion dissidente. La conclusion est un ensemble de signatures démontrant canonicité. Le bloc relais-chaîne peut alors être scellé et le processus de scellement du bloc suivant a commencé. 6.5. Améliorations de l'étanchéité des blocs relais. Tandis que cette méthode de scellement donne de fortes garanties sur le fonctionnement du système, elle n’est pas particulièrement évolutive puisque les informations clés de chaque parachain doivent avoir leur disponibilité garantie par plus d'un tiers de tous les validator. Cela signifie que l’empreinte de responsabilité de chaque validator grandit à mesure que d’autres chaînes sont ajoutées. Alors que la disponibilité des données au sein de réseaux de consensus ouverts est essentiellement un problème non résolu, il existe des moyens d'atténuer la surcharge imposée aux nœuds validator. Un simple La solution est de réaliser que même si les validator doivent assumer étant responsables de la disponibilité des données, ils n’ont pas besoin de stocker, de communiquer ou de répliquer eux-mêmes les données. Des silos de données secondaires, éventuellement liés (voire au tout même) les assembleurs qui compilent ces données, peuvent gérer les tâche de garantir la disponibilité, les validator fournissant une partie de leurs intérêts/revenus en paiement. Cependant, même si cela permet d’acquérir une certaine évolutivité intermédiaire, cela ne résout toujours pas le problème sous-jacent ; depuis l'ajout de chaînes supplémentaires nécessitera en général des validator supplémentaires, la consommation continue des ressources du réseau (notamment en termes de bande passante) augmente avec le carré de lechaînes, une propriété intenable à long terme. En fin de compte, nous continuerons probablement à nous cogner la tête contre la limitation fondamentale qui stipule que pour un réseau de consensus pour être considéré comme disponible en toute sécurité, le les besoins continus en bande passante sont de l’ordre du total validators fois le total des informations saisies. Ceci est dû à l'incapacité d'un réseau non fiable à répartir correctement la tâche de stockage des données sur de nombreux nœuds, ce qui en dehors de la tâche de traitement éminemment distribuable. 6.5.1. Présentation de la latence. Un moyen d'atténuer cela La règle est d’assouplir la notion d’immédiateté. En exigeant que 33 % + 1 validator votent pour la disponibilité seulement à terme, et non immédiatement, nous pouvons mieux utiliser la propagation exponentielle des données et aider à égaliser les pics d'échange de données. Une égalité raisonnable (bien que non prouvée) peut-être : (1) latence = participants × chaînes Dans le modèle actuel, la taille du système évolue avec le nombre de chaînes pour garantir que le traitement est distribué; puisque chaque chaîne nécessitera au moins un validator et que nous fixons l'attestation de disponibilité à une constante proportion de validators, alors les participants augmentent de la même manière avec le nombre de chaînes. On se retrouve avec : (2) latence = taille2 Cela signifie qu'à mesure que le système se développe, la bande passante requise et la latence jusqu'à la disponibilité sont connues sur l'ensemble du réseau. réseau, qui pourrait également être caractérisé comme le nombre de blocs avant la finalité, augmente avec son carré. C'est un facteur de croissance substantiel et pourrait s’avérer être un obstacle notable et nous contraindre à des paradigmes « non plats » comme composer plusieurs « Polkadotes » dans une hiérarchie pour le routage à plusieurs niveaux des publications à travers une arborescence de chaînes de relais.
POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 13 6.5.2. Participation publique. Une autre direction possible est d'obtenir la participation du public au processus à travers un système de micro-réclamations. Comme les pêcheurs, il y a pourraient être des parties externes pour contrôler les validator qui prétendent disponibilité. Leur tâche est de trouver quelqu'un qui semble incapable de démontrer une telle disponibilité. Ce faisant, ils peut déposer une micro-réclamation auprès d'autres validator. PoW ou une obligation mise en jeu peut être utilisée pour atténuer l'attaque sybil ce qui rendrait le système largement inutile. 6.5.3. Garants de disponibilité. Une dernière voie serait de désigner un deuxième ensemble de validator liés comme « disponibilité » garants ». Ceux-ci seraient liés comme avec les validator normaux, et pourraient même provenir du même ensemble. (mais si tel est le cas, ils seraient choisis sur une période à long terme, au moins par session). Contrairement aux validator normaux, ils ne basculerait pas entre les parachains mais plutôt former un seul groupe pour attester de la disponibilité de toutes les données interchaînes importantes. Cela présente l’avantage d’assouplir l’équivalence entre participants et chaînes. Essentiellement, les chaînes peuvent grandir (avec l'ensemble de chaîne d'origine validator), alors que les participants, et particulièrement ceux qui participent au testament de disponibilité des données, peuvent rester pour le moins sous-linéaires et très probablement constant. 6.5.4. Préférences de l'assembleur. Un aspect important de cela système est de garantir qu’il existe une sélection saine de les assembleurs créant les blocs dans une parachain donnée. Si un un seul assembleur a dominé une parachain puis quelques attaques devenir plus réalisable puisque la probabilité de l'absence de la disponibilité de données externes serait moins évidente. Une option consiste à pondérer artificiellement les blocs de parachaine dans un mécanisme pseudo-aléatoire afin de favoriser une grande variété de assembleurs. Dans le premier cas, nous aurions besoin dans le cadre du mécanisme de consensus favorisé par validator Les candidats au bloc parachain ont été déterminés comme étant « plus lourds ». De même, nous devons inciter les validator à tenter de suggérer le bloc le plus lourd qu'ils peuvent trouver - cela pourrait être cela en rendant une partie de leur récompense proportionnelle au poids de leur candidat. Pour garantir que les assembleurs reçoivent une rémunération équitable et raisonnable chance que leur candidat soit choisi comme gagnant candidat en consensus, nous faisons le poids spécifique d'un Le candidat au bloc parachain est déterminé sur une fonction aléatoire connectée à chaque assembleur. Par exemple, en prenant la mesure de distance XOR entre l’adresse de l’assembleur et un numéro pseudo-aléatoire cryptographiquement sécurisé déterminé à proximité du point de création du bloc (un « ticket gagnant » fictif). Cela donne effectivement à chacun assembleur (ou, plus spécifiquement, l’adresse de chaque assembleur) chance aléatoire que leur bloc candidat « gagne » tous les autres. Pour atténuer l'attaque sybil d'un seul assembleur « extrayant » une adresse proche du ticket gagnant et étant ainsi un favori pour chaque bloc, nous ajouterions une certaine inertie à l'adresse d'un assembleur. Cela peut être aussi simple que de les exiger avoir un montant de base de fonds à l'adresse. Un plus une approche élégante serait de pondérer la proximité du billet gagnant avec le montant des fonds garés au adresse en question. Même si la modélisation reste à faire, il est fort possible que ce mécanisme permette même à des les petites parties prenantes à contribuer en tant que rassembleur. 6.5.5. Blocs en surpoids. Si un ensemble validator est compromis, ils peuvent créer et proposer un bloc qui, bien que valide, prend un temps excessif à exécuter et valider. C'est un problème puisqu'un groupe validator pourrait former raisonnablement un bloc qui prend beaucoup de temps à exécuter à moins qu'une information particulière soit déjà connue permettant un raccourci, par ex. en prenant en compte un grand premier. Si un seul assembleur connaissait cette information, alors ils auraient un net avantage à obtenir le leur les candidats acceptaient tant que les autres étaient occupés à traiter l'ancien bloc. Nous appelons ces blocs en surpoids. La protection contre les validator soumettant et validant ces blocs relève en grande partie du même couvert que pour blocs invalides, mais avec une mise en garde supplémentaire : puisque le temps nécessaire à l'exécution d'un bloc (et donc son statut de surpoids) est subjectif, le résultat final d’un vote sur la mauvaise conduite se divise essentiellement en trois camps. Un Il est possible que le bloc ne soit définitivement pas en surpoids. dans ce cas, plus des deux tiers déclarent qu'ils pourraient exécuter le bloc dans une certaine limite (par exemple 50 % du temps total autorisé entre les blocs). Une autre est que le le bloc est ddéfinitivement en surpoids - ce serait le cas si plus de les deux tiers déclarent qu'ils n'ont pas pu exécuter le blocage dans ladite limite. Une dernière possibilité est une divergence d’opinion entre les validator. Dans ce cas, nous pouvons choisir d'infliger une punition proportionnée. Pour garantir que les validator peuvent prédire quand ils pourraient être proposant un bloc en surpondération, il peut être judicieux de leur demander de publier des informations sur leurs propres performances pour chaque bloc. Sur une période de temps suffisante, cela devrait leur permettre de profiler leur vitesse de traitement par rapport aux pairs qui les jugeraient. 6.5.6. Assurance assembleur. Un problème demeure pour les validator : contrairement aux réseaux PoW, pour vérifier les informations d'un assembleur bloc pour la validité, ils doivent réellement y exécuter les transactions. Des assembleurs malveillants peuvent fournir des blocs invalides ou en surpoids aux validator, ce qui leur cause des problèmes (gaspillage leurs ressources) et exigeant un coût d’opportunité potentiellement substantiel. Pour atténuer cela, nous proposons une stratégie simple sur le fait partie des validators. Premièrement, les candidats au bloc parachain envoyés aux validators doivent être signés depuis un compte de chaîne de relais avec des fonds ; si ce n'est pas le cas, alors le validator devrait tomber immédiatement. Deuxièmement, ces candidats doivent être classés en priorité par une combinaison (par exemple multiplication) de le montant des fonds sur le compte jusqu'à un certain plafond, le nombre de blocs précédents que l'assembleur a proposés avec succès dans le passé (sans parler des blocs précédents punitions), et le facteur de proximité avec le gagnant billet comme indiqué précédemment. La casquette devrait être la même comme les dommages punitifs payés au validator dans le cas d'entre eux envoyant un bloc invalide. Pour dissuader les assembleurs d'envoyer des candidats de bloc invalides ou en surpoids aux validator, tout validator peut placer dans le bloc suivant une transaction incluant le bloc incriminé alléguant un mauvais comportement avec pour effet de transférer tout ou partie des fonds dans le compte de l'assembleur qui se comporte mal compte au validator lésé. Ce type de transaction précède tous les autres pour garantir que l'assembleur ne puisse pas retirer les fonds avant la punition. Le montant de les fonds transférés à titre de dommages et intérêts sont encore un paramètre dynamique
POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 14 à modéliser, mais représentera probablement une proportion de la récompense globale validator pour refléter le niveau de chagrin causé. À empêcher que des validator malveillants confisquent arbitrairement les fonds des collectionneurs, ce dernier peut faire appel de la décision du validator auprès d'un jury composé de validator choisis au hasard en échange. pour effectuer un petit dépôt. S’ils trouvent en faveur du validator, le dépôt est consommé par celui-ci. Sinon, le la caution est restituée et le validator est sanctionné (puisque le validator est dans une position beaucoup plus voûtée, l'amende sera probablement plutôt lourd). 6.6. Interchaîne Transaction Routage. Interchaîne le routage des transactions est l'un des éléments de maintenance essentiels tâches de la chaîne-relais et de ses validator. C'est le logique qui régit la façon dont une transaction publiée (souvent abrégée simplement en « post ») devient un résultat souhaité d'une parachain source à être une entrée non négociable d'une autre parachain de destination sans aucune confiance exigences. Nous choisissons soigneusement la formulation ci-dessus ; notamment nous ne nécessite pas qu'il y ait eu une transaction dans la source parachain d'avoir explicitement sanctionné ce post. Le seul Les contraintes que nous imposons à notre modèle sont que les parachaines doivent fournir, emballés dans le cadre de leur bloc global sortie du traitement, les postes qui sont le résultat du l’exécution du bloc. Ces publications sont structurées en plusieurs files d'attente FIFO ; le Le nombre de listes est appelé base de routage et peut être autour de 16. Ce nombre représente notamment la quantité de parachains que nous pouvons prendre en charge sans avoir à recourir à routage multiphase. Dans un premier temps, Polkadot prendra en charge cela type de routage direct, mais nous allons en décrire un possible processus de routage multiphase (« hyper-routage ») comme moyen d’évoluer bien au-delà de l’ensemble initial de parachains. Nous supposer que tout participants sais le sous-groupes pour les deux blocs suivants n, n + 1. En résumé, le Le système de routage suit ces étapes : • CollatorS : contacter les membres des V alidators[n][S] • Assembleurs : POUR CHAQUE sous-groupes : s'assurer au moins 1 membre des Validateurs[n][s] en contact • Assembleurs : POUR CHAQUE sous-groupes : supposer egress[n −1][s][S] est disponible (tous les messages entrants données vers 'S' du dernier bloc) • Assembleurs : Composez le bloc candidat b pour S : (b.header, b.ext, b.proof, b.receipt, b.egress) • Assembleurs : Envoyer preuve informations proof[S] = (b.header, b.ext, b.proof, b.receipt) à V alidateurs[n][S] • CollatorS : garantir que les données de transaction externes sont b.ext est mis à la disposition des autres assembleurs et validators • Assembleurs : POUR CHACUN sous-groupe s : Envoyer sortie informations sortie[n][S][s] = (b.header, b.receipt, b.egress[s]) à le recevoir sous-groupes membres de suivant bloquer V alidateurs[n + 1][s] • V alidatorV : pré-connecter tous les membres du même ensemble pour le bloc suivant : soit N = Chain[n + 1][V ]; connecter tous les validators v tels que Chain[n + 1][v] = N • V alidateurV : Rassemblez toutes les entrées de données pour cela bloquer : POUR CHACUN sous-groupe s : Récupérer egress[n −1][s][Chain[n][V ]], récupère d'autres validators v tels que Chain[n][v] = Chain[n][V ]. Peut-être en passant par d'autres validator sélectionnés au hasard pour une preuve de tentative. • V alidateurV : Acceptez les épreuves de candidat pour cela preuve de bloc[Chain[n][V ]]. Validité du blocage des votes • V alidateurV : Accepter les données de sortie des candidats pour bloc suivant : POUR CHAQUE sous-groupes, accepter sortie[n][s][N]. Disponibilité de sortie du bloc de vote ; republier parmi les validators intéressés v de telle sorte que Chaîne[n + 1][v] = Chaîne[n + 1][V ]. • V alidateurV : JUSQU'À CONSENSUS Où : egress[n][from][to] est la file d'attente de sortie actuelle informations pour les publications allant de la parachain « de » à parachain 'à' dans le bloc numéro 'n'. CollatorS est un assembleur pour les parachaines S. V alidators[n][s] est l'ensemble des validators pour les parachaines au numéro de bloc n. A l'inverse, Chain[n][v] est la parachain à laquelle validator v est attribué sur le bloc numéro n. block.egress[to] est la sortie file d'attente de messages provenant d'un bloc de bloc parachain dont la parachain de destination est à destination. Étant donné que les assembleurs perçoivent des frais (de transaction) basés sur leurs blocs deviennent canoniques, ils sont incités à le faire assurez-vous que pour chaque destination du bloc suivant, le sous-groupe les membres sont informés de la file d'attente de sortie du présent bloquer. Les validateurs sont incités uniquement à former un consensus sur un bloc (parachain), en tant que tels, ils se soucient peu de quel bloc de l’assembleur devient finalement canonique. Dans principe, un validator pourrait former une alliance avec un assembleur et conspirer pour réduire les chances que d’autres assembleurs les blocs deviennent canoniques, mais cela est à la fois difficile à organiser en raison de la sélection aléatoirection de validators pour parachains et pourrait être défendu avec une réduction des frais payables pour les blocs de parachain qui résistent le processus de consensus. 6.6.1. Disponibilité des données externes. Assurer une parachain les données externes sont réellement disponibles est un problème récurrent avec systèmes décentralisés visant à répartir la charge de travail entre le réseau. Au cœur du problème se trouve la disponibilité problème qui stipule que puisqu'il n'est ni possible de faire une preuve de disponibilité non interactive ni aucune sorte de preuve d'indisponibilité, pour qu'un système BFT fonctionne correctement valider toute transition dont l'exactitude dépend de la disponibilité de certaines données externes, le nombre maximum de nœuds byzantins acceptables, plus un, du système doit attester de la disponibilité des données. Pour qu'un système puisse évoluer correctement, comme Polkadot, ceci pose un problème : si une proportion constante de validators doit attester de la disponibilité des données, et en supposant que les validator voudront réellement stocker les données avant d'affirmer qu'elles sont disponibles, alors comment pouvons-nous éviter le problème des besoins en bande passante/stockage augmentant avec la taille du système (et donc le nombre de validator) ? Une réponse possible serait d'avoir un ensemble séparé de validators (garants de disponibilité), dont la commande s'accroît de manière sublinéaire avec la taille de Polkadot dans son ensemble. C'est décrit en 6.5.3. Nous avons également une astuce secondaire. En tant que groupe, les assembleurs sont intrinsèquement incités à garantir que toutes les données sont disponible pour la parachain de leur choix puisque sans elle, ils sont incapables de créer d'autres blocs à partir desquels ils peuvent percevoir les frais de transaction. Les assembleurs forment également un groupe dont la composition est variée (en raison du caractère aléatoire des groupes parachain validator) non trivial à saisir et facile
POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 15 à prouver. Les assembleurs récents (peut-être les derniers milliers de blocs) sont donc autorisés à lancer des défis à la disponibilité de données externes pour une parachain particulière bloquez sur validators pour une petite caution. Les validateurs doivent contacter ceux du sous-groupe validator apparemment incriminé qui ont témoigné et soit acquérir et restituer les données à l'assembleur, soit faire remonter le problème. en témoignant du manque de disponibilité (le refus direct de fournir les données compte comme un délit de confiscation de caution, donc le mauvais comportement de validator sera probablement simplement interrompre la connexion) et contacter des validator supplémentaires pour exécuter le même test. Dans ce dernier cas, la caution du collecteur est retourné. Une fois atteint le quorum de validator pouvant faire de tels témoignages d'indisponibilité, ils sont libérés, le Le sous-groupe qui se comporte mal est puni et le blocage est annulé. 6.6.2. Routage des publications. Chaque en-tête de parachain comprend un sortie-trie-root ; c'est la racine d'un trie contenant le bacs de base de routage, chaque bac étant une liste concaténée des postes de sortie. Les preuves Merkle peuvent être fournies partout parachain validators pour prouver qu'une parachain particulière le bloc avait une file d’attente de sortie particulière pour une parachain de destination particulière. Au début du traitement d'un bloc de parachain, chaque la file d'attente de sortie d'une autre parachain à destination dudit bloc est fusionné dans la file d’attente d’entrée de notre bloc. Nous supposons fort, probablement CSPR9, sous-bloc ordonnant de réaliser une opération déterministe qui n'offre aucun favoritisme entre aucun appariement de blocs de parachain. Les assembleurs calculent la nouvelle file d'attente et vidanger les files d'attente de sortie selon les paramètres de la parachain logique. Le contenu de la file d'attente d'entrée est écrit explicitement dans le bloc parachain. Cela a deux objectifs principaux : Premièrement, cela signifie que la parachain peut être synchronisée en toute confiance, indépendamment des autres parachains. Deuxièmement, cela simplifie la logistique des données en cas d'entrée complète la file d'attente ne peut pas être traitée en un seul bloc ; Les validator et les assembleurs sont capables de traiter les blocs suivants sans avoir à rechercher spécialement les données de la file d’attente. Si la file d'attente d'entrée de la parachain est supérieure à un seuil montant à la fin du traitement du bloc, il est alors marqué saturé sur la chaîne relais et aucun autre message ne peut lui être livré jusqu'à ce qu'il soit dégagé. Les preuves Merkle sont utilisé pour démontrer la fidélité du fonctionnement de l’assembleuse dans la preuve du bloc parachain. 6.6.3. Critique. Un défaut mineur relatif à cette base Le mécanisme est l’attentat post-bombe. C'est là que tout les parachains envoient le maximum de messages possible à une parachain particulière. Bien que cela bloque la cible file d'attente d'entrée en même temps, aucun dommage n'est causé au-delà une attaque DoS de transaction standard. Fonctionnant normalement, avec un ensemble de fonctions bien synchronisées et assembleurs non malveillants et validators, pour N parachains, N × M total validators et L assembleurs par parachain, nous peut décomposer le total des chemins de données par bloc pour : Validateur : M −1+L+L : M −1 pour les autres validators dans l'ensemble de parachain, L pour chaque assembleur fournissant un bloc de parachain candidat et un deuxième L pour chaque assembleur du bloc suivant nécessitant les charges utiles de sortie du bloc précédent. (Ce dernier cas ressemble en fait plutôt au pire des cas opération puisqu’il est probable que les assembleurs partageront ces données.) Collator : M +kN : M pour une connexion à chaque élément pertinent bloc parachain validator, kN pour amorcer les charges utiles de sortie vers un sous-ensemble de chaque groupe parachain validator pour le bloc suivant (et éventuellement certains assembleurs préférés). En tant que tel, les chemins de données par nœud augmentent de manière linéaire avec la complexité globale du système. Alors que c'est raisonnable, à mesure que le système évolue en centaines ou en milliers de parachains, une certaine latence de communication peut être absorbée en échange d’un taux de croissance de complexité plus faible. Dans ce cas, un algorithme de routage multiphase peut être utilisé afin de réduire le nombre de parcours instantanés au prix de l'introduction de tampons de stockage et de latence. 6.6.4. Routage hyper-cube. Le routage hyper-cube est un mécanisme qui peut principalement être construit comme une extension du mécanisme de routage de base décrit ci-dessus. Essentiellement, plutôt que d'augmenter la connectivité des nœuds avec le nombre de parachains et de nœuds de sous-groupes, nous grandissons uniquement avec le logarithme des parachaines. Les messages peuvent transiter entre plusieurs files d’attente de parachaines en route vers la livraison finale. Le routage lui-même est déterministe et simple. Nous commençons par limiter le nombre de casiers dans les files d'attente d'entrée/sortie ; plutôt que d'être le nombre total de parachains, ils sont lesbase de routage (b) . Celui-ci sera fixé comme le nombre des parachains changent, l'exposant de routage (e) étant plutôt augmenté. Sous ce modèle, notre volume de messages grandit avec O(be), les voies restant constantes et la latence (ou nombre de blocs requis pour la livraison) avec O(e). Notre modèle de routage est un hypercube de e dimensions, chaque côté du cube ayant b emplacements possibles. À chaque bloc, nous acheminons les messages le long d'un seul axe. Nous alternez les axes de manière circulaire, garantissant ainsi le délai de livraison des blocs électroniques dans le pire des cas. Dans le cadre du traitement de la parachain, à destination de l'étranger Les messages trouvés dans la file d'attente d'entrée sont immédiatement acheminés vers le bac de la file d'attente de sortie approprié, compte tenu de la numéro de bloc actuel (et donc dimension de routage). Ceci le processus nécessite un transfert de données supplémentaire pour chaque saut sur l'itinéraire de livraison, mais c'est un problème en soi qui peut être atténué en utilisant des moyens alternatifs de livraison de données utiles et comprenant uniquement une référence, plutôt que la charge utile complète du message dans le post-trie. Un exemple d'un tel routage hyper-cube pour un système avec 4 parachaines, b = 2 et e = 2 pourraient être : Phase 0, sur chaque message M : • sub0 : si Mdest ∈{2, 3} alors sendTo(2) sinon garder • sub1 : si Mdest ∈{2, 3} alors sendTo(3) sinon garder • sub2 : si Mdest ∈{0, 1} alors sendTo(0) sinon garder • sub3 : si Mdest ∈{0, 1} alors sendTo(1) sinon garder Phase 1, sur chaque message M : • sub0 : si Mdest ∈{1, 3} alors sendTo(1) sinon garder • sub1 : si Mdest ∈{0, 2} alors sendTo(0) sinon garder • sub2 : si Mdest ∈{1, 3} alors sendTo(3) sinon garder • sub3 : si Mdest ∈{0, 2} alors sendTo(2) sinon garder Les deux dimensions ici sont faciles à considérer comme la première deux bits de l'index de destination ; pour le premier bloc, le seul le bit d’ordre supérieur est utilisé. Le deuxième bloc traite avec le bit de poids faible. Une fois que les deux se produisent (de manière arbitraire commande) alors le courrier sera acheminé. 9cryptographiquement sécurisé pseudo-aléatoire
POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 16 6.6.5. Maximiser le hasard. Une modification de la base la proposition verrait un total fixe de c2 −c validators, avec c−1 validators dans chaque sous-groupe. Chaque bloc, plutôt que il y a une répartition non structurée des validators parmi les parachaines, au lieu de cela pour chaque sous-groupe de parachaines, chaque validator serait attribué à un utilisateur unique et différent. sous-groupe parachain sur le bloc suivant. Ce serait conduire à l'invariant qu'entre deux blocs quelconques, pour tout deux paires de parachain, il existe deux validator qui ont échangé les responsabilités de la parachain. Bien que cela ne puisse pas être utilisé pour obtenir des garanties absolues sur la disponibilité (un seul validator tombera occasionnellement hors ligne, même si bienveillant), il peut néanmoins optimiser le cas général. Cette approche n'est pas sans complications. L'ajout d'une parachain nécessiterait également une réorganisation de l'ensemble validator. De plus le nombre de validators, étant lié au carré du nombre de parachains, commencerait très petit au début et finirait par grandir loin trop rapide, devenant intenable après environ 50 parachains. Aucun de ces problèmes ne constitue un problème fondamental. Dans le premier cas, la réorganisation des ensembles validator est quelque chose qui doit être fait régulièrement de toute façon. Concernant la taille du validator défini, lorsqu'il est trop petit, plusieurs validator peuvent être attribués à la même parachain, en appliquant un facteur entier au total global de validators. Un mécanisme de routage multiphase tel que le routage Hypercube, discuté en 6.6.4 alléger l'exigence d'un grand nombre de validator lorsqu'il y a un grand nombre de chaînes. 6.7. Validation de la parachaine. L'objectif principal d'un validator est de témoigner, en tant qu’acteur soudé, que le le bloc est valide, y compris, mais sans s'y limiter, toute transition d'état, toutes transactions externes incluses, l'exécution de tous les messages en attente dans la file d'attente d'entrée et l'état final de la file d’attente de sortie. Le processus lui-même est assez simple. Une fois que le validator a scellé le bloc précédent, il est libre commencer à travailler pour fournir un bloc de parachain candidat candidat au prochain tour de consensus. Initialement, le validator trouve un candidat de bloc de parachain via un assembleur de parachain (décrit ci-dessous) ou un de ses co-validators. Les données candidates au bloc parachain inclut l’en-tête du bloc, l’en-tête du bloc précédent, toutes les données d'entrée externes incluses (pour Ethereum et Bitcoin, ces données seraient appelées transactions, mais en principe elles peuvent inclure des structures de données arbitraires à des fins arbitraires), des données de file d'attente de sortie et des données internes pour prouver la validité de la transition d'état (pour Ethereum il s'agirait des différents nœuds d'état/de stockage requis pour exécuter chaque transaction). Des preuves expérimentales montrent cet ensemble de données complet pour un bloc Ethereum récent être au maximum de quelques centaines de KiB. Simultanément, si ce n'est pas encore fait, le validator sera tenter de récupérer des informations relatives à la transition du bloc précédent, initialement à partir du bloc précédent validators et plus tard de tous les validators signant pour le disponibilité des données. Une fois que le validator a reçu un tel bloc candidat, ils le valident ensuite localement. Le processus de validation est contenu dans le module validator de la classe parachain, un module logiciel sensible au consensus qui doit être écrit pour toute implémentation de Polkadot (bien qu'en principe une bibliothèque avec un C ABI pourrait permettre à une seule bibliothèque de être partagé entre les implémentations avec les réduction de la sécurité due au fait de n’avoir qu’une seule implémentation « de référence »). Le processus prend l'en-tête du bloc précédent et vérifie son identité via la chaîne de relais récemment convenue. bloc dans lequel son hash doit être enregistré. Une fois la validité de l'en-tête parent vérifiée, la parachain spécifique La fonction de validation de la classe peut être appelée. Il s'agit d'une fonction unique acceptant un certain nombre de champs de données (environ ceux donnés précédemment) et renvoyant un simple booléen proclamant la validité du blocage. La plupart de ces fonctions de validation vérifieront d'abord des champs d'en-tête qui peuvent être dérivés directement de le bloc parent (par exemple parent hash, numéro). Suite cela, ils rempliront toutes les structures de données internes comme nécessaires au traitement des transactions et/ou des publications. Pour une chaîne de type Ethereum, cela revient à remplir un trie base de données avec les nœuds qui seront nécessaires pour le exécution complète des transactions. D'autres types de chaînes peuvent avoir autre pmécanismes de réparation. Une fois cela fait, les publications d'entrée et les transactions externes (ou tout ce que représentent les données externes) seront édictés, équilibrés selon les spécifications de la chaîne. (Un Une valeur par défaut raisonnable pourrait être d'exiger que toutes les publications entrantes soient traitées avant que les transactions externes ne soient traitées, mais cela devrait appartenir à la logique de la parachain de décider.) Grâce à ce texte, une série de postes de sortie seront créés et il sera vérifié que ceux-ci correspondent bien le candidat du assembleur. Enfin, le formulaire correctement renseigné l’en-tête sera vérifié par rapport à l’en-tête du candidat. Avec un bloc candidat entièrement validé, le validator peut alors voter pour le hash de son en-tête et envoyer toutes les informations de validation requises aux co-validator de son sous-groupe. 6.7.1. Collateurs Parachain. Les assembleurs de parachain sont des opérateurs non cautionnés qui remplissent une grande partie de la tâche des mineurs sur les réseaux blockchain actuels. Ils sont spécifiques à une parachain particulière. Pour fonctionner, ils doivent maintenir à la fois la chaîne de relais et le système entièrement synchronisé parachaine. La signification précise de « entièrement synchronisé » dépendra de la classe de la parachain, mais inclura toujours l'état actuel de la file d'attente d'entrée de la parachain. Dans le cas de Ethereum, cela implique également au moins de maintenir une base de données Merkle-tree des derniers blocs, mais pourrait incluent également diverses autres structures de données, notamment Bloom filtres pour l'existence du compte, les informations familiales, la journalisation sorties et tables de recherche inversée pour le numéro de bloc. En plus de maintenir les deux chaînes synchronisées, il doit également « pêcher » les transactions en maintenant une file d’attente des transactions et en acceptant les transactions correctement validées du réseau public. Avec la file d'attente et la chaîne, c'est capable de créer de nouveaux blocs candidats pour les validator choisis à chaque bloc (dont l'identité est connue puisque la chaîne de relais est synchronisée) et de les soumettre, avec les diverses informations annexes telles que la preuve de validité, via le réseau de pairs. Pour sa peine, il perçoit tous les frais relatifs aux transactions qu'il inclut. Diverses théories économiques flottent autour de cela arrangement. Dans un marché fortement concurrentiel où il existe s'il y a un surplus de collecteurs, il est possible que la transaction les frais seront partagés avec les parachain validators pour inciter l’inclusion d’un bloc d’assemblage particulier. De la même manière,
POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 17 certains assembleurs peuvent même augmenter les frais requis à payer afin de rendre le bloc plus attractif pour validators. Dans ce cas, un marché naturel devrait se former avec des transactions payant des frais plus élevés, évitant la file d'attente et avoir une inclusion plus rapide dans la chaîne. 6.8. Réseautage. Réseautage sur les blockchain traditionnels comme Ethereum et Bitcoin a des exigences plutôt simples. Toutes les transactions et tous les blocages sont diffusés dans de simples potins non dirigés. La synchronisation est plus complexe, notamment avec Ethereum mais en réalité cette logique était contenue dans la stratégie des pairs plutôt que le protocole lui-même qui se résolvait autour de quelques types de messages de requête et de réponse. Alors que Ethereum a progressé sur les offres de protocoles actuelles avec le protocole devp2p, qui a permis de nombreuses les sous-protocoles doivent être multiplexés sur une seule connexion homologue et avoir ainsi la même superposition homologue prenant en charge de nombreux protocoles p2p simultanément, la partie Ethereum de le protocole restait encore relativement simple et le p2p le protocole reste pour l’instant inachevé avec d’importants fonctionnalités manquantes telles que la prise en charge de la QoS. Malheureusement, le désir de créer un protocole « Web 3 » plus omniprésent a échoué, les seuls projets qui l'utilisent étant ceux explicitement financé par la vente participative Ethereum. Les exigences pour Polkadot sont un peu plus substantielles. Plutôt qu'un réseau totalement uniforme, Polkadot compte plusieurs types de participants, chacun ayant des exigences différentes quant à la composition de leurs pairs et plusieurs réseaux. des « pistes » dont les participants auront tendance à discuter données particulières. Cela signifie une superposition de réseau beaucoup plus structurée – et un protocole prenant en charge cela – sera probablement nécessaire. En outre, l'extensibilité pour faciliter les ajouts futurs tels que de nouveaux types de « chaînes » peut eux-mêmes nécessitent une nouvelle structure de superposition. Lors d'une discussion approfondie sur la façon dont le réseautage Si le protocole peut paraître hors du champ d'application de ce document, certaines analyses des exigences sont raisonnables. Nous pouvons diviser grossièrement les participants de notre réseau en deux ensembles (chaîne relais, parachains) chacun des trois sous-ensembles. Nous pouvons indiquent également que chacun des participants à la parachain n'est que intéressés à converser entre eux plutôt que participants à d'autres parachains : • Acteurs de la chaîne relais : • Validateurs : P, divisé en sous-ensembles P[s] pour chacun parachaine • Garants de disponibilité : A (cela peut être représenté par des validateurs dans la forme de base du protocole) • Clients relais-chaîne : M (notez les membres de chaque l'ensemble de parachain aura également tendance à être membre de M) • Participants à la Parachain : • Collateurs Parachain : C[0], C[1], . . . • Pêcheurs Parachain : F[0], F[1], . . . • Clients Parachain : S[0], S[1], . . . • Clients légers Parachain : L[0], L[1], . . . En général, nous nommons des classes particulières de communication aura tendance à avoir lieu entre les membres de ces ensembles : • P | Un <-> P | R : Le plein ensemble de validators/garants doit être bien connecté à parvenir à un consensus. • P[s] <-> C[s] | P[s] : Chaque validator en tant que membre d'un groupe de parachain donné aura tendance à bavarder avec d'autres membres ainsi qu'avec les assembleurs de cette parachain pour découvrir et partager des candidats de bloc. • Un <-> P[s] | C | R : Chaque garant de disponibilité devra collecter des données inter-chaînes sensibles au consensus les données des validator qui lui sont attribués ; assembleurs peut également optimiser les chances de consensus sur leur bloquer en l'annonçant aux garants de disponibilité. Une fois qu'ils les auront, les données seront versées à autre garant pour faciliter le consensus. • P[s] <-> A | P[s'] : les Parachain validators seront Vous devez collecter des données d'entrée supplémentaires à partir de l'ensemble précédent de validator ou des garants de disponibilité. • F[s] <-> P : Lors de la déclaration, les pêcheurs peuvent placer une réclamation auprès de tout participant. • M <-> M | P | R : Les clients généraux de la chaîne de relais décaissent les données des validator et des garants. • S[s] <-> S[s] | P[s] | R : Les clients Parachain décaissent les données des validator/garants. • L[s] <-> L[s] | S[s] : clients légers Parachain décaisser les données des clients complets. Pour assurer un mécanisme de transport efficace, un « plat » réseau superposé, comme le devp2p de Ethereum, où chaque le nœud ne différencie pas (de manière non arbitraire) l’aptitude de ses Il est peu probable que les pairs conviennent. Un raisonnablement extensible le mécanisme de sélection et de découverte par les pairs nécessitera probablement à inclure dans le protocole ainsi que agressif planifier une analyse prospective pour garantir le bon type de pairs sont « par hasard » connecté au bon moment. La stratégie précise de composition par les pairs sera différente pour chaque classe de participants : pour une multi-chaînes, les assembleuses devront soit être continuellement se reconnecter aux validator élus en conséquence, ou besoin d'accords continus avec un sous-ensemble des validator pour s'assurer qu'ils ne sont pas déconnectés pendant la grande majorité du temps où ils sont inutiles pour ce validator. Les assembleurs tenteront aussi naturellement de maintenir un ou des connexions plus stables au garant de disponibilité mis en place pour assurer une propagation rapide de leurs messages sensibles au consensus données. Les garants de disponibilité viseront principalement à maintenir un connexion stable entre eux et avec les validator (pour le consensus et les données parachain critiques au consensus auxquelles ils l'attestent), ainsi qu'à certains assembleurs (pour la parachain données) et certains pêcheurs et clients à part entière (pour disperser informations). Les validateurs auront tendance à rechercher d'autres validator, en particulier ceux du même sous-groupe et tout autre validator. des assembleurs qui peuvent leur fournir des candidats au bloc parachain. Les pêcheurs, ainsi que les relais généralistes et parachaines les clients viseront généralement à maintenir une connexion ouverte à un validator ou garant, mais plein d'autres nœuds similaires à eux-mêmes autrement. Les clients légers de la Parachain viseront de la même manière à être connectés à un client complet de la parachain, sinon seulement d’autres clients légers parachain. 6.8.1. Le problème du désabonnement des pairs. Dans la proposition de protocole de base, chacun de ces sous-ensembles change constamment de manière aléatoire avec chaque bloc en tant que validators assignés pour vérifier les transitions de parachain sont élues au hasard. Cela peut être un problème si des nœuds disparates (non homologues) doivent transmettre des données entre eux. Il faut soit s'appuyer sur un réseau de pairs équitablement réparti et bien connecté pour
POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 18 garantir que la distance de saut (et donc la latence dans le pire des cas) n'augmente qu'avec le logarithme de la taille du réseau (un protocole de type Kademlia [13] peut aider ici), ou il faut introduire des temps de blocage plus longs pour permettre la négociation de connexion nécessaire afin de conserver un ensemble d'homologues qui reflète les besoins de communication actuels du nœud. Aucune de ces solutions n’est excellente : de longs temps de blocage être imposé au réseau peut le rendre inutile pour applications et chaînes particulières. Même un parfaitement juste et le réseau connecté entraînera un gaspillage important de bande passante à mesure qu'elle évolue en raison des nœuds non intéressés ayant pour leur transmettre des données inutiles. Même si les deux directions peuvent faire partie de la solution, une optimisation raisonnable pour aider à minimiser la latence serait être de restreindre la volatilité de ces parachain validator ensembles, soit en réaffectant l'appartenance uniquement entre des séries de blocs (par exemple, en groupes de 15, qui à 4 secondes le temps de blocage signifierait modifier les connexions une seule fois par minute) ou en faisant tourner les membres de manière progressive, par ex. changeant par un membre à la fois (par exemple s'il y a y a-t-il 15 validator attribués à chaque parachain, alors en moyenne, cela prendrait une minute complète entre des ensembles). En limitant le taux de désabonnement des pairs et en garantissant que les connexions entre pairs avantageuses sont établies correctement dans avancer grâce à la prévisibilité partielle de la parachain ensembles, nous pouvons contribuer à garantir que chaque nœud conserve en permanence un sélection fortuite de pairs. 6.8.2. Chemin vers un protocole réseau efficace. Probablement le L'effort de développement le plus efficace et le plus raisonnable se concentrera sur l'utilisation d'un protocole préexistant plutôt que sur un protocole continu. le nôtre. Il existe plusieurs protocoles de base peer-to-peer qui nous pouvons utiliser ou augmenter, y compris le propre devp2p de Ethereum [22], libp2p [1] d'IPFS et GNUnet [4] de GNU. Un examen complet de ces protocoles et de leur pertinence pour construire un réseau de pairs modulaire prenant en charge certaines garanties structurelles, un pilotage dynamique par les pairs et des sous-protocoles extensibles dépasse largement la portée de ce document mais constituera un étape importante dans la mise en œuvre de Polkadot. 7. Aspects pratiques du Protocole 7.1. Paiement des transactions interchaînes. Alors qu'un grand Une certaine quantité de liberté et de simplicité est obtenue en supprimant le besoin d'un cadre de comptabilité holistique des ressources de calcul comme le gaz de Ethereum, cela soulève une question importante : sans gaz, comment peut-on parachain éviter qu'une autre parachain la force à faire du calcul ? Bien que nous puissions compter sur la file d'attente d'entrée après la transaction tampons pour empêcher une chaîne de spammer une autre avec données de transaction, il n'existe aucun mécanisme équivalent fourni par le protocole pour empêcher le spam du traitement des transactions. C'est un problème laissé au niveau supérieur. Depuis les chaînes sont libres d'attacher une sémantique arbitraire aux éléments entrants données post-transaction, nous pouvons garantir que le calcul doit être payé avant de commencer. Dans la même veine que le modèle épousé par Ethereum Serenity, nous pouvons imaginer un contrat de « rodage » au sein d’une parachain qui permet un validator pour garantir le paiement en échange du mise à disposition d'un volume particulier de ressources de traitement. Ces ressources peuvent être mesurées en quelque chose comme le gaz, mais il pourrait également s'agir d'un modèle entièrement nouveau tel qu'un délai d'exécution subjectif ou un modèle forfaitaire de type Bitcoin. En soi, cela n'est pas très utile car nous ne pouvons pas facilement supposer que l'appelant hors chaîne dispose de quel que soit le mécanisme de valeur reconnu par le cambriolage contrat. Cependant, on peut imaginer un contrat secondaire « en petits groupes » dans la chaîne d’approvisionnement. Les deux contrats ensemble formeraient un pont, se reconnaissant et fournissant une équivalence de valeur. (Jalonnement-tokens, disponible pour chacun, pourrait être utilisé pour régler la balance des paiements.) Faire appel à une autre chaîne de ce type signifierait utiliser un proxy par ce pont, qui fournirait les moyens de négocier le transfert de valeur entre les chaînes afin de payer les ressources de calcul requises sur la parachain de destination. 7.2. Supplémentaire Chaînes. Tandis que le ajout de un la parachain est une opération relativement bon marché, elle n’est pas gratuite. Plus de parachaines signifie moins de validators par parachaine et, éventuellement, un plus grand nombre de validator chacun avec un obligation moyenne réduite. Alors que le problème d'un coût de coercition moindre pour attaquer une parachain est atténué grâce à pêcheurs, l’ensemble croissant de validator force essentiellement un degré de latence plus élevé en raison de la mécanique du consensus sous-jacentthod. De plus, chaque parachain apporte avec lui le potentiel de chagriner les validator avec un algorithme de validation trop lourd. En tant que tel, il y aura un « prix » qui validators et/ou la communauté des parties prenantes extraira pour le ajout d'une nouvelle parachaine. Ce marché des chaînes va voir éventuellement l'ajout de soit : • Les chaînes qui n'ont probablement aucune contribution nette à payer (en termes de verrouillage ou de brûlage de staking token) à en faire partie (par exemple, les chaînes de consortium, Doge-chains, chaînes spécifiques à une application) ; • des chaînes qui apportent une valeur intrinsèque au réseau en ajoutant des fonctionnalités particulières difficiles pour aller ailleurs (par exemple, confidentialité, évolutivité interne, liens de service). Essentiellement, la communauté des parties prenantes devra être incité à ajouter des chaînes enfants – que ce soit financièrement ou par la volonté d'ajouter des chaînes fonctionnelles au relais. Il est prévu que les nouvelles chaînes ajoutées auront un effet très délai de préavis court pour le retrait, permettant aux nouvelles chaînes de être expérimenté sans aucun risque de compromis la proposition de valeur à moyen ou long terme. 8. Conclusion Nous avons décrit une direction que l'on peut prendre pour rédiger un protocole multi-chaînes évolutif et hétérogène avec le potentiel d'être rétrocompatible avec certains protocoles préexistants Réseaux blockchain. Dans le cadre d'un tel protocole, les participants travailler dans un intérêt personnel éclairé pour créer un système global qui peut être étendu d'une manière exceptionnellement libre et sans le coût typique pour les utilisateurs existants qui provient d'une conception standard blockchain. Nous avons donné un aperçu de l'architecture qu'il faudrait, y compris la nature des participants, leurs incitations économiques et les processus dans lesquels ils doivent s'engager. Nous avons identifié une conception de base et discuté de ses points forts et limites; en conséquence, nous avons d'autres instructions qui peut atténuer ces limitations et céder du terrain vers une solution blockchain entièrement évolutive.POLKADOT : VISION D'UN CADRE MULTI-CHAÎNES HÉTÉROGÈNE PROJET 1 19 8.1. Matériel manquant et questions ouvertes. La bifurcation du réseau est toujours une possibilité en raison d'implémentations divergentes du protocole. La guérison d'un tel la condition exceptionnelle n’a pas été discutée. Étant donné que le réseau aura nécessairement une période de finalisation non nulle, la récupération après la bifurcation de la chaîne de relais ne devrait pas poser de problème majeur, mais cela nécessitera une intégration minutieuse dans le protocole de consensus. La disposition relative à la confiscation des cautions et, à l'inverse, à la récompense a été n’a pas été exploré en profondeur. À l'heure actuelle, nous supposons des récompenses sont fournis selon le principe du gagnant qui remporte tout : cela peut ne pas offrir le meilleur modèle d’incitation aux pêcheurs. Un processus d'engagement-révélation de courte durée permettrait à de nombreux pêcheurs réclamer le prix en donnant une répartition plus équitable des récompenses, cependant, le processus pourrait entraîner une latence supplémentaire dans le découverte d'une mauvaise conduite. 8.2. Remerciements. Un grand merci à tous les les correcteurs qui ont aidé à mettre cela dans une vague forme présentable. En particulier, Peter Czaban, Bjorn Wagner, Ken Kappler, Robert Habermeier, Vitalik Buterin, Reto Trinkler et Jack Petersson. Merci à tous les personnes qui ont apporté des idées ou les débuts parmi eux, Marek Kotewicz et Aeron Buchanan méritent une mention particulière. Et merci à tous les autres pour leur aide en cours de route. Toutes les erreurs sont les miennes. Certaines parties de ce travail, y compris la recherche initiale sur algorithmes de consensus, a été financé en partie par les Britanniques Gouvernement dans le cadre du programme Innovate UK.