Optimism Teknik Dokümantasyonu

Von Optimism Collective · 2021

Optimism verfügt über kein traditionelles Whitepaper. Als Ethereum-Layer-2-Optimistic-Rollup sind sein Design und seine Spezifikationen durch technische Dokumentation, die OP-Stack-Spezifikation und Forschungsbeiträge dokumentiert, nicht durch ein einzelnes formales wissenschaftliches Paper.

Zusammenfassung

Das Papier befasst sich mit dem Problem der Skalierbarkeit in dezentralen blockchains, indem es den Kompromiss zwischen Transaktionsdurchsatz und Hardwareanforderungen zum Betrieb eines Knotens analysiert. Rollups, also Technologien zur On-Chain-Verifizierung von außerhalb der Kette ausgeführten Blöcken, werden in Form von Fehler- oder Gültigkeitsnachweisen dargestellt. Wir vergleichen Optimistic Rollups und Validity Rollups im Hinblick auf Auszahlungszeit, Transaktionskosten, Optimierungstechniken und Kompatibilität mit dem Ethereum-Ökosystem. Unsere Analyse zeigt, dass Optimism Bedrock derzeit eine Gaskomprimierungsrate von etwa 20:1 aufweist, während StarkNet eine Speicherschreibkosten-Komprimierungsrate von etwa 24:1 erreicht. Wir diskutieren auch Techniken zur weiteren Optimierung dieser Raten, wie zum Beispiel die Verwendung von Cache-Verträgen und Bloom-Filtern. Letztendlich verdeutlichen unsere Schlussfolgerungen die Kompromisse zwischen Komplexität und Agilität bei der Wahl zwischen Optimistic Rollups und Validity Rollups. Schlüsselwörter Blockchain, Skalierbarkeit, Rollup 1. Einführung Die Blockchain-Technologie hat aufgrund ihres Potenzials, verschiedene Branchen zu revolutionieren, große Aufmerksamkeit erlangt. Allerdings bleibt die Skalierbarkeit eine große Herausforderung, da die meisten blockchains mit einem Kompromiss zwischen Skalierbarkeit, Dezentralisierung und Sicherheit konfrontiert sind, der allgemein als Skalierbarkeitstrilemma bezeichnet wird [1, 2]. Um den Durchsatz eines blockchain zu erhöhen, besteht eine triviale Lösung darin, seine Blockgröße zu erhöhen. Im Zusammenhang mit Ethereum bedeutet dies eine Erhöhung der maximalen Gasmenge, die ein Block aufnehmen kann. Da jeder vollständige Knoten jede Transaktion jedes Blocks validieren muss, steigen mit zunehmendem Durchsatz auch die Hardwareanforderungen, was zu einer stärkeren Zentralisierung des Netzwerks führt. Einige blockchains, wie zum Beispiel Bitcoin und Ethereum, optimieren ihr Design, um ihre architektonische Dezentralisierung zu maximieren, während andere, wie zum Beispiel die Binance Smart Chain und Solana, so konzipiert sind, dass sie so schnell und günstig wie möglich sind. Dezentrale Netzwerke begrenzen künstlich den Durchsatz des blockchain, um die Hardwareanforderungen für die Teilnahme am Netzwerk zu senken. Im Laufe der Jahre wurden Versuche unternommen, eine Lösung für das Trilemma zu finden, beispielsweise mit den staatlichen Kanälen [3] und Plasma [4, 5]. Diese Lösungen zeichnen sich dadurch aus, dass sie einige Aktivitäten außerhalb der Kette verlagern, On-Chain-Aktivitäten mit Off-Chain-Aktivitäten mithilfe von smart contracts verknüpfen und DLT 2023 verifizieren: 5. Distributed Ledger Technology Workshop, 25.–26. Mai 2023, Bologna, Italien $ [email protected] (L. Donno) https://lucadonnoh.github.io/ (L. Donno) 0000-0001-9221-3529 (L. Donno) © 2023 Das Urheberrecht für dieses Papier liegt bei den Autoren. Die Nutzung ist unter der Creative Commons-Lizenz Namensnennung 4.0 International (CC BY 4.0) gestattet. CEUR Workshop Proceedings http://ceur-ws.org ISSN 1613-0073 CEUR Workshop Proceedings (CEUR-WS.org) On-Chain, was außerhalb der Chain passiert. Sowohl Plasma- als auch Staatskanäle unterstützen jedoch nur begrenzt allgemeine smart contracts. Rollups sind blockchains (genannt Layer 2 oder L2), die ihre Blöcke auf einem anderen blockchain (Layer 1 oder L1) veröffentlichen und daher dessen Konsens-, Datenverfügbarkeits- und Sicherheitseigenschaften erben. Im Gegensatz zu anderen Lösungen unterstützen sie willkürliche Berechnungen. Rollups bestehen aus drei Hauptkomponenten: • Sequenzer: Knoten, die Rollup-Transaktionen von Benutzern empfangen und sie in einem Block zusammenfassen, der an Layer 1 gesendet wird. Der Block besteht mindestens aus der Statuswurzel (z. B. einer Merkle-Wurzel) und den Daten, die zur Rekonstruktion und Validierung des Status erforderlich sind. Der Layer 1 definiert die...

Özet

Makale, bir düğümü çalıştırmak için işlem verimi ile donanım gereksinimleri arasındaki dengeyi analiz ederek merkezi olmayan blockchain'lerdeki ölçeklenebilirlik sorununu ele alıyor. Toplamalar, yani zincir dışında yürütülen blokların zincir üzerinde doğrulanmasına yönelik teknolojiler, hata veya geçerlilik kanıtları şeklinde sunulur. İyimser Toplamaları ve Geçerlilik Toplamalarını para çekme süresi, işlem maliyetleri, optimizasyon teknikleri ve Ethereum ekosistemiyle uyumluluk açısından karşılaştırıyoruz. Analizimiz, Optimism Bedrock'un şu anda yaklaşık 20:1'lik bir gaz sıkıştırma oranına sahip olduğunu, StarkNet'nın ise yaklaşık 24:1'lik bir depolama yazma maliyeti sıkıştırma oranına ulaştığını ortaya koyuyor. Ayrıca, önbellek sözleşmelerinin ve Bloom filtrelerinin kullanımı gibi bu oranları daha da optimize etmeye yönelik teknikleri de tartışıyoruz. Sonuç olarak, sonuçlarımız İyimser ve Geçerlilik Toplamaları arasındaki seçimde karmaşıklık ve çeviklik arasındaki dengeyi vurgulamaktadır. Anahtar Kelimeler Blockchain, Ölçeklenebilirlik, Toplama 1. Giriş Blockchain teknolojisi, çeşitli endüstrilerde devrim yaratma potansiyeli nedeniyle büyük ilgi görmüştür. Bununla birlikte, çoğu blockchain ölçeklenebilirlik, merkezi olmayan yönetim ve güvenlik arasında, genellikle Ölçeklenebilirlik Üçlemi olarak adlandırılan bir ödünleşimle karşı karşıya olduğundan, ölçeklenebilirlik büyük bir zorluk olmaya devam etmektedir [1, 2]. Bir blockchain'nin verimini artırmak için basit bir çözüm, blok boyutunu artırmaktır. Ethereum bağlamında bu, bir bloğun tutabileceği maksimum gaz miktarının arttırılması anlamına gelir. Her tam düğümün her bloğun her işlemini doğrulaması gerektiğinden, verim arttıkça donanım gereksinimleri de artar ve bu da ağın daha merkezi hale getirilmesine yol açar. Bitcoin ve Ethereum gibi bazı blockchain'ler, mimari merkeziyetsizliğini en üst düzeye çıkarmak için tasarımlarını optimize ederken, Binance Smart Chain ve Solana gibi diğerleri mümkün olduğu kadar hızlı ve ucuz olacak şekilde tasarlanmıştır. Merkezi olmayan ağlar, ağa katılım için donanım gereksinimlerini azaltmak amacıyla blockchain verimini yapay olarak sınırlandırır. Yıllar geçtikçe Trilemma'ya devlet kanalları [3] ve Plazma [4, 5] gibi bir çözüm bulmak için girişimlerde bulunuldu. Bu çözümler, bazı etkinlikleri zincir dışına taşıma, smart contracts kullanarak zincir içi etkinlikleri zincir dışı etkinliklere bağlama ve DLT 2023: 5th Distributed Ledger Technology Workshop, 25-26 Mayıs 2023, Bologna, İtalya $ [email protected] (L. Donno) https://lucadonnoh.github.io/ doğrulama özelliklerine sahiptir. (L. Donno) 0000-0001-9221-3529 (L. Donno) © 2023 Bu makalenin telif hakkı yazarlarına aittir. Creative Commons Lisansı Atıf 4.0 Uluslararası (CC BY 4.0) kapsamında izin verilen kullanıma. CEUR Çalıştay Bildirileri http://ceur-ws.org ISSN 1613-0073 CEUR Çalıştay Bildirileri (CEUR-WS.org) zincir üzerinde, zincir dışında olup bitenler. Ancak hem Plazma hem de durum kanallarının genel smart contracts desteği sınırlıdır. Toplamalar, bloklarını başka bir blockchain (Layer 1 veya L1) üzerinde yayınlayan ve dolayısıyla onun fikir birliğini, veri kullanılabilirliğini ve güvenlik özelliklerini devralan blockchain'lardır (Layer 2 veya L2 olarak adlandırılır). Diğer çözümlerden farklı olarak keyfi hesaplamayı desteklerler. Toplamaların üç ana bileşeni vardır: • Sıralayıcılar: kullanıcılardan Toplama işlemlerini alan ve bunları Layer 1 adresine gönderilen bir blokta birleştiren düğümler. Blok en azından durum kökünden (örneğin Merkle kökü) ve durumu yeniden yapılandırmak ve doğrulamak için gereken verilerden oluşur. Layer 1 şunu tanımlar...

