Inteligentna umowa - Smart contract

Mądry kontrakt to program komputerowy lub protokół transakcja , która jest przeznaczona do automatycznego wykonania, kontroli lub dokument prawnie istotnych zdarzeń i działań zgodnie z warunkami danego kontraktu lub umowy. Cele inteligentnych kontraktów to zmniejszenie zapotrzebowania na zaufanych pośredników, kosztów arbitrażu i egzekucji, strat związanych z oszustwami, a także zmniejszenie złośliwych i przypadkowych wyjątków.

Automaty vendingowe są wymieniane jako najstarsza technologia równoważna realizacji inteligentnych kontraktów. 2014 jest biały papier o kryptowaluta Ethereum opisuje protokół Bitcoin jako słabej wersji inteligentnej koncepcji zamówienia określone przez naukowca komputerowego, prawnika i kryptolog Nick Szabo . Od Ethereum różne kryptowaluty obsługują języki skryptowe, które pozwalają na bardziej zaawansowane inteligentne kontrakty między niezaufanymi stronami. Inteligentne kontrakty należy odróżnić od inteligentnych kontraktów prawnych . Ta ostatnia odnosi się do umowy prawnie wiążącej w tradycyjnym języku naturalnym, która zawiera pewne terminy wyrażone i zaimplementowane w kodzie do odczytu maszynowego.

Etymologia

Inteligentne kontrakty zostały po raz pierwszy zaproponowane na początku lat 90. przez Nicka Szabo , który ukuł ten termin, używając go w odniesieniu do „zestawu obietnic określonych w formie cyfrowej, w tym protokołów, w ramach których strony realizują te obietnice”. W 1998 roku termin ten został użyty do opisu obiektów w warstwie usług zarządzania prawami systemu The Stanford Infobus , który był częścią Stanford Digital Library Project .

Status prawny inteligentnych kontraktów

Inteligentny kontrakt nie musi koniecznie stanowić ważnej wiążącej umowy z prawnego punktu widzenia. Niektórzy prawnicy akademiccy twierdzą, że smart kontrakty nie są umowami prawnymi, ale raczej sposobem realizacji zobowiązań wynikających z innych umów, takich jak środki technologiczne do automatyzacji zobowiązań płatniczych lub zobowiązania polegające na przekazywaniu tokenów lub kryptowalut. Ponadto inni badacze twierdzili, że imperatywna lub deklaratywna natura języków programowania może wpływać na ważność prawną inteligentnych kontraktów.

Od czasu uruchomienia łańcucha bloków Ethereum w 2015 r. termin „inteligentna umowa” jest bardziej szczegółowo stosowany w odniesieniu do pojęcia obliczeń ogólnego przeznaczenia, które odbywają się na blockchainie lub rozproszonej księdze. Amerykański Narodowy Instytut Standardów i Technologii opisuje „inteligentną umowę” jako „zbiór kodu i danych (czasami nazywanych funkcjami i stanem), który jest wdrażany przy użyciu kryptograficznie podpisanych transakcji w sieci blockchain”. W tej interpretacji, stosowanej na przykład przez Fundację Ethereum czy IBM, smart kontrakt niekoniecznie jest powiązany z klasyczną koncepcją kontraktu, ale może być dowolnym programem komputerowym. Inteligentną umowę można również uznać za bezpieczną procedurę składowaną, ponieważ jej wykonanie i skodyfikowane efekty, takie jak transfer pewnej wartości między stronami, są ściśle egzekwowane i nie można nimi manipulować, po zapisaniu transakcji z określonymi szczegółami umowy w blockchain lub rozproszonej księdze . Dzieje się tak, ponieważ faktyczna realizacja kontraktów jest kontrolowana i kontrolowana przez platformę, a nie przez dowolne programy po stronie serwera łączące się z platformą.

W 2017 roku, wdrażając dekret o rozwoju gospodarki cyfrowej , Białoruś stała się pierwszym w historii krajem, który zalegalizował inteligentne kontrakty. Białoruski prawnik Denis Alejnikow jest uważany za autora koncepcji prawnej inteligentnej umowy wprowadzonej dekretem.

