Već godinama gledam isti prizor: Osoba instalira novčanik iz znatiželje, želi da vidi šta kripto aplikacija radi, a dočeka je ekran sa dvanaest riječi i rečenicom da gubitak tih riječi znači trajni gubitak novca. Nema dugmeta za zaboravljenu lozinku, nema podrške koja to može poništiti, nema drugog pokušaja. To nije uvod u proizvod. To je polaganje ispita prije prvog časa.
Sva tri izvora koja sam čitao slažu se u osnovnoj tezi, svaki iz svog ugla, i zato o njoj pišem afirmativno. Tehnički gledano, seed fraza je elegantna. Dizajnerski gledano, kada je postavimo kao obavezni ritual na početku, ona postaje skupi anti-pattern koji odbija upravo one ljude kojima je jednostavnost najpotrebnija.
Novčanik ne čuva novac, on čuva pravo da se novcem raspolaže
Naziv nas vara. Zamišljamo kožni novčanik u kojem su novčanice, pa mislimo da se tokeni nalaze u aplikaciji na telefonu. Ne nalaze se. Stanje je zapisano na blockchainu, a novčanik upravlja ključevima kojima to stanje mijenjamo.
Zato je važno razumjeti lanac koji stoji iza dvanaest riječi. Prema specifikaciji BIP-39, riječi nisu lozinka koju je korisnik smislio i nisu lista privatnih ključeva. One su ljudima čitljiv prikaz početne kriptografske entropije, od 128 do 256 bita, plus kontrolni zbir. Lista ima 2.048 riječi, svaka nosi 11 bita. Kod fraze od 12 riječi radi se o 128 bita entropije i 4 bita kontrolnog zbira, kod fraze od 24 riječi o 256 bita entropije i 8 bita kontrolnog zbira. Taj mnemonik se kroz funkciju PBKDF2-HMAC-SHA512 sa 2.048 iteracija pretvara u seed od 512 bita, a iz njega se po modelu BIP-32 izvodi stablo ključeva, naloga i adresa.
Pojednostavljeno, put ide ovako: entropija, pa mnemonik i kontrolni zbir, pa seed, pa glavni ključ, pa putanja izvođenja, pa nalog i adrese. Za Ethereum se često koristi putanja m/44’/60’/0’/0/0, gdje broj 60 dolazi iz registra SLIP-0044.
Iz toga slijedi posljedica koju interfejsi rijetko objasne jasno. Ko sazna PIN vaše aplikacije, možda može otključati baš taj telefon. Ko sazna seed frazu, može na drugom uređaju, bez vašeg telefona, PIN-a ili biometrije, ponovo izvesti ključeve. To nije ulaznica za jednu aplikaciju. To je glavni ključ cijelog sistema. I zato svaki sajt koji traži seed frazu za navodno povezivanje, svaki agent podrške, broker ili pomagač koji traži makar dio fraze, nije nespretan, nego je opasan.
Dodatna zamka je opcionalna BIP-39 passphrase vrijednost. Ona nije isto što i lokalna lozinka aplikacije. Svaka unesena passphrase daje validan seed, pa pogrešan unos često ne javlja grešku, nego otvara drugi, prazan novčanik. Korisnik tada misli da je sve nestalo ili da je sve u redu, a zapravo gleda pogrešan izvod iz istog mehanizma.
Isto vrijedi za uvjerenje da fraza sama sve spašava. Ona ne čuva nazive koje ste dali adresama, listu mreža, kontakte, keš historije, multisig konfiguraciju, guardian pravila, module pametnog naloga, sesijske ključeve ili podatke o fabrici naloga. Kod jednostavnog naloga u vlasništvu jednog ključa, fraza može biti dovoljna za rekonstrukciju ključeva. Kod pametnih naloga pristup zavisi i od koda na lancu, implementacije i pravila oporavka. Backup fraze i backup cijelog iskustva nisu uvijek ista stvar.
Korisnik vidi lozinku, sistem vidi konačni autoritet
Najveći problem nije kriptografija, nego sudar dva modela. Korisnik dolazi sa iskustvom banke, maila i društvenih mreža. Očekuje korisničko ime, lozinku, biometriju i link za reset. Novčanik izgleda slično, ima stanje, PIN, otisak lica i listu aktivnosti, ali pravila su suprotna.
Lokalna lozinka najčešće samo otključava šifrovane podatke na tom uređaju. PIN štiti taj telefon. Biometrija dozvoljava telefonu da upotrijebi lokalni ključ. Ništa od toga ne mora vrijediti na novom uređaju. Seed fraza se ne resetuje na mail.
Istraživanje predstavljeno na CHI 2025 to potvrđuje brojkama koje treba shvatiti ozbiljno. U anketi sa 643 ispitanika sa kripto iskustvom, uz prateće intervjue, samo 43,4 posto je pravilno prepoznalo prikaz seed fraze. Oko 52 posto je smatralo da su korisničko ime i lozinka dovoljni za prebacivanje novčanika na drugi uređaj, a 58 posto je vjerovalo da seed frazu mogu sami izabrati kao običnu lozinku. To nije neznanje koje se liječi dužim tekstom ispod polja. To je predvidiva reakcija na interfejs koji koristi poznate obrasce, a daje im drugo značenje.
Studija sa SOUPS 2023 dodaje još jedan sloj koji se često prešućuje. Testirana je pristupačnost popularnih novčanika, uključujući slijepe i slabovidne korisnike. Loše označene kontrole, nedostatak navigacije tastaturom, nejasna hijerarhija i komplikovana ručna potvrda fraze nisu samo estetski propust. Ako čitač ekrana ne može jasno pročitati primaoca, mrežu, iznos, vrstu potpisa i status transakcije, korisnik nema ravnopravnu šansu da provjeri ono što autorizuje. Redizajnirani novčanik sa manje složenosti i manje pretpostavljenog znanja imao je bolji rezultat. Pristupačnost se ovdje direktno pretvara u sigurnost.
Posebno je opasno cijepanje fraze makazama. Nekad korisnik stavi prvih osam riječi na jedno mjesto, drugih osam na drugo, ostatak na treće, i misli da je napravio raspodijeljeno povjerenje. Nije. Povećao je šansu da sam sebi zaključa pristup, a napadaču koji nađe jedan dio drastično smanjio prostor pretrage. Pravi pragovski model, SLIP-39, definiše pravila poput bilo koja tri dijela od pet, ali i on uvodi nova pitanja: koliko dijelova postoji, koliko ih treba, da li su iz istog seta, da li postoji passphrase, ko ih drži, kako se provjerava čitljivost, šta kada jedan treba zamijeniti, da li drugi novčanik podržava isti format. Bolja kriptografija ponekad samo premjesti složenost.
Rizik prije vrijednosti: dvanaest koraka do članske kartice
Tipičan tok i dalje izgleda ovako: izaberi novčanik koji ne poznaješ, instaliraj ekstenziju, napravi nalog, zapiši dvanaest ili dvadeset četiri riječi, potvrdi redoslijed, vrati se u aplikaciju, poveži novčanik, promijeni mrežu, nabavi nativni token za naknadu, potpiši poruku, odobri trošenje tokena, pošalji transakciju, čekaj rezultat koji ni explorer ne objasni ljudski.
Zamislite da to tražimo za digitalnu člansku karticu. Korisnik želi popust ili ulaz na događaj, a mi od njega prvo tražimo da postane vlastiti administrator sigurnosti. Tek onda mu dajemo popust. Nije čudno što zatvori aplikaciju. To je loša razmjena: mnogo rizika, a još nema koristi.
Dobar onboarding radi suprotno. Prvo pokaže vrijednost u režimu samo za čitanje, bez novčanika. Javne podatke sa lanca moguće je čitati bez korisničke adrese, preko vlastitog pristupa čvoru. Ponuda, zadaci, kolekcije i profili mogu se istražiti prije ikakvog potpisa. Novčanik treba da se pojavi kada rješava konkretan problem, na primjer kada contributor koji je poslao prihvaćeni doprinos treba da primi isplatu u stablecoinu i dokaže kontrolu nad adresom. Klasična sesija tada identifikuje autora rada, novčanik potvrđuje adresu za isplatu, lanac izvršava transfer. Nema razloga da jedan mehanizam glumi identitet, profil, prijavu i plaćanje odjednom.
Ista logika vrijedi za developere. Integracija nije gotova kada dugme Connect Wallet vrati adresu. Tek tada počinje pravi posao: kada se novčanik zaista traži, kako se dokazuje kontrola nad adresom, kako se objašnjava potpis, ko plaća naknadu, šta se dešava pri promjeni naloga ili mreže, kako radi oporavak, kako se podržavaju pametni nalozi i ključevi za sesiju, ko snosi posljedice greške.
Povezivanje nije prijava. Ono aplikaciji obično otkriva izabranu javnu adresu, ali adresa nije beznačajna, vezana je za javnu historiju. Korisnik zatim može promijeniti nalog, promijeniti mrežu, odspojiti novčanik, doći sa drugim provajderom, koristiti pametni nalog čija se politika kasnije mijenja. Standard EIP-1193 zato definiše događaje poput accountsChanged, chainChanged, connect i disconnect. Aplikacija koja adresu pročita jednom pri učitavanju i tretira je kao trajni identitet, implementirala je samo sretni put. Svaka promjena naloga ili lanca mora poništiti pretpostavke prethodne sesije, a izazov za prijavu potpisom mora biti jednokratan, vremenski ograničen i vezan za domen, adresu i mrežni kontekst.
Sljedeća zamka je potpis koji niko ne može pročitati. Korisnik vidi dugme Kupi ili Nastavi, a novčanik pokaže heksadecimalne podatke, adresu ugovora, nepoznati selektor metode, procjenu naknade ili poruku u strukturiranom formatu. Tehnički je sve tu, ljudski malo šta znači. Korisnika zanima: šta se dešava ako potvrdim, koliko ukupno plaćam, ko dobija sredstva, da li je dozvola jednokratna ili neograničena, na kojoj mreži sam, mogu li dozvolu kasnije opozvati, šta ako dio grupne operacije ne uspije. Umjesto Approve za nepoznatog potrošača, korisnije je reći da dajete tačno određenoj aplikaciji pravo da potroši tačno određeni token do tačno određenog iznosa, i ponuditi ograničenu dozvolu. Kriptografski precizno nije automatski i ljudski jasno. Ekran za potvrdu treba tretirati kao sigurnosni proizvod, ne kao pregled JSON-a.
Na to se lijepe mreža i naknada. Korisnik ima token, ali na pogrešnoj mreži. Novčanik nema nativni token za gas. Aplikacija traži promjenu mreže, pa most, pa novi potpis, novu naknadu i čekanje. Svaki korak je tehnički opravdan, zajedno su zamorni. Rječnik tu dodatno zbunjuje. Gasless obično ne znači da izvršenje nema cijenu, nego da je aplikacija ili paymaster preuzeo plaćanje, pa korisnik ne mora unaprijed imati nativni token. To može spasiti prvi susret sa proizvodom, ali trošak ne nestaje, samo ga neko drugi plaća. Poslovni model mora to uračunati.
Zato poruka da korisnike samo treba educirati zvuči kao izgovor. Ako neko ne zna razliku između mreža, objašnjenje pomaže. Ako za jednostavnu radnju mora promijeniti tri mreže, kupiti token za gas i tumačiti sirove podatke ugovora, problem više nije znanje. A industrija mu šalje dvije suprotne poruke: sve je brzo i jednostavno, ali ako pogriješite, posljedice mogu biti trajne. Oprez koji tada pokazuje nije iracionalan strah, nego zdrava sigurnosna odluka. Kod obične aplikacije klik se može vratiti. Kod potvrđene transakcije povratka u pravilu nema.
Seedless ne znači sigurno, ali progresivna sigurnost je put
Bilo bi pogrešno reći da seed frazu treba ukinuti. Za iskusnog korisnika sa većim iznosima, uz dobro osmišljen backup i hardverski potpisnik, ona ostaje snažna: čuva se potpuno offline, ne zavisi od firme koja je napravila aplikaciju, omogućava obnovu kompatibilnog novčanika bez centralne dozvole. Problem je ideja da isti model mora biti zadani ulaz za svaku aplikaciju, od dugoročne štednje do karte za koncert, od zajedničkog fonda do loyalty programa.
Alternative postoje i svaka nosi svoje kompromise. Passkey koristi poznatu potvrdu sistemom ili biometrijom bez pokazivanja korijenske tajne, oslonjen na standard WebAuthn gdje privatni ključ ostaje kod autentifikatora. Pametni nalozi, opisani kroz ERC-4337 i apstrakciju naloga, donose programabilna pravila, više potpisnika, limite, privremene dozvole, guardian oporavak i sponzorisanje naknada. MPC i pragovsko potpisivanje dijele kontrolu tako da nigdje ne postoji jedan kompletan ključ. Vremenski odloženi oporavak i više uređaja dodaju još slojeva.
Nijedno rješenje nije čarobno. Passkey zavisi od platforme i načina sinhronizacije. Guardian model traži pažljiv izbor ljudi ili uređaja. MPC uvodi složen odnos povjerenja sa čuvarima dijelova. Pametni nalog zavisi od koda, infrastrukture i pravila oporavka. Seedless zato ne znači automatski ni decentralizovano ni sigurnije, znači samo da korisnik ne vidi klasičnu frazu. Prava pitanja ostaju: ko može odobriti transakciju, kako se pristup obnavlja i može li korisnik otići bez dozvole jednog provajdera.
Ovdje dolazi dio koji developeri često potcijene: cijena. Pametni nalozi koštaju. Onchain postavljanje, paymaster budžet za sponzorstvo, bundler i RPC infrastruktura, revizija koda i operativna sigurnost, sve to neko plaća. Apstrakcija ne uklanja kompromise, samo ih čini vidljivim na drugom mjestu. Zato ima smisla mjeriti tokom razvoja: koliko korisnika odustane prije povezivanja, koliko potpisa bude odbijeno iz nerazumijevanja, koliko podrške dolazi zbog promjene uređaja, koliko oporavaka uspije iz prvog pokušaja, koliko košta sponzorisani korisnik.
Praktična pravila se nameću sama. Ne prikazuj seed bez stvarne potrebe i ne traži ga unaprijed za prazan nalog. Ne nazivaj lokalnu lozinku mehanizmom za oporavak, jer ona to nije. Prikaži posljedicu potpisa jezikom iznosa, primaoca, mreže i ukupnog troška. Smanji broj odluka, a ne nivo sigurnosti. Testiraj oporavak prije nego što zatreba, kao vježbu, a ne kao ispit u panici. Dizajniraj izlaz prije ulaza, odnosno unaprijed odgovori kako korisnik odlazi, mijenja uređaj, nasljeđuje pristup ili napušta provajdera.
Ako postoji sumnja da je fraza viđena, fotografisana ili nekome poslana, siguran odgovor obično nije promjena PIN-a. Potrebno je napraviti novi novčanik sa novim ključevima i, dok je još moguće, preseliti sredstva, vodeći računa o tokenima na više mreža, NFT-ovima i aktivnim dozvolama. Kompromitovana tajna se ne opoziva promjenom lozinke, nego selidbom na novi korijen povjerenja.
Kripto novčanici su dugo pravljeni za ljude koji su već odlučili da žele kripto novčanik. Sljedeći krug korisnika neće doći zbog fraze, nego uprkos njoj. Pobijediće proizvodi koji poštuju jednostavnu istinu iz sva tri izvora: prvo vrijednost, pa odgovornost, i to postepeno. Početniku sa kartom za događaj dovoljan je lagan, vođeni model sa jasnim limitima. Čuvaru porodične štednje treba strožiji sistem sa hardverom, podjelom odgovornosti i provjerenim oporavkom. Jedan ritual za sve je upravo ono što nas je dovelo dovde. Vrijeme je da ga ostavimo tamo gdje mu je mjesto, kao jednu od opcija, a ne kao cijenu ulaza.
IZVOR: