Blockchain Address 101: Vad är adresser på Blockchains?

Blockchain-adresser är ett viktigt begrepp i kryptovalutor och blockkedjor.

I vår guide förklarar vi. Vad adresser är, hur de skapas och vad skillnaderna mellan olika typer av adresser på olika blockkedjor är.

Vad är adresser på blockkedjor? Blockchain-adress 101

Vad är adresser på blockkedjor? Blockchain-adress 101

I de tidiga dagarna av Bitcoin var det möjligt att skicka betalningar till en IP-adress som 104.25.248.32 (vilket är blockgeeks.com). Detta planerades vara en bekväm metod för att använda Bitcoins utan att hantera obehagliga offentliga nycklar och adresser. Men efter att Bitcoin-utvecklarna insåg att detta sätt att skicka mynt kunde vara föremål för allvarliga människa-i-mitten-attacker, var alternativet inaktiverat och kom aldrig tillbaka.

Denna anekdot från Bitcoins tidiga dagar verkar ha mestadels historiska värden. Men det demonstrerar vad en adress är: Det är inte något speciellt eller något som är i sten. Det är bara en platshållare att acceptera och skicka blockchain-transaktioner. Som en IBAN- eller SWIFT-adress.

Adressen i sig spelar ingen roll eller dess format. Det enda som är viktigt är att adressen tjänar sitt syfte – att möjliggöra betalningar till en enhet som har unik information. Vanligtvis en privat nyckel för att endast få tillgång till medlen. Adressen är inget annat än en säker identifierare.

Men medan SWIFT- eller IBAN-nummer tilldelas av centrala myndigheter som banker, finns blockchain-adresser. Alla möjliga blockchain-adresser fanns redan långt innan en plånbok hittade den. Anledningen är att blockchain-adresser är resultatet av en matematisk operation.

Börja din gratis testversion idag

Gratis provperiod

Den offentliga nyckeln: Där blockchain-adressgenerering börjar

Efter att Pay to IP hade övergivits i Bitcoin blev P2PKH det nya standardformatet för bitcoin-adresser. Du kanske vet det; det ser ut så här:

1K31KZXjcochXpRhjH9g5MxFFTHPi2zEXb

En vanlig P2PKH-adress har ungefär 34 tecken och börjar med en 1. P2PKH är förkortningen för “Pay To Public Key Hash.” Det betyder att du betalar till en hash av en offentlig nyckel. För nybörjare kan det här låta skrämmande komplex, så låt oss vänta igenom processen att bygga en sådan adress att lära sig vad det är.

Varje plånboksprogramvara du använder kan enkelt skapa en P2PKH-adress, eller, för att vara mer exakt: hitta så många av den som du vill. Det är ingen raketvetenskap, utan en kombination av flera icke-exceptionella kryptografiska operationer.

Först samlar din plånbok entropi och använder den för att generera en privat ECDSA-nyckel. ECDSA är den kryptografiska algoritmen i kärnan av bitcoin-adresser. Det är en asymmetrisk signaturalgoritm, vilket innebär att du kan signera meddelanden med PRIVATE-tangenten och verifiera signaturen med PUBLIC-nyckeln. Med ECDSA kan du enkelt ge världen informationen för att bevisa att du – och bara du – är författare till ett meddelande genom att underteckna det. Det liknar fysiskt att skriva på ett brev.

Så efter att ha skapat den privata nyckeln med entropi hämtar plånboken den offentliga nyckeln från den. Det gör det genom att välja några slumpmässiga koordinater på en viss elliptisk kurva och göra några beräkningar. Detaljer är inte viktiga. Det som är viktigt, vilken offentliga nyckel är allt du behöver för att skicka och samla in betalningar. I början användes den offentliga nyckeln för att ta emot medel.

Men snart utvidgades konceptet. Den offentliga nyckeln är inte bara mycket lång och obehaglig – cirka 65 tecken – men kan också vara föremål för skrivfel. Vidare kan exponering av det också sätta dig på risker om ECDSA någonsin bryts, till exempel genom kvantberäkning. Det är därför bitcoin-utvecklarna skapade en metod för att härleda en adress från den offentliga nyckeln.

