Z archiwum #4: Czym są inteligentne kontrakty i DAO

Idea przeniesienia obrotu prawnego w przestrzeń cyfrową sięga początków internetu. Pomysł, aby protokół komputerowy wykonywał warunki umowy, dalece wykraczał jednak poza ówczesne możliwości technologiczne.

Ten artykuł został po raz pierwszy opublikowany w raporcie kancelarii Wardyński i Wspólnicy „Blockchain, inteligentne kontrakty i DAO”. W cyklu Z archiwum znajdziesz inne moje stare teksty o blockchainie i kryptowalutach.

Początkowo sieć składała się ze statycznych treści powiązanych ze sobą odnośnikami. Wraz z rozwojem internetu coraz większe znaczenie zaczęło odgrywać generowanie treści przez użytkowników oraz ich wzajemne interakcje, czego dowodem jest sukces serwisów społecznościowych. Sieć stała się miejscem, w którym tworzymy i pozyskujemy informacje oraz komunikujemy się ze sobą. Wiele wskazuje, że kolejny rozdział w ewolucji internetu został otwarty przez technologię blockchaina, która bywa określana również szerszym pojęciem technologii zdecentralizowanego rejestru. Być może ten nowy etap umożliwi realizację wizji przeniesienia systemu prawnego do przestrzeni cyfrowej.

Czym jest blockchain?

Blockchain jest przede wszystkim strukturą bazy danych, zawierającą historię transakcji. Podobnie jak tradycyjne rejestry to księgi zawierające chronologiczne wpisy, historia transakcji zapisana w łańcuchu bloków odzwierciedla aktualny stan rzeczy – np. stan posiadania jakiegoś dobra.

Blockchain składa się ze znakowanych czasem bloków, które stanowią grupy transakcji i są ze sobą powiązane zabezpieczeniami kryptograficznymi. Każdy blok jest powiązany w ten sposób z blokiem poprzednim i następnym, co sprawia, że taki rejestr przyjmuje formę łańcucha bloków. Modyfikacja któregokolwiek z bloków sprawiłaby, że łańcuch zostanie przerwany.

Sama struktura bazy danych w formie blockchaina jest jedynie oryginalnym sposobem na organizację i uporządkowanie danych – niekoniecznie najbardziej wygodnym i efektywnym. Kluczowym aspektem jest jednak protokół, który zapewni, że poszczególne bazy danych (łańcuchy bloków), choć przechowywane w różnych miejscach i przez różne osoby, będą ze sobą identyczne.

Pierwszym takim protokołem był Bitcoin. Jego kluczowym elementem jest mechanizm osiągania konsensu przez uczestników sieci Bitcoina co do treści utrzymywanych przez nich baz danych – będących zapisem wszystkich historycznych transakcji bitcoinami. Niezwykle interesującym aspektem Bitcoina jest fakt, że w mechanizm osiągania konsensu wbudowane są bodźce ekonomiczne. Sprawiają one, że każdy uczestnik sieci potwierdzający dokonane transakcje ma wymierny ekonomicznie powód (nagrodę w postaci nowo wygenerowanych bitcoinów), aby potwierdzać jedynie rzeczywiście dokonane transakcje i nie starać się oszukańczo dodawać transakcji, które nie zaistniały (np. podwójnego wydania tych samych środków).

W rezultacie Bitcoin stanowi globalną sieć, w której rejestr transakcji – łańcuch bloków – przechowywany i tworzony jest przez tysiące węzłów sieci i dzięki wielu podmiotom utrzymującym infrastrukturę potwierdzania transakcji.

W przypadku Bitcoina dzięki mechanizmowi osiągania konsensu możliwe jest współdziałanie nieznających się nawzajem uczestników sieci. Skuteczne osiąganie konsensu sprawia, że te podmioty nie muszą się znać ani martwić brakiem zaufania pomiędzy sobą. Bitcoin pokazał, że możliwe jest wyeliminowanie zaufanej strony trzeciej – pośrednika w transakcjach (w tym przypadku banku centralnego i pośredników w płatnościach).

Kolejne zastosowania blockchaina

Za sprawą Bitcoina powstają plany zastosowania technologii blockchaina w innych obszarach. Jedne z aplikacji polegają na przyjęciu, że jednostkom w danym blockchainie (w przypadku sieci Bitcoina nazywanym bitcoinami) przypisujemy walor innego niż pieniądz nośnika wartości, np. papieru wartościowego.

Okazuje się, że olbrzymi potencjał ma możliwość dołączenia do danej transakcji w blockchainie dodatkowych warunków i cech w postaci kodu programistycznego. Wówczas weryfikacja danej transakcji dokonywana w ramach konsensu sieci obejmuje również wykonanie tego kodu.

