W jaki sposób moze powstać błędny, złośliwy fork Bitcoin?

Orator
Awatar użytkownika
Posty: 833
Rejestracja: 13 kwietnia 2011
Reputacja: 21
Reputacja postu: 
0
Napiwki za post: 0 BTC

W jaki sposób moze powstać błędny, złośliwy fork Bitcoin?

Postautor: Frodo » poniedziałek, 16 listopada 2020, 13:37

Przypuśćmy że Bob wykopał blok, który chce zafałszować. Jeśli wpisze że Alicja mu przesłała 1 BTC, to wymagany jest podpis Alicji, jeśli go nie będzie, blok będzie odrzucony bez konieczności wyboru najdłuższego forka. Jeśli rzeczywiście Alicja mu przesłała 1 BTC i teraz spróbuje sklonować tę transakcję, blok będzie odrzucony, bo użyte już jest UTXO. Jeśli Alicja ma 1 BTC i wykopie blok umieszczając transakcję że niby wysłała 100 BTC, blok będzie odrzucony po sprawdzeniu salda.
Jak mogą być zafałszowane bloki, by nie zostały odrzucone w fazie sprawdzania poprawności, ale by powstał konkurencyjny fork?

Bardzo Zły Moderator
Awatar użytkownika
Posty: 14356
Rejestracja: 16 kwietnia 2012
Reputacja: 2645
Reputacja postu: 
0
Napiwki za post: 0 BTC
Lokalizacja: Polska/Wwa/GW

W jaki sposób moze powstać błędny, złośliwy fork Bitcoin?

Postautor: rav3n_pl » poniedziałek, 16 listopada 2020, 13:52

UTXO wyklucza double spenda oraz wydanie więcej niż się ma.
Jedynie blokada możliwości reorga. Ale 1-2 blokowe konkurencyjne łańcuchy są "naturalne".
Ewentualnie musiałoby być "potwierdzenie odbioru" blokujące możliwość nadpisania transakcji nawet przez inny fork i reorg.
Ale to jakaś kombinacja alpejska...
Piffko: PLC/BTC 1Rav3nkMayCijuhzcYemMiPYsvcaiwHni
BIP39 Mnemonic z talii kart
Bitcoin Core 0.25
Linki do YT, TT, LI i reszty

Orator
Awatar użytkownika
Posty: 833
Rejestracja: 13 kwietnia 2011
Reputacja: 21
Reputacja postu: 
0
Napiwki za post: 0 BTC

W jaki sposób moze powstać błędny, złośliwy fork Bitcoin?

Postautor: Frodo » poniedziałek, 16 listopada 2020, 14:21

Reorg, czyli te same transakcje w innej kolejności? Przypuśćmy że jakiś altcoin wymaga by transakcje w bloku były posortowane według wzrastających haszy. Są jeszcze rożnice: jedne transakcje uwzględnione a drugie nie. Złośliwy mminer mógłby wykopywać blok bez transakcji, ale zachęcają go opłaty transakcyjne.
Gdyby złośliwy miner miał przynajmniej 51% mocy sieci to i tak nie mógłby wpisywać błędnych transakcji, ponieważ większość sieci uznałaby takie bloku za błędne? Czyli możliwy atak to byłby taki, że kopałby bloki bez transakcji?
Jakie są wzory na prawdopodobieństwo forka długości n, na przykład n=6, gdy alternatywny miner ma np. 1/3 mocy sieci? Choć tu nie wiem, bo jest raczej tak, że istnieje kilkunastu graczy (kopalnie), po 5-10 procent mocy sieci, zdarzają się forki długości 1 i 2 a dłuższe raczej nie. I jak to obliczyć? Przy czym, gdyby bloki były generowane częściej, forki zdarzałyby się częściej i były dłuższe. Tutaj chyba chodzi o wielokrotność - stosunek czasu propagacji w większości sieci, do biezącego czasu generowania bloku. np. blok średnio co 10 minut, ale może zdarzyć sie po 3 minutach. Np. gdyby blok był co miutę, mógłby się równie zdarzyć co jakiś czas po 20 sekundach. Litecoin ma bloki 4 razy częściej nż Bitcoin i chyba jeszcze się mieści w możliwościach sieci. Natomiast Ethereum ma bloki chyba co 30 sekund i na razie algorytm PoW, no właśnie, jak Ethereum radzi sobie z tak częstymi blokami?

Przychodzi mi do głowy jedna możliwość konkurencjynych forków: gdzie to nie miner jest winny tylko sender. Alicja wysyła do Boba 1 BTC i z tych samych UTXO do Chrisa 1 BTC. Obie transakcje nie mogą znaleźć sie w tym samym bloku. Jednak jeden miner może wziąć jedną transakcję z nich, drugi drugą. I mamy konkurencyjne forki.

Orator
Awatar użytkownika
Posty: 833
Rejestracja: 13 kwietnia 2011
Reputacja: 21
Reputacja postu: 
0
Napiwki za post: 0 BTC

W jaki sposób moze powstać błędny, złośliwy fork Bitcoin?

Postautor: Frodo » piątek, 20 listopada 2020, 18:59

Czytam właśnie Nakamoto, i tam pisze że przypadek zafałszowania bloków, który opłaca się napastnikowi i blok nie będzie odrzucony z powodu błędnej walidacji to taki że napastnik płaci transakcją, odbiorca myśłi że dostał a napastnik tworzy blok modyfikując swoją transakcję.
Są dwie możliwości: jedna - zmniejsza nadawcy ilość środków, a druga - po prostu zmienia odbiorcę.

Wygadany
Awatar użytkownika
Posty: 593
Rejestracja: 8 lutego 2020
Reputacja: 1114
Reputacja postu: 
15
Napiwki za post: 0 BTC
Lokalizacja: 7-bit secp256k1

