Aplikacija je samo prozor, a ne sef. To sam prvi put stvarno shvatio kada sam isti saldo vidio na dva mjesta i zapitao se zašto se u jednom slučaju moram nadati da će neko odobriti isplatu, a u drugom sve zavisi od mene.

Kripto ne stoji u telefonu kao što fotografije stoje u memoriji. Bitcoin, ether, USDT ili USDC postoje kao zapis koji održava cijela mreža, a novčanik samo čita taj zapis i daje ti mogućnost da ga potpisom promijeniš. Zato brisanje aplikacije ne briše kripto. Ako imaš ispravnu rezervnu kopiju, instaliraš drugi kompatibilni novčanik i ponovo vidiš iste adrese. Nisi ništa prenio, samo si kroz drugi prozor pogledao isti knjigovodstveni trag na mreži.

Kod Ethereuma to izgleda kao stanje vezano za adresu. Tehnički se pravi razlika između naloga kojim upravlja privatni ključ i ugovornog naloga čije ponašanje određuje kod. Kod Bitcoina logika je drugačija. Novčanik ne čita jedan broj, nego pronalazi nepotrošene izlaze, takozvane UTXO zapise, koje tvoji ključevi mogu otključati. Iznos koji vidiš je zbir tih izlaza koje smiješ potrošiti.

Preciznija slika zato glasi: novčanik ne čuva coine, novčanik čuva ili koristi ovlaštenje za njihovo trošenje. To ovlaštenje je najčešće privatni ključ, ali može biti i hardverski uređaj, skup potpisa, prag od dva od tri potpisa, podijeljeno potpisivanje ili pametni nalog sa pravilima. Aplikacija, ekstenzija ili uređaj su samo sučelje koje priprema transakciju, pokazuje ti šta potpisuješ i prosljeđuje potpis čvoru na mreži.

Šta zapravo imaš na mjenjačnici

Centralizovana mjenjačnica je spoj nekoliko sistema u jednom: naloga i identiteta, provjere korisnika, internog finansijskog ledgera, trgovanja, depozita, isplata, vrućih i hladnih novčanika i stalnog usklađivanja internog stanja sa stanjem na lancu.

Kada na mjenjačnici kupiš 0,1 ETH, na ekranu se saldo promijeni gotovo odmah. Prirodno je pomisliti da je firma uzela 0,1 ETH i stavila ga na posebnu blockchain adresu otvorenu samo za tebe. U pravilu nije tako.

Platforma najčešće samo umanji tvoje stanje u eurima ili dolarima i u svojoj bazi zapiše da ti pripada 0,1 ETH. Stvarni ether može ostati na zajedničkim adresama gdje se drže sredstva velikog broja korisnika, raspoređen između vrućeg novčanika za tekuće isplate, hladnijeg skladišta, zajedničkih adresa i infrastrukture sa više potpisnika. Za blockchain se u tom trenutku možda nije dogodilo ništa.

Isto vrijedi za trgovanje. Kada jedan korisnik na platformi proda 0,1 BTC, a drugi ga kupi, mjenjačnica samo promijeni internu evidenciju. Blockchain ne vidi tu zamjenu. On postaje važan tek na granici sistema, kada šalješ kripto izvana na mjenjačnicu, kada povlačiš kripto van, ili kada sama platforma konsoliduje depozite i dopunjava vrući novčanik.

Zato su ovo dvije potpuno različite rečenice. Moja adresa ima 0,5 ETH može se provjeriti direktnim čitanjem mreže. Moj nalog na mjenjačnici pokazuje 0,5 ETH znači da interni sistem priznaje taj saldo, prema svojim pravilima, limitima i stanju infrastrukture.

Depozitna adresa koju dobiješ od mjenjačnice često nije trajni sef. Ona služi za pripisivanje uplate. Sistem prati lanac, poveže dolaznu transakciju sa tvojim nalogom i tek poslije dovoljnog broja potvrda knjiži saldo u internom ledgeru. Zato ozbiljan sistem razlikuje tri stanja: primijećeno, potvrđeno na mreži i pripisano korisniku. Ta tri trenutka ne moraju se dogoditi istovremeno.

Slično je i sa isplatom. Ti ne šalješ blockchain transakciju, ti tražiš isplatu. Platforma provjerava saldo, limite i sigurnosna pravila, rezerviše iznos, priprema transakciju iz svog skrbništva i tek onda je objavljuje na mreži. HTTP odgovor koji kaže da je zahtjev primljen nije dokaz da je novac stigao. To je samo potvrda da je proces pokrenut. Zato se više korisničkih isplata može grupisati u jednu transakciju, pa naknada koju si platio ne mora odgovarati tačnom trošku mreže za tvoj izlaz.

Trenutak slanja otkriva ko ima kontrolu

Uzmi isti primjer: 1.000 USDC na mjenjačnici i 1.000 USDC u vlastitom novčaniku. Na ekranu razlika izgleda kozmetička. U stvarnosti je suštinska.

Na mjenjačnici uneseš adresu, izabereš mrežu i potvrdiš povlačenje. Platforma odlučuje da li će zahtjev proći. Ona potpisuje svojim sistemom. Ti si zatražio, ona je izvršila.

