za
cex

Dowód rezerw jako fundament działania bezpiecznego CEX’a

Vitalik Buterin, współtwórca Ethereum, jest jedną z najbardziej rozpoznawalnych postaci w branży kryptowalut. Możliwe że nie jest Ci znany fakt, że jest on również współzałożycielem Bitcoin Magazine. W początkowej fazie rozwoju rynku kryptowalut udzielał się tam jako redaktor, zarabiając dwa bitcoiny za każdy napisany artykuł. Obecnie Vitalik prowadzi swojego bloga, gdzie regularnie porusza najbardziej aktualne tematy związane z kryptowalutami. Najnowszy wpis dotyczy bezpieczeństwa zcentralizowanych giełd (z ang. CEX – centralized exchange). Przygotowaliśmy dla Was podsumowanie jego najnowszego artykułu i przy okazji bardzo polecamy lekturę starszych wpisów.

Kryptograficzne rozwiązania dla zcentralizowanych giełd

Za każdym razem, gdy upada duża scentralizowana giełda, pojawia się pytanie, czy możemy zapobiec takiemu problemowi w przyszłości. Zamiast polegać wyłącznie na metodach fiducjarnych, takich jak licencje rządowe czy audytorzy, giełdy mogłyby tworzyć własne dowody kryptograficzne. Takie nowatorskie podejście mogłoby niezaprzeczalnie udowadniać, że środki, które trzymają w swoich rezerwach, wystarczają na pokrycie zobowiązań wobec użytkowników. W teorii giełda mogłaby także zbudować system, w którym niemożliwe będzie wypłacenie środków deponenta bez jego zgody.

Przyjrzyjmy się niektórym technologiom, które mogłyby znacznie ograniczyć lub wręcz zlikwidować ryzyko straty zdeponowanych środków.

Listy bilansowe i drzewa Merkle: dowód wypłacalności starej szkoły

Najwcześniejsze próby giełd, aby spróbować kryptograficznie udowodnić, że nie oszukują swoich użytkowników, sięgają dość daleko wstecz. W 2011 roku największa wówczas giełda bitcoinów MtGox udowodniła, że ​​ma fundusze, wysyłając transakcję, która przeniosła 424242 BTC na wcześniej ogłoszony adres. W 2013 roku rozpoczęły się dyskusje nad rozwiązaniem drugiej strony problemu: udowodnieniem całkowitej wielkości depozytów klientów.

Przynajmniej w teorii, najprostszym sposobem udowodnienia depozytów jest po prostu opublikowanie listy balansów. Taka praktyka naruszyłaby jednak prywatność użytkowników. Chęć jej zachowania prowadzi nas do kolejnego wynalazku – techniki drzewa Merkle’a.

cex
Zielony: węzeł Charliego. Niebieski: węzły, które Charlie otrzyma jako część dowodu. Żółty: węzeł główny, publicznie pokazywany wszystkim.

Technika drzewa Merkle’a polega na umieszczeniu tabeli sald klientów w drzewie sum. Węzły liści dolnej warstwy reprezentują salda i skróty nazw użytkowników poszczególnych klientów. W każdym węźle wyższej warstwy saldo jest sumą dwóch sald poniżej, a hash jest sumą hashy dwóch węzłów poniżej. Giełda wysyłałaby każdemu użytkownikowi dowód sumy Merkle potwierdzający saldo. Użytkownik miałby wtedy gwarancję, że jego saldo jest prawidłowo uwzględnione jako część sumy. Prostą przykładową implementację kodu można znaleźć tutaj.

Wyciek prywatności w tym projekcie jest znacznie niższy niż w przypadku w pełni publicznej listy, jednak nadal istnieje. Atakujący, który kontroluje wiele kont, może potencjalnie dowiedzieć się znacznej ilości informacji o użytkownikach giełdy.

Poprawa prywatności i niezawodności dzięki ZK-SNARK

