Förstå Ethereum Constantinople: A Hard Fork

Efter månader av testning och fördröjning är Ethereum Constantinople äntligen på väg. Den efterlängtade Ethereum-uppdateringen förväntas genomföras i slutet av januari och medför många förändringar.

Konstantinopel är del 2 av uppdateringen av Metropolis. Vi har täckt Metropolis i detalj innan. Så, i den här guiden, låt oss sätta Konstantinopel under mikroskopet och se vad alla förändringar det medför i ekosystemet.

Ethereum Konstantinopel

Ethereum Constantinople kommer att bli en hård gaffel. Med hela “ETH-ETC” och “Hash-kriget” sagan lyckas termen framkalla en ganska negativ bild. Men så är inte nödvändigtvis fallet hela tiden. Så innan vi ens börjar något, låt oss informera dig om gafflar och varför de är väsentliga.

Vad är en gaffel??

En gaffel är ett tillstånd där blockkedjans tillstånd avviker i kedjor där en del av nätverket har ett annat perspektiv på transaktionens historia än en annan del av nätverket. Med andra ord är det en avvikelse i perspektivet av blockchain-tillståndet.

Vad är en mjuk gaffel?

När en kedja behöver uppdateras finns det två sätt att göra det: en mjuk gaffel eller en hård gaffel. Tänk på soft fork som en uppdatering i programvaran som är bakåtkompatibel. Vad betyder det? Anta att du kör MS Excel 2005 på din bärbara dator och att du vill öppna ett kalkylark inbyggt i MS Excel 2015, du kan fortfarande öppna det eftersom MS Excel 2015 är bakåtkompatibelt.

MEN, efter att ha sagt att det är en skillnad. Alla uppdateringar som du kan njuta av i den nyare versionen visas inte i den äldre versionen. Återgå till vår MS Excel-analogi igen, antar att det finns en funktion som gör att du kan lägga in GIF i kalkylbladet i 2015-versionen, du kommer inte att se dessa GIF i 2005-versionen. Så i princip ser du all text men kommer inte att se GIF.

Vad är en hård gaffel?

Den primära skillnaden mellan en mjuk gaffel och hård gaffel är att den inte är bakåtkompatibel. När den väl har använts går det absolut inte tillbaka. Om du inte går med i den uppgraderade versionen av blockchain får du inte tillgång till några av de nya uppdateringarna eller interagerar med användare av det nya systemet alls. Tänk PlayStation 3 och PlayStation 4. Du kan inte spela PS3-spel på PS4 och du kan inte spela PS4-spel på PS3.

Ethereum Constantinople: Hard Fork

Andreas Antonopoulos beskriver skillnaden mellan hård och mjuk gaffel så här: Om en vegetarisk restaurang skulle välja att lägga fläsk till menyn skulle det anses vara en hård gaffel. om de skulle besluta att lägga till veganska rätter, kan alla som är vegetarianer fortfarande äta vegan, du behöver inte vara vegan för att äta där, du kan fortfarande vara vegetarian för att äta där och köttätare kan äta där också så det är en mjuk gaffel.

Så det är vad en gaffel och en hård gaffel är.

Saken är att dessa gafflar händer hela tiden. Alla system behöver uppdateras, vilket i grunden är en gaffel. Det är först när samhället är splittrat om en gaffel när problemen inträffar. Tack och lov är Ethereum-communityn inte helt splittrad om Konstantinopels hårda gaffel. Det finns naturligtvis fortfarande några mindre frågor som vi kommer att prata om senare (se avsnitt EIP 1234 nedan).

De fyra stadierna av Ethereum

Det här är inte första gången Ethereum uppgraderar naturligtvis och det kommer inte att vara sista gången.

Ethereum var inte utformat för att bara vara ett valutametod. Den designades för att vara en plattform för decentraliserade applikationer. Innan den kan göra det måste den dock gå igenom olika tillväxtstadier. För varje steg “nivåeras” Ethereum genom att integrera fler och fler egenskaper som gör systemet mer robust och sömlöst.

Den kompletta lanseringsprocessen för Ethereum delades in i fyra steg. Detta gjordes för att se till att olika faser fick sin egen utvecklingstid och att varje steg utvecklades så effektivt och optimalt som möjligt..

De fyra stegen är som följer:

  • Gräns: Det var vad alla fick när Ethereum lanserades.
  • Hemman
  • Metropol: Den aktuella fasen. Eftersom det finns så många uppdateringar i Metropolis delades det upp i Byzantium och Konstantinopel
  • Lugn: Den sista etappen.

Introduktion till Ethereum Konstantinopel