U ličnom novčaniku aplikacija priprema transakciju, ali je ti odobravaš svojim ključem. Nema firme koja mora reći da. Postoji samo pitanje da li je potpis ispravan i da li mreža može obraditi transakciju. Ti nisi tražio dozvolu, ti si autorizovao promjenu.

Ta sloboda ima i drugu stranu. Ako na mjenjačnici vidiš sumnjiv zahtjev koji još nije obrađen, ponekad ga možeš zaustaviti pozivom podršci, zamrzavanjem naloga ili provjerom. Ako iz vlastitog novčanika potpišeš pogrešnu transakciju, povratka uglavnom nema. Mreža provjerava potpis, a ne tvoju namjeru. Ona ne zna da si bio umoran, da ti je virus zamijenio adresu u clipboardu ili da si pogrešno shvatio ekran za potpis. Tehnički ispravna transakcija može biti potpuno neželjena.

Zato je trezven stav koji proizlazi iz sva tri izvora jasan i ne treba ga ublažavati. Samostalno čuvanje nije bedž za sigurnost, to je prenos odgovornosti. Osoba na provjerenoj platformi, sa jedinstvenom lozinkom, aplikacijom za dvofaktorsku zaštitu i listom dozvoljenih adresa, može biti sigurnija od osobe koja je seed frazu slikala telefonom i ostavila u nezaštićenom cloudu. U prvom modelu može pogriješiti posrednik. U drugom možeš pogriješiti ti. U oba slučaja greška košta.

Mreža, memo i probna transakcija nisu sitnice

Najčešća početnička greška nije krađa ključa. Dovoljno je izabrati pogrešnu rutu.

USDT i USDC postoje na više mreža. Simbol je isti, ali put nije. USDC na Ethereumu i USDC na Base mreži ili drugom lancu nisu ista uplata. Moraš modelovati najmanje sredstvo plus mreža plus adresa, a ponekad i dodatnu oznaku. Na nekim mrežama mjenjačnica koristi zajedničku adresu uz memo, tag ili destination tag da bi znala kome uplata pripada.

Ako pošalješ na tačnu adresu, ali izostaviš obavezni memo, mreža će potvrditi da je novac stigao, a mjenjačnica neće automatski znati da je tvoj. Blockchain potvrda i uspješno pripisan saldo nisu ista stvar. Prvo je činjenica mreže, drugo je odluka internog sistema.

Zato pravilo koje stalno ponavljam ima smisla: za novi novčanik, novu platformu ili veći iznos prvo pošalji probni iznos. Ako planiraš poslati 5.000 jedinica stablecoina, prvo pošalji 5 ili 10. Tek kada se pojave na pravom mjestu, šalješ ostatak. Platićeš dodatnu naknadu, ali ćeš provjeriti adresu, mrežu i memo prije nego što rizikuješ cijeli iznos. Adresu nemoj provjeriti samo po prva tri znaka. Uporedi više znakova na početku i na kraju, naročito poslije lijepljenja. Ako koristiš hardverski uređaj, konačne podatke provjeri na ekranu uređaja, jer ekran računara može prikazivati jedno, a uređaj potpisivati drugo.

Seed fraza, potpis i uređaji

Privatni ključ je tajna za jedan nalog. Seed fraza od 12 ili 24 riječi je ljudski čitljiv zapis materijala iz kojeg se može izvesti mnogo ključeva. Jedna rezervna kopija može obnoviti cijelo stablo adresa, ali to znači i veći rizik. Ko dođe do seed fraze, često ne dobija jedan nalog, nego cijeli novčanik.

Zato seed fraza ne pripada galeriji telefona, običnim bilješkama, mailu poslanom samom sebi, nezaštićenom cloud dokumentu, poruci rodbini ni sajtu koji navodno sinhronizuje novčanik. Prava podrška može tražiti javnu adresu ili identifikator transakcije. Nikada ne treba da traži tih 12 ili 24 riječi. Ko ih traži da bi nešto provjerio umjesto tebe, ne nudi pomoć, traži kontrolu.

Isto vrijedi za potpis. Dobra aplikacija ne traži tvoj privatni ključ, ona šalje zahtjev novčaniku, a novčanik te pita da potvrdiš. Na EVM sučeljima to ide preko standardnog providera koji prijavljuje adresu i mrežu, ali ključ ostaje skriven. Problem je što zlonamjerna stranica može pripremiti pogrešan zahtjev. Ako ga odobriš, potpis će biti kriptografski ispravan, iako namjera nije bila poštena. Zato sučelje mora jasno razlikovati prijavu, dozvolu token ugovoru i slanje sredstava.

Ovdje dolazi zanimljiv paradoks koji srednji izvor odlično pogađa. Ljudi požele lični novčanik da uklone potrebu za povjerenjem u firmu, pa onda seed frazu predaju prvom ubjedljivom sajtu. Samostalna kontrola ima smisla samo uz samostalnu provjeru.

