Under veckan som gick fick en artikel av Moxie Marlinspike om Web3 och NFT:er en hel del uppmärksamhet. Moxie, vars riktiga namn är Matthew Rosenfeld, är en entreprenör och forskare inom kryptografi och datasäkerhet. Han är grundare (och fram tills häromdagen) VD för Signal, en krypterad meddelandeplattform.
Moxie börjar artikeln med att berätta att han hittills inte varit speciellt intresserad av "krypto", ett ord som för någon med hans bakgrund förmodligen känns lite stulet då det gått från att handla om kryptografi till kryptovalutor. Hur som helst så bestämde han sig för att undersöka vad som egentligen finns av det utlovade s.k. Web3 idag och hur väl det fungerar. Det är förstås ett begrepp som överhuvudtaget inte är speciellt lätt att definiera men jag tycker att det sätt som det presenteras i artikeln är ett rimligt sätt att se det, nämligen:
- Web 1.0 var relativt decentraliserad. Det här var i webbens barndom när möjligheten för vem som helst att publicera information och kommunicera med andra tog form. Alla som ville kunde köra sin egen webbserver för att publicera en webbsida, sin egen mejlserver för maila andra o.s.v.
- Web 2.0 var när saker börjades centraliseras kring plattformar. Faktum var att det var för krångligt/jobbigt/svårt för folk att köra sina egna servrar. Många ser nog också web 2.0 som just de sociala plattformarnas web.
- Web 3.0 är när tjänster decentraliseras igen och många tror att det kan ske m.h.a. den blockkedjeteknik som är en fundamental del av bitcoin.
Moxie går in i sitt utforskande med en uttalat öppen inställning men man kan ana en viss (stor?) skepsis, bl.a. med tanke på att det enligt honom är tydligt att "People don’t want to run their own servers, and never will". Det första experimentet är att bygga en liten decentraliserad app (dApp), en webbsajt vid namn Autonomous Art där vem som helst kan bidra till ett gemensamt konstverk. Han förtydligar att själva webbappen är en helt vanlig webbsajt som körs på en central server och att det distribuerade/decentraliserade i det hela är det state som finns på blockkedjan, i det här fallet varje ny version av det gemensamma konstverket.
Moxie resonerar vidare kring upplägget och tycker att hela kryptoindustrin har rört till klient/server-konceptet, eller åtminstone inte fäst tillräckligt stor uppmärksamhet vid det.
With the shift to mobile, we now live firmly in a world of clients and servers – with the former completely unable to act as the latter – and those questions seem more important to me than ever. Meanwhile, ethereum actually refers to servers as “clients,” so there’s not even a word for an actual untrusted client/server interface that will have to exist somewhere, and no acknowledgement that if successful there will ultimately be billions (!) more clients than servers.
Vitalik Buterin, grundare av Ethereum, svarar på detta i ett inlägg på Reddit och menar att det inte alls är speciellt givande att tänka i termer av klient/server när det handlar om blockkedjor. Han ger 8 exempel på olika sätt som en användare skulle kunna ansluta till en blockkedja på:
1. Use a Binance account.
2. Run a piece of code that asks the Infura API endpoint what the blockchain state is, trust the answer. However, keys are still kept locally; the code signs transactions locally and sends them to the Infura API endpoint to be re-broadcasted.
3. Same as (2), but the code also runs a light client to verify the signatures on the block headers and uses Merkle proofs to verify individual account and storage data.
4. Same as (3), but the code talks to N different API endpoints run by N different companies, so only 1 of them need to be providing honest answers for the connection to be reliable.
5. Same as (4), but instead of pre-specifying N API endpoints the code connects directly to a p2p network
6. Same as (5), but the code also does data availability sampling and accepts fraud proofs, so it can detect and refuse to accept blocks that are invalid.
7. Run a fully verifying node.
8. Run a fully verifying node that also participates in mining/staking
Currently, only (1), (2), (7) and (8) are feasible, and (7) and (8) are too expensive for most users.
Vitalik medger att Moxies kritik är en korrekt bedömning av det nuvarande läget men inte av de möjligheter som finns och menar alltså att klient/server är en för svartvit klassificering. I själva verket finns många olika sätt som en användare kan interagera med blockkedjan på och dessa innebär olika grader av egen kontroll, skydd mot censur etc., allt från nummer 1 där man lämnar över allt till en tredje part till nummer 7/8 där man har total kontroll. Problemet är bara att alla dessa varianter inte är på plats än.
Nästa del av Moxies experiment handlar om att skapa NFT:er och här finns det helt klart mer att anmärka på. När det handlar om digitala konstverk så är det sällan själva konstverket lagras på blockkedjan (då det blir för dyrt med tanke på mängden data) utan istället endast en URL som pekar på konstverket. Moxie utnyttjar detta faktum på ett roligt sätt och skapar en bild som ändras beroende vem som tittar på den (något som är lätt att göra t.ex. baserat på användarens IP-adress eller vilken typ av webbläsare denne använder). Som krona på verket visas den alltid som en bajs-emoji när man kollar på den i sin plånbok, t.ex. Metamask.
Det är förvånande att man inte överhuvudtaget låter själva bilden vara en del av NFT:n. Alltså, även om det inte går att spara bilddatan på blockkedjan så skulle man kunna spara en hash av bilden som NFT:n avser så att man åtminstone som innehavare av såväl bild som NFT kan styrka att det är just den bilden som visas som NFT:n avser. Och det är alltså såhär det ligger till inte bara med Moxies test-NFT utan med många andra, vissa mycket värdefulla, NFT:er. Skulle den server där bilden finns av någon anledning försvinna så har inte plånböckerna någonting att visa upp (och kanske ännu värre, innehavaren av servern kan ändra bilden efter eget behag). Det är dock värt att nyansera detta något då det blivit vanligt att använda IPFS (ett decentraliserat filsystem) för själva lagringen av bilden, vilket ökar graden av decentralisering en aning.
Det här är egentligen inte någon kritik (från mig) av NFT:er som koncept. När någon köper en apa i Bored Ape Yacht Club så är det inte för bilden på den fina apan utan för skrytvärdet och känslan av att äga något exklusivt eller att vara med i en exklusiv klubb. Så har det genom alla tider varit med dyrbara saker och enda skillnaden är att vi nu har flyttat detta till en digital värld. Däremot är det tråkigt att man inte ens verkar försöka att anamma den decentralisering som ju web3 skulle handla om. Som Vitalik påpekar så får man skilja på den nuvarande situationen och det mål ditåt man strävar men ska man nå dit så känns det som att vi fått en dålig start, åtminstone på NFT-området.
Ett annat sätt att se det är att de NFT:er som egentligen bara är exklusiva klubbmedlemskap kanske inte ens behöver vara speciellt decentraliserade. Allt som behövs är att du kan bevisa ditt klubbmedlemskap på något sätt, och att detta medlemskap går att handla med på en lättillgänglig marknad.
Jag tror att dessa 3 frågor är det vi hela tiden behöver ha i åtanke när vi försöker bygga en ny, mer decentraliserad, värld.
- Vad är möjligt att decentralisera?
- Vad är önskvärt att decentralisera? (decentralisering har också nackdelar)
- Vilken grad av decentralisering är nödvändig/önskvärd?
I nuläget har bitcoin visat att pengar är möjligt att decentralisera till den grad att det troligtvis är svårt ens för för stater att stoppa det. En del av de finansiella tjänster (DeFi) som är nära relaterat till just pengar är möjligtvis också där men de flesta andra saker vet vi helt enkelt inte än vad som är möjligt. Och en del av dem kanske inte behöver decentraliseras alls. Strävan efter att flytta makt från stora, centrala aktörer till användarna är dock något jag tycker attt vi ska fortsätta uppmuntra.