Konstantinopels hårda gaffel förväntas ske runt blockhöjd 7 080 000 vilket förväntas inträffa någon gång mellan den 14 januari och den 18 januari. Den här uppdateringen kommer att introducera fem Ethereum Improvement Proposals eller EIPs till ekosystemet:

  • EIP 145: Utvecklad av två eterumutvecklare, Alex Beregszaszi och Pawel Bylica som introducerar en infödd ”bitvis förskjutning” som kan springa genom bytkod till en kostnad som liknar andra aritmetiska operationer.
  • EIP 1052: Erbjuder ett sätt att optimera storskalig kodkörning på ethereum. Detta gör att endast den komprimerade koden som innehåller viktiga kontraktsdata kontrolleras, i motsats till hela koden. Detta författades av Nick Johnson och Bylica.
  • EIP 1283: Denna EIP är baserad på EIP 1087 som återigen skrevs av Nick Johnson. Denna EIP hjälper till att minska mängden gasutvecklare som behöver betala för att köra och genomföra sina smarta kontrakt genom att minska överdriven och onödig gasanvändning.
  • EIP 1014: Denna EIP skapades av Vitalik Buterin själv. Detta kommer i grund och botten att hjälpa Ethereum att utnyttja statliga kanaler så att de kan kommunicera med adresser utanför kedjan. Detta kommer att hjälpa till med skalbarheten för hela systemet.
  • EIP 1234: Enkelt den mest kontroversiella uppdateringen som släpptes chef för Parity, Afri Schoedon. Detta kommer gradvis att ta bort svårighetsbomben från Ethereums system och minska blockbelöningen från 3 ETH till 2 ETH under en 12-månadersperiod.

Nu ska vi titta på alla dessa EIP: er i detalj.

EIP 145 – Bitvis förskjutning

En bitförskjutning är en bitvis operation som förflyttar varje siffra i ett nummers binära representation åt vänster eller höger ett antal gånger. ”<<”Är den logiska vänsterskiftoperatören medan“>>”Är den logiska högerskiftoperatören.

För att förstå hur det fungerar, låt oss överväga ett exempel.

3 kan skrivas i ett binärt format med 8-bitars notation, så här: 00000011

Om vi ​​vill högerförskjuta detta med 1, kommer det att se ut så här:

00000011 >> 1

Detta kommer att trycka siffrorna åt höger sida en. Den sista siffran, som i detta fall är ”1”, tas bort helt och går förlorad. Dessutom läggs alltid ett “0” till i början.

Så, 00000011 >> 1 blir 00000001 eller 1.

På samma sätt, om vi lämnade skift 3 med 1, får vi:

00000011 << 1

I det här fallet flyttas siffrorna åt vänster och den siffra som är mest vänster, i det här fallet, “0” skjuts ut. Därefter läggs ett “0” till i slutet.

Så, 00000011 << 1 blir 00000110 eller 6.

Nu, om du tittar in lite djupare, kommer du att observera något ganska fascinerande.

Om du lämnade skiftar ett binärt tal N gånger, multiplicerar det som multiplicerar det numret med 2 ^ N gånger.

 0010 << 1 –>  0100

Så, 0010 är 2 och vänsterförskjutning som med 1 ger oss 0100, vilket är 4 eller 2 * (2 ^ 1).

Två vänstra skift ger oss 0010 << 2 -> 1000 vilket är 8 eller 2 * (2 ^ 2).

Å andra sidan, om vi höger skiftar ett nummer N gånger, delar vi numret med 2 ^ N och kvoten är svaret (du slänger resten).

Så, låt oss höger skifta 8 två gånger. 1000 >> 2 ger oss 0010 vilket är 2 eller 8 / (2 ^ 2).

Ok, så du undrar förmodligen, vad är poängen med att veta alla dessa saker och hur kommer det att hjälpa mig i Ethereum? Tänk på antalet operationer som bitvis förskjutning inkluderar:

  • Exponentoperation
  • Multiplikation eller delning

Dessa operationer när de görs i följd kan bli riktigt dyra. Men en enda operation som täcker båda dessa är mycket billigare. Detta hjälper Ethereum-utvecklare med kodoptimering.

Vad detta gör är att det kommer att hjälpa underliggande decentraliserade applikationer som CryptoKitties att bearbetas snabbare av Ethereum Virtual Machine (EVM).

EIP 1052 – Optimera storskalig kod

Denna EIP hjälper till att specificera en ny opkod, EXTCODEHASH, som returnerar keccak256-hash för ett kontrakts kod. Tankeprocessen bakom detta är att endast tillåta att viktiga uppgifter i kontraktskoden kontrolleras snarare än själva koden.