W 2018 r. raport Senatu USA powiedział: „Chociaż inteligentne kontrakty mogą brzmieć jak nowe, koncepcja ta jest zakorzeniona w podstawowym prawie umów. Zwykle system sądowniczy rozstrzyga spory umowne i egzekwuje warunki, ale często stosuje się również inną metodę arbitrażu, dla transakcji międzynarodowych. Dzięki inteligentnym kontraktom program wymusza kontrakt wbudowany w kod”. Wiele stanów w USA uchwaliło przepisy dotyczące korzystania z inteligentnych kontraktów, takich jak Arizona, Nevada, Tennessee i Wyoming. W kwietniu 2020 r. Izba Reprezentantów stanu Iowa uchwaliła ustawę prawnie uznającą inteligentne kontakty w stanie.

W kwietniu 2021 r. brytyjska grupa robocza ds. jurysdykcji (UKJT) opublikowała zasady cyfrowego rozstrzygania sporów (Digital DR Rules), aby umożliwić szybkie rozwiązywanie sporów prawnych dotyczących blockchain i kryptowalut w Wielkiej Brytanii.

Działania

Podobnie jak w przypadku transferu wartości na łańcuchu bloków, wdrożenie inteligentnego kontraktu na łańcuchu bloków następuje poprzez wysłanie transakcji z portfela do łańcucha bloków. Transakcja obejmuje skompilowany kod inteligentnej umowy oraz specjalny adres odbiorcy. Transakcja ta musi następnie zostać uwzględniona w bloku dodanym do łańcucha bloków, w którym to momencie kod inteligentnej umowy zostanie wykonany w celu ustalenia stanu początkowego inteligentnej umowy. Bizantyjskie algorytmy odporne na awarie zabezpieczają inteligentny kontrakt w sposób zdecentralizowany przed próbami manipulowania nim. Po wdrożeniu inteligentnej umowy nie można jej zaktualizować. Inteligentne kontrakty w łańcuchu bloków mogą przechowywać dowolny stan i wykonywać dowolne obliczenia. Klienci końcowi wchodzą w interakcję z inteligentną umową poprzez transakcje. Takie transakcje z inteligentnym kontraktem mogą odwoływać się do innych inteligentnych kontraktów. Transakcje te mogą skutkować zmianą stanu i wysłaniem monet z jednego inteligentnego kontraktu na inny lub z jednego konta na drugie.

Najpopularniejszym blockchainem do uruchamiania inteligentnych kontraktów jest Ethereum . W Ethereum inteligentne kontrakty są zwykle pisane w języku programowania Turing-complete o nazwie Solidity i kompilowane w kod bajtowy niskiego poziomu, który ma być wykonywany przez wirtualną maszynę Ethereum . Z powodu problemu z zatrzymaniem i innych problemów związanych z bezpieczeństwem, kompletność Turinga jest uważana za ryzyko i jest celowo unikana przez języki takie jak Vyper . Niektóre z innych języków programowania inteligentnych kontraktów, w których brakuje kompletności Turinga, to Simplicity, Scilla, Ivy i Bitcoin Script. Jednak pomiary przy użyciu wyrażeń regularnych wykazały, że tylko 35,3% z 53 757 inteligentnych kontraktów Ethereum zawierało rekursje i pętle — konstrukcje związane z problemem zatrzymania.

Kilka języków zostało zaprojektowanych w celu umożliwienia formalnej weryfikacji : Bamboo, IELE, Simplicity, Michelson (można zweryfikować za pomocą Coq ), Liquidity (kompiluje do Michelson), Scilla, DAML i Pact.

Godne uwagi przykłady platform blockchain obsługujących inteligentne kontrakty obejmują:
Nazwa Opis
Bitcoin Zapewnia niekompletny język skryptowy Turinga, który umożliwia tworzenie niestandardowych inteligentnych kontraktów na bazie Bitcoin, takich jak konta z wieloma podpisami , kanały płatności, depozyty, blokady czasowe, atomowy handel krzyżowy, wyrocznie lub loteria wielostronna bez operatora.
Cardano Platforma blockchain dla inteligentnych kontraktów, wykorzystująca dowód stawki
Ethereum Implementuje język Turing-complete w swoim łańcuchu bloków, wyróżniającym się frameworku inteligentnych kontraktów
EOS.IO Platforma blockchain dla inteligentnych kontraktów
Tezos Platforma blockchain modyfikująca własny zestaw reguł przy minimalnych zakłóceniach w sieci dzięki modelowi zarządzania w łańcuchu