W jaki sposób moze powstać błędny, złośliwy fork Bitcoin?

Postautor: garlonicon » wtorek, 14 grudnia 2021, 20:07

Przeklejam starą dyskusję z Frodo do tego tematu. Nie widzę powodu, żeby była prywatna, dziś pisałbym od razu tutaj, ale wtedy nie miałem uprawnień.
garlonicon pisze: piątek, 20 listopada 2020, 22:31 Nie mogę napisać na forum, to wkleję na PW, skoro już posta naklepałem, a nuż się przyda:
Jak mogą być zafałszowane bloki, by nie zostały odrzucone w fazie sprawdzania poprawności, ale by powstał konkurencyjny fork?
Przecież wystarczy zmienić coinbase. Możesz zmieniać coinbase tak długo, jak tylko chcesz, wystarczy brać kolejne klucze publiczne z HD walleta. Resztę możesz pozostawić bez zmian. Hash bloku będzie inny i to wystarczy, żeby powstał konkurujący łańcuch.
Reorg, czyli te same transakcje w innej kolejności?
Reorg powstaje wtedy, gdy masz dwa poprawne bloki na tej samej wysokości. Wtedy taki przypadek jest nierozstrzygnięty, dopóki nie pojawią się kolejne bloki, na podstawie czego można wtedy stwierdzić, który łańcuch jest silniejszy. Zawartość bloków może być dowolna, byleby była poprawna. Inne transakcje mogą być identyczne, nawet merkle root może być identyczne (co byłoby dziwne i dość nieopłacalne, aczkolwiek możliwe). Jak hash bloku jest inny, to bloki są inne. Mogą się różnić choćby tylko nonce albo tylko timestampem, ważne jest jedynie to, że są różne i są "równie dobre", czyli poprawne i spełniają difficulty. Tyle.
Gdyby złośliwy miner miał przynajmniej 51% mocy sieci to i tak nie mógłby wpisywać błędnych transakcji, ponieważ większość sieci uznałaby takie bloku za błędne?
Tak. Bloki mają być przede wszystkim poprawne. Jak są, to dopiero wtedy konkurują ze sobą.
Czyli możliwy atak to byłby taki, że kopałby bloki bez transakcji?
Nie ma znaczenia. Hash bloku ma być inny, blok ma być poprawny i leżeć na tej samej wysokości. Czym dokładnie w środku się będzie różnił, to już nie ma większego znaczenia, może to być nawet samo nonce, jeśli jakimś cudem tak się zdarzy.
Jakie są wzory na prawdopodobieństwo forka długości n, na przykład n=6, gdy alternatywny miner ma np. 1/3 mocy sieci?
Wzory masz w whitepaperze, podstaw inne wartości w kodzie Satoshiego, skompiluj i odczytaj wynik. Jeśli umiesz budować i odpalać programy, to sobie poradzisz, poza zmianą wartości nie musisz zmieniać samego kodu, czyli nie musisz być programistą, żeby się tym pobawić.
Natomiast Ethereum ma bloki chyba co 30 sekund i na razie algorytm PoW, no właśnie, jak Ethereum radzi sobie z tak częstymi blokami?
Zależy, co rozumiesz przez "radzi sobie". Częstsze bloki to większe prawdopodobieństwo reorga. Ze względu na stabilność, wszelkie giełdy wymagają po prostu więcej potwierdzeń niż w przypadku Bitcoina, są nawet monety, które możesz kopać na CPU i które mają, dajmy na to, minutowe bloki i masz wymaganych na przykład 120 potwierdzeń. Bo niski hashrate, bo krótki odstęp między blokami, bo reorgi. Tyle.
Dodano po 49 sekundach:
Frodo pisze: sobota, 21 listopada 2020, 23:26 Ale zafałszowanie coinbase nie opłaca się. Jak wpisze swój dowolny adres, to będzie wszystko w porządku. Do wykopania potrzeba mocy.
Monety z szybszym generowaniem potrzebują więcej potwierdzeń? Patrzyłem na wzory Nakamoto, tam rzeczywiście potrzeba dużo potwierdzeń gdy atakujący mam dużo np. 1/3 mocy sieci. Ale ilość potwierdzeń, chyba nie zależy za bardzo od tego jak często są bloki. Litecoin ma 4 razy częściej i chyba tam też trzeba 4 potwierdzenia.
A co myślisz o innych consensusach? Np. Pala który dopuszcza atak o mocy 1/3 i bloki generowane mogą być bardzo szybko.
Zastanawiam się tylko jak dla Pala wybiera się proposerów i voterów.
Dodano po 42 sekundach:
garlonicon pisze: niedziela, 22 listopada 2020, 08:45
Ale zafałszowanie coinbase nie opłaca się.
Niby dlaczego nie? Coinbase to transakcja, taka jak każda inna. Jeśli ustawisz locktime na 100 bloków, to uzyskasz w zasadzie to samo, co daje coinbase. Poza tym pamiętaj, z czego coinbase się składa: z podstawowej nagrody za blok oraz z opłat od transakcji. Bywały przypadki, gdzie ktoś się pomylił i dał gigantyczne fee oraz niewielki output. A w takim przypadku nagroda za ten konkretny blok będzie gigantyczna i może opłacać się zmienić coinbase, żeby ją sobie zabrać. Więcej: są transakcje, które nie wymagają żadnych kluczy, ale zawierają jakieśtam puzzle, na przykład wymagają kolizji SHA-1. Jeśli nagroda z takiej zagadki będzie wystarczająco duża, to górnikowi może się opłacać wyrwać ją z rąk innego górnika, bo przecież dostając blok może się dowiedzieć, jaki jest przykładowo plaintext dający kolizję SHA-1.
Do wykopania potrzeba mocy.
Do każdego ataku po stronie górnika potrzeba mocy. Po prostu jeśli blok jest warty, dajmy na to, jednego dolara, to górnik musi wydać co najmniej jednego dolara, aby go wykopać. A jeśli nagle wyrwanie bloku z rąk innego górnika jest warte tysiąc dolarów z jakichśtam powodów (wysokie fee, puzzle z koniecznością ujawnienia rozwiązania, itd.), to taki atak jest bardziej opłacalny niż dziabanie kolejnych bloków. Wracając jeszcze do SHA-1: wiesz, że adresy w Torze w wersji drugiej mają tylko 16 znaków base32? To daje jakieś 80 bitów. I teraz wyobraź sobie, że masz jakąś stronkę, giełdę, cokolwiek, co ma obroty wyższe niż nagroda za blok. I nagle się okazuje, że bardziej opłaca się wydziabać kolidujący adres .onion niż kolejny blok w Bitcoinie! Choćby dlatego Tor się przerzuca na nowsze adresy w wersji trzeciej: bo ataki na wersję drugą są coraz bardziej opłacalne.
Monety z szybszym generowaniem potrzebują więcej potwierdzeń?
Tak. Wiesz, wszystko zależy od giełdy, ale im więcej potwierdzeń, tym lepiej. A jak hashrate jest niski, moc sieci niewielka i ogólnie każdy może być górnikiem, to trzeba więcej potwierdzeń. Tak naprawdę to możesz wziąć sobie przesyłaną kwotę i podzielić ją przez nagrodę za blok. Wtedy uzyskasz pi razy oko, ile bloków potrzeba, żeby mieć święty spokój, jeśli atakujący będzie wredny, chciwy, bogaty i będzie miał mnóstwo koparek.
Litecoin ma 4 razy częściej i chyba tam też trzeba 4 potwierdzenia.
Bo Litecoin działa na innym algorytmie, więc nie można tego porównywać 1:1. Gdyby te wszystkie monety stały na podwójnym SHA-256 tak, jak Bitcoin, to myślę, że byłoby widać to wyraźnie. Inne algorytmy są potrzebne właśnie dlatego, aby ludzie dziabiący silniejsze monety nie atakowali tych dziabiących słabsze monety. Kiedyś takie ataki się zdarzały i udowodniły, że jak chcesz mieć własną monetę odporną na ataki, to musisz zmajstrować ją tak, aby użycie istniejących koparek było trudne.
A co myślisz o innych consensusach?
Myślę, że Proof of Work jest w porządku, a Proof of Stake na dłuższą metę działa gorzej. Inne "kombinacje norweskie" też zwykle da się obejść w ten, czy w inny sposób. Przykładowo: jest sobie taka moneta, jak LUCK. Mają tam dwuetapowy Proof of Work, żeby zapobiec tworzeniu pooli. I co? Minęło trochę czasu i ta moneta w zasadzie pada. Jak wchodziła na giełdę, to chodziła po 20k satoshi za sztukę, parę godzin później mogłem sprzedać wszystko jedynie za 10k satoshi za sztukę, a teraz szoruje po dnie i w tej chwili jest warta jakieś 48 satoshi za sztukę. No ale: to wszystko to tylko moje opinie, oczywiście mogę się grubo mylić, choć jak dotąd najlepiej wyszedłem na monetach opartych wyłącznie o Proof of Work.

Poza tym, problemem wielu monet jest tak naprawdę sposób dystrybucji monet. Moneta się pojawia, jest niewiele monet w obiegu, wchodzi szybko na giełdę i się okazuje, że jest warta krocie. Później w dość krótkim czasie okazuje się, że skoro tydzień zajęło nadziabanie iluśtam monet, no to w drugim tygodniu będzie tego dwa razy więcej, bo liczba monet początkowo rośnie liniowo, aż do pierwszego halvingu. No i cena między jednym, a drugim tygodniem zjeżdża tak ze dwa razy w dół, jak nie bardziej. Bitcoin był pierwszy i nie miał (bo nie musiał mieć) ochrony przed innymi kryptowalutami. Zaś inne coiny tego potrzebują, bo bez tego padają i zwykłe skopiowanie Bitcoina nie działa i działać nie będzie. Dlatego ludzie używają innych algorytmów niż podwójne SHA-256, dlatego kombinują jak koń pod górkę, co tu zrobić, żeby przykładowo wykosić koparki na GPU i ASIC-ach, a zostawić same CPU.
Zastanawiam się tylko jak dla Pala wybiera się proposerów i voterów.
Brzmi jak coś, co można załatwić Truthcoinem, bo tam są dwie monety: jedne przenoszą wartość, a drugie reputację. Przy czym Truthcoin jest o tyle lepszy, że działa na sidechainach i jest oparty 1:1 na Bitcoinie. No ale to już musisz pytać kogoś, kto bardziej lubi inne konsensusy, bo ja jako ktoś, kto ceni głównie Proof of Work mogę być tutaj bardzo nieobiektywny.
Dodano po 29 sekundach:
Frodo pisze: niedziela, 22 listopada 2020, 11:03
Tak. Wiesz, wszystko zależy od giełdy, ale im więcej potwierdzeń, tym lepiej. A jak hashrate jest niski, moc sieci niewielka i ogólnie każdy może być górnikiem, to trzeba więcej potwierdzeń. Tak naprawdę to możesz wziąć sobie przesyłaną kwotę i podzielić ją przez nagrodę za blok. Wtedy uzyskasz pi razy oko, ile bloków potrzeba, żeby mieć święty spokój, jeśli atakujący będzie wredny, chciwy, bogaty i będzie miał mnóstwo koparek.
Jak każdy może być górnikiem, to mamy wtedy większą decentralizację. Wtedy jest mniejsza szansa na atak 51%, chyba że nagle pojawi się jakiś górnik z dużą mocy. Przyjrzę się Truthcoinowi,
Dodano po 21 sekundach:
Frodo pisze: niedziela, 22 listopada 2020, 15:59 TruthCoin to jakieś zakłady bukmacherskie?
Rozwiazaniem na szybkie dodawanie bloków może być SPECTRE: https://eprint.iacr.org/2016/1159.pdf
Dodano po 27 sekundach:
garlonicon pisze: niedziela, 22 listopada 2020, 20:53 Truthcoin to moneta sidechainowa ze strony https://www.truthcoin.info/, możesz się nią pobawić. Poza tym, na tamtejszych stronach jest sporo ciekawych wpisów odnośnie samego Bitcoina. Ogólnie myślę, że sidechainy to przyszłość i w sumie to zgadzam się z autorem, że jeśli wypalą, to będą działać może nawet lepiej niż LN. No ale na razie mamy to, co mamy, to, co tam jest opisane to całkiem ciekawy pomysł, ale trzeba byłoby to aktywować, a to mogą zrobić jedynie górnicy. Co do sidechainów, to myślałem o czymś podobnym opartym na adresach 2-of-2 multisig, ale jeszcze nie przekułem swoich pomysłów w kod.

W skrócie: to, co tam znajdziesz uważam za całkiem niezły pomysł, ale niestety to nie zostało aktywowane. Może kiedyś ktoś to popchnie, może ja coś sam zgłoszę, pożyjemy zobaczymy.
Dodano po 22 sekundach:
Frodo pisze: wtorek, 24 listopada 2020, 11:09 Czy możesz więcej opowiedzieć na czym polegają sidechainy? Czy jest to np. inny klient Bitcoina który działa na łańcuchu z innym genesis, podobnie jak Bitcoin może działać na testnecie?
Czy multisigi działają o ten sam algorytm podpisywania ECDSA co pojedyncze sygnatury, tylko zwielokrotnia się liczby s i r służące jako podpis ?
Moim zdaniem wadą Bitcoina jest to że już w tej chwili waga jest blockchaina przekracza 300 gigabajtów, co skutecznie zniechęca zwykłych użytkowników do instalacji pełnego klienta i prowadzi do centralizacji.
A Bitcoin ma chyba tak z 7 transakcji na sekundę, a co z jakąś światową walutą o tysiąc razy większej przepustowości?
Zastanawiam się, czy dałoby radę wymyślić walutę z rozproszonymi blokami, takie bloki powtarzałyby się w sieci, aby nie było możliwości że w ogóle informacje znikną, jednak nie tak że wszyscy mają wszystkie bloki.

Wygadany
Awatar użytkownika
Posty: 593
Rejestracja: 8 lutego 2020
Reputacja: 1114
Reputacja postu: 
0
Napiwki za post: 0 BTC
Lokalizacja: 7-bit secp256k1

W jaki sposób moze powstać błędny, złośliwy fork Bitcoin?

Postautor: garlonicon » wtorek, 14 grudnia 2021, 20:11

garlonicon pisze: wtorek, 24 listopada 2020, 14:19
Czy możesz więcej opowiedzieć na czym polegają sidechainy?
Jeśli znasz angielski, to na stronie projektu Truthcoin masz mnóstwo długaśnych artykułów, które to dokładnie opisują, wraz ze wszelkimi technikaliami i uzasadnieniem, dlaczego to działa tak, a nie inaczej. No ale dobra, jakiś krótki opis mogę skrobnąć. Generalnie chodzi o to, że masz limit 1 MB na Bitcoinie. Żeby go deczko zwiększyć, powstał Segwit, który po prostu spowodował tyle, że sygnatury trafiły do osobnego bloku, natomiast w głównym łańcuchu masz nadal bloki 1 MB, tylko transakcje ważą deczko mniej, bo zamiast "normalnych" inputów i outputów, masz jedynie ANYONE_CAN_SPENT, czyli coś, co w starszej wersji "każdy może wydać". Dlatego tak ważne jest to, żeby górnicy wspierali Segwit swoją mocą obliczeniową i odrzucali próby wydawania środków bez sygnatur. Klient bez Segwita widzi transakcje Segwitowe jako coś, co każdy może wydać, dlatego Segwit jest bezpieczny tak długo, jak długo większość górników wspiera ten soft-fork.

Szybko okazało się jednak, że Segwit to za mało. W przypadku Bitcoina nie można po prostu zwiększyć rozmiaru bloku do 2 MB albo i nawet 1 GB choćby dlatego, że narusza to zgodność wsteczną i mnóstwo starych węzłów to odrzuci. Część ludzi uparła się, że to jest bezpieczne i powstał Bitcoin Cash jako łańcuch, który rozwiązuje problem poprzez zwiększenie rozmiaru bloku, zaś stare węzły zostały z BTC i dalej dziabią stary łańcuch. Z tego powodu wszelkie rozwiązania, które wchodzą na BTC opierają się na zachowaniu istniejących reguł. Dlatego kolejnym pomysłem było właśnie LN: jedna transakcja wrzuca środki z Bitcoina do LN, a druga je wypłaca z LN z powrotem do Bitcoina. To rozwiązanie okazało się całkiem niezłe, ale nadal dalekie od ideału. Problemy z LN są choćby takie, że można otworzyć kanał, wykonać parę transakcji off-chain, poczekać, aż druga strona będzie offline i wtedy wypuścić transakcję zamykającą kanał ze starym stanem kont, czyli po prostu użyć poprawnej transakcji, która nie jest "tą ostatnią, na którą obie strony się zgodziły".

Innym problemem Lightning Network jest routing. W Bitcoinie jak masz 1 BTC, to możesz to w całości przesłać komukolwiek, odliczając opłaty od transakcji. W LN już tak nie jest, bo bezpośrednio możesz przesyłać środki tylko wtedy, gdy masz otwarty kanał pomiędzy dwiema stronami. Otwarcie kanału jest potrzebne głównie dlatego, aby chronić przed double spendingiem, czyli przed sytuacją, w której ludzie wesoło i radośnie wymienialiby się transakcjami poza łańcuchem, a później okazałoby się, że część z tych transakcji nigdy nie zostanie potwierdzona, bo jakiś input został już wydany w innej transakcji off-chain. Dlatego też transfer środków jest możliwy tylko wtedy, gdy masz ciąg kanałów od jednej osoby do drugiej i gdy każdy uczestnik kanału pośredniego jest w stanie mieć zablokowaną w kanale po swojej stronie co najmniej taką kwotę, jaką chcesz przesłać dalej.

Skalowalność BTC w chwili obecnej sprowadza się zatem do tego, aby trzymać mniej danych na łańcuchu. Pomysł z użyciem sidechainów polega na tym, że wewnątrz coinbase na Bitcoinie doszłaby dodatkowa 256-bitowa liczba, która określałaby hash bloku sidechainowego. Dzięki temu część transakcji mogłaby być trzymana poza głównym łańcuchem i dałoby się w ten sposób uzyskać dodatkowy łańcuch, w którym żadne nowe środki nie byłyby tworzone z powietrza tak, jak to się dzieje w altcoinach, tylko miałyby pokrycie 1:1 w BTC. Podobnie jak w LN, co najmniej dwie transakcje musiałyby wylądować na głównym łańcuchu. Jedna, która przeniesie środki do sidechaina, a druga, która je stamtąd wyciągnie.

Problemem sidechainów jest choćby to, że jeśli mamy pierwszą osobę, dajmy na to Alicję, która wkłada środki do sidechaina, a później te monety sobie tam krążą, to na samym końcu musi być taka możliwość, aby Zenek, jako dwudziesty któryś z kolei posiadacz tychże monet, był w stanie je wypłacić bez udziału Alicji. Obecny pomysł z sidechainami opiera się na tym, aby adresy sidechainowe były podobnie ustawione do adresów Segwitowych, czyli by każdy mógł wydać środki z sidechaina. W ten sposób Zenek mógłby skonstruować transakcję, która byłaby poprawna na głównym łańcuchu. Natomiast aby wszystko działało uczciwie, to (podobnie, jak przy Segwicie) musi istnieć poparcie górników ze strony BTC i górników sidechainowych.

Chodzi o to, aby górnicy kopiący BTC nie musieli jednocześnie wiedzieć o sidechainie więcej niż potrzebują. Są tacy, którzy nie chcą przetwarzać większych bloków, więc nie będą chcieli mieć pełnego wglądu do sidechaina, który pewnie swoje będzie ważył. Dlatego też to jest nadal w fazie eksperymentu i dlatego to nie zostało aktywowane: bo istnieje teoretyczna możliwość, że jak sidechain będzie kiepski, to górnicy BTC będą mogli go zniszczyć, zwyczajnie zabierając wszystkie środki z sidechaina normalną transakcją. W przypadku Segwita wszystko działa na adresach ANYONE_CAN_SPEND, ale dodatkowy blok z sygnaturami gwarantuje, że nie każdy może to wydać i górnicy Segwitowi są w stanie to sprawdzić. W przypadku sidechainów też będzie potrzebny taki "dowód" w tej czy innej postaci, że Zenek serio może wydać te monety, ale żeby nie trzeba było mieć całego sidechaina, aby o tym wiedzieć.
Czy jest to np. inny klient Bitcoina
W pewnym sensie tak, ale nadal jest z nim zgodny. Klient sidechainowy patrzy na dwa łańcuchy naraz: na sidechain i na mainchain, czyli Bitcoina.
który działa na łańcuchu z innym genesis
Działa na dwóch łańcuchach, jeden to Bitcoin, drugi to sidechain. Tak, sidechain może mieć inny blok Genesis, to już zależy od twórców konkretnego sidechaina.
podobnie jak Bitcoin może działać na testnecie?
Może, testnet to nic innego, jak inny łańcuch, który w sporej części jest zgodny z mainnetem, nie ma żadnych przeszkód, aby postawić sidechainy również na testnecie.
Czy multisigi działają o ten sam algorytm podpisywania ECDSA co pojedyncze sygnatury, tylko zwielokrotnia się liczby s i r służące jako podpis ?
Jak sama nazwa wskazuje, "multisig", czyli "wiele sygnatur". Po prostu żeby wydać pojedynczy output, potrzeba po prostu więcej niż jednego klucza, więc w typowym przypadku więcej niż jedna osoba musi to podpisać, czyli dołączyć swoją sygnaturę. Tak, całość działa na tej samej krzywej eliptycznej, możesz odpalić regtest (nie mylić z testnetem) i pobawić się multisigiem, żeby zobaczyć, jak to działa.
a co z jakąś światową walutą o tysiąc razy większej przepustowości?
Wiesz, myślę, że gigabajtowe bloki by to mogły załatwić nawet dzisiaj. Skoro jednak łamie to zgodność wsteczną, to cała sztuka skalowania polega właśnie na tym, aby to w jakiś sposób skompresować na łańcuchu, lub też przeprowadzać w jakiś sposób poza łańcuchem. Jak wspominał kiedyś Satoshi, trzeba pozwolić użytkownikom być po prostu użytkownikami. Nie ma sensu zmuszać każdego do trzymania wszystkich danych, LN rozwiązuje ten problem w ten sposób, że historia transakcji jest trzymana tylko pomiędzy zainteresowanymi stronami, a sidechainy rozwiązują to tak, że masz osobny łańcuch transakcji, który jest wydziabywany przez górników sidechainowych. Takich sidechainów może być wiele, tak czy siak wtedy dochodzi kwestia wymiany danych między dwoma sidechainami, to też może być kosztowne i wymagać na przykład jednej transakcji on-chain na Bitcoinie, gdzie z jednego sidechaina coś będzie przesunięte do innego. Ewentualnie można też zrobić tak, że zamiast je wpinać wszystkie do Bitcoina, to można do sidechaina dokładać kolejne sidechainy.

Tak czy siak, pomysł z sidechainami nadal nie jest w pełni gotowy, jakieś różne projekty istnieją, owszem, część organizuje Blockstream, część ludzie sami stawiają. Możesz poczytać o Liquid Network, o RSK, możesz poprzeglądać sobie transakcje coinbase i zobaczyć, co tam się nowego pojawia i co poszczególne bajty oznaczają.
Zastanawiam się, czy dałoby radę wymyślić walutę z rozproszonymi blokami, takie bloki powtarzałyby się w sieci, aby nie było możliwości że w ogóle informacje znikną, jednak nie tak że wszyscy mają wszystkie bloki.
Wymyślić? Bez problemu, ludzie mają od groma pomysłów, sam mam ich więcej niż jestem w stanie zamienić w kod. Gorzej z realizacją, bo ktoś to musi zrobić, to musi być bezpieczne, odporne na ataki, no i ostatecznie ci, którzy są górnikami lub też dużymi kopalniami, to muszą to wszystko zaakceptować. A dopóki nie uzyskasz akceptacji górników, to pomysł nie wchodzi i jako programista możesz jedynie eksperymentować na tym, co jesteś w stanie samodzielnie wykopywać. Niestety, duży hashrate i wysokie difficulty z jednej strony dają ogromne bezpieczeństwo i niemal całkowitą nieodwracalność transakcji, a z drugiej strony sprawiają, że jak chcesz coś wprowadzić, to górnicy muszą się na to zgodzić. A co do "znikania" bloków, to jak transakcja z sidechaina leci na mainchain i jest ostatnia, to wszyscy nie muszą wiedzieć, jakie były te transakcje, tylko muszą jedynie uzyskać gwarancję, że rzeczywiście były i że to była ostatnia transakcja. Potem można zgodnie z whitepaperem zostawić jedynie hash transakcji i to zwijać tak długo, aż zostanie jedynie nagłówek bloku, zaś każdy z zainteresowanych może lokalnie sobie trzymać kopię transakcji po to, aby móc udowodnić w razie potrzeby, że monety są jego.
Dodano po 29 sekundach:
Frodo pisze: wtorek, 24 listopada 2020, 16:06 Co do strony TruthCoin:
Na razie czytałem o tym, dlaczego PoW jest lepsze niż inne konsensusy z ekonomicznego punktu widzenia. A oprócz tego o Truthcoinie jako czymś w rodzaju zakładów bukmacherskich. Zobaczę jeszcze artykuły na temat sidechanów. Co sądzisz o funkcji "Oracle" w Truthcoinie? Był taki opis, że w 2012 prawie niemożliwe jest odpowiedzenie na pytanie kto wygra wybory w 2016, w przededniu jest łatwiej, a po jest trywialne odpowiadanie na takie pytania, zwłaszcza dla tego rodzaju pytań gdy ma się Google. Czyli coś w rodzaju zadania, które z czasem staje się łatwiejsze.
Na https://blockstream.info/liquid/ widać ze bloki są bardzo szybkie.
Mówisz że przyszłością walut nie są altcoiny a blockchainy wymianialne 1:1 do Bitcoina?
Chociaż Bitcoin nie ma tych zalet co kiedyś: teraz jest podział na zwykłych użytkowników i garstkę tych z ciężkim sprzętem, dla których nie są teoretycznie straszne gigabajtowe bloki, kiedyś bloki Bitcoina mała ważyły i każdy mógł wykopać, najpierw na CPU, potem jeszcze szansa na GPU, teraz nawet bycie podłączonym do kopalni nie daje szans wykopania. I poza tym, dużą zaletą Bitcoina kiedyś była jego bardzo małą cena, która wzrosła do dzisiejszej.
Dodano po 26 sekundach:
garlonicon pisze: wtorek, 24 listopada 2020, 17:17
A oprócz tego o Truthcoinie jako czymś w rodzaju zakładów bukmacherskich.
Podając jako przykład Truthcoina chodziło mi głównie o to, że tam występują dwie monety: jedna przenosi wartość, a druga reputację. Co do zakładów bukmacherskich, to jedynie jeden z przykładów, do czego taki sidechain mógłby się nadawać, ale same zastosowania mogą być znacznie szersze i myślę, że jesteś w stanie wyobrazić sobie takie przypadki.
Co sądzisz o funkcji "Oracle" w Truthcoinie?
Myślę, że na tym właśnie mogą i powinny stać Smart Contracty, a nie na tym, na czym stoją obecnie. Ogólnie to zgadzam się z autorem w wielu kwestiach, które opisał w artykule: https://www.truthcoin.info/blog/contrac ... idechains/
Na https://blockstream.info/liquid/ widać ze bloki są bardzo szybkie.
Przy czym w wielu przypadkach puste, choć jednominutowe, co też swoją drogą pokazuje, że samo zwiększenie rozmiaru bloku lub też skrócenie czasu ich wykopywania (w sumie to wychodzi prawie na to samo) nie sprawia automatycznie, że będzie lepiej. Inna sprawa, że skoro Liquid jest uruchamiane przez Blockstream, a są ludzie, którzy traktują Blockstream tak, jak niektórzy użytkownicy Linuksa traktują Microsoft, to zaufanie do takich eksperymentalnych łańcuchów jest nadal dość niskie.
Mówisz że przyszłością walut nie są altcoiny a blockchainy wymianialne 1:1 do Bitcoina?
Mogę jedynie zgadywać, ale jestem w stanie uwierzyć w to, że sztuczne zwiększanie monet w obiegu poprzez tworzenie kolejnych altów, które nie są oparte na BTC nie skończy się dobrze dla tychże altów, gdyż są ludzie, którzy w zasadzie chcieliby mieć Bitcoina z funkcjonalnościami altów, ale bez zwiększania liczby monet w obiegu. Sidechainy właśnie coś takiego zapewniają, więc jestem skłonny bardziej wierzyć w ich sukces, niż w sukces altów. No ale to tylko gdybania i mogę się oczywiście mylić.
Chociaż Bitcoin nie ma tych zalet co kiedyś: teraz jest podział na zwykłych użytkowników i garstkę tych z ciężkim sprzętem, dla których nie są teoretycznie straszne gigabajtowe bloki, kiedyś bloki Bitcoina mała ważyły i każdy mógł wykopać, najpierw na CPU, potem jeszcze szansa na GPU, teraz nawet bycie podłączonym do kopalni nie daje szans wykopania. I poza tym, dużą zaletą Bitcoina kiedyś była jego bardzo małą cena, która wzrosła do dzisiejszej.
Chęć do dziabania bloków za pomocą CPU nie zniknęła. W zasadzie to wiele altów powstało głównie dlatego, że ludzie chcieli być górnikami. I wiesz co? Gdybym dzisiaj mógł dziabać na CPU Bitcoina i dostawać za to choćby jednego satoshiego dziennie, to bym dziabał. Przez LN, przez sidechainy, jeszcze jakoś inaczej, nie ma problemu. A jak chcesz nadal dziabać, to masz sporo monet, które działają głównie na CPU, choćby w takim poolu: http://cpu-pool.com, oczywiście żadnej nie wróżę sukcesu, no ale zawsze można się nimi pobawić, poeksperymentować, sprzedać, bądź też używać do jakichś drobiazgów i przyjmować w nich płatności.

