Bitcoin vs altcoiny - omówienie problemu skalowania.

in #polish7 years ago (edited)

"Nie wszystko złoto co się świeci, nie wszystko krypto co cyfrowe."

725_Ly9jb2ludGVsZWdyYXBoLmNvbS9zdG9yYWdlL3VwbG9hZHMvdmlldy81ZWFmMDdlOGE3M2ZkMGMwNTVkNzIxNjk1MjQ1NjZhOS5qcGc=.jpg

"Bitcoin jest stary, wolny i drogi, natomiast ten altcoin jest super mega czad bo jest tani i szybki, na pewno wygryzie on Bitcoina.
Tak samo google nie był pierwszą wyszukiwarką, tak samo ten projekt zastąpi Bitcoina"

Brzmi znajomo ?

Nie znam kogoś w świecie krypto kto nie zaczynał by od altcoinów. To normalne, jak widzi się cenę Bitcoina w porównaniu do innych projektów, to nie mając pojęcia o rynku często zakłada się, że jak coś będzie chociaż trochę lepsze to może uda się na tym nieźle zarobić i powtórzyć jego sukces. Z czasem jednak okazuje się, że to tak nie działa :) Ja sam byłem kiedyś wielkim fanem np dasha czy jeszcze paru innych projektów dlatego oszczędzę paru epitetów pod kątem ludzi bezwiednie szczerzących hyip na danego coina i przejdę do liczb.

Czym jest problem skalowalności kryptowalut ?
Od czego zależy wysokość opłat transakcyjnych jak i prędkość samych transakcji?

Żeby w miarę prosty sposób zrozumieć całą problematykę i móc w ogóle porównywać projekty ze sobą trzeba wiedzieć jak chociażby naliczane są opłaty transakcyjne. Bez tego każdy nowy shitcoin wciśnie wam że jest super-mega-czad po czym wystarczy spam sieci przez 1-2 boty i coin leży wraz z waszymi oszczędnościami. Takich projektów obiecujących gruszki na wierzbie są tysiące ale zanim zacznę wymieniać z nazw może lepiej zaczniemy od rozmiarów transakcji.

Każda transakcja niezależnie od kryptowaluty (nie mylić z ripple bo to nie jest kryptowaluta) ma określoną masę.
Po prostu, robiąc przelew musimy wysłać do sieci pewną informację którą sieć odczyta jako zlecenie przelewu i zacznie ją przetwarzać. Taka informacja którą wysyłamy to w większości tzw podpisy transakcyjne. Łopatologicznie rzecz ujmując są to takie potwierdzenia przelewów od każdej otrzymanej przez nas transakcji. Im więc otrzymujemy przelewów na drobne sumy a potem chcemy to wydać tym więcej informacji musimy rozesłać. Można to też porównać do posługiwania się fizycznymi monetami. Każda transakcja w krypto którą otrzymujemy jest traktowana jak osobna moneta. Jeśli dostajemy dziennie po 1-2-10 transakcji po kilka groszy po czym za miesiąc chcemy to wydać to musimy potwierdzić każdą monetę z osobna. To tak jakby wysłać komuś 1 mln zł przelewem lub w kilku ciężarówkach w groszowych monetach. Koszty z pewnością będą nieporównywalnie większe płacąc bilonem.

Gdy już wiemy miej więcej z czego składa się masa transakcji trzeba jeszcze sobie powiedzieć że żadna kryptowaluta nie nalicza opłat transakcyjnych w walutach fiat jak USD czy PLN a kryptowalucie w której robimy przelew. Jest to najczęściej opłata za 1 bajt danych. W sieci Bitcoin opłata za 1 bajt jest teraz np wyjątkowo niska i wynosi 1 satoshi. Warto zwrócić uwagę na to że skoro najniższa możliwa opłata wynosi 1 satoshi za bajt a najlżejsza możliwa transakcja to ok 200 bajtów to 200 satoshi analogicznie będzie najmniejszą możliwą opłatą. Tutaj zaczynają się schody. Im wyższy kurs danej monety a opłata w krypto jest stała tym nominalna wartość samej opaty transakcyjnej po przeliczeniu na np PLN jest coraz wyższa.

W momencie kiedy BTC kosztował np 1 PLN a my otrzymywaliśmy setki przelewów z jakichś "magicznych kraników" robiących co godzinę przelew na jakieś drobne sumy wówczas nasza transakcja mogła kosztować nawet 0,05 BTC. Oczywiście jeśli taka opłata wtedy odpowiadała 5 gr. wówczas nikt się nad tym nie zastanawiał, jednak w momencie kiedy kurs Bitcoina wynosi już nie 1 PLN a 25 000 PLN wówczas te same 0,05 BTC odpowiada już nie 5 gr a 1250 zł.

No dobra, mamy podstawę naliczania opłat a co z prędkością transakcji?

Zauważyłem że problem skalowania sieci wielu ludzi utożsamia ze starymi komputerami np z lat 2000-2005, które po prostu technicznie nie potrafiłyby udźwignąć dzisiejszych programów czy gier ze względu na zbyt słabe parametry podzespołów. W przypadku Bitcoina gdzie mamy do czynienia nie z fizycznym sprzętem a bardzo elastycznym kodem źródłowym wygląda to zupełnie inaczej. Szacuje się że tylko 3% kodu Bitcoina z którego dzisiaj korzystamy zostało napisane w pierwotnym zamyśle projektu przez twórcę, reszta to ciągłe zmiany i unowocześnienia oraz poprawki bezpieczeństwa wprowadzane przez developerów na bieżąco.

Najlepiej widać to tutaj:

https://github.com/bitcoin/bitcoin/milestones?state=closed

Obecna wersja pełnego klienta Bitcoin jest już 26 wersją licząc od początku.

https://github.com/bitcoin/bitcoin/graphs/code-frequency

Developerzy Bitcoina aktualizują tygodniowo od kilku do nawet 20-60 TYSIĘCY LINIJEK KODU !

Jak by podliczyć ilu ludzi pracuje nad samym bitcoinem to można by śmiało powiedzieć że mogą być to nawet tysiące osób.
Bitcoin to nie tylko sam główny protokół ale również i technologie z nim związane jak Lightning Network, Rootstock, MimbleWimble, SchnorrSygnatures i inne które zrzeszają odrębne grupy developerskie ale finalnie działają lub będą działać w oparciu o główny łańcuch sieci Bitcoin.

Skalowanie sieci to przede wszystkim magazynowanie jej historii w celu niepodważalności całego blockchaina.

Kwestie takie jak czas potwierdzenia transakcji czy wysokość opłat transakcyjnych to sprawy drugorzędne lub nawet niemal nie istotne. Zmiana wielkości bloku transakcyjnego czy czasu po jakim ma on następować jest banalnie prosta i możliwa do zrobienia w parę godzin.

Jeśli ktoś Ci mówi że dany projekt jest bardziej zaawansowany bo ma większy blok, czy większą przepustowość związaną z częstszym występowaniem bloków to albo nie wie o czym mówi, albo właśnie zrobił jakiegoś scam-coina i próbuje Cię naciągnąć na kasę.

90% wszystkich altcoinów to zwykłe kopiuj + wklej Bitcoina z drobnymi zmianami kosmetycznymi jak np w sieci Litecoin. Nikt tutaj się z tym nie kryje bo nawet w jego wypadku sieć Bitcoin często korzysta z tego że może sobie coś wypróbować na tej sieci. Kod Litecoina jest w większości taki sam, różnica polega głównie na całkowitej zaplanowanej ilości monet czy czasu występującym pomiędzy blokami. Rozmiar samych transakcji, mechanika naliczania opłat jest identyczna jak w sieci Bitcoin. To samo dotyczy większości projektów.

W czym leży więc problem ?

Teraz przechodzimy do sedna sprawy. Tak jak wspomniałem wcześniej problem skalowania polega w dużej mierze na magazynowaniu historii. W momencie kiedy 1-10-1000 osób używa danej waluty to takie pojęcie jak "rozmiar transakcji" nie obchodzi niemal nikogo. W momencie jednak gdy z sieci może potencjalnie już korzystać setki tysięcy osób i nie jedna osoba próbuje zaspamować sieć robiąc tzw sztuczne transakcje, wówczas nie można sobie pozwolić na to by cała sieć musiała zapisywać u siebie na dyskach wszystkiego co popadnie. Nie wszyscy sobie zdają sprawę z tego że kiedyś Bitcoin nie miał żadnego limitu bloku a transakcje mogły być darmowe. Gdyby tak zostało do dzisiaj to każdy z nas używając odpowiedniego bota mógłby nawet dla żartu wysyłać setki tysięcy transakcji do samego siebie na inny portfel a potem z powrotem zmuszając całą sieć do przechowywania historii takiego zagrania. Gdybyśmy każdemu pełnemu węzłowi kazali dziennie zapisywać 1000 GB danych to prędzej czy później sieć by się po prostu rozpadła lub można by ją było w pewien sposób przejąć bo tylko ogromne firmy pokroju googla było by stać na posiadanie tak ogromnych baz danych.

