De onbedoelde gevolgen van productontwerp

Dit is een lezing die ik onlangs gaf op Devcon IV op 31 oktober 2018. Het is iets aangepast voor een breder online publiek omdat je het leest in plaats van ernaar te luisteren.

Hallo, ik ben Taylor en ik ben de oprichter en CEO van MyCrypto. Eerder heb ik MyEtherWallet opgericht.

Als u niet bekend bent, is MyCrypto een interface waarmee u kunt communiceren met de Ethereum-blockchain. U kunt uw Ether en tokens opslaan via MyCrypto, ze rondsturen, tussen verschillende munten wisselen, communiceren met slimme contracten en meer.

We zijn een extern team van ongeveer 20 mensen en ons geweldige team is over de hele wereld verdeeld.

Ik bouw sinds 2015 producten met echte gebruikers in deze ruimte. Die gebruikers hebben me veel geleerd over mezelf, mijn ontwerpproces en wat er kan gebeuren, zelfs als je uitzonderlijk voorzichtig bent.

Vandaag gaan we de onbedoelde gevolgen van productontwerp onderzoeken. En velen van jullie zitten hier misschien te denken: "Wat betekent dat eigenlijk?"

Het betekent dat we in het begin veel dingen hebben verknald. We hebben veel keuzes gemaakt die niet noodzakelijk de beste beslissingen waren die we ooit konden maken. En helaas hadden deze beslissingen onbedoelde bijwerkingen, zoals verloren geld en verwarde gebruikers.

Ik wil duidelijk zijn. Ik doe dit niet om negatief te zijn of om bepaalde producten op te roepen (vooral mijn eigen ). De realiteit is dat deze fouten door letterlijk iedereen kunnen worden gemaakt. En als we niet uitkijken, zullen deze fouten opnieuw gebeuren.

Ik hoop dat iedereen in dit ecosysteem kan leren en groeien van de fouten van andere mensen, zodat we de geschiedenis niet herhalen en we uiteindelijk veiliger, veiliger en een betere ervaring voor iedereen kunnen zijn.

Laten we dus beginnen met een van de grootste fouten die ik heb gemaakt met een van de meest fundamentele interacties op MyCrypto: een nieuw account maken.

We moeten teruggaan in de tijd tot augustus 2015. Ethereum was net gelanceerd. Dit was vóór MyCrypto en in feite vóór "MyEtherWallet". Het was gewoon "Ether Wallet" dat op een URL van Github-pagina's leefde. Zo zag het eruit.

Toen je op de website belandde, was er niets bijzonders. Geen uitleg. Geen lang dialoogvenster meer. Gewoon een interface die u vraagt ​​om een ​​nieuwe portemonnee te genereren. U hebt een wachtwoord ingevoerd en op een knop gedrukt. Dat is het.

Als je op deze knop klikte, spuugde het gewoon al je informatie uit. Uw persoonlijke sleutel. QR-codes. JSON-bestanden. Adres. Boom.

En trouwens, ik vond dit geweldig. Vanuit een UX-perspectief was het ongeveer zo eenvoudig als het maar kon zijn. Ik vond het geweldig dat we alle rommel en onzin konden doorbreken en mensen gewoon konden geven wat ze nodig hadden. Het genereren van een nieuwe portemonnee kostte letterlijk één klik.

Het probleem was dat, hoewel we echt het proces van het genereren van een nieuwe portemonnee zo snel, gemakkelijk en zonder wrijving wilden maken, het de nare gevolgen had dat mensen hun privésleutels niet bewaarden.

Omdat we de gebruiker vooraf hun adres gaven, konden ze het adres kopiëren en geld naar de nieuwe account sturen zonder ooit hun persoonlijke sleutel op te slaan. Ergens op de weg zouden ze zich realiseren: "Oeps, ik heb geen enkele manier om daadwerkelijk toegang tot mijn portemonnee te krijgen." Dit resulteerde uiteindelijk in verloren geld.

Hoe hebben we dit opgelost? We stopten met het geven van de gebruiker hun persoonlijke sleutels en adressen vooraf. Hierboven staat de nieuwe interface op MyCrypto.

  • Eerst voert u een wachtwoord in. En bevestig het wachtwoord.
  • Vervolgens wordt u gedwongen uw keystore-bestand op te slaan. Om door te gaan, moet u dit bestand downloaden.
  • En zelfs dan geven we u uw adres niet. In plaats daarvan laten we de gebruiker zijn portemonnee ontgrendelen.

Dat klopt, je moet je portemonnee ontgrendelen met het bestand dat je zojuist hebt gedownload voordat je je adres kunt ophalen. Dit zorgt ervoor dat de gebruiker zijn portemonnee heeft gemaakt, een back-up van de portemonnee heeft gemaakt en in staat is om de portemonnee in de toekomst nu en dan met succes te ontgrendelen.

