Tas Dienes, EES Mainnet Working Group
December 2020
Om du har följt buzzen i Ethereums ekosystem nyligen, har du förmodligen hört talas om höga transaktionsavgifter och den begränsade bearbetningskapaciteten hos Mainnet. Du kanske också har hört talas om Layer 2. Layer 2 är en uppsättning tekniker eller system som körs ovanpå Ethereum (Layer 1), ärver säkerhetsegenskaper från Layer 1 och ger större transaktionsbehandlingskapacitet (genomströmning), lägre transaktionsavgifter ( driftskostnad), och snabbare transaktionsbekräftelser än lager 1. Skalningslösningar för lager 2 är säkrade av lager 1, men de gör det möjligt för blockkedjeapplikationer att hantera många fler användare eller åtgärder eller data än vad lager 1 skulle kunna ta emot.
Layer 2 är ett brett område där många team forskar och bygger olika skalningslösningar som ibland är konkurrenskraftiga och ibland kompletterar varandra. De viktigaste kategorierna av L2-lösningar är:statliga kanaler, sidokedjor 1 , plasma, optimistiska rollups, zk-rollups och validium. Det finns också några hybridlösningar som har egenskaper av flera kategorier. Var och en har sin egen uppsättning styrkor, svagheter och avvägningar. Att dyka in i hur varje typ av L2-teknik fungerar och nyanserna i dess avvägningar ligger utanför ramen för den här artikeln, men många andra har skrivit om dem. 4,5,6,7
De flesta L2-lösningar är centrerade kring en server eller ett kluster av servrar, som var och en kan hänvisas till som en nod, validator, operatör, sekvenserare, blockproducent eller liknande term. Beroende på implementeringen kan dessa L2-noder drivas av företagen eller enheterna som använder dem, eller av en tredjepartsoperatör eller av en stor grupp individer (liknande Mainnet). Generellt sett skickas transaktioner till dessa L2-noder istället för att skickas direkt till L1; L2-instansen grupperar dem sedan i grupper innan de förankras till L1, varefter de säkras av L1 och kan inte ändras. Detaljerna för hur detta görs varierar avsevärt mellan olika L2-teknologier och implementeringar.
Många företag har byggt applikationer på eller experimenterat med privata blockkedjor, inklusive privata Enterprise Ethereum-implementeringar, trots att Ethereum Mainnets öppna och decentraliserade karaktär ger vissa fördelar såsom starkare säkerhet/oföränderlighet, transparens, lägre driftskostnader, 3 och möjligheten att samverka med alla andra applikationer som också finns på huvudnätet (nätverkseffekter). Genom att dela en gemensam referensram undviker man onödigt skapande av många isolerade silos som inte kan kommunicera och dela eller synkronisera information med varandra.
Dessa fördelar är även tillgängliga på L2, om så önskas (transparens är valfritt). Transaktioner på L2 bedöms och säkras av L1, som fortfarande fungerar som en gemensam referensram och säkerställer globalt konsekvent transaktionsordning och tillståndshantering. Applikationer kan enkelt samverka inom en L2-instans och kan handla över L2:er via meddelanden över flera kedjor.
Det finns många anledningar till att företagsutvecklare och arkitekter har valt att bygga på privata kedjor istället för offentliga. I slutet av 2019 skrev John Wolpert från ConsenSys en lista över problem med idén att använda Ethereum Mainnet i affärer. 2 Här kommer vi att ta en utökad version av listan med problem eller invändningar mot att bygga på Mainnet, och titta på hur skalningslösningar för lager 2 kan förändra spelet för vissa applikationer.
I den övre delen:statliga kanaler, plasma, validium, sidokedjor och vissa hybridlösningar. I den nedre delen: zk-rollups och optimistiska sammanställningar. Hastighets- och fördröjningsproblem:Våra CRM- och ERP-system behöver inte den typen av transaktionshastigheter per sekund som ett Visa eller Mastercard (och även de får dessa TPS-priser genom parallellisering...kan lura mig inte). Men långa väntetider för tur och retur + konsensus gör saker jag kan göra med Mainnet till en dålig användarupplevelse. Vissa L2-lösningar kan ge "omedelbar" transaktionsbekräftelser med en ekonomisk garanti för att din transaktion kommer att inkluderas i nästa L2-block.
Sidokedjor kan också erbjuda kortare blockeringstider och snabbare slutgiltighet inom sidokedjan (även om transaktionerna inte är förankrade till L1).
Att slutföra L2-transaktioner på L1, för att få de fulla fördelarna med L1-säkerhet, beror fortfarande på L1-blockeringstid. Huruvida du behöver vänta på L1-slutgiltighet, L1-bekräftelse eller bara på L2-bekräftelse beror på specifikationerna för din ansökan. Finalitetsproblem:Ethereum är en "eventuell konsistens"-maskin. Om det förändras med Eth2.0 förstår jag det inte...något med en magisk snabb finalitet något. Jag vet inte. Vad jag vet är att alla mina system är sådana där en ändring av data är slutgiltig i samma sekund som den skrivs. L2 kan göra detta lite mer komplicerat, eftersom transaktioner kan behöva slutföras på både L2 och L1. Det är åtminstone samma komplexitetsnivå som L1.
Ethereum 2.0 introducerar dock finalitet via sin nya konsensusalgoritm, Casper FFG. Efter migrering till Eth2 kan både L1- och L2-transaktioner anses vara slutförda efter en viss tid. Bullrig granneproblem:Andra användare och nätverksaktivitet får inte störa min verksamhet. Som ett företag som bedriver verksamhetskritiska operationer som förlitar sig på förutsägbar drifttiming, måste jag vara bekväm med att en "cryptokitty"-händelse inte är en möjlighet. Jag måste veta att även om Mainnet är ett allmännyttigt verktyg, finns det rimliga garantier på något sätt att de läsningar, skrivningar och beräkningar jag behöver för att göra affärer på Mainnet inte kommer att reduceras till en genomsökning av andras aktiviteter. I vilken grad "bullriga grannar" kan störa din verksamhet genom att förbruka det mesta av L1-kapaciteten beror på typen av L2-teknik och hur den implementeras. Vissa tekniker som plasma och validium skriver väldigt lite data till L1. På grund av detta kan L2-operatören betala högre gaspriser om det behövs för att säkerställa att deras transaktioner behandlas på L1 i tid. Dessa lösningar är mycket motståndskraftiga mot "bullriga grannar".
Sidokedjor är också relativt immuna mot detta problem eftersom de inte är beroende av L1-kedjan. Men överföring av tokens eller data till/från L1-kedjan är fortfarande föremål för kapaciteten för L1.
L2-lösningar i rollup-stil begränsas av den tillgängliga kapaciteten hos L1 och kan drabbas mer av överbelastning på Mainnet. L1-gaskostnaden för att förankra dessa L2-transaktioner på L1 är fortfarande mycket lägre än kostnaden för att göra dessa transaktioner direkt på L1, så operatören kanske kan betala högre transaktionsavgifter för att säkerställa snabb behandling. Dessa lösningar är mindre motståndskraftiga mot bullriga grannar än de tidigare nämnda, men mer motståndskraftiga än applikationer som körs direkt på L1.
Om företagsapplikationer delar en L2-instans med andra applikationer, beroende på implementeringen, kan L2-operatören kunna tillhandahålla en viss mängd garanterad genomströmning eller en SLA med avseende på den L2-instansen. En applikation eller ett företag kan också ha sin egen L2-instans helt för sig själv. Problem med privata data:Åttio procent av vår data anses vara känslig, intern eller personligt identifierbar klient-, kund- eller användardata. Kryptering räcker inte. Alla data kan deanonymiseras och dekrypteras givet tid. Och alla som har en full nod måste för alltid knäcka bitarna på huvudboken. Så jag gillar inte att ens lägga krypterad data i en offentlig kedja. Vissa L2-tekniker (som validium, sidokedjor och Arbitrum SCSC) kan hålla all L2-data inom L2-instansen och utanför L1.
Om flera företag skriver data till samma delade L2-instans kommer de att kunna se varandras data (som ett konsortium), men om ett företag har en egen instans kan data hållas privat. Säkerhetsproblem:Krypterad data är fortfarande data. Det strider mot vår policy att lagra PII och klientdata, även krypterad, på peer-to-peer-plattformar. Medan sammanslagningar skriver all transaktionsdata till L1, gör inte andra lösningar det. Vissa L2-lösningar gör att ett företag kan köra sin egen privata L2-instans som håller all L2-data för sig själv, på servrar som kontrolleras av det företaget.
I slutändan bör behovet av att placera känsliga data på en blockkedja ifrågasättas, eftersom det finns designmönster som undviker att använda blockkedjor som databaser och fokuserar på att utnyttja sina styrkor, samtidigt som känslig data behålls utanför kedjan. Datalokalitetsproblem:GDPR kräver att jag kan redogöra för var PII-data lagras, även när den är krypterad. Och jag måste kunna radera den datan permanent på begäran. Om data sitter permanent på ett valfritt antal noder som inte kontrolleras av mig överallt... ja. Med vissa L2-lösningar som inte skriver transaktionsdata till L1 kan en L2-operatör tillhandahålla en GDPR-kompatibel L2-tjänst som lagrar L2-data på en känd plats med den säkerhetsnivå som krävs. Eller ett företag kan köra sin egen privata L2-instans och ha fullständig kontroll över L2-data. Ansvarig part Problem:Min juridiska struktur kräver att det finns en ansvarig part som hanterar alla aspekter av min data och affärslogik. Om jag lägger data på Mainnet förlorar jag en nyckelansvarig part. Vissa L2-lösningar drivs av en operatör, som kan erbjuda och hållas ansvarig för SLA och säkerhet på traditionellt sätt. Transaktionskostnadsproblem:Ethereum-gaspriserna har stigit . Om jag behöver genomföra miljontals transaktioner kommer det att bli vansinnigt dyrt. Det här är ett annat problem som L2 var speciellt utformad för att lösa. Eftersom förankring av L2-transaktioner på L1 förbrukar mycket mindre gas än att genomföra transaktionerna direkt på L1, är L2-transaktionskostnaden mycket lägre.
De exakta besparingarna beror på L2-tekniken. L2:er som statliga kanaler, plasmavalidium och sidokedjor är de mest ekonomiska, medan L2:er som lagrar transaktionsdata på L1, som sammanslagningar, erbjuder mindre (men fortfarande betydande) besparingar. Kostnader Oförutsägbarhet Problem:Gaspriserna går upp och ner. Kryptopriserna går upp och ner. Det är för svårt att förutse hur mycket mina transaktioner kommer att kosta. Med vissa L2-implementeringar finns det en operatör som kan ta ut ett fast/garanterat pris per transaktion.
Sidokedjeoperatörer kan erbjuda schablonprissättning för varierande varaktighet av kedjedrift (3 månader, 6 månader, 12 månader). Transaktioner inom kedjan skulle i stort sett vara gasfria.
Även under rörlig marknadsbaserad prissättning minskar L2 avsevärt kostnaden per transaktion. Beroende på typen av L2, kan L2-transaktionskostnaderna variera linjärt eftersom gaspriserna på L1 varierar (rollups), eller kan vara relativt frikopplade eftersom mindre data lagras på L1 (validium, plasma, etc.). Givet lägre totalkostnad kan konsekvenserna av variationen minska.Kryptobetalningsproblem:Jag måste hålla krypto och betala för transaktioner i krypto. Att få mitt företags finansförvaltning bekväm med att köpa och hålla och betala i krypto är en mardröm. Om L2-instansen drivs av en tredjepartsoperatör kan operatören acceptera betalning för L2-transaktioner i valfri form av valuta de väljer, inklusive traditionell fiat.
Detta problem kan också åtgärdas på L1 av transaktionsförmedlare (aka bensinstationer) som kan acceptera betalning i fiat eller tokens och vidarebefordra transaktioner till L1-nätverket. Strategiläckor Problem:Transaktionsmetadata kan användas för att spela systemet eller samla in/analysera för strategisk kontraspionage eller korp. spionage. I en ålder av AI kan alla spårningsaktiviteter som görs på en permanent, offentlig redovisning användas för att ta reda på vem som gör vad, även om det bara är små förändringar av Merkle-försök.L2:er baserade på vissa teknologier (som validium, sidokedjor, Arbitrum SCSC) kan behålla L2-transaktionsinformationen inom L2 och utanför L1. L2 kan sedan begränsa åtkomst till auktoriserade enheter. Om ett företag driver sin egen privata L2-instans kan uppgifterna om deras transaktioner hållas privata (även om det kan finnas begränsade användningsfall för L2:er som endast används av en enhet).
Det är också möjligt att använda ett tillvägagångssätt som Baseline, där transaktioner mellan enheter utförs privat och endast ZK korrekthetsbevis (samlade i omgångar) skickas till antingen L1 eller L2.
En ny teknik som kallas zkzk-rollup (t.ex. Aztec 2.0) tillåter konfidentiella transaktioner inom L2 så att andra på samma L2-instans inte kan dechiffrera dina transaktioner.
Även under utveckling är datasekretess- och förvaringsprotokoll som förlitar sig på åtkomsträttshantering, distribuerad nyckelgenerering och betrodda exekveringsmiljöer för att hålla data privat utom i en TEE inom Layer 2. Confidential Code Problem:Du kan inte bara dölj data med något som ZK-SNARKS och tänk att allt är ok ur ett företagsperspektiv. Många affärsavtal ingår i kod... affärslogik. Om en maskin kan exekvera ett smart kontrakt kan den dekompilera och titta på logiken, och det kan läcka känslig information. Vissa L2:or stöder inte smarta kontrakt och exekvering av kod.
Om dina transaktioner kräver kodexekvering kan det vara möjligt att använda ett tillvägagångssätt som Baseline, där transaktioner mellan enheter utförs privat och endast ZK korrekthetsbevis skickas till antingen L1 eller L2.
En framväxande teknologi som kallas zkzk-rollup (t.ex. Aztec 2.0) tillåter konfidentiella transaktioner inom L2 så att andra på samma L2-instans inte kan dechiffrera dina transaktioner. Känslomässigt:Bitcoin och Ethereum är avsedda för icke-reglerad/offentlig bokanvändning (dvs. kriminell verksamhet) . Jag vill inte förknippas med det, och jag är rädd för vad som kan hända om regeringar slår ner på offentliga blockkedjor. När offentlig användning av Ethereum växer, blir det svårare för en regering att censurera eller blockera nätverket. Även om det kan finnas globala ansträngningar för att ta bort eller minska användningen av kriminella aktörer, är det osannolikt att det kommer att förhindra tillväxten av decentraliserade datorer och offentliga nätverk. Fördelarna med delade protokoll, digital valuta/tokens, förtroendelös och automatiserad kontraktsutförande, tillsammans med andra Web3-fördelar är för kraftfulla för att stoppas.
Att köra dina applikationer på L2 kan ge en viss grad av isolering från den offentliga L1-blockkedjan. L2 kan drivas mer som traditionell affärs-IT-infrastruktur med säkerhet och ansvarsskyldighet, och fungera som en buffert mellan ditt företag och oreglerad aktivitet, men har fortfarande L1 som domare, plus fördelarna med oföränderlighet, interoperabilitet och den gemensamma referensramen som L1 tillhandahåller.
Skalningslösningar för lager 2 för Ethereum Mainnet har varit under utveckling under de senaste åren och är nu redo att ta sig an riktiga applikationer. Att bygga din applikation på en Layer 2 kommer att hjälpa dig att uppnå mycket högre genomströmning än att köra alla dina operationer direkt på Layer 1. Och det kommer att minimera transaktionskostnaderna. Layer 2 kan också hjälpa till att lösa problem relaterade till integritet, konfidentialitet för transaktioner och dataförvaring. Och det kan hjälpa till att undvika behovet för företag att hantera kryptovaluta-tokens och prisvolatilitet när de betalar för transaktioner.
Det finns många L2-lösningar, var och en med sina egna styrkor och svagheter och kompromisser. Det är tillrådligt att noga tänka igenom din ansökans krav och studera de tillgängliga alternativen innan du gör ett urval.
Exempel på L2-lösningar som är produktionsklara eller snart är:
Tack till John Wolpert, Ken Fromm och Jack Leahy för deras input om den här artikeln.