Zdecentralizowana aplikacja
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 . 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
edytujIstnieje 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
edytujBitcoin 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
edytujAplikacje 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
edytujInteligentne 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
edytujMechanizmy 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
edytujDApps 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
edytujEthereum 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- ↑ What Are Decentralized Applications (dApps)? [online], Investopedia [dostęp 2022-02-02] (ang.).
- ↑ IEEE DAPPS 2020 [online], web.archive.org, 26 kwietnia 2020 [dostęp 2022-02-02] [zarchiwizowane z adresu 2020-04-26] .
- ↑ 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, DOI: 10.1016/j.rser.2018.10.014, ISSN 1364-0321 [dostęp 2022-02-02] (ang.).
- ↑ 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] .
- ↑ 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.).
- ↑ Giulio Caldarelli , Joshua Ellul , The Blockchain Oracle Problem in Decentralized Finance—A Multivocal Approach, „Applied Sciences”, 11 (16), 2021, s. 7572, DOI: 10.3390/app11167572 [dostęp 2022-02-02] (ang.).
- ↑ 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, DOI: 10.1002/spe.2751, ISSN 1097-024X [dostęp 2022-02-02] (ang.).
- ↑ 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, DOI: 10.1016/j.rser.2018.10.014, ISSN 1364-0321 [dostęp 2022-02-02] (ang.).
- ↑ Artur Meynkhard , Fair market value of bitcoin: halving effect, „Investment Management and Financial Innovations”, 16 (4), 2019, s. 72–85, DOI: 10.21511/imfi.16(4).2019.07, ISSN 1812-9358 [dostęp 2022-02-02] (ang.).
- ↑ a b c Shihab S. Hazari , Qusay H. Mahmoud , Comparative evaluation of consensus mechanisms in cryptocurrencies, „Internet Technology Letters”, 2 (3), 2019, e100, DOI: 10.1002/itl2.100, ISSN 2476-1508 [dostęp 2022-02-02] (ang.).
- ↑ Bloomberg - Are you a robot? [online], www.bloomberg.com [dostęp 2022-02-02] .
- ↑ a b c d e Wei Cai i inni, Decentralized Applications: The Blockchain-Empowered Software System, „IEEE Access”, 6, 2018, s. 53019–53033, DOI: 10.1109/ACCESS.2018.2870644, ISSN 2169-3536 [dostęp 2022-02-02] .
- ↑ 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.).
- ↑ 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] .
- ↑ a b Transaction fee economics in the Ethereum blockchain, DOI: 10.1111/ecin.13025 [dostęp 2022-02-02] (ang.).
- ↑ 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, DOI: 10.1007/978-3-030-20454-9_60, ISBN 978-3-030-20454-9 [dostęp 2022-02-02] (ang.).
- ↑ People have spent over $1M buying virtual cats on the Ethereum blockchain [online], TechCrunch [dostęp 2022-02-02] (ang.).
- ↑ 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.).