Dit verminderde de hoeveelheid verlies die we dagelijks zagen (en hielp ook enorm met het aantal support tickets dat we op dat moment ontvingen)!

Wat kunnen we hiervan leren?

Soms is wrijving een goede zaak. Je moet mensen dwingen de nodige informatie op te slaan. Je moet mensen dwingen het juiste pad te volgen, zelfs als dat pad een aantal extra stappen met zich meebrengt. Gebruikers zullen altijd - altijd - de gemakkelijkste route nemen. Als je ze niet letterlijk dwingt om hun privésleutel of seed-uitdrukking op te slaan, doen ze dat niet.

Leer ze waarom het belangrijk is. Herinner ze onophoudelijk. Maar sta hen vooral niet toe een alternatief pad te bewandelen. Vergeet niet dat het uiteindelijke doel is om mensen met succes cryptocurrencies te laten gebruiken en als ze de toegang tot hun fondsen verliezen, was je niet succesvol.

Dit volgende voorbeeld is best angstaanjagend en ik heb het steeds vaker gezien. Het is de gewoonte om privésleutels of andere geheime informatie op te slaan in lokale opslag.

Als u een dapp-ontwikkelaar bent, wilt u de meest naadloze ervaring mogelijk maken. Het lijkt misschien een goed idee om de toegang van een gebruiker tot zijn portemonnee in zijn browser op te slaan, zodat hij er geen back-up van hoeft te maken. Maar alsjeblieft niet.

Laten we een voorbeeld bekijken van hoe vreselijk mis dit kan gaan.

Dit is EtherDelta - maar zij zijn niet de enige die zich hieraan schuldig maken. EtherDelta was een van de meest gebruikte gedecentraliseerde beurzen in 2017.

EtherDelta heeft ook een "account aanmaken" -functionaliteit op hun website. (Ja, ze dwingen je ook niet om een ​​back-up van je privésleutel te maken.)

Maar het is een beetje goed omdat ze het gewoon voor je opslaan in lokale opslag. / s

Voor degenen die het niet weten, is lokale opslag een soort cookie. Het is een andere manier om informatie in de browser van de gebruiker op te slaan, zodat als u de website verlaat of de browser sluit en vervolgens terugkeert naar de website, deze informatie kan lezen en uw account opnieuw kan openen of opnieuw kan worden geverifieerd.

Als je goed kijkt, zie je de privésleutel die ze eerder naar je uitspugen en daar is deze opnieuw, opgeslagen in de lokale opslag, onversleuteld.

Dit is ongelooflijk gevaarlijk. Lokale opslag is geen veilige plek voor geheimen. Het is geen veilige plek voor privésleutels. En het is vooral gevaarlijk voor cryptocurrency-websites omdat ze zo'n enorm doelwit zijn voor aanvallers.

Nu, ik weet dat ik zei dat ik deze toespraak niet gaf aan schandelijke productmakers, maar ik ga hier gewoon bot over zijn: ik beschaam EtherDelta. Omdat ze in december 2017 zijn gehackt. Ze hadden hun les al moeten leren. Dat deden ze niet. Tot op de dag van vandaag bewaren ze nog steeds sleutels voor lokale opslag.

Afgelopen december hebben de aanvallers de website omgeleid naar een nep-EtherDelta-site. Het zag er identiek uit aan de originele EtherDelta. Mensen hadden geen idee dat ze op een nep-site zaten.

Dit is op zichzelf slecht omdat iedereen die de website bezoekt niet weet dat ze op een kwaadwillende website zijn en geneigd zijn om geheime informatie in te voeren, zoals privésleutels, die rechtstreeks naar de servers van de hackers gaan.

Met EtherDelta was het echter vooral slecht omdat ze hun privésleutels in lokale opslag hebben opgeslagen. Iedereen die gewoon de website bezocht, had zijn sleutels en daarmee zijn geld gestolen.

Laat ik dat nog eens zeggen: iedereen die het nieuws las, bang werd en gewoon EtherDelta bezocht, had zijn privésleutels en vervolgens geld gestolen. De gebruiker hoefde niets anders te doen dan de aangetaste website te bezoeken. De omvang van het verlies is nooit volledig bepaald, maar het was enorm en het zou kleiner zijn geweest als ze geen privésleutels hadden opgeslagen in lokale opslag.

Dit is enorm schadelijk voor het ecosysteem, gebruikers en voor de veiligheid van iedereen.

Nogmaals, cryptocurrency-websites zijn een enorm doelwit voor aanvallers. We moeten veilig en veilig zijn. Dat betekent uw eigen persoonlijke beveiliging, de beveiliging van uw bedrijf, de beveiliging van uw website en vooral de beveiliging van uw gebruiker,