Einführung

  1. Einführung Aufgrund ihres revolutionären Potenzials hat die Blockchain-Technologie große Aufmerksamkeit erlangt verschiedene Branchen. Allerdings bleibt die Skalierbarkeit eine große Herausforderung, vor der die meisten blockchains stehen ein Kompromiss zwischen Skalierbarkeit, Dezentralisierung und Sicherheit, der allgemein als bezeichnet wird Skalierbarkeitstrilemma [1, 2]. Um den Durchsatz eines blockchain zu erhöhen, gibt es eine triviale Lösung um seine Blockgröße zu erhöhen. Im Kontext von Ethereum bedeutet dies eine Erhöhung des Maximums Menge an Gas, die ein Block aufnehmen kann. Da jeder vollständige Knoten jede Transaktion von jedem validieren muss Block: Mit zunehmendem Durchsatz steigen auch die Hardwareanforderungen, was zu einem höheren Durchsatz führt Zentralisierung des Netzwerks. Einige blockchains, wie Bitcoin und Ethereum, optimieren ihre Design, um ihre architektonische Dezentralisierung zu maximieren, während andere, wie der Binance Smart Chain und Solana sind darauf ausgelegt, so schnell und günstig wie möglich zu sein. Dezentrale Netzwerke Beschränken Sie den Durchsatz von blockchain künstlich, um die Hardwareanforderungen zu senken am Netzwerk teilnehmen. Im Laufe der Jahre wurde versucht, eine Lösung für das Trilemma zu finden, beispielsweise staatliche Kanäle [3] und Plasma [4, 5]. Diese Lösungen haben die Eigenschaft, bestimmte Aktivitäten zu verschieben Off-Chain, Verknüpfung von On-Chain-Aktivitäten mit Off-Chain-Aktivitäten mithilfe von smart contracts und Überprüfung DLT 2023: 5. Distributed Ledger Technology Workshop, 25.–26. Mai 2023, Bologna, Italien $ [email protected] (L. Donno) https://lucadonnoh.github.io/ (L. Donno) 0000-0001-9221-3529 (L. Donno) © 2023 Das Urheberrecht für dieses Papier liegt bei den Autoren. Die Nutzung ist unter der Creative Commons-Lizenz Namensnennung 4.0 International (CC BY 4.0) gestattet. CEUR Werkstatt Verfahren http://ceur-ws.org ISSN 1613-0073 CEUR-Workshop-Beiträge (CEUR-WS.org)On-Chain, was außerhalb der Kette passiert. Allerdings sind sowohl Plasma- als auch Zustandskanäle begrenzt ihre Unterstützung allgemeiner smart contracts. Rollups sind blockchains (genannt Layer 2 oder L2), die ihre Blöcke auf einem anderen blockchain veröffentlichen. (Layer 1 oder L1) und erben daher dessen Konsens-, Datenverfügbarkeits- und Sicherheitseigenschaften. Sie, Im Gegensatz zu anderen Lösungen unterstützen sie beliebige Berechnungen. Rollups bestehen aus drei Hauptkomponenten: • Sequenzer: Knoten, die Rollup-Transaktionen von Benutzern empfangen und diese zu einem zusammenfassen Block, der an Layer 1 gesendet wird. Der Block besteht mindestens aus der Staatswurzel (z. B. einem Merkle root) und die Daten, die zur Rekonstruktion und Validierung des Status erforderlich sind. Der Layer 1 definiert die kanonischer blockchain des L2 durch Festlegen der Reihenfolge der veröffentlichten Daten. • Vollständige Rollup-Knoten: Knoten, die Rollup-Blöcke vom Layer abrufen, verarbeiten und validieren 1, indem Sie überprüfen, ob der Stamm korrekt ist. Wenn ein Block ungültige Transaktionen enthält, ist dies der Fall verworfen, was verhindert, dass Sequenzer gültige Blöcke erstellen, die ungültige enthalten Transaktionen. • Rollup-Light-Knoten: Knoten, die Rollup-Blöcke von Layer 1 erhalten, aber keine Berechnungen durchführen der neue Staat selbst. Mithilfe von Techniken überprüfen sie, ob die neue Statuswurzel gültig ist wie etwa Fehler- oder Gültigkeitsnachweise. Rollups erreichen Skalierbarkeit, indem sie die fortgeführten Anschaffungskosten der Transaktionen als Anzahl verringern der Nutzer steigt. Dies liegt daran, dass die Kosten für die Sicherstellung der Gültigkeit von blockchain sublinear ansteigen in Bezug auf die Kosten für die individuelle Überprüfung von Transaktionen. Rollups unterscheiden sich je nach der Mechanismus, mit dem sie die Gültigkeit der Transaktionsausführung an Light Nodes sicherstellen: in Optimistische Rollups werden durch ein Wirtschaftsmodell und durch Fehlernachweise gewährleistet, während die Gültigkeit gewährleistet ist Bei Rollups erfolgt die kryptografische Absicherung durch Gültigkeitsnachweise. Leichte Knoten können als smart contracts auf Layer 1 implementiert werden. Sie akzeptieren die Wurzel des neuen Zustand und überprüfen Gültigkeit oder Fehlernachweise: Diese Rollups werden daher Smart Contract genannt Rollups. Wenn Light Nodes unabhängig sind, werden sie Sovereign Rollups [6] genannt. Der Vorteil von Die Verwendung eines Smart Contract Rollups besteht darin, eine vertrauensminimierte Brücke zwischen beiden bauen zu können blockchains: Da die Gültigkeit des L2-Zustands auf L1 bewiesen ist, entsteht ein System von Transaktionen L2 bis L1 können implementiert werden, was Abhebungen ermöglicht. Der Nachteil besteht darin, dass die Kosten dafür Transaktionen hängen von den Kosten für die Überprüfung des Status auf L1 ab: wenn die Basisschicht gesättigt ist Bei anderen Aktivitäten steigen auch die Kosten für Transaktionen im Rollup. Die Daten- und Konsensebene bestimmt die Sicherheit des Systems Sie legen die Reihenfolge von Transaktionen fest, verhindern Angriffe und stellen Daten zum Nachweis des Staates zur Verfügung Gültigkeit. Papierbeitrag In diesem Artikel untersuchen wir Optimistic und Validity Rollups, zwei innovative Lösungen für das Skalierbarkeitstrilemma, mit Schwerpunkt auf bemerkenswerten Implementierungen wie Optimism Bedrock und StarkNet. Unsere Beiträge beinhalten einen umfassenden Vergleich dieser Lösungen, eine Analyse der Auszahlungszeiten und eine Diskussion eines möglichen Angriffs auf Optimism Grundgestein. Darüber hinaus berechnen wir deren Gasverdichtungsverhältnisse, liefern anwendungsspezifische Optimierungen und stellen die Vor- und Nachteile einer Abkehr vom Ethereum dar. Virtuelle Maschine (EVM).

Papierstruktur Der Aufsatz ist wie folgt aufgebaut. In Abschnitt 2 sind optimistische Rollups eingeführt durch die Analyse von Optimism Grundgestein. In Abschnitt 3 werden Validity Rollups vorgestellt Analyse von StarkNet. In Abschnitt 4 vergleichen wir die beiden Lösungen. Abschließend zeichnen wir in Abschnitt 5 einige Schlussfolgerungen.

giriiş

  1. Giriş Blockchain teknolojisi, devrim yaratma potansiyeli nedeniyle büyük ilgi gördü çeşitli endüstriler. Ancak çoğu blockchain'nin karşılaştığı gibi ölçeklenebilirlik büyük bir zorluk olmaya devam ediyor ölçeklenebilirlik, merkezi olmayan yönetim ve güvenlik arasında bir değiş-tokuş Ölçeklenebilirlik Üçlemi [1, 2]. blockchain verimini artırmak için önemsiz bir çözüm blok boyutunu artırmak için. Ethereum bağlamında bu, maksimum değerin artırılması anlamına gelir Bir bloğun tutabileceği gaz miktarı. Her tam düğümün her işlemin her işlemini doğrulaması gerektiğinden blok, verim arttıkça donanım gereksinimleri de artar ve bu da daha büyük bir ağın merkezileştirilmesi. Bitcoin ve Ethereum gibi bazı blockchain'ler, mimari merkezsizleşmeyi en üst düzeye çıkaracak şekilde tasarlarken, Binance Smart gibi diğerleri Chain ve Solana mümkün olduğu kadar hızlı ve ucuz olacak şekilde tasarlandı. Merkezi olmayan ağlar donanım gereksinimlerini azaltmak için blockchain verimini yapay olarak sınırlandırın ağa katılın. Yıllar boyunca Trilemma'ya devlet gibi bir çözüm bulmak için girişimlerde bulunuldu. [3] ve Plazma [4, 5] kanalları. Bu çözümler bazı aktiviteleri hareket ettirme özelliğine sahiptir. zincir dışı, smart contracts kullanarak zincir içi aktiviteyi zincir dışı aktiviteye bağlama ve doğrulama DLT 2023: 5. Dağıtılmış Defter Teknolojisi Çalıştayı, 25-26 Mayıs 2023, Bologna, İtalya $ [email protected] (L.Donno) https://lucadonnoh.github.io/ (L. Donno) 0000-0001-9221-3529 (L.Donno) © 2023 Bu makalenin telif hakkı yazarlarına aittir. Creative Commons Lisansı Atıf 4.0 Uluslararası (CC BY 4.0) kapsamında izin verilen kullanıma. CEUR Atölye Bildiriler http://ceur-ws.org ISSN1613-0073 CEUR Çalıştay Bildirileri (CEUR-WS.org)zincir üzerinde, zincir dışında neler olup bittiğini. Ancak hem Plazma hem de durum kanalları sınırlıdır. genel smart contracts'yi destekliyorlar. Toplamalar, bloklarını başka bir blockchain üzerinde yayınlayan blockchain'lerdir (Layer 2 veya L2 olarak adlandırılır) (Layer 1 veya L1) ve dolayısıyla fikir birliğini, veri kullanılabilirliğini ve güvenlik özelliklerini devralır. Onlar, diğer çözümlerden farklı olarak keyfi hesaplamayı destekler. Toplamaların üç ana bileşeni vardır: • Sıralayıcılar: kullanıcılardan Toplama işlemlerini alan ve bunları bir araya getiren düğümler Layer 1 adresine gönderilen blok. Blok en azından durum kökünden oluşur (örneğin bir Merkle kök) ve durumu yeniden oluşturmak ve doğrulamak için gereken veriler. Layer 1 şunu tanımlar: yayınlanan verilerin sırasını belirleyerek L2'nin kanonik blockchain. • Toplama tam düğümleri: Katmandan Toplama bloklarını alan, işleyen ve doğrulayan düğümler 1 kökün doğru olduğunu doğrulayarak. Bir blok geçersiz işlemler içeriyorsa o zaman atılır; bu, Sıralayıcıların geçersiz bloklar içeren geçerli bloklar oluşturmasını engeller işlemler. • Toplama hafif düğümleri: Toplama bloklarını Layer 1 adresinden alan ancak hesaplama yapmayan düğümler yeni devletin kendisi. Teknikleri kullanarak yeni durum kökünün geçerli olduğunu doğrularlar Arıza veya geçerlilik delilleri gibi. Toplamalar, işlem sayısı arttıkça amortize edilmiş maliyetleri azaltarak ölçeklenebilirlik elde eder. kullanıcı sayısı artıyor. Bunun nedeni, blockchain geçerliliğini sağlamanın maliyetinin alt doğrusal olarak artmasıdır İşlemlerin bireysel olarak doğrulanmasının maliyeti ile ilgili olarak. Toplamalar şunlara göre farklılık gösterir: Hafif düğümlerde işlem yürütmenin geçerliliğini sağladıkları mekanizma: İyimser Toplamalar, Ekonomik bir model ve hata kanıtları ile sağlanırken, Geçerlilik Toplamalar, geçerlilik kanıtları kullanılarak kriptografik olarak sağlanır. Hafif düğümler Layer 1 üzerinde smart contracts olarak uygulanabilir. Kökünü kabul ediyorlar yeni durum ve geçerliliği veya hata kanıtlarını doğrulayın: bu Toplama bu nedenle Akıllı Sözleşme olarak adlandırılır Toplamalar. Işık düğümleri bağımsızsa bunlara Egemen Toplamalar [6] denir. Avantajı Akıllı Sözleşme Toplamasını kullanmak, ikisi arasında güveni en aza indirilmiş bir köprü kurabilmektir blockchains: L2 durumunun geçerliliği L1'e kanıtlandığından, bir işlemler sistemi L2'den L1'e kadar para çekme işlemlerine izin vererek uygulanabilir. Dezavantajı ise maliyetinin yüksek olmasıdır. işlemler L1'deki durumu doğrulamanın maliyetine bağlıdır: temel katman şu şekilde doyurulursa: diğer faaliyetlerde, Toplamadaki işlemlerin maliyeti de artar. Veri ve fikir birliği katmanları sistemin güvenliğini belirleyen katmanlardır. işlemlerin sırasını tanımlar, saldırıları önler ve durumu kanıtlamak için verileri kullanılabilir hale getirir geçerlilik. Bildiri katkısı Bu yazıda, iki yenilikçi olan İyimserlik ve Geçerlilik Toplamalarını inceliyoruz. Optimism Bedrock ve StarkNet gibi dikkate değer uygulamalara odaklanarak Ölçeklenebilirlik Üçlemine yönelik çözümler. Katkılarımız bunların kapsamlı bir karşılaştırmasını içermektedir. çözümler, geri çekilme sürelerinin analizi ve Optimism adresine olası bir saldırı hakkında tartışma Ana kaya. Ayrıca gaz sıkıştırma oranlarını hesaplıyor, uygulamaya özel optimizasyonlar sağlıyor ve Ethereum'den uzaklaşmanın avantaj ve dezavantajlarını sunuyoruz. Sanal Makine (EVM).

Kağıt yapısı Makale şu şekilde düzenlenmiştir. Bölüm 2'de İyimser Toplamalar Optimism Ana Kaya analiz edilerek tanıtıldı. Bölüm 3'te Geçerlilik Toplamaları şu şekilde tanıtılmaktadır: StarkNet analiz ediliyor. Bölüm 4'te iki çözümü karşılaştırıyoruz. Son olarak 5. bölümde çizim yapıyoruz bazı sonuçlar.