Aby znacznie uprościć i poprawić prywatność w protokołach potwierdzających odpowiedzialność, giełdy kryptowalut mogłyby użyć technologii ZK-SNARK. Najprostszą rzeczą byłoby umieszczenie wszystkich depozytów użytkowników w drzewie Merkle’a i użyć ZK-SNARK. Można w ten sposób udowodnić, że wszystkie salda w drzewie są nieujemne i sumują się do jakiejś deklarowana wartość. Jeśli dodamy warstwę haszowania w celu zapewnienia prywatności, dowód KZG przekazany każdemu użytkownikowi nie ujawni niczego na temat salda jakiegokolwiek innego użytkownika.

cex
Stosowanie zobowiązań KZG jest jednym ze sposobów uniknięcia wycieku prywatności, ponieważ nie ma potrzeby dostarczania „węzłów siostrzanych” jako dowodów, a prosty ZK-SNARK może służyć do udowodnienia sumy sald i tego, że żadne saldo nie jest ujemne.

Wystarczy kilka dodatkowych równań, aby takie systemy można było dostosować do bardziej złożonych ustawień. Na przykład w systemie handlu lewarowanego, pojedynczy użytkownicy posiadający ujemne saldo są akceptowalni, ale tylko wtedy, gdy mają wystarczającą ilość innych aktywów, aby pokryć fundusze pewnym depozytem zabezpieczającym. SNARK mógłby zostać użyty do udowodnienia tego bardziej skomplikowanego ograniczenia, zapewniając użytkowników, że giełda nie ryzykuje ich funduszy poprzez potajemne zwolnienie innych użytkowników z zasad.

Dowód rezerw CEX

Najprostszą wersją dowodu rezerw jest protokół, o którym wspomnieliśmy wyżej w odniesieniu do giełdy MtGox. Aby udowodnić, że posiadasz X monet, po prostu przenosisz X monet w określonym czasie lub w transakcji. Pole danych zawiera przykładowo frazę „te środki należą do Binance’a”.

Istnieją jednak dwa praktyczne problemy z tą prostą techniką potwierdzania aktywów. Po pierwsze, ze względów bezpieczeństwa większość giełd przechowuje znaczną większość środków klientów w „chłodniach”. Mowa o komputerach offline, gdzie transakcje muszą być podpisywane i ręcznie przenoszone do Internetu. Ze względu na wysokie wartości transakcji, protokoły bezpieczeństwa używane przez giełdy należą do bardzo skomplikowanych i często wymagają wielostronnych obliczeń między kilkoma urządzeniami, aby jeszcze bardziej zmniejszyć ryzyko włamania. Biorąc pod uwagę tego rodzaju konfigurację, wysłanie nawet jednej dodatkowej wiadomości w celu udowodnienia kontroli nad adresem będzie kosztowną operacją.

Inną ważną kwestią jest ochrona przed dodatkowym podwójnym zastosowaniem. Przerzucanie zabezpieczeń między sobą w celu potwierdzenia rezerw jest czymś, co giełdy typu CEX mogą z łatwością zrobić. Taka praktyka pozwoliłaby im udawać, że są wypłacalne, podczas gdy w rzeczywistości nie są. W idealnym przypadku dowód wypłacalności byłby przeprowadzany w czasie rzeczywistym, z dowodem aktualizowanym po każdym bloku. Jeśli jest to niepraktyczne, następną najlepszą rzeczą byłoby np. regularne sprawdzanie rezerw co tydzień o danej godzinie.

Plazma i walidacje

Załóżmy teraz, że nie chcemy po prostu udowodnić, że giełda ma środki na spłatę swoich użytkowników. Chcemy raczej zapobiec całkowitej kradzieży funduszy użytkowników przez giełdę. Pierwszą poważną próbą w tym zakresie była Plazma. To skalowalne rozwiązanie było popularne w kręgach badawczych Ethereum w 2017 i 2018 roku. Plazma działa poprzez podzielenie salda na zestaw indywidualnych „monet”. Każda z nich ma przypisany indeks i istnieje w określonej pozycji w drzewie Merkle’a. Wykonanie ważnego transferu wymaga umieszczenia transakcji we właściwej pozycji drzewa, którego korzeń zostanie opublikowany w łańcuchu.