We kennen de bedoelingen van EtherDelta en andere dapps in dit ecosysteem: ze proberen dit proces gemakkelijker te maken. Ze maken het zodat mensen hun privésleutel niet meteen hoeven te gebruiken. Ze proberen te voorkomen dat mensen steeds opnieuw hun sleutels moeten invoeren.

Maar onbedoeld schilderden ze een enorm doelwit op hun rug. Aanvallers konden deze populaire browsergebaseerde site zien. Ze konden alle gebruikers en fondsen door deze website zien stromen. Ze zwaaiden in wezen naar de aanvallers en hackers en zeiden: "Hé, ik ben hier! Kom me maar halen!"

En toen de hackers met succes een toegangspunt vonden, resulteerde dit in veel meer verlies. Dit is gewoon onaanvaardbaar.

Als je een dapp-ontwikkelaar bent en je probeert de ervaring wrijvingsloos te maken, juich ik je toe. Bewaar echter geen geheimen voor lokale opslag.

Het is niet filosofisch of ingewikkeld. Het maakt niet uit hoe veel beter het leven van mensen maakt. Het is gevaarlijk en schildert een gigantisch doelwit op je rug en zal uiteindelijk leiden tot verlies.

Bewaar het niet onversleuteld. Bewaar het niet gecodeerd. Bewaar geen geheimen voor lokale opslag.

Verder gaan! In het laatste voorbeeld hebben we besproken hoe het opslaan van geheime informatie in lokale opslag gevaarlijk kan zijn. Maar wat als het geen geheime informatie is? Wat als het gewoon normale informatie is? Lokale opslag kan erg nuttig zijn en kan de ervaring helpen vereenvoudigen. Kun je het gebruiken voor andere informatie?

Laten we eens kijken naar de originele ENS Dapp van toen de ENS voor het eerst werd gelanceerd in mei 2017. De manier waarop de ENS werkt, is dat je een bod uitbrengt op een ENS-naam, dan wacht je een paar dagen en kunnen andere mensen op die naam bieden, en dan onthul je je bod om hopelijk de veiling te winnen.

Omdat het allemaal gedecentraliseerd is en op de blockchain en de veiling- en biedbedragen geheim zijn, moet u bepaalde stukjes informatie verstrekken om uw ENS-naam te onthullen. U hebt uw biedingsbedrag, uw gemaskeerde biedingsbedrag en een geheime reeks tekens nodig. Verschillende apps behandelden deze stukjes informatie anders, maar een van de dapps bewaarde dit stuk informatie in de lokale opslag.

De ontwikkelaars van deze specifieke dapp bedoelde het goed. In plaats van gebruikers te vertellen: "je moet dit en dat onthouden en dit opslaan en ook zorgen dat je het niet verliest", ze hebben het gewoon voor hen opgeslagen. Het is het perfecte ding om weg te abstraheren tijdens een al vrij complex proces.

Het probleem was, vooral in de cryptocurrency-ruimte, mensen graag verschillende apparaten en / of TOR en / of incognito-modus gebruiken. We gebruiken al deze dingen om onze privacy te beschermen. Daarbij voorkomt het echter ook dat dingen zoals cookies en items die zijn opgeslagen in lokale opslag, blijven bestaan. Wanneer u dat browservenster sluit, is die informatie verdwenen.

Kort nadat de eerste biedingen waren geplaatst en klaar waren om te worden onthuld, werden ondersteuningskanalen plotseling overspoeld met berichten dat mensen hun biedingen niet konden onthullen omdat ze stukjes informatie hadden verloren.

Het opslaan van deze informatie in de lokale opslag leidde onbedoeld tot veilingen die niet konden worden onthuld als mensen incognito of een ander apparaat hadden gebruikt.

Gelukkig hebben de ontwikkelaars het probleem echt, heel snel opgelost en er een punt van gemaakt om mensen te onderwijzen en hen een manier te geven om extern een back-up van dit stuk informatie te maken.

We kunnen de bedoelingen van deze dapp zien - en andere dapps - die we willen wegnemen van complexiteit. We willen dat de gebruiker minder acties hoeft uit te voeren. We willen de gebruiker niet overweldigen met alle details van wat er achter de schermen gebeurt, omdat de gebruiker er niet echt om geeft. De gebruiker wil zijn ENS-naam verkrijgen, de interne werking van het systeem niet begrijpen.

Helaas resulteerde dit in dit geval in verwarde gebruikers die hun biedingen niet konden openbaren en er was geen manier om deze informatie te herstellen zodra deze verloren was.

