Plånböcker som MetaMask måste bli mer användarvänliga PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Plånböcker som MetaMask behöver bli mer användarvänliga

Efter Ethereums efterlängtade sammanslagning är det en idealisk tid att fundera på hur vi också kan förbättra smarta kontrakt. I huvudsak appar som körs på blockkedjor, smarta kontrakt är en viktig komponent i våra Web3-applikationer. Men att interagera med dem är fortfarande ganska farligt, särskilt för icke-utvecklare. Många av incidenterna där användare förlorar sina kryptotillgångar orsakas av buggy eller skadliga smarta kontrakt.

Som Web3-apputvecklare är detta en utmaning som jag ofta tänker på, särskilt eftersom vågor av nya användare fortsätter att gå in i olika blockkedjeapplikationer. Till fullt ut lita på ett smart kontrakt, behöver en konsument veta exakt vad det kommer att göra när de gör en transaktion – för till skillnad från i Web2-världen finns det ingen kundsupportjourlinje för att ringa och få tillbaka pengar om något går fel. Men för närvarande är det nästan omöjligt att veta om ett smart kontrakt är säkert eller pålitligt.

Relaterat: Liquid staking är nyckeln till interchain-säkerhet

En lösning är att göra själva plånböckerna smartare. Tänk till exempel om plånböcker kunde berätta för oss om ett smart kontrakt är säkert att interagera med? Det är förmodligen omöjligt att veta det med 100% säkerhet, men plånböcker kan åtminstone samla och visa många av de signaler som utvecklare redan letar efter. Detta skulle göra processen enklare och säkrare, särskilt för icke-utvecklare.

Här är en djupare titt på fördelarna och nackdelarna med smarta kontrakt, varför de verkar som vilda västern nu och hur vi kan förbättra UX för att använda dem.

Löftet och faran med smarta kontrakt

För utvecklare har det en enorm potential att använda ett smart kontrakt som backend för sin app. Det ökar också potentialen för buggar och utnyttjande. Det är bra att smarta kontrakt kan skapas av utvecklare utan att fråga någon om lov, men det kan också utsätta användarna för avsevärd risk. Vi har nu appar som handlar om hundratals miljoner dollar utan några säkerhetsgarantier. Som det ser ut måste vi helt enkelt lita på att dessa appar är buggfria och gör vad de lovar.

Många icke-utvecklare är inte ens medvetna om säkerhetsproblemen och vidtar inte lämpliga försiktighetsåtgärder när de interagerar med blockkedjebaserade appar. Den genomsnittliga användaren kan skriva under en transaktion och tro att den kommer att göra en sak, bara för att upptäcka att det smarta kontraktet gör något helt annat. Det är därför skadliga smarta kontrakt är en primär attackvektor för dåliga skådespelare.

Varför är smarta kontrakt vilda västern?

När en Web3-app ringer ett smart kontraktsanrop vet du inte exakt vad transaktionen kommer att göra förrän du faktiskt gör det. Kommer det att prägla din nonfungible token (NFT), eller kommer det att skicka dina pengar och tokens till en hackare? Denna oförutsägbarhet gäller naturligtvis alla onlineapplikationer, inte bara Web3-appar; att förutsäga vad koden kommer att göra är väldigt svårt. Men det är ett större problem i Web3-världen eftersom de flesta av dessa appar är i sig höga insatser (de är byggda för att hantera dina pengar), och det finns så lite skydd för konsumenterna.

App Store är till stor del säker på grund av Apples granskningsprocess, men det finns inte i Web3. Om en iOS-app börjar stjäla användarnas pengar, kommer Apple att ta ner den direkt för att minska förlusterna och återkalla kontot till dess skapare.

Relaterat: Latinamerika är redo för krypto — Integrera det bara med deras betalningssystem

Skadliga smarta kontrakt kan å andra sidan inte tas ner av vem som helst. Det finns heller inget sätt att återvinna stulna tillgångar. Om ett skadligt kontrakt dränerar din plånbok kan du inte bara bestrida transaktionen med ditt kreditkortsföretag. Om utvecklaren är anonym, vilket vanligtvis är fallet med skadliga kontrakt, finns det ofta inte ens möjlighet att vidta rättsliga åtgärder.