Co może obejmować taki kod programistyczny wbudowany w daną transakcję? W przypadku Bitcoina te możliwości są ograniczone (choć istnieje wiele projektów, które starają się to zmienić). Jednak kolejne publiczne blockchainy, spośród których szczególnie wyróżnia się Ethereum, niosą znacznie większe możliwości. W ich przypadku kod programistyczny może przewidywać wszystko, co możliwe jest do wyrażenia w języku programowania. Dokonanie transakcji powoduje rozpoczęcie wykonywania tego kodu – niezależne od żadnej strony trzeciej, a także od stron tej transakcji.

Dzięki tej możliwości transakcja może stać się sposobem wykonania określonego programu komputerowego, zapisanego w jej treści. Ten kod może tworzyć określone warunki, np. uzależniać dokonanie transakcji od zaistnienia jakichś dodatkowych okoliczności.

Smart contracts

W warstwie idei inteligentny kontrakt (smart contract) to więź prawna, która może samodzielnie funkcjonować w przestrzeni cyfrowej, bez potrzeby odwoływania się do świata realnego.

W praktyce realizacja tej idei powinna zapewniać, że:

  • relacja prawna jest zawierana za pośrednictwem środków elektronicznych, bez potrzeby korzystania z papierowych dokumentów czy tradycyjnych podpisów, oraz może być w taki sposób zmieniana;
  • również wykonanie tej relacji prawnej czy jej elementów nie musi być związane z jakimkolwiek działaniem w świecie realnym – jest ono automatyczne i podlega wyłącznie regułom ustalonym w danym inteligentnym kontrakcie.

Dodatkowa zaleta inteligentnego kontraktu polega na uniezależnieniu jego zawarcia, zmiany oraz wykonania od woli jakiejkolwiek osoby trzeciej (podmiotu niebędącego stroną inteligentnego kontraktu), w tym sądu. Inteligentne kontrakty to także więcej niż umowy. Mogą one służyć jako dowolne relacje prawne (np. jako elementy organizacji, systemu do głosowania, rejestru publicznego itd.).

Okazuje się, że powyższe kluczowe cechy inteligentnej umowy są realizowane przez wspomniane powyżej transakcje w sieci publicznego blockchaina w rodzaju Ethereum, zawierające dodatkowy kod komputerowy.

Transakcje są bowiem dokonywane wyłącznie w przestrzeni cyfrowej. Ich uruchomienie wiąże się z wykonaniem załączonego kodu programistycznego, który może dowolnie kształtować zasady dokonania transakcji między stronami. Dzięki wspomnianym powyżej cechom technologii blockchaina i osiąganiu konsensu w rozproszonej sieci wykonanie następuje niezależnie od woli stron czy jakiejkolwiek strony trzeciej. W ten sposób technologia blockchaina umożliwia nam rzeczywiste wykorzystanie idei inteligentnego kontraktu.

Inteligentny kontrakt jest oprogramowaniem, które jest wykonywane za sprawą transakcji w danym blockchainie poprzez dokonanie zmian w tym blockchainie. Jest ono zapisane w blockchainie i wykonywane przez rozproszone węzły sieci, co eliminuje konieczność korzystania z zaufanej trzeciej strony. Modyfikacja albo wpłynięcie na działanie inteligentnego kontraktu wymaga zmiany konsensu całej sieci.

Szanse i ograniczenia inteligentnych kontraktów

Porywająca idea inteligentnych kontraktów – przeniesienie prawa do cyberprzestrzeni – napotyka kilka istotnych trudności. Po pierwsze, zasadniczo inteligentne kontrakty funkcjonują w jednym środowisku – danym blockchainie.

Jeżeli do wykonania inteligentnej umowy potrzebne są jakieś informacje za świata zewnętrznego, niezbędnie jest pobranie i weryfikacja takich danych. Rozwiązaniu tego problemu służą wyrocznie (Oracles), o których więcej piszemy w artykule Jak projektować inteligentne kontrakty i DAO. Co więcej, podobny problem występuje, jeśli inteligentny kontrakt ma wywrzeć skutki w świecie zewnętrznym (poza blockchainem).

Po drugie, inteligentne kontrakty są deterministyczne. Zazwyczaj nie ma w nich miejsca na elementy podlegające ocenie czy używanie klauzul generalnych (jak „słuszność” lub „dobre obyczaje”). Wykorzystując inteligentny kontrakt, zyskujemy pewność wykonania założonego kodu, ale często tracimy możliwość wprowadzenia zamierzonej niejednoznaczności. Wynika to w dużej mierze z ograniczeń języka, którego możemy użyć w tworzeniu inteligentnego kontraktu. Jest to sztuczny język komputerowy, w przeciwieństwie do ludzkiego żywego języka naturalnego. Być może jednak rozwój „uczących się” komputerów kognitywnych i sztucznej inteligencji pozwoli rozwiązać i ten problem.

Tworzenie inteligentnych kontraktów stało się możliwe dzięki technologii blockchaina, stąd ograniczenia technologiczne stają się również ograniczeniami we wdrażaniu inteligentnych kontraktów. Należy jednak założyć, że kolejne generacje rozproszonych, zdecentralizowanych protokołów będą starały się rozwiązać pojawiające się problemy.

Niezależnie od ograniczeń inteligentne kontrakty już dziś świetnie nadają się do tych sytuacji w realnym obrocie prawnym, w których występują schematyczne relacje prawne. Przykładem są umowy na rynkach finansowych, gdzie często używane są zestandaryzowane wzory. Inteligentne kontrakty umożliwiają całkowitą cyfryzację procesu zawierania i wykonania tych umów, eliminując przy tym pośredników oraz zapewniając pewność wykonania umowy.

Zastosowań inteligentnych kontraktów jest jednak znacznie więcej. Są one często postrzegane jako proste przeniesienie umowy cywilnoprawnej w świat cyfrowy. W rzeczywistości jednak mogą służyć do budowy znacznie bardziej skomplikowanych struktur. Przykładem jest DAO.

DAO

DAO (Decentralised Autonomous Organisation) jest szczególną formą inteligentnego kontraktu. Stoi za nią idea całkowicie autonomicznego podmiotu, istniejącego wyłącznie w przestrzeni cyfrowej.

DAO może pełnić rozmaite funkcje, tradycyjnie wykonywane przez instytucje takie jak spółka, fundacja, stowarzyszenie czy spółdzielnia. DAO mogą być tworzone dla różnych celów. Zapewne najczęściej będą to cele ekonomiczne, a więc DAO rzeczywiście będą w jakimś zakresie odpowiednikami spółek.

DAO jest inteligentnym kontraktem, który przyjmuje formę organizacji przedsięwzięcia grupy osób (przy czym może być otwarty na nowych członków). Na krańcach tej organizacji zawsze będą znajdowali się ludzie (przynajmniej dopóki dostatecznie nie rozwinie się sztuczna inteligencja), choć nie zawsze będą oni łatwi do zidentyfikowania. Za pośrednictwem DAO będą oni dążyli do realizacji wspólnego przedsięwzięcia. Nie ma przy tym konieczności, aby cele uczestników DAO były identyczne. Podobnie jest chociażby w przypadku zwykłej spółki z ograniczoną odpowiedzialnością – cele członków zarządu oraz wspólników mogą być nieraz diametralnie różne. Konstrukcja tego typu spółki jest jednak tak pomyślana, aby jedni i drudzy mogli realizować swoje interesy przy jednoczesnym wspieraniu wykonania wspólnego przedsięwzięcia.

O ile w przypadku najprostszego inteligentnego kontraktu mamy do czynienia z relacją pomiędzy dwoma podmiotami, o tyle w przypadku DAO relacje mogą być znacznie bardziej skomplikowane. W DAO występują różnego rodzaju podmioty, które mają różne związki z danym DAO oraz przyświecają im różne cele. DAO może być również otwarte na udział kolejnych podmiotów. Schematycznie przedstawia to poniższa grafika (dostępna tutaj).

DAO może służyć jako wehikuł współpracy (wspólnego przedsięwzięcia) pomiędzy podmiotami niemającymi ze sobą rzeczywistego kontaktu. „Pewność kodu” sprawia, że te podmioty nie muszą przeciwdziałać brakowi zaufania pomiędzy sobą nawzajem (np. poprzez skorzystanie z zaufanej trzeciej strony).

Z DAO wiążą się te same ograniczenia co z inteligentnymi kontraktami. Przykład The DAO (o którym piszemy na str. 29) wyraźnie pokazał, że próby całkowitego wyabstrahowania się od świata zewnętrznego – w tym panujących w nim reguł prawnych – mogą zakończyć się katastrofą.

Inteligentne kontrakty i DAO znajdują się jednak w bardzo wczesnej fazie rozwoju. Stanowią fascynujący przykład próby objęcia przestrzenią cyfrową kolejnych obszarów naszego życia, w tym prawa. Powinniśmy przyglądać się rozwojowi tej tematyki, ponieważ być może na naszych oczach kształtują się innowacje, które zmienią świat wokół nas. Przygoda z inteligentnymi kontraktami i DAO zaczęła się od technologii blockchaina, jednak z pewnością wkrótce doświadczymy kolejnych innowacji.