Ik wil niet op mijn eigen toot toeteren, maar ik had mijn les over het maken van back-ups van privésleutels al geleerd op dit punt. Het bovenstaande is hoe we met dezelfde ENS omgingen.

We hebben mensen onophoudelijk eraan herinnerd deze informatie op te slaan. We hebben het ze tijdens het veilingproces verteld. We vertelden het hen in het bevestigingsvenster, vlak voordat ze het verstuurden. We hebben het laten zien nadat ze het hadden verzonden. We gaven ze de mogelijkheid om een ​​screenshot te maken en een string op te slaan. We hadden nog steeds veel ondersteuningstickets, maar gelukkig hadden de meeste mensen wat informatie opgeslagen en konden we hen helpen hun troep met biedingen op te lossen, in plaats van ze af te schrijven als een verloren zaak.

Wat kunnen we van dit voorbeeld afhalen? We weten dat het niet acceptabel is om geheimen op te slaan in lokale opslag. Het kan acceptabel zijn om niet-geheime informatie op te slaan in lokale opslag. Als u echter dingen opslaat in lokale opslag om het leven van mensen gemakkelijker te maken, zorg er dan voor dat u er niet op vertrouwt om informatie te bewaren. Gebruikersomgevingen kunnen en zullen veranderen.

Wanneer ik een ontwerpbeslissing neem, speel ik vaak dit spel genaamd 'Best Case / Worst Case'. Dit dwingt me om echt expliciet te zijn met de keuzes die ik maak.

Vraag jezelf af: "Wat is de best mogelijke uitkomst?" In dit geval biedt de gebruiker naadloos op een naam, onthult deze en hoeft geen actie te ondernemen om deze te onthullen.

"Wat is het slechtste geval?" De gebruiker kan zijn biedingen niet prijsgeven en zijn ETH is verloren.

Voor mij maakt het best mogelijke resultaat niet het slechtst mogelijke resultaat goed. Geen enkele hoeveelheid verlies is een acceptabele ervaring. Welke stappen kunnen we nemen om het verlies te verminderen? Hoe kunnen we deze interactie veranderen om het beter te maken? Dit zijn de vragen die we ons zouden moeten stellen tijdens de ontwerp- en ontwikkelingsfasen.

Laten we nu eens nadenken over dezelfde vragen met zoiets als instellingen of gebruikersvoorkeuren. Stel dat u onthoudt dat een gebruiker de voorkeur geeft aan een bepaalde valuta of taal of dat hij uw app liever in de 'nachtmodus' gebruikt.

  • In het beste geval: wanneer de gebruiker opnieuw naar uw site terugkeert, onthoudt de dapp dat de gebruiker de voorkeur geeft aan een bepaalde taal of kleurenschema.
  • In het ergste geval: de gebruiker moet die instellingen opnieuw selecteren wanneer hij de site opnieuw bezoekt.

Voor mij is dit waar lokale opslag voor moet worden gebruikt, want het is niet het einde van de wereld als die informatie verloren gaat, noch heeft die informatie enige waarde voor hackers.

Hoewel we ons tot nu toe hebben gericht op cryptosites, zijn deze lessen niet beperkt tot de blockchain-ruimte. De grote jongens maken keuzes die ook onbedoelde gevolgen kunnen hebben. Zelfs Google.

Wanneer u een nieuw Google-account instelt, dwingen ze u om een ​​telefoonnummer en een oud e-mailadres toe te voegen.

Laten we het proces van het opzetten van een nieuw account doorlopen - een proces dat jullie waarschijnlijk al meerdere keren hebben gedaan.

Eerst wordt u gevraagd om uw standaardspullen op te geven: naam, e-mailadres, wachtwoord.

Vervolgens wordt om uw telefoonnummer gevraagd. U bent verplicht een telefoonnummer op te geven zodat zij u een bevestigingscode kunnen sturen.

Nu ik het account heb geverifieerd met behulp van mijn telefoonnummer, wordt me gevraagd een back-up-e-mailadres in te stellen (en andere persoonlijke gegevens).

Als u eenmaal uw account hebt ingesteld, en u toevallig uw accountinstellingen verkent, ziet u dat u uw account op elk gewenst moment kunt herstellen met behulp van dit e-mailadres of telefoonnummer. Dat je ze moest geven.

Hierboven staat wat er gebeurt als ik op 'wachtwoord vergeten' klik. Nu denkt u misschien dat het een goede zaak is om een ​​e-mailadres voor herstel of een telefoonnummer voor herstel te hebben. Als je je wachtwoord bent vergeten, komt het wel goed! Je kunt het gewoon herstellen.

Het probleem is dat hackers en aanvallers ook uw accounts kunnen 'herstellen'.

Google maakt het onduidelijk hoe deze opties daadwerkelijk kunnen worden verwijderd als hersteloptie.

Er is geen "verwijder" knop. Je moet het bewerken. Verwijder alle inhoud. En zeg dan "klaar". U zou een fout verwachten, maar hiermee kunt u het lege veld opslaan en het e-mailadres effectief verwijderen.

Oh, maar het wordt nog erger. Als u de herstel-e-mail of -telefoon verwijdert, proberen ze u elke keer dat u zich aanmeldt bij Google om u terug te brengen.

Dus waarom is dit zo erg?

Denk nu aan je gmail-accounts. Je hebt waarschijnlijk een die je gebruikt voor Coinbase of een andere uitwisseling, toch? Misschien heet het dan.loves.crypto.so.much@gmail.com.

En dit is het account dat u de tijd heeft genomen om ervoor te zorgen dat het veilig is. Je hebt 2FA ingeschakeld, je hebt alle instellingen doorlopen, je bent er super voorzichtig mee.

Het probleem is dat u bij het aanmaken van het account uw vorige e-mailadres libertarian.dreamer@gmail.com als hersteloptie hebt opgegeven.

En toen u die e-mail instelde, gaf u u een zeer professionele voornaam.lastnaam@gmail.com als hersteloptie.

En die e-mail is ingesteld met je oude gamertag van de middelbare school waarvan je niet eens meer toegeeft dat je die hebt.

Dus ook al heb je je dan.loves.crypto.so.much@gmail.com beveiligd, dat account is net zo veilig als je oude gamertag van de middelbare school. Het wachtwoord voor dat account, dat u zich op dit moment waarschijnlijk niet eens herinnert, beschermt momenteel al uw crypto op al uw uitwisselingen.

Dat wachtwoord zit waarschijnlijk nu ook in een van de vele, veel wachtwoorddumps online. Het feit dat je het je niet herinnert, betekent niet dat een aanvaller het ergens niet op een lijst heeft staan. (psst ... je kunt zien hoe vaak je verschillende accounts zijn gecompromitteerd op https://haveibeenpwned.com/)

Als een aanvaller toegang krijgt tot een van uw vorige e-mailaccounts, is het voor hen triviaal om de keten op te werken en toegang te krijgen tot uw uitwisselingsaccounts en al uw crypto's te stelen (en allerlei andere gegevens te verzamelen van services zoals Paypal, Dropbox, Google Drive, Apple, Facebook, Amazon, enz. Dit is een reden waarom u nooit geheime informatie mag opslaan in Dropbox of Google Drive.)

Of, als ze geen toegang krijgen tot uw e-mailaccounts, kunnen ze gewoon uw telefoonnummer overdragen of een sim-swap doen. Je zit hier misschien te denken: "Oh, ik heb weinig tijd. Ik lees alleen deze cryptopost, maar ik ben echt niemand. Ik ben geen doelwit. "

Mis. Als je dit bericht nu leest, zit je in crypto en ben je een doelwit. Er zijn duizenden aanvallers die de hele dag doorbrengen, elke dag proberen de telefoonmaatschappijen sociaal te engineeren. Ze proberen uw nummer over te dragen of een sim-swap te doen, zodat ze toegang hebben tot uw Google-accounts of uw Apple-accounts of uw sociale media-accounts en informatie verzamelen en uiteindelijk in uw uitwisselingsaccounts komen om uw geld te stelen.

Het is geweldig dat gebruikersaccounts kunnen worden hersteld. Begrijp me niet verkeerd. Er zijn een heleboel echt, echt slimme mensen die er zijn in deze crypto-wereld die proberen een veilige manier te vinden om gebruikers de mogelijkheid te geven hun privésleutels te herstellen.

Maar - en dit is een grote maar - als u uw account kunt herstellen, kan een hacker uw account mogelijk ook 'herstellen'.

Welke keuzes kunnen we maken om dit als maker van een product te verminderen?

Dit is een moeilijke omdat herstelbaarheid een enorm belangrijke functie is. Er zouden veel meer accounts en informatie verloren gaan als deze functie niet beschikbaar zou zijn. Het is niet helemaal realistisch om te verwachten dat elke gebruiker van Google een Yubikey gebruikt. Dat is een moeilijke vraag.

Maar denk er eens over na. Google weet letterlijk alles over ons. Ze lezen al onze e-mails, ze weten welke websites we bezoeken, ze weten waar we zijn. Ze weten al of je een doelgroep bent. Ze weten of je cryptocurrency hebt of andere eigenschappen hebt die je een doelwit voor hackers zouden maken (bijvoorbeeld publieke figuren, beroemdheden, politici.)

Eén ding dat Google met al die gegevens zou kunnen doen, is onderscheid maken tussen gemiddelde en risicovolle personen. Waarom de mensen die beroemdheden of politici of houders van cryptocurrency zijn, niet leren hoe ze veiliger kunnen zijn? Waarom dwingt u ze niet om onveilige herstelmethoden te verwijderen en in plaats daarvan veilige methoden te gebruiken? Misschien kunnen ze sommige van die gegevens voorgoed gebruiken.

Vergeet niet dat tijdens het bouwen van dapps al uw gebruikers een doelwit zijn voor aanvallers. U moet prioriteit geven aan de veiligheid van uw gebruikers, niet alleen aan bruikbaarheid.

Snelle PSA: beveilig al uw Google-accounts, zelfs uw oude! Verwijder de herstel-e-mail en telefoonnummers van al uw Google-accounts en voeg 2FA toe via Google Authenticator of Yubikey of uw Ledger-hardwareportefeuille. Gebruik back-upcodes. Gebruik geen e-mail / sms-herstel. Duik in uw Google-beveiligingsinstellingen. Lees ook al onze beveiligingsaanbevelingen. Raak alsjeblieft niet gehackt.

Oké, bijna klaar!

Ik heb eerder gesproken over een van mijn grootste fouten eerder. Maar deze is mijn absolute grootste fout en heeft blijvende gevolgen gehad, niet alleen op mijn website en mijn bedrijf en mijn gebruikers, maar op het hele ecosysteem omdat mensen dit voorbeeld volgden. We hebben toegestaan ​​- eigenlijk hebben we aanbevolen - dat mensen privésleutels op onze website invoeren.

Ik heb altijd gedacht dat de reden dat je je privésleutel niet op een website invoerde, was omdat de makers van de website op enig moment konden stoppen met het oprapen van al je geld.

Omdat ik de maker van dit product was, wist ik dat ik het geld van mensen niet zou stelen en daarom nam ik aan dat deze 'regel' niet op ons van toepassing was. Dit was naïef.

De aanvalsvectoren op internet zijn enorm.

  • Je moet de makers van de website vertrouwen.
  • Je moet erop vertrouwen dat de code op de website vandaag dezelfde is als gisteren.
  • Je moet erop vertrouwen dat de makers van de website niet zijn gehackt.
  • Je moet erop vertrouwen dat de DNS niet is gehackt.
  • U moet erop vertrouwen dat u zich op de juiste website bevindt en dat de website legitiem is en geen oplichterij.

Omdat deze verschillende aanvalsvectoren tot bloei kwamen, hebben we veel gedaan om gebruikers te informeren over veiligere methoden om toegang te krijgen tot hun accounts.

We begonnen tegen mensen te schreeuwen via ons gruwelijke dialoogvenster met 10 pagina's om gebruikers te dwingen om door elke dia te klikken terwijl de knoppen rondsprongen. We hebben onze gebruikers selectievakjes laten erkennen dat ze onveilig waren. We voegden elke stap wrijving toe en probeerden mensen de gevaren te laten begrijpen.

Maar onderwijs was niet genoeg. Je kunt schreeuwen en schreeuwen en met je voeten stampen wat je maar wilt, maar de gebruiker gaat altijd het gemakkelijkste pad. Als u mensen toestaat, ongeacht hoeveel wrijving u toevoegt, om hun privésleutels op een website in te voeren, zullen zij hun privésleutels op een website invoeren en dit zal uiteindelijk leiden tot verlies.

Door mensen toe te staan ​​hun sleutels op onze website in te voeren, brachten we slechte gewoonten bij hen aan. Toen ICO's populair werden en een ander type persoon onze gebruikersbasis overnam, zouden ze hun privésleutels niet alleen op onze website invoeren, maar op elke website. Elke website die hen bijvoorbeeld gratis geld bood.

We hadden gefaald.

Daarom hebben we de mogelijkheid om privésleutels op onze website te gebruiken, verwijderd.

We geven gebruikers niet langer de optie om deze gemakkelijke, onzekere weg te nemen. Als u op onze website bent, moet u onze desktop-applicatie downloaden.

Vanuit een UX-perspectief voelt het verkeerd. Het voelt alsof je wrijving toevoegt. Het laat de gebruiker aanvullende stappen ondernemen. We hebben geen analyses, maar als we wel analyses hadden, zou het pijnlijk zijn om dit te bekijken. We zouden de gebruiker bekijken nadat de gebruiker hier was afgezet vanwege deze toegevoegde stap.

Maar de realiteit is dat als we gebruikers hun privésleutels op onze website blijven laten gebruiken, er steeds meer geld verloren gaat. Daarom is het de moeite waard. Het is het waard voor mij en dit ecosysteem.

Ik verlies tenminste gebruikers, niet dat die gebruikers geld verliezen.

Ik heb altijd de barrières willen verlagen om de blockchain-ruimte te betreden. Ik wil de ervaring van het verkrijgen en houden van crypto zo eenvoudig mogelijk maken.

Door mensen aan te bevelen hun privésleutels op onze website in te voeren, creëerde ik onbedoeld een omgeving waar phishing-websites en zwendelwebsites bloeiden, registrars werden gehackt en aanvallers steeds geavanceerdere manieren bedachten om geld te stelen, zoals de recente BGP-aanval op MyEtherWallet .

Het meest teleurstellende is dat andere sites in dit ecosysteem ons voorbeeld hebben gevolgd, het probleem hebben vergroot en gebruikers hebben geleerd hun privésleutels te kopiëren en in elke website te plakken.

Nogmaals, dit is niet filosofisch. Dit is niet ingewikkeld. Laat uw gebruikers niet hun privésleutels of mnemonische zinnen of seed-zinnen of keystore-bestanden of andere geheime informatie op uw website invoeren. Periode.

Het is niet veilig. Het traint uw gebruikers om onzeker te zijn. Bouw een Electron-app. Gebruik een Chrome-extensie. Vertrouw op MetaMask of Trust Wallet of Ledger of Trezor hardware wallets. Als je dat niet doet, zul je de hele dag doorbrengen om je tegen deze aanvallen te beschermen en je gebruikers te trainen en mooie onboarding-modals te creëren die tegen je gebruikers schreeuwen in plaats van je gewoon te concentreren op het bouwen van je product zoals je zou moeten zijn aan het doen. Laten we standaard veilig zijn.

Wat hebben we geleerd Wat zijn de heerlijke afhaalmaaltijden van alles waar we het over hebben gehad?

Onderschat eerst niet de mensen die uw product gebruiken.

Uw gebruikers zijn slimme, getalenteerde, intelligente mensen. Je kunt ze opleiden. Je kunt ze leren. Ze kunnen leren. Ze kunnen worden omgeschoold. Ze kunnen in crypto raken vanwege jou en je product.

Maar! Ze zijn ook naïef en onwetend. Ze zijn echt heel goed in dingen verpesten. Ze dragen veronderstellingen met zich mee. De wereld heeft hen alles geleerd en alles kan worden hersteld en er bestaat niet zoiets als volledig en volkomen verlies.

Onderschat ze niet aan beide kanten van het spectrum en wees op alles voorbereid.

Vervolgens zullen mensen altijd - altijd - de gemakkelijkste weg nemen. Als u hen toestaat stappen over te slaan of geen back-up van hun privésleutels maakt, slaan ze die stappen over en maken ze geen back-up van hun privésleutels. Het zal uiteindelijk een negatieve invloed hebben op uw product en uw reputatie en, belangrijker nog, op hun ervaring met cryptocurrencies.

Opleiding! Onderwijs helpt veel! Die tooltips en berichten en schattige pictogrammen die mensen helpen kernconcepten te identificeren, kunnen wonderen verrichten. Maar het gaat alleen zo ver. U moet goede gewoonten opbouwen bij uw gebruikers en ze instellen voor succes. U moet uw gebruikers machtigen.

Als je merkt dat je educatieve materialen tegen je gebruikers beginnen te schreeuwen, is het tijd om een ​​stapje terug te doen en jezelf af te vragen hoe je een product kunt bouwen dat standaard veilig is.

Leer van fouten van anderen. Ik gaf je net vijf voorbeelden van manieren waarop we de dingen al hebben verprutst. Er zijn er echter nog veel meer. Samenwerken. Met elkaar praten. Ervaringen delen. Blijf op de hoogte van wat er speelt. Onderzoek waar mensen faalden en hoe aanvallen plaatsvonden. Maak er een prioriteit van om te voorkomen dat het opnieuw gebeurt.

Dit gaat hand in hand met het vorige punt: let op de verschillende aanvalsvectoren die er zijn. Deze hele blockchain / cryptocurrency-wereld is echt heel anders. Het verlies van een enkele reeks informatie resulteert in verliesfondsen. De ROI voor aanvallers is enorm en stelt hen in staat om veel tijd en moeite en creativiteit aan hun aanvallen te besteden. Ze evolueren. Ze veranderen. Ze zullen bijna alles doen om uw bedrijf, uw product, uw team of uw gebruikers in gevaar te brengen.

Overweeg altijd het "slechtste geval" versus "beste geval" bij het nemen van ontwerpbeslissingen. Zelfs als het ontwerp kan resulteren in een superieure ervaring (het 'beste geval'), als het ergste geval geld verloren gaat, moet u stappen ondernemen om dat verlies te voorkomen.

Realiseer je dat het bouwen van een gedecentraliseerde toekomst echt heel moeilijk is. Daarom is het zo belangrijk dat we allemaal samenwerken en van elkaar leren. We willen gedecentraliseerd zijn. We willen de privésleutels van mensen niet behouden en de voogdij nemen, maar dat betekent dat we een nieuwe grens betreden in authenticatie en bruikbaarheid en beveiliging.

Besteed de juiste middelen aan het oplossen van complexe problemen en het voorkomen van slechte dingen met uzelf, uw bedrijf en uw gebruikers.

Streef er altijd individueel naar beter te zijn en duw de mensen om je heen ook om ook beter te worden.

We moeten ons realiseren, of je nu een ontwikkelaar bent of gewoon een gemiddelde persoon, of je nu een jaar of twee jaar of vijf jaar of twee maanden in deze ruimte bent geweest, iedereen heeft zijn rol te spelen.

Als je een andere productontwikkelaar ziet die een luie keuze maakt, zelfs al ben je een gemiddelde persoon op crypto-Twitter, dan speel je een grote rol. Je hebt de mogelijkheid om vragen te stellen. Je hebt de mogelijkheid om makers van producten verantwoordelijk te houden. Wijs dingen aan. Als ze iets onveiligs doen, twijfel dan aan hun keuze en druk ze op om hun product veiliger te maken.

De beste bedrijven nemen uw feedback en vragen ter harte en streven ernaar beter te worden. Ik weet dat ik echt de boodschappen koester die we krijgen die mijn keuzes in twijfel trekken of dingen aangeven omdat ze me dwingen om beter te worden.

Ten slotte maakt samen bouwen het bouwen van deze gedecentraliseerde toekomst een stuk eenvoudiger. Deze ruimte is veel te klein voor echte concurrentie. We moeten allemaal samenwerken. We moeten dit ecosysteem opbouwen. Leer van elkaar. Help elkaar. Leun op elkaar. Wees vriendelijk en behulpzaam en maak verbinding om dit ecosysteem sterker en veiliger te maken.

We moeten erover nadenken zoals wij - 'wij' zijn iedereen die dit nu leest - versus de wereld. En de wereld is de grote wereld die niet eens weet wat cryptocurrency is en geen kans heeft om het nu te gebruiken.

We kunnen niet met elkaar vechten. We kunnen geen Twitter-drama veroorzaken. We kunnen niet omgaan met kleine stukjes onzin. We moeten het grote geheel bekijken. We moeten ons concentreren op de wereld daarbuiten en deze veroveren.

Ik ontmoette veel mensen bij Devcon en ik merkte een trend op van mensen die één voet in en één voet uit hadden. Sommigen werkten parttime in de ruimte of observeerden gewoon van ver.

Laat me je dit vertellen: elke persoon heeft de mogelijkheid om dit ecosysteem te verbeteren. Het maakt niet uit of u niet weet hoe u moet coderen. We hebben de mensen nodig die kunnen schrijven en ontwerpen. We hebben de mensen nodig die eindeloos geduld hebben om supporttickets te beantwoorden. We hebben mensen nodig die zich zullen richten op het verbeteren van de hele ervaring.

We hebben jullie allemaal nodig. We hebben de productmensen en de ingenieurs en de projectmanagers en de ontwerpers en onderzoekers en alles daar tussenin nodig. We hebben moeders en dochters en vaders en zonen nodig en zelfs de grootouders. We hebben mensen nodig met verschillende opvoeding en achtergronden. Degenen met een universitaire opleiding die de middelbare school niet hebben afgemaakt. Om een ​​mondiaal, gedecentraliseerd ecosysteem te bouwen, moeten de mensen die dat ecosysteem bouwen dat iedereen in deze hele wereld kan gebruiken, de mensen die bouwen die wereld weerspiegelen. Het kan niet zomaar een demografie zijn. Het kunnen niet alleen de codeerders en technische genieën zijn. Het moet iedereen zijn.

Als je één voet erin hebt, wil ik dat je helemaal instapt. Ik wil dat je nadenkt over je unieke vaardigheden en je unieke ervaringen en erachter komt hoe je dit ecosysteem kunt verbeteren.

Als je ons specifiek wilt helpen bij onze missie, e-mail ons dan op jobs@mycrypto.com en pitch jezelf. We nemen altijd opmerkelijke mensen aan die een verschil willen maken.

En dat is alles wat ik vandaag voor je heb. Ik hoop dat je dit bij je kunt dragen als je uitgaat en bouwt en creëert en helpt deze gedecentraliseerde toekomst in te luiden.

Ik hoop dat je hier connecties hebt gemaakt die blijvend zijn.

Heel erg bedankt dat je bij me bent gebleven. Ik ben Taylor Monahan van MyCrypto. Ik hou van jullie allemaal.