Ur ett utvecklarperspektiv är det mycket bättre om koden för ett smart kontrakt är öppen källkod. Populära smarta kontrakt publicerar vanligtvis sin källkod - en enorm förbättring jämfört med Web2-appar. Men även då är det lätt att missa det som verkligen händer. Det kan också vara mycket svårt att förutsäga hur koden kommer att köras i alla scenarier. (Tänk på denna långa, skrämmande Twitter gänga av en erfaren utvecklare som nästan föll för ett komplext nätfiskebedrägeri, även efter att ha läst de inblandade kontrakten. Först vid en andra närmare inspektion märkte han bedriften.)

För att förvärra dessa problem, pressas människor ofta att agera snabbt när de interagerar med smarta kontrakt. Tänk på en NFT-drop som främjas av influencers: Konsumenter kommer att vara oroliga över att samlingen snabbt säljer slut, så de kommer ofta att försöka göra en transaktion så snabbt de kan, ignorerar alla röda flaggor de kan stöta på längs vägen.

Kort sagt, samma funktioner som gör smarta kontrakt kraftfulla för utvecklare – som tillståndslös publicering och programmerbara pengar – gör dem ganska farliga för konsumenterna.

Jag tycker inte att det här systemet är fundamentalt felaktigt. Men det finns massor av möjligheter för Web3-utvecklare som jag att tillhandahålla bättre skyddsräcken för konsumenter som använder plånböcker och smarta kontrakt idag.

Användningen av plånböcker och smarta kontrakt idag

På många sätt känns plånböcker som MetaMask som att de skapats för utvecklare. De visar många djupa tekniska detaljer och blockchain-detaljer som är användbara när du bygger appar.

Problemet med det är att icke-utvecklare också använder MetaMask — utan att förstå vad allt betyder. Ingen förväntade sig att Web3 skulle bli mainstream så snabbt, och plånböcker har inte riktigt kommit ikapp behoven av deras nya användarbas.

Relaterat: Lär dig av Celsius — Stoppa utbyten från att lägga beslag på dina pengar

MetaMask har har redan gjort ett bra jobb med att ändra varumärket "mnemoniska frasen" till "hemlig fras" för att förhindra konsumenter från att omedvetet dela den med hackare. Det finns dock mycket mer utrymme för förbättringar.

Låt oss ta en titt på MetaMasks användargränssnitt (UI), följt av ett par mock-ups som jag skapade som beskriver några potentiella förbättringar som kan vägleda konsumenter till "grop av framgång.” (Förresten, MetaMask här fungerar som en referens eftersom den används flitigt över hela Web3-världen, men dessa UI-idéer bör också gälla i stort sett alla plånboksappar.) Vissa av dessa designjusteringar kan byggas idag, medan andra kan kräva tekniska framsteg på den smarta kontraktssidan.

Bilden nedan visar hur det aktuella transaktionsfönstret för MetaMask smart kontrakt ser ut.

bild

Vi ser adressen till det smarta kontraktet vi interagerar med, webbplatsen som initierade transaktionen och sedan en massa detaljer om pengarna vi skickar till kontraktet. Det finns dock ingen indikation på vad det här kontraktsanropet gör eller någon indikator på att det är säker att interagera med.

Potentiella lösningar för att förbättra smarta kontrakt

Det vi verkligen skulle vilja se här är signaler som hjälper oss som slutanvändare att avgöra om vi litar på den här smarta kontraktstransaktionen eller inte. Som en analogi, tänk på det lilla gröna eller röda låset i adressfältet i moderna webbläsare, som indikerar om anslutningen är krypterad eller inte. Denna färgkodade indikator hjälper oerfarna användare bort från potentiella faror, medan avancerade användare enkelt kan ignorera den om så önskas.

Som ett visuellt exempel, här är två designmodeller för snabb användarupplevelse (UX) av MetaMask-transaktioner - en som sannolikt är säker och en som är mindre säker.

bild