Procesy w łańcuchu bloków są na ogół deterministyczne, aby zapewnić bizantyjską odporność na błędy. Niemniej jednak, zastosowanie inteligentnych kontraktów w świecie rzeczywistym, takich jak loterie i kasyna , wymaga bezpiecznej losowości. W rzeczywistości technologia blockchain zmniejsza koszty prowadzenia loterii i dlatego jest korzystna dla uczestników. Losowość w blockchain może być zaimplementowana za pomocą hashów bloków lub znaczników czasu, wyroczni, schematów zobowiązań, specjalnych inteligentnych kontraktów, takich jak RANDAO i Quanta, a także sekwencji z mieszanej strategii równowag Nasha .

Aplikacje

W 1998 roku Szabo zaproponował, że inteligentną infrastrukturę kontraktową można wdrożyć za pomocą replikowanych rejestrów aktywów i realizacji kontraktów przy użyciu kryptograficznych łańcuchów haszujących i bizantyjskiej replikacji odpornej na błędy . Firma Askemos wdrożyła to podejście w 2002 roku, używając Scheme (później dodając SQLite ) jako język skryptów kontraktowych.

Jedna z propozycji wykorzystania bitcoinów do rejestracji replikowanych aktywów i realizacji kontraktów nazywa się „kolorowymi monetami”. Replikowane tytuły dla potencjalnie dowolnych form własności, wraz z powielaniem realizacji kontraktów, są wdrażane w różnych projektach.

Od 2015 r. UBS eksperymentował z „inteligentnymi obligacjami”, które wykorzystują łańcuch bloków bitcoin, w którym strumienie płatności mogą być hipotetycznie w pełni zautomatyzowane, tworząc samopłatny instrument.

Hipotetycznie życzenia dziedziczenia mogą być realizowane automatycznie po zarejestrowaniu aktu zgonu za pomocą inteligentnych kontraktów. Akty urodzenia mogą również współpracować z inteligentnymi kontraktami.

Inteligentne kontrakty mogą być również wykorzystywane do obsługi transakcji na rynku nieruchomości (tj. za pośrednictwem Propy , ...), a rozwiązania blockchain mnożą się również na polu ewidencji tytułów i w rejestrze publicznym .

Smart kontrakty mogą być również wykorzystywane w umowach o pracę , zwłaszcza umowach o pracę tymczasową, oferując korzyści zarówno pracodawcy, jak i pracownikowi.

Problemy z bezpieczeństwem

Inteligentna umowa oparta na blockchain jest widoczna dla wszystkich użytkowników tego blockchaina. Prowadzi to jednak do sytuacji, w której błędy, w tym luki w zabezpieczeniach, są widoczne dla wszystkich, ale nie można ich szybko naprawić. Taki trudny do szybkiego naprawienia atak został pomyślnie przeprowadzony na The DAO w czerwcu 2016 r., pochłaniając w tym czasie około 50  mln USD Ether , podczas gdy deweloperzy próbowali znaleźć rozwiązanie, które pozwoliłoby uzyskać konsensus. Program DAO miał opóźnienie, zanim haker mógł usunąć fundusze; wykonano hard fork oprogramowania Ethereum, aby odzyskać środki od atakującego przed upływem terminu. Inne głośne ataki obejmują ataki portfelowe Parity z wieloma podpisami oraz atak niedomiaru/przepełnienia liczby całkowitej (2018 r.), o łącznej wartości ponad 184  mln USD.

Problemy w inteligentnych kontraktach Ethereum obejmują w szczególności niejasności i łatwe, ale niebezpieczne konstrukcje w języku kontraktowym Solidity, błędy kompilatora, błędy maszyny wirtualnej Ethereum, ataki na sieć blockchain, niezmienność błędów oraz brak dokumentacji z centralnego źródła znane podatności, ataki i problematyczne konstrukcje.

Różnica w stosunku do inteligentnych umów prawnych

Inteligentne umowy prawne różnią się od inteligentnych umów. Jak wspomniano powyżej, inteligentna umowa niekoniecznie jest prawnie wykonalna jako umowa. Z drugiej strony, inteligentna umowa prawna zawiera wszystkie elementy prawnie wykonalnej umowy w jurysdykcji, w której może być egzekwowana i może być egzekwowana przez sąd lub trybunał. Dlatego, o ile każda inteligentna umowa prawna będzie zawierała pewne elementy inteligentnej umowy, nie każda inteligentna umowa będzie inteligentną umową prawną.

W branży prawniczej nie ma formalnej definicji inteligentnej umowy prawnej.

Umowa Ricardiańska jest rodzajem inteligentnej umowy prawnej.

Zobacz też

Bibliografia