Zdecentralizowana aplikacja

Z Wikipedii, wolnej encyklopedii

Zdecentralizowana aplikacja ( DApp,[1] dApp[2], Dapp lub dapp) to aplikacja, która może działać autonomicznie, zazwyczaj za pomocą inteligentnych kontraktów, która działa w zdecentralizowanym systemie obliczeniowym, blockchain[3]. Podobnie jak tradycyjne aplikacje, DApps zapewniają użytkownikom pewne funkcje lub narzędzia. Jednak w przeciwieństwie do tradycyjnych aplikacji, DApps działają bez interwencji człowieka i nie są własnością żadnej jednostki, a raczej DApps dystrybuują tokeny reprezentujące własność[3][4]. Tokeny te są dystrybuowane do użytkowników systemu zgodnie z zaprogramowanym algorytmem, rozwadniając własność i kontrolę nad DApp.[4] Bez jednego podmiotu kontrolującego system, aplikacja staje się zdecentralizowana.

Zdecentralizowane aplikacje zostały spopularyzowane przez technologie rozproszonych rejestrów (DLT), takie jak blockchain Ethereum, lub ostatnio Hedera Hashgraph(inne języki). DApps opierają się na nieodłącznym bezpieczeństwie algorytmów decentralizacji i kryptografii[5].

Nieufny i przejrzysty charakter DApps doprowadził do większego rozwoju wykorzystania tych funkcji w przestrzeni zdecentralizowanych finansów (DeFi)[6].

DApps są podzielone na 17 kategorii: giełdy, gry, finanse, hazard, rozwój, przechowywanie, wysokie ryzyko, portfel, zarządzanie, własność, tożsamość, media, media społeczne, bezpieczeństwo, energia, ubezpieczenia i zdrowie[7].

Definicja[edytuj | edytuj kod]

Istnieje szereg kryteriów, które muszą zostać spełnione, aby aplikacja została uznana za DApp.

Tradycyjne definicje zdecentralizowanej aplikacji wymagają, aby DApp była typu open-source, co oznacza, że aplikacja działa autonomicznie bez centralizowanej organizacji / osoby kontrolującej większość powiązanych z nią tokenów[8][4]. DApps mają również publiczny, zdecentralizowany łańcuch bloków, który jest używany przez aplikację do przechowywania kryptograficznego zapisu danych, w tym transakcji historycznych[8][4].

Chociaż tradycyjne DApps są zwykle typu open source, pojawiły się wraz z rozwojem branży kryptowalut też takie DApps, które są w pełni zamknięte i częściowo zamknięte. Od 2019 r. tylko 15,7% DApps jest w pełni open-source w porównaniu do 25% DApps będących całkowicie zamkniętymi źródłami, to znaczy, że istnieje mniejszy odsetek DApps z kodem aplikacji i inteligentnymi kontraktami, które są całkowicie dostępne w porównaniu do odsetek DApps bez ujawnienia ich kodu[7]. DApps, które są open-source, z publicznie dostępnym kodem ich inteligentnych kontraktów, generalnie mają wyższe wolumeny transakcji, co wskazuje na większą popularność DAppsów typu open source w porównaniu do DApps o zamkniętym kodzie źródłowym[7].

Po drugie, tokeny wymagane do korzystania z aplikacji i nagrody dla użytkowników muszą być generowane przez aplikację zgodnie z zaprogramowanym algorytmem lub kryteriami. Część tokenów aplikacji jest zwykle dystrybuowana na początku działania aplikacji[4].

Wreszcie, protokoły aplikacji muszą mieć możliwość dostosowania w przypadku konsensusu większościowego przez użytkowników aplikacji, np. w celu wprowadzenia ulepszeń w aplikacji w oparciu o informacje zwrotne z rynku[4].

Bitcoin jako DApp[edytuj | edytuj kod]

Bitcoin jest oprogramowaniem typu open source. Wszystkie transakcje w łańcuchu bloków Bitcoin są otwarte i publiczne, a aplikacja działa bez kontroli jakiejkolwiek scentralizowanej jednostki. Każda transakcja Bitcoin od początku istnienia aplikacji jest publicznie dostępna i niezmienna[4]. Bitcoin generuje własne tokeny Bitcoin, poprzez nagrody blokowe dla górników za zabezpieczenie sieci[4]. Nagrody za bloki są zmniejszane o połowę co 210 000 wydobytych bloków lub mniej więcej co cztery lata, aby ograniczyć wpływ inflacyjny na Bitcoin, ograniczając całkowitą liczbę bitcoinów do 21 milionów[9]. Zmiany w Bitcoin muszą być dokonywane za pomocą mechanizmu sprawdzania poprawności działania Bitcoina, który może być dokonany tylko przez większościowy konsensus użytkowników Bitcoina[4].

Klasyfikacja[edytuj | edytuj kod]

Aplikacje DApp można klasyfikować na podstawie tego, czy działają na własnym łańcuchu bloków, czy na łańcuchu bloków innego programu DApp. Według tej klasyfikacji DApps są podzielone na trzy typy:

  • Typ I DApp - działają na własnym łańcuchu bloków. Łańcuchy bloków, takie jak Bitcoin i Ethereum, można sklasyfikować jako aplikacje typu I.[4]
  • Typ II DApp - to protokoły działające na łańcuchu bloków aplikacji DApp typu I. Same protokoły zawierają tokeny, które są wymagane do ich funkcji[4].
  • Typ III DApp - to protokoły, które działają przy użyciu protokołów DApp typu II. Podobnie jak DApps typu II, DApps typu III mają również tokeny wymagane do ich funkcji[4].

Inteligentne kontrakty[edytuj | edytuj kod]

Inteligentne kontrakty są używane przez programistów do przechowywania danych w łańcuchu bloków i wykonywania operacji[7]. Wiele inteligentnych kontraktów można opracować dla jednego DApp do obsługi bardziej złożonych operacji[7]. Ponad 75% DApps jest obsługiwanych przez jeden inteligentny kontrakt, a reszta korzysta z wielu inteligentnych kontraktów[7].

DApps ponoszą gaz, czyli opłaty płacone walidatorom łańcucha bloków, ze względu na koszty wdrożenia i realizacji inteligentnych kontraktów DApp.[7] Ilość gazu wymagana przez funkcje DApp zależy od złożoności jego inteligentnych kontraktów[7]. Złożona inteligentna umowa DApp, która działa na blockchainie Ethereum, może nie zostać wdrożona, jeśli kosztuje zbyt dużo gazu, co prowadzi do niższej przepustowości i dłuższego czasu oczekiwania na wykonanie[7].

Działanie[edytuj | edytuj kod]

Mechanizmy konsensusu są używane przez DApps do ustanowienia konsensusu w sieci. Dwa najczęstsze mechanizmy ustalania konsensusu to proof-of-work (POW) i proof-of-stake (POS)[4].

Proof-of-work wykorzystuje moc obliczeniową do ustalenia konsensusu w procesie wydobycia[10]. Bitcoin wykorzystuje mechanizm proof-of-work.[10] Proof-of-stake to mechanizm konsensusu, który obsługuje DApps za pośrednictwem walidatorów, które zabezpieczają sieć poprzez udział i procent własności aplikacji[10].

DApps dystrybuują swoje tokeny za pomocą trzech głównych mechanizmów: wydobywania, pozyskiwania funduszy i rozwoju[4]. W wydobywaniu tokeny są dystrybuowane zgodnie z ustalonym algorytmem jako nagrody dla górników, którzy zabezpieczają sieć poprzez weryfikację transakcji[4]. Tokeny mogą być również dystrybuowane poprzez zbieranie funduszy, przy czym tokeny są dystrybuowane w zamian za finansowanie w początkowej fazie rozwoju DApp, tak jak w początkowej ofercie monet[4]. Wreszcie, mechanizm rozwoju dystrybuuje tokeny, które są odkładane w celu rozwijania DApp według z góry określonego harmonogramu[4].

Istnieją trzy główne etapy, które zawsze występują podczas tworzenia i rozwoju dowolnego DApp: opublikowanie oficjalnej księgi DApp, dystrybucja tokenów początkowych i dystrybucja własności[4]. Po pierwsze, publikowana jest biała księga opisująca protokoły, funkcje i implementację DApp.[4] Następnie wymagane oprogramowanie i skrypty są udostępniane górnikom i interesariuszom, które wspierają walidację i pozyskiwanie funduszy w sieci[4]. W zamian są nagradzani początkowymi tokenami dystrybuowanymi przez system[4]. Wreszcie, gdy większa liczba uczestników dołącza do sieci, albo poprzez wykorzystanie DApp, albo poprzez wkład w rozwój DApp, własność tokenów rozrzedza się, a system staje się mniej scentralizowany[4].

Charakterystyka[edytuj | edytuj kod]

DApps mają swój kod zaplecza działający w zdecentralizowanej sieci peer-to-peer, w przeciwieństwie do typowych aplikacji, w których kod zaplecza działa na scentralizowanych serwerach. DApp może mieć kod frontendu i interfejsy użytkownika napisane w dowolnym języku, który może nawiązywać połączenia z jego backendem.

DApps został wykorzystany w zdecentralizowanych finansach (DeFi), w których dapps wykonują funkcje finansowe na blockchainach .[11]

Wszystkie DApps mają kod identyfikacyjny, który może działać tylko na określonej platformie. Nie wszystkie DApps działają w standardowych przeglądarkach internetowych. Niektóre z nich działają tylko na specjalnych stronach internetowych z dostosowanym kodem, dostosowanym do otwierania określonych DApps.

Wydajność DApp jest powiązana z jego opóźnieniem, przepustowością i sekwencyjną wydajnością[12]. System Bitcoin do walidacji transakcji został zaprojektowany tak, aby średni czas wydobycia Bitcoina wynosił 10 minut[12]. Ethereum oferuje skrócone opóźnienie jednej transakcji co 15 sekund. Dla porównania Visa obsługuje około 10 000 transakcji na sekundę[12][13]. Nowsze projekty DApp, takie jak Solana, próbowały przekroczyć ten wskaźnik[14].

Łączność z Internetem jest podstawową zależnością systemów blockchain, w tym DApps[12]. Barierą są również wysokie koszty pieniężne. Transakcje o małych wartościach pieniężnych mogą stanowić dużą część przekazywanej kwoty[12]. Większy popyt na usługę prowadzi również do wzrostu opłat ze względu na zwiększony ruch w sieci[15]. Jest to problem dotyczący Ethereum, który przypisuje się zwiększonemu ruchowi sieciowemu spowodowanemu przez aplikacje DApps zbudowane na blockchainie Ethereum, takie jak te używane przez tokeny niewymienne (NFT)[15]. Opłaty transakcyjne zależą od złożoności inteligentnych kontraktów DApp i konkretnego łańcucha bloków[7].

Trendy[edytuj | edytuj kod]

Ethereum to technologia rozproszonej księgi (DLT), która ma największy rynek DApp.[7] Pierwszy DApp na blockchainie Ethereum został opublikowany 22 kwietnia 2016 r.[7] Od maja 2017 r. liczba opracowywanych DApps rosła w szybszym tempie[7]. Po lutym 2018 r. DApps były publikowane codziennie[7]. Mniej niż jedna piąta DApps przechwytuje prawie wszystkich użytkowników DApp w łańcuchu blokowym Ethereum[7]. Około 5% DApps przechwytuje 80% transakcji Ethereum[7]. 80% DApps w Ethereum jest używanych przez mniej niż 1000 użytkowników[7]. W sieci Ethereum DApps, które są giełdami, przechwytują 61,5% wolumenu transakcji, finanse DApps przechwytują 25,6%, hazardowe DApps przechwytują 5%, DApps wysokiego ryzyka przechwytują 4,1%, a gry przechwytują 2,5%.[7]

DApps nie zyskały szerokiego zastosowania. Potencjalni użytkownicy mogą nie mieć umiejętności lub wiedzy, aby móc skutecznie analizować różnice między aplikacjami DApps a tradycyjnymi aplikacjami, a także mogą nie doceniać tych różnic. Dostęp do tych umiejętności i informacji może być utrudniony dla zwykłych użytkowników. Ponadto wrażenia użytkownika dla DApps są często słabe, ponieważ są one często opracowywane w celu nadania priorytetu funkcjonalności, konserwacji i stabilności[16].

Wiele DApps ma trudności z przyciągnięciem użytkowników, szczególnie na początkowych etapach, a nawet te, które przyciągają powszechną początkową popularność, mają trudności z jej utrzymaniem.

Godnym uwagi przykładem był DApp CryptoKitties, który u szczytu popularności spowodował awarię sieci Ethereum[17]. CryptoKitties i inny podobny DApp oparty na grach, Dice Games, od tego czasu nie przyciągnął podobnej popularności[18].

Przypisy[edytuj | edytuj kod]

  1. What Are Decentralized Applications (dApps)? [online], Investopedia [dostęp 2022-02-02] (ang.).
  2. IEEE DAPPS 2020 [online], web.archive.org, 26 kwietnia 2020 [dostęp 2022-02-02] [zarchiwizowane z adresu 2020-04-26].
  3. a b Merlinda Andoni i inni, Blockchain technology in the energy sector: A systematic review of challenges and opportunities, „Renewable and Sustainable Energy Reviews”, 100, 2019, s. 143–174, DOI10.1016/j.rser.2018.10.014, ISSN 1364-0321 [dostęp 2022-02-02] (ang.).
  4. a b c d e f g h i j k l m n o p q r s t u v David Johnston, The General Theory of Decentralized Applications, Dapps [online], 23 stycznia 2022 [dostęp 2022-02-02].
  5. Nathaniel Popper, Understanding Ethereum, Bitcoin’s Virtual Cousin, „The New York Times”, 1 października 2017, ISSN 0362-4331 [dostęp 2022-02-02] (ang.).
  6. Giulio Caldarelli, Joshua Ellul, The Blockchain Oracle Problem in Decentralized Finance—A Multivocal Approach, „Applied Sciences”, 11 (16), 2021, s. 7572, DOI10.3390/app11167572 [dostęp 2022-02-02] (ang.).
  7. a b c d e f g h i j k l m n o p q r Kaidong Wu i inni, A first look at blockchain-based decentralized applications, „Software: Practice and Experience”, 51 (10), 2021, s. 2033–2050, DOI10.1002/spe.2751, ISSN 1097-024X [dostęp 2022-02-02] (ang.).
  8. a b Merlinda Andoni i inni, Blockchain technology in the energy sector: A systematic review of challenges and opportunities, „Renewable and Sustainable Energy Reviews”, 100, 2019, s. 143–174, DOI10.1016/j.rser.2018.10.014, ISSN 1364-0321 [dostęp 2022-02-02] (ang.).
  9. Artur Meynkhard, Fair market value of bitcoin: halving effect, „Investment Management and Financial Innovations”, 16 (4), 2019, s. 72–85, DOI10.21511/imfi.16(4).2019.07, ISSN 1812-9358 [dostęp 2022-02-02] (ang.).
  10. a b c Shihab S. Hazari, Qusay H. Mahmoud, Comparative evaluation of consensus mechanisms in cryptocurrencies, „Internet Technology Letters”, 2 (3), 2019, e100, DOI10.1002/itl2.100, ISSN 2476-1508 [dostęp 2022-02-02] (ang.).
  11. Bloomberg - Are you a robot? [online], www.bloomberg.com [dostęp 2022-02-02].
  12. a b c d e Wei Cai i inni, Decentralized Applications: The Blockchain-Empowered Software System, „IEEE Access”, 6, 2018, s. 53019–53033, DOI10.1109/ACCESS.2018.2870644, ISSN 2169-3536 [dostęp 2022-02-02].
  13. Bitcoin needs to scale by a factor of 1000 to compete with Visa. Here’s how to do it., „The Washington Post, ISSN 0190-8286 [dostęp 2022-02-02] (ang.).
  14. It's DeFi season and things got a little too hot to handle for Solana and Arbitrum One as transaction volumes ballooned [online], Business Insider [dostęp 2022-02-02].
  15. a b Transaction fee economics in the Ethereum blockchain, DOI10.1111/ecin.13025 [dostęp 2022-02-02] (ang.).
  16. Leonhard Glomann, Maximilian Schmid, Nika Kitajewa, Improving the Blockchain User Experience - An Approach to Address Blockchain Mass Adoption Issues from a Human-Centred Perspective, Tareq Ahram (red.), Advances in Artificial Intelligence, Software and Systems Engineering, Cham: Springer International Publishing, 2020, s. 608–616, DOI10.1007/978-3-030-20454-9_60, ISBN 978-3-030-20454-9 [dostęp 2022-02-02] (ang.).
  17. People have spent over $1M buying virtual cats on the Ethereum blockchain [online], TechCrunch [dostęp 2022-02-02] (ang.).
  18. Paul Vigna, CryptoKitties and Dice Games Fail to Lure Users to Dapps, „Wall Street Journal”, 29 maja 2019, ISSN 0099-9660 [dostęp 2022-02-02] (ang.).