Uproszczony schemat jednej wersji Plazmy. Monety są przechowywane w inteligentnej umowie, która egzekwuje zasady protokołu Plazmy w czasie wypłaty.

Firma OmiseGo próbowała stworzyć zdecentralizowaną wymianę opartą na tym protokole, ale od tego czasu zwróciła się ku innym pomysłom – podobnie jak sama Plasma Group, która jest teraz projektem znanym pod nazwą Optimism.

Bardziej nowoczesną wersją idei Plazmy jest validium. Ta konstrukcja może być używana w wielu przypadkach, prawdopodobnie wszędzie tam, gdzie scentralizowany serwer musi uruchomić jakiś kod i udowodnić, że wykonuje go poprawnie. W validium operator nie ma możliwości kradzieży funduszy. W zależności od szczegółów implementacji pewna ilość funduszy użytkownika może jednak utknąć, jeśli operator zniknie.

Okazuje się więc, że istnieje całe spektrum opcji, w tym różne formy centralizacji hybrydowej, w których zyskujesz pewne korzyści, takie jak wydajność. Jednocześnie dostępne jest wiele kryptograficznych barier uniemożliwiających nadużycia scentralizowanego podmiotu.

Błędy użytkowników CEX

Przejdźmy teraz do innej fundamentalnej kwestii – radzenia sobie z błędami użytkownika. Co się stanie, jeśli użytkownik CEX zapomni hasła, straci swoje urządzenie, zostanie zhakowany lub w inny sposób utraci dostęp do swojego konta?

Giełdy mogą rozwiązać ten problem poprzez e-mailowe odzyskiwanie haseł, a jeśli i to zawiedzie, poprzez bardziej skomplikowane formy odzyskiwania związane z KYC. Ale aby móc rozwiązać takie problemy, dany CEX musi faktycznie mieć kontrolę nad monetami. Aby mieć możliwość odzyskiwania środków z kont użytkowników z ważnych powodów, giełdy muszą mieć określone upoważnienia. Trzeba jednak zaznaczyć, że w teorii mogą być one wykorzystane do kradzieży środków z kont użytkowników z niewłaściwych powodów. To nieunikniony kompromis.

Wnioski: przyszłość lepszych giełd

Najłatwiejszym, zgodnym wstecznie sposobem na poprawę bezpieczeństwa giełd jest powszechne zaimplementowanie dowodu rezerwy (proof-of-reserve). PoR składa się z kombinacji dowodu aktywów i dowodu zobowiązań. Istnieją jednak techniczne wyzwania związane z tworzeniem dobrych protokołów dla obu z nich. Możemy i powinniśmy posunąć się tak daleko, jak to możliwe, aby stworzyć oprogramowanie i procesy konieczne do bezpiecznego działania giełd.

Bardzo możliwe, że w dłuższej perspektywie będziemy coraz bardziej zbliżać się do tego, aby wszystkie giełdy CEX nie przechowywały kluczy prywatnych użytkowników. Jednak względu na młody wiek branży, zapewne będzie musiało minąć sporo czasu, zanim dotrzemy do tego etapu.

Bitcoina i inne kryptowaluty kupisz w prosty i bezpieczny sposób na giełdzie zondacrypto.

Tagi
Autor

Dla Bitcoin.pl zajmuję się pisaniem artykułów - przede wszystkim dłuższych form edukacyjnych. Odpowiadam za prowadzenie mediów społecznościowych związanych z naszym serwisem: Facebook, Twitter, LinkedIn, Instagram oraz TikTok.

Newsletter Bitcoin.pl

Więcej niż bitcoin i kryptowaluty. Najważniejsze newsy i insiderskie informacje prosto na Twój email.

Dbamy o ochronę Twoich danych. Przeczytaj naszą Politykę Prywatności