O co chodzi z tymi Lightweight Contracts?

obrazek piórka bo light contracts – :badumts: 🙂 link do autora

Cześć!
Dzisiaj chciałbym opowiedzieć o lightweight contracts i o tym, czym różnią się od smart contraktów.

Pomysł

Pomysł na light contrakty jest taki: zamiast do wykonywania i weryfikacji kontraktu wykorzystywać  całą sieć, lepiej użyć tylko node’ów, które są zainteresowane wynikiem kontraktu. Niższa liczba wykonujących kontrakt node’ów = krótszy czas wykonania kontraktu, ale też mniejsza odporność na awarię.
Zamiast projektować i implementować własną maszynę wirtualną do smart contraktów, można wykorzystać już istniejącą, np. JVMa. Podobnie zamiast łatać solidity, można wziąć Javę.
Tak zrobili ludzie z projektu Ardor.

Uruchamianie

W dalszej części skupię się na konkretnym przykładzie – Ardor.
Jak wygląda samo odpalanie lekkich kontraktów?
Lekkie kontrakty mogą, tak jak standardowe kontrakty, czekać na specjalną transakcję, która je wywoła, albo (nowa opcja) odpalać się z każdym wykopanym blokiem.
Node w sieci może wybrać, czy uczestniczy w procesie wykonywania kontraktów, czy go ignoruje. Żeby node mógł brać udział w wykonywaniu kontraktów, musi mieć dostęp do konta ze środkami, którymi będzie zarządzał. Co znaczy mniej więcej tyle, że musisz zapisać na jakimś serwerze swój klucz prywatny, co – mówiąc wprost – nie jest rozsądne i nie polecam tak robić. Jest to duży problem, szczególnie jeżeli kontrakt zarządza dużą ilością środków. Włamanie na node’a powoduje utratę całej kasy. Na stronie Ardora, też ostrzegają przed trzymaniem dużej ilości środków na portfelu node’a wykonującego kontrakt.

Ryzyko

Z tego powodu, przy pomocy light contraktów trudno jest zarządzać dużą sumą wspólnych środków. Na przykład DAO (Decentralized Autonomous Organizations), zakładająca gromadzenie funduszy, którymi można zarządzać przez smart contrakt. Gdyby taki kontrakt był light contraktem, środki byłyby kontrolowane przez właścicieli node’ów wykonujących ten kontrakt. Ponieważ node’y mają dostęp do kluczy prywatnych, bardzo łatwo można przelać środki z DAO na prywatne konto i cieszyć się wakacjami na Karaibach 🙂. Żeby to miało sens, użytkownicy muszą ufać, że wykonujący kontrakt będą zarządzać środkami zgodnie z umową.

W zamian za szybkość działania light contrakty rezygnują z pewnych środków  bezpieczeństwa i zmniejszają decentralizację. Jako rozwiązanie przejściowe mogą się sprawdzić szczególnie w prywatnych blockchainach, w których mamy zaufanie do właścicieli node’ów. Docelowo bardziej liczę na sharding, który umożliwia przyspieszenie działania całej sieci, a tym samym – przy okazji – smart contraktów.

Linki do poczytania:
1. Lista artykułów o lightweight contracts
2. Dokumentacja Ardora o lightweight contracts

Chcesz nauczyć się podstaw smart contraktów i blockchaina?
Pobierz e-book.