No dobra to wymienię kilka coinów i masę transakcji w każdej z sieci a wy się zastanówcie który z tych projektów się lepiej skaluje:

Bitcoin :
minimalna transakcja onchain w standardzie segwit: 141 bajtów
minimalna transakcja offchain na otwartym kanale LN: 0 bajtów.

Ethereum:
minimalna transakcja onchain : 161 bajtów
https://etherscan.io/block/5835947

Bitcoin Cash, Bitcoin Gold (uwaga scam), Bitcoin Private i 56 innych forków bitcoina
minimalna transakcja onchain : 226 bajtów

Litecoin:
minimalna transakcja onchain w standardzie segwit: 141 bajtów

Cardano:
minimalna transakcja onchain : 671 bajtów
https://cardanoexplorer.com/epoch/54

Dash:
minimalna transakcja onchain : 226 bajtów

Monero:
minimalna transakcja onchain : 13000 bajtów - WTF ? nie wiem co jest grane ale chyba przez to ukrywanie historii transakcji jego waga mocno wystrzeliła w górę. Jeśli popełniłem błąd w tym miejscu to najwyżej poprawię.

https://www.monero.how/monero-transaction-fee-calculator

Zcash:
najlżejsze transakcje jakie znalazłem tym razem to po ok 650 bajtów
https://explorer.zcha.in/blocks

Projekty takie jak IOTA, Raiblock czy inne podobne projekty bazujące na nowo wymyślonej i niesprawdzonej metodzie opartej na tzw sieci Tangle nie uwzględniam. Według mnie te projekty nie zasługują na miano kryptowaluty i to jest moje osobiste zdanie z którym nie trzeba się zgadzać. Nody które mają przechowywać tylko lekkie wersje historii i tak potrzebują kogoś kto będzie miał ją całą, w razie ataku na sieć odwołanie się do starszych bloków i tak będzie zawsze konieczne. W momencie kiedy taki atak nastąpi i dojdzie do zakłóceń pomiędzy nodami wygra ten kto ma dłuższą historie. Jeśli dodamy do tego miliardy transakcji która zaleją siec jeśli wszystkie będą naprawdę darmowe to serwer zdolny przechować całą historię może kosztować nawet kilkadziesiąt tysięcy dolarów. Żaden sklep, czy zwykły użytkownik na to sobie pozwolić nie będzie mógł. To samo od niedawna planuje wprowadzić ETH, wszystko przed nami.

Na koniec podrzucam link do prezentacji portfela LN w sieci Bitcoin.
Jak widać transakcje są natychmiastowe, niemal darmowe i co najważniejsze sprawiają że sieć jest odporna na spam dzięki transakcją offchain.

Jeśli tylko Ci się spodobało zostaw upvote i komentarz :) Będę niezmiernie wdzięczny :) Możesz także obserwować mój profil, by nie przegapić kolejnych postów!

"Hodl for life!"

Sort:  

Chyba najistotniejsze jest rozpowszechnienie przejścia crypto-fiat bez centralnych giełd i banków. Jak najwięcej ATMs?

Albo DEXów - jeśli mamy obalić fiaty, to nie powinniśmy brudzić sobie rąk pieniędzmi, które służą do handlu narkotykami, prostytucją czy handlu ludźmi

Crypto służące do płacenia (BTC, LTC, Monero, Dash,PIVX itd.) zostanie zakazane przez większość rządów tuż przed nadchodzącym ogromnym kryzysem gospodarczym. To dla nich za duże zagrożenie. Sklepy zaczną z tych krypto korzystać dopiero, gdy z uwagi na hiperinflację w czasie kryzysu, nie będą mogli wyżywić siebie i rodzin z fiat. Wtedy zaryzykują nawet poważne kary by przeżyć i zaczną używać crypto do płacenia. Do tego czasu nie ma co liczyć na kupowanie za crypto bez fiat. Dlatego na razie pewnie lepsze będą ATMs - gotówka jest bardziej prywatna niż przelew z giełdy na konto lub od innego użytkownika DEXu na konto. Każdy rząd bez problemu przejrzy konta w banku.

Pożyjemy, zobaczymy ;)

Nie lubie porównywać świata krypto do świata narkotykowych baronów ale... W Polsce niby narkotyki sa zakazane, łatwo namierzyć ich produkcje bo czesto wymagają własnych hal z systemem naświetlania i nawadniania... mimo to nie trudno znaleźć Kogoś kto mógłby je mieć. Krypto nikt Ci nie zabierze siłą jeśli umiesz się zabezpieczyć. O tym czy jest posiadasz nie wykaże żaden test ani przeszukanie domu. Słowa możesz mieć poukrywane w jakiejś książce i zapisać sobie jedynie konkretny algorytm do ich odnalezienia. Jeśli ktoś jest hodlerem i nie chce się spowiadać skąd i ile ma danej krypto wystarczy ze zaczeka na moment w którym wymiana fiat nie będzie potrzebna :)

Chodzi mi o to, że fiat od setek lat służy do niecnych czynów

Warto poczytać up vołt leci

ok 200 bajtów to 200 satoshi analogicznie

Chyba 160 bajtów najmniej można wycisnąć (coś koło tego) z Segwitem.

Rozwiązaniem według mnie prawdziwym jest właśnie Lightning Network. Natomiast można zrobić inny test jak ktoś umie kalkulatora używać :D

160 bajtów ma transakcja Segwit (powiedzmy). Zrobimy 2 dziennie i pomnóżmy przez ilość ludzi na świecie (dla uproszczenia - 7 miliardów). Powstanie Wam duża liczba. Wyobraźmy sobie, że dziennie musimy to na swoim dysku przechowywać. (za każdym razem taką samą). Powoduje to taki problem, że to (kiedyś liczyłem) TB danych dziennie! Sieć nie da rady na tym polu, stąd LN

141 bajtów dokładnie, niżej to sprostowałem i porównałem z innymi coinami :) nie można liczyć 2 transakcji na dobę na łebka na 7 mld ludzi a ok 5-6. Jest pierdyliard różnych procesorów płatniczych a jak coin jest kopany to co zrobisz jak jakaś kopalnia będzie rozliczać się z 1milionem inwestorów co każdy blok ? jedna taka kopalnia już dzisiaj by powodowała terabajtowe dzienne przyrosty blockchaina

To takie teoretyczne obliczenia. Bo można jedną transakcją przelać dla wielu osób :D Ale ogólnie masz rację - Blocksize to the moon

Warto dodać, że na potwierdzaniu transakcji też można zarobić. W przypadku BTC jest Proof-of-Work, czyli potwierdza je kopalnia.
W przypadku innych tokenów mogą być inne sposoby, ja potwierdzam transakcje w modelu Proof-of-Stake dla BRO. Nie wymaga to dużej mocy obliczeniowej, jedynie podłączenia do sieci i 3 GB na Blockchain.

Oczywiście są też inne, wiele osób może znaleźć sobie jakąś sieć która może wspierać.

Upvote + Resteem

POS jest bardzo niebezpieczny wg mnie. Ideologicznie przypomina wręcz piramidę. Jeśli ktoś był pierwszy i zrobił sobie odpowiedni pre-mine to procent składany sprawi że nigdy nikt go z tej pozycji nie wygryzie. Taki ktoś nie musi inwestować w sprzęt ani w nic konkretnego. POW dodatkowo zabezpiecza sieć i utrudnia ataki, gdyby nagle w takim POS'ie znalazł się błąd ktoś włamał by się na giełdę ukradł coiny to już dożywotnio mógłby stanowić np 70% głosów całej sieci. Wyobraź sobie że teraz znajduje się 800 000 BTC z włamu do mt goxa w 2013-14. Czy gdyby teraz ten ktoś się nie ujawniał ale zrobił sobie 1000 nodów na POS i stanowił 70% głosu całej sieci kto mógłby się mu sprzeciwić ? giełdy nie mogły by stawiać nodów za pieniądze użytkowników a parę milionów coinów jest przecież zgubionych.

Ciekawe spostrzeżenie, ale jeśli ktoś by ukradł z myślą że będzie tymi coinami potwierdzał to pamiętaj że musi być wpięty do sieci, a wtedy ryzykuje że ktoś go namierzy. Oczywiście masz rację można starać się ukryć, jest na to sporo sposobów, ale one też zostawiają ślady.

Ogólnie temat rzeka, ale trzeba przyznać że masz sporo racji.

Zgadza się, ale jedno "ale" - trzeba kupić tego coina - im więcej tym lepiej