Wpis z mikrobloga

ZKSync - prawdziwa rewolucja w świecie krypto, coś co jeszcze niedawno wydawało się niemożliwym ideałem:
- pełna anonimowość transferów - zaszyfrowane wartości, nadawca oraz odbiorca. Anonimowość maksymalna, bo wszyscy użytkownicy kiedykolwiek (w przeciwieństwie do np. monero gdzie to tylko inne adresy w ring signature)
- przepustowość na poziomie visy już na obecnym ethereum
- działa dla tokenów/eth
- natychmiastowe potwierdzenia płatności działające dzięki karom - każdy operator systemu musi zablokować kapitał jako zabezpieczenie, w przypadku wykrycia double spendu straci go.
- opieranie się na natychmiastowych potwierdzeniach jest opcjonalne, bo można po prostu poczekać na potwierdzenie w następnym bloku ethereum
- bezpieczeństwo czysto kryptograficzne - kradzież lub blokada środków jest niemożliwa, w przypadku ew. cenzury ze strony operatorów można samemu zlecić wypłatę on-chain z systemu
- system jest nawet odporny na komputery kwantowe

Działa to tak: każdy użytkownik lokalnie generuje anonimową transakcję, jednak zamiast sygnatur generuje zk-snark - kryptograficzny dowód, że przelew jest wykonany poprawnie. Zasada działania taka sama jak w zcash.
Co jest nowego to zasada działania operatora: zbiera transakcje od użytkowników i generuje jeden kryptograficzny dowód potwierdzający ważność wszystkich indywidualnych dowodów. Potem wrzuca do normalnej transakcji ethereum prostą listę transferów - bez indywidualnych dowodów, tylko kilkanaście bajtów z zaszyfrowaną wartością i dwoma adresami, z jednym zbiorczym dowodem.
Ogromna skalowalność to zasługa połączenia o wiele mniejszego rozmiaru każdej transakcji (on-chain) + drastyczne zmniejszenie wymagań obliczeniowych (on-chain).
Algorytm brzmi jak coś oczywistego, ale do tej pory nie był technicznie możliwy.

Jakby tego było mało, jest jeszcze wisienka na torcie: w przeciwieństwie do obecnych typów zk-snark nie jest wymagany tzw. 'trusted setup' do generacji kluczy potwierdzających. Do tego bezpieczeństwo systemu opiera się o funkcje haszujące zamiast o krzywe eliptyczne, dzięki czemu jest odporny na komputery kwantowe. Wow!

Działający testnet i demo prototypu (bez anonimowości, tylko skalowanie)

Nawet bitcoinowi maksymaliści (Eric Wall) są w szoku.
"So my conclusion: this is contract is great. I wish we had it on bitcoin. It offers scalability, and doesn't have any of the channel/liquidity issues of Lightning, or where funds are held in a multisig on mainnet like Liquid, or where UASFs are needed like Drivechains."
Greg Maxwell, developer Core nieudolnie usiłował przypisać sobie częściowe autorstwo systemu - ale okazało się, że po prostu nie zrozumiał jak to działa ¯\_(ツ)_/¯

Anonimowe transfery to tylko początek - ten sam zespół niedługo wypuści kompilator do dowolnych programów, umożliwiając każdemu tworzenie m.in. prywatnych smart kontraktów. Dwie firmy będą mogły zawrzeć umowę w formie smart kontraktu, ale do ethereum wrzucić tylko jego hash i zaszyfrowany stan - a potem wykonywać postanowienia kontraktu bez ujawniania jego kodu ani danych przy pomocy wcześniej opisanego dowodu poprawności - zk-snark.

Tak będzie wyglądać przyszły system finansowy - wszystko na ethereum, maksymalna prywatność i anonimowość. Przepustowość visy na obecnym ethereum oznacza ponad 100k TPS na eth2.

Całość została opracowana przez Matter Labs za pieniądze z grantu Ethereum Foundation, zresztą Matter Labs jest prowadzony przez jednego z współzałożycieli ethereum.

#ethereum #kryptowaluty #bitcoin
megaloxantha - ZKSync - prawdziwa rewolucja w świecie krypto, coś co jeszcze niedawno...

źródło: comment_XSVDs1v9cS5Pu4iQThVIVBP8ntyFMj53.jpg

Pobierz
  • 25
Tak będzie wyglądać przyszły system finansowy - wszystko na ethereum, maksymalna prywatność i anonimowość. Przepustowość visy na obecnym ethereum oznacza ponad 100k TPS na eth2.


@megaloxantha: Tylko Visy? :P Rozumiem, że z shardingiem? :P
@megaloxantha: No tak średnio, bo nie wiemy ile Visa może maksymalnie obsłużyć. Obsługuje 1400 TPS (i zakładam, że w to się celuje).

Tak się zapytam - co się stanie jeśli shard nie będzie się skalował? Będzie shardingowany?
@fervi: różnica między transferami w jednym shardzie a pomiędzy shardami teraz jest taka, że na transfery między shardami trzeba czekać jeden blok, a transfery wewnątrz shardu są natychmiastowe
tzn. chodzi o to, że jak w bloku X wyślesz 1 eth do mnie, to ja mogę ten 1 eth wysłać do kogoś innego w tym samym bloku
a między shardami najpierw jest blok X w jednym shardzie z twoim transferem, a ja
@megaloxantha: No, ale po kolei. Shard to wydzielenie rzeczy z bazy (czyli z ethereum). Ja rozumiem, że wydzielone zostaną tokeny jak np. DAI (czyli będzie Ethereum jako blockchain, DAI jako taki para-sidechain i reszta w stosownych para-sidechainach). Ale same shardy też są limitowane swoimi możliwościami przetwarzania danych. Wtedy będzie shard DAI1, DAI2 itd.?
@fervi: nie, shard w eth2 to jest zwykły łańcuch, mniej więcej taki jak teraz. W pierwszej wersji będą 64 niezależne łańcuchy. Oprócz tego będzie beacon chain w którym co blok będą wysyłane hashe stanu każdego shardu.
Jednocześnie każdy shard będzie miał dostęp do danych do ostatniego bloku na beacon chain. Tzn. przy tworzeniu bloku o numerze X+1 w każdym shardzie, system ma dostęp do bloku o numerze X na beacon chain,
@megaloxantha: Tylko do końca nie rozumiem. Chcę z Sharda A do Sharda X wykonać transakcję (smart contract). Tak wiec muszę być w jakimś kontakcie z Shardem X? Czy to zarazem nie spowoduje zwiększenia wymagań np. internetu na obsłużenie ruchu?

Oczywiście zakładam, że sharding w tym modelu powstanie
@fervi: (odśwież bo trochę zedytowałem)

Chcę z Sharda A do Sharda X wykonać transakcję (smart contract). Tak wiec muszę być w jakimś kontakcie z Shardem X?


Tak. Jak chcesz coś robić z eth, to musisz najpierw przesłać eth do shardu X, a jak przyjdzie wykonać kontrakt na danym shardzie. To jest to opóźnienie jednego bloku podczas operacji między shardami.

Czy to zarazem nie spowoduje zwiększenia wymagań np. internetu na obsłużenie ruchu?
@megaloxantha: No nic, zobaczymy.

Natomiast nie tylko ludzie są potrzebni, ale też node. Jeśli założymy, że teraz jest 6k nodeów, to shard składający się z 6 nodeów to jest to za mało. Powinno być na shard jakieś 50 - 100 osób minimum (a nawet więcej)
@megaloxantha: Nie wydaje mi się, by takie wyliczenia były poprawne. Szczególnie, że węzły nie dawały rady synchronizować się na "jednym shardzie" w 2017 roku, przynajmniej według tego co mówił rav3n_pl. 64 shard = 64 razy większe obciążenie (powiedzmy, pewnie jeszcze większe) przy 64 większej wydajności (tutaj mniejsze)

Być może chodzi o ten wykres: https://etherscan.io/chart/blocktime
Ale nie wiem czy to na pewno o to chodzi
Prawie wszystko ze środowiska bitcoin na temat ethereum jest błędne, bo jak ktoś ma pełne informacje to przechodzi do ethereum


@megaloxantha: I myślisz, że jeden z najlepszych polskich programistów blockchain nie zna się na ETH? :P