Więcej: są monety oparte na CPU, które można dziabać głównie solo i które opierają się na założeniu, żeby poole całkiem zlikwidować. Jedną z takich monet jest LUCK: https://lucknet.club/, przy czym oczywiście warto wiedzieć, że ten "brak pooli" im kiepsko wyszedł, no ale może w przyszłości będzie lepiej, może ktoś inny wymyśli coś lepszego, się zobaczy, oni akurat zrobili sporo błędów i robią teraz kolejne, mają sieć rozwaloną na dwa łańcuchy, takie tam historie...
Dodano po 21 sekundach:
Frodo pisze: wtorek, 24 listopada 2020, 17:59 Jak wyobrażasz sobie smartcontract pytające się użytkownika , “Oracle” refers to “blockchain software asking a human for information” (ie, Software prompts “According to X, what was the USD/BTC exchange rate yesterday?”).
W Liguid bloki są co minutę. Z tego co czytałem , są ustanawiane przez specjalnych "funkcjonariuszy", jeszcze nie doczytałem jak wybieranych.
To ostatnio natykam się na dwa rodzaje consensusu: jeden to Pala czy ten użyty w Liquid, a drugiej podejście takie że jednak PoW, tylko zmodyfikowany , jak Spectre. PoW zawsze jest probabilistyczne i wolniejsze. Natomiast przy wyborze przez przedstawicieli, problem jest wybór tych przedstawicieli. Można by wprowadzić jedną monetę standardową do wymiany a drugą do uprawnień do głosowania. Za pomocą PoW górnik otrzymywał by monety uprawnień, mołŋby je użyć za ileś bloków, nie póżniej niż ileś. Moneta ta uprawniała by do głosowania, za głosowanie w drugim blockchainie otrzmywal by monetę wartości czyli gotówkę.

Wygadany
Awatar użytkownika
Posty: 593
Rejestracja: 8 lutego 2020
Reputacja: 1114
Reputacja postu: 
0
Napiwki za post: 0 BTC
Lokalizacja: 7-bit secp256k1

W jaki sposób moze powstać błędny, złośliwy fork Bitcoin?

Postautor: garlonicon » wtorek, 14 grudnia 2021, 20:13

garlonicon pisze: wtorek, 24 listopada 2020, 19:52
Jak wyobrażasz sobie smartcontract pytające się użytkownika , “Oracle” refers to “blockchain software asking a human for information” (ie, Software prompts “According to X, what was the USD/BTC exchange rate yesterday?”).
Właśnie po to są te monety dające reputację. Są rzeczy, których nie da się zrobić inaczej. Kursu nie możesz zaprogramować w prosty sposób, żeby to działało wyłącznie w oparciu o blockchain, to musiałbyś mieć wszystkie możliwe transakcje zamieniające jedne monety na inne, dopiero wtedy mogłoby to zadziałać. Poza tym, to byłoby niezgodne z walutami fiducjarnymi. Są rzeczy, gdzie potrzebni są ludzie. Na przykład na pytanie "kto wygrał wybory?" musi odpowiedzieć człowiek. Oparcie się na Google też tak średnio zadziała, bo konkretna firma, która zarządza taką wyszukiwarką, mogłaby zmanipulować wyniki. Innymi słowy: zakładając, że ludzi używających sidechainów będzie dużo, że monety z reputacją będą w obiegu i że to wszystko się wyskaluje wielokrotnie bardziej niż dzisiaj, to potencjalny atakujący będzie musiał przekonać znaczną część ludzi mających monety z reputacją do działania na jego korzyść, żeby taki atak się udał. Bitcoin jest oparty na mocy obliczeniowej i to daje mu wartość i uodparnia na reorgi. Jeśli reputacja też będzie reprezentowalna na blockchainie i jeśli przeróżne rzeczy będą mogły zostać opakowane kluczami publicznymi, to staną się możliwe do łączenia w transakcje, co właśnie umożliwi robienie takich Smart Contractów, gdyż to ludzie mający reputację będą potwierdzać wynik Smart Contractu, ryzykując, że ją utracą, jeśli się pomylą lub będą działać wbrew sieci.

