Przejdź do głównej zawartości
Change page

Kompozycyjność kontraktów inteligentnych

Strona ostatnio zaktualizowana: 13 września 2025

Krótkie wprowadzenie

Inteligentne kontrakty są publiczne w Ethereum i można je uznać za otwarte API. Nie musisz pisać własnego inteligentnego kontraktu, aby zostać programistą aplikacji dapp, po prostu musisz wiedzieć, jak się nim posługiwać. Na przykład możesz użyć istniejących inteligentnych kontraktów Uniswap (opens in a new tab), zdecentralizowanej giełdy, aby obsłużyć całą logikę wymiany tokenów w swojej aplikacji – nie musisz zaczynać od zera. Sprawdź niektóre z ich kontraktów v2 (opens in a new tab) i v3 (opens in a new tab).

Czym jest łatwość łączenia się w większe struktury?

Łatwość łączenia się w większe struktury to łączenie osobnych komponentów w celu stworzenia nowych systemów i rezultatów. W dziedzinie tworzenia oprogramowania, łatwość łączenia się w większe struktury oznacza, że programista może ponownie użyć istniejących komponentów oprogramowania, aby zbudować nową aplikację. Dobrym sposobem na zrozumienie łatwości łączenia się w większe struktury jest wyobrażenie sobie elementów możliwych do połączenia jako klocków lego. Każdy klocek lego może być połączony z innym, pozwalając na budowanie złożonych struktur poprzez łączenie różnych klocków lego.

W Ethereum każdy inteligentny kontrakt jest jak taki klocek lego — możesz użyć inteligentnego kontraktu z innego projektu, jako klocków do swojego projektu. To oznacza, że nie musisz poświęcać czasu na ponowne wynajdywanie koła i ciągłe rozpoczynanie od nowa.

Jak działa łatwość łączenia się w większe struktury?

Inteligentne kontrakty Ethereum są jak publiczne interfejsy API, więc każdy może wchodzić z nimi w interakcję lub zintegrować je ze swoją dapką, aby rozszerzyć jej funkcjonalność. Łatwość łączenia w większe struktury inteligentnych kontraktów jest oparta na trzech zasadach: modularności, autonomii oraz wykrywalności:

1. Modularność: jest to umiejętność poszczególnych komponentów do wykonywania określonych zadań. W Ethereum każdy inteligentny kontrakt ma określone zastosowanie (jak w przykładzie Uniswap).

2. Autonomia: Komponowalne komponenty muszą mieć możliwość niezależnego działania. Każdy inteligentny kontrakt Ethereum jest samorealizujący i może działać bez konieczności polegania na innych częściach systemu.

3. Wykrywalność: Programiści nie mogą wywoływać zewnętrznych kontraktów ani integrować bibliotek oprogramowania w aplikacjach, jeśli te pierwsze nie są publicznie dostępne. Inteligentne kontrakty są z założenia otwarte; każdy może wywołać inteligentny kontrakt lub rozwidlić bazę kodu.

Korzyści z kompozycyjności

Krótszy cykl deweloperski

Kompozycyjność zmniejsza ilość pracy, którą programiści muszą wykonać podczas tworzenia dapek. Jak ujął to Naval Ravikant: (opens in a new tab) "Otwarte oprogramowanie oznacza, że każdy problem musi zostać rozwiązany tylko raz."

Jeśli jest taki inteligentny kontrakt, który rozwiązuje jeden problem, to inni programiści mogą użyć go ponownie, aby nie musieć rozwiązywać tego samego problemu. Tym sposobem programiście mogą wziąć istniejące biblioteki i rozszerzyć je o dodatkowe funkcje, aby tworzyć nowe dapki.

Większa innowacyjność

Łatwa możliwość łączenia w większe struktury stwarza warunki do innowacji oraz eksperymentowania, ponieważ programiści mogą dowolnie używać, modyfikować, duplikować i integrować kod open-source, aby tworzyć oczekiwane rezultaty. W wyniku tego zespoły programistyczne poświęcają mniej czasu na podstawowe funkcje i mogą przeznaczyć go na eksperymentowanie z nowymi możliwościami.

Lepsze wrażenia użytkownika

Współpraca pomiędzy komponentami ekosystemu Ethereum poprawia doświadczenie użytkownika. Użytkownicy mają dostęp do większej liczby funkcji, kiedy dapki integrują zewnętrzne inteligentne kontrakty niż w rozdrobnionym ekosystemie, którego aplikacje nie mogą się ze sobą komunikować.

Posłużymy się przykładem z arbitrażu handlowego, aby zilustrować korzyści tej współpracy:

Jeśli token ma wyższą cenę na exchange A niż na exchange B, możesz wykorzystać różnicę w cenie, aby osiągnąć zysk. Możesz to jednak zrobić tylko wtedy, gdy masz wystarczająco dużo kapitału, aby sfinansować transakcję (tzn. kupić token na exchange B i sprzedać go na exchange A).

W przypadku, kiedy nie posiadasz wystarczających środków, aby sfinansować tę transakcję, może ci się przydać błyskawiczna pożyczka. Błyskawiczne pożyczki są wysoce techniczne, ale podstawowa idea polega na tym, że można pożyczyć aktywa (bez zabezpieczenia) i zwrócić je w ramach jednej transakcji.

Wracając do naszego pierwotnego przykładu, trader arbitrażowy może wziąć dużą pożyczkę błyskawiczną, kupić tokeny na exchange B, sprzedać je na exchange A, spłacić kapitał + odsetki i zatrzymać zysk, a wszystko to w ramach tej samej transakcji. Ta skomplikowana logika wymaga połączenia wywołań wielu kontraktów, co nie byłoby możliwe, gdyby nie istniała współpraca pomiędzy inteligentnymi kontraktami.

Przykłady kompozycyjności w Ethereum

Wymiana tokenów

Jeśli stworzysz dapkę, która wymaga, aby transakcje były opłacone za pomocą ETH, możesz pozwolić użytkownikom płacić innymi tokenami ERC-20 poprzez zintegrowanie logiki wymiany tokenów. Kod automatycznie skonwertuje token użytkownika do ETH, zanim kontrakt wykona wywołaną funkcję.

Zarządzanie

Tworzenie dedykowanych systemów zarządzania dla DAO może być drogie i czasochłonne. Zamiast tego możesz użyć zestawu narzędzi open-source do zarządzania, takiego jak Aragon Client (opens in a new tab), aby uruchomić swoje DAO i szybko utworzyć ramy zarządzania.

Zarządzanie tożsamością

Zamiast budować niestandardowy system uwierzytelniania lub opierać się na scentralizowanych dostawcach, można zintegrować narzędzia zdecentralizowanej tożsamości (DID), aby obsługiwać uwierzytelnianie dla użytkowników. Przykładem jest SpruceID (opens in a new tab), zestaw narzędzi open-source, który oferuje funkcję "Zaloguj się za pomocą Ethereum", która pozwala użytkownikom uwierzytelniać tożsamość za pomocą portfela Ethereum.

Dalsza lektura

Znasz jakieś zasoby społeczności, które Ci pomogły? Edytuj tę stronę i dodaj je!

Czy ten artykuł był pomocny?