Skapa Bitcoin Blockchain-adressen

För att skapa adressen trycker din plånbok på den offentliga nyckeln genom en serie kryptografiska algoritmer. Grovt sett är det här som händer:

Programvaran hashes den offentliga nyckeln med SHA 256 och resultatet med RIPEMD-160. Sedan lägger den till byten 00 som ett prefix i början av den resulterande strängen – detta är anledningen till att P2PKH-adresser börjar med en “1” – och fyra kontrollsumbyte i slutet. De fyra kontrollsumman bytes genereras genom att hasha resultatet två gånger med SHA 256 och ta de första fyra byten. Sedan omvandlar din plånbok resultatet till en base58-sträng. Och voilá: vi har den bitcoin-adress vi känner och vi älskar.

Du behöver inte förstå de kryptografiska detaljerna. Det viktiga är att adressen representerar en offentlig nyckel på ett bättre läsbart sätt och lägger till en kontrollsumma som förhindrar att du blir offer för ett skrivfel. När du klistrar in en adress i din bitcoinplånbok kontrollerar den prefixet och beräknar kontrollsumman. Om den inte stämmer avvisar den adressen. Detta gör det omöjligt att skicka pengar till fel adress på grund av ett skrivfel.

Om du har en privat nyckel för en adress kan bara du underteckna en transaktion med kryptovaluta-token tilldelad denna adress – medan alla som känner till din adress kan verifiera giltigheten av din signatur. Denna enkla process – att signera en transaktion, verifiera signaturen – är mer eller mindre allt som en kryptovalutatransaktion gör.

Men bitcoin har mer avancerade adresser: den så kallade P2SH-adresser. Denna förkortning står för “Pay to Script Hash”. Det betyder att du inte betalar till hash för en offentlig nyckel utan till hash för ett skript. För att signera en transaktion behöver du inte ange signaturen som matchar en viss offentlig nyckel, utan ett skript som matchar en viss hash. Denna typ av adresser möjliggör mer flexibla metoder för att verifiera dig själv, till exempel de som används i multisig-adresser, där två parter tillhandahåller information som sammanfattar det skript som behövs. Dessa adresser använder prefixet 05, vilket är anledningen till att de börjar med ett “3”.

Det behöver dock en annan guide för att fullständigt beskriva magin med P2SH-adresser. Här fokuserar vi på själva adresserna och lämnar bitcoin för att se hur andra kryptovalutor skapar adresser.

Vad är adresser på blockkedjor? Blockchain-adress 101

Adresser i andra Cryptocoins

Många kryptovalutor använder nästan samma adressformat som bitcoin. Till exempel använder Litecoin, Dash och Dogecoin samma kryptografiska procedurer för att generera en adress: ECDSA, SHA 256 och RIPEMD 160.

Den enda skillnaden är prefixet för RIPEMD-160 hash. Medan Bitcoins prefix 00 resulterar i adresser som börjar med “1” använder Altcoins som Dash, Litecoin eller Dogecoin andra prefix så att adresserna börjar med “L” (Litecoin), “X” (Dash) eller “D” (Dogecoin).

Eftersom dessa mynt använder samma kryptografiska algoritm kan du använda samma privata och offentliga nycklar för att spara mynt i alla dessa kryptovalutor. Delvis kan du till och med lagra dem på samma adresser. Till exempel använder Litecoin och bitcoin samma prefix för P2SH-adresser – 05 – så att det är möjligt lagra både Bitcoin som Litecoin på samma adress.

Andra kryptovalutor använder dock andra system för att generera adressen. Till exempel är Monero baserat på Cryptonote-algoritm. Denna algoritm distribuerar en annan kryptografisk signaturalgoritm för att generera den offentliga nyckeln, EdDSA. Cryptonote-valutor har så kallade ringsignaturer, vilket ger mer integritet, eftersom du inte kan avgöra vilken nyckel en transaktion undertecknades. Av denna anledning måste Cryptonote-adresser innehålla två offentliga nycklar, en vy och en spenderingsnyckel.

Som med bitcoin-adresser lägger Cryptonote till ett prefixbyte och hasar resultatet. Den använder dock Keccak-256 istället för dubbel SHA 256 för att generera fyra kontrollsumbyte, som läggs till i slutet av strängen. Efter att ha konverterat resultatet till base58 får du den slutliga adressen, som är längre än i bitcoin. Det ser ut så här:

43ZZViHQKd42X7cajEtc6NUoxG4AvyMu3ZqpGTBP85uhEfYoPVAuGHxJcomMHEPp3NWiKJRUMnuAJ7dfBrPTcfjYMPJzz2a

Denna mängd adresser visar återigen att adresser bara är ett medel för att acceptera en betalning som tilldelas en viss offentlig nyckel. För den här basfunktionen spelar det ingen roll vad du gör med den offentliga nyckeln, vilken kryptografisk algoritm du använder för att konvertera den till en adress och hur adressen ser ut.

Byggnadsproceduren för en adress kan dock ha en viktig inverkan på säkerhet, integritet och användbarhet. Utan kontrollsummaintegrationen kunde bitcoinadressen skrivas fel, och utan integrering av visningsnyckeln i adressen skulle Monero inte vara så privat som den är. En titt på Ethereums adresser etablerar ytterligare denna insikt.

Ethereum-adresser

Liksom många saker i kryptovaluta börjar adressämnet bli riktigt spännande när det gäller Ethereum. Många människor som började med Bitcoin och sedan försökte Ethereum är förbryllade över adressformatet, vilket är en lång, hexadecimal sträng som börjar med 0x, till exempel “0x0eb81892540747ec60f1389ec734a2c0e5f9f735”.

Tekniskt sett liknar Ethereums adressgenerering Bitcoin, men tar inte hela vägen. Du börjar med en privat nyckel och använder ECDSA för att generera en 64-byte offentlig nyckel. Som vi vet från bitcoin. Då har du den här nyckeln med Keccak-256. Resultatet är en 32-byte-sträng. De första 12 av dessa byte släpps, de återstående 20 byten är en adress på 40 tecken, till vilken vanligtvis prefixet 0x läggs. Det är allt. Förutom bitcoin eller Cryptonote, förvandlar Ethereum inte adressen till base58, så den är i hexadecimal (0-F).

En annan skillnad mellan ethereum och andra kryptovalutor är att Ethereum-adresser inte har någon kontrollsumma. Alla hexadecimala 40-teckensträngar kan vara en etereadress, vilket är anledningen till att etereumutvecklare avskräcker användare från att manuellt skriva en sådan adress, eftersom ett enda skrivfel kan leda till förlust av medel.

Jämfört med adresserna till andra kryptovalutor verkar eteradresser vara oavslutade, grova och hänsynslöst farliga för användaren. För en kryptovaluta som har det näst största marknadsvärdet och som marknadsförs som den mest innovativa kryptovalutan alls, verkar detta vara överraskande låg nivå.

Den ursprungliga anledningen till detta var att när Ethereums första version, Frontier, släpptes, brydde sig ingen riktigt. Vad vi idag använder som adresser var aldrig avsedda att användas permanent som sådana. Från början syftar Ethereum-utvecklare att bygga en smart kontraktbaserat namnregister, med vilka betalningar enkelt kan skickas till namn eller domäner och så vidare. På lång sikt, med ethereum, kan kryptokurrency stänga cirkeln och komma tillbaka till den lättanvända betalningen Satoshi avsåg vid implementering av Pay to IP.

Men som Påpekar Jeff Coleman, Det finns en annan, en kanske viktigare anledning till att Ethereum inte använder utformade adresser som bitcoin: Utvecklarna tycker att det kan göras bättre. Kom ihåg att en adress bara är en kryptografisk metod för att representera den information som behövs för att tilldela medel till en privat nyckel. Detta kan göras med kontrakt som tilldelar denna information till namn, men detta kan också göras med mer sofistikerade adressformat än bitcoin använder.

Favoritformatet för Ethereum-utvecklare är för närvarande ICAP format, som ser ut så här:

E7338O073KYGTWWZN0F2WZ0R8PX5ZPPZS

Liksom bitcoin-adresser använder den base58-tecken och innehåller en kontrollsumma.

”Men det är inte allt, folkens! För det första är ICAP en helt giltig Internationellt Bankkontonummer (eller IBAN), “förklarar Coleman,” det betyder att befintlig bankprogramvara kan förstå det och interagera med det. ” IBAN är den internationella identifieraren för kundkonton i banksektorn. Den består av 32 skiftlägeskänsliga alfanumeriska tecken som innehåller en landskod, en kontrollsumma, banknummer samt kontonummer. ICAP använder en XE som landidentifierare och sträng med 16 till 30 alfanumeriska tecken som innehåller information som konto, tillgång, kontrollsumma eller institution.

Colemen fortsätter: ”För en annan behöver ICAP inte använda hexadecimala adresser. Istället, när vi alla byter till att använda namnreg-kontrakt kan det bara använda din mänskliga läsbara sträng för att sluta med något som “XE81ETHXREGJEFFCOLEMAN”, som fortfarande matchar bankformat men det är faktiskt möjligt att komma ihåg! ”. På lång sikt kan Ethereum-adresser bli minnesvärda och kompatibla med det befintliga banksystemet.

Stödet för ICAP-adresser växer för närvarande. De vanliga klienterna möjliggör redan generering av ICAP-adresser, men använder fortfarande den äldre adressen som standard. För att göra detta säkrare utvecklade Vitalik Buterin en liten förbättring för att lägga till kontrollsummor i form av kapitalisering. Med EIP55-genererade adresser, övre fall fungerar som kontrollsumma. Så om en adress har minst en stor bokstav är den ogiltig om du gör ett skrivfel.

STEEM – där ditt användarnamn är din adress

Kryptovalutan STEEM redan implementerat ett system som liknar vad Ethereum syftar till att uppnå. I STEEM är ditt användarnamn din plånbokadress.

STEEM är en kryptovaluta baserad på BitShares-konceptet. Det är sammankopplat med social plattform Steemit, där användare kan ”bryta” Steem-mynt genom att samla in röster för inlägg. Detta ”subjektiva bevis på arbete” är en smart kombination av Proof of Stake och Proof of Work. Systemet som helhet är relativt komplext, eftersom det innehåller “delegater”, som väljs för att göra beviset, och tre former av symbol, STEEM, STEEM-makt och STEEM-dollar; det är också svårt att bedöma om STEEM är så decentraliserat som bitcoin och Ethereum, eftersom stora delar av det är baserade på den privat värdplattform Steemit, som är Steems huvudklient. Det verkar inte finnas några andra plånböcker tillgängliga.

Adresskonceptet är dock spännande. På ett mer centraliserat sätt implementerade STEEM det ethereum syftar till att bygga med smarta kontraktsregistratorer: Användarna får en privat nyckel, som han kan använda för att underteckna sin transaktion, som med någon annan kryptovaluta. Adresser är dock ingen kryptografisk härledning av den privata nyckeln, utan bara användarnamnen på Steemit. Förmodligen är dessa användarnamn kopplade till den offentliga nyckeln i en offentlig databas på Steemit, så att det åtminstone är möjligt för alla användare att validera en transaktion. Men ändå är den viktigaste delen av valideringen – kopplingen mellan offentlig nyckel och adress – inte baserad på matematik utan på förtroende för plattformen Steemit.

Det användarnamnbaserade adressschemat för STEEM är intressant eftersom det ger en idealisk användbarhet. Men dess centraliserade och betrodda natur gör det otillräckligt för de flesta blockchain-användningsfall, som syftar till att decentralisera verifiering och ersätta förtroende med matematik. Åtminstone saknar systemet transparens.

En smart kontraktsbaserad namnregistrator, som Ethereum, syftar till att bygga ovanpå sin blockchain, men skulle kunna kombinera det bästa från båda världar: bitcoins decentraliserade, tillförlitliga natur – och användarvänligheten för STEEMs namnbaserade adresser.

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