Många kontrakt behöver utföra kontroller av bytkoden för ett kontrakt, men behöver inte nödvändigtvis själva bytkoden. T.ex. ett smart kontrakt kan behöva kontrollera ett annat kontrakts bytkod om det tillhör en viss grupp eller inte, eller det kan utföra vissa analyser på kod och vitlista alla kontrakt med matchande bytkod om analysen passerar.

För närvarande gör kontrakten detta extremt ineffektivt genom att använda EXTCODECOPY opcode men det är extremt dyrt för stora kontrakt. EXTCODEHASH-opoden returnerar bara keccak256-hash för ett kontrakts bytkod och hjälper utvecklaren att spara mycket pengar.

EIP 1283 – Netto gasmätning

Byggd på EIP 1087 och EIP 1153 föreslår EIP 1283 en ny metod för “gasmätning” för SSTORE-opoden som möjliggör:

  • Att debitera användare en avgift för att hålla data som lagras permanent i blockchain
  • Minska för stora bensinkostnader

Enkelt uttryckt minskar det beloppet som utvecklare behöver betala när de bygger smarta kontrakt. Som vi nämnde tidigare är gaskostnaderna ett verkligt problem för utvecklare eftersom smarta webbhotell tar mycket pengar. Som Nick Johnson, författaren till det ursprungliga förslaget, uttrycker det,

”I vissa fall tidigare laddade vi gas för saker som faktiskt inte hände eller faktiskt inte kostade några verkliga resurser och nu försöker vi justera saker så att vi bara laddar gas som stämmer överens med det arbete vi faktiskt måste göra.”

Genom att ta ut en avgift för användarna för att hålla data som lagras permanent i blockkedjan kommer det att hindra dem från att fortsätta göra det och “använda lagring för saker du inte behöver dem för.”

EIP 1014 – Statliga kanaler

Så, vad är statliga kanaler?

En tillståndskanal är en tvåvägskommunikationskanal mellan deltagare som gör det möjligt för dem att genomföra interaktioner, som normalt skulle inträffa på blockchain, utanför blockchain. Vad detta kommer att göra är att det kommer att minska transaktionstiden exponentiellt eftersom du inte längre är beroende av en tredje part som en gruvarbetare för att validera din transaktion.

Låt oss titta på kraven för att göra en kanal utanför kedjan?

  • Ett segment av blockchain-tillståndet är låst via multisignatur eller någon form av smart kontrakt, vilket överenskomms av en uppsättning deltagare.
  • Deltagarna interagerar med varandra genom att underteckna transaktioner mellan varandra utan att skicka något till gruvarbetarna.
  • Hela transaktionsuppsättningen läggs sedan till blockchain.

Statskanalerna kan stängas vid en punkt som är förutbestämd av deltagarna enligt Slock.it-grundaren Stephan Thual. Det kan antingen vara:

  • Tiden har förflutit t.ex. deltagarna kan komma överens om att öppna en statskanal och stänga den efter två timmar.
  • Det kan baseras på det totala antalet transaktioner som gjorts t.ex. stäng kedjan efter transaktioner till ett värde av 100 dollar.

Ethereum Constantinople: Hard Fork

Bild med tillstånd: Stephan Tual Medium Article

Så på bilden ovan. Vi har en bil som direkt interagerar med laddaren och gör totalt 39,19 dollar i transaktioner. Slutligen, efter en serie interaktioner, läggs hela transaktionsbiten till blockchain. Tänk dig hur mycket tid det skulle ha tagit om de var tvungna att köra varje enskild transaktion genom blockchain!

Det är det huvudsakliga användningsfallet för en statskanal, det kommer att hjälpa till med skalbarhet i blockchain. Faktum är att Bitcoins blixtnätverk i grunden är en snygg statskanal som endast handlar om betalningar.

EIP 1014, som arbetas personligen av Vitalik Buterin, gör det möjligt att göra interaktioner med adresser som inte existerar på blockchain, men de kan lita på att

“Endast möjligen så småningom innehålla kod som har skapats av en viss bit init-kod.”

Den statliga kanalutvecklaren Liam Horne har beskrivit EIP 1014 som “en betydande prestationsökning i statliga kanaler.”

EIP 1234 – Övergång av POS

Okej, så innan vi förstår betydelsen av denna EIP, låt oss förstå vissa saker, främst:

  • Bevis på arbete
  • Svårighet
  • Bevis på insats

Nu har vi täckt allt detta i vår artikel om Casper-protokollet som du kan läsa precis här.

Vad är bevis på arbete?

