Polkadot: Visão para uma estrutura heterogênea de múltiplas cadeias

Yazan Gavin Wood · 2016

Tek mod polkadot.com

Ö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

Resumo

POLKADOT: VISÃO PARA UMA ESTRUTURA MULTI-CADEIA HETEROGÊNEA ESBOÇO 1 DR. MADEIRA GAVIN FUNDADOR, ETHEREUM E PARIDADE [email protected] Resumo. Todas as arquiteturas blockchain atuais sofrem de uma série de problemas, incluindo meios práticos de extensibilidade e escalabilidade. Acreditamos que isto decorre da ligação de duas partes muito importantes da arquitectura de consenso, nomeadamente canonicidade e validade, muito próximas. Este artigo apresenta uma arquitetura, a multicadeia heterogênea, o que fundamentalmente diferencia os dois. Ao compartimentar estas duas partes e ao manter a funcionalidade geral fornecida a um mínimo absoluto de segurança e transporte, introduzimos meios práticos de extensibilidade central in situ. A escalabilidade é abordada através uma abordagem de dividir e conquistar para estas duas funções, expandindo-se para fora do seu núcleo ligado através do incentivo de nós públicos não confiáveis. A natureza heterogênea desta arquitetura permite que muitos tipos altamente divergentes de sistemas de consenso interoperem em uma “federação” totalmente descentralizada e sem confiança, permitindo que redes abertas e fechadas tenham acesso livre de confiança a um ao outro. Apresentamos um meio de fornecer compatibilidade retroativa com uma ou mais redes pré-existentes, como Ethereum. Acreditamos que tal sistema fornece um componente de nível básico útil na busca geral por um sistema praticamente sistema implementável capaz de atingir níveis de escalabilidade e privacidade no comércio global. 1. Prefácio Este pretende ser um resumo técnico da “visão” de uma possível direção que pode ser tomada no desenvolvimento do paradigma blockchain, juntamente com alguma justificativa sobre por que essa direção é sensata. Ele se estabelece em tantos detalhes quanto possível neste estágio de desenvolvimento um sistema que possa proporcionar uma melhoria concreta num vários aspectos da tecnologia blockchain. Não pretende ser uma especificação, formal ou não. Não pretende ser abrangente nem ser uma projeto final. Não se destina a cobrir aspectos não essenciais da estrutura, como APIs, ligações, linguagens e uso. Isto é notavelmente experimental; onde parâmetros são especificados, eles provavelmente mudarão. Os mecanismos irão ser adicionado, refinado e removido em resposta às necessidades da comunidade ideias e críticas. Grandes porções deste documento provavelmente serão ser revisado à medida que evidências experimentais e prototipagem fornecem nos informações sobre o que funcionará e o que não funcionará. Este documento inclui uma descrição básica do protocolo, juntamente com ideias de orientações que podem ser tomadas para melhorar vários aspectos. Prevê-se que o núcleo descrição será usada como ponto de partida para uma série de provas de conceito. Uma “versão 1.0” final seria baseado neste protocolo refinado, juntamente com as ideias adicionais que foram comprovadas e estão determinadas a necessários para que o projeto atinja seus objetivos. 1.1. História. • 10/09/2016: 0.1.0-prova1 • 20/10/2016: 0.1.0-prova2 • 11/01/2016: 0.1.0-prova3 • 11/10/2016: 0.1.0 2. Introdução Blockchains demonstraram grande promessa de utilidade em vários campos, incluindo “Internet das Coisas” (IoT), finanças, governança, gestão de identidade, descentralização da web e rastreamento de ativos. No entanto, apesar do promessa tecnológica e grande conversa, ainda não vimos implantação significativa no mundo real da tecnologia atual. Acreditamos que isto se deve a cinco falhas principais da actual pilhas de tecnologia: Escalabilidade: quantos recursos são gastos globalmente sobre processamento, largura de banda e armazenamento para o sistema processar uma única transação e quantas as transações podem ser razoavelmente processadas sob condições de pico? Isolabilidade: As necessidades divergentes de múltiplos as partes e as candidaturas sejam abordadas num grau quase óptimo no âmbito do mesmo enquadramento? Capacidade de desenvolvimento: quão bem as ferramentas funcionam? Faça as APIs atendem às necessidades dos desenvolvedores? Existem materiais educativos disponíveis? As integrações certas estão aí? Governança: A rede pode permanecer flexível para evoluir e se adaptar ao longo do tempo? As decisões podem ser feito com suficiente inclusão, legitimidade e transparência para fornecer liderança eficaz de um sistema descentralizado? Aplicabilidade: A tecnologia realmente atende a uma necessidade premente por si só? É necessário outro “middleware” para preencher a lacuna para aplicações reais? No presente trabalho pretendemos abordar os dois primeiros questões: escalabilidade e isolabilidade. Dito isto, acreditamos a estrutura Polkadot pode fornecer melhorias significativas em cada uma dessas classes de problemas. Implementações blockchain modernas e eficientes, como o cliente Paridade Ethereum [17] pode processarmenos em excesso 3.000 transações por segundo quando executado em hardware de consumo de alto desempenho. No entanto, o mundo real atual blockchain redes estão praticamente limitadas a cerca de 30 transações por segundo. Esta limitação tem origem principalmente no facto de os actuais mecanismos de consenso síncrono exigirem amplas margens temporais de segurança em o tempo de processamento esperado, que é agravado pela 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.

Introdução

Blockchains demonstraram grande promessa de utilidade em vários campos, incluindo “Internet das Coisas” (IoT), finanças, governança, gestão de identidade, descentralização da web e rastreamento de ativos. No entanto, apesar do promessa tecnológica e grande conversa, ainda não vimos implantação significativa no mundo real da tecnologia atual. Acreditamos que isto se deve a cinco falhas principais da actual pilhas de tecnologia: Escalabilidade: quantos recursos são gastos globalmente sobre processamento, largura de banda e armazenamento para o sistema processar uma única transação e quantas as transações podem ser razoavelmente processadas sob condições de pico? Isolabilidade: As necessidades divergentes de múltiplos as partes e as candidaturas sejam abordadas num grau quase óptimo no âmbito do mesmo enquadramento? Capacidade de desenvolvimento: quão bem as ferramentas funcionam? Faça as APIs atendem às necessidades dos desenvolvedores? Existem materiais educativos disponíveis? As integrações certas estão aí? Governança: A rede pode permanecer flexível para evoluir e se adaptar ao longo do tempo? As decisões podem ser feito com suficiente inclusão, legitimidade e transparência para fornecer liderança eficaz de um sistema descentralizado? Aplicabilidade: A tecnologia realmente atende a uma necessidade premente por si só? É necessário outro “middleware” para preencher a lacuna para aplicações reais? No presente trabalho pretendemos abordar os dois primeiros questões: escalabilidade e isolabilidade. Dito isto, acreditamos a estrutura Polkadot pode fornecer melhorias significativas em cada uma dessas classes de problemas. Implementações blockchain modernas e eficientes, como o cliente Parity Ethereum [17] pode processar mais de 3.000 transações por segundo quando executado em hardware de consumo de alto desempenho. No entanto, o mundo real atual blockchain redes estão praticamente limitadas a cerca de 30 transações por segundo. Esta limitação tem origem principalmente no facto de os actuais mecanismos de consenso síncrono exigirem amplas margens temporais de segurança em o tempo de processamento esperado, que é agravado pelaPOLKADOT: VISÃO PARA UMA ESTRUTURA MULTI-CADEIA HETEROGÊNEA ESBOÇO 1 2 desejo de apoiar implementações mais lentas. Isto é devido a a arquitetura de consenso subjacente: o mecanismo de transição do estado, ou os meios pelos quais as partes agrupam e executar transações, tem sua lógica fundamentalmente ligada no mecanismo de “canonização” de consenso, ou no meio pelo qual as partes acordam uma de uma série de histórias possíveis e válidas. Isso se aplica igualmente a sistemas proof-of-work (PoW), como Bitcoin [15] e Ethereum [5,23] e sistemas de prova de aposta (PoS), como NXT [8] e Bitshares [12]: em última análise, todos sofrem da mesma deficiência. É um simples estratégia que ajudou a tornar blockchains um sucesso. No entanto, acoplando firmemente esses dois mecanismos em uma única unidade do protocolo, também agrupamos vários diferentes atores e aplicações com diferentes perfis de risco, diferentes requisitos de escalabilidade e diferentes necessidades de privacidade. Um tamanho não serve para todos. Acontece com demasiada frequência que, num desejo de amplo apelo, uma rede adota um grau de conservadorismo que resulta em um menor denominador comum servindo de forma otimizada a poucos e, em última análise, levando a um fracasso na capacidade de inovar, executar e adaptar, às vezes dramaticamente. Alguns sistemas, como por ex. Factom [21] abandona completamente o mecanismo de transição de estado. No entanto, grande parte utilidade que desejamos requer a capacidade de transição de estado de acordo com uma máquina de estados compartilhada. Deixar cair resolve um problema alternativo; não oferece uma alternativa solução. Parece claro, portanto, que uma direção razoável explorar como um caminho para uma computação descentralizada e escalonável plataforma é dissociar a arquitetura de consenso da o mecanismo de transição de estado. E, talvez sem surpresa, esta é a estratégia que Polkadot adota como solução para escalabilidade. 2.1. Protocolo, Implementação e Rede. Gosto Bitcoin e Ethereum, Polkadot referem-se ao mesmo tempo a um protocolo de rede e ao (até então pressuposto) primário rede pública que executa este protocolo. Polkadot pretende ser um projeto gratuito e aberto, a especificação do protocolo está sob uma licença Creative Commons e o código sendo colocado sob uma licença FLOSS. O projeto é desenvolvido de forma aberta e aceita contribuições onde quer que sejam úteis. Um sistema de RFCs, não muito diferente as propostas de melhoria do Python, permitirão um meio de colaborar publicamente em mudanças e atualizações de protocolo. Nossa implementação inicial do protocolo Polkadot será conhecida como Plataforma Parity Polkadot e será inclui uma implementação completa do protocolo junto com API ligações. Como outras implementações de Paridade blockchain, O PPP foi projetado para ser uma pilha de tecnologia blockchain de uso geral, não exclusivamente para uma rede pública nem para operação privada/consorciada. O seu desenvolvimento assim até agora foi financiado por vários partidos, inclusive através de uma subvenção do governo britânico. Este artigo, no entanto, descreve Polkadot sob o contexto de uma rede pública. A funcionalidade que imaginamos em uma rede pública é um superconjunto daquela exigida em configurações alternativas (por exemplo, privadas e/ou consórcios). Além disso, neste contexto, o escopo completo de Polkadot pode ser mais claramente descritas e discutidas. Isso significa o leitor deve estar ciente de que certos mecanismos podem ser descritos (por exemplo, interoperação com outras redes públicas) que não são diretamente relevantes para Polkadot quando implantado em situações não públicas (“permitidas”). 2.2. Trabalho anterior. A dissociação do consenso subjacente da transição do Estado foi proposta informalmente em privado durante pelo menos dois anos - Max Kaye foi um defensor de tal estratégia durante os primeiros dias de Ethereum. Uma solução escalável mais complexa conhecida como Chain fibras, que remonta a junho de 2014 e publicado pela primeira vez mais tarde naquele ano1, defendeu uma única cadeia de retransmissão e múltiplas cadeias homogêneas, fornecendo um mecanismo transparente de execução intercadeias. A decoerência foi paga através da latência de transação – transações que exigem o coordenação de porções díspares do sistema demorar mais para processar. Polkadot tira grande parte de sua arquitetura disso e das conversas de acompanhamento com várias pessoas, embora seja muito diferente em grande parte do seu design e disposições. Embora não existam sistemas comparáveis a Polkadot atualmente em produção, vários sistemas de alguma relevância foram propostas, embora poucas em qualquer nível substancial de detalhe. Estas propostas podem serdividido em sistemas que eliminam ou reduzem a noção de um mundo globalmente coerente máquina estatal, aquelas que tentam fornecer uma solução global máquina singleton coerente por meio de fragmentos homogêneos e aqueles que visam apenas a heterogeneidade. 2.2.1. Sistemas sem Estado Global. Factom [21] é um sistema que demonstra canonicidade sem o acordo validade, permitindo efetivamente o registro dos dados. Devido à evitação do estado global e às dificuldades com o dimensionamento que isso traz, pode ser considerada uma solução escalonável. No entanto, como mencionado anteriormente, o conjunto de problemas que resolve é estrita e substancialmente menor. Tangle [18] é uma nova abordagem para sistemas de consenso. Em vez de organizar as transacções em blocos e formar consenso sobre uma lista estritamente ligada para fornecer uma ordenação globalmente canónica das mudanças de estado, abandona em grande parte a ideia de uma ordenação fortemente estruturada e, em vez disso, busca um gráfico acíclico direcionado de transações dependentes com itens posteriores ajudando a canonizar itens anteriores através de referências explícitas. Para mudanças de estado arbitrárias, este gráfico de dependência se tornaria rapidamente intratável, no entanto, para o modelo UTXO2 muito mais simples, isso se torna bastante razoável. Como o sistema é apenas vagamente coerente e as transações são geralmente independentes uma da outra outro, uma grande quantidade de paralelismo global torna-se bastante natural. Usar o modelo UTXO tem o efeito de limitar o Tangle a uma “moeda” puramente de transferência de valor sistema em vez de algo mais geral ou extensível. Além disso, sem a dura coerência global, a interacção com outros sistemas – que tendem a necessitar de uma conhecimento de grau sobre o estado do sistema - torna-se impraticável. 1https://github.com/ethereum/wiki/wiki/Chain-Fibers-Redux 2saída de transação não gasta, o modelo que Bitcoin usa, em que o estado é efetivamente o conjunto de endereços associados a algum valor; as transações agrupam esses endereços e os transformam em um novo conjunto de endereços cuja soma total é equivalente

POLKADOT: VISÃO PARA UMA ESTRUTURA MULTI-CADEIA HETEROGÊNEA ESBOÇO 1 3 2.2.2. Sistemas de Cadeias Heterogêneas. Cadeias laterais [3] é um adição proposta ao protocolo Bitcoin que permitiria interação sem confiança entre a cadeia Bitcoin principal e cadeias laterais adicionais. Não há previsão de qualquer grau de interação “rica” entre cadeias laterais: a interação seria limitada a permitir que as cadeias laterais fossem custodiantes dos bens uns dos outros, efetuando - no local jargão - uma indexação bidirecional 3. A visão final é para uma estrutura onde a moeda Bitcoin possa ser fornecida com funcionalidade adicional, se periférica, por meio de sua vinculação em algumas outras cadeias com transição de estado mais exótica sistemas do que o protocolo Bitcoin permite. Nesse sentido, as cadeias laterais abordam a extensibilidade em vez da escalabilidade. Na verdade, não há fundamentalmente nenhuma disposição sobre a validade das cadeias laterais; tokens de uma cadeia (por exemplo, Bitcoin) mantidos em nome de uma cadeia lateral são garantidos apenas pelo a capacidade da cadeia lateral de incentivar os mineradores a canonizar transições válidas. A segurança da rede Bitcoin não pode ser facilmente transferido para trabalhar em nome de outros blockchains. Além disso, um protocolo para garantir Bitcoin os mineradores fundem a mina (isto é, duplicam seu poder de canonização no da cadeia lateral) e, mais importante, validam que as transições da cadeia lateral estão fora do âmbito desta proposta. Cosmos [10] é um sistema multi-cadeia proposto no mesma linha das cadeias laterais, trocando o Nakamoto PoW método de consenso para o algoritmo Tendermint de Jae Kwon. Essencialmente, descreve múltiplas cadeias (operando em zonas) cada uma usando instâncias individuais do Tendermint, juntamente com um meio de comunicação livre de confiança através de um cadeia de cubo mestre. Esta comunicação entre cadeias é limitada à transferência de ativos digitais (“especificamente sobre tokens”) em vez de informações arbitrárias, no entanto, tal comunicação entre cadeias tem um caminho de retorno para dados, por exemplo para informar ao remetente o status da transferência. Conjuntos de validadores para as cadeias zoneadas e, em particular os meios de incentivá-los, são, como cadeias laterais, deixadas como um problema não resolvido. A suposição geral é que cada cadeia zoneada conterá ela própria um token de valor cuja inflação é usada para pagar por validators. Ainda nos estágios iniciais de design, atualmente a proposta carece de detalhes abrangentes sobre os meios económicos para alcançar a escalabilidade certeza sobre a validade global. Contudo, a fraca coerência necessária entre as zonas e o centro permitirá para flexibilidade adicional sobre os parâmetros do zoneamento cadeias em comparação com um sistema que impõe medidas mais fortes coerência. 2.2.3. Cásper. Ainda não há revisão abrangente ou comparação lado a lado entre Casper [6] e Polkadot foram feitas, embora se possa fazer uma análise bastante abrangente caracterização (e, portanto, imprecisa) dos dois. Casper é uma reimaginação de como um algoritmo de consenso PoS poderia ser baseado em participantes apostando em qual garfo acabaria por se tornar canônico. Consideração substancial foi dada para garantir que ele fosse robusto para a rede forks, mesmo quando prolongados, e possuem algum grau adicional de escalabilidade além do modelo Ethereum básico. Como tal, Casper até agora tendeu a ser um substancialmente mais protocolo complexo do que Polkadot e seus antepassados, e um desvio substancial do formato blockchain básico. Isso permanece sem saber como Casper irá iterar no futuro e como será se finalmente for implantado. Embora Casper e Polkadot representem novos protocolos interessantes e, em certo sentido, aumentos de Ethereum, existem diferenças substanciais entre seus objetivos finais e caminhos para implantação. Cásper é um Ethereum Projeto centrado na fundação originalmente concebido ser uma alteração PoS no protocolo sem desejo de crie um blockchain fundamentalmente escalável. Crucialmente, é projetado para ser um hard fork, em vez de algo mais expansivo e, portanto, todos os Ethereum clientes e usuários seriam necessário atualizar ou permanecer em uma bifurcação de adoção incerta. Como tal, a implementação torna-se substancialmente mais difícil, como é inerente a um projecto descentralizado onde coordenação é necessária. Polkadot difere de várias maneiras; em primeiro lugar, Polkadot foi projetado para ser totalmente extensível e escalável blockchain teste de desenvolvimento, implantação e interação cama. Ele foi construído para ser um arnês amplamente preparado para o futuro, capaz de assimilar novo blockchaintecnologia à medida que se torna disponível, sem coordenação descentralizada excessivamente complicada ou garfos rígidos. Já imaginamos vários casos de uso, como como cadeias de consórcio criptografadas e cadeias de alta frequência com tempos de bloqueio muito baixos que são irrealistas de fazer em qualquer versão futura de Ethereum atualmente prevista. Finalmente, o acoplamento entre ele e Ethereum é extremamente solto; nenhuma ação por parte de Ethereum é necessária para permitir o encaminhamento de transações sem confiança entre os dois redes. Resumindo, enquanto Casper/Ethereum 2.0 e Polkadot compartilham algumas semelhanças passageiras, acreditamos que seu objetivo final é substancialmente diferente e que, em vez de competir, os dois protocolos provavelmente coexistirão sob um relacionamento mutuamente benéfico para o futuro previsível.

Ö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.

Resumo

Polkadot é uma multicadeia heterogênea escalável. Isto significa que, diferentemente das implementações anteriores de blockchain que se concentraram em fornecer uma única cadeia de diversos graus de generalidade sobre aplicações potenciais, Polkadot em si foi projetado para não fornecer nenhuma funcionalidade inerente ao aplicativo. Em vez disso, Polkadot fornece a base “cadeia de retransmissão” sobre a qual um grande número de informações validáveis, estruturas de dados dinâmicas globalmente coerentes podem ser hospedadas lado a lado. Chamamos essas estruturas de dados de “paralelizadas” correntes ou parachains, embora não haja necessidade específica de eles sejam de natureza blockchain. Em outras palavras, Polkadot pode ser considerado equivalente a um conjunto de cadeias independentes (por exemplo, o conjunto contendo Ethereum, Ethereum Classic, Namecoin e Bitcoin), exceto por dois pontos muito importantes: • Segurança conjunta; • transacionalidade entre cadeias sem confiança. É por esses pontos que consideramos Polkadot “escalável”. Em princípio, um problema a ser implantado em Polkadot pode ser substancialmente paralelizado - ampliado - ao longo de um grande número de pára-quedas. Como todos os aspectos de cada parachain pode ser conduzido em paralelo por um segmento diferente da rede Polkadot, o sistema tem alguma capacidade para escalar. Polkadot fornece um pedaço bastante básico de 3em oposição a uma fixação unilateral que é essencialmente a ação de destruir tokens em uma cadeia para criar tokens em outra sem o mecanismo para fazer o inverso a fim de recuperar os tokens originaisPOLKADOT: VISÃO PARA UMA ESTRUTURA MULTI-CADEIA HETEROGÊNEA ESBOÇO 1 4 infraestrutura, deixando grande parte da complexidade para ser abordada no nível do middleware. Esta é uma decisão consciente que visa reduzir o risco de desenvolvimento, permitindo que a software necessário a ser desenvolvido em um curto espaço de tempo e com um bom nível de confiança sobre sua segurança e robustez. 3.1. A Filosofia de Polkadot. Polkadot deveria fornecer uma base absolutamente sólida sobre a qual construir a próxima onda de sistemas de consenso, através o espectro de risco de projetos maduros com capacidade de produção às ideias nascentes. Ao fornecer fortes garantias de segurança, isolamento e comunicação, Polkadot pode permitir parachains para selecionar entre uma variedade de propriedades. Na verdade, prevemos vários blockchains experimentais empurrando as propriedades do que poderia ser considerado sensato hoje. Vemos conservadores, cadeias de alto valor semelhantes a Bitcoin ou Z-cash [20] coexistindo com valores mais baixos “cadeias temáticas” (como marketing, tão divertido) e redes de teste com taxas zero ou quase zero. Vemos totalmente criptografado, cadeias de consórcios “obscuras” operando lado a lado – e até mesmo fornecendo serviços para cadeias altamente funcionais e abertas como aqueles como Ethereum. Vemos novos experimentos Cadeias baseadas em VM, como um wasm subjetivo com cobrança de tempo cadeia sendo usada como um meio de terceirizar problemas de computação difíceis de uma cadeia mais madura do tipo Ethereum ou uma cadeia mais restrita do tipo Bitcoin. Para gerenciar atualizações em cadeia, Polkadot irá inerentemente apoiar algum tipo de estrutura de governança, provavelmente baseada nos sistemas políticos estáveis existentes e com um aspecto bicameral semelhante ao Conselho do Livro Amarelo [24]. Como a autoridade final, os detentores subjacentes de token teriam o controle do “referendo”. Para refletir a opinião dos usuários necessidade de desenvolvimento, mas a necessidade de legitimidade dos desenvolvedores, esperamos que uma direção razoável seja formar as duas câmaras de um comitê “usuário” (composto por vinculados validators) e um comitê “técnico” composto dos principais desenvolvedores de clientes e participantes do ecossistema. O corpo de titulares de token manteria a legitimidade final e formaria uma maioria absoluta para aumentar, reparametrizar, substituir ou dissolver esta estrutura, algo que não duvide da eventual necessidade de: nas palavras de Twain “Governos e fraldas devem ser trocadas com frequência, e para pelo mesmo motivo”. Embora a reparametrização seja normalmente trivial de organizar dentro de um mecanismo de consenso mais amplo, mudanças mais qualitativas, como substituição e aumento, seriam necessárias. provavelmente precisarão ser “decretos suaves” não automatizados (por exemplo, através da canonização de um número de bloco e da hash de um documento especificando formalmente o novo protocolo) ou exigir que o mecanismo central de consenso contenha um linguagem suficientemente rica para descrever qualquer aspecto de si mesmo que pode precisar mudar. Este último é um objetivo eventual, no entanto, é mais provável que o primeiro seja escolhido para facilitar um cronograma de desenvolvimento razoável. Os princípios primários de Polkadot e as regras dentro das quais avaliamos todas as decisões de design são: Mínimo: Polkadot deve ter o mínimo de funcionalidade possível. Simples: nenhuma complexidade adicional deve estar presente no protocolo base do que pode razoavelmente ser transferido para middleware, colocado através de um parachain ou introduzido em uma otimização posterior. Geral: nenhum requisito desnecessário, restrição ou limitação deve ser colocada em pára-quedas; Polkadot deve ser uma plataforma de teste para o desenvolvimento de sistema de consenso que pode ser otimizado por meio de tornando o modelo no qual as extensões se enquadram o mais abstrato possível. Robusto: Polkadot deve fornecer fundamentalmente camada base estável. Além da solidez económica, isto também significa descentralizar para minimizar os vetores para ataques de alta recompensa.

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.

Participação em Polkadot

Existem quatro funções básicas na manutenção de um Polkadot rede: coletor, pescador, nomeador e validator. Em uma possível implementação de Polkadot, a última função na verdade, pode ser dividido em duas funções: validator básico e fiador de disponibilidade; isso é discutido na seção 6.5.3. Coletor Pescador Validadores (este grupo) Validadores (outros grupos) aprova torna-se monitores relatórios ruim comportamento para fornece bloco candidatos para Nomeador Figura 1. A interação entre o quatro funções de Polkadot. 4.1. Validadores. Um validator é a cobrança mais alta e ajuda a selar novos blocos na rede Polkadot. O papel do validator depende de um título suficientemente alto sendo depositado, embora permitamos que outras partes vinculadas nomear um ou mais validators para agir em seu nome e como tal parte do título do validator pode não ser necessariamente propriedade do próprio validator, mas sim destes nomeadores. Um validator deve executar uma implementação de cliente de cadeia de retransmissão com alta disponibilidade e largura de banda. Em cada bloco o nó deve estar pronto para aceitar o papel de ratificar um novo bloco em um parachain nomeado. Este processo envolve receber, validar e republicar candidatos blocos. A nomeação é determinística, mas virtualmente imprevisível com muita antecedência. Como o validator não pode razoavelmente esperado que mantenha um sistema totalmente sincronizado banco de dados de todos os parachains, espera-se que o validator nomeie a tarefa de elaborar uma nova sugestão bloco parachain para terceiros, conhecido como agrupador. Uma vez que todos os novos blocos de parachain tenham sido devidamente ratificados por seus subgrupos validator designados, validators deve então ratificar o próprio bloco da cadeia de relés. Isso envolve atualizando o estado das filas de transação (essencialmente mover dados da fila de saída de um parachain para outra fila de entrada do parachain), processando as transações de o conjunto de transações ratificadas em cadeia de retransmissão e ratificando o bloco final, incluindo as alterações finais do parachain.POLKADOT: VISÃO PARA UMA ESTRUTURA MULTI-CADEIA HETEROGÊNEA ESBOÇO 1 5 Um validator não cumprindo seu dever de encontrar consenso sob as regras do nosso algoritmo de consenso escolhido é punido. Para falhas iniciais e não intencionais, isso ocorre através retendo a recompensa de validator. Falhas repetidas resultam na redução do seu título de segurança (através da queima). Ações provavelmente maliciosas, como assinatura dupla ou conspirar para fornecer um bloqueio inválido resultará na perda de todo o vínculo (que está parcialmente queimado, mas principalmente dado ao informante e aos atores honestos). Em certo sentido, validators são semelhantes aos pools de mineração dos PoW atuais blockchains. 4.2. Nomeadores. Um nominador é uma parte interessada que contribui para a caução de um validator. Eles não têm qualquer função adicional, exceto a de colocar capital de risco e como tal para sinalizar que eles confiam em um determinado validator (ou conjunto deles) a agir com responsabilidade na manutenção do rede. Eles recebem um aumento ou redução proporcional em seu depósito de acordo com o crescimento do título ao qual eles contribuem. Juntamente com os agrupadores, em seguida, os nomeadores estão em alguns sentido semelhante aos mineradores das redes PoW atuais. 4.3. Coletores. Agrupadores de transações (abreviadamente agrupadores) são partes que auxiliam validators na produção de blocos de pára-quedas. Eles mantêm um “nó completo” para um parachain específico; o que significa que eles retêm todos os recursos necessários informações para poder criar novos blocos e executar transações da mesma maneira que os mineradores fazem nos PoW blockchains atuais. Em circunstâncias normais, eles irá agrupar e executar transações para criar um não selado bloquear e fornecê-lo, junto com um conhecimento zero prova, para um ou mais validators atualmente responsáveis por propondo um bloco parachain. A natureza precisa do relacionamento entre agrupadores, nomeadores e validators provavelmente mudará ao longo tempo. Inicialmente, esperamos que os agrupadores trabalhem em estreita colaboração com validators, já que haverá apenas alguns (talvez apenas um) parachain(s) com pouco volume de transações. O a implementação inicial do cliente incluirá RPCs para permitir um nó de agrupamento parachain para fornecer incondicionalmente um nó (relaychain) validator com um parachain comprovadamente válido bloco. Como o custo de manutenção de uma versão sincronizada do todos esses parachains aumentam, esperamos ver infra-estrutura existente que ajudará a separar o deveres para com partidos independentes e com motivação económica. Eventualmente, esperamos ver pools de agrupamentos que disputam coletar o máximo de taxas de transação. Esses agrupadores podem ser contratados para atender validators específicos durante um período de tempo por uma participação contínua nos rendimentos da recompensa. Alternativamente, os agrupadores “freelance” podem simplesmente criar um mercado que oferece blocos de parachain válidos em troca de uma parcela competitiva da recompensa pagável imediatamente. Da mesma forma, os grupos de nominadores descentralizados permitiriam múltiplos participantes vinculados para coordenar e compartilhar o dever de um validator. Esta capacidade de reunir garante uma participação aberta levando a um sistema mais descentralizado. 4.4. Pescadores. Ao contrário dos outros dois partidos activos, pescadores não estão diretamente relacionados com a autoria do bloco processo. Em vez disso, eles são “caçadores de recompensas” independentes motivado por uma grande recompensa única. Precisamente devido a existência de pescadores, esperamos que eventos de mau comportamento aconteçam raramente, e quando acontecem apenas devido a a parte vinculada sendo descuidada com a segurança da chave secreta, e não através de intenção maliciosa. O nome vem desde a frequência esperada da recompensa, os requisitos mínimos para participar e o eventual tamanho da recompensa. Os pescadores obtêm a sua recompensa através de uma prova atempada de que pelo menos uma parte vinculada agiu ilegalmente. Ações ilegais incluem assinar dois blocos cada um com o mesmo pai ratificado ou, no caso de parachains, ajudar a ratificar um inválido bloco. Para evitar recompensas excessivas ou o compromisso e uso ilícito da chave secreta de uma sessão, a recompensa básica para fornecer uma única mensagem assinada ilegalmente por validator é mínimo. Esta recompensa aumenta assintoticamente à medida que mais corroborar assinaturas ilegais de outros validators são desde que implique um ataque genuíno. A assíntota está definida em 66% seguindo nossa afirmação básica de segurança de que pelo menos dois terços dos validators agem com benevolência. Os pescadores são um pouco semelhantes aos “nós completos” em sistemas blockchain atuais que os recursos necessários são relativamente pequenos e o compromisso de tempo de atividade estável e largura de banda não é necessária. Os pescadores diferem tanto tanto quanto eles devem pagar uma pequena fiança.Esse vínculo impede ataques Sybil desperdiçam tempo e computação de validators recursos. É imediatamente retirável, provavelmente não mais do que o equivalente a alguns dólares e pode levar para colher uma grande recompensa por detectar um mau comportamento 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ğ.

Visão geral do projeto

Esta seção tem como objetivo fornecer uma breve visão geral do sistema como um todo. Uma exploração mais aprofundada do sistema é fornecido na seção seguinte. 5.1. Consenso. Na cadeia de retransmissão, Polkadot atinge consenso de baixo nível sobre um conjunto de regras válidas mutuamente acordadas blocos por meio de um algoritmo moderno assíncrono bizantino tolerante a falhas (BFT). O algoritmo será inspirado pelo simples Tendermint [11] e pelo substancialmente mais envolvido HoneyBadgerBFT [14]. Este último fornece uma consenso eficiente e tolerante a falhas sobre um acordo arbitrariamente infraestrutura de rede defeituosa, dado um conjunto de autoridades em sua maioria benignas ou validators. Para uma rede estilo prova de autoridade (PoA), só isso seria suficiente, no entanto, Polkadot é imaginado como sendo também implantável como uma rede em um ambiente totalmente aberto e público situação sem qualquer organização específica ou confiável autoridade necessária para mantê-lo. Como tal precisamos de um meio de determinar um conjunto de validators e incentivar para serem honestos. Para isso utilizamos seleção baseada em PoS critérios. 5.2. Provando a aposta. Supomos que a rede terá alguns meios de medir quanto “aposta” qualquer conta específica possui. Para facilitar a comparação com sistemas pré-existentes, chamaremos a unidade de medida “tokens”. Infelizmente, o termo não é o ideal para uma uma série de razões, inclusive por ser simplesmente um escalar valor associado a uma conta, não há noção de individualidade. Imaginamos que validators sejam eleitos, raramente (no máximo uma vez por dia, mas talvez tão raramente quanto uma vez por trimestre), através de um esquema de Prova de Participação Nomeada (NPoS). O incentivo pode acontecer através de uma alocação proporcional dePOLKADOT: VISÃO PARA UMA ESTRUTURA MULTI-CADEIA HETEROGÊNEA ESBOÇO 1 6 Relé corrente Enxame de validadores (cada um colorido por seu pára-quedas designado) Transação (enviado por ator externo) Parachain ponte Parachain virtual (por exemplo, Ethereum) Parachain Parachain filas e E/S Transações propagadas Bloquear envio de candidato 2ª ordem Cadeia de relés Comunidade Parachain Conta Transação de entrada Transação de saída Transações intercadeias (gerenciado por validators) Coletor Bloco propagado Pescador Figura 2. Um esquema resumido do sistema Polkadot. Isso mostra agrupadores coletando e propagando transações de usuários, bem como propagando candidatos a blocos para pescadores e validators. Também mostra como uma conta pode lançar uma transação que é realizada em seu parachain, através da cadeia de retransmissão e em outro parachain onde pode ser interpretado como uma transação para uma conta lá. fundos provenientes de uma expansão de base token (até 100% por ano, embora mais provavelmente em torno de 10%), juntamente com quaisquer taxas de transação cobradas. Embora a expansão da base monetária normalmente leve à inflação, uma vez que todos os proprietários de token teria uma oportunidade justa de participação, nenhum titular de token precisaria sofrer uma redução no valor de seus participações ao longo do tempo, desde que estivessem felizes em assumir um papel no mecanismo de consenso. Uma proporção específica de tokens seriam direcionados para o processo staking; o a expansão efetiva da base token seria ajustada através um mecanismo baseado no mercado para atingir esta meta. Os validadores estão fortemente vinculados às suas apostas; saindo Os títulos dos validators permanecem em vigor por muito tempo após o término das obrigações dos validators (talvez cerca de 3 meses). Tanto tempo período de liquidação de títulos permite que mau comportamento futuro seja punido até a verificação periódica da cadeia. O mau comportamento resulta em punição, como redução de recompensa ou, nos casos que comprometam intencionalmente a integridade da rede, o validator perdendo parte ou todos os seus interesse para outros validators, informantes ou partes interessadas como um todo (através da queima). Por exemplo, um validator que tenta ratificar ambos os ramos de uma bifurcação (às vezes conhecido como ataque de “curto alcance”) pode ser identificado e punido desta última forma. Ataques de longo alcance “nada em jogo”4 são contornados através de um simples bloqueio de “ponto de verificação” que impede uma reorganização perigosa da cadeia de mais de um profundidade de cadeia específica. Para garantir clientes recém-sincronizados não podem ser enganados na corrente errada, regular ocorrerão “hard forks” (no máximo no mesmo período do validators’ liquidação de títulos) que codifica o bloco de ponto de verificação recente hashes nos clientes. Isto funciona bem com uma medida adicional de redução da pegada de “comprimento finito da cadeia” ou reinicialização periódica do bloco genesis. 5.3. Parachains e coladores. Cada pára-quedas recebe recursos de segurança semelhantes à cadeia de relés: o os cabeçalhos dos parachains são selados dentro do bloco da cadeia de relés garantir que nenhuma reorganização ou “gasto duplo” seja possível após a confirmação. Esta é uma garantia de segurança semelhante à oferecida pelas cadeias laterais e fusão de Bitcoin. Polkadot, no entanto, também fornece fortes garantias de que as transições de estado dos parachains são válidas. Isto acontece através do conjunto de validators sendo segmentado criptograficamente aleatoriamente em subconjuntos; um subconjunto por parachain, os subconjuntos potencialmente diferentes por bloco. Isto a configuração geralmente implica que os tempos de bloqueio dos parachains serão ser pelo menos tão longo quanto o da cadeia de relés. O específico meio de determinar o particionamento está fora do escopo 4É neste tipo de ataque que o adversário forja uma cadeia histórica inteiramente nova, a partir do bloco génese. Através do controle de um parcela relativamente insignificante da aposta na compensação, eles são capazes de aumentar gradativamente sua parcela da aposta em relação a todos os outros partes interessadas, pois são os únicos participantes activos na sua história alternativa. Como não existe nenhuma limitação física intrínseca na criação de blocos (ao contrário do PoW, onde a energia computacional bastante real deve ser gasta), eles são capazes de criar uma cadeia mais longa do que a cadeia real em um intervalo de tempo relativamente curto e potencialmente torná-lo o mais longo e melhor, assumindo o estado canônico da rede.POLKADOT: VISÃO PARA UMA ESTRUTURA MULTI-CADEIA HETEROGÊNEA ESBOÇO 1 7 deste documento, mas provavelmente seria baseado em torno uma estrutura de confirmação-revelação semelhante ao RanDAO [19] ou use dados combinados de blocos anteriores de cada parachain sob um hash criptograficamente seguro. Esses subconjuntos de validators são necessários para fornecer um candidato de bloco parachain que é garantido como válido (em dor de confisco de títulos). A validade gira em torno de dois pontos importantes; primeiro, que é intrinsecamente válido – que todas as transições de estado foram executadas fielmente e que todas os dados externos referenciados (ou seja, transações) são válidos para inclusão. Em segundo lugar, que quaisquer dados extrínsecos à sua candidato, como aquelas transações externas, tem disponibilidade suficientemente alta para que os participantes possam baixe-o e execute o bloco manualmente.5 Os validadores podem fornecer apenas um bloco “nulo” que não contém dados de “transações” externas, mas podem correr o risco de obter uma recompensa reduzida se o fizerem. Eles trabalham ao lado um protocolo de fofoca parachain com agrupadores - indivíduos que agrupam transações em blocos e fornecem uma prova não interativa e de conhecimento zero de que o bloco constitui um filho válido de seu pai (e aceitando qualquer transação taxas por seus problemas). Resta aos protocolos parachain especificar seus próprios meios de prevenção de spam: não existe uma noção fundamental de “medição de recursos computacionais” ou “taxa de transação” imposta pela cadeia de retransmissão. Também não há aplicação direta disso pelo protocolo de cadeia de retransmissão (embora é improvável que as partes interessadas optem por adotar um parachain que não fornecia um mecanismo decente). Este é um aceno explícito à possibilidade de cadeias diferentes Ethereum, por ex. uma cadeia semelhante a Bitcoin que tem um modelo de taxas muito mais simples ou algum outro modelo de prevenção de spam ainda a ser proposto. A própria cadeia de relés de Polkadot provavelmente existirá como um Contas e cadeia de estados semelhantes a Ethereum, possivelmente um derivado de EVM. Como os nós da cadeia de relés serão obrigados a fazer outros processamentos substanciais, taxa de transferência de transações será minimizado em parte através de grandes taxas de transação e, caso nossos modelos de pesquisa exijam, um limite de tamanho de bloco. 5.4. Comunicação Intercadeia. O ingrediente final crítico de Polkadot é a comunicação entre cadeias. Desde parachains podem ter algum tipo de canal de informação entre eles, nos permitimos considerar Polkadot um multi-cadeia escalável. No caso de Polkadot, a comunicação é tão simples quanto possível: transações executadas em um parachain são (de acordo com a lógica dessa cadeia) capazes de efetuar o envio de uma transação para um segundo parachain ou, potencialmente, a cadeia de retransmissão. Como transações externas na produção blockchains, eles são totalmente assíncronos e não há capacidade intrínseca para eles retornarem qualquer tipo de informação de volta à sua origem. Destino: recebe dados de anteriores validators do bloco. A conta recebe postagem: entrada removida de entrada Merkle tree A conta envia postagem: entrada colocada em saída Merkle tree para destino pára-quedas saída Fonte: ações dados com o próximo bloco validators comprovante postal armazenado em saída de pára-quedas Merkle árvore referência roteada colocada no parachain de destino entrada Merkle tree ingresso Figura 3. Um esquema básico mostrando as principais partes do roteamento para postagem transações (“postagens”). Para garantir complexidade mínima de implementação, risco e mínimo camisa de força de futuro arquiteturas parachain, essas transações interchain são efetivamente indistinguível de transações padrão assinadas externamente. A transação possui um segmento de origem, proporcionando a capacidade de identificar um parachain, e um endereço que pode ser de tamanho arbitrário. Ao contrário dos sistemas atuais comuns, como Bitcoin e Ethereum, as transações interchain não vêm com qualquer tipo de “pagamento” de taxa associada; qualquer pagamento desse tipo deve ser gerenciado por meio de lógica de negociação nos parachains de origem e destino. Um sistema como o proposto para O lançamento do Serenity de Ethereum [7] seria um meio simples de gerenciar esse pagamento de recursos entre cadeias, embora presumimos que outros poderão vir à tona no devido tempo. As transações entre cadeias são resolvidas usando um simples mecanismo de enfileiramento baseado em Merkle tree para garantir fidelidade. É tarefa dos mantenedores da cadeia de retransmissão mover transações na fila de saída de um parachain na fila de entrada do parachain de destino. O as transações passadas são referenciadas na cadeia de retransmissão, mas não são relevantesas próprias transações em cadeia. Para evitar que um parachain envie spam para outro parachain com transações, para que uma transação seja enviada, é necessário que a fila de entrada do destino não seja muito grande em a hora do final do bloco anterior. Se a entrada a fila for muito grande após o processamento do bloco, então ela será considerada “saturada” e nenhuma transação poderá ser roteada para dentro dos blocos subsequentes até ser reduzido abaixo do limite. Essas filas são administradas na cadeia de retransmissão permitindo que parachains determinem a saturação um do outro estado; desta forma, uma tentativa fracassada de postar uma transação para um destino paralisado pode ser relatado de forma síncrona. (Embora não exista nenhum caminho de retorno, se uma transação secundária falhar por esse motivo, ela não poderá ser relatada de volta para o chamador original e alguns outros meios de recuperação teria que acontecer.) 5.5. Polkadot e Ethereum. Devido à integridade de Turing de Ethereum, esperamos que haja ampla oportunidade para Polkadot e Ethereum serem interoperáveis com entre si, pelo menos dentro de alguns limites de segurança facilmente dedutíveis. Em suma, prevemos que as transações de Polkadot pode ser assinado por validators e depois inserido 5Tal tarefa pode ser compartilhada entre validators ou pode se tornar a tarefa designada de um conjunto de validators fortemente ligados, conhecido como fiadores de disponibilidade.