Tehnički izvori idu korak dalje i podsjećaju da rečenica koristimo novčanik ne govori ništa o sigurnosnom modelu. Jedan ključ na serveru jeste samostalno čuvanje u formalnom smislu, ali je loša arhitektura. Jedan ključ je jedna tačka kvara, bez radnog toka odobravanja, a gubitak znači selidbu na novi nalog ako stigneš prije napadača. Hardverski novčanik smanjuje rizik krađe ključa, ali ne rješava prevarni prikaz transakcije. Multisig sa pragom, recimo dva od tri, odvaja tehničku i poslovnu kontrolu i podnosi gubitak jednog uređaja, ali traži disciplinu oko vlasnika i praga. Podijeljeno potpisivanje dijeli proces tako da cijeli ključ ne mora postojati na jednom mjestu, pa prema mreži sve može izgledati kao jedan običan potpis. Pametni nalog dodaje limite, liste odredišta, ključeve za sesije i module za oporavak, ali uvodi rizik greške u kodu i konfiguraciji.

Za timski ili porodični novac zato vrijedi pravilo: ključ u običnoj varijabli okruženja nije trezor. Rješenje je razdvajanje uloga, predlaganje, pravila i odobravanje, potpisivanje, objava i nezavisno usklađivanje. Servis koji gradi transakciju ne mora imati pravo da je potpiše, a potpisnik ne mora znati ništa o korisničkoj sesiji.

Trošak, greške i podjela uloga

Ni mjenjačnica ni vlastiti sistem nisu besplatni. Kod mjenjačnice plaćaš naknade za trgovanje, razliku u cijeni, naknade za povlačenje, trošak usklađivanja i zavisnost od tuđeg API-ja, dostupnosti isplata i regionalnih pravila. Kod vlastitog sistema plaćaš mrežne provizije za svaki zapis, indeksiranje i praćenje finalnosti, opremu, backup procedure i cijenu greške u ugovoru ili procesu.

Najveće greške se ponavljaju. Jedan status završeno bez razlike između primljeno, potvrđeno i pripisano. Oznaka tokena kao jedini identitet sredstva, bez mreže i ugovora. Privatni ključ na istom serveru kao javni API. Ponavljanje zahtjeva bez zaštite od dvostrukog knjiženja. Oslanjanje samo na obavještenja sa platforme ili samo na povremeno ispitivanje, bez nezavisnog čitanja lanaca i dnevnika događaja. Knjiženje depozita poslije prve pojave transakcije, prije dovoljne finalnosti. Bilježenje punih tajni u logove. I najopasnije, nepostojanje procedure za kompromitaciju.

Odgovor nije biranje tabora, nego podjela uloga. Mjenjačnica je praktična za kupovinu, prodaju i zamjenu. Lični novčanik je logičan za neposrednu kontrolu, dugoročnije čuvanje ili rad sa aplikacijama direktno na lancu. Mnogi korisnici prirodno dođu do kombinacije: dio za trgovanje na platformi, dugoročniji dio u odvojenom novčaniku, a za isprobavanje novih sajtova poseban novčanik sa malim iznosom. Novčanik koji se stalno povezuje izloženiji je lošim dozvolama, pa nema razloga da na njemu leži cijela rezerva. Isto tako nema razloga da cijela rezerva mjesecima stoji na platformi za trgovanje ako ne trguješ.

Koliko je previše za mjenjačnicu ne određuje univerzalni broj. Za nekoga je 200 EUR eksperiment, za drugoga ozbiljan dio primanja. Bolje mjerilo je posljedica gubitka. Ako bi gubitak bio neugodan, ali podnošljiv, nema potrebe uvoditi sistem koji još ne razumiješ. Ako bi gubitak promijenio finansijsku sliku, vrijeme je za ozbiljan plan. I nemoj žuriti. Rizičnije je nabrzinu preuzeti odgovornost nego privremeno ostati na poznatoj platformi dok sa malim iznosom ne prođeš cijeli krug: napravi novčanik, zapiši kopiju, primi sitan iznos, pošalji dio dalje, provjeri na exploreru, obriši test aplikaciju i obnovi iz kopije. Kopija je provjerena tek kada se iz nje obnove očekivane adrese.

Na kraju ostaje pet pitanja koja su korisnija od pitanja gdje mi je kripto. Ko može odobriti slanje. Ko može zaustaviti isplatu. Ko mi može vratiti pristup. Šta tačno moram sačuvati. Čija greška me može koštati. Ako je odgovor mjenjačnica, imaš podijeljenu kontrolu: ti čuvaš pristup nalogu, firma čuva ključeve i izvršenje. Ako je odgovor tvoj novčanik, kontrola je neposredna, ali je i teret greške bliži tebi.

Zato tvrdim bez okolišanja: broj na ekranu je najmanje važan dio priče. Važno je ko potpisuje, gdje je izvor istine i ko snosi posljedice. Kada to razumiješ, prestaješ gledati saldo kao imovinu, a počinješ ga čitati kao odnos. A odnosi u kriptu, kao i u banci iz koje je potekla jedna od autorica ovih tekstova, uvijek imaju cijenu. Pametan korisnik ne bira stranu, nego bira rizik koji razumije i zna kako će ga nositi kada ekran jednog dana ne bude zelen.

IZVORI