Optimistische Rollups

  1. Optimistische Rollups Die Idee, die Ausgabe von Blöcken optimistisch zu akzeptieren, ohne ihre Ausführung zu überprüfen, ist bereits im Whitepaper Bitcoin [7] enthalten, in dem es um Lichtknoten geht. Diese Knoten folgen nur die Header-Kette durch Überprüfung der Konsensregel, wodurch sie anfällig für die Annahme von Blöcken werden enthält ungültige Transaktionen im Falle eines 51 %-Angriffs. Nakamoto schlägt vor, dieses Problem zu lösen Problem, indem ein „Warnsystem“ verwendet wird, um Light-Knoten zu warnen, dass ein Block ungültige Transaktionen enthält. Dieser Mechanismus wurde erstmals von Al-Bassam, Sonnino und Buterin [8] in dem ein Fehler implementiert wurde Es wird ein Proofsystem verwendet, das auf den Fehlerkorrekturcodes [9] basiert. Um die Erstellung von zu ermöglichen Für Fehlernachweise ist es erforderlich, dass die Daten aller Blöcke, einschließlich ungültiger Blöcke, verfügbar sind das Netzwerk: Dies ist das Datenverfügbarkeitsproblem, das mithilfe probabilistischer Daten gelöst wird Probenahmemechanismus. Das erste Optimistic Rollup-Design wurde von John Adler und vorgestellt Mikerah Quintyne-Collins im Jahr 2019 [10], in dem Blöcke auf einem anderen blockchain veröffentlicht werden Das definiert ihren Konsens über die Bestellung. 2.1. Optimism Grundgestein Bedrock [11] ist die neueste Version von Optimism, einem Smart Contract Rollup. Die vorherige Version, Für die Optimistic Virtual Machine (OVM) war ein Ad-hoc-Compiler erforderlich, um Solidity in sie zu kompilieren Eigener Bytecode: Im Gegensatz dazu entspricht Bedrock in Bezug auf die Ausführungs-Engine vollständig dem EVM folgt der Ethereum Yellow Paper-Spezifikation [12]. 2.1.1. Einlagen Benutzer können Transaktionen über einen Vertrag auf Ethereum, dem Optimism-Portal, einzahlen, indem sie die Funktion „depositTransaction“ aufrufen. Wenn eine Transaktion ausgeführt wird, a Das TransactionDeposited-Ereignis wird ausgegeben, auf dessen Verarbeitung jeder Knoten im Rollup wartet Einlagen. Eine hinterlegte Transaktion ist eine L2-Transaktion, die von L1 abgeleitet ist. Wenn der Anrufer der Funktion ist ein Vertrag, die Adresse wird transformiert, indem ihr ein konstanter Wert hinzugefügt wird: Dies verhindert Angriffe, bei denen ein Vertrag auf L1 dieselbe Adresse wie ein Vertrag auf L2, aber einen anderen Code hat. Die Aufnahme einer hinterlegten Transaktion auf L2 wird durch die Spezifikation innerhalb einer Sequenzierung sichergestellt Fenster. Hinterlegte Transaktionen sind ein neuer EIP-2718-kompatibler Transaktionstyp [13] mit dem Präfix 0x7E. wobei die RLP-codierten Felder sind: • bytes32 sourceHash: hash, der die Quelle der Transaktion eindeutig identifiziert. • Adresse von: die Adresse des Absenders. • Adresse an: die Empfängeradresse oder die Nulladresse, wenn es sich bei der hinterlegten Transaktion um eine handelt Vertragserstellung.• uint256 mint: der Wert, der auf L2 erstellt werden soll. • uint256-Wert: der an den Empfänger zu sendende Wert. • Byte-Daten: die Eingabedaten. • Bytes gasLimit: das Gaslimit der Transaktion. Der sourceHash wird als keccak256 hash des L1-Blocks hash und des L1-Protokolls berechnet Index, der ein Ereignis in einem Block eindeutig identifiziert. Da hinterlegte Transaktionen auf L1 initiiert, aber auf L2 ausgeführt werden, benötigt das System eine Mechanismus, um L1 für das auf L2 ausgegebene Gas zu bezahlen. Eine Lösung besteht darin, ETH über das Portal zu senden. Dies bedeutet jedoch, dass jeder Anrufer (auch indirekte Anrufer) als zahlbar gekennzeichnet werden muss, und das ist auch der Fall ist bei vielen bestehenden Projekten nicht möglich. Die Alternative besteht darin, das entsprechende Gas auf L1 zu verbrennen. Das der hinterlegten Transaktion zugewiesene Gas wird als garantiertes Gas bezeichnet. Der L2-Gaspreis an L1 wird nicht automatisch synchronisiert, sondern mithilfe eines Mechanismus ähnlich EIP-1559 geschätzt [14]. Die maximale garantierte Gasmenge pro Ethereum-Block beträgt 8 Millionen, mit einem Ziel von 2 Millionen. Die Menge 𝑐an ETH, die zum Bezahlen von Gas auf L2 erforderlich ist, beträgt 𝑐= 𝑔𝑏L2, wobei 𝑏L2 ist Grundgebühr auf L2. Der Vertrag auf L1 verbrennt eine Gasmenge, die 𝑐/𝑏L2 entspricht. Das ausgegebene Gas zum Anrufen EinzahlungTransaktion wird auf L2 erstattet: Wenn dieser Betrag größer ist als das garantierte Gas, Es wird kein Gas verbrannt. Die erste Transaktion eines rollup-Blocks ist eine hinterlegte Transaktion mit L1-Attributen, die zur Registrierung verwendet wird Stellen Sie auf einem L2 die Attribute von Ethereum-Blöcken vorab bereit. Die Attribute, die das Predeploy bereitstellt Zugriff auf sind die Blocknummer, der Zeitstempel, die Grundgebühr, der Block hash und die Reihenfolge Zahl, die die Blocknummer von L2 relativ zum zugehörigen L1-Block (auch Epoche genannt) ist; Diese Zahl wird zurückgesetzt, wenn eine neue Epoche beginnt. 2.1.2. Sequenzierung Die Rollup-Knoten leiten die Kette Optimism vollständig von Ethereum ab. Diese Kette wird verlängert Jedes Mal, wenn neue Transaktionen auf L1 veröffentlicht werden, werden die Blöcke jedes Mal neu organisiert Ethereum Blöcke werden neu organisiert. Der Rollup blockchain ist in Epochen unterteilt. Für jeden 𝑛 Blocknummer Ethereum, es gibt eine entsprechende 𝑛Epoche. Jede Epoche enthält mindestens eine Block, und jeder Block in einer Epoche enthält eine hinterlegte Transaktion mit L1-Attributen. Der erste Block in einer Epoche enthält alle über das Portal hinterlegten Transaktionen. Layer 2-Blöcke können ebenfalls vorhanden sein enthielt sequenzierte Transaktionen, d. h. Transaktionen, die direkt an den Sequencer gesendet wurden. Der Sequencer akzeptiert Transaktionen von Benutzern und erstellt Blöcke. Für jeden Block wird konstruiert ein Stapel, der am Ethereum veröffentlicht werden soll. Mehrere Chargen können komprimiert veröffentlicht werden, den Namenskanal übernehmen. Ein Kanal kann in mehrere Frames unterteilt werden, falls er zu groß ist eine einzelne Transaktion. Ein Kanal wird als Komprimierung mit ZLIB [15] von rlp-encoded definiert Chargen. Die Felder eines Stapels sind die Epochennummer, die Epoche hash, die übergeordnete hash, die Zeitstempel und die Transaktionsliste. Ein durch eine Epoche identifiziertes Sequenzierungsfenster enthält eine feste Anzahl aufeinanderfolgender L1 Blöcke, die ein Ableitungsschritt als Eingabe verwendet, um eine variable Anzahl von L2-Blöcken zu erstellen. Für Epoche 𝑛, das Sequenzierungsfenster 𝑛enthält die Blöcke [𝑛, 𝑛+𝑤). Dies impliziert, dass die Bestellung Die Anzahl der L2-Transaktionen und -Blöcke innerhalb eines Sequenzierungsfensters wird erst am Ende des Fensters festgelegt. Eine rollup-Transaktion wird als sicher bezeichnet, wenn der Batch, der sie enthält, auf L1 bestätigt wurde. Rahmenwerden aus L1-Blöcken gelesen, um Stapel zu rekonstruieren. Die aktuelle Implementierung erlaubt dies nicht Die Dekomprimierung eines Kanals beginnt, bis alle entsprechenden Frames empfangen wurden. Ungültig Chargen werden ignoriert. Aus den Batches werden einzelne Blocktransaktionen gewonnen Wird von der Ausführungs-Engine verwendet, um Statusübergänge anzuwenden und den Rollup-Status zu erhalten. 2.1.3. Auszahlungen Um Abhebungen zu verarbeiten, ist ein L2-zu-L1-Nachrichtensystem implementiert. Ethereum muss den Status von L2 kennen, um Abhebungen zu akzeptieren, und dies geschieht durch Veröffentlichung auf der L2-Ausgabe Oracle smart contract auf L1 die Statuswurzel jedes L2-Blocks. Diese Wurzeln werden optimistisch als gültig (oder abgeschlossen) akzeptiert, wenn währenddessen kein Fehlernachweis durchgeführt wird Streitzeitraum. Nur als Antragsteller gekennzeichnete Adressen können Ausgabe-Roots veröffentlichen. Die Gültigkeit von Output-Wurzeln wird dadurch angeregt, dass Antragsteller einen Einsatz hinterlegen, der gekürzt wird, wenn sie es tun hat nachweislich eine ungültige Wurzel vorgeschlagen. Transaktionen werden durch den Aufruf der Funktion initiiert initialisieren Sie Withdrawal bei einer Vorbereitstellung auf L2 und finalisieren Sie es dann auf L1 durch Aufrufen der Funktion finalizeWithdrawalTransaction auf dem zuvor erwähnten Optimism-Portal. Die dem L2-Block entsprechende Ausgabewurzel wird vom L2-Ausgabe-Oracle abgerufen. es ist überprüft, dass es abgeschlossen ist, d. h. dass die Streitfrist abgelaufen ist; Es wird überprüft, ob die Ausgabe erfolgt Root Proof entspricht dem Oracle Proof; Es wird überprüft, dass der hash der Auszahlung enthalten ist darin unter Verwendung eines Auszahlungsnachweises; dass der Rückzug noch nicht abgeschlossen ist; und dann die Der Anruf an die Zieladresse wird mit dem angegebenen Gaslimit, der angegebenen Ethermenge und den angegebenen Daten ausgeführt. 2.1.4. Cannon: das fehlersichere System Wenn ein Rollup Full Node dies durch die lokale Ausführung von Batches und hinterlegten Transaktionen erkennt Wenn der Status Layer 2 nicht mit dem Statusstamm übereinstimmt, der von einem Antragsteller in der Kette veröffentlicht wurde, kann er ausgeführt werden ein Fehlernachweis auf L1, um zu beweisen, dass das Ergebnis des Blockübergangs falsch ist. Aufgrund der Aufgrund des Overheads ist die Verarbeitung eines gesamten Rollup-Blocks auf L1 zu teuer. Die Lösung umgesetzt von Bedrock besteht darin, in der Kette nur die erste Anweisung der Meinungsverschiedenheit von Minigeth auszuführen, Kompilieren in eine MIPS-Architektur, die auf einem On-Chain-Interpreter ausgeführt und veröffentlicht wird auf L1. Minigeth ist eine vereinfachte Version von Geth 1, in der Konsens, RPC und Datenbank enthalten sind wurden entfernt. Um die erste Anweisung der Meinungsverschiedenheit zu finden, wird eine interaktive binäre Suche zwischen durchgeführt derjenige, der den Fehlernachweis initiiert hat und derjenige, der den Ausgabestamm veröffentlicht hat. Wenn der Beweis Beginnt, veröffentlichen beide Parteien die Wurzel des Speicherstatus MIPS in der Mitte der Ausführung von der Block im Challenge-Vertrag: Wenn hash übereinstimmt, bedeutet dies, dass sich beide Parteien darauf einigen Die erste Hälfte der Ausführung veröffentlicht somit die Wurzel der Hälfte der zweiten Hälfte, andernfalls die Hälfte der ersten Hälfte veröffentlicht wird und so weiter. Dadurch wird die erste Anweisung zur Meinungsverschiedenheit erreicht in einer logarithmischen Anzahl von Schritten im Vergleich zur ursprünglichen Ausführung. Wenn einer der beiden stehen bleibt Durch die Interaktion gewinnt am Ende des Streitzeitraums automatisch der andere Teilnehmer. Um die Anweisung zu verarbeiten, benötigt der Interpreter MIPS Zugriff auf seinen Speicher: da der Root vorhanden ist Sind die notwendigen Speicherzellen vorhanden, können sie durch den Nachweis ihrer Einbindung veröffentlicht werden. Zugreifen B. den Status von EVM, wird das Preimage-Orakel verwendet: Angesichts des hash eines Blocks wird es zurückgegeben 1https://geth.ethereum.org/docs

der Blockheader, aus dem man den hash des vorherigen Blocks abrufen und in den zurückkehren kann Kette, oder rufen Sie den hash des Status und der Protokolle ab, von denen man das Vorbild erhalten kann. Der oracle wird von minigeth implementiert und ersetzt die Datenbank. Es werden Anfragen an andere Knoten gestellt Holen Sie sich die Vorbilder.

İyimser Toplamalar

  1. İyimser Toplamalar Yürütülmelerini doğrulamadan blokların çıktılarını iyimser bir şekilde kabul etme fikri ışık düğümlerini tartışan Bitcoin teknik incelemesi [7]'de zaten mevcuttur. Bu düğümler yalnızca takip eder konsensüs kuralını doğrulayarak başlık zincirini blokları kabul etmeye karşı savunmasız hale getirir %51 saldırısı durumunda geçersiz işlemler içeren. Nakamoto bunu çözmeyi öneriyor Light node'ları bir bloğun geçersiz işlemler içerdiği konusunda uyarmak için bir "uyarı" sistemi kullanarak sorunu çözebilirsiniz. Bu mekanizma ilk olarak Al-Bassam, Sonnino ve Buterin [8] tarafından uygulandı. [9] hata düzeltme kodlarına dayalı kanıt sistemi kullanılır. Oluşturulmasını sağlamak için Hata kanıtlarının sağlanması için geçersiz bloklar da dahil olmak üzere tüm bloklardaki verilerin mevcut olması gerekir. ağ: bu, olasılıksal veriler kullanılarak çözülen Veri Kullanılabilirliği Sorunudur örnekleme mekanizması. İlk İyimser Toplama tasarımı John Adler tarafından sunuldu ve Mikerah Quintyne-Collins, 2019 [10]'de, bloklar başka bir blockchain'de yayınlanıyor bu onların sıralama konusundaki fikir birliğini tanımlar. 2.1. Optimism Ana kaya Bedrock [11], bir Akıllı Sözleşme Toplama olan Optimism'nin en son sürümüdür. Önceki versiyon, Optimistic Virtual Machine (OVM), Solidity'yi kendi içinde derlemek için geçici bir derleyiciye ihtiyaç duyuyordu. kendi bayt kodu: aksine, Bedrock yürütme motoru açısından EVM ile tamamen eşdeğerdir Ethereum Sarı Kağıt spesifikasyonuna [12] uygundur. 2.1.1. Mevduat Kullanıcılar, Ethereum Portalı üzerindeki bir sözleşme aracılığıyla, mevduatTransaction işlevini çağırarak para yatırabilirler. Bir işlem yürütüldüğünde, bir Toplamadaki her düğümün işlemek için dinlediği TransactionDeposited olayı yayılır Mevduat. Yatırılan işlem, L1'den türetilen bir L2 işlemidir. Eğer arayan kişi işlev bir sözleşmedir, adres ona sabit bir değer eklenerek dönüştürülür: bu, L1'deki bir sözleşmenin L2'deki sözleşmeyle aynı adrese ancak farklı koda sahip olduğu saldırılar. Yatırılan bir işlemin L2'ye dahil edilmesi, bir sıralama içindeki spesifikasyonla sağlanır. pencere. Yatırılan işlemler, 0x7E ön ekine sahip yeni bir EIP-2718 uyumlu işlem türü [13]'dir, rlp kodlu alanlar burada: • bytes32 sourceHash: hash, işlemin kaynağını benzersiz şekilde tanımlar. • gelen adres: gönderenin adresi. • adres: alıcının adresi veya yatırılan işlem bir alıcı adresi ise sıfır adres sözleşme oluşturma.• uint256 mint: L2'de oluşturulacak değer. • uint256 değeri: alıcıya gönderilecek değer. • bayt verileri: giriş verileri. • bayt gasLimit: işlemin gas limiti. SourceHash, L1 bloğunun hash keccak256 hash ve L1 günlüğü olarak hesaplanır. Bir bloktaki bir olayı benzersiz şekilde tanımlayan indeks. Yatırılan işlemler L1'de başlatılıp L2'de yürütüldüğünden, sistemin bir L2'de harcanan gaz için L1'e ödeme yapma mekanizması. Çözümlerden biri ETH'yi Portal aracılığıyla göndermektir. ancak bu, her arayanın (dolaylı arayanlar bile) ödenecek olarak işaretlenmesi gerektiği anlamına gelir ve bu mevcut birçok proje için mümkün değildir. Alternatif, karşılık gelen gazı L1'de yakmaktır. Yatırılan işleme tahsis edilen gaza garantili gaz denir. L2 gaz fiyatı L1 otomatik olarak senkronize edilmez ancak EIP-1559'a benzer bir mekanizma kullanılarak tahmin edilir [14]. Ethereum blok başına garanti edilen maksimum gaz miktarı 8 milyondur ve hedef 2 milyon. L2'de gaz için ödeme yapmak için gereken ETH miktarı 𝑐= 𝑔𝑏L2'dir; burada 𝑏L2, L2'de taban ücreti. L1'deki kontrat 𝑐/𝑏L2'ye eşit miktarda gaz yakar. Aramak için harcanan gaz mevduatİşlemi L2'de geri ödenir: eğer bu miktar garanti edilen gazdan fazlaysa, gaz yakılmaz. Bir rollup bloğunun ilk işlemi, kaydolmak için kullanılan, L1 özniteliklerinde yatırılan bir işlemdir L2'de Ethereum bloklarının niteliklerini önceden konuşlandırın. Ön dağıtımın sağladığı özellikler erişim blok numarası, zaman damgası, taban ücreti, hash bloğu ve dizidir ilgili L1 bloğuna (aynı zamanda dönem olarak da adlandırılır) göre L2'nin blok numarası olan sayı; yeni bir dönem başladığında bu sayı sıfırlanır. 2.1.2. Sıralama Toplama düğümleri Optimism zincirini tamamen Ethereum'den türetir. Bu zincir uzatılır L1'de her yeni işlem yayınlandığında ve blokları her seferinde yeniden düzenlenir Ethereum bloklar yeniden düzenlendi. Toplama blockchain dönemlere bölünmüştür. Her biri için Ethereum blok numarasına karşılık gelen bir 𝑛epoch var. Her çağ en az bir tane içerir bloktur ve bir çağdaki her blok, L1 özniteliklerinde yatırılan işlemi içerir. İlk blok bir dönemde Portal aracılığıyla yatırılan tüm işlemleri içerir. Layer 2 bloklar da olabilir sıralı işlemleri, yani doğrudan Sıralayıcıya gönderilen işlemleri içeriyordu. Sıralayıcı, kullanıcılardan gelen işlemleri kabul eder ve bloklar oluşturur. Her blok için oluşturur Ethereum tarihinde yayınlanacak bir grup. Birkaç parti sıkıştırılmış bir şekilde yayınlanabilir, kanal adını alıyor. Çok büyük olması durumunda bir kanal birkaç kareye bölünebilir. tek bir işlem. Kanal, rlp kodlu ZLIB [15] ile sıkıştırma olarak tanımlanır gruplar. Bir grubun alanları dönem numarası, dönem hash, üst öğe hash, zaman damgası ve işlem listesi. Bir dönem tarafından tanımlanan bir sıralama penceresi, ardışık L1'in sabit bir 𝑤 sayısını içerir Değişken sayıda L2 bloğu oluşturmak için bir türetme adımının girdi olarak aldığı bloklar. için çağ 𝑛, sıralama penceresi 𝑛 blokları içerir [𝑛, 𝑛+𝑤). Bu, siparişin verildiği anlamına gelir Bir sıralama penceresi içindeki L2 işlemlerinin ve bloklarının sayısı, pencere bitene kadar sabitlenmez. Bir rollup işlemi, onu içeren parti L1'de onaylandıysa güvenli olarak adlandırılır. ÇerçevelerGrupları yeniden oluşturmak için L1 bloklarından okunur. Mevcut uygulama buna izin vermiyor karşılık gelen tüm çerçeveler alınana kadar kanalın sıkıştırmasını açma işlemi başlatılır. Geçersiz gruplar göz ardı edilir. Partilerden bireysel blok işlemleri elde edilir. yürütme motoru tarafından durum geçişlerini uygulamak ve Toplama durumunu elde etmek için kullanılır. 2.1.3. Para Çekme Para çekme işlemlerini gerçekleştirmek için L2'den L1'e bir mesajlaşma sistemi uygulanır. Ethereum Para çekme işlemlerini kabul etmek için L2'nin durumunu bilmesi gerekir ve bu, yayınlanarak yapılır L2 Çıkışında Oracle smart contract L1'de her L2 bloğunun durum kökü. Bu kökler sırasında herhangi bir arıza tespiti yapılmazsa iyimser bir şekilde geçerli (veya kesinleşmiş) olarak kabul edilir. anlaşmazlık dönemi. Yalnızca Teklif Veren olarak belirlenen adresler çıktı köklerini yayınlayabilir. Geçerlilik Çıktı köklerinin oranı, Teklif Sahiplerinin, eğer yatırılırlarsa kesilecek bir hisse yatırmaları sağlanarak teşvik edilir. geçersiz bir kök önerdiği gösterilmiştir. İşlemler, işlev çağrılarak başlatılır L2'de bir ön konuşlandırmada Withdrawal'ı başlatın ve ardından işlevi çağırarak L1'de sonlandırın Daha önce bahsedilen Optimism Portalında finalizeWithdrawalTransaction. L2 bloğuna karşılık gelen çıkış kökü, L2 Çıkış Oracle'ından elde edilir; öyle kesinleştiğinin, yani anlaşmazlık süresinin geçtiğinin doğrulanması; Çıkışın doğrulandığı doğrulandı Kök Kanıtı, Oracle Kanıtı ile eşleşir; Para çekme işleminin hash numarasının dahil edildiği doğrulandı bir Para Çekme Kanıtı kullanarak; geri çekilmenin henüz tamamlanmadığını; ve sonra Belirlenen gas limiti, Ether miktarı ve verilerle hedef adrese çağrı gerçekleştirilir. 2.1.4. Cannon: hatasız sistem Bir Toplama Tam Düğümü, toplu işlemleri ve yatırılan işlemleri yerel olarak yürüterek şunları keşfederse: Layer 2 durumu, Teklif Sahibi tarafından zincir üzerinde yayınlanan durum köküyle eşleşmiyor, yürütülebilir Blok geçişi sonucunun yanlış olduğunu kanıtlamak için L1'de bir arıza kanıtı. Çünkü ek yük, L1'de bir Toplama bloğunun tamamını işlemek çok pahalıdır. Uygulanan çözüm Bedrock tarafından zincir üzerinde minigeth anlaşmazlığının yalnızca ilk talimatını yürütmek, bunu zincir üstü bir yorumlayıcıda yürütülen ve yayınlanan bir MIPS mimarisine derlemek L1'de. minigeth, geth 1'in basitleştirilmiş bir versiyonudur; burada fikir birliği, RPC ve veritabanı bulunur. kaldırıldı. Anlaşmazlığın ilk talimatını bulmak için etkileşimli bir ikili arama gerçekleştirilir. Arıza kanıtını başlatan ve çıkış kökünü yayınlayan kişi. Kanıt ne zaman başladığında, her iki taraf da MIPS bellek durumunun kökünü yürütme işleminin yarısında yayınlar. Challenge sözleşmesindeki blok: hash eşleşirse bu, her iki tarafın da bu konuda anlaştığı anlamına gelir Uygulamanın ilk yarısı böylece ikinci yarının yarısının kökünü yayınlar, aksi takdirde yarısı ilk yarının yayınlanması vb. Bunu yapmak, ilk anlaşmazlık talimatını yerine getirir orijinal yürütmeye kıyasla logaritmik sayıda adımla. Eğer iki duraktan biri etkileşimli olarak, anlaşmazlık süresinin sonunda diğer katılımcı otomatik olarak kazanır. Talimatı işlemek için MIPS yorumlayıcısının belleğine erişmesi gerekir: kök olduğundan mevcut olması durumunda gerekli hafıza hücrelerinin dahil olduğu kanıtlanarak yayınlanabilecektir. Erişmek için EVM durumu, Preimage Oracle'dan yararlanılır: döndürdüğü bloğun hash değeri verildiğinde 1https://geth.ethereum.org/docs

önceki bloğun hash numarasını alıp geri dönebileceğiniz blok başlığı zincirini kullanın veya ön görüntünün alınabileceği durumun ve günlüklerin hash değerini alın. oracle minigeth tarafından uygulanır ve veritabanının yerini alır. Diğer düğümlere sorgular yapılır ön görüntüleri elde edin.

Gültigkeits-Rollups

  1. Gültigkeits-Rollups Das Ziel eines Validity Rollups besteht darin, die Gültigkeit des Zustandsübergangs kryptografisch nachzuweisen Angesichts der Abfolge von Transaktionen mit einem kurzen Beweis, der sublinear verglichen werden kann zum Zeitpunkt der ursprünglichen Berechnungen. Solche Zertifikate werden als Computational Integrity Proofs bezeichnet und werden praktisch mit SNARKs (Succint Non-interactive ARgument of Knowledge) umgesetzt, die Arithmetik verwenden Schaltkreise als ihr Rechenmodell. Verschiedene SNARK-Implementierungen unterscheiden sich in der Prüfzeit, Verifizierungszeit, die Notwendigkeit eines vertrauenswürdigen Aufbaus und Quantenwiderstand [16, 17]. STARKs (Skalierbar Transparentes ARgument des Wissens) [18] sind eine Art von SNARKs, für die kein vertrauenswürdiges Dokument erforderlich ist aufgebaut und sind quantenresistent, geben aber beim Nachweis und der Verifizierung etwas Effizienz ein im Vergleich zu anderen Lösungen. 3.1. StarkNet StarkNet ist ein von StarkWare entwickeltes Smart Contract Validity Rollup, das STARK verwendet Proof-System, um seinen Status auf Ethereum zu validieren. Um die Konstruktion von Gültigkeitsnachweisen zu erleichtern, a Es wird eine andere virtuelle Maschine als EVM verwendet, deren Hochsprache Cairo ist. 3.1.1. Einlagen Benutzer können Transaktionen über einen Vertrag auf Ethereum einzahlen, indem sie sendMessageToL2 aufrufen Funktion. Die Nachricht wird aufgezeichnet, indem ihr hash berechnet und ein Zähler erhöht wird. Sequenzer Warten Sie auf das LogMessageToL2-Ereignis und kodieren Sie die Informationen in einer StarkNet-Transaktion Das ruft eine Funktion eines Vertrags auf, der über den l1_handler-Dekorator verfügt. Am Ende der Ausführung, Wenn der Nachweis des Zustandsübergangs erbracht wird, wird der Verbrauch der Nachricht daran angehängt und es wird gelöscht, indem sein Zähler verringert wird. Die Einbeziehung hinterlegter Transaktionen ist in der StarkNet-Spezifikation nicht erforderlich, also ein Gas Der Markt ist erforderlich, um Sequenzern einen Anreiz zu geben, sie auf L2 zu veröffentlichen. In der aktuellen Version, weil Der Sequencer wird von StarkWare zentralisiert und verwaltet die Kosten der hinterlegten Transaktionen wird nur durch die Kosten für die Ausführung der Anzahlung bestimmt. Diese Kosten werden durch die Überweisung der ETH an bezahlt sendMessageToL2. Diese Ether bleiben auf L1 gesperrt und werden weiter an den Sequenzer übertragen L1, wenn die hinterlegte Transaktion in einen Zustandsübergang einbezogen wird. Der Betrag der gesendeten ETH, falls Die eingezahlte Transaktion ist im Preis enthalten und wird vollständig ausgegeben, unabhängig von der Menge des verbrauchten Gases auf L2. StarkNet verfügt nicht über ein System, das L1-Blockattribute automatisch verfügbar macht. Alternativ ist Fossil ein von Oiler Network 2 entwickeltes Protokoll, das bei gegebenem hash von a Block, alle Informationen, die von Ethereum durch Veröffentlichung von Vorbildern erhalten werden. 2https://www.oiler.network/3.1.2. Sequenzierung Der aktuelle Stand von StarkNet kann vollständig von Ethereum abgeleitet werden. Irgendein Zustandsunterschied zwischen Übergängen werden auf L1 als Anrufdaten veröffentlicht. Unterschiede werden für jeden Vertrag veröffentlicht und werden als uint256[] mit der folgenden Kodierung gespeichert: • Nummer des Feldes bezüglich Vertragsbereitstellungen. • Für jeden veröffentlichten Vertrag: – Die Adresse des veröffentlichten Vertrags. – Der hash des veröffentlichten Vertrags. – Die Anzahl der Argumente des Vertragskonstruktors. – Die Liste der Konstruktorargumente • Nummer des Vertrags, dessen Speicherung geändert wurde. • Für jeden Vertrag, der geändert wurde: – Die Adresse des geänderten Vertrags. – Die Anzahl der Speicheraktualisierungen. – Die Schlüssel-Wert-Paare der Speicheradressen mit den neuen Werten. Die Zustandsunterschiede werden der Reihe nach veröffentlicht, daher reicht es aus, sie nacheinander zu lesen den Staat neu aufbauen. 3.1.3. Auszahlungen Um eine Nachricht von L2 nach L1 zu senden, wird der Systemaufruf send_message_to_L1 verwendet. Die Botschaft ist auf L1 veröffentlicht, indem der Zähler hash zusammen mit dem Beweis erhöht und durch Aufrufen von abgeschlossen wird Funktion „consumeMessageFromL2“ auf dem StarkGate smart contract auf L1, die dekrementiert der Zähler. Jeder kann eine Auszahlung abschließen. 3.1.4. Gültigkeitsnachweise Die Cairo Virtual Machine [19] soll die Erstellung von STARK-Beweisen erleichtern. Die Kairo-Sprache ermöglicht die Beschreibung der Berechnung mit einer High-Level-Programmierung Sprache und nicht direkt als Schaltkreis. Dies wird durch ein System polynomialer Gleichungen erreicht 3 stellt eine einzelne Berechnung dar: den FDE-Zyklus einer von Neumann-Architektur. Die Nummer Die Anzahl der Einschränkungen ist somit fest und unabhängig von der Art der Berechnung, sodass nur eine zulässig ist Prüfprogramm für jedes Programm, dessen Berechnung bewiesen werden muss. StarkNet fasst mehrere Transaktionen mithilfe eines gemeinsamen Prüfers zu einem einzigen STARK-Beweis zusammen mit dem Namen SHARP. Die Nachweise werden an smart contract am Ethereum gesendet, der ihre Gültigkeit überprüft und aktualisiert die Merkle-Wurzel, die dem neuen Status entspricht. Die sublinearen Kosten für die Überprüfung von a Durch den Gültigkeitsnachweis können die Kosten über mehrere Transaktionen amortisiert werden. 3Algebraische Zwischendarstellung (AIR) genannt

Geçerlilik Toplamaları

  1. Geçerlilik Toplamaları Geçerlilik Toplamasının amacı, durum geçişinin geçerliliğini kriptografik olarak kanıtlamaktır. alt doğrusal olarak karşılaştırılarak doğrulanabilen kısa bir kanıtla işlem sırası verildiğinde orijinal hesaplamaların yapıldığı zamana kadar. Bu tür sertifikalara hesaplama bütünlüğü kanıtları denir ve pratik olarak aritmetik kullanan SNARK'lar (Succint Non-interactive Argument of Knowledge) ile uygulanır. hesaplamalı modeli olarak devreler. Farklı SNARK uygulamaları kanıtlama süresi açısından farklılık gösterir, doğrulama süresi, güvenilir bir kurulum ihtiyacı ve kuantum direnci [16, 17]. STARK'lar (Ölçeklenebilir Şeffaf Bilgi Argümanı) [18], güvenilir bir ağ gerektirmeyen bir SNARK türüdür. kanıtlama ve doğrulamada verimlilikten biraz ödün verirken kuantum dirençlidir diğer çözümlerle karşılaştırıldığında. 3.1. StarkNet StarkNet, StarkWare tarafından geliştirilen ve STARK kullanan bir Akıllı Sözleşme Geçerlilik Toplamasıdır durumunu Ethereum olarak doğrulamak için kanıt sistemi. Geçerlilik kanıtlarının oluşturulmasını kolaylaştırmak için, Üst düzey dili Kahire olan EVM'den farklı bir sanal makine kullanılıyor. 3.1.1. Mevduat Kullanıcılar, sendMessageToL2'yi arayarak Ethereum adresindeki bir sözleşme aracılığıyla işlem yatırabilirler. işlev. Mesaj, hash değeri hesaplanarak ve bir sayaç artırılarak kaydedilir. Sıralayıcılar LogMessageToL2 olayını dinleyin ve bilgileri bir StarkNet işleminde kodlayın bu, l1_handler dekoratörüne sahip bir sözleşmenin işlevini çağırır. İcranın sonunda, Durum geçişinin kanıtı üretildiğinde, mesajın tüketimi buna eklenir ve sayacı azaltılarak silinir. Yatırılan işlemlerin dahil edilmesi StarkNet spesifikasyonu tarafından gerekli değildir, dolayısıyla bir gaz Sıralayıcıları L2'de yayınlamaya teşvik etmek için pazara ihtiyaç var. Mevcut sürümde, çünkü Sıralayıcı, yatırılan işlemlerin maliyeti olan StarkWare tarafından merkezileştirilir ve yönetilir yalnızca depozito işleminin maliyetine göre belirlenir. Bu maliyet ETH gönderilerek ödenir. sendMessageToL2. Bu Eterler L1'de kilitli kalır ve Sıralayıcıya aktarılır. L1, yatırılan işlem bir durum geçişine dahil edildiğinde. Gönderilen ETH miktarı yatırılan işlem dahildir, tüketilen gaz miktarına bakılmaksızın tamamen harcanır L2'de. StarkNet, L1 blok niteliklerinin otomatik olarak kullanılabilir olmasını sağlayan bir sisteme sahip değildir. Alternatif olarak Fossil, Oiler Network 2 tarafından geliştirilen ve hash verildiğinde izin veren bir protokoldür. blok, ön görüntülerin yayınlanmasıyla Ethereum adresinden elde edilecek her türlü bilgi. 2https://www.oiler.network/3.1.2. Sıralama StarkNet'nin mevcut durumu tamamen Ethereum'den türetilebilir. Herhangi bir durum farkı geçişler arasındaki veriler L1'de çağrı verileri olarak yayınlanır. Farklılıklar her sözleşme için yayınlanır ve aşağıdaki kodlamayla uint256[] olarak kaydedilir: • Sözleşme dağıtımlarıyla ilgili alan sayısı. • Yayınlanan her sözleşme için: – Yayınlanan sözleşmenin adresi. – Yayınlanan sözleşmenin hash numarası. – Sözleşmeyi yapanın argümanlarının sayısı. – Yapıcı argümanlarının listesi • Deposu değiştirilen sözleşme sayısı. • Değiştirilen her sözleşme için: – Değiştirilen sözleşmenin adresi. – Depolama güncellemelerinin sayısı. – Yeni değerlere sahip depolama adreslerinin anahtar/değer çiftleri. Durum farklılıkları sırasıyla yayınlandığı için sırasıyla okunması yeterlidir. devleti yeniden inşa edelim. 3.1.3. Para Çekme L2'den L1'e mesaj göndermek için send_message_to_L1 sistem çağrısı kullanılır. Mesaj şu: hash sayacını kanıtla birlikte artırarak L1'de yayınlandı ve çağrılarak sonlandırıldı. L1'deki StarkGate smart contract üzerindeki consumMessageFromL2 işlevi, bu işlevi azaltır sayaç. Herkes para çekme işlemini tamamlayabilir. 3.1.4. Geçerlilik kanıtları Kahire Sanal Makinesi [19], STARK kanıtlarının oluşturulmasını kolaylaştırmak için tasarlanmıştır. Kahire dili, hesaplamanın üst düzey bir programlamayla tanımlanmasına olanak tanır dil ve doğrudan bir devre olarak değil. Bu, bir polinom denklem sistemi ile gerçekleştirilir. Şekil 3 tek bir hesaplamayı temsil etmektedir: von Neumann mimarisinin FDE döngüsü. Sayı Kısıtlamaların sayısı bu nedenle sabittir ve hesaplama türünden bağımsızdır ve yalnızca bir tanesine izin verir. Hesaplanmasının kanıtlanması gereken her program için doğrulama programı. StarkNet, paylaşılan bir kanıtlayıcı kullanarak birden fazla işlemi tek bir STARK kanıtı halinde toplar SHARP'ın adı. Kanıtlar, geçerliliklerini doğrulayan Ethereum tarihinde smart contract adresine gönderilir. ve yeni duruma karşılık gelen Merkle kökünü günceller. Bir doğrulamanın alt doğrusal maliyeti Geçerlilik kanıtı, maliyetinin birden fazla işlem üzerinden amortismana tabi tutulmasına olanak tanır. 3Cebirsel Ara Gösterim (AIR) olarak adlandırılır

Vergleich

  1. Vergleich 4.1. Auszahlungszeit Der wichtigste Aspekt, der optimistische Rollups von Validity Rollups unterscheidet, ist der Zeit, die zwischen der Initialisierung einer Auszahlung und ihrem Abschluss vergeht. In beiden Fällen Auszahlungen werden auf L2 initialisiert und auf L1 abgeschlossen. Am StarkNet ist die Finalisierung möglich als Sobald der Gültigkeitsnachweis der neuen Statuswurzel am Ethereum akzeptiert wird: Theoretisch ist dies der Fall Es ist möglich, nach der Initialisierung Geld im ersten Block von L1 abzuheben. In der Praxis ist die Die Häufigkeit des Sendens von Gültigkeitsnachweisen auf Ethereum ist ein Kompromiss zwischen der Blockgeschwindigkeit Finalisierung und Proof-Aggregation. Derzeit stellt StarkNet Gültigkeitsnachweise zur Überprüfung bereit alle 10 Stunden 4, soll aber mit zunehmender Transaktionsaktivität verringert werden. Auf Optimism Bedrock ist es möglich, eine Auszahlung erst am Ende des Streits abzuschließen Zeitraum (derzeit 7 Tage), nach dem ein Root automatisch als gültig gilt. Die Länge von Dieser Zeitraum wird hauptsächlich dadurch bestimmt, dass Fehlernachweise bis zum Ethereum zensiert werden können sein Ende. Die Erfolgswahrscheinlichkeit dieser Art von Angriff nimmt mit zunehmender Zeit exponentiell ab: E[subtrahierter Wert] = 𝑉𝑝𝑛 Dabei ist 𝑛 die Anzahl der Blöcke in einem Intervall und 𝑉 der Betrag, der abgezogen werden kann durch Veröffentlichung einer ungültigen Wurzel, und 𝑝ist die Wahrscheinlichkeit, eine Zensur erfolgreich durchzuführen Angriff in einem einzigen Block. Angenommen, diese Wahrscheinlichkeit beträgt 99 %, sodass der Wert im Rollup gesperrt ist eine Million Ether beträgt und dass die Blöcke in einem Intervall 1800 sind (6 Stunden Blöcke mit einer 12 Sekundenintervall): Der erwartete Wert liegt bei etwa 0,01391 Ether. Das System wird durch gesichert Bitten Sie die Antragsteller, eine viel größere Menge Ether als den erwarteten Wert einzusetzen. Winzer et al. zeigte, wie man einen Zensurangriff mit einem einfachen smart contract durchführt Dadurch wird sichergestellt, dass sich bestimmte Speicherbereiche im Status [20] nicht ändern. Den Angriff modellieren Als Markov-Spiel zeigt der Artikel, dass Zensur die vorherrschende Strategie für ein Rationales ist Blockproduzenten, wenn sie mehr Entschädigung erhalten, als die Transaktion, die sich ändert, einschließen die Erinnerung. Der oben besprochene 𝑝Wert kann als Prozentsatz der rationalen Blockade angesehen werden Produzenten im Netzwerk, wobei „rational“ mögliche Strafen nicht berücksichtigt Externalitäten, wie z. B. weniger Vertrauen in blockchain, das seinen Kryptowährungswert verringert. Der folgende Code stellt einen smart contract dar, der für einen Zensurangriff verwendet werden kann auf Grundgestein. Der Angriff nutzt die Anreize der Blockproduzenten aus, indem er ihnen Bestechungsgelder anbietet um die Transaktionen zu zensieren, die bestimmte Teile des Staates verändern würden. Der Hauptvertrag Mit der Funktion ClaimBribe können Blockproduzenten Bestechungsgelder einfordern, wenn sie erfolgreich zensieren die Zieltransaktion, indem überprüft wird, ob der ungültige Ausgabestamm nicht berührt wird. Funktion ClaimBribe(Bytes Speicher StorageProof) external { require(!claimed[block.number], „Bestechung bereits eingefordert“); OutputProposal-Speicherstrom = storageOracle.getStorage(L2_ORACLE, block.number, SLOT, storageProof); require(invalidOutputRoot == current.outputRoot, "Angriff fehlgeschlagen"); beansprucht[block.nummer] = true; (bool sent, ) = block.coinbase.call{value: bribeAmount}(""); 4https://etherscan.io/address/0xc662c410c0ecf747543f5ba90660f6abebd9c8c4require(sent, „Ether konnte nicht gesendet werden“); } Listing 1: Beispiel eines Vertrags, der einen Anreiz für einen Zensurangriff auf Bedrock bietet. Bei der Länge der Streitfrist ist auch die Tatsache zu berücksichtigen, dass der Beweis des Verschuldens vorliegt ein interaktiver Beweis und daher muss den Teilnehmern genügend Zeit zur Interaktion zur Verfügung gestellt werden und dass jede Interaktion zensiert werden könnte. Wenn der letzte Zug zu einem Zeitpunkt sehr nahe am erfolgt Am Ende des Streitzeitraums sind die Zensurkosten deutlich geringer. Obwohl Zensur das ist Bei einer dominanten Strategie ist die Erfolgswahrscheinlichkeit geringer, da zensierende Knoten anfällig dafür sind Denial-of-Service-Angriffe: Ein Angreifer kann sehr komplexe Transaktionen generieren, die mit dem enden Die Veröffentlichung eines Fehlernachweises ist kostenfrei, da keine Gebühren anfallen. Im Extremfall ermöglicht eine lange Streitdauer eine Abstimmung im Erfolgsfall Zensurangriff, um einen Fork zu organisieren und die angreifenden Blockproduzenten auszuschließen. Ein anderer Ein möglicher Angriff besteht darin, mehr staatliche Stammvorschläge zu veröffentlichen, als die Streitparteien überprüfen können. was durch eine Frequenzbegrenzung vermieden werden kann. 4.1.1. Schnelle optimistische Abhebungen Da die Gültigkeit eines Optimistic Rollups jederzeit von jedem Full Node überprüft werden kann, a vertrauenswürdig oracle kann verwendet werden, um auf L1 zu erfahren, ob die Auszahlung sicher abgeschlossen werden kann. Dies Der Mechanismus wurde zuerst vom Hersteller [21] vorgeschlagen: Ein oracle überprüft die Auszahlung und veröffentlicht die Ergebnis auf L1, auf dem dem Benutzer automatisch ein verzinsliches Darlehen zugewiesen wird nach Ablauf von 7 Tagen geschlossen, d. h. wenn die Auszahlung tatsächlich abgeschlossen werden kann. Diese Lösung führt eine Vertrauensannahme ein, die im Fall von Maker jedoch durch den Operator oracle minimiert wird wird von derselben Organisation verwaltet, die das Risiko durch die Bereitstellung des Darlehens übernimmt. 4.2. Transaktionskosten Die Kosten von L2-Transaktionen werden hauptsächlich durch die Interaktion mit L1 bestimmt. In beiden Lösungen Der Rechenaufwand für Transaktionen ist sehr gering, da sie vollständig außerhalb der Kette ausgeführt werden. Optimism veröffentlicht L2-Transaktionsanrufdaten als Anrufdaten und führt selten (oder nie) einen Fehler aus Beweise, daher sind Anrufdaten die teuerste Ressource. Am 12. Januar 2022 ein Bedrock-Netzwerk wurde im Goerli-Testnetz von Ethereum gestartet. Es kann eine Gaskompressionsrate berechnet werden indem die in einem bestimmten Zeitraum auf Bedrock verbrauchte Gasmenge verfolgt und mit der Menge verglichen wird Menge an Gas, die für L1 für die entsprechenden Blöcke ausgegeben wird. Mit dieser Methode wird eine Gaskompression durchgeführt Es wurde eine Rate von ∼20 : 1 gefunden, diese Zahl kann jedoch je nach tatsächlicher Aktivität im Mainnet abweichen. StarkNet veröffentlicht am Ethereum jede Änderung im L2-Status als Aufrufdaten, daher erfolgt die Speicherung die teuerste Ressource. Da das Netzwerk EVM nicht verwendet, betragen die Transaktionskosten Die Komprimierung kann nicht trivial abgeschätzt werden. Durch die Übernahme der Ausführungskosten und der Anrufdaten vernachlässigbar sein, ist es möglich, das Komprimierungsverhältnis von Speicherschreibvorgängen im Vergleich zu zu berechnen L1. Es wird davon ausgegangen, dass kein Vertrag bereitgestellt wird und 10 Zellen, auf die zuvor nicht auf StarkNet zugegriffen wurde, vorhanden sind modifiziert, wird eine Komprimierungsrate der Speicherschreibkosten von ∼24:1 gefunden. Wenn eine Zelle überschrieben wird 𝑛Zeiten zwischen Datenveröffentlichungen betragen die Kosten für jeden Schreibvorgang 1/𝑛im Vergleich zu den Kosten eines einzelnen Schreibvorgangs, da nur der letzte veröffentlicht wird. Die Kosten können dadurch weiter minimiert werdenKomprimierung häufig verwendeter Werte. Die Kosten für die Überprüfung des Gültigkeitsnachweises werden aufgeteilt die Transaktionen, auf die es sich bezieht: zum Beispiel enthält StarkNet Block 4779 200 Transaktionen und seine Der Gültigkeitsnachweis verbraucht 267830 Gaseinheiten oder 1339,15 Gas pro Transaktion. 4.2.1. Anrufdaten optimieren: Cache-Vertrag Nachfolgend wird ein smart contract vorgestellt, der einen Adresscache für häufig verwendete Adressen implementiert Adressen unter Ausnutzung der Tatsache, dass Speicherung und Ausführung wesentlich kostengünstiger sind Ressourcen, zusammen mit einem Friends-Vertrag, der ihre Verwendung belegt. Letzterer behält den Überblick „Freunde“ einer Adresse, die durch Aufruf der Funktion addFriend registriert werden können. Wenn eine Adresse bereits mindestens einmal verwendet wurde, kann es durch den Aufruf von addFriendWithCache hinzugefügt werden Funktion: Die Cache-Indizes sind 4-Byte-Ganzzahlen, während die Adressen durch 20 Bytes dargestellt werden. es gibt also eine 5:1-Ersparnis beim Funktionsargument. Die gleiche Logik kann für andere Daten verwendet werden Typen wie Ganzzahlen oder allgemeiner Bytes. Vertrag AddressCache { Mapping(address => uint32) public address2key; Adresse[] öffentlicher Schlüssel2Adresse; Funktion CacheWrite(Adresse _Adresse) interne Rückgabe (uint32) { require(key2address.length < type(uint32).max, "AddressCache: Cache ist voll"); require(address2key[_address] == 0, "AddressCache: Adresse bereits zwischengespeichert"); // Schlüssel müssen bei 1 beginnen, da 0 „nicht gefunden“ bedeutet uint32 key = uint32(key2address.length + 1); address2key[_address] = Schlüssel; key2address.push(_address); Eingabetaste; } Funktion „cacheRead(uint32 _key)“ öffentliche Ansicht gibt (Adresse) { zurück require(_key <= key2address.length && _key > 0, "AddressCache: Schlüssel nicht gefunden"); return key2address[_key - 1]; } } Listing 2: Adress-Cache-Vertrag. Vertrag Freunde ist AddressCache { Mapping(Adresse => Adresse[]) öffentliche Freunde; Funktion addFriend(address _friend) public { friends[msg.sender].push(_friend); CacheWrite(_friend); } function addFriendWithCache(uint32 _friendKey) public { friends[msg.sender].push(cacheRead(_friendKey)); } Funktion getFriends() öffentliche Ansicht gibt (Adresse[] Speicher) { return friends[msg.sender];} } Listing 3: Beispiel für einen Vertrag, der den Adress-Cache erbt. Der Vertrag unterstützt im Cache etwa 4 Milliarden (232) Adressen, und das Hinzufügen eines Bytes ergibt etwa 1 Billion (240). 4.2.2. Speicher optimieren: Filter von Bloom Auf StarkNet gibt es mehrere Techniken zur Minimierung der Speichernutzung. Wenn es nicht nötig ist Um die Verfügbarkeit der Originaldaten zu gewährleisten, reicht es aus, deren hash: this in der Kette zu speichern ist der Mechanismus zum Speichern von Daten für einen ERC-721 (NFT) [22], d. h. eine IPFS-Verbindung, die das auflöst hash der Daten, sofern verfügbar. Bei mehrfach gespeicherten Daten besteht die Möglichkeit, eine Nachschlagefunktion zu nutzen Tabelle ähnlich dem für Optimism eingeführten Caching-System, bei dem alle Werte gespeichert werden müssen mindestens einmal. Bei einigen Anwendungen kann das Speichern aller Werte durch die Verwendung eines Bloom-Filters vermieden werden [23, 24, 25], d. h. eine probabilistische Datenstruktur, die es einem ermöglicht, mit Sicherheit zu wissen, ob Ein Element gehört nicht zu einer Menge, lässt aber eine kleine, aber nicht vernachlässigbare Wahrscheinlichkeit zu, dass es falsch ist Positives. Ein Bloom-Filter wird als Array von 𝑚Bits bei Null initialisiert. Um ein Element hinzuzufügen, funktioniert 𝑘hash mit einer gleichmäßigen Zufallsverteilung werden verwendet, die jeweils einem Bit des festgelegten Arrays zugeordnet sind zu 1. Um zu überprüfen, ob ein Element zur Menge gehört, führen wir die Funktionen 𝑘hash aus und überprüfen dass die 𝑘bits auf 1 gesetzt sind. In einem einfachen Bloom-Filter gibt es keine Möglichkeit zu unterscheiden, ob ein Das Element gehört tatsächlich zur Menge oder ist falsch positiv, eine Wahrscheinlichkeit, die mit der Zahl wächst der Einträge steigt. Nach dem Einfügen von 𝑛Elementen: P[falsch positiv] = (︃ 1 − [︂ 1 −1 𝑚 ]︂𝑘𝑛)︃𝑘 ≈ (︁ 1 −𝑒−𝑘𝑛/𝑚)︁𝑘 unter der Annahme, dass die Wahrscheinlichkeit jedes Bitsatzes unabhängig ist. Wenn 𝑛Elemente (beliebiger Größe!) sind Es wird erwartet, dass enthalten ist, und die Wahrscheinlichkeit eines tolerierten falschen Positivs beträgt 𝑝, die Größe des Arrays kann berechnet werden als: 𝑚= −𝑛ln 𝑝 (ln 2)2 Während die optimale Anzahl von hash-Funktionen ist: 𝑘= 𝑚 𝑛ln 2 Wenn wir davon ausgehen, dass 1000 Elemente mit einer Toleranz von 1 % eingefügt werden, beträgt die Größe des Arrays 9585 Bit mit 𝑘= 6, während es bei einer Toleranz von 0,1 % mit 𝑘= 9 zu 14377 Bits wird. Wenn eine Million Elemente erwartet werden, dass eingefügt wird, beträgt die Größe des Arrays etwa 1170 kB für 1 % und 1775 kB für 0,1 %, mit den gleichen Werten von 𝑘, da es nur von 𝑝[26] abhängt. In einem Spiel, in dem Spieler keinem Gegner zugewiesen werden dürfen, den sie bereits herausgefordert haben, Anstatt die Liste der früheren Gegner für jeden Spieler im Speicher zu speichern, kann man einen Bloom verwenden Filter. Das Risiko, einige Spieler nicht herauszufordern, ist oft akzeptabel und der Filter kann zurückgesetzt werden periodisch.4.3. Ethereum Kompatibilität Der Hauptvorteil der Kompatibilität mit EVM und Ethereum ist die Wiederverwendung aller verfügbaren Werkzeuge. Ethereum smart contracts können ohne jegliche Änderung auf Optimism veröffentlicht werden neue Prüfungen. Wallets bleiben kompatibel, Entwicklungs- und statische Analysetools, allgemeine Analyse Tools, Indizierungstools und oracles. Ethereum und Solidity haben eine lange, gut erforschte Geschichte Schwachstellen wie Wiedereintrittsangriffe, Über- und Unterläufe, schnelle Kredite und oracle Manipulationen. Aus diesem Grund konnte Optimism in kurzer Zeit einen großen Wert erzielen Zeit. Die Entscheidung für die Einführung einer anderen virtuellen Maschine bedeutet, dass ein gesamtes Ökosystem neu aufgebaut werden muss. mit dem Vorteil einer größeren Umsetzungsfreiheit. StarkNet implementiert das Konto nativ Abstraktion, ein Mechanismus, bei dem jedes Konto ein smart contract ist, das implementiert werden kann beliebige Logik, solange sie einer Schnittstelle entspricht (daher der Begriff Abstraktion): Dies ermöglicht die Verwendung verschiedener digitaler Signaturschemata, die Möglichkeit, den privaten Schlüssel mithilfe des zu ändern dieselbe Adresse oder verwenden Sie ein Multisig. Die Ethereum-Community hat die Einführung vorgeschlagen Mechanismus mit EIP-2938 im Jahr 2020, aber der Vorschlag ist seit mehr als einem Jahr veraltet Andere Updates haben höhere Priorität erhalten [27]. Ein weiterer wichtiger Vorteil der Kompatibilität ist die Wiederverwendung vorhandener Clients: Optimism verwendet eine Version von Geth für seinen eigenen Knoten mit nur ∼800 Zeilen Unterschied, was bisher der Fall war entwickelt, getestet und gewartet seit 2014. Ein robuster Client ist ausschlaggebend was im Netzwerk als gültig akzeptiert wird oder nicht. Ein Fehler in der Implementierung des Fehlernachweises Das System könnte dazu führen, dass ein falscher Beweis als richtig oder ein korrekter Beweis als ungültig akzeptiert wird Der Block wird als falsch akzeptiert und gefährdet das System. Die Wahrscheinlichkeit dieser Art von Der Angriff kann mit einer größeren Client-Vielfalt eingeschränkt werden: Optimism kann zusätzlich zu geth wiederverwendet werden andere Ethereum-Clients wurden bereits gepflegt, und die Entwicklung eines weiteren Erigon-basierten Clients ist im Gange bereits im Gange. Im Jahr 2016 wurde ein Problem in der Speicherverwaltung von Geth ausgenutzt DoS-Angriff und die erste Verteidigungslinie bestand darin, die Verwendung von Parity zu empfehlen, die zweithäufigste verwendeter Client zu der Zeit 5. StarkNet steht vor dem gleichen Problem mit Gültigkeitsnachweisen, aber die Clients müssen von Grund auf neu geschrieben werden und das Beweissystem ist viel komplexer und folglich Es ist auch viel komplexer, die Korrektheit sicherzustellen.

Karşılaştırmak

  1. Karşılaştırma 4.1. Para çekme süresi İyimser Toplamaları Geçerlilik Toplamalarından ayıran en önemli husus, Caymanın başlatılması ile sonuçlanması arasında geçen süre. Her iki durumda da Para çekme işlemleri L2'de başlatılır ve L1'de sonlandırılır. StarkNet tarihinde sonlandırma şu şekilde mümkündür: Yeni durum kökünün geçerlilik kanıtı Ethereum tarihinde kabul edilir edilmez: teorik olarak Başlatmanın ardından L1'in ilk bloğundaki fonları çekmek mümkündür. Uygulamada, Ethereum üzerinde geçerlilik kanıtları gönderme sıklığı, blok hızı arasında bir dengedir sonuçlandırma ve kanıt toplama. Şu anda StarkNet doğrulama için geçerlilik kanıtları sağlıyor her 10 saatte bir 4, ancak işlem aktivitesi arttıkça azaltılması amaçlanıyor. Optimism Bedrock'ta para çekme işlemini yalnızca anlaşmazlığın sonunda sonuçlandırmak mümkündür süre (şu anda 7 gün), bu sürenin sonunda kök otomatik olarak geçerli kabul edilir. uzunluğu bu süre temel olarak hata kanıtlarının Ethereum tarihine kadar sansürlenebileceği gerçeğiyle belirlenir. onun sonu. Bu tür saldırıların başarı olasılığı zaman arttıkça katlanarak azalır: E[çıkarılan değer] = 𝑉𝑝𝑛 burada 𝑛bir aralıktaki blok sayısıdır, 𝑉çıkarılabilecek fon miktarıdır geçersiz bir kök yayınlayarak ve 𝑝 başarılı bir sansür gerçekleştirme olasılığıdır tek blokta saldırın. Bu olasılığın %99 olduğunu, değerin Toplama'da kilitlendiğini varsayalım. bir milyon Ether'dir ve bir aralıktaki bloklar 1800'dür (12 saatlik bloklar ile 6 saatlik bloklar). saniye aralığı): beklenen değer yaklaşık 0,01391 Ether'dir. Sistem şu şekilde güvenli hale getirilmiştir: Teklif Sahiplerinden beklenen değerden çok daha büyük miktarda Ether yatırmalarını istemek. Winzer ve ark. basit bir smart contract kullanarak sansür saldırısının nasıl gerçekleştirileceğini gösterdi bu, durumdaki belirli bellek alanlarının [20] değişmemesini sağlar. Saldırının modellenmesi Bir Markov oyunu olarak makale, sansürün rasyonel bir yaklaşım için baskın strateji olduğunu göstermektedir. değişen işlemin dahil edilmesinden daha fazla tazminat alırlarsa üreticiyi bloke edin hafıza. Yukarıda tartışılan 𝑝değeri rasyonel bloğun yüzdesi olarak görülebilir. ağdaki üreticiler, “rasyonel”in muhtemelen cezalandırmayı hesaba katmadığı durumlarda blockchain'ye olan güvenin azalması gibi dışsallıklar, onun kripto para birimi değerini düşürür. Aşağıdaki kod, sansür saldırısı gerçekleştirmek için kullanılabilecek bir smart contract değerini sunar Bedrock'ta. Saldırı, blok üreticilerine rüşvet teklif ederek teşviklerinden yararlanıyor devletin belirli kısımlarını değiştirecek işlemleri sansürlemek. Sözleşmenin ana ClaimBribe işlevi, blok üreticilerinin başarılı bir şekilde sansürlemeleri halinde rüşveti talep etmelerine olanak tanır Geçersiz çıkış köküne dokunulmadığını kontrol ederek hedeflenen işlemi gerçekleştirin. function requestBribe(bayt bellek depolamaProof) harici { require(!talep edilen[blok.numarası], "rüşvet zaten talep edildi"); OutputProposal bellek akımı = depolamaOracle.getStorage(L2_ORACLE, blok.number, SLOT, depolama Kanıtı); require(invalidOutputRoot == current.outputRoot, "saldırı başarısız oldu"); talep edilen[blok.numarası] = doğru; (bool gönderildi, ) = Block.coinbase.call{value: bribeAmount}(""); 4https://etherscan.io/address/0xc662c410c0ecf747543f5ba90660f6abebd9c8c4require(gönderildi, "ether gönderilemedi"); } Liste 1: Bedrock'a sansür saldırısını teşvik eden bir sözleşme örneği. Uyuşmazlık süresinin uzunluğu aynı zamanda kusurun kanıtlandığı gerçeğini de dikkate almalıdır. etkileşimli bir kanıttır ve bu nedenle katılımcıların etkileşime girmesi için yeterli zaman sağlanmalıdır ve herhangi bir etkileşimin sansürlenebileceğini. Son hamle çok yakın bir zamanda gerçekleşirse Uyuşmazlık döneminin sonunda sansürün maliyeti önemli ölçüde azalır. Her ne kadar sansür baskın strateji, sansür düğümlerinin saldırıya açık olması nedeniyle başarı olasılığı daha düşüktür Hizmet Reddi saldırıları: Bir saldırgan, aşağıdakilerle biten çok karmaşık işlemler oluşturabilir: Hiçbir ücret ödenmeyeceği için arıza kanıtının ücretsiz olarak yayınlanması. Olağanüstü durumlarda, uzun bir anlaşmazlık süresi, başarılı bir anlaşma durumunda koordinasyona olanak sağlar. Bir çatal düzenlemek ve saldıran blok üreticilerini dışlamak için sansür saldırısı. Başka bir Olası saldırı, ihtilaflı tarafların doğrulayabileceğinden daha fazla durum kök teklifinin yayınlanmasından ibarettir, bir frekans limiti kullanılarak bunun önüne geçilebilir. 4.1.1. Hızlı iyimser para çekme işlemleri İyimser Toplamanın geçerliliği herhangi bir zamanda herhangi bir Tam Düğüm tarafından doğrulanabileceğinden, güvenilir oracle, L1'de para çekme işleminin güvenli bir şekilde tamamlanıp tamamlanmayacağını bilmek için kullanılabilir. Bu mekanizma ilk olarak Maker [21] tarafından önerildi: bir oracle para çekme işlemini doğrular, kullanıcıya otomatik olarak faiz getiren bir kredinin atandığı L1'deki sonuç 7 günün sonunda, yani para çekme işleminin fiilen sonuçlandırılabileceği tarihte kapatılır. Bu çözüm bir güven varsayımı getirir, ancak Maker durumunda bu, oracle operatöründen bu yana en aza indirilmiştir. krediyi sağlayarak riski üstlenen aynı kuruluş tarafından yönetilmektedir. 4.2. İşlem maliyetleri L2 işlemlerinin maliyeti çoğunlukla L1 ile olan etkileşime göre belirlenir. Her iki çözümde İşlemlerin hesaplama maliyeti, tamamen zincir dışında yürütüldüğü için çok ucuz. Optimism L2 işlemleri çağrı verilerini çağrı verileri olarak yayınlar ve nadiren (veya hiçbir zaman) hata yürütmez kanıtlar, bu nedenle çağrı verileri en pahalı kaynaktır. 12 Ocak 2022'de bir Bedrock ağı Ethereum'nin Goerli test ağında başlatıldı. Bir gaz sıkıştırma oranı hesaplanabilir Belli bir periyotta Ana Kaya üzerinde kullanılan gaz miktarını takip ederek ve bunu mevcut gaz miktarı ile karşılaştırarak karşılık gelen bloklar için L1'de harcanan gaz miktarı. Bu yöntemi kullanarak gaz sıkıştırma ∼20 : 1 oranı bulunur, ancak bu rakam ana ağdaki gerçek aktiviteye göre farklılık gösterebilir. StarkNet, L2 durumundaki her değişikliği Ethereum tarihinde çağrı verileri olarak yayınlar, bu nedenle depolama en pahalı kaynak. Ağ EVM kullanmadığından işlem maliyeti sıkıştırma önemsiz bir şekilde tahmin edilemez. Yürütme maliyetini ve çağrı verilerini varsayarak ihmal edilebilir düzeydeyse, depolama yazma işlemlerinin sıkıştırma oranını aşağıdakilerle karşılaştırmalı olarak hesaplamak mümkündür: L1. Hiçbir sözleşmenin dağıtılmadığını ve StarkNet üzerinde daha önce erişilmeyen 10 hücrenin değiştirildiğinde, ∼24 : 1'lik bir depolama yazma maliyeti sıkıştırma oranı bulunur. Bir hücrenin üzerine yazılırsa 𝑛veri yayınları arasında her yazmanın maliyeti, maliyete kıyasla 1/𝑛 olacaktır Yalnızca sonuncusu yayınlandığından tek bir yazma işlemi yapılır. Maliyet daha da azaltılabilirSık kullanılan değerlerin sıkıştırılması. Geçerlilik kanıt doğrulamasının maliyeti aşağıdakiler arasında paylaştırılır: atıfta bulunduğu işlemler: örneğin, StarkNet blok 4779 200 işlem içerir ve geçerlilik kanıtı her işlem için 267830 birim gaz veya 1339,15 gaz tüketir. 4.2.1. Çağrı verilerini optimize etme: önbellek sözleşmesi Aşağıda, sık kullanılanlar için bir adres önbelleği uygulayan bir smart contract gösterilmektedir. depolama ve yürütmenin çok daha ucuz olması gerçeğinden yararlanarak adresler kaynakları ve bunların kullanımını gösteren bir Friends sözleşmesi. İkincisi takip ediyor addFriend işlevi çağrılarak kaydedilebilecek bir adresin "arkadaşları". Eğer bir adres zaten en az bir kez kullanılmışsa, addFriendWithCache çağrılarak eklenebilir işlev: önbellek endeksleri 4 baytlık tamsayılardır, adresler ise 20 baytla temsil edilir, yani fonksiyon argümanında 5:1 oranında tasarruf vardır. Aynı mantık diğer veriler için de kullanılabilir tamsayılar veya daha genel olarak baytlar gibi türler. sözleşme Adres Önbelleği { eşleme(adres => uint32) genel adres2key; adres[] genel anahtar2adres; function önbellekWrite(adres _address) dahili dönüşler (uint32) { require(key2address.length < type(uint32).max, "AddressCache: önbellek dolu"); require(address2key[_address] == 0, "AddressCache: adres zaten önbelleğe alınmış"); // anahtarlar 1'den başlamalıdır çünkü 0 "bulunamadı" anlamına gelir uint32 anahtar = uint32(anahtar2adresi.uzunluk + 1); adres2anahtar[_adres] = anahtar; key2address.push(_address); dönüş anahtarı; } function cacheRead(uint32 _key) genel görünüm şunu döndürür (adres) { require(_key <= key2address.length && _key > 0, "AddressCache: anahtar bulunamadı"); dönüş anahtarı2adresi[_anahtar - 1]; } } Liste 2: Adres önbellek sözleşmesi. sözleşme Arkadaşlar AdresCache'dir { haritalama(adres => adres[]) genel arkadaşlar; function addFriend(adres _friend) public { arkadaşlar[msg.sender].push(_friend); önbellekWrite(_arkadaş); } function addFriendWithCache(uint32 _friendKey) public { arkadaşlar[msg.sender].push(cacheRead(_friendKey)); } function getFriends() genel görünüm şunu döndürür (adres[] belleği) { arkadaşlara geri dönün[msg.sender];} } Liste 3: Adres önbelleğini devralan bir sözleşme örneği. Sözleşme önbellekte yaklaşık 4 milyar (232) adresi destekliyor ve bir bayt eklemek şunu sağlıyor: yaklaşık 1 trilyon (240). 4.2.2. Depolamayı optimize etme: Bloom filtreleri StarkNet üzerinde depolama kullanımını en aza indirmeye yönelik çeşitli teknikler vardır. Eğer gerekli değilse orijinal verilerin kullanılabilirliğini garanti ederse, hash zincirine kaydedilmesi yeterlidir: bu ERC-721 (NFT) [22], yani sorunu çözen bir IPFS bağlantısı için verileri kaydetmek için kullanılan mekanizmadır. Varsa verilerin hash. Birden çok kez saklanan veriler için bir arama kullanmak mümkündür. Optimism için tanıtılan önbelleğe alma sistemine benzer, tüm değerlerin şu adrese kaydedilmesini gerektiren tablo en az bir kez. Bazı uygulamalarda Bloom filtresi kullanılarak tüm değerlerin kaydedilmesi önlenebilir. [23, 24, 25], yani birinin kesin olarak bilmesini sağlayan olasılıksal bir veri yapısı bir öğe bir kümeye ait değildir ancak küçük ama göz ardı edilemeyecek bir yanlış olasılığını kabul eder pozitifler. Bir Bloom filtresi sıfırda 𝑚bit dizisi olarak başlatılır. Bir öğe eklemek için 𝑘hash işlevleri düzgün bir rastgele dağılım kullanılır, her biri belirlenen dizinin bir bitiyle eşleşir 1'e kadar. Bir öğenin kümeye ait olup olmadığını kontrol etmek için 𝑘hash işlevlerini çalıştırırız ve doğrularız. 𝑘bit'lerin 1'e ayarlandığını. Basit bir Bloom filtresinde, bir öğe aslında kümeye aittir veya yanlış pozitiftir; sayı arttıkça artan bir olasılık girişlerin sayısı artıyor. 𝑛 elemanlarını ekledikten sonra: P[yanlış pozitif] = (︃ 1 – [︂ 1 −1 𝑚 ]︂𝑘𝑛)︃𝑘 ≈ (︁ 1 −𝑒−𝑘𝑛/𝑚)︁𝑘 her bit kümesinin olasılığından bağımsız olduğu varsayılarak. Eğer 𝑛elemanları (isteğe bağlı boyutta!) dahil edilmesi bekleniyor ve yanlış pozitifin tolere edilme olasılığı 𝑝, dizinin boyutu şu şekilde hesaplanabilir: 𝑚= −𝑛ln 𝑝 (2'de)2 hash işlevlerinin optimum sayısı şu şekildedir: 𝑘= 𝑚 𝑛ln 2 %1 toleransla 1000 eleman eklediğimizi varsayarsak dizinin boyutu 9585 bit olur. 𝑘= 6 ile %0,1 tolerans için 𝑘= 9 ile 14377 bit olur. Bir milyon eleman ise Eklenmesi bekleniyorsa dizinin boyutu %1 için yaklaşık 1170 kB, %1 için ise 1775 kB olur. %0,1, aynı 𝑘 değerleriyle, çünkü yalnızca 𝑝[26]'ye bağlıdır. Oyuncuların daha önce meydan okudukları bir rakibe atanmaması gereken bir oyunda, Her oyuncu için geçmiş rakiplerin listesini depoya kaydetmek yerine Bloom kullanılabilir. filtre. Bazı oyunculara meydan okumama riski genellikle kabul edilebilir ve filtre sıfırlanabilir periyodik olarak.4.3. Ethereum uyumluluk EVM ve Ethereum ile uyumlu olmanın temel avantajı, mevcut tüm uygulamaların yeniden kullanılmasıdır araçlar. Ethereum smart contracts herhangi bir değişiklik yapılmadan Optimism üzerinde yayınlanabilir veya yeni denetimler. Cüzdanlar uyumlu kalır, geliştirme ve statik analiz araçları, genel analiz araçlar, indeksleme araçları ve oracles. Ethereum ve Solidity'nin iyi çalışılmış uzun bir geçmişi var Yeniden giriş saldırıları, taşmalar ve yetersiz akışlar, flaş krediler ve oracle gibi güvenlik açıkları manipülasyonlar. Bu nedenle Optimism kısa sürede büyük miktarda değer yakalayabildi zaman. Farklı bir sanal makineyi benimsemeyi seçmek, tüm ekosistemi yeniden inşa etme zorunluluğu anlamına gelir. daha fazla uygulama özgürlüğü avantajına sahiptir. StarkNet hesabı yerel olarak uyguluyor her hesabın uygulayabildiği bir smart contract olduğu bir mekanizma olan soyutlama bir arayüze uyduğu sürece keyfi mantık (bu nedenle soyutlama terimi): bu, farklı dijital imza şemalarının kullanımı, özel anahtarı kullanarak değiştirme yeteneği aynı adresi kullanın veya çoklu imza kullanın. Ethereum topluluğu bunun tanıtımını önerdi 2020'de EIP-2938 ile mekanizma, ancak teklif bir yıldan fazla bir süredir bayat kaldı diğer güncellemelere daha fazla öncelik verildi [27]. Uyumluluktan elde edilen bir diğer önemli fayda da mevcut istemcilerin yeniden kullanılmasıdır: Optimism Kendi düğümü için geth'in yalnızca ∼800 satırlık farka sahip bir versiyonunu kullanır. 2014'ten bu yana geliştiriliyor, test ediliyor ve bakımı yapılıyor. Güçlü bir müşteriye sahip olmak, tanımlandığı üzere çok önemlidir. ağda neyin geçerli olarak kabul edildiği veya edilmediği. Arıza kanıtlamanın uygulanmasında bir hata Sistem yanlış bir ispatın doğru kabul edilmesine veya doğru bir ispatın geçersiz olmasına neden olabilir. bloğun yanlış kabul edilmesi, sistemi tehlikeye atıyor. Bu tür bir olasılık saldırı daha geniş bir müşteri çeşitliliği ile sınırlandırılabilir: Optimism ayrıca yeniden kullanılabilir diğer Ethereum istemcilerin bakımı zaten yapılıyor ve başka bir Erigon tabanlı istemcinin geliştirilmesi de sürüyor zaten devam ediyor. 2016 yılında geth'in hafıza yönetimindeki bir sorundan yararlanıldı. DoS saldırısı ve ilk savunma hattı, en çok ikinci olan Parity'nin kullanılmasını önermekti. o sırada kullanılan istemci 5. StarkNet geçerlilik kanıtlarıyla aynı sorunla karşı karşıyadır, ancak istemciler sıfırdan yazılması gerekir ve ispat sistemi çok daha karmaşıktır ve dolayısıyla doğruluğu sağlamak da çok daha karmaşıktır.

Abschluss

  1. Fazit Rollups sind heute die vielversprechendste Lösung zur Lösung des Skalierbarkeitsproblems dezentrale blockchains, die den Weg für die Ära der modularen blockchains ebnen monolithische blockchains. Hauptsächlich wird die Wahl zwischen der Entwicklung eines Optimistic Rollup oder eines Validity Rollup gezeigt als Kompromiss zwischen Komplexität und Agilität. StarkNet bietet zahlreiche Vorteile wie z. B. schnell Abhebungen, strukturelle Unfähigkeit, ungültige Zustandsübergänge durchzuführen, niedrigere Transaktionskosten bei Kosten einer längeren Entwicklungszeit und Inkompatibilität mit EVM, während dies bei Optimism der Fall ist nutzte die Netzwerkwirtschaft, um schnell einen großen Marktanteil zu erobern. Optimism Bedrock verfügt jedoch über einen modularen Aufbau, der es ermöglicht, zu einer Gültigkeit zu werden 5https://blog.ethereum.org/2016/09/22/ethereum-network-currently-undergoing-dos-attack

Rollup in der Zukunft: Cannon verwendet derzeit Minigeth, kompiliert zu MIPS, für seinen Fehlernachweis System, aber dieselbe Architektur kann verwendet werden, um eine Schaltung zu erhalten und Gültigkeitsnachweise zu erstellen. Das Kompilieren einer komplexen Maschine wie EVM für eine Mikroarchitektur führt zu einer einfacheren Lösung Schaltkreis, der im Falle von Upgrades nicht geändert und erneut überprüft werden muss. RISC Zero ist ein überprüfbare Mikroarchitektur mit STARK-Beweisen, die sich bereits in der Entwicklung befinden, basierend auf RISC-V kann hierfür alternativ zu MIPS [28] verwendet werden. Ein nicht zu unterschätzender Aspekt ist die Komplexität des Verständnisses, wie das funktioniert Technik funktioniert. Eine Stärke herkömmlicher blockchains besteht darin, den Status von überprüfen zu können den blockchain, ohne einer Drittpartei zu vertrauen. Im Fall von StarkNet ist dies jedoch der Fall Es ist notwendig, der Implementierung zu vertrauen, wenn es nicht möglich ist, die verschiedenen Komponenten zu überprüfen basierend auf Kryptographie und fortgeschrittener Mathematik. Dies kann zunächst zu Reibungen führen Einführung der Technologie, aber da die Tools und die Verwendung von Integritätsnachweisen immer weiter voranschreiten Außerhalb des Feldes blockchain wird dieses Problem hoffentlich gelöst.

Çözüm

  1. Sonuç Toplamalar, ölçeklenebilirlik sorununu çözmek için günümüzde mevcut olan en umut verici çözümdür. merkezi olmayan blockchain'ler, modüler blockchain'lerin aksine modüler blockchain'lerin yolunu açıyor yekpare blockchains. İyimser Toplama veya Geçerlilik Toplama geliştirme seçeneği temel olarak gösterilmektedir karmaşıklık ve çeviklik arasında bir denge olarak. StarkNet hızlı gibi çok sayıda avantaja sahiptir para çekme işlemleri, geçersiz durum geçişlerine sahip olunmaması, yapısal olarak yetersizlik, daha düşük işlem maliyeti daha uzun bir geliştirme süresi ve EVM ile uyumsuzluk nedeniyle, Optimism ise hızla pazardan büyük bir pay elde etmek için ağ ekonomisinden yararlandı. Optimism Ancak Bedrock, Geçerlilik haline gelmesini sağlayan modüler bir tasarıma sahiptir. 5https://blog.ethereum.org/2016/09/22/ethereum-network-currently-undergoing-dos-attack

Gelecekteki toplama: Cannon şu anda hata koruması için MIPS'ye derlenmiş minigeth kullanıyor Sistem, ancak aynı mimari bir devre elde etmek ve geçerlilik kanıtları üretmek için kullanılabilir. EVM gibi karmaşık bir makinenin bir mikro mimari için derlenmesi daha basit bir sonuç verir. Yükseltme durumunda değiştirilmesine ve yeniden doğrulanmasına gerek olmayan devre. RISC Sıfır bir RISC-V temel alınarak halihazırda geliştirilmekte olan STARK kanıtlarına sahip doğrulanabilir mikro mimari bu amaçla MIPS [28]'ye alternatif olarak kullanılabilir. Göz ardı edilmemesi gereken bir husus, teknoloji çalışıyor. Geleneksel blockchain'lerin güçlü yanı, durumunu doğrulayabilmesidir. blockchain hiçbir üçüncü taraf varlığına güvenmeden. Ancak StarkNet durumunda, Çeşitli bileşenleri doğrulamak mümkün olmadığında uygulamaya güvenmek gerekir kriptografiye ve ileri matematiğe dayalıdır. Bu başlangıçta sürtünme yaratabilir. teknolojinin benimsenmesi, ancak araçlar ve dürüstlük kanıtlarının kullanımı ilerledikçe blockchain alanının dışında bu sorunun çözüleceğini umuyoruz.