POLKADOT: VISÃO PARA UMA ESTRUTURA MULTI-CADEIA HETEROGÊNEA ESBOÇO 1 8 Ethereum onde podem ser interpretados e promulgados por um contrato de encaminhamento de transação. Na outra direção, prevemos o uso de logs (eventos) especialmente formatados provenientes de um “contrato break-out” para permitir uma verificação rápida de que uma determinada mensagem deve ser encaminhada. 5.5.1. Polkadot a Ethereum. Através da escolha de um BFT mecanismo de consenso com validators formado a partir de um conjunto de partes interessadas determinado através de uma votação de aprovação mecanismo, somos capazes de obter um consenso seguro com uma mudando com pouca frequência e número modesto de validators. Em um sistema com um total de 144 validators, um tempo de bloqueio de 4 segundos e uma finalidade de 900 blocos (permitindo ataques maliciosos). comportamento como votos duplos a serem relatados, punidos e reparado), a validade de um bloqueio pode ser razoavelmente considerado comprovado através de apenas 97 assinaturas (dois terços de 144 mais uma) e um período de verificação subsequente de 60 minutos onde nenhuma contestação é depositada. Ethereum é capaz de hospedar um “contrato de invasão” que pode manter os 144 signatários e ser controlado por eles. Como a recuperação da assinatura digital da curva elíptica (ECDSA) leva apenas 3.000 gás sob o EVM, e desde provavelmente só quereríamos que a validação acontecesse em um supermaioria de validators (em vez de unanimidade total), o custo base de Ethereum confirmando que uma instrução foi devidamente validado como proveniente da rede Polkadot não seria superior a 300.000 gás - apenas 6% do o limite total de gás do bloco em 5,5M. Aumentar o número de validators (conforme seria necessário para lidar com dezenas de redes) inevitavelmente aumenta esse custo, no entanto espera-se que a largura de banda de transação de Ethereum cresça ao longo do tempo à medida que a tecnologia amadurece e a infraestrutura melhora. Juntamente com o facto de não todos os validators precisam estar envolvidos (por exemplo, apenas os mais altos validators apostados podem ser chamados para tal tarefa) o os limites deste mecanismo se estendem razoavelmente bem. Supondo uma rotação diária de tais validators (que é bastante conservador (semanalmente ou mesmo mensalmente pode ser aceitável), então o custo para a rede de manutenção esta ponte de encaminhamento Ethereum seria em torno de 540.000 gás por dia ou, aos preços atuais do gás, US$ 45 por ano. Uma transação básica encaminhada sozinha pela ponte custaria cerca de US$ 0,11; o cálculo adicional do contrato custaria mais, é claro. Ao armazenar em buffer e agrupar transações juntos, os custos de autorização de arrombamento podem ser facilmente compartilhada, reduzindo substancialmente o custo por transação; se 20 transações foram necessárias antes do encaminhamento, então o custo do encaminhamento de uma transação básica cairia para cerca de US$ 0,01. Uma alternativa interessante e mais barata a este modelo de contrato com múltiplas assinaturas seria a utilização de assinaturas limiares, a fim de alcançar a semântica de propriedade multilateral. Embora os esquemas de assinatura de limite para ECDSA são computacionalmente caros, aqueles para outros esquemas como as assinaturas de Schnorr são muito razoáveis. Ethereum planeja introduzir primitivos que tornariam tal esquemas baratos para usar no próximo hardfork Metropolis. Se tal meio pudesse ser utilizado, os custos do gás para encaminhar uma transação Polkadot para o Ethereum rede seria drasticamente reduzida a quase zero despesas gerais além dos custos básicos para validação do assinatura e execução da transação subjacente. Neste modelo, os nós validator de Polkadot teriam fazer pouco além de assinar mensagens. Para que as transações sejam realmente roteadas para a rede Ethereum, nós suponha que os próprios validators também residiriam em a rede Ethereum ou, mais provavelmente, que pequenas recompensas ser oferecido ao primeiro ator que encaminha a mensagem para a rede (a recompensa poderia ser paga trivialmente ao originador da transação). 5.5.2. Ethereum a Polkadot. Fazer com que as transações sejam encaminhado de Ethereum para Polkadot usa a noção simples de logs. Quando um contrato Ethereum deseja despachar uma transação para um parachain específico de Polkadot, basta simplesmente celebrar um “contrato de rescisão” especial. O contrato de ruptura exigiria qualquer pagamento que pudesse ser exigido e emitir uma instrução de registro para que sua existência possa ser comprovada através de uma prova Merkle e uma afirmação de que o cabeçalho do bloco correspondente é válido e canônico. Das duas últimas condições, a validade é talvez a mais simples de provar. Em princípio, o único requisito épara cada nó Polkadot que precisa da prova (ou seja, nós validator designados) para executar uma instância totalmente sincronizada de um nó Ethereum padrão. Infelizmente, esta é em si uma dependência bastante pesada. Um mais método leve seria usar uma prova simples de que o cabeçalho foi avaliado corretamente fornecendo apenas o parte da tentativa de estado de Ethereum necessária para executar corretamente as transações do bloco e verificar se os logs (contidos no recibo do bloco) são válidos. Tal “tipo SPV”6 as provas podem ainda exigir uma quantidade substancial de informações; convenientemente, eles normalmente não seriam necessários em todos: um sistema de títulos dentro de Polkadot permitiria títulos terceiros enviem cabeçalhos sob o risco de perder seus título caso algum terceiro (como um “pescador”, ver 6.2.3) forneça uma prova de que o cabeçalho é inválido (especificamente que a raiz estatal ou as raízes receptoras eram impostoras). Em uma rede PoW não finalizada como Ethereum, o a canonicidade é impossível de ser provada de forma conclusiva. Para resolver isso, os aplicativos que tentam contar com qualquer tipo de causa-efeito dependente da cadeia, espere por uma série de “confirmações” ou até que a transação dependente esteja em algum momento. profundidade específica dentro da cadeia. Em Ethereum, este a profundidade varia de 1 bloco para as transações menos valiosas sem problemas de rede conhecidos até 1.200 blocos como era o caso durante o lançamento inicial do Frontier para trocas. Na rede estável “Homestead”, este número fica em 120 blocos para a maioria das exchanges, e provavelmente levaríamos um parâmetro semelhante. Então nós pode imagine nosso Lado Polkadot Ethereuminterface tenha algumas funções simples: poder aceitar um novo cabeçalho da rede Ethereum e validar o PoW, para poder aceitar alguma prova de que um log específico foi emitido pelo contrato de breakout do lado Ethereum para um cabeçalho de profundidade suficiente (e encaminhamento a mensagem correspondente dentro de Polkadot) e finalmente ser capaz de aceitar provas de que um documento anteriormente aceito, mas o cabeçalho ainda não promulgado contém uma raiz de recibo inválida. Para realmente obter os próprios dados do cabeçalho Ethereum (e quaisquer provas de SPV ou refutações de validade/canonicidade) em a rede Polkadot, um incentivo ao encaminhamento 6SPV refere-se à Verificação Simplificada de Pagamento em Bitcoin e descreve um método para os clientes verificarem transações, mantendo apenas uma cópia de todos os cabeçalhos de blocos da cadeia PoW mais longa.POLKADOT: VISÃO PARA UMA ESTRUTURA MULTI-CADEIA HETEROGÊNEA ESBOÇO 1 9 são necessários dados. Isso pode ser tão simples quanto um pagamento (financiado por taxas cobradas do lado Ethereum) pago para qualquer pessoa capaz de encaminhar um bloco útil cujo cabeçalho seja válido. Os validadores seriam chamados a reter informações relativas aos últimos milhares de blocos, a fim de ser capaz de gerenciar forks, seja através de algum meio protocolar intrínseco ou através de um contrato mantido no cadeia de relé. 5.6. Polkadot e Bitcoin. Bitcoin interoperação apresenta um desafio interessante para Polkadot: um chamado “ligação bidirecional” seria uma peça útil de infraestrutura ter do lado de ambas as redes. No entanto, devido as limitações de Bitcoin, fornecer tal pino com segurança é um empreendimento nada trivial. Entregando uma transação de Bitcoin a Polkadot pode, em princípio, ser feito com um processo semelhante ao de Ethereum; um “endereço de ruptura” controlado de alguma forma pelos Polkadot validators poderia receber tokens transferidos (e dados enviados junto com eles). As provas de SPV podem ser fornecidas por oracles incentivados e, juntamente com um período de confirmação, uma recompensa dada por identificação de blocos não canônicos que implicam a transação foi “gasto em dobro”. Quaisquer tokens de propriedade do O “endereço de fuga” seria então, em princípio, controlado por esses mesmos validators para dispersão posterior. O problema, entretanto, é como os depósitos podem ser controlados com segurança a partir de um conjunto rotativo validator. Ao contrário Ethereum que é capaz de tomar decisões arbitrárias com base mediante combinações de assinaturas, Bitcoin é substancialmente mais limitado, com a maioria dos clientes aceitando apenas transações com múltiplas assinaturas com no máximo 3 partes. Estender este número para 36, ​​ou mesmo para milhares, como seria desejável, é impossível no âmbito do protocolo actual. Uma opção é alterar o protocolo Bitcoin para ativar tal funcionalidade, porém os chamados “hard forks” no Bitcoin mundo são difíceis de organizar a julgar pelas tentativas recentes. Uma possibilidade é o uso de assinaturas de limite, esquemas criptográficos para permitir um público unicamente identificável chave para ser efetivamente controlada por múltiplas “partes” secretas, alguns ou todos eles devem ser utilizados para criar uma assinatura válida. Infelizmente, assinaturas de limite compatíveis com ECDSA de Bitcoin são computacionalmente caros para criar e de complexidade polinomial. Outros esquemas como as assinaturas Schnorr oferecem custos muito mais baixos, no entanto, o cronograma em que eles podem ser introduzidos no Bitcoin protocolo é incerto. Dado que a segurança final dos depósitos cabe uma série de validators ligados, uma outra opção é reduzir os porta-chaves com múltiplas assinaturas a apenas um número fortemente subconjunto vinculado do total de validators tal que limite assinaturas tornam-se viáveis ​​(ou, na pior das hipóteses, o nativo de Bitcoin multi-assinatura é possível). Isto naturalmente reduz o valor total de títulos que poderiam ser deduzidos em indenizações caso os validators se comportassem ilegalmente, no entanto, este é uma degradação graciosa, simplesmente estabelecendo um limite superior de a quantidade de fundos que pode circular com segurança entre o duas redes (ou mesmo, na% de perdas caso um ataque dos validators bem-sucedidos). Como tal, acreditamos que não é irrealista colocar um “parachain virtual” de interoperabilidade Bitcoin razoavelmente seguro entre as duas redes, embora ainda assim seja um esforço substancial com um cronograma incerto e muito possivelmente exigindo a cooperação das partes interessadas dentro desse rede.

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.

Protocolo em detalhes

O protocolo pode ser dividido em três partes: o mecanismo de consenso, a interface parachain e roteamento de transações entre cadeias. 6.1. Cadeia de relés Operação. O cadeia de relés vontade provavelmente será uma cadeia muito semelhante a Ethereum no sentido de que é baseado no estado com o endereço de mapeamento do estado para a conta informações, principalmente saldos e (para evitar replays) um contador de transações. Colocar contas aqui cumpre um propósito: fornecer contabilidade para a qual a identidade possui qual a quantidade de participação no sistema.7 No entanto, haverá diferenças notáveis: • Os contratos não podem ser implementados através de transações; seguindo o desejo de evitar a funcionalidade da aplicação na cadeia de relés, não será apoiar a implantação pública de contratos. • O uso de recursos computacionais (“gás”) não é contabilizado; já que as únicas funções disponíveis para uso público será corrigido, a lógica por trás da contabilidade do gás não se sustenta mais. Como tal, será aplicada uma taxa fixa em todos os casos, permitindo mais desempenho de qualquer execução dinâmica de código que pode precisar ser feita e um formato de transação mais simples. • Funcionalidade especial é suportada para contratos listados que permite execução automática e saída de mensagens de rede. Caso a cadeia de retransmissão tenha uma VM e seja baseado em EVM, teria uma série de modificações para garantir a máxima simplicidade. Provavelmente seria têm uma série de contratos integrados (semelhantes aos de endereços 1-4 em Ethereum) para permitir especificações específicas da plataforma deveres a serem gerenciados, incluindo um contrato de consenso, um validator contrato e um contrato parachain. Se não for o EVM, então um backend WebAssembly [2] (wasm) é a alternativa mais provável; neste caso o total estrutura seria semelhante, mas não haveria necessidade para os contratos integrados com Wasm sendo um alvo viável para linguagens de uso geral, em vez de imaturas e idiomas limitados para EVM. Outros desvios prováveis do atual protocolo Ethereum são bem possíveis, por exemplo, uma simplificação do formato de recebimento de transação que permite a execução paralela de transações não conflitantes dentro do mesmo bloco, conforme proposto para a série de mudanças Serenity. É possível, embora improvável, que uma situação semelhante à Serenidade cadeia “pura” seja implantada como cadeia de retransmissão, permitindo uma contrato específico para gerenciar coisas como staking token equilíbrio, em vez de fazer disso uma parte fundamental do o protocolo da cadeia. Actualmente, sentimos que é improvável que isso aconteça. oferecerá uma simplificação de protocolo suficientemente grande para ser vale a pena a complexidade adicional e a incerteza envolvidas em desenvolvê-lo. 7Como forma de representar o montante que um determinado titular é responsável pela segurança geral do sistema, estas contas de participação serão inevitavelmente codificam algum valor econômico. No entanto, deve ser entendido que, uma vez que não há intenção de que tais valores sejam utilizados em de qualquer forma, com a finalidade de troca por bens e serviços do mundo real, deve-se notar, portanto, que os tokens não devem ser comparados a moeda e, como tal, a cadeia de retransmissão mantém a sua filosofia niilista em relação às aplicações.POLKADOT: VISÃO PARA UMA ESTRUTURA MULTI-CADEIA HETEROGÊNEA ESBOÇO 1 10 Há uma série de pequenas funcionalidades necessárias para administrar o mecanismo de consenso, conjunto validator, mecanismo de validação e parachains. Estes poderiam ser implementados em conjunto sob um protocolo monolítico. No entanto, por razões de modularidade, descrevemos estes como “contratos” da cadeia de retransmissão. Isso deveria ser entendido como significando que eles são objetos (no sentido de programação orientada a objetos) gerenciada pelo mecanismo de consenso da cadeia de retransmissão, mas não necessariamente isso eles são definidos como programas em opcodes do tipo EVM, nem mesmo que sejam individualmente endereçáveis através do sistema de contas. 6.2. Contrato de piquetagem. Este contrato mantém o conjunto validator. Ele gerencia: • quais contas são atualmente validators; • que estão disponíveis para se tornarem validators em breve aviso prévio; • quais contas colocaram indicação de aposta para um validator; • propriedades de cada um, incluindo volume staking, taxas de pagamento e endereços aceitáveis ​​e identidades de curto prazo (sessão). Ele permite que uma conta registre o desejo de se tornar um validator vinculados (junto com seus requisitos), para nomear alguma identidade, e para validators vinculados pré-existentes registrar seu desejo de sair desse status. Também inclui o próprio mecanismo de validação e canonização. 6.2.1. Participação-token Liquidez. Geralmente é desejável ter o máximo possível do total de staking tokens para ser apostado nas operações de manutenção da rede desde isso vincula diretamente a segurança da rede à “capitalização de mercado” geral de staking token. Isto pode facilmente ser incentivado através da inflação da moeda e da distribuição dos rendimentos para aqueles que participam como validators. No entanto, fazer isso apresenta um problema: se o token está bloqueado no Contrato de Stake sob pena de redução, como pode uma parte substancial permanecer suficientemente líquido para permitir a descoberta de preços? Uma resposta para isso é permitir um contrato de derivativo direto, garantindo tokens fungíveis em um token apostado subjacente. Isso é difícil de organizar de maneira livre de confiança. Além disso, estes derivados tokens não podem ser tratados de forma igual pela mesma razão que diferentes obrigações governamentais da zona euro não são fungíveis: há é uma chance de o ativo subjacente falhar e se tornar inútil. Com os governos da zona euro, poderia haver uma padrão. Com validator com tokens apostados, o validator pode agir maliciosamente e ser punido. Mantendo nossos princípios, optamos pela solução mais simples: nem todos os tokens podem ser apostados. Isso significaria que alguma proporção (talvez 20%) de tokens permanecerá forçosamente líquida. Embora isto seja imperfeito do ponto de vista da segurança, é pouco provável que faça uma diferença fundamental na a segurança da rede; 80% das reparações possíveis decorrentes do confisco de títulos ainda poderiam ser feitas em comparação com o “caso perfeito” de 100% staking. A proporção entre tokens apostados e líquidos pode ser alcançada de forma bastante simples por meio de um mecanismo de leilão reverso. Essencialmente, titulares de token interessados em ser validator cada um postaria uma oferta para o contrato staking declarando a taxa de pagamento mínima que eles exigiriam para assumir parte. No início de cada sessão (as sessões seriam acontecem regularmente, talvez até uma vez por hora) o validator as vagas seriam preenchidas de acordo com cada pretenso Aposta e taxa de pagamento de validator. Um algoritmo possível pois isso seria aceitar aqueles com as ofertas mais baixas que representam uma aposta não superior à aposta total visada dividido pelo número de slots e não inferior a um limite inferior de metade desse valor. Se as vagas não puderem ser preenchidas, o limite inferior pode ser repetidamente reduzido por algum fator para ser satisfeito. 6.2.2. Nomeando. É possível nomear sem confiança uns staking tokens para um validator ativo, dando-lhes a responsabilidade dos deveres de validator. Nomeando trabalhos através de um sistema de votação de aprovação. Cada candidato a nomeador pode postar uma instrução no contrato staking expressando uma ou mais identidades validator sob cujas responsabilidade que estão preparados para confiar seu vínculo. A cada sessão, os títulos dos nominadores são dispersos para serem representado por um ou mais validators. O algoritmo de dispersão otimiza para um conjunto de validators de total equivalente títulos. Os títulos dos nominadores passam a ser de responsabilidade efetiva do validator ae ganhar interesse ou sofrer um redução da punição em conformidade. 6.2.3. Confisco/queima de títulos. Certo comportamento de validator resulta em uma redução punitiva de seu vínculo. Se o título for reduzido abaixo do mínimo permitido, o sessão é encerrada prematuramente e outra iniciada. Uma lista não exaustiva de mau comportamento validator punível inclui: • Fazer parte de um grupo de pára-quedas incapaz de fornecer consenso sobre a validade de um bloco parachain; • assinar ativamente a validade de um documento inválido bloco de pára-quedas; • incapacidade de fornecer cargas úteis de saída anteriormente votado como disponível; • inatividade durante o processo de consenso; • validação de blocos de cadeia de retransmissão em bifurcações concorrentes. Alguns casos de mau comportamento ameaçam a integridade da rede (como a assinatura de blocos de parachain inválidos e a validação de vários lados de uma bifurcação) e, como tal, resultam num exílio efetivo através da redução total do vínculo. Em outros casos menos graves (por exemplo, inatividade no consenso processo) ou casos em que a culpa não pode ser atribuída com precisão (fazer parte de um grupo ineficaz), uma pequena parte do título pode, em vez disso, ser multado. Neste último caso, este funciona bem com a rotatividade de subgrupos para garantir que os nodos sofrem substancialmente mais perdas do que os nodos benevolentes danificados colateralmente. Em alguns casos (por exemplo, validação multi-fork e inválida assinatura de sub-bloco) validators não conseguem detectar facilmente o mau comportamento uns dos outros, pois a verificação constante de cada bloco de parachain seria uma tarefa muito árdua. Aqui é necessário angariar o apoio de partes externas ao o processo de validação para verificar e relatar tal mau comportamento. As partes recebem uma recompensa por denunciar tal atividade; seu termo, “pescadores”, deriva da improbabilidade de tal recompensa. Dado que estes casos são tipicamente muito graves, prevemos que quaisquer recompensas possam ser facilmente pagas a partir do título confiscado. Em geral preferimos equilibrar a queima (ou seja, redução a nada) com realocação, em vez de tentativa de realocação por atacado. Isto tem o efeito de

POLKADOT: VISÃO PARA UMA ESTRUTURA MULTI-CADEIA HETEROGÊNEA ESBOÇO 1 11 aumentando o valor global do token, compensando o até certo ponto, a rede em geral, e não a rede específica. parte envolvida na descoberta. Isto é principalmente como uma segurança mecanismo: as grandes quantias envolvidas poderiam levar a um incentivo extremo e agudo ao comportamento, se todas elas concedido a um único alvo. Em geral, é importante que a recompensa seja suficientemente grande para fazer com que a verificação valha a pena para a rede, mas não tão grande a ponto de compensar os custos de enfrentar um problema. crime de “nível industrial” bem financiado e bem orquestrado ataque de hacking a algum validator azarado para forçar o mau comportamento. Desta forma, o montante reclamado geralmente não deve ser maior que o vínculo direto do errante validator, para que um surgem incentivos perversos de se comportar mal e se reportar à recompensa. Isto pode ser combatido explicitamente através de um requisito mínimo de títulos diretos para ser um validator ou implicitamente, educando os nomeadores que validators com poucos títulos depositados não têm grande incentivo comportar-se bem. 6.3. Registro Parachain. Cada parachain é definido em este registro. É uma construção relativamente simples, semelhante a um banco de dados, e contém informações estáticas e dinâmicas sobre cada cadeia. As informações estáticas incluem o índice da cadeia (um simples inteiro), junto com a identidade do protocolo de validação, um meio de distinguir entre as diferentes classes de parachain para que o algoritmo de validação correto possa ser dirigido por validators encarregados de apresentar um candidato válido. Uma prova de conceito inicial se concentraria em colocar os novos algoritmos de validação nos próprios clientes, exigindo efetivamente um hard fork do protocolo cada vez que um classe adicional de corrente foi adicionada. Em última análise, porém, pode ser possível especificar o algoritmo de validação em de uma forma rigorosa e eficiente o suficiente para que os clientes sejam capaz de trabalhar efetivamente com novos pára-quedas sem garfo duro. Um caminho possível para isso seria especificar o algoritmo de validação parachain de uma forma bem estabelecida, linguagem compilada nativamente e de plataforma neutra, como WebAssembly. Pesquisas adicionais são necessárias para determinar se isso é realmente viável, no entanto, se for, poderia trazer com isso a tremenda vantagem de banir hard-forks para sempre. As informações dinâmicas incluem aspectos do sistema de roteamento de transações que devem ter um acordo global, como como a fila de entrada do parachain (descrita na seção 6.6). O registro só pode adicionar parachains através de votação em referendo completo; isso poderia ser gerenciado internamente, mas seria mais provável que fosse colocado em um ambiente externo contrato de referendo, a fim de facilitar a reutilização sob componentes de governação mais gerais. Os parâmetros a requisitos de votação (por exemplo, qualquer quórum necessário, maioria obrigatório) para registro de cadeias adicionais e outros, atualizações de sistema menos formais serão definidas em um “mestre constituição”, mas provavelmente seguirão uma abordagem bastante tradicional caminho, pelo menos inicialmente. A formulação precisa está fora de escopo para o presente trabalho, mas, e. uma maioria absoluta de dois terços para aprovar com mais de um terço do sistema total votar positivamente pode ser um ponto de partida sensato. As operações adicionais incluem a suspensão e remoção de pára-quedas. Esperançosamente, a suspensão nunca acontecer, no entanto, foi concebido para ser uma salvaguarda menos há algum problema intratável no sistema de validação de um parachain. O exemplo mais óbvio em que poderia necessária é uma diferença crítica de consenso entre as implementações, levando validators a não conseguirem chegar a um acordo sobre validade ou bloqueios. Os validadores seriam incentivados a usar múltiplas implementações de clientes para que eles possam identificar esse problema antes do confisco dos títulos. Sendo a suspensão uma medida emergencial, seria sob os auspícios da votação dinâmica validator, em vez do que um referendo. A reintegração seria possível tanto dos validators ou de um referendo. A remoção total dos pára-quedas viria apenas após um referendo e com o qual seria necessária uma período de carência substancial para permitir uma transição ordenada para uma cadeia independente ou para se tornar parte de alguma outra sistema de consenso. O período de carência provavelmente seria de na ordem de meses e provavelmente será estabelecido por cadeia no registro de parachain para que diferentes parachains podem desfrutar de diferentes períodos de carência de acordo com sua necessidade. 6.4. Vedação de blocos de relés. Vedação refere-se, em essência, ao processo de canonização; isto é, um dado básico transformar o quemapeia o original em algo fundamentalmente singular e significativo. Sob uma cadeia PoW, vedação é efetivamente sinônimo de mineração. No nosso caso, envolve a coleta de declarações assinadas de validators sobre a validade, disponibilidade e canonicidade de um bloco específico da cadeia de retransmissão e os blocos parachain que ele representa. A mecânica do algoritmo de consenso BFT subjacente está fora do escopo do presente trabalho. Nós iremos em vez disso, descreva-o usando uma primitiva que assume um máquina de estado criadora de consenso. Em última análise, esperamos ser inspirado por uma série de consensos BFT promissores algoritmos no núcleo; Tangaora [9] (uma variante BFT de Jangada [16]), Tendermint [11] e HoneyBadgerBFT [14]. O algoritmo terá que chegar a um acordo sobre múltiplos parachains em paralelo, diferindo assim do habitual blockchain mecanismos de consenso. Assumimos que uma vez o consenso é alcançado, somos capazes de registrar o consenso numa prova irrefutável que pode ser fornecida por qualquer um dos os participantes a ele. Também assumimos que o mau comportamento dentro do protocolo pode ser geralmente reduzido a um pequeno grupo contendo participantes malcomportados para minimizar o dano colateral ao aplicar a punição.8 A prova, que assume a forma de nossas declarações assinadas, é colocada no cabeçalho do bloco da cadeia de retransmissão junto com com alguns outros campos, entre eles a raiz da tentativa de estado da cadeia de retransmissão e a raiz da tentativa de transação. O vedação processo leva lugar sob um solteiro gerador de consenso mecanismo endereçamento ambos o bloco da cadeia de relés e os blocos dos parachains que fazem parte do conteúdo do revezamento: os parachains não são “comprometidos” separadamente por seus subgrupos e depois agrupados mais tarde. Isso resulta em um processo mais complexo para a cadeia de retransmissão, mas nos permite completar todo o consenso do sistema em um único estágio, minimizando a latência e permitindo para requisitos de disponibilidade de dados bastante complexos que são útil para o processo de roteamento abaixo. 8Os esquemas de consenso BFT existentes baseados em PoS, como o Tendermint BFT e o Slasher original, atendem a essas afirmações.

POLKADOT: VISÃO PARA UMA ESTRUTURA MULTI-CADEIA HETEROGÊNEA ESBOÇO 1 12 O estado da máquina de consenso de cada participante pode ser modelado como uma tabela simples (bidimensional). Cada participante (validator) possui um conjunto de informações, no formato de declarações assinadas (“votos”) de outros participantes, em relação a cada candidato de bloco parachain, bem como ao candidato de bloco de retransmissão. O conjunto de informações é composto por duas peças de dados: Disponibilidade: faz isso validator tem saída informações de postagem de transação deste bloco, então eles são capazes de validar adequadamente os candidatos parachain no bloco seguinte? Eles podem votar 1 (conhecido) ou 0 (ainda não conhecido). Uma vez que eles voto 1, eles se comprometem a votar de forma semelhante para o resto deste processo. Votos posteriores que não respeitar isso são motivos para punição. Validade: o bloco parachain é válido e é tudo dados referenciados externamente (por ex. transações) disponível? Isso é relevante apenas para validators atribuídos ao parachain no qual estão votando. Eles podem votar 1 (válido), -1 (inválido) ou 0 (ainda não conhecido). Uma vez que votam diferente de zero, eles estão empenhados em votar desta forma durante o resto do o processo. Votos posteriores que não respeitam isso são motivo de punição. Todos os validators devem enviar votos; poderão ser reapresentados votos, qualificados pelas regras acima. A progressão de o consenso pode ser modelado como vários algoritmos de consenso BFT padrão sobre cada parachain acontecendo em paralelo. Uma vez que estas são potencialmente frustradas por uma situação relativamente pequena minoria de atores maliciosos concentrados em um único grupo parachain, existe um consenso geral para estabelecer um mecanismo de apoio, limitando o pior cenário possível impasse para apenas um ou mais blocos de parachain vazios (e uma rodada de punição para os responsáveis). As regras básicas para validade dos blocos individuais (que permitem que o conjunto total de validators como um todo chegue a consenso sobre ele se tornar o único candidato parachain a ser referenciado a partir do relé canônico): • deve ter pelo menos dois terços dos seus validators votando positivamente e nenhum votando negativamente; • deve ter mais de um terço dos validators votando positivamente quanto à disponibilidade de informações da fila de saída. Se houver pelo menos um voto positivo e pelo menos um negativo sobre a validade, é criada uma condição excepcional e todo o conjunto de validators deve votar para determinar se houver partes maliciosas ou se houver um acidente garfo. Além de válidos e inválidos, um terceiro tipo de votos são permitidos, equivalente a votar em ambos, o que significa que o nó tem opiniões conflitantes. Isto pode ser devido ao proprietário do nó executando múltiplas implementações que fazem discordo, indicando uma possível ambiguidade no protocolo. Depois que todos os votos forem contados do conjunto completo validator, se a opinião perdedora tem pelo menos uma pequena proporção (para ser parametrizado; no máximo metade, talvez significativamente menos) dos votos do parecer vencedor, presume-se então será um fork acidental do parachain e o parachain será automaticamente suspenso do processo de consenso. Caso contrário, assumimos que é um ato malicioso e punimos o minoria que votou a favor da opinião divergente. A conclusão é um conjunto de assinaturas demonstrando canonicidade. O bloco da cadeia de relés pode então ser selado e iniciado o processo de selagem do próximo bloco. 6.5. Melhorias para blocos de relé de vedação. Enquanto este método de vedação oferece fortes garantias sobre a operação do sistema, não tem uma escalabilidade particularmente boa uma vez que as principais informações de cada parachain devem ter seu disponibilidade garantida por mais de um terço de todos os validators. Isso significa que a pegada de responsabilidade de cada validator cresce à medida que mais cadeias são adicionadas. Embora a disponibilidade de dados em redes abertas de consenso é essencialmente um problema não resolvido, existem maneiras de mitigar a sobrecarga colocada nos nós validator. Um simples solução é perceber que embora validators devam assumir assumem a responsabilidade pela disponibilidade dos dados, eles próprios não precisam de armazenar, comunicar ou replicar os dados. Silos de dados secundários, possivelmente relacionados (ou mesmo com o próprio mesmo) os compiladores que compilam esses dados, podem gerenciar o tarefa de garantir a disponibilidade com os validators fornecendo uma parcela de seus juros/receitas em pagamento. No entanto, embora isso possa adquirir alguma escalabilidade intermediária, ainda não ajuda no problema subjacente; desde adicionar mais cadeias geralmente exigirá validators adicionais, o consumo contínuo de recursos de rede (particularmente em termos de largura de banda) cresce com o quadrado de ocorrentes, uma propriedade insustentável a longo prazo. Em última análise, é provável que continuemos a bater a cabeça contra a limitação fundamental que afirma que, para uma rede de consenso para ser considerada disponível como segura, o os requisitos contínuos de largura de banda são da ordem do total validators vezes o total de informações de entrada. Isto é devido a a incapacidade de uma rede não confiável de distribuir adequadamente a tarefa de armazenamento de dados entre muitos nós, que fica além da tarefa eminentemente distribuível de processamento. 6.5.1. Apresentando Latência. Um meio de suavizar isso A regra é relaxar a noção de imediatismo. Ao exigir que 33%+1 validators votem pela disponibilidade apenas eventualmente, e não imediatamente, podemos utilizar melhor a propagação exponencial de dados e ajudar a equilibrar os picos no intercâmbio de dados. Uma igualdade razoável (embora não comprovada) pode ser: (1) latência = participantes × cadeias No modelo atual, o tamanho do sistema aumenta com o número de cadeias para garantir que o processamento seja distribuído; já que cada cadeia exigirá pelo menos um validator e fixamos o atestado de disponibilidade para uma constante proporção de validators, então os participantes crescem de forma semelhante com o número de cadeias. Terminamos com: (2) latência = tamanho2 O que significa que à medida que o sistema cresce, a largura de banda necessária e a latência até que a disponibilidade seja conhecida em todo o rede, que também pode ser caracterizada como o número de blocos antes da finalidade, aumenta com seu quadrado. Isto é um factor de crescimento substancial e pode revelar-se um obstáculo notável e forçar-nos a paradigmas “não planos” como compor vários “Polkadotes” em uma hierarquia para roteamento multinível de postagens por meio de uma árvore de cadeias de retransmissão.

POLKADOT: VISÃO PARA UMA ESTRUTURA MULTI-CADEIA HETEROGÊNEA ESBOÇO 1 13 6.5.2. Participação Pública. Mais uma direção possível é conseguir a participação pública no processo através de uma sistema de micro-reclamações. Semelhante aos pescadores, há poderiam ser partes externas para policiar os validators que reivindicam disponibilidade. A sua tarefa é encontrar alguém que pareça incapaz de demonstrar tal disponibilidade. Ao fazer isso eles pode apresentar uma micro-reclamação a outros validators. PoW ou um título apostado pode ser usado para mitigar o ataque de sibila o que tornaria o sistema em grande parte inútil. 6.5.3. Fiadores de Disponibilidade. Um caminho final seria nomear um segundo conjunto de validators vinculados como “disponibilidade fiadores”. Eles seriam ligados da mesma forma que os validators normais e podem até ser retirados do mesmo conjunto (embora, nesse caso, seriam escolhidos durante um período de longo prazo, pelo menos por sessão). Ao contrário dos validators normais, eles não mudaria entre parachains, mas sim formar um único grupo para atestar a disponibilidade de todos os dados intercadeias importantes. Isto tem a vantagem de relaxar a equivalência entre participantes e cadeias. Essencialmente, as cadeias podem crescer (junto com o conjunto original da cadeia validator), enquanto os participantes, e especificamente aqueles que participam do testamento de disponibilidade de dados, podem permanecer pelo menos sublineares e possivelmente constante. 6.5.4. Preferências do agrupador. Um aspecto importante deste sistema é garantir que haja uma seleção saudável de agrupadores criando os blocos em qualquer parachain. Se um único agrupador dominou um parachain e depois alguns ataques tornar-se mais viável, uma vez que a probabilidade da falta de a disponibilidade de dados externos seria menos óbvia. Uma opção é pesar artificialmente blocos de parachain em um mecanismo pseudo-aleatório para favorecer uma ampla variedade de agrupadores. No primeiro caso, precisaríamos como parte do mecanismo de consenso que validators favorece candidatos do bloco parachain determinados como “mais pesados”. Da mesma forma, devemos incentivar validators a tentar sugerir o bloco mais pesado que puderem encontrar - isso pode ser feito através de uma parcela de sua recompensa proporcional ao peso de seu candidato. Para garantir que os agrupadores recebam uma avaliação justa e razoável chance de seu candidato ser escolhido como vencedor candidato em consenso, fazemos o peso específico de um candidato de bloco parachain determinado em uma função aleatória conectada a cada agrupador. Por exemplo, tomando a medida da distância XOR entre o endereço do ordenador e algum número pseudoaleatório criptograficamente seguro determinado próximo ao ponto do bloco que está sendo criado (um “bilhete vencedor” nocional). Isso efetivamente dá a cada agrupador (ou, mais especificamente, o endereço de cada agrupador) um chance aleatória de seu bloco candidato “ganhar” todos os outros. Para mitigar o ataque sybil de um único agrupador “minerando” um endereço próximo ao bilhete vencedor e assim sendo um favorito em cada bloco, adicionaríamos alguma inércia ao endereço de um agrupador. Isso pode ser tão simples quanto exigir que eles ter uma quantia básica de fundos no endereço. Um mais abordagem elegante seria ponderar a proximidade com o bilhete vencedor com o valor dos fundos estacionados no endereço em questão. Embora a modelagem ainda não tenha sido feita, é bem possível que este mecanismo permita até mesmo pequenas partes interessadas contribuam como compiladores. 6.5.5. Blocos de excesso de peso. Se um conjunto validator for comprometido, eles podem criar e propor um bloco que, embora válido, leva uma quantidade excessiva de tempo para ser executado e validar. Isto é um problema já que um grupo validator poderia razoavelmente formar um bloco que leva muito tempo para executar, a menos que alguma informação específica já seja conhecida, permitindo um atalho, por ex. fatorando um grande principal. Se um único compilador conhecesse essa informação, então eles teriam uma clara vantagem em obter o seu próprio os candidatos aceitaram desde que os demais estivessem ocupados processando o bloco antigo. Chamamos esses blocos de excesso de peso. A proteção contra o envio e validação desses blocos por validators cai em grande parte sob o mesmo disfarce que para blocos inválidos, embora com uma ressalva adicional: já que o tempo necessário para executar um bloco (e, portanto, seu status como excesso de peso) é subjetivo, o resultado final de uma votação sobre o mau comportamento cairá essencialmente em três campos. Um possibilidade é que o bloco definitivamente não esteja acima do peso - neste caso, mais de dois terços declaram que poderiam execute o bloco dentro de algum limite (por exemplo, 50% do tempo total permitido entre blocos). Outra é que o bloco é ddefinitivamente acima do peso - isso aconteceria se mais de dois terços declaram que não conseguiram executar o bloco dentro do referido limite. Uma última possibilidade é uma situação razoavelmente igual divisão de opinião entre validators. Neste caso, podemos escolha fazer alguma punição proporcional. Para garantir que validators possam prever quando poderão ser propondo um bloco com excesso de peso, poderá ser sensato exigir-lhes que publiquem informações sobre o seu próprio desempenho para cada bloco. Durante um período de tempo suficiente, isso deve permitir que eles avaliem sua velocidade de processamento em relação aos pares que os julgariam. 6.5.6. Seguro de Colador. Um problema permanece para validators: ao contrário das redes PoW, para verificar o bloco para validade, eles devem realmente executar as transações nele. Coletores maliciosos podem alimentar blocos inválidos ou com excesso de peso para validators, causando-lhes sofrimento (desperdiçando seus recursos) e cobrando um custo de oportunidade potencialmente substancial. Para mitigar esta situação, propomos uma estratégia simples sobre o parte de validators. Em primeiro lugar, os candidatos ao bloco parachain foram enviados para validators devem ser assinados a partir de uma conta de cadeia de retransmissão com fundos; se não estiverem, então o validator deve cair isso imediatamente. Em segundo lugar, esses candidatos devem ser ordenados em prioridade por uma combinação (por exemplo, multiplicação) de a quantidade de fundos na conta até certo limite, o número de blocos anteriores que o ordenador propôs com sucesso no passado (sem mencionar qualquer bloco anterior punições), e o fator de proximidade com o vencedor bilhete conforme discutido anteriormente. A tampa deve ser a mesma como os danos punitivos pagos ao validator no caso deles enviando um bloco inválido. Para desincentivar os agrupadores de enviar candidatos de bloco inválidos ou com excesso de peso para validators, qualquer validator pode colocar no próximo bloco uma transação incluindo o bloco infrator, alegando mau comportamento com o efeito de transferir alguns ou todos os fundos na conta do ordenador que se comportou mal. conta ao lesado validator. Este tipo de transação antecipa qualquer outra para garantir que o ordenador não possa remover os fundos antes da punição. A quantidade de fundos transferidos como indenização é um parâmetro dinâmico ainda

POLKADOT: VISÃO PARA UMA ESTRUTURA MULTI-CADEIA HETEROGÊNEA ESBOÇO 1 14 a ser modelado, mas provavelmente será uma proporção da recompensa do bloco validator para refletir o nível de sofrimento causado. Para evitar que validators maliciosos confisquem arbitrariamente os fundos dos agrupadores, o agrupador poderá apelar da decisão do validator com um júri de validators escolhidos aleatoriamente em troca para fazer um pequeno depósito. Se eles acharem a favor de validator, o depósito será consumido por eles. Se não, o o depósito é devolvido e o validator é multado (já que o validator estiver em uma posição muito mais abobadada, a multa será provavelmente será bastante pesado). 6.6. Intercadeia Transação Roteamento. Intercadeia o roteamento de transações é uma das manutenções essenciais tarefas da cadeia de relés e seus validators. Este é o lógica que governa como uma transação lançada (muitas vezes abreviada para simplesmente “post”) deixa de ser uma saída desejada de um parachain de origem para ser uma entrada não negociável de outro parachain de destino sem qualquer confiança requisitos. Escolhemos cuidadosamente o texto acima; notavelmente nós não exige que tenha havido uma transação na origem parachain por ter sancionado explicitamente esta postagem. O único restrições que colocamos em nosso modelo é que parachains devem fornecer, embalados como parte de seu bloco geral saída de processamento, as postagens que são o resultado do execução do bloco. Essas postagens são estruturadas como diversas filas FIFO; o número de listas é conhecido como base de roteamento e pode ser cerca de 16. Notavelmente, este número representa a quantidade de pára-quedas que podemos apoiar sem ter que recorrer a roteamento multifásico. Inicialmente, Polkadot apoiará isso tipo de roteamento direto, no entanto, descreveremos um possível processo de roteamento multifásico (“hiper-roteamento”) como meio de expandir muito além do conjunto inicial de parachains. Nós assumir isso tudo participantes sabe o subgrupos para os próximos dois blocos n, n + 1. Em resumo, o O sistema de roteamento segue estas etapas: • CollatorS: entre em contato com membros dos Validadores[n][S] • Agrupadores: PARA CADA subgrupo: garantir pelo menos pelo menos 1 membro dos validadores[n][s] em contato • Coletores: PARA CADA subgrupo: assumir egress[n −1][s][S] está disponível (todas as postagens recebidas dados para 'S' do último bloco) • Coletores: Componha o bloco candidato b para S: (b.cabeçalho, b.ext, b.prova, b.recibo, b.egress) • Coletores: Enviar prova informação prova[S] = (b.cabeçalho, b.ext, b.prova, b.recibo) para Validadores[n][S] • CollatorS: Garante dados de transações externas b.ext é disponibilizado para outros agrupadores e validators • Coletores: PARA CADA subgrupo é: Enviar saída informação saída[n][S][s] = (b.cabeçalho, b.recibo, b.egress[s]) para o recebendo subgrupo membros de próximo bloquear Validadores[n + 1][s] • ValidadorV: pré-conecta todos os membros do mesmo conjunto para o próximo bloco: seja N = Chain[n + 1][V ]; conectar todos os validators v tais que Chain[n + 1][v] = N • ValidadorV: Agrupe toda a entrada de dados para isso bloco: PARA CADA subgrupo é: Recuperar egress[n −1][s][Chain[n][V ]], obtém de outros validators v tal que Chain[n][v] = Chain[n][V ]. Possivelmente passando por outros validators selecionados aleatoriamente para prova de tentativa. • ValidadorV: Aceite provas de candidato para isso prova de bloco[Cadeia[n][V]]. Validade do bloco de votação • ValidadorV: Aceitar dados de saída de candidatos para próximo bloco: PARA CADA subgrupo s, aceite saída[n][s][N]. Disponibilidade de saída do bloco de votação; republicar entre validators interessados v de forma que Cadeia[n + 1][v] = Cadeia[n + 1][V ]. • ValidadorV: ATÉ CONSENSO Onde: egress[n][from][to] é a fila de saída atual informações para postagens que vão do parachain ‘de’, para parachain ‘to’ no número do bloco ‘n’. CollatorS é um agrupador para parachain S. V alidators[n][s] é o conjunto de validators para parachain s no bloco número n. Por outro lado, Chain[n][v] é o parachain ao qual validator v é atribuído no bloco número n. block.egress[to] é a saída fila de postagens de algum bloco parachain cujo parachain de destino é. Como os agrupadores cobram taxas (de transação) com base em seus blocos se tornando canônicos, eles são incentivados a garantir que, para cada destino do próximo bloco, o subgrupo os membros são informados da fila de saída do presente bloco. Os validadores são incentivados apenas a formar um consenso sobre um bloco (parachain), portanto, eles pouco se importam com qual bloco do ordenador finalmente se torna canônico. Em princípio, um validator poderia formar uma aliança com um agrupador e conspirar para reduzir as chances de outros agrupadores bloqueia se tornar canônico, no entanto, isso é difícil para organizar devido à seleção aleatóriaação de validators para parachains e poderia ser defendido com uma redução nas taxas a pagar por blocos de parachain que resistem o processo de consenso. 6.6.1. Disponibilidade de dados externos. Garantindo um paraquedas dados externos estão realmente disponíveis é um problema perene com sistemas descentralizados com o objetivo de distribuir a carga de trabalho entre a rede. No centro da questão está a disponibilidade problema que afirma que, como não é possível fazer uma prova de disponibilidade não interativa nem qualquer tipo de prova de indisponibilidade, para que um sistema BFT funcione adequadamente validar qualquer transição cuja correção dependa do disponibilidade de alguns dados externos, o número máximo de nós aceitavelmente bizantinos, mais um, do sistema deve atestar que os dados estão disponíveis. Para que um sistema seja dimensionado corretamente, como Polkadot, isso convida a um problema: se uma proporção constante de validators deve atestar a disponibilidade dos dados, e assumindo que validators desejarão realmente armazenar os dados antes de afirmar que estão disponíveis, então como podemos evitar o problema dos requisitos de largura de banda/armazenamento aumentando com o tamanho do sistema (e, portanto, o número de validators)? Uma resposta possível seria ter um conjunto separado de validators (garantidores de disponibilidade), cujo pedido cresce sublinearmente com o tamanho de Polkadot como um todo. Isto é descrito em 6.5.3. Também temos um truque secundário. Como grupo, os agrupadores têm um incentivo intrínseco para garantir que todos os dados sejam disponível para o parachain escolhido, pois sem ele eles não são capazes de criar mais blocos a partir dos quais possam cobrar taxas de transação. Os agrupadores também formam um grupo cuja composição é variada (devido à natureza aleatória do parachain validator grupos) não trivial de entrar e fácil

POLKADOT: VISÃO PARA UMA ESTRUTURA MULTI-CADEIA HETEROGÊNEA ESBOÇO 1 15 para provar. Os agrupadores recentes (talvez dos últimos milhares de blocos) estão, portanto, autorizados a emitir desafios para a disponibilidade de dados externos para um determinado parachain bloco para validators para um pequeno título. Os validadores devem entrar em contato com aqueles do subgrupo aparentemente infrator validator que testemunharam e adquirir e devolver os dados ao compilador ou escalar o questão, testemunhando a falta de disponibilidade (a recusa direta em fornecer os dados conta como um crime de confisco de títulos, portanto, o mau comportamento validator provavelmente apenas interromper a conexão) e entrar em contato com validators adicionais para executar o mesmo teste. Neste último caso, a caução do colator é retornado. Assim que for alcançado um quórum de validators que possam fazer tais depoimentos de indisponibilidade, eles serão liberados, o o subgrupo que se comporta mal é punido e o bloqueio é revertido. 6.6.2. Roteamento de postagens. Cada cabeçalho parachain inclui um saída-trie-root; esta é a raiz de uma tentativa contendo o compartimentos de base de roteamento, sendo cada compartimento uma lista concatenada de postos de saída. As provas Merkle podem ser fornecidas em parachain validators para provar que um determinado parachain O bloco tinha uma fila de saída específica para um parachain de destino específico. No início do processamento de um bloco parachain, cada a fila de saída de outro parachain com destino ao referido bloco é mesclado na fila de entrada do nosso bloco. Assumimos forte, provavelmente CSPR9, ordenação de subbloco para alcançar uma operação determinística que não oferece favoritismo entre quaisquer emparelhamento de blocos parachain. Os agrupadores calculam a nova fila e drenar as filas de saída de acordo com o parachain lógica. O conteúdo da fila de entrada é escrito explicitamente no bloco de pára-quedas. Isto tem dois propósitos principais: em primeiro lugar, significa que o parachain pode ser sincronizado sem confiança, isoladamente dos outros parachains. Em segundo lugar, simplifica a logística de dados caso todo o ingresso a fila não pode ser processada em um único bloco; validators e agrupadores são capazes de processar os seguintes blocos sem ter que obter os dados da fila especialmente. Se a fila de entrada do parachain estiver acima de um limite valor no final do processamento do bloco, então ele é marcado saturado na cadeia de retransmissão e nenhuma mensagem adicional pode ser entregue a ele até que seja liberado. As provas de Merkle são usado para demonstrar a fidelidade da operação do alceador em a prova do bloco parachain. 6.6.3. Crítica. Uma pequena falha relacionada a este mecanismo é o ataque pós-bomba. É aqui que todos parachains enviam o máximo de posts possíveis para um parachain específico. Embora isso amarre o alvo fila de entrada de uma só vez, nenhum dano é causado além um ataque DoS de transação padrão. Operando normalmente, com um conjunto de sinais bem sincronizados e agrupadores não maliciosos e validators, para N parachains, N × M total de validators e L agrupadores por parachain, nós pode dividir o total de caminhos de dados por bloco para: Validador: M −1+L+L: M −1 para os outros validators no conjunto de parachain, L para cada ordenador fornecendo um bloco de parachain candidato e um segundo L para cada ordenador do próximo bloco exigindo as cargas de saída do bloco anterior. (Este último é na verdade mais parecido com o pior caso operação, uma vez que é provável que os agrupadores compartilhem tais dados.) Collator: M +kN: M para uma conexão com cada bloco parachain validator, kN para semear as cargas úteis de saída para algum subconjunto de cada grupo parachain validator para o próximo bloco (e possivelmente algum(s) agrupador(es) preferido(s)). Como tal, os caminhos dos dados por nó crescem linearmente com a complexidade geral do sistema. Enquanto isso é razoável, à medida que o sistema se expande para centenas ou milhares de parachains, alguma latência de comunicação pode ser absorvido em troca de uma taxa de crescimento de menor complexidade. Neste caso, um algoritmo de roteamento multifásico pode ser usado para reduzir o número de caminhos instantâneos ao custo da introdução de buffers de armazenamento e latência. 6.6.4. Roteamento hipercubo. O roteamento hipercubo é um mecanismo que pode ser construído principalmente como uma extensão do mecanismo básico de roteamento descrito acima. Essencialmente, em vez de aumentar a conectividade do nó com o número de parachains e nós de subgrupos, crescemos apenas com o logaritmo dos parachains. As postagens podem transitar entre várias filas de parachains a caminho da entrega final. O roteamento em si é determinístico e simples. Começamos por limitar o número de compartimentos nas filas de entrada/saída; em vez de serem o número total de pára-quedas, eles são osbase de roteamento (b) . Isso será corrigido como o número de mudanças de parachains, com o expoente de roteamento (e) sendo aumentado. Sob este modelo, nosso volume de mensagens cresce com O (ser), com os caminhos permanecendo constantes e a latência (ou número de blocos necessários para entrega) com O(e). Nosso modelo de roteamento é um hipercubo de dimensões e, com cada lado do cubo tendo b localizações possíveis. Cada bloco roteamos mensagens ao longo de um único eixo. Nós alterne o eixo de forma round-robin, garantindo assim o pior tempo de entrega dos blocos e. Como parte do processamento de parachain, com destino ao exterior as mensagens encontradas na fila de entrada são roteadas imediatamente para o compartimento apropriado da fila de saída, considerando o número do bloco atual (e, portanto, dimensão de roteamento). Isto o processo necessita de transferência de dados adicional para cada salto na rota de entrega, no entanto, isso é um problema em si que pode ser mitigado usando alguns meios alternativos de entrega de carga útil de dados e incluindo apenas uma referência, em vez da carga útil completa da postagem no pós-teste. Um exemplo de roteamento hipercubo para um sistema com 4 parachains, b = 2 e e = 2 pode ser: Fase 0, em cada mensagem M: • sub0: se Mdest ∈{2, 3} então sendTo(2) senão mantém • sub1: se Mdest ∈{2, 3} então sendTo(3) senão mantém • sub2: se Mdest ∈{0, 1} então sendTo(0) senão mantém • sub3: se Mdest ∈{0, 1} então sendTo(1) senão mantém Fase 1, em cada mensagem M: • sub0: se Mdest ∈{1, 3} então sendTo(1) senão mantém • sub1: se Mdest ∈{0, 2} então sendTo(0) senão mantém • sub2: se Mdest ∈{1, 3} então sendTo(3) senão mantém • sub3: se Mdest ∈{0, 2} então sendTo(2) senão mantém As duas dimensões aqui são fáceis de ver como a primeira dois bits do índice de destino; para o primeiro bloco, o apenas um bit de ordem superior é usado. O segundo bloco trata com o bit de ordem inferior. Uma vez que ambos acontecem (de forma arbitrária ordem) então a postagem será roteada. 9pseudo-aleatório criptograficamente seguro

POLKADOT: VISÃO PARA UMA ESTRUTURA MULTI-CADEIA HETEROGÊNEA ESBOÇO 1 16 6.6.5. Maximizando a Serendipidade. Uma alteração do básico proposta veria um total fixo de c2 −c validators, com c−1 validators em cada subgrupo. Cada bloco, em vez de havendo um reparticionamento não estruturado de validators entre parachains, em vez de para cada subgrupo de parachains, cada validator seria atribuído a um único e diferente subgrupo parachain no bloco seguinte. Isso seria levam ao invariante que entre quaisquer dois blocos, para qualquer dois pares de parachain, existem dois validators que trocaram as responsabilidades do parachain. Embora isto não possa ser usado para obter garantias absolutas sobre a disponibilidade (um único validator ocasionalmente ficará off-line, mesmo se benevolente), pode, no entanto, otimizar o caso geral. Esta abordagem não é isenta de complicações. A adição de um parachain também exigiria uma reorganização do conjunto validator. Além disso o número de validators, estando vinculado ao quadrado do número de parachains, começaria inicialmente muito pequeno e eventualmente cresceria muito muito rápido, tornando-se insustentável após cerca de 50 parachains. Nenhum destes são problemas fundamentais. No primeiro caso, reorganização dos conjuntos validator é algo que deve ser feito regularmente de qualquer maneira. Em relação ao tamanho do validator definido, quando muito pequeno, vários validators podem ser atribuídos para o mesmo parachain, aplicando um fator inteiro ao total geral de validators. Um mecanismo de roteamento multifásico, como o roteamento hipercubo, discutido em 6.6.4, aliviar a necessidade de um grande número de validators quando há um grande número de cadeias. 6.7. Validação Parachain. O objetivo principal de um validator é testemunhar, como um ator bem vinculado, que o parachain bloco é válido, incluindo, mas não limitado a, qualquer transição de estado, quaisquer transações externas incluídas, a execução de quaisquer postos de espera na fila de entrada e o estado final da fila de saída. O processo em si é bastante simples. Uma vez que o validator selou o bloco anterior, eles estão livres para começar a trabalhar para fornecer um bloco de parachain candidato candidato para a próxima rodada de consenso. Inicialmente, o validator encontra um candidato a bloco parachain por meio de um agrupamento de parachain (descrito a seguir) ou um de seus co-validators. Os dados do candidato do bloco parachain inclui o cabeçalho do bloco, o cabeçalho do bloco anterior, quaisquer dados de entrada externos incluídos (para Ethereum e Bitcoin, tais dados seriam chamados de transações, no entanto, em princípio, podem incluir estruturas de dados arbitrárias para fins arbitrários), dados de fila de saída e dados internos para provar a validade da transição de estado (para Ethereum estes seriam os vários nós de teste de estado/armazenamento necessários para executar cada transação). Evidências experimentais mostram este conjunto de dados completo para um bloco Ethereum recente ter no máximo algumas centenas de KiB. Simultaneamente, se ainda não for feito, o validator será tentando recuperar informações relativas à transição do bloco anterior, inicialmente a partir do bloco anterior validators e posteriores de todos os validators que assinam o disponibilidade dos dados. Depois que validator receber esse bloco de candidato, eles então o validam localmente. O processo de validação está contido no módulo validator da classe parachain, um módulo de software sensível ao consenso que deve ser escrito para qualquer implementação de Polkadot (embora em princípio uma biblioteca com C ABI poderia permitir que uma única biblioteca ser compartilhado entre implementações com o apropriado redução na segurança resultante de ter apenas uma única implementação de “referência”). O processo pega o cabeçalho do bloco anterior e verifica sua identidade através da cadeia de retransmissão recentemente acordada. bloco no qual seu hash deve ser gravado. Uma vez verificada a validade do cabeçalho pai, o parachain específico a função de validação da classe pode ser chamada. Esta é uma função única que aceita vários campos de dados (aproximadamente aqueles fornecidos anteriormente) e retornando um booleano simples proclamando a validade do bloqueio. A maioria dessas funções de validação verificará primeiro o campos de cabeçalho que podem ser derivados diretamente de o bloco pai (por exemplo, pai hash, número). Seguindo isso, eles preencherão quaisquer estruturas de dados internas como necessários para processar transações e/ou postagens. Para uma cadeia do tipo Ethereum, isso equivale a preencher um teste o banco de dados com os nós que serão necessários para o execução completa das transações. Outros tipos de cadeia podem ter outro pmecanismos reparatórios. Uma vez feito isso, os posts de entrada e as transações externas (ou o que quer que os dados externos representem) serão promulgada, equilibrada de acordo com a especificação da cadeia. (Um o padrão sensato pode ser exigir que todas as postagens de entrada sejam processado antes que as transações externas sejam atendidas, no entanto, isso deve ser decidido pela lógica do parachain.) Através desta lei, uma série de postos de saída serão criados e será verificado se estes realmente correspondem o candidato do colador. Finalmente, o devidamente preenchido o cabeçalho será verificado em relação ao cabeçalho do candidato. Com um bloco candidato totalmente validado, o validator pode então votar no hash de seu cabeçalho e enviar todas as informações de validação necessárias para os co-validators em seu subgrupo. 6.7.1. Coladores Parachain. Os agrupadores de parachain são operadores não vinculados que cumprem grande parte da tarefa dos mineradores nas redes blockchain atuais. Eles são específicos para um parachain específico. Para funcionarem devem manter a cadeia de relés e o totalmente sincronizado pára-quedas. O significado preciso de “totalmente sincronizado” dependerá da classe do parachain, embora sempre inclua o estado atual da fila de entrada do parachain. No caso de Ethereum também envolve pelo menos manter um banco de dados Merkle-tree dos últimos blocos, mas pode também inclui várias outras estruturas de dados, incluindo Bloom filtros para existência de conta, informações familiares, registro saídas e tabelas de pesquisa reversa para número de bloco. Além de manter as duas cadeias sincronizadas, também deve “pescar” transações mantendo uma fila de transações e aceitando transações devidamente validadas da rede pública. Com a fila e a cadeia, é capaz de criar novos blocos candidatos para os validators escolhidos em cada bloco (cuja identidade é conhecida desde que a cadeia de relés esteja sincronizada) e submetê-los, juntamente com o diversas informações auxiliares, como prova de validade, via a rede peer. Por seu problema, cobra todas as taxas relativas às transações que inclui. Várias economias flutuam em torno disso arranjo. Num mercado fortemente competitivo onde há houver um excedente de coladores, é possível que a transação taxas serão compartilhadas com o parachain validators para incentivar a inclusão de um bloco de agrupamento específico. De forma similar,

POLKADOT: VISÃO PARA UMA ESTRUTURA MULTI-CADEIA HETEROGÊNEA ESBOÇO 1 17 alguns agrupadores podem até aumentar as taxas exigidas que precisam a ser pago para tornar o bloco mais atrativo para validators. Neste caso, um mercado natural deve se formar com transações que pagam taxas mais altas evitando a fila e ter uma inclusão mais rápida na cadeia. 6.8. Rede. Rede em blockchains tradicionais como Ethereum e Bitcoin tem requisitos bastante simples. Todas as transações e bloqueios são transmitidos em uma simples fofoca não direcionada. A sincronização está mais envolvida, especialmente com Ethereum mas na realidade esta lógica estava contida em a estratégia de pares, em vez do protocolo em si, que resolve alguns tipos de mensagens de solicitação e resposta. Embora Ethereum tenha feito progresso nas ofertas atuais de protocolo com o protocolo devp2p, o que permitiu muitos subprotocolos sejam multiplexados em uma única conexão de ponto e, portanto, tenham a mesma sobreposição de ponto, suportam muitos protocolos p2p simultaneamente, a parte Ethereum de o protocolo ainda permaneceu relativamente simples e o p2p protocolo por um tempo permanece inacabado com importantes funcionalidade ausente, como suporte QoS. Infelizmente, o desejo de criar um protocolo “web 3” mais onipresente, em grande parte falhou, com os únicos projetos que o utilizam sendo aqueles explicitamente financiado pela venda coletiva Ethereum. Os requisitos para Polkadot são bastante mais substanciais. Em vez de uma rede totalmente uniforme, Polkadot tem vários tipos de participantes, cada um com requisitos diferentes em relação à composição de seus pares e diversas redes “avenidas” cujos participantes tenderão a conversar sobre dados específicos. Isso significa uma sobreposição de rede substancialmente mais estruturada – e um protocolo que suporta isso – provavelmente será necessário. Além disso, a extensibilidade para facilitar adições futuras, como novos tipos de “cadeia”, pode eles próprios exigem uma nova estrutura de sobreposição. Embora uma discussão aprofundada sobre como a rede protocolo pode parecer estar fora do escopo deste documento, algumas análises de requisitos são razoáveis. Nós podemos dividir aproximadamente os participantes da nossa rede em dois conjuntos (relay-chain, parachains) cada um dos três subconjuntos. Nós podemos também afirmam que cada um dos participantes do parachain são apenas interessados em conversar entre si em vez de participantes de outros parachains: • Participantes da cadeia de retransmissão: • Validadores: P, dividido em subconjuntos P[s] para cada pára-quedas • Fiadores de Disponibilidade: A (podem ser representados por Validadores na forma básica do protocolo) • Clientes de cadeia de retransmissão: M (observe os membros de cada conjunto parachain também tenderá a ser membros de M) • Participantes do Parachain: • Coletores Parachain: C[0], C[1], . . . • Pescadores de paraquedas: F[0], F[1], . . . • Clientes Parachain: S[0], S[1], . . . • Clientes leves Parachain: L[0], L[1], . . . Em geral, nomeamos classes específicas de comunicação tenderá a ocorrer entre membros desses conjuntos: • P | Um <-> P | R: O cheio definir de validators/fiadores deve ser bem conectado para alcançar consenso. • P[s] <-> C[s] | P[s]: Cada validator como membro de um determinado grupo parachain tenderá a fofocar com outros membros, bem como com os compiladores desse parachain para descobrir e compartilhar candidatos de bloco. • A <-> P[s] | C | R: Cada fiador de disponibilidade precisará coletar dados de cadeia cruzada sensíveis ao consenso dados dos validators atribuídos a ele; agrupadores também pode otimizar a chance de consenso sobre seus bloquear anunciando-o aos fiadores de disponibilidade. Assim que os tiverem, os dados serão desembolsados para outro fiador para facilitar o consenso. • P[s] <-> A | P[s']: Parachain validators irá precisa coletar dados de entrada adicionais do conjunto anterior de validators ou dos fiadores de disponibilidade. • F[s] <-> P: Ao reportar, os pescadores podem colocar uma reclamação com qualquer participante. • M <-> M | P | R: Os clientes gerais da cadeia de retransmissão desembolsam dados de validators e fiadores. • S[s] <-> S[s] | P[s] | R: Os clientes Parachain desembolsam dados dos validator/fiadores. • L[s] <-> L[s] | S[s]: Clientes leves Parachain desembolsar dados dos clientes completos. Para garantir um mecanismo de transporte eficiente, um “plano” rede de sobreposição - como o devp2p de Ethereum - onde cada nó não diferencia (não arbitrariamente) a aptidão de seu é improvável que os pares sejam adequados. Um razoavelmente extensível o mecanismo de seleção e descoberta de pares provavelmente precisará a serem incluídos no protocolo, bem como agressivos planejando uma previsão para garantir o tipo certo de pares são “acidentalmente” connectado no momento certo. A estratégia precisa de composição de pares será diferente para cada turma de participantes: para uma escalação adequada multi-cadeias, os alceadores precisarão ser continuamente reconectando-se aos validators devidamente eleitos, ou irá precisa de acordos contínuos com um subconjunto de validators para garantir que eles não sejam desconectados durante a grande maioria das vezes em que são inúteis para isso validator. Os agrupadores também tentarão naturalmente manter um ou conexões mais estáveis no garantidor de disponibilidade definido para garantir a rápida propagação de suas ideias sensíveis ao consenso dados. Os fiadores de disponibilidade terão como objetivo principal manter um conexão estável entre si e com validators (para consenso e dados parachain críticos de consenso aos quais eles atestam), bem como a alguns coladores (para o parachain dados) e alguns pescadores e clientes plenos (para dispersão informações). Os validadores tenderão a procurar outros validators, especialmente aqueles do mesmo subgrupo e qualquer agrupadores que podem fornecer-lhes candidatos a blocos de parachain. Pescadores, bem como redes de revezamento e paraquedas em geral os clientes geralmente terão como objetivo manter uma conexão aberta a um validator ou fiador, mas muitos outros nós semelhantes para si mesmos de outra forma. Os clientes Parachain Light terão como objetivo semelhante estar conectados a um cliente completo do parachain, se não apenas outros clientes leves de parachain. 6.8.1. O problema da rotatividade de pares. Na proposta básica do protocolo, cada um desses subconjuntos se altera constantemente de forma aleatória a cada bloco conforme os validators atribuídos para verificar as transições parachain são eleitas aleatoriamente. Isso pode ser um problema caso nós díspares (não pares) precisem passar dados entre si. É preciso confiar em uma rede de pares bem distribuída e bem conectada para

POLKADOT: VISÃO PARA UMA ESTRUTURA MULTI-CADEIA HETEROGÊNEA ESBOÇO 1 18 garantir que a distância do salto (e, portanto, a latência do pior caso) só cresça com o logaritmo do tamanho da rede (um protocolo semelhante ao Kademlia [13] pode ajudar aqui), ou deve-se introduzir tempos de bloqueio mais longos para permitir que a negociação de conexão necessária ocorra para manter um conjunto de pares que reflete as necessidades atuais de comunicação do nó. Nenhuma dessas são ótimas soluções: longos tempos de bloqueio ser forçado na rede pode torná-la inútil para aplicações e cadeias específicas. Mesmo uma situação perfeitamente justa e rede conectada resultará em desperdício substancial de largura de banda à medida que aumenta devido a nós desinteressados tendo para encaminhar dados inúteis para eles. Embora ambas as direções possam fazer parte da solução, uma otimização razoável para ajudar a minimizar a latência seria ser para restringir a volatilidade desses parachain validator conjuntos, reatribuindo a associação apenas entre séries de blocos (por exemplo, em grupos de 15, que em 4 segundos o tempo de bloqueio significaria alterar as conexões apenas uma vez por minuto) ou rotacionando os membros de forma incremental, por ex. mudando por um membro de cada vez (por exemplo, se houver são 15 validators atribuídos a cada parachain, então, em média, seria um minuto inteiro entre completamente único conjuntos). Ao limitar a quantidade de rotatividade entre pares e garantir que conexões vantajosas entre pares sejam bem feitas em avançar através da previsibilidade parcial do parachain conjuntos, podemos ajudar a garantir que cada nó mantenha um permanentemente seleção fortuita de pares. 6.8.2. Caminho para um protocolo de rede eficaz. Provavelmente o o esforço de desenvolvimento mais eficaz e razoável se concentrará na utilização de um protocolo pré-existente, em vez de continuar o nosso. Existem vários protocolos base peer-to-peer que podemos usar ou aumentar, incluindo o próprio devp2p de Ethereum [22], libp2p [1] do IPFS e GNUnet [4] do GNU. Uma revisão completa desses protocolos e sua relevância para a construção de um rede modular de pares que suporta certas garantias estruturais, orientação dinâmica entre pares e subprotocolos extensíveis está muito além do escopo deste documento, mas será um passo importante na implementação de Polkadot. 7. Aspectos práticos do Protocolo 7.1. Pagamento de transações intercadeias. Embora um ótimo quantidade de liberdade e simplicidade é obtida eliminando a necessidade de uma estrutura holística de contabilidade de recursos de computação como o gás de Ethereum, isso levanta uma questão importante: sem gás, como um parachain evitar que outro parachain o force a fazer cálculos? Embora possamos contar com a fila de entrada pós-transação buffers para evitar que uma cadeia envie spam para outra com dados de transação, não há mecanismo equivalente fornecido pelo protocolo para evitar spam no processamento de transações. Este é um problema deixado para o nível superior. Desde cadeias são livres para anexar semântica arbitrária à entrada dados de postagem de transação, podemos garantir que o cálculo deve ser pago antes de começar. Numa linha semelhante à modelo adotado por Ethereum Serenity, podemos imaginar um contrato de “arrombamento” dentro de um parachain que permite um validator terá pagamento garantido em troca do fornecimento de um determinado volume de recursos de processamento. Esses recursos podem ser medidos em algo como gás, mas também pode ser algum modelo totalmente novo, como tempo de execução subjetivo ou um modelo de taxa fixa semelhante a Bitcoin. Por si só, isso não é tão útil, pois não podemos presumir prontamente que o chamador fora da cadeia tenha disponível para ele qualquer que seja o mecanismo de valor reconhecido pela invasão contrato. No entanto, podemos imaginar um contrato secundário de “ruptura” na cadeia de origem. Os dois contratos juntos formariam uma ponte, reconhecendo-se e fornecendo equivalência de valor. (Estaqueamento-tokens, disponível para cada um, poderia ser usado para liquidar o balanço de pagamentos.) Ligar para outra cadeia desse tipo significaria proxy através desta ponte, que forneceria os meios de negociar a transferência de valor entre cadeias para pagar pelos recursos de computação necessários no parachain de destino. 7.2. Adicional Correntes. Enquanto o adição de um parachain é uma operação relativamente barata, não é gratuita. Mais parachains significa menos validators por parachain e, eventualmente, um número maior de validators, cada um com um título médio reduzido. Embora a questão de um menor custo de coerção para atacar um parachain seja mitigada através de pescadores, o crescente conjunto validator essencialmente força um maior grau de latência devido à mecânica do consenso subjacenteisso. Além disso, cada parachain traz consigo o potencial de lamentar validators com um algoritmo de validação excessivamente pesado. Como tal, haverá algum “preço” que validators e/ou a comunidade interessada extrairá para o adição de um novo parachain. Este mercado de correntes possivelmente veja a adição de: • Cadeias que provavelmente terão pagamento de contribuição líquida zero (em termos de bloqueio ou queima de staking tokens) a serem incluídas (por exemplo, cadeias de consórcio, Doge-chains, cadeias específicas de aplicativos); • cadeias que entregam valor intrínseco à rede através da adição de funcionalidades específicas difíceis para chegar a outro lugar (por exemplo, confidencialidade, escalabilidade interna, vínculos de serviço). Essencialmente, a comunidade de partes interessadas precisará ser incentivado a adicionar cadeias infantis - seja financeiramente ou através do desejo de adicionar cadeias funcionais ao relé. Prevê-se que novas cadeias adicionadas terão um impacto muito curto prazo para remoção, permitindo que novas cadeias sejam ser experimentado sem qualquer risco de comprometer a proposta de valor de médio ou longo prazo. 8. Conclusão Descrevemos uma direção que se pode tomar para criar um protocolo multicadeia escalável e heterogêneo com potencial para ser compatível com versões anteriores de determinados protocolos pré-existentes blockchain redes. Sob tal protocolo, os participantes trabalhar com interesse próprio e esclarecido para criar um sistema global que possa ser estendido de maneira excepcionalmente gratuita e sem o custo típico para os usuários existentes que vem de um design padrão blockchain. Nós demos um esboço da arquitetura que seria necessária, incluindo a natureza dos participantes, seus incentivos econômicos e os processos sob os quais eles devem se envolver. Nós temos identificou um projeto básico e discutiu seus pontos fortes e limitações; portanto, temos outras orientações que pode aliviar essas limitações e fornecer mais terreno para uma solução blockchain totalmente escalonável.POLKADOT: VISÃO PARA UMA ESTRUTURA MULTI-CADEIA HETEROGÊNEA ESBOÇO 1 19 8.1. Material faltante e questões abertas. A bifurcação da rede é sempre uma possibilidade devido a implementações divergentes do protocolo. A recuperação de tal condição excepcional não foi discutida. Dado que a rede terá necessariamente um período de finalização diferente de zero, não deve ser um grande problema recuperar-se da bifurcação da cadeia de retransmissão, no entanto, exigirá uma integração cuidadosa no o protocolo de consenso. O confisco de títulos e, inversamente, a provisão de recompensas não foi profundamente explorado. Atualmente assumimos recompensas são fornecidos na base de que o vencedor leva tudo: isso pode não fornecer o melhor modelo de incentivo para os pescadores. Um processo de compromisso-revelação de curto prazo permitiria a muitos pescadores reivindicar o prêmio dando uma distribuição mais justa de recompensas, no entanto, o processo pode levar a latência adicional no descoberta de mau comportamento. 8.2. Agradecimentos. Muito obrigado a todos revisores que ajudaram a colocar isso em uma forma vagamente forma apresentável. Em particular, Peter Czaban, Bjorn Wagner, Ken Kappler, Robert Habermeier, Vitalik Buterin, Reto Trinkler e Jack Petersson. Obrigado a todos as pessoas que contribuíram com ideias ou o início disso, Marek Kotewicz e Aeron Buchanan merecem menção especial. E obrigado a todos pela ajuda ao longo do caminho. Todos os erros são meus. Partes deste trabalho, incluindo pesquisas iniciais sobre algoritmos de consenso, foi financiado em parte pelos britânicos Governo no âmbito do programa Innovate UK.