Här är några av signalerna i min modell:

  • Är kontraktets källkod publicerad? Kontrakt med öppen källkod är i allmänhet mer pålitliga eftersom alla utvecklare kan läsa dem för att hitta buggar och skadlig kod. MetaMask innehåller redan olika länkar till Etherscan, så detta skulle vara en enkel och bekväm signal att lägga till.
  • Revisionsresultat. En tredjepartsrevision är en annan signal som kan fastställa tillförlitlighet. Den huvudsakliga implementeringsfrågan här är hur man bestämmer denna poäng. Finns det några accepterade standarder för detta redan? Om inte, kan ett enkelt sätt vara att använda Etherscan, som stöder uppladdning av revisioner. MetaMask kan i det här exemplet också ha sin egen lista över revisorer eller förlita sig på en lista över tredje parter. (Vad jag kan säga gör MetaMask redan detta för NFT-API:er och tokendetektering.) I framtiden är det lätt att föreställa sig en decentraliserad autonom organisation för att fastställa revisionspoäng på ett mer decentraliserat sätt.
  • Vad kan denna transaktion göra? Kan den kalla externa kontrakt, och i så fall vilka? Detta skulle vara mycket svårt att avgöra perfekt, men jag undrar om en enkel version för kontrakt med öppen källkod skulle vara genomförbar. Det finns redan gott om automatiserade sårbarhetsskannrar för smarta kontrakt där ute. Om detta inte är möjligt för Solidity, undrar jag om vi skulle kunna designa ett smart kontraktsprogrammeringsspråk som gör tillåta denna nivå av statisk analys. Kanske kan enskilda funktioner deklarera de behörigheter de behöver, och kompilatorn kan garantera överensstämmelse.
  • Säkerhetstips och utbildning. Om ett smart kontrakt inte har många signaler om tillförlitlighet (se modell ovan till höger), kan användargränssnittet rekommendera en lämplig uppsättning försiktighetsåtgärder att vidta, som att kontrollera om kontraktsadressen är korrekt och använda ett annat konto. Dessa är förslag som görs i den orange texten, i motsats till röd, eftersom brist på signaler inte nödvändigtvis är farligt; Här rekommenderar vi helt enkelt att användare väljer att vara lite mer försiktiga med sina nästa steg.

Liksom många befintliga funktioner i MetaMask, kan dessa föreslagna funktioner stängas av i inställningarna.

Mot en säkrare framtid

I framtiden kommer det sannolikt att finnas många säkerhetsfokuserade verktyg byggda på de primitiva komponenterna som blockkedjor tillhandahåller. Till exempel är det troligt att vi kommer att se försäkringsprotokoll som skyddar användare från buggy smarta kontrakt bli vanliga. (Dessa finns redan, men de är fortfarande ganska nischade.)

Relaterat: Vad kommer att driva kryptos troliga tjurkörning 2024?

Konsumenter använder dock redan Web3-appar, även i dessa tidiga dagar, så jag skulle älska att se utvecklargemenskapen lägga till fler skydd för dem nu. Några enkla förbättringar av plånböcker kan räcka långt. Några av de ovan nämnda idéerna skulle hjälpa till att skydda oerfarna användare och samtidigt effektivisera transaktionsprocessen för Web3-veteraner.

Ur mitt perspektiv är allt utanför handel med kryptotillgångar på Coinbase (eller andra stora företag) fortfarande alldeles för riskabelt för den genomsnittliga konsumenten. När vänner och familj frågar om att sätta upp en kryptoplånbok för att använda Web3-appar (låt oss inse det - vanligtvis för att köpa NFTs), börja alltid med att varna dem för riskerna. Detta skrämmer bort en del av dem, men de mer beslutsamma människorna vill använda dem ändå. När våra plånböcker är smartare kommer vi att kunna må mycket bättre av att gå ombord på nästa våg av nya användare till Web3.

Devin Abbott (@dvnabbott) är grundaren av Deco, en startup som förvärvats av Airbnb. Han är specialiserad på design- och utvecklingsverktyg, React- och Web3-applikationer, senast med The Graph.

Den här artikeln är avsedd för allmänna informationssyften och är inte avsedd att vara och ska inte ses som juridisk rådgivning eller investeringsrådgivning. De åsikter, tankar och åsikter som uttrycks här är författarens ensamma och återspeglar eller representerar inte nödvändigtvis Cointelegraphs åsikter och åsikter.

Tidsstämpel:

Mer från Cointelegraph