De flesta kryptovalutor inklusive Bitcoin körs på “proof-of-work”. Arbetsbevis som en process har följande steg:

  • Gruvarbetarna löser kryptografiska pussel för att “bryta” ett block för att lägga till blockchain.
  • Denna process kräver en enorm mängd energi och beräkningsanvändning. Pussel har utformats på ett sätt som gör det svårt och beskattar systemet.
  • När en gruvarbetare löser pusslet presenterar de sitt block för nätverket för verifiering.
  • Att verifiera om blocket tillhör kedjan eller inte är en extremt enkel process.

Ethereum använder från och med nu konsensusmekanismen Proof of Work (POW). Nu när du vet vad POW är och vilken roll gruvarbetarna spelar är det dags att förstå vad “svårighet” betyder.

Vad är svårighet?

Okej, så innan vi förstår begreppet, låt oss göra ett tankeexperiment.

Idén bakom gruvdrift är att gruvarbetare ska använda sin gruvkraft för att lösa dessa kryptografiskt hårda pussel och få Ethereum i retur som belöning. Till skillnad från Bitcoin har Ethereum inte ett stort tak på sin totala tillgång. Men du måste fortfarande reglera mängden eter som flyter runt i systemet för att se till att utbudet-efterfrågan inte går ur balans.

Det är därför både Bitcoin och Ethereum har en “svårighets” -parameter hårdkodad i sitt system. Svårigheten säkerställer att tiden det tar mellan skapandet av blocken förblir densamma. Så, om skapandetiden för blocket är för låg, kommer svårigheten att öka och om den är för hög, kommer den att gå ner.

Följande diagram visar svårigheten i Ethereums nätverk från 11 december 2018 till 11 januari 2019.

Ethereum Constantinople: Hard Fork

Nuvarande Svårigheter med Ethereum står på 2,691,878,354,888,980,00000000

Okej, så nu på Proof of Stake (PoS).

Vad är bevis på insats?

Bevis på insats kommer att göra hela gruvprocessen virtuell och ersätta gruvarbetare med validerare. Så här fungerar processen:

  • Validerarna måste låsa upp några av sina mynt som insats.
  • Efter det kommer de att börja validera blocken. Det betyder att när de upptäcker ett block som de tror kan läggas till i kedjan kommer de att validera det genom att satsa på det.
  • Om blocket läggs till får validerarna en belöning som är proportionell mot sina insatser.

Ok, så nu vet du de nakna detaljerna. Du känner till grunderna i PoW, PoS och svårigheter, låt oss nu gå in i de nakna detaljerna i EIP 1234.

Ethereums metod för PoS-implementering kallas Casper Protocol. Att göra en plötslig övergång från PoW till PoS kommer självklart att vara extremt tillrådligt. För att jämna ut övergången kommer Ethereum att introducera en hybrid PoW-PoS-konsensusmekanism som heter “Casper FFG”.

Som en del av denna övergång har de beslutat att också införa en “svårighetsbomb” som kommer att göra gruvdrift så svårt på Ethereum blockchain, att gruvarbetarna inte har något incitament att göra det och alla kommer så småningom att gå vidare till PoS. Den punkt där gruvdrift blir så svårt att det är nästan opraktiskt kallas ”istiden”. Svårighetsbomben introducerades den 7 september 2015 och har programmerats för att öka svårigheterna exponentiellt.

Nu är allt bra och bra, men Casper-protokollet är ännu inte klart för fullt genomförande och det finns fortfarande lite arbete kvar att göra. Det är därför de istället för att bara försena Konstantinopel som helhet har försenat svårighetsbomben med 29 miljoner sekunder eller cirka 12 månader.

Detta leder oss till nästa problem.

Eftersom svårigheten har försenats blir det mycket enklare för gruvarbetare att bryta block och de kommer att kunna göra det med mycket mer regelbundenhet. Så för att motverka detta kommer blockbelöningen att gå ner från 3 ETH till 2 ETH. Denna minskning kan betraktas som ett “stoppgap” för “leveransblödningen”.

Denna EIP har orsakat en enorm kontrovers i samhället. Författaren till EIP. Afri Schoeden har kallat det “det bästa förslaget att stabilisera emissionen samtidigt som bomben försenas.”

Det finns dock andra medlemmar i Ethereum-samhället som har motsatt sig denna EIP och hävdar att minskningen av svårigheten kommer att leda till mer centralisering.

Slutsats

Hela kryptosamhället ser fram emot Konstantinopels hårda gaffel. Genom att göra det kommer Ethereum att ta ytterligare ett stort steg mot lugn och fullständig implementering. Som ni kan föreställa er det några verkligt radikala förändringar som kommer inte bara att gynna utvecklare, men det kommer också att hjälpa dem att få fart mot full PoS-implementering. Vi måste bara vänta och se för att se hur allt fungerar.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me