Oczywiście, widzę tutaj wiele różnych problemów i nie ze wszystkim się zgadzam z autorem. Więcej: uważam, że ten pomysł należałoby jeszcze dopieścić, żeby się udał, bo są możliwe ataki tak samo, jak na LN da się wysłać stary stan transakcji, tak samo, jak w sidechainach górnicy z mainchaina są w stanie go zniszczyć, tak samo i tutaj wiem, że jeśli atakujący zgarną większość monet określających reputację, to nagle będą w stanie wykonać nieuczciwe działania. Także cóż, doceniam pomysł autora, doceniam to, co napisał, ale nie zgadzam się ze wszystkim, widzę w tym dziury, problemy i pola do poprawy, niemniej uważam to za ciekawy pomysł wart rozważenia i choćby próby zaimplementowania w praktyce.
W Liguid bloki są co minutę. Z tego co czytałem , są ustanawiane przez specjalnych "funkcjonariuszy", jeszcze nie doczytałem jak wybieranych.
No właśnie, choćby to mi się nie do końca podoba w tej sieci. Podałem przykłady sidechainów, żeby pokazać, co jest możliwe. To nie znaczy, że uważam je za doskonałe. Nadal mają swoje wady, nadal wymagają dopieszczenia. Ale uważam to za postęp względem altów kreowanych z powietrza i nie mających pokrycia w niczym. Jasne, może być też tak, że będzie boom na alty i okaże się, że nie mam racji, niemniej jednak na tą chwilę wydaje mi się, że jeśli część ludzi się przeciwstawi manii kreowania kolejnych coinów i zaczną dodawać nowe funkcjonalności bez zwiększania liczby monet w obiegu, to takie projekty mogą zyskać uznanie w oczach ludzi i wnieść istotną wartość dodaną w crypto. Ale nadal, nie jestem jasnowidzem i nie wiem, jaka będzie przyszłość, czas pokaże.
To ostatnio natykam się na dwa rodzaje consensusu: jeden to Pala czy ten użyty w Liquid, a drugiej podejście takie że jednak PoW, tylko zmodyfikowany , jak Spectre.
Rodzajów konsensusu jest trochę, jest jeszcze Proof of Capacity, oparty na pojemności dysków twardych, są jakieś dziwaczne Proof of Person, jakieś tam Proof of Google Captcha (sic!), naprawdę, ludzie mają mnóstwo pomysłów. Na razie Proof of Work najbardziej do mnie przemawia, ale nikt nie daje gwarancji, że w przyszłości właśnie to się najbardziej opłaci. Chociaż w dużej mierze zgadzam się z tym artykułem: https://www.truthcoin.info/blog/pow-cheapest/, to znaczy uważam, że wiele konsensusów jest ciekawych i mogą zadziałać, ale w praktyce da się znaleźć jakieś sposoby na porównanie ich ze zwykłym Proof of Work, a wtedy ta dodatkowa złożoność jedynie przeszkadza w dobrym zrozumieniu podstaw, na jakich dana moneta stoi i reguł ekonomii, w oparciu o jakie działa.
PoW zawsze jest probabilistyczne i wolniejsze.
Tak, ale przynajmniej ja nie znam niczego lepszego. Jak w tamtym artykule wyżej możesz przeczytać, wysiłek włożony w monetę prędzej czy później znajduje odzwierciedlenie w cenie. Jeśli jest inaczej, wolny rynek to wyrówna. Nie znalazłem niczego, co by przeczyło tej prostej logice, jaką tam przeczytałem.
Natomiast przy wyborze przez przedstawicieli, problem jest wybór tych przedstawicieli. Można by wprowadzić jedną monetę standardową do wymiany a drugą do uprawnień do głosowania. Za pomocą PoW górnik otrzymywał by monety uprawnień, mołŋby je użyć za ileś bloków, nie póżniej niż ileś. Moneta ta uprawniała by do głosowania, za głosowanie w drugim blockchainie otrzmywal by monetę wartości czyli gotówkę.
O widzisz, no właśnie, jak poczytasz więcej o Truthcoinie, to dowiesz się dokładniej, jakie są tam monety, jak są przydzielane, na jakich zasadach, co, gdzie, jak i dlaczego. Tamtejsze FAQ jest dość obszerne, jak przez to przebrniesz, to wiele rzeczy może stać się dość jasnych. Co nie zmienia faktu, że to nadal jest podatne na ataki, gdyż wszystko może być zaatakowane, jeśli wystarczająco dużo atakujących będzie wystarczająco wpływowych. W Bitcoinie też są reorgi. Stu procent pewności nigdy nie będzie, można jedynie uzyskać coś "wystarczająco bezpiecznego", a to już będzie spora wartość dodana względem tego, co mamy dzisiaj.

Wróć do „Dla zaawansowanych - nowi tylko czytają”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość