Autor: Zhixiong Pan
W Twojej kieszeni już od dawna znajduje się „portfel sprzętowy”
W naszych codziennych telefonach i komputerach w rzeczywistości wbudowane są specjalne układy bezpieczeństwa. Na przykład w iPhone znajduje się „Secure Enclave”, a w telefonach z Androidem Keystore / Trust Zone / StrongBox.
Ta niezależna fizyczna strefa jest zwykle nazywana TEE (Trusted Execution Environment – Zaufane Środowisko Wykonawcze). Jej cechą jest „tylko wejście, bez wyjścia”: klucz prywatny jest generowany wewnątrz i nigdy nie opuszcza tej fizycznej strefy, a z zewnątrz można jedynie żądać podpisania danych.
To w rzeczywistości jest standard portfela sprzętowego. A te układy podczas podpisywania powszechnie wykorzystują wybraną przez NIST (National Institute of Standards and Technology) branżową standardową krzywą algorytmiczną: secp256r1. To właśnie ona stanowi fundament WebAuthn i FIDO2 (np. logowania odciskiem palca, FaceID).
Przepaść różniąca się tylko jedną literą
Niestety, Ethereum natywnie nie obsługuje tej popularnej secp256r1.
Kiedyś społeczność Bitcoin, obawiając się „państwowych backdoorów” w krzywych NIST, wybrała mniej popularną secp256k1, dlatego Ethereum podczas projektowania systemu kont przejęło tę tradycję.
Chociaż r1 i k1 różnią się tylko jedną literą, matematycznie są to zupełnie różne języki. To prowadzi do ogromnego problemu: układ bezpieczeństwa w Twoim telefonie jest całkowicie zdezorientowany wobec Ethereum i nie może bezpośrednio podpisywać transakcji Ethereum.
Skoro nie można zmienić sprzętu, trzeba go „skompatybilizować” w tej wersji
Ethereum oczywiście nie może zmusić Apple czy Samsunga do zmiany projektu układów, by dostosować je do secp256k1, jedyną drogą jest więc dostosowanie się Ethereum do secp256r1.
Czy można napisać kod w smart kontrakcie, by weryfikować podpisy r1? Teoretycznie tak, ale obliczenia matematyczne są zbyt złożone – jedno sprawdzenie może kosztować setki tysięcy Gas, co czyni to całkowicie nieopłacalnym ekonomicznie.
Dlatego w aktualizacji Fusaka deweloperzy sięgnęli po potężne narzędzie: prekompilowane kontrakty (Precompile). To jakby otworzyć „tylne drzwi” lub „wtyczkę” w Ethereum Virtual Machine (EVM). Zamiast pozwalać EVM liczyć krok po kroku, lepiej napisać funkcję weryfikacji bezpośrednio w kodzie bazowym klienta. Deweloperzy muszą tylko wywołać określony adres, by zrealizować weryfikację przy bardzo niskim koszcie.
W EIP-7951 koszt ten ustalono na 6900 Gas, co z poziomu setek tysięcy spadło do kilku tysięcy, wreszcie wchodząc w zakres „możliwe do codziennego użycia w prawdziwych produktach”.
Ostatni element układanki abstrakcji kont
Wdrożenie tego EIP oznacza, że w końcu możemy podpisywać autoryzacje dla smart kont na Ethereum w środowisku TEE telefonu.
Warto zauważyć, że nie dotyczy to obecnych adresów EOA, takich jak Twój MetaMask (ponieważ logika generowania klucza publicznego nadal opiera się na k1).
To rozwiązanie przygotowane specjalnie dla „abstrakcji kont” (AA wallet). W przyszłości Twój portfel nie będzie już frazą mnemoniczna, lecz smart kontraktem. W tym kontrakcie zapisane będzie:
„Jeśli ten odcisk palca (podpis r1) zostanie zweryfikowany jako poprawny, zezwól na transfer.”
Podsumowanie
EIP-7951 być może nie sprawi, że frazy mnemoniczne znikną z dnia na dzień, ale w końcu usuwa największą przeszkodę na drodze do masowej adopcji Ethereum.
Dotychczas użytkownik zawsze stał przed trudnym wyborem: Chcesz mieć „bankowy” poziom bezpieczeństwa? Musisz kupić OneKey, Keystone lub Ledger i przechowywać frazę mnemoniczna jak sztabki złota; chcesz najwygodniejsze doświadczenie? Musisz trzymać środki na giełdzie lub w portfelu powierniczym, oddając kontrolę (poświęcając decentralizację).
Po aktualizacji Fusaka ten dylemat zniknie.
Wraz z wdrożeniem EIP-7951, „telefon jako portfel sprzętowy” stanie się rzeczywistością. Dla przyszłych miliarda nowych użytkowników być może nie będzie już potrzeby wiedzieć, czym jest „klucz prywatny”, ani mierzyć się z presją zapisywania 12 słów.
Będą mogli po prostu, jak przy zakupie kawy, zeskanować twarz lub przyłożyć palec, a układ bezpieczeństwa iPhone’a podpisze transakcję secp256r1 i zweryfikuje ją przez natywny prekompilowany kontrakt Ethereum.
To jest właściwy sposób, by Ethereum przyjęło kolejny miliard użytkowników: nie wymagać od nich nauki złożonej kryptografii, lecz dostosować się do powszechnych standardów internetu i wejść prosto do ich kieszeni.




