Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00042 004958 18973051 na godz. na dobę w sumie
Blockchain. Zaawansowane zastosowania łańcucha bloków. Wydanie II - książka
Blockchain. Zaawansowane zastosowania łańcucha bloków. Wydanie II - książka
Autor: Liczba stron: 536
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-283-4957-5 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> hacking >> inne
Porównaj ceny (książka, ebook (-35%), audiobook).

Warto dobrze zrozumieć działanie łańcucha bloków. Ta nowatorska technologia intryguje badaczy, technologów i świat finansjery. Najlepiej jest znana z powiązań z bitcoinem i innymi kryptowalutami, jednak to rozwiązanie ma wielkie znaczenie również w finansach, administracji, multimediach i wielu innych branżach. Przejrzyste i kryptograficznie bezpieczne przechowywanie niemodyfikowalnego zapisu transakcji jest właściwością, która decyduje o wielkiej atrakcyjności łańcucha bloków. Bez wątpienia warto dobrze zaznajomić się z tą technologią i nauczyć się wykorzystywać ją w praktyce.

Ta książka jest zaktualizowanym i uzupełnionym wydaniem świetnego przewodnika po świecie blockchaina; skorzysta z niej zarówno programista, jak i prezes konstruujący strategię swojej firmy. Znalazło się tu wyczerpujące omówienie technicznych podstaw łańcuchów bloków i systemów rozproszonych. Przedstawiono mechanizmy związane z kryptowalutami i pisaniem aplikacji wykonywanych w zdecentralizowanej maszynie wirtualnej w łańcuchu bloków Ethereum. Pokazano też inne rozwiązania z tego obszaru, w tym biznesowe platformy łańcuchów bloków rozwijanych w ramach projektu Hyperledger. Okazuje się, że technologia ta znakomicie uzupełnia internet rzeczy, a zwiększanie skalowalności łańcucha bloków daje nowe, fascynujące możliwości.

W tej książce:

Blockchain: w sieci węzłów rozproszonych nigdy nic nie zaginie!

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Tytuł oryginału: Mastering Blockchain - Second Edition Tłumaczenie: Tomasz Walczak ISBN: 978-83-283-4957-5 Copyright © Packt Publishing 2018. First published in the English language under the title ‘Mastering Blockchain - Second Edition – (9781788839044)’ Polish edition copyright © 2019 by Helion SA All rights reserved. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Helion SA dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Helion SA nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Helion SA ul. Kościuszki 1c, 44-100 Gliwice tel. 32 231 22 19, 32 230 98 63 e-mail: helion@helion.pl WWW: http://helion.pl (księgarnia internetowa, katalog książek) Dodatkowe materiały do książki można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/bloczz.zip Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/bloczz Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Printed in Poland. • Kup książkę • Poleć książkę • Oceń książkę • Księgarnia internetowa • Lubię to! » Nasza społeczność Spis tre(cid:258)ci O autorze O recenzencie Przedmowa Rozdzia(cid:239) 1. ABC (cid:239)a(cid:241)cucha bloków Rozwój technologii (cid:239)a(cid:241)cucha bloków Systemy rozproszone Historia (cid:239)a(cid:241)cucha bloków i Bitcoina Elektroniczne pieni(cid:200)dze (cid:146)a(cid:241)cuch bloków Uniwersalne elementy (cid:239)a(cid:241)cucha bloków Zalety i ograniczenia (cid:239)a(cid:241)cucha bloków Warstwy (cid:239)a(cid:241)cucha bloków Cechy (cid:239)a(cid:241)cucha bloków Typy (cid:239)a(cid:241)cuchów bloków Rozproszone rejestry Technologia DLT Publiczne (cid:239)a(cid:241)cuchy bloków Prywatne (cid:239)a(cid:241)cuchy bloków Wspólny rejestr W pe(cid:239)ni prywatne i zastrze(cid:285)one (cid:239)a(cid:241)cuchy bloków (cid:146)a(cid:241)cuchy bloków z tokenami (cid:146)a(cid:241)cuchy bloków bez tokenów 13 14 15 21 21 24 26 26 27 31 34 36 37 39 40 40 41 41 42 42 43 43 Poleć książkęKup książkę Spis tre(cid:286)ci Konsensus Mechanizmy osi(cid:200)gania konsensusu Rodzaje mechanizmów osi(cid:200)gania konsensusu Konsensus w (cid:239)a(cid:241)cuchu bloków Twierdzenie CAP i (cid:239)a(cid:241)cuch bloków Podsumowanie Rozdzia(cid:239) 2. Decentralizacja Decentralizacja z u(cid:285)yciem (cid:239)a(cid:241)cucha bloków Metody decentralizacji Eliminowanie po(cid:258)rednictwa Decentralizacja oparta na wspó(cid:239)zawodnictwie Drogi do decentralizacji Jak przeprowadzi(cid:202) decentralizacj(cid:218)? Przyk(cid:239)adowy schemat analizy decentralizacji (cid:146)a(cid:241)cuch bloków i kompletny ekosystem zwi(cid:200)zany z decentralizacj(cid:200) Sk(cid:239)adowanie danych Komunikacja Decentralizacja a moc obliczeniowa Inteligentne kontrakty Zdecentralizowane organizacje Zdecentralizowane organizacje autonomiczne Zdecentralizowane korporacje autonomiczne Zdecentralizowane spo(cid:239)eczno(cid:258)ci autonomiczne Zdecentralizowane aplikacje (DApps) Wymogi stawiane zdecentralizowanym aplikacjom Operacje w zdecentralizowanych aplikacjach Platformy do decentralizacji Ethereum MaidSafe Lisk Podsumowanie Rozdzia(cid:239) 3. Kryptografia symetryczna Korzystanie z narz(cid:218)dzia OpenSSL w wierszu polece(cid:241) Wprowadzenie Matematyka Kryptografia Poufno(cid:258)(cid:202) Integralno(cid:258)(cid:202) Uwierzytelnianie Niezaprzeczalno(cid:258)(cid:202) Rozliczalno(cid:258)(cid:202) Podstawowe mechanizmy kryptograficzne Kryptografia symetryczna DES AES Podsumowanie 4 43 43 44 45 47 49 51 51 53 53 54 55 56 56 57 57 58 59 60 61 61 62 62 62 63 63 64 64 64 65 65 67 67 68 69 70 71 71 71 72 73 73 74 79 79 83 Poleć książkęKup książkę Rozdzia(cid:239) 4. Kryptografia klucza publicznego Kryptografia asymetryczna Rozk(cid:239)ad liczb ca(cid:239)kowitych na czynniki Logarytm dyskretny Krzywe eliptyczne Klucze publiczny i prywatny RSA Problem logarytmu dyskretnego w ECC Funkcje skrótu Algorytm tworzenia podpisów cyfrowych za pomoc(cid:200) RSA Algorytm ECDSA Rynki i transakcje finansowe Handel Gie(cid:239)dy Cykl (cid:285)ycia transakcji Osoby przewiduj(cid:200)ce zlecenia Manipulowanie rynkiem Podsumowanie Rozdzia(cid:239) 5. Wprowadzenie do Bitcoina Bitcoin Definicja Bitcoina Bitcoin z lotu ptaka Klucze i adresy cyfrowe Klucze prywatne w Bitcoinie Klucze publiczne w Bitcoinie Adresy w Bitcoinie Transakcje Cykl (cid:285)ycia transakcji Struktura danych transakcji Rodzaje transakcji Sprawdzanie poprawno(cid:258)ci transakcji (cid:146)a(cid:241)cuch bloków Struktura bloku Struktura nag(cid:239)ówka bloku Blok pocz(cid:200)tkowy Wydobywanie Zadania górników Nagrody za wydobycie bloku Dowód pracy Algorytm wydobywania Szybko(cid:258)(cid:202) obliczania skrótów Systemy wydobywania Kopalnie Podsumowanie Spis tre(cid:286)ci 85 85 87 87 87 88 88 94 102 111 113 118 119 119 121 122 122 123 125 127 129 130 136 136 138 139 141 142 143 147 150 151 151 151 153 156 156 157 157 158 160 160 163 165 5 Poleć książkęKup książkę Spis tre(cid:286)ci Rozdzia(cid:239) 6. Sie(cid:202) Bitcoina i p(cid:239)atno(cid:258)ci Sie(cid:202) Bitcoina Portfele Portfele niedeterministyczne Portfele deterministyczne Hierarchiczne portfele deterministyczne Portfele pami(cid:218)ciowe Portfele papierowe Portfele sprz(cid:218)towe Portfele internetowe Portfele mobilne P(cid:239)atno(cid:258)ci w bitcoinach Innowacje w Bitcoinie Dokumenty BIP Zaawansowane protoko(cid:239)y Segregated Witness (SegWit) Bitcoin Cash Bitcoin Unlimited Bitcoin Gold Inwestycje w bitcoiny oraz ich kupno i sprzeda(cid:285) Podsumowanie Rozdzia(cid:239) 7. Klienty i interfejsy API Bitcoina Instalowanie Bitcoina Typy klientów Bitcoin Core Przygotowywanie w(cid:218)z(cid:239)a Bitcoina Konfigurowanie kodu (cid:283)ród(cid:239)owego Konfigurowanie pliku bitcoin.conf Uruchamianie w(cid:218)z(cid:239)a w sieci testnet Uruchamianie w(cid:218)z(cid:239)a w sieci regtest Eksperymentowanie z interfejsem bitcoin-cli Programowanie w (cid:258)wiecie Bitcoina i interfejs uruchamiany w wierszu polece(cid:241) Podsumowanie Rozdzia(cid:239) 8. Inne kryptowaluty Podstawy teoretyczne Co zamiast dowodu pracy? Ró(cid:285)ne rodzaje stawek Dostosowywanie trudno(cid:258)ci i algorytmy zmiany celu Ograniczenia Bitcoina Prywatno(cid:258)(cid:202) i anonimowo(cid:258)(cid:202) Rozszerzone protoko(cid:239)y oparte na Bitcoinie Rozwój alternatywnych kryptowalut Namecoin Handel namecoinami Pozyskiwanie namecoinów Generowanie rekordów w Namecoinie Litecoin 6 167 167 175 175 175 176 176 176 176 177 177 178 180 181 181 181 183 183 183 184 185 187 187 187 188 190 190 190 191 192 192 194 195 198 198 201 202 205 205 207 209 211 213 213 215 217 Poleć książkęKup książkę Primecoin Handel primecoinami Przewodnik po wydobywaniu Zcash Handel zcashami Przewodnik po wydobywaniu Emisje ICO Tokeny zgodne ze standardem ERC20 Podsumowanie Rozdzia(cid:239) 9. Inteligentne kontrakty Historia Definicja Kontrakty ricardia(cid:241)skie Szablony inteligentnych kontraktów Wyrocznie Inteligentne wyrocznie Umieszczanie inteligentnych kontraktów w (cid:239)a(cid:241)cuchu bloków The DAO Podsumowanie Rozdzia(cid:239) 10. ABC (cid:239)a(cid:241)cucha bloków Ethereum Wprowadzenie Specyfikacja techniczna (cid:146)a(cid:241)cuch bloków Ethereum Ethereum z lotu ptaka Sie(cid:202) Ethereum Mainnet Testnet Sie(cid:202) prywatna Komponenty ekosystemu Ethereum Klucze i adresy Konta Transakcje i komunikaty Kryptowaluta i tokeny Ether (ETC i ETH) Maszyna EVM Inteligentne kontrakty Podsumowanie Rozdzia(cid:239) 11. Jeszcze o Ethereum J(cid:218)zyki programowania Wykonywany kod bajtowy Bloki i (cid:239)a(cid:241)cuchy bloków Poziom op(cid:239)at Portfele i oprogramowanie klienckie Protoko(cid:239)y pomocnicze Skalowalno(cid:258)(cid:202), bezpiecze(cid:241)stwo i inne wyzwania Handel i inwestycje Podsumowanie Spis tre(cid:286)ci 220 221 221 223 225 225 230 231 232 233 233 234 237 239 241 243 243 244 245 247 247 248 249 250 254 254 254 254 255 256 256 258 267 267 271 274 275 276 276 284 290 298 307 309 309 310 7 Poleć książkęKup książkę Spis tre(cid:286)ci Rozdzia(cid:239) 12. (cid:165)rodowisko programistyczne Ethereum Sieci testowe Konfigurowanie sieci prywatnej Identyfikator sieci Plik pocz(cid:200)tkowy Katalog na dane Uruchamianie sieci prywatnej Uruchamianie przegl(cid:200)darki Mist w sieci prywatnej Dodawanie kontraktów za pomoc(cid:200) przegl(cid:200)darki Mist Eksplorator bloków prywatnej i lokalnej sieci Ethereum Podsumowanie Rozdzia(cid:239) 13. Narz(cid:218)dzia i platformy programistyczne J(cid:218)zyki Kompilatory J(cid:218)zyk Solidity Typy Podsumowanie Rozdzia(cid:239) 14. Wprowadzenie do Web3 Web3 Dodawanie kontraktów (cid:191)(cid:200)dania POST Fronton napisany w HTML-u i JavaScripcie Platformy programistyczne Podsumowanie Rozdzia(cid:239) 15. Hyperledger Projekty w ramach programu Hyperledger Fabric Sawtooth Lake Iroha Burrow Indy Explorer Cello Composer Quilt Hyperledger jako protokó(cid:239) Architektura wzorcowa Wymogi i cele projektowe zwi(cid:200)zane z platform(cid:200) Hyperledger Fabric Fabric Hyperledger Fabric Sawtooth Lake Corda Podsumowanie 8 311 312 313 314 314 315 316 321 323 326 329 331 332 333 344 345 356 357 357 358 363 364 371 397 399 399 400 400 400 401 401 402 402 402 402 403 403 405 407 408 418 424 430 Poleć książkęKup książkę Rozdzia(cid:239) 16. Inne (cid:239)a(cid:241)cuchy bloków (cid:146)a(cid:241)cuchy bloków Kadena Ripple Stellar Rootstock Quorum Tezos Storj MaidSafe BigchainDB MultiChain Tendermint Platformy i frameworki Eris Podsumowanie Rozdzia(cid:239) 17. (cid:146)a(cid:241)cuch bloków — poza (cid:258)wiat walut Internet rzeczy Warstwa obiektów fizycznych Warstwa urz(cid:200)dze(cid:241) Warstwa sieci Warstwa zarz(cid:200)dzania Warstwa aplikacji Eksperyment z internetem rzeczy opartym na (cid:239)a(cid:241)cuchu bloków Instytucje rz(cid:200)dowe Opieka zdrowotna Finanse Multimedia Podsumowanie Rozdzia(cid:239) 18. Skalowalno(cid:258)(cid:202) i inne problemy Skalowalno(cid:258)(cid:202) Poziom sieci Poziom osi(cid:200)gania konsensusu Poziom sk(cid:239)adowania danych Poziom widoku Zwi(cid:218)kszenie wielko(cid:258)ci bloku Skracanie czasu wydobywania bloków Tablice IBLT Sharding Kana(cid:239)y stanu Prywatny (cid:239)a(cid:241)cuch bloków Dowód stawki (cid:146)a(cid:241)cuchy boczne Prywatno(cid:258)(cid:202) Zaciemnianie z nieodró(cid:285)nialno(cid:258)ci(cid:200) danych Szyfrowanie homomorficzne Dowody ZKP Spis tre(cid:286)ci 431 431 432 436 441 442 444 445 446 447 448 448 448 449 449 451 453 453 455 455 455 456 456 459 474 478 478 481 481 483 484 484 484 485 485 485 486 486 487 487 488 488 488 491 491 492 492 9 Poleć książkęKup książkę Spis tre(cid:286)ci Kana(cid:239)y stanu Bezpieczne obliczenia z udzia(cid:239)em wielu jednostek Wykorzystanie sprz(cid:218)tu do zapewniania poufno(cid:258)ci CoinJoin Poufne transakcje MimbleWimble Bezpiecze(cid:241)stwo Podsumowanie Rozdzia(cid:239) 19. Aktualna sytuacja i przysz(cid:239)y rozwój Pojawiaj(cid:200)ce si(cid:218) trendy (cid:146)a(cid:241)cuchy bloków specyficzne dla zastosowa(cid:241) (cid:146)a(cid:241)cuchy bloków dla przedsi(cid:218)biorstw Prywatne (cid:239)a(cid:241)cuchy bloków Startupy Du(cid:285)e zainteresowanie ze strony naukowców Standaryzacja Usprawnienia Implementacje stosowane w praktyce Konsorcja Rozwi(cid:200)zania problemów technicznych (cid:146)(cid:200)czenie z innymi technologiami Edukacja w zakresie technologii (cid:239)a(cid:241)cuchów bloków Zatrudnienie Kryptoekonomia Badania w dziedzinie kryptografii Nowe j(cid:218)zyki programowania Badania nad sprz(cid:218)tem i jego rozwój Badania nad metodami formalnymi i bezpiecze(cid:241)stwem Alternatywy wzgl(cid:218)dem (cid:239)a(cid:241)cuchów bloków Prace nad umo(cid:285)liwieniem wspó(cid:239)dzia(cid:239)ania Model BaaS Prace nad ograniczeniem zu(cid:285)ycia energii Inne wyzwania Regulacje Ciemna strona Badania nad (cid:239)a(cid:241)cuchami bloków Inteligentne kontrakty Problemy z centralizacj(cid:200) Ograniczenia funkcji kryptograficznych Algorytmy osi(cid:200)gania konsensusu Skalowalno(cid:258)(cid:202) Zaciemnianie kodu Wa(cid:285)ne projekty Zcash dla Ethereum CollCo Cello Qtum Bitcoin-NG 10 493 493 493 494 494 494 495 501 503 503 503 504 504 505 505 506 507 507 508 508 508 509 509 509 510 510 510 511 511 511 512 512 512 512 513 515 515 515 515 515 516 516 516 516 517 517 517 517 Poleć książkęKup książkę Solidus Hawk Town-Crier SETLCoin TEEChan Falcon Bletchley Casper Ró(cid:285)ne narz(cid:218)dzia Rozszerzenie dla j(cid:218)zyka Solidity w (cid:258)rodowisku Microsoft Visual Studio MetaMask Stratis Embark DAPPLE Meteor uPort INFURA Powi(cid:200)zania z innymi bran(cid:285)ami Przysz(cid:239)o(cid:258)(cid:202) Podsumowanie Skorowidz Spis tre(cid:286)ci 517 518 518 518 518 519 519 519 520 520 520 520 521 521 521 521 522 522 523 525 527 11 Poleć książkęKup książkę Spis tre(cid:286)ci 12 Poleć książkęKup książkę 2 Decentralizacja Decentralizacja nie jest now(cid:200) koncepcj(cid:200). Od dawna wykorzystywano j(cid:200) w strategii, zarz(cid:200)dza- niu i rz(cid:200)dzeniu. Podstawow(cid:200) ide(cid:200) decentralizacji jest przeniesienie kontroli i w(cid:239)adzy na obrze(cid:285)a organizacji zamiast pozostawiania pe(cid:239)nej kontroli organizacji w r(cid:218)kach jednego centralnego cia(cid:239)a. Takie rozwi(cid:200)zanie zapewnia organizacjom ró(cid:285)ne korzy(cid:258)ci, takie jak wzrost wydajno(cid:258)ci, przyspieszenie podejmowania decyzji, wzrost motywacji i zmniejszenie obci(cid:200)(cid:285)enia wy(cid:285)szej kadry mened(cid:285)erskiej. W tym rozdziale decentralizacja jest opisana w kontek(cid:258)cie (cid:239)a(cid:241)cuchów bloków. Jednym z podsta- wowych aspektów (cid:239)a(cid:241)cucha bloków jest brak centralnej jednostki, która go kontroluje. W tym rozdziale przedstawione zostan(cid:200) przyk(cid:239)ady ró(cid:285)nych metod decentralizacji i dróg do jej osi(cid:200)- gni(cid:218)cia. Ponadto szczegó(cid:239)owo opisane zostan(cid:200) decentralizacja ekosystemu (cid:239)a(cid:241)cucha bloków, zdecentralizowane aplikacje i platformy do zapewniania decentralizacji. Poznasz te(cid:285) wiele ekscytuj(cid:200)cych aplikacji i idei, których (cid:283)ród(cid:239)em s(cid:200) zdecentralizowane (cid:239)a(cid:241)cuchy bloków. Decentralizacja z u(cid:285)yciem (cid:239)a(cid:241)cucha bloków Decentralizacja jest jedn(cid:200) z najwa(cid:285)niejszych korzy(cid:258)ci i us(cid:239)ug zapewnianych przez technologi(cid:218) (cid:239)a(cid:241)cuchów bloków. Z budowy (cid:239)a(cid:241)cuchów bloków wynika, (cid:285)e s(cid:200) one doskona(cid:239)ym narz(cid:218)dziem do budowania platformy, która nie wymaga (cid:285)adnych po(cid:258)redników i mo(cid:285)e dzia(cid:239)a(cid:202) z wieloma ró(cid:285)- nymi liderami wybieranymi za pomoc(cid:200) mechanizmu osi(cid:200)gania konsensusu. Ten model umo(cid:285)liwia ka(cid:285)demu wspó(cid:239)zawodnictwo o pozycj(cid:218) jednostki podejmuj(cid:200)cej decyzje. To wspó(cid:239)zawodnictwo odbywa si(cid:218) na podstawie mechanizmu osi(cid:200)gania konsensusu, a najcz(cid:218)(cid:258)ciej u(cid:285)ywan(cid:200) metod(cid:200) jest tu dowód pracy. Decentralizacja mo(cid:285)e by(cid:202) stosowana na ró(cid:285)nym poziomie: od modeli cz(cid:218)(cid:258)ciowo zdecentrali- zowanych po w pe(cid:239)ni zdecentralizowane. Zale(cid:285)y to od wymogów i okoliczno(cid:258)ci. W kontek(cid:258)cie (cid:239)a(cid:241)cuchów bloków decentralizacj(cid:218) mo(cid:285)na postrzega(cid:202) jako mechanizm umo(cid:285)liwiaj(cid:200)cy modyfika- cj(cid:218) istniej(cid:200)cych aplikacji i paradygmatów oraz budowanie nowych aplikacji w celu zapewnienia pe(cid:239)nej kontroli u(cid:285)ytkownikom. Poleć książkęKup książkę Blockchain. Zaawansowane zastosowania (cid:225)a(cid:276)cucha bloków Technologie teleinformatyczne tradycyjnie s(cid:200) oparte na scentralizowanym paradygmacie, w któ- rym serwery bazodanowe lub serwery aplikacji s(cid:200) kontrolowane przez centraln(cid:200) jednostk(cid:218), np. administratora systemu. Wraz z pojawieniem si(cid:218) Bitcoina i technologii (cid:239)a(cid:241)cuchów bloków ten model si(cid:218) zmieni(cid:239). Obecnie istnieje technologia, która umo(cid:285)liwia ka(cid:285)demu zbudowanie zde- centralizowanego systemu, dzia(cid:239)aj(cid:200)cego bez pojedynczego punktu podatno(cid:258)ci na awari(cid:218) lub jednej zaufanej jednostki zarz(cid:200)dzaj(cid:200)cej. Taki system mo(cid:285)e dzia(cid:239)a(cid:202) autonomicznie lub wymaga(cid:202) interwencji cz(cid:239)owieka; zale(cid:285)y to od typu i modelu zarz(cid:200)dzania stosowanego w zdecentralizowa- nej aplikacji dzia(cid:239)aj(cid:200)cej w (cid:239)a(cid:241)cuchu bloków. Rysunek 2.1 ilustruje ró(cid:285)ne rodzaje istniej(cid:200)cych obecnie systemów: scentralizowane, zde- centralizowane i rozproszone. Ten podzia(cid:239) po raz pierwszy przedstawi(cid:239) Paul Baran w ksi(cid:200)(cid:285)ce On Distributed Communications: I. Introduction to Distributed Communications Networks (Rand Corporation, 1964). Rysunek 2.1. Ró(cid:285)ne typy sieci i systemów Systemy scentralizowane to tradycyjne systemy informatyczne (klient – serwer), w których wyst(cid:218)puje pojedyncza jednostka zarz(cid:200)dzaj(cid:200)ca — kontroluje ona dany system i samodzielnie odpowiada za wszystkie jego operacje. Wszyscy u(cid:285)ytkownicy scentralizowanego systemu zale(cid:285)(cid:200) od jednego (cid:283)ród(cid:239)a us(cid:239)ug. Wi(cid:218)kszo(cid:258)(cid:202) dostawców us(cid:239)ug internetowych, w tym Google, Amazon, eBay, App Store firmy Apple itd., pos(cid:239)uguj(cid:200) si(cid:218) tym tradycyjnym modelem dostarczania us(cid:239)ug. W systemie rozproszonym dane i obliczenia s(cid:200) rozdzielane mi(cid:218)dzy wiele w(cid:218)z(cid:239)ów sieci. Czasem to poj(cid:218)cie jest mylone z przetwarzaniem równoleg(cid:239)ym. Cho(cid:202) oba te rozwi(cid:200)zania w pewnym zakresie si(cid:218) pokrywaj(cid:200), g(cid:239)ówna ró(cid:285)nica mi(cid:218)dzy nimi polega na tym, (cid:285)e w systemach przetwarza- nia równoleg(cid:239)ego obliczenia s(cid:200) wykonywane przez wszystkie w(cid:218)z(cid:239)y jednocze(cid:258)nie w celu uzy- skania wyniku. Platformy przetwarzania równoleg(cid:239)ego s(cid:200) u(cid:285)ywane np. do badania i prognozowa- nia pogody, do symulacji i w modelowaniu finansowym. Z kolei w systemie rozproszonym obliczenia nie musz(cid:200) by(cid:202) wykonywane równolegle, a dane s(cid:200) replikowane w wielu w(cid:218)z(cid:239)ach 52 Poleć książkęKup książkę Rozdzia(cid:225) 2. • Decentralizacja postrzeganych przez u(cid:285)ytkowników jako jeden spójny system. Odmiany obu tych modeli s(cid:200) u(cid:285)ywane do osi(cid:200)gania odporno(cid:258)ci na b(cid:239)(cid:218)dy i zwi(cid:218)kszania szybko(cid:258)ci. W systemach równoleg(cid:239)ych nadal wyst(cid:218)puje centralna jednostka zarz(cid:200)dzaj(cid:200)ca, która kontroluje wszystkie w(cid:218)z(cid:239)y i zarz(cid:200)dza przetwarzaniem. To oznacza, (cid:285)e system jest z natury scentralizowany. Najwa(cid:285)niejsza ró(cid:285)nica mi(cid:218)dzy systemem zdecentralizowanym a rozproszonym polega na tym, (cid:285)e w systemie rozproszonym wyst(cid:218)puje centralna jednostka nadrz(cid:218)dna zarz(cid:200)dzaj(cid:200)ca ca(cid:239)ym systemem. W systemie zdecentralizowanym taka jednostka nie istnieje. System zdecentralizowany to typ sieci, w której w(cid:218)z(cid:239)y nie s(cid:200) zale(cid:285)ne od jednego w(cid:218)z(cid:239)a nad- rz(cid:218)dnego. Zamiast tego kontrola jest rozproszona mi(cid:218)dzy wiele w(cid:218)z(cid:239)ów. Jest to zbli(cid:285)one do mo- delu, w którym ka(cid:285)dy dzia(cid:239) organizacji odpowiada za w(cid:239)asny serwer bazodanowy. W ten sposób kontrola jest odbierana centralnemu serwerowi i przekazywana do dzia(cid:239)ów zarz(cid:200)dzaj(cid:200)cych w(cid:239)asnymi bazami. Wa(cid:285)n(cid:200) innowacj(cid:200) w paradygmacie zdecentralizowanym, b(cid:218)d(cid:200)c(cid:200) zal(cid:200)(cid:285)kiem nowej ery decentrali- zacji aplikacji, jest osi(cid:200)ganie konsensusu w (cid:258)rodowisku zdecentralizowanym. Ten mechanizm pojawi(cid:239) si(cid:218) wraz z Bitcoinem i umo(cid:285)liwia u(cid:285)ytkownikom uzgadnianie rzeczy za pomoc(cid:200) algoryt- mu osi(cid:200)gania konsensusu, bez konieczno(cid:258)ci udzia(cid:239)u centralnej, zaufanej trzeciej strony, po(cid:258)red- nika lub dostawcy us(cid:239)ug. Metody decentralizacji Do zapewniania decentralizacji mo(cid:285)na stosowa(cid:202) dwie metody: eliminowanie po(cid:258)rednictwa i wspó(cid:239)zawodnictwo (decentralizacja oparta na wspó(cid:239)zawodnictwie). Zostan(cid:200) one szczegó(cid:239)owo opisane w nast(cid:218)pnych punktach. Eliminowanie po(cid:258)rednictwa Koncepcj(cid:218) eliminowania po(cid:258)rednictwa mo(cid:285)na wyt(cid:239)umaczy(cid:202) na przyk(cid:239)adzie. Wyobra(cid:283) sobie, (cid:285)e chcesz przes(cid:239)a(cid:202) pieni(cid:200)dze do znajomego z innego pa(cid:241)stwa. Idziesz do banku, który za op(cid:239)at(cid:200) prze(cid:258)le pieni(cid:200)dze do banku w docelowym kraju. W tym scenariuszu bank przechowuje centraln(cid:200) baz(cid:218) danych, która jest aktualizowana, co potwierdza, (cid:285)e przes(cid:239)a(cid:239)e(cid:258) pieni(cid:200)dze. (cid:146)a(cid:241)cuch bloków umo(cid:285)liwia przes(cid:239)anie pieni(cid:218)dzy bezpo(cid:258)rednio do znajomego bez konieczno(cid:258)ci korzystania z us(cid:239)ug banku. Wystarczy do tego adres znajomego w (cid:239)a(cid:241)cuchu bloków. W ten sposób po(cid:258)rednik, czyli bank, przestaje by(cid:202) potrzebny, a decentralizacja jest uzyskiwana dzi(cid:218)ki wyeliminowaniu po(cid:258)rednictwa. Kwesti(cid:200) dyskusyjn(cid:200) jest to, na ile praktyczna jest decentralizacja przez eliminowa- nie po(cid:258)rednictwa w sektorze finansowym z jego ogromnymi wymogami regulacyjnymi. Jednak ten model mo(cid:285)e by(cid:202) stosowany nie tylko w finansach, ale te(cid:285) w wielu innych bran(cid:285)ach. 53 Poleć książkęKup książkę Blockchain. Zaawansowane zastosowania (cid:225)a(cid:276)cucha bloków Decentralizacja oparta na wspó(cid:239)zawodnictwie W metodzie obejmuj(cid:200)cej wspó(cid:239)zawodnictwo ró(cid:285)ni dostawcy us(cid:239)ug konkuruj(cid:200) ze sob(cid:200) o to, by system wybra(cid:239) ich do (cid:258)wiadczenia us(cid:239)ug. Ten model nie prowadzi do pe(cid:239)nej decentralizacji. Jednak do pewnego stopnia gwarantuje, (cid:285)e po(cid:258)rednik lub dostawca us(cid:239)ug nie zmonopolizuje us(cid:239)ugi. W kontek(cid:258)cie (cid:239)a(cid:241)cuchów bloków mo(cid:285)na wyobrazi(cid:202) sobie system, w którym inteligent- ne kontrakty mog(cid:200) wybra(cid:202) zewn(cid:218)trznego dostawc(cid:218) danych spo(cid:258)ród du(cid:285)ej ich liczby na pod- stawie reputacji, wcze(cid:258)niejszych ocen, recenzji i jako(cid:258)ci (cid:258)wiadczonych us(cid:239)ug. Ta metoda nie zapewnia ca(cid:239)kowitej decentralizacji, ale umo(cid:285)liwia inteligentnym kontraktom dokonywanie swobodnych wyborów na podstawie podanych kryteriów. W ten sposób budowane jest oparte na konkurencji (cid:258)rodowisko, w którym dostawcy us(cid:239)ug rywalizuj(cid:200) mi(cid:218)dzy sob(cid:200) o to, by zosta(cid:202) wybranym na dostawc(cid:218) danych. Na rysunku 2.2 pokazane s(cid:200) ró(cid:285)ne poziomy decentralizacji. Po lewej stronie przedstawione jest tradycyjne podej(cid:258)cie, w którym kontrol(cid:218) sprawuje centralny system. W modelu widocznym po prawej stronie ca(cid:239)kowicie wyeliminowano po(cid:258)rednictwo. Po(cid:258)rodku widoczni s(cid:200) rywalizuj(cid:200)cy ze sob(cid:200) po(cid:258)rednicy lub dostawcy us(cid:239)ug. W tym rozwi(cid:200)zaniu po(cid:258)rednicy lub dostawcy us(cid:239)ug s(cid:200) wybierani na podstawie reputacji lub g(cid:239)osowania, co pozwala uzyska(cid:202) cz(cid:218)(cid:258)ciow(cid:200) decentralizacj(cid:218). Rysunek 2.2. Poziom decentralizacji Cho(cid:202) decentralizacja zapewnia wiele korzy(cid:258)ci, w tym przejrzysto(cid:258)(cid:202), wydajno(cid:258)(cid:202), oszcz(cid:218)dno(cid:258)ci, rozwój zaufanych ekosystemów, a w niektórych sytuacjach tak(cid:285)e prywatno(cid:258)(cid:202) i anonimowo(cid:258)(cid:202), to jednocze(cid:258)nie wymaga starannego przeanalizowania pewnych problemów, takich jak wymogi z zakresu bezpiecze(cid:241)stwa, b(cid:239)(cid:218)dy programowe i b(cid:239)(cid:218)dy ludzkie. Oto przyk(cid:239)ad: jak w zdecentralizowanym systemie, takim jak Bitcoin lub Ethereum, gdzie bezpiecze(cid:241)stwo jest standardowo zapewniane dzi(cid:218)ki kluczom prywatnym, zagwarantowa(cid:202), (cid:285)e cyfrowe zasoby powi(cid:200)zane z takimi kluczami nie stan(cid:200) si(cid:218) bezwarto(cid:258)ciowe po utracie klucza lub (cid:285)e b(cid:239)(cid:200)d w kodzie inteligentnego kontraktu lub zdecentralizowanej aplikacji nie narazi u(cid:285)ytkownika na atak? Przed rozpocz(cid:218)ciem decentralizowania wszystkiego za pomoc(cid:200) (cid:239)a(cid:241)cucha bloków i zdecentralizowanych aplikacji trzeba zrozumie(cid:202), (cid:285)e nie wszystko mo(cid:285)na i trzeba decentralizowa(cid:202). 54 Poleć książkęKup książkę Rozdzia(cid:225) 2. • Decentralizacja To podej(cid:258)cie rodzi kilka podstawowych pyta(cid:241): czy (cid:239)a(cid:241)cuch bloków naprawd(cid:218) jest potrzebny? Kiedy przydatny jest (cid:239)a(cid:241)cuch bloków? W jakich sytuacjach jest on lepszy od tradycyjnych baz danych? Aby odpowiedzie(cid:202) na te pytania, zastanów si(cid:218) nad prostym zestawem zaprezento- wanych tu kwestii: 1. Czy potrzebna jest wysoka przepustowo(cid:258)(cid:202) obs(cid:239)ugi danych? Je(cid:258)li odpowied(cid:283) na to pytanie brzmi „tak”, zastosuj tradycyjn(cid:200) baz(cid:218) danych. 2. Czy aktualizacje s(cid:200) kontrolowane przez centraln(cid:200) jednostk(cid:218)? Je(cid:285)eli tak jest, pos(cid:239)u(cid:285) si(cid:218) tradycyjn(cid:200) baz(cid:200). 3. Czy u(cid:285)ytkownicy sobie ufaj(cid:200)? Je(cid:258)li tak, u(cid:285)yj tradycyjnej bazy. 4. Czy u(cid:285)ytkownicy s(cid:200) anonimowi? Je(cid:285)eli tak, zastosuj publiczny (cid:239)a(cid:241)cuch bloków. W przeciwnym razie wykorzystaj prywatny (cid:239)a(cid:241)cuch bloków. 5. Je(cid:258)li konsensus ma by(cid:202) utrzymywany w ramach konsorcjum, utwórz prywatny (cid:239)a(cid:241)cuch bloków. W przeciwnym razie zastosuj publiczny (cid:239)a(cid:241)cuch bloków. Udzielenie odpowiedzi na wszystkie te pytania mo(cid:285)e pozwoli(cid:202) zrozumie(cid:202), czy (cid:239)a(cid:241)cuch bloków jest potrzebny. Oprócz postawionych tu pyta(cid:241) trzeba uwzgl(cid:218)dni(cid:202) tak(cid:285)e wiele innych kwestii, takich jak opó(cid:283)nienie, mechanizmy osi(cid:200)gania konsensusu, to, czy konsensus jest konieczny i gdzie b(cid:218)dzie ustalany. Je(cid:258)li konsensus jest utrzymywany wewn(cid:218)trznie przez konsorcjum, nale(cid:285)y zasto- sowa(cid:202) prywatny (cid:239)a(cid:241)cuch bloków. W przeciwnym razie, gdy konsensus ma by(cid:202) osi(cid:200)gany pu- blicznie przez wiele jednostek, nale(cid:285)y rozwa(cid:285)y(cid:202) publiczny (cid:239)a(cid:241)cuch bloków. W trakcie wyboru mi(cid:218)dzy (cid:239)a(cid:241)cuchem bloków a tradycyjn(cid:200) baz(cid:200) danych nale(cid:285)y rozwa(cid:285)y(cid:202) tak(cid:285)e inne aspekty, np. niemodyfikowalno(cid:258)(cid:202). Je(cid:258)li jest ona niezb(cid:218)dna, nale(cid:285)y zastosowa(cid:202) publiczny (cid:239)a(cid:241)cuch bloków; w przeciwnym razie odpowiednim rozwi(cid:200)zaniem mo(cid:285)e by(cid:202) centralna baza danych. Wraz z dojrzewaniem technologii (cid:239)a(cid:241)cuchów bloków mog(cid:200) pojawi(cid:202) si(cid:218) kolejne pytania dotycz(cid:200)ce tego modelu. Na razie jednak podany zestaw pyta(cid:241) wystarcza do zdecydowania, czy rozwi(cid:200)zanie oparte na (cid:239)a(cid:241)cuchu bloków jest potrzebne, czy nie. Drogi do decentralizacji Ju(cid:285) przed (cid:239)a(cid:241)cuchami bloków i Bitcoinem istnia(cid:239)y inne systemy (np. systemy wymiany plików BitTorrent i Gnutella), które mo(cid:285)na uzna(cid:202) za — w pewnym stopniu — zdecentralizowane. Jednak wraz z pojawieniem si(cid:218) (cid:239)a(cid:241)cuchów bloków zacz(cid:218)to realizowa(cid:202) wiele projektów wykorzy- stuj(cid:200)cych t(cid:218) now(cid:200) technologi(cid:218) do osi(cid:200)gania decentralizacji. Bitcoin jest dla wielu osób pierwszym wyborem, poniewa(cid:285) okaza(cid:239) si(cid:218) najbardziej odpornym i bezpiecznym (cid:239)a(cid:241)cuchem bloków, a w cza- sie, gdy powstaje ta ksi(cid:200)(cid:285)ka, jego warto(cid:258)(cid:202) rynkowa wynosi blisko 145 mld dolarów. Wielu pro- gramistów do budowania zdecentralizowanych aplikacji korzysta te(cid:285) z innych (cid:239)a(cid:241)cuchów blo- ków, takich jak Ethereum. W porównaniu z Bitcoinem Ethereum sta(cid:239) si(cid:218) lepszym wyborem z powodu swobody i mo(cid:285)liwo(cid:258)ci zaprogramowania dowolnej logiki biznesowej w (cid:239)a(cid:241)cuchu bloków za pomoc(cid:200) inteligentnych kontraktów. 55 Poleć książkęKup książkę Blockchain. Zaawansowane zastosowania (cid:225)a(cid:276)cucha bloków Jak przeprowadzi(cid:202) decentralizacj(cid:218)? Arvind Narayanan i in. zaproponowali w ksi(cid:200)(cid:285)ce Bitcoin and Cryptocurrency Technologies (Princeton University Press) model, który mo(cid:285)na wykorzysta(cid:202) do oceny wymogów dotycz(cid:200)cych decentralizacji z u(cid:285)yciem (cid:239)a(cid:241)cucha bloków. W tym modelu zadawane s(cid:200) cztery pytania. Odpo- wiedzi na nie pozwalaj(cid:200) dok(cid:239)adnie zrozumie(cid:202), jak zdecentralizowa(cid:202) system: 1. Co jest decentralizowane? 2. Jaki poziom decentralizacji jest wymagany? 3. Jaki (cid:239)a(cid:241)cuch bloków jest u(cid:285)ywany? 4. Jakie mechanizmy zabezpiecze(cid:241) s(cid:200) stosowane? Pierwsze pytanie wymaga okre(cid:258)lenia, jaki system jest decentralizowany. Mo(cid:285)e to by(cid:202) dowolny system — np. system sprawdzania to(cid:285)samo(cid:258)ci lub system tradingowy. Drugie pytanie wymaga okre(cid:258)lenia wymaganego poziomu decentralizacji na podstawie analizy opisanej wcze(cid:258)niej skali. Mo(cid:285)na zastosowa(cid:202) pe(cid:239)n(cid:200) lub cz(cid:218)(cid:258)ciow(cid:200) eliminacj(cid:218) po(cid:258)rednictwa. Trzecie pytanie wymaga od programistów ustalenia, który (cid:239)a(cid:241)cuch bloków jest odpowiedni w konkretnym zastosowaniu. Mo(cid:285)e to by(cid:202) (cid:239)a(cid:241)cuch bloków Bitcoin lub Ethereum albo dowolny inny dostosowany do danej sytuacji. Ostatnie pytanie, na jakie trzeba odpowiedzie(cid:202), dotyczy tego, w jaki sposób gwarantowane b(cid:218)dzie bezpiecze(cid:241)stwo zdecentralizowanego systemu. Mechanizm zabezpiecze(cid:241) mo(cid:285)e by(cid:202) oparty na atomowo(cid:258)ci (transakcja jest wtedy wykonywana albo w ca(cid:239)o(cid:258)ci, albo nie jest wykony- wana wcale). To deterministyczne podej(cid:258)cie zapewnia integralno(cid:258)(cid:202) systemu. Mo(cid:285)na te(cid:285) zastoso- wa(cid:202) mechanizmy oparte na reputacji, umo(cid:285)liwiaj(cid:200)ce wprowadzenie ró(cid:285)nych poziomów zaufania w systemie. Przyk(cid:239)adowy schemat analizy decentralizacji Jako przyk(cid:239)adow(cid:200) aplikacj(cid:218) przeznaczon(cid:200) do decentralizacji zbadajmy system transferu pieni(cid:218)- dzy. Cztery podane wcze(cid:258)niej pytania pos(cid:239)u(cid:285)(cid:200) do oceny wymogów dotycz(cid:200)cych decentralizacji tej aplikacji. Oto odpowiedzi na te pytania: 1. System transferu pieni(cid:218)dzy. 2. Eliminowanie po(cid:258)rednictwa. 3. Bitcoin. 4. Atomowo(cid:258)(cid:202). Odpowiedzi wskazuj(cid:200) na to, (cid:285)e system transferu pieni(cid:218)dzy mo(cid:285)na zdecentralizowa(cid:202), eliminuj(cid:200)c po(cid:258)rednika, implementuj(cid:200)c system z u(cid:285)yciem (cid:239)a(cid:241)cucha bloków Bitcoin i oferuj(cid:200)c gwarancje bezpiecze(cid:241)stwa za pomoc(cid:200) atomowo(cid:258)ci. Atomowo(cid:258)(cid:202) gwarantuje, (cid:285)e transakcja albo zostanie wy- konana w pe(cid:239)ni poprawnie, albo w ogóle nie zostanie przeprowadzona. Wybrany zosta(cid:239) (cid:239)a(cid:241)cuch bloków Bitcoin, poniewa(cid:285) jest najstarszy i sprawdzony. 56 Poleć książkęKup książkę Rozdzia(cid:225) 2. • Decentralizacja Opisany schemat mo(cid:285)na te(cid:285) wykorzysta(cid:202) dla dowolnego innego systemu, który trzeba przeanali- zowa(cid:202) w kategoriach decentralizacji. Odpowiedzi na postawione cztery proste pytania pomagaj(cid:200) doprecyzowa(cid:202), jakie podej(cid:258)cie przyj(cid:200)(cid:202) w celu decentralizacji systemu. (cid:146)a(cid:241)cuch bloków i kompletny ekosystem zwi(cid:200)zany z decentralizacj(cid:200) Aby uzyska(cid:202) pe(cid:239)n(cid:200) decentralizacj(cid:218), konieczna jest tak(cid:285)e decentralizacja (cid:258)rodowiska zwi(cid:200)zanego z (cid:239)a(cid:241)cuchem bloków. (cid:146)a(cid:241)cuch bloków to rozproszony rejestr dzia(cid:239)aj(cid:200)cy na bazie tradycyjnych systemów odpowiedzialnych np. za sk(cid:239)adowanie danych, komunikacj(cid:218) i obliczenia. Wyst(cid:218)puj(cid:200) te(cid:285) inne aspekty, takie jak to(cid:285)samo(cid:258)(cid:202) i bogactwo, do których tradycyjnie stosowane s(cid:200) modele scentralizowane. Decentralizacja musi obj(cid:200)(cid:202) tak(cid:285)e te aspekty, aby mo(cid:285)na by(cid:239)o uzyska(cid:202) odpo- wiednio zdecentralizowany ekosystem. Sk(cid:239)adowanie danych Dane mog(cid:200) by(cid:202) przechowywane bezpo(cid:258)rednio w (cid:239)a(cid:241)cuchu bloków, co pozwala zapewni(cid:202) decentralizacj(cid:218). Jednak powa(cid:285)n(cid:200) wad(cid:200) tego podej(cid:258)cia jest to, (cid:285)e (cid:239)a(cid:241)cuch bloków z natury nie nadaje si(cid:218) dobrze do sk(cid:239)adowania du(cid:285)ych ilo(cid:258)ci danych. Mo(cid:285)e przechowywa(cid:202) proste transakcje i pewn(cid:200) ilo(cid:258)(cid:202) dowolnych danych, jednak z pewno(cid:258)ci(cid:200) nie nadaje si(cid:218) do sk(cid:239)adowania zdj(cid:218)(cid:202) lub du(cid:285)ych obiektów z danymi, do czego u(cid:285)ywane s(cid:200) tradycyjne systemy bazodanowe. Lepszym sposobem sk(cid:239)adowania danych jest u(cid:285)ywanie rozproszonych tablic mieszaj(cid:200)cych (ang. Distributed Hash Table — DHT). Tablice DHT stosowano pierwotnie w dzia(cid:239)aj(cid:200)cych w modelu P2P systemach wymiany plików (np. w systemach BitTorrent, Napster, Kazaa i Gnutella). Badania nad tablicami DHT zyska(cid:239)y popularno(cid:258)(cid:202) dzi(cid:218)ki projektom CAN, Chord, Pastry i Tapestry. Najbardziej skalowaln(cid:200) i najszybsz(cid:200) sieci(cid:200) by(cid:239) BitTorrent, jednak problem z tym systemem i podobnymi rozwi(cid:200)zaniami polega na tym, (cid:285)e u(cid:285)ytkownicy nie maj(cid:200) interesu w przechowywaniu plików w niesko(cid:241)czono(cid:258)(cid:202). U(cid:285)ytkownicy zwykle nie utrzymuj(cid:200) plików na sta(cid:239)e, a je(cid:258)li w(cid:218)z(cid:239)y z wci(cid:200)(cid:285) potrzebnymi komu(cid:258) danymi opuszcz(cid:200) sie(cid:202), nie ma sposobu na pobra- nie tych danych; potrzebne w(cid:218)z(cid:239)y musz(cid:200) ponownie do(cid:239)(cid:200)czy(cid:202) do sieci, aby pliki ponownie sta(cid:239)y si(cid:218) dost(cid:218)pne. Dwoma podstawowymi wymogami w obszarze sk(cid:239)adowania danych s(cid:200) wysoka dost(cid:218)pno(cid:258)(cid:202) sys- temu i stabilno(cid:258)(cid:202) (cid:239)(cid:200)cza. Oznacza to, (cid:285)e dane powinny by(cid:202) dost(cid:218)pne, gdy s(cid:200) potrzebne, a (cid:239)(cid:200)cza sieciowe zawsze powinny dzia(cid:239)a(cid:202). System IPFS (ang. InterPlanetary File System) autorstwa Juana Beneta posiada obie te cechy. Benet marzy o tym, by dzi(cid:218)ki zast(cid:200)pieniu protoko(cid:239)u HTTP innym rozwi(cid:200)zaniem powsta(cid:239)a zdecentralizowana sie(cid:202) WWW. System IPFS sk(cid:239)aduje dane w tablicach DHT Kademlia, a wyszukiwanie obs(cid:239)uguje za pomoc(cid:200) acyklicznych grafów skiero- wanych skrótów (ang. Merkle directed acyclic graph). Tablice DHT i acykliczne grafy skiero- wane zostan(cid:200) szczegó(cid:239)owo opisane w rozdziale 4. „Kryptografia klucza publicznego”. 57 Poleć książkęKup książkę Blockchain. Zaawansowane zastosowania (cid:225)a(cid:276)cucha bloków Mechanizm nagradzania za sk(cid:239)adowanie danych jest oparty na protokole Filecoin. Nagrody s(cid:200) wyp(cid:239)acane w(cid:239)a(cid:258)cicielom w(cid:218)z(cid:239)ów, które przechowuj(cid:200) dane za pomoc(cid:200) mechanizm Bitswap. Ten mechanizm umo(cid:285)liwia w(cid:218)z(cid:239)om przechowywanie prostego rejestru bajtów wysy(cid:239)anych lub otrzymywanych w modelu „jeden do jednego”. W systemie IPFS u(cid:285)ywany jest te(cid:285) oparty na narz(cid:218)dziu Git mechanizm wersjonowania, który zapewnia struktur(cid:218) wersji danych i kontrol(cid:218) nad nimi. Istniej(cid:200) te(cid:285) inne narz(cid:218)dzia do sk(cid:239)adowania danych, np. Ethereum Swarm, Storj i MaidSafe. Ethereum obejmuje w(cid:239)asny zdecentralizowany i rozproszony ekosystem, w którym u(cid:285)ywane s(cid:200) narz(cid:218)dzie Swarm (do sk(cid:239)adowania danych) i protokó(cid:239) Whisper (do komunikacji). MaidSafe ma zapewni(cid:202) zdecentralizowan(cid:200) sie(cid:202) WWW. Wszystkie te projekty s(cid:200) szczegó(cid:239)owo opisane w dal- szych cz(cid:218)(cid:258)ciach ksi(cid:200)(cid:285)ki. BigchainDB to nast(cid:218)pny projekt przeznaczony do decentralizacji warstwy sk(cid:239)adowania danych, który ma zapewnia(cid:202) skalowaln(cid:200) liniowo, szybk(cid:200), zdecentralizowan(cid:200) baz(cid:218) danych ró(cid:285)n(cid:200) od trady- cyjnych systemów plików. BigchainDB uzupe(cid:239)nia zdecentralizowane platformy przetwarzania danych i systemy plików, takie jak Ethereum i IPFS. Komunikacja Internet (warstwa komunikacji w (cid:239)a(cid:241)cuchach bloków) jest uznawany za zdecentralizowany. To przekonanie jest w pewnym zakresie prawdziwe, poniewa(cid:285) pierwotnie internet opracowano jako zdecentralizowany system komunikacji. Us(cid:239)ugi takie jak e-mail i sk(cid:239)adowanie danych w in- ternecie s(cid:200) obecnie oparte na modelu, w którym kontrol(cid:218) sprawuje dostawca us(cid:239)ug, a u(cid:285)yt- kownicy ufaj(cid:200), (cid:285)e taki dostawca b(cid:218)dzie zapewnia(cid:239) na (cid:285)(cid:200)danie dost(cid:218)p do danej us(cid:239)ugi. Ten model jest oparty na bezwarunkowym zaufaniu do centralnej jednostki (dostawcy us(cid:239)ug), poniewa(cid:285) u(cid:285)ytkownicy nie maj(cid:200) kontroli nad w(cid:239)asnymi danymi. Nawet has(cid:239)a u(cid:285)ytkowników s(cid:200) przecho- wywane w systemach zaufanej trzeciej strony. Dlatego trzeba zapewni(cid:202) kontrol(cid:218) poszczególnym u(cid:285)ytkownikom w taki sposób, aby zagwa- rantowa(cid:202) im dost(cid:218)p do ich danych bez zale(cid:285)no(cid:258)ci od pojedynczej trzeciej strony. Dost(cid:218)p do in- ternetu (warstwy komunikacyjnej) jest zale(cid:285)ny od dostawców us(cid:239)ug internetowych, którzy pe(cid:239)ni(cid:200) funkcj(cid:218) centralnego koncentratora dla u(cid:285)ytkowników internetu. Je(cid:258)li dostawca us(cid:239)ug internetowych z jakiego(cid:258) powodu przestanie dzia(cid:239)a(cid:202), to w opisanym modelu komunikacja b(cid:218)dzie niemo(cid:285)liwa. Inne rozwi(cid:200)zanie to zastosowanie sieci w topologii siatki. Cho(cid:202) w porównaniu z internetem taka sie(cid:202) ma ograniczone mo(cid:285)liwo(cid:258)ci, stanowi zdecentralizowan(cid:200) alternatyw(cid:218), umo(cid:285)liwiaj(cid:200)c(cid:200) w(cid:218)z(cid:239)om bezpo(cid:258)rednie komunikowanie si(cid:218) ze sob(cid:200) bez centralnego koncentratora takiego jak dostawca us(cid:239)ug internetowych. Przyk(cid:239)adow(cid:200) sieci(cid:200) w topologii siatki jest FireChat (http://www.opengarden.com/firechat.html). Umo(cid:285)liwia ona u(cid:285)ytkownikom iPhone’ów bezpo(cid:258)rednie komunikowanie si(cid:218) ze sob(cid:200) w modelu P2P bez po(cid:239)(cid:200)czenia internetowego. 58 Poleć książkęKup książkę Rozdzia(cid:225) 2. • Decentralizacja Wyobra(cid:283) sobie teraz sie(cid:202), która umo(cid:285)liwia u(cid:285)ytkownikom kontrolowanie komunikacji — w (cid:285)ad- nej sytuacji nikt nie mo(cid:285)e jej wy(cid:239)(cid:200)czy(cid:202). Móg(cid:239)by to by(cid:202) nast(cid:218)pny krok w kierunku decentralizacji sieci komunikacyjnych w ekosystemie (cid:239)a(cid:241)cucha bloków. Trzeba zauwa(cid:285)y(cid:202), (cid:285)e ten model mo(cid:285)e by(cid:202) niezb(cid:218)dny tylko na obszarach, gdzie internet jest cenzurowany i kontrolowany przez rz(cid:200)d. Wcze(cid:258)niej wspomniano, (cid:285)e pierwotnie internet mia(cid:239) by(cid:202) zdecentralizowan(cid:200) sieci(cid:200). Jednak wraz z up(cid:239)ywem lat i powstaniem du(cid:285)ych dostawców us(cid:239)ug, takich jak Google, Amazon i eBay, kontrola jest w coraz wi(cid:218)kszym stopniu przekazywana w r(cid:218)ce tych wa(cid:285)nych graczy. Na przyk(cid:239)ad poczta elektroniczna jest w swej istocie zdecentralizowanym systemem. Oznacza to, (cid:285)e ka(cid:285)dy mo(cid:285)e niewielkim nak(cid:239)adem pracy uruchomi(cid:202) serwer poczty elektronicznej i zacz(cid:200)(cid:202) wysy(cid:239)a(cid:202) oraz odbiera(cid:202) e-maile. Dost(cid:218)pne s(cid:200) jednak lepsze rozwi(cid:200)zania, np. Gmail i Outlook.com, które oferuj(cid:200) dodatkowe us(cid:239)ugi dla u(cid:285)ytkowników ko(cid:241)cowych. Dlatego naturalnym wyborem jest ko- rzystanie z jednej z takich scentralizowanych us(cid:239)ug, poniewa(cid:285) s(cid:200) one wygodniejsze i bezp(cid:239)atne. Jest to jeden z przyk(cid:239)adów ilustruj(cid:200)cych, (cid:285)e internet sta(cid:239) si(cid:218) bardziej scentralizowany. Bezp(cid:239)atne us(cid:239)ugi s(cid:200) jednak oferowane kosztem ujawniania cennych danych osobowych, a wielu u(cid:285)ytkowników nie jest tego (cid:258)wiadomych. (cid:146)a(cid:241)cuch bloków pozwoli(cid:239) znów przedstawi(cid:202) (cid:258)wiatu wizj(cid:218) decentralizacji, a obecnie aktywnie prowadzone s(cid:200) prace nad opanowaniem tej technologii i uzyskaniem korzy(cid:258)ci, jakie mo(cid:285)e ona oferowa(cid:202). Decentralizacja a moc obliczeniowa Za pomoc(cid:200) (cid:239)a(cid:241)cuchów bloków takich jak Ethereum, gdzie w sieci (cid:239)a(cid:241)cucha bloków uruchamia si(cid:218) inteligentne kontrakty obejmuj(cid:200)ce logik(cid:218) biznesow(cid:200), mo(cid:285)na zdecentralizowa(cid:202) moc oblicze- niow(cid:200). Inne (cid:239)a(cid:241)cuchy bloków oferuj(cid:200) podobne platformy z warstw(cid:200) przetwarzania, pozwalaj(cid:200)ce w zdecentralizowany sposób uruchamia(cid:202) logik(cid:218) biznesow(cid:200) w sieci. Na rysunku 2.3 pokazany jest zdecentralizowany ekosystem. W dolnej warstwie internet lub sieci o topologii siatki zapewniaj(cid:200) zdecentralizowan(cid:200) sie(cid:202) komunikacyjn(cid:200). W nast(cid:218)pnej warstwie, sk(cid:239)adowania danych, decentralizacj(cid:218) oferuj(cid:200) technologie takie jak IPFS i BigchainDB. W kolej- nej warstwie (cid:239)a(cid:241)cuch bloków pe(cid:239)ni funkcj(cid:218) zdecentralizowanej warstwy przetwarzania (warstwy obliczeniowej). (cid:146)a(cid:241)cuch bloków mo(cid:285)e, cho(cid:202) w ograniczonym stopniu, stanowi(cid:202) tak(cid:285)e warstw(cid:218) sk(cid:239)adowania danych, jednak skutkuje to znacznym ograniczeniem szybko(cid:258)ci i mo(cid:285)liwo(cid:258)ci sys- temu. Dlatego do sk(cid:239)adowania du(cid:285)ych ilo(cid:258)ci danych w zdecentralizowany sposób lepiej nadaj(cid:200) si(cid:218) inne rozwi(cid:200)zania, takie jak IPFS i BigchainDB. Na najwy(cid:285)szym poziomie znajduj(cid:200) si(cid:218) war- stwy to(cid:285)samo(cid:258)ci i zasobów. To(cid:285)samo(cid:258)(cid:202) w internecie to bardzo obszerne zagadnienie. Systemy takie jak BitAuth i OpenID zapewniaj(cid:200) us(cid:239)ugi uwierzytelniania i identyfikacji oraz oferuj(cid:200) ró(cid:285)ny poziom decentralizacji i bezpiecze(cid:241)stwa. (cid:146)a(cid:241)cuch bloków potrafi zapewni(cid:202) rozwi(cid:200)zania ró(cid:285)nych problemów zwi(cid:200)zanych z decentralizacj(cid:200). Trójk(cid:200)t Zooko (jest to hipoteza zwi(cid:200)zana z to(cid:285)samo(cid:258)ci(cid:200)) wymaga, by system nazw w protokole sieciowym by(cid:239) bezpieczny i zdecentralizowany oraz obejmowa(cid:239) nazwy (cid:239)atwe do zapami(cid:218)tania i sensowne dla cz(cid:239)owieka. Zgodnie ze wspomnian(cid:200) hipotez(cid:200) system mo(cid:285)e mie(cid:202) tylko dwie z tych trzech cech. Jednak wraz z pojawieniem si(cid:218) (cid:239)a(cid:241)cucha bloków Namecoin problem zosta(cid:239) rozwi(cid:200)zany. Ten (cid:239)a(cid:241)cuch bloków zapewnia bezpiecze(cid:241)stwo, decentralizacj(cid:218) i nazwy sensowne 59 Poleć książkęKup książkę Blockchain. Zaawansowane zastosowania (cid:225)a(cid:276)cucha bloków Rysunek 2.3. Zdecentralizowany ekosystem dla cz(cid:239)owieka. To rozwi(cid:200)zanie nie jest jednak uniwersalne i poci(cid:200)ga za sob(cid:200) wiele wyzwa(cid:241); u(cid:285)ytkownicy musz(cid:200) na przyk(cid:239)ad bezpiecznie przechowywa(cid:202) klucze prywatne i zarz(cid:200)dza(cid:202) nimi. To rodzi ogólne pytania o to, czy decentralizacja jest odpowiednia w danej sytuacji. Decentralizacja nie we wszystkich scenariuszach jest w(cid:239)a(cid:258)ciwa. Cz(cid:218)sto lepiej sprawdzaj(cid:200) si(cid:218) scentralizowane systemy o ustalonej reputacji. Na przyk(cid:239)ad platformy poczty elektronicznej od powa(cid:285)anych firm, takich jak Google lub Microsoft, zapewniaj(cid:200) wy(cid:285)szy poziom us(cid:239)ug ni(cid:285) model, w którym odr(cid:218)bne serwery poczty elektronicznej s(cid:200) zarz(cid:200)dzane przez u(cid:285)ytkowników w internecie. Rozwijane s(cid:200) liczne projekty rozproszonych i opartych na (cid:239)a(cid:241)cuchach bloków systemów o wi(cid:218)k- szych mo(cid:285)liwo(cid:258)ciach. Na przyk(cid:239)ad Swarm i Whisper maj(cid:200) obs(cid:239)ugiwa(cid:202) zdecentralizowane sk(cid:239)adowanie danych i komunikacj(cid:218) w (cid:239)a(cid:241)cuchu bloków Ethereum. Swarm i Ethereum zostan(cid:200) opisane szczegó(cid:239)owo w rozdziale 11. „Jeszcze o Ethereum”. Wraz z powstaniem zdecentralizowanego modelu w mediach i pracach naukowych zacz(cid:218)to stosowa(cid:202) ró(cid:285)ne poj(cid:218)cia i modne s(cid:239)owa. Dzi(cid:218)ki pojawieniu si(cid:218) technologii (cid:239)a(cid:241)cuchów bloków mo(cid:285)na obecnie tworzy(cid:202) programowe wersje tradycyjnych fizycznych organizacji; s(cid:239)u(cid:285)(cid:200) do tego zdecentralizowane organizacje (ang. decentralized organization — DO) i podobne konstrukcje, szczegó(cid:239)owo opisane w dalszej cz(cid:218)(cid:258)ci rozdzia(cid:239)u. W kontek(cid:258)cie decentralizacji warto omówi(cid:202) nast(cid:218)puj(cid:200)ce zagadnienia. Inteligentne kontrakty Inteligentny kontrakt to zdecentralizowany program. Inteligentne kontrakty nie wymagaj(cid:200) do dzia(cid:239)ania (cid:239)a(cid:241)cucha bloków. Jednak z powodu zapewnianych przez (cid:239)a(cid:241)cuchy bloków korzy(cid:258)ci w zakresie bezpiecze(cid:241)stwa technologia ta sta(cid:239)a si(cid:218) standardow(cid:200) zdecentralizowan(cid:200) platform(cid:200) wykonywania inteligentnych kontraktów. 60 Poleć książkęKup książkę Rozdzia(cid:225) 2. • Decentralizacja Inteligentny kontrakt obejmuje zwykle logik(cid:218) biznesow(cid:200) i ograniczon(cid:200) ilo(cid:258)(cid:202) danych. Ta logika jest wykonywana, je(cid:258)li spe(cid:239)nione s(cid:200) okre(cid:258)lone kryteria. Inteligentne kontrakty s(cid:200) stosowane przez u(cid:285)ytkowników (cid:239)a(cid:241)cucha bloków lub dzia(cid:239)aj(cid:200) autonomicznie na rzecz cz(cid:239)onków sieci. Wi(cid:218)cej informacji na temat inteligentnych kontraktów zawiera rozdzia(cid:239) 9. „Inteligentne kontrakty”. Zdecentralizowane organizacje Zdecentralizowane organizacje to programy dzia(cid:239)aj(cid:200)ce w (cid:239)a(cid:241)cuchu bloków i oparte na dzia(cid:239)aniu rzeczywistych organizacji, obejmuj(cid:200)cych ludzi i protoko(cid:239)y. Po dodaniu zdecentralizowanej organizacji do (cid:239)a(cid:241)cucha bloków, do czego s(cid:239)u(cid:285)y inteligentny kontrakt lub zestaw takich kontrak- tów, nast(cid:218)puje decentralizacja i strony komunikuj(cid:200) si(cid:218) mi(cid:218)dzy sob(cid:200) na podstawie kodu zdefinio- wanego w kodzie oprogramowania zdecentralizowanej organizacji. Zdecentralizowane organizacje autonomiczne Zdecentralizowana organizacja autonomiczna (ang. decentralized autonomous organization — DAO) jest podobnie jak organizacja zdecentralizowana programem komputerowym dzia(cid:239)aj(cid:200)cym na bazie (cid:239)a(cid:241)cucha bloków. W takim programie umieszczone s(cid:200) regu(cid:239)y zarz(cid:200)dzania i logiki biznesowej. Zdecentralizowane organizacje autonomiczne i organizacje zdecentralizo- wane s(cid:200) prawie identyczne. G(cid:239)ówna ró(cid:285)nica polega na tym, (cid:285)e DAO s(cid:200) autonomiczne. To ozna- cza, (cid:285)e s(cid:200) w pe(cid:239)ni zautomatyzowane i obejmuj(cid:200) logik(cid:218) wykorzystuj(cid:200)c(cid:200) sztuczn(cid:200) inteligencj(cid:218). Z kolei DO nie posiadaj(cid:200) tej cechy i wymagaj(cid:200) danych wej(cid:258)ciowych od cz(cid:239)owieka, aby wykony- wa(cid:202) logik(cid:218) biznesow(cid:200). Pierwszym (cid:239)a(cid:241)cuchem bloków, w którym wprowadzono DAO, by(cid:239) Ethereum. W DAO za jed- nostk(cid:218) zarz(cid:200)dzaj(cid:200)c(cid:200) uwa(cid:285)a si(cid:218) kod, a nie ludzi lub papierowe kontrakty. Jednak to cz(cid:239)owiek zarz(cid:200)dza kodem i ocenia proponowane funkcje na potrzeby spo(cid:239)eczno(cid:258)ci. DAO mog(cid:200) zatrudnia(cid:202) zewn(cid:218)trznych pracowników kontraktowych, je(cid:258)li posiadacze tokenów (u(cid:285)ytkownicy sieci) za- pewni(cid:200) wystarczaj(cid:200)c(cid:200) ilo(cid:258)(cid:202) (cid:258)rodków. Najbardziej znanym projektem DAO jest The DAO, w którym w fazie finansowania spo(cid:239)eczno- (cid:258)ciowego zebrano 168 mln dolarów. Projekt The DAO opracowano na potrzeby tworzenia funduszu podwy(cid:285)szonego ryzyka maj(cid:200)cego zapewnia(cid:202) obs(cid:239)ug(cid:218) zdecentralizowanego modelu biznesowego bez okre(cid:258)lonej jednostki b(cid:218)d(cid:200)cej w(cid:239)a(cid:258)cicielem. Niestety, projekt zosta(cid:239) z(cid:239)amany przez hakerów z powodu b(cid:239)(cid:218)du w kodzie The DAO, a miliony dolarów w walucie Ether (ETH) zosta(cid:239)y wyprowadzone z projektu do podrz(cid:218)dnej DAO. Niezb(cid:218)dny by(cid:239) hard fork (cid:239)a(cid:241)cucha blo- ków Ethereum, aby odwróci(cid:202) skutki ataku i rozpocz(cid:200)(cid:202) odzyskiwanie (cid:258)rodków. Ten incydent zapocz(cid:200)tkowa(cid:239) debat(cid:218) na temat bezpiecze(cid:241)stwa, jako(cid:258)ci i potrzeby dok(cid:239)adnych testów kodu inteligentnych kontraktów w celu zapewnienia ich integralno(cid:258)ci i odpowiedniej kontroli. Prowa- dzone s(cid:200) te(cid:285) — zw(cid:239)aszcza w (cid:258)rodowisku uniwersyteckim — inne projekty, nakierowane na sformalizowanie pisania i testowania inteligentnych kontraktów. 61 Poleć książkęKup książkę Blockchain. Zaawansowane zastosowania (cid:225)a(cid:276)cucha bloków Obecnie DAO nie maj(cid:200) statusu prawnego, cho(cid:202) mog(cid:200) obejmowa(cid:202) inteligentny kod wymuszaj(cid:200)cy przestrzeganie okre(cid:258)lonych protoko(cid:239)ów i warunków. Jednak na razie regu(cid:239)y te nie maj(cid:200) mocy w obowi(cid:200)zuj(cid:200)cym systemie prawnym. Mo(cid:285)liwe, (cid:285)e pewnego dnia autonomiczne agenty (czyli dzia(cid:239)aj(cid:200)ce bez interwencji cz(cid:239)owieka fragmenty kodu zamawiane przez organy (cid:258)cigania lub organy nadzoru) b(cid:218)d(cid:200) obejmowa(cid:202) zasady i regulacje, które mo(cid:285)na b(cid:218)dzie umie(cid:258)ci(cid:202) w DAO na potrzeby zapewniania integralno(cid:258)ci rozwi(cid:200)za(cid:241) w kontek(cid:258)cie prawa i zgodno(cid:258)ci z regulacjami. Poniewa(cid:285) DAO s(cid:200) w pe(cid:239)ni zdecentralizowane, mo(cid:285)na je uruchamia(cid:202) w dowolnym miejscu. Rodzi to powa(cid:285)ne pytania o to, jak zastosowa(cid:202) obecny system prawny do ró(cid:285)nych obszarów jurysdykcji i lokalizacji geograficznych. Zdecentralizowane korporacje autonomiczne Zdecentralizowane korporacje autonomiczne (ang. decentralized autonomous corporations — DAC) s(cid:200) podobne do DAO, cho(cid:202) mo(cid:285)na je uzna(cid:202) za podzbiór tych ostatnich. Definicje DAC i DAO mog(cid:200) si(cid:218) pokrywa(cid:202), przy czym ró(cid:285)nica mi(cid:218)dzy nimi polega na tym, (cid:285)e DAO zwykle s(cid:200) uwa(cid:285)ane za rozwi(cid:200)zania non profit, natomiast DAC mog(cid:200) by(cid:202) dochodowe, oferowa(cid:202) udzia(cid:239)y uczestnikom i wyp(cid:239)aca(cid:202) dywidendy. DAC mog(cid:200) zarz(cid:200)dza(cid:202) biznesem automatycznie, bez inter- wencji cz(cid:239)owieka, na podstawie zaprogramowanej logiki. Zdecentralizowane spo(cid:239)eczno(cid:258)ci autonomiczne Zdecentralizowane spo(cid:239)eczno(cid:258)ci autonomiczne (ang. decentralized autonomous societies — DAS) to rozwi(cid:200)zanie, które ma pozwoli(cid:202) ca(cid:239)ej spo(cid:239)eczno(cid:258)ci funkcjonowa(cid:202) z wykorzystaniem (cid:239)a(cid:241)cucha bloków za pomoc(cid:200) wielu z(cid:239)o(cid:285)onych inteligentnych kontraktów oraz po(cid:239)(cid:200)czenia dzia(cid:239)aj(cid:200)cych autonomicznie DAO i zdecentralizowanych aplikacji (ang. decentralized applications — DApps). Ten model niekoniecznie oznacza podej(cid:258)cie „bezp(cid:239)atne dla wszystkich”. Nie jest te(cid:285) w pe(cid:239)ni oparty na ideologii libertaria(cid:241)skiej. Jednak wiele us(cid:239)ug (cid:258)wiadczonych standardowo przez rz(cid:200)dy mo(cid:285)e by(cid:202) zapewnianych za pomoc(cid:200) (cid:239)a(cid:241)cuchów bloków. Dotyczy to np. rz(cid:200)dowych sys- temów dowodów osobistych, paszportów, rejestrów aktów prawnych, ma(cid:239)(cid:285)e(cid:241)stw i narodzin. Inna teoria dotyczy tego, (cid:285)e je(cid:258)li rz(cid:200)d jest skorumpowany, a scentralizowane systemy nie zapew- niaj(cid:200) wystarczaj(cid:200)cego poziomu zaufania niezb(cid:218)dnego spo(cid:239)ecze(cid:241)stwu, ludzie mog(cid:200) uruchomi(cid:202) w (cid:239)a(cid:241)cuchu bloków w(cid:239)asny, wirtualny system, oparty na zdecentralizowanym konsensusie i przej- rzysto(cid:258)ci. Taki scenariusz mo(cid:285)e wydawa(cid:202) si(cid:218) libertaria(cid:241)skim lub cyberpunkowym snem, jednak dzi(cid:218)ki (cid:239)a(cid:241)cuchowi bloków jest zupe(cid:239)nie realny. Zdecentralizowane aplikacje (DApps) Wszystkie wymienione do tej pory idee mo(cid:285)na przypisa(cid:202) do bardziej ogólnej kategorii zdecen- tralizowanych aplikacji. DAO, DAC i DO to zdecentralizowane aplikacje dzia(cid:239)aj(cid:200)ce na bazie (cid:239)a(cid:241)cuchów bloków w sieci P2P. Te modele reprezentuj(cid:200) najnowsze osi(cid:200)gni(cid:218)cia w technologiach decentralizacji. Zdecentralizowane aplikacje to programy, które mog(cid:200) dzia(cid:239)a(cid:202) w odpowiednich (cid:239)a(cid:241)cuchach bloków (aplikacje typu I), u(cid:285)ywa(cid:202) istniej(cid:200)cych (cid:239)a(cid:241)cuchów bloków (aplikacje typu II) lub tylko korzysta(cid:202) z protoko(cid:239)ów takich (cid:239)a(cid:241)cuchów (aplikacje typu III). 62 Poleć książkęKup książkę Rozdzia(cid:225) 2. • Decentralizacja Wymogi stawiane zdecentralizowanym aplikacjom Aby aplikacja zosta(cid:239)a uznana za zdecentralizowan(cid:200), musi spe(cid:239)nia(cid:202) wymienione ni(cid:285)ej kryteria. Ta definicja zosta(cid:239)a przedstawiona w pracy Johnstona i in. The General Theory of Decentralized Applications, Dapps. (cid:81) Zdecentralizowana aplikacja powinna by(cid:202) w pe(cid:239)ni otwartym i autonomicznym oprogramowaniem. (cid:191)adna jednostka nie powinna kontrolowa(cid:202) wi(cid:218)kszo(cid:258)ci tokenów. Wszystkie zmiany w aplikacji musz(cid:200) wynika(cid:202) z konsensusu osi(cid:200)ganego na podstawie informacji zwrotnych ze spo(cid:239)eczno(cid:258)ci. (cid:81) Dane i rejestry operacji w aplikacji musz(cid:200) by(cid:202) kryptograficznie zabezpieczone oraz sk(cid:239)adowane w publicznym, zdecentralizowanym (cid:239)a(cid:241)cuchu bloków, aby unikn(cid:200)(cid:202) scentralizowanych punktów podatno(cid:258)ci na awarie. (cid:81) Aplikacja musi u(cid:285)ywa(cid:202) kryptograficznych tokenów, aby zapewni(cid:202) dost(cid:218)p i nagrody jednostkom, które robi(cid:200) co(cid:258) warto(cid:258)ciowego na rzecz aplikacji (np. górnikom w Bitcoinie). (cid:81) Tokeny musz(cid:200) by(cid:202) generowane przez zdecentralizowane aplikacje zgodnie ze standardowym algorytmem kryptograficznym. Wygenerowane tokeny stanowi(cid:200) dowód warto(cid:258)ci przekazywanej kontrybutorom (np. górnikom). Operacje w zdecentralizowanych aplikacjach Konsensus w zdecentralizowanej aplikacji mo(cid:285)na uzyska(cid:202) za pomoc(cid:200) algorytmów osi(cid:200)gania konsensusu, takich jak dowód pracy lub dowód stawki. Do tej pory tylko dowód pracy okaza(cid:239) si(cid:218) zdumiewaj(cid:200)co odporny na ataki z udzia(cid:239)em 51 zasobów, czego potwierdzeniem jest dzia(cid:239)anie Bitcoina. Zdecentralizowane aplikacje mog(cid:200) rozdziela(cid:202) tokeny (monety) na podstawie wydoby- wania, zbiórek i prac programistycznych. Przyk(cid:239)adowe zdecentralizowane aplikacje W tym miejscu zaprezentowane s(cid:200) przyk(cid:239)adowe zdecentralizowane aplikacje. KYC-Chain Ta aplikacja zapewnia mechanizmy do bezpiecznego i wygodnego zarz(cid:200)dzania danymi typu „poznaj swojego klienta” (ang. know your customer — KYC) za pomoc(cid:200) inteligentnych kontraktów. OpenBazaar Jest to zdecentralizowana sie(cid:202) P2P, która umo(cid:285)liwia przeprowadzanie operacji handlowych bezpo(cid:258)rednio mi(cid:218)dzy sprzedawcami i klientami, bez korzystania z centralnego operatora takiego jak eBay lub Amazon. Nale(cid:285)y zauwa(cid:285)y(cid:202), (cid:285)e ten system nie jest oparty na (cid:239)a(cid:241)cuchu bloków. Zamiast tego w sieci P2P u(cid:285)ywane s(cid:200) tablice DHT, aby umo(cid:285)liwi(cid:202) bezpo(cid:258)redni(cid:200) komunikacj(cid:218) i wymian(cid:218) danych mi(cid:218)dzy w(cid:218)z(cid:239)ami. W tym systemie do obs(cid:239)ugi p(cid:239)atno(cid:258)ci u(cid:285)ywany jest bitcoin i inne kryptowaluty. 63 Poleć książkęKup książkę Blockchain. Zaawansowane zastosowania (cid:225)a(cid:276)cucha bloków Lazooz Jest to zdecentralizowany odpowiednik Ubera. Umo(cid:285)liwia wspólne przejazdy samochodem w modelu P2P, a u(cid:285)ytkownicy otrzymuj(cid:200) nagrody na podstawie dowodu przemieszczania si(cid:218) i mog(cid:200) zarabia(cid:202) monety w walucie zooz. Wiele innych zdecentralizowanych aplikacji zosta(cid:239)o zbudowanych na bazie (cid:239)a(cid:241)cucha bloków Ethereum. S(cid:200) one przedstawione na stronie http://dapps.ethercasts.com/. Platformy do decentralizacji Obecnie istnieje wiele platform umo(cid:285)liwiaj(cid:200)cych decentralizacj(cid:218). Podstawow(cid:200) cech(cid:200) sieci (cid:239)a(cid:241)cu- chów bloków jest zapewnianie decentralizacji. Dlatego ka(cid:285)da sie(cid:202) (cid:239)a(cid:241)cucha bloków, np. Bitcoin, Ethereum, Hyperledger Fabric lub Quorum, mo(cid:285)e pos(cid:239)u(cid:285)y(cid:202) do udost(cid:218)pnienia us(cid:239)ugi decentrali- zacji. Wiele organizacji z ca(cid:239)ego (cid:258)wiata wprowadzi(cid:239)o platformy, które maj(cid:200) sprawi(cid:202), (cid:285)e budowa- nie rozproszonych aplikacji stanie si(cid:218) (cid:239)atwe, przyst(cid:218)pne i bezpieczne. Dalej opisano niektóre z tych platform. Ethereum Na pocz(cid:200)tku listy znajduje si(cid:218) Ethereum, poniewa(cid:285) jest to pierwszy (cid:239)a(cid:241)cuch bloków, w którym wprowadzono j(cid:218)zyk kompletny w sensie Turinga i maszyny wirtualne. Ten j(cid:218)zyk znacznie ró(cid:285)ni si(cid:218) od ograniczonych j(cid:218)zyków skryptowych z bitcoina i wielu innych kryptowalut. Dzi(cid:218)ki dost(cid:218)pno(cid:258)ci kompletnego w sensie Turinga j(cid:218)zyka Solidity pojawi(cid:239)y si(cid:218) niesko(cid:241)czone mo(cid:285)liwo(cid:258)ci w zakresie rozwoju zdecentralizowanych aplikacji. Ethereum zosta(cid:239) po raz pierwszy zapropono- wany w 2013 r. przez Vitalika Buterina i stanowi publiczny (cid:239)a(cid:241)cuch bloków do budowania inteli- gentnych kontraktów i zdecentralizowanych aplikacji. Waluta u(cid:285)ywana w Ethereum to ethery. MaidSafe MaidSafe zapewnia sie(cid:202) SAFE (ang. secure access for everyone, czyli bezpieczny dost(cid:218)p dla ka(cid:285)dego), która wykorzystuje nieu(cid:285)ywane zasoby obliczeniowe u(cid:285)ytkowników, takie jak pami(cid:218)(cid:202), moc obliczeniowa i po(cid:239)(cid:200)czenia. Pliki w tej sieci s(cid:200) dzielone na ma(cid:239)e porcje danych, szyfrowane i rozprowadzane losowo w sieci. Te dane mog(cid:200) by(cid:202) pobierane tylko przez ich w(cid:239)a(cid:258)cicieli. Wa(cid:285)n(cid:200) innowacj(cid:200) w MaidSafe jest to, (cid:285)e sie(cid:202) automatycznie odrzuca duplikaty plików. Pomaga to ogra- niczy(cid:202) konieczno(cid:258)(cid:202) anga(cid:285)owania dodatkowych zasobów obliczeniowych do zarz(cid:200)dzania obci(cid:200)(cid:285)e- niem. Walut(cid:200) u(cid:285)ywan(cid:200) do nagradzania kontrybutorów jest safecoin. 64 Poleć książkęKup książkę Rozdzia(cid:225) 2. • Decentralizacja Lisk Lisk to platforma do obs(cid:239)ugi kryptowaluty i budowania aplikacji opartych na (cid:239)a(cid:241)cuchu bloków. Umo(cid:285)liwia programistom pos(cid:239)ugiwanie si(cid:218) JavaScriptem do tworzenia zdecentralizowanych aplikacji i umieszczania ich w (cid:239)a(cid:241)cuchach bocznych. W Lisku do osi(cid:200)gania konsensusu u(cid:285)ywany jest mechanizm delegowanego dowodu stawki, w którym mo(cid:285)na wybra(cid:202) 101 w(cid:218)z(cid:239)ów do zabez- pieczania sieci i proponowania bloków. Na zapleczu u(cid:285)ywane s(cid:200) (cid:258)rodowisko Node.js i j(cid:218)zyk JavaScript, natomiast we frontonie mo(cid:285)na stosowa(cid:202) standardowe technologie: CSS3, HTML5 i JavaScript. W Lisku walut(cid:200) w (cid:239)a(cid:241)cuchu bloków jest LSK. Na podstawie Liska powsta(cid:239) te(cid:285) Rise — zdecen- tralizowana aplikacja i platforma dla waluty cyfrowej. W tej platformie wi(cid:218)kszy nacisk po(cid:239)o(cid:285)ony jest na bezpiecze(cid:241)stwo systemu. Bardziej praktyczne wprowadzenie do tych i innych platform znajdziesz w dalszych rozdzia(cid:239)ach. Podsumowanie W tym rozdziale przedstawiono zagadnienie decentralizacji, która jest podstawow(cid:200) us(cid:239)ug(cid:200) ofe- rowan(cid:200) przez (cid:239)a(cid:241)cuchy bloków. Cho(cid:202) koncepcja decentralizacji nie jest niczym nowym, w (cid:258)wie- cie (cid:239)a(cid:241)cuchów bloków zyska(cid:239)a nowe znaczenie i spowodowa(cid:239)a w ostatnim czasie pojawienie si(cid:218) ró(cid:285)nych aplikacji opartych na zdecentralizowanej architekturze. Rozdzia(cid:239) rozpocz(cid:200)(cid:239) si(cid:218) od wprowadzenia zagadnienia decentralizacji. Dalej omówio
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Blockchain. Zaawansowane zastosowania łańcucha bloków. Wydanie II
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: