Prawo jest kodem, kod jest prawem

Czyli znów o smart kontraktach i prawie.


Jakie prawo?

Jest kilka spraw, które z punktu widzenia prawnika dokonującego analizy prawnej są absolutnie kluczowe. Jedną z nich jest pytanie: jakie prawo znajduje zastosowanie w tym przypadku?

Często to pytanie może być pominięte. Jeśli dwóch obywateli polskich, mieszkających w Polsce, podpisuje w Warszawie  umowę sprzedaży zarejestrowanego w Polsce samochodu (który również znajduje się w Polsce), prawnik zazwyczaj nie zastanawia się, czy umowa jest rządzona prawem wenezuelskim.

Jednak sytuacja może być o wiele bardziej skomplikowana. Samochód może znajdować się w Wenezueli, sprzedawca w Polsce, kupujący w Niemczech, a komunikacja między nimi odbywa się przez Whatsapp. W tej sytuacji prawnik sprawdzi, jakie jest prawo właściwe – czyli prawo, które będzie stosowane do oceny prawnej tej konkretnej umowy.

Służą temu specjalne reguły. Czasem dana sytuacja jest bardzo skomplikowana, jednak dzięki specjalnym przepisom możemy określić, jakie prawo powinniśmy stosować.

Code is law

Sytuację skomplikował Internet. Ogólnoświatowa sieć nadwyrężyła skuteczność przepisów dotyczących prawa właściwego. Trudno powiedzieć, jakie prawo powinno rządzić relacjami, które utrzymywane są ponad granicami. Tak naprawdę mają one miejsce w osobnej przestrzeni – cyberprzestrzeni, której w całości nie ogarnia prawo żadnego państwa.

W tym kontekście Lawrence Lessig pisał w 1999 r., że programiści zastępują prawodawcę. Lessig miał na myśli, że wybór przez programistę języka programowania czy konkretnych rozwiązań IT są jednocześnie wyborem reguł, którymi rządzić się będzie tworzony przez niego system czy struktura.

Code is law, pisał Lessig. Dzięki kodowi komputerowymi powstają duże struktury ekonomiczne i społeczne, które w dużej mierze rządzą się regułami ustalonymi przez dany kod. Dotychczas jednak nie było wątpliwości, że choć wiele można zrobić za pomocą kodu, wiążącymi regułami gry pozostaje tradycyjne prawo.

and law is code

Na naszych oczach nowy rozdział otwiera technologia blockchaina i smart kontrakty.

Smart kontrakty są jednym z kluczowych zastosowań blockchaina – zdecentralizowanego i rozproszonego rejestru. Poszczególne transakcje (wpisy) w rejestrze mogą zawierać kod programistyczny, który wykonywany jest automatycznie. Ten kod może określać np. prawa i obowiązki stron, co czyni z takiej transakcji cyfrową, samo-wykonującą się umowę. Dzięki technologii blockchaina nie trzeba polegać na żadnej zaufanej trzeciej stronie przy wykonaniu umowy (np. na sądzie).

Tak jak pisałem poprzednio, zastosowania smart kontraktów nie wyczerpują się na umowach cywilnoprawnych (sprzedaży, najmu itp.). Smart kontrakty potencjalnie można stosować wręcz wszędzie tam, gdzie obecnie mamy do czynienia z tradycyjnym prawem. O istniejących ograniczeniach (których notabene nie brakuje) napiszę innym razem.

Dotychczas musieliśmy posługiwać się językiem prawniczym żeby zapewnić skuteczność wykonania danych czynności (choćby umowy). Jednym z najbardziej fascynujących aspektów smart kontraktów jest to, że dzięki nim w tym samym celu możemy użyć kodu programistycznego. Kod staje się prawem. Code is law.

Prawo właściwe smart kontraktu?

Oczywiście nie będzie łatwo stwierdzić, jakim prawem (tradycyjnym) będzie rządzony smart kontrakt. Inaczej – jakie prawo będzie właściwe dla danego smart kontraktu.

Co najmniej równie ciekawe jest spojrzenie na platformy, na których funkcjonują i będą funkcjonować smart kontrakty, jako na w pewnym sensie odrębne systemy prawne.

Za każdą umową stoi prawo państwa będące dla niej prawem właściwym (kodeks cywilny, prawo konsumenckie itd.). Dzięki temu umowy mogą być krótsze i prostsze – wiemy, że postanowienia umowne zostaną uzupełnione przez przepisy prawa właściwego. Czasem może być i tak, że prawo właściwe wpłynie na wykładnię umowy niezgodnie z naszymi założeniami.

Jak jest w przypadku smart kontraktów?

W pewnym sensie każdy smart kontrakt zależy od otoczenia, w jakim jest napisany. Smart kontrakt oparty na blockchainie Bitcoina ma dość ograniczone możliwości, ale za to korzysta z najpotężniejszego blockchaina na świecie. Smart kontrakt w sieci Ethereum korzysta z języka programowania kompletnego w sensie Turinga, co sprawia, że można na nim programować dowolne smart kontrakty. Zamieszanie z The DAO i niedawny hard fork sieci pokazały jednak, że reguły gry mogą się zmienić w jej trakcie. Wolny od tego ma być Ethereum Classic, czyli niezmieniony blockchain pozostały po hard forku.

Co ważne, dany smart kontrakt jest automatyczny, samo-wykonujący, niemożliwy do zatrzymania, ale to wszystko jedynie w ramach blockchaina, na którym jest oparty. Istnieją technologie wiązania blockchainów ze sobą, jednak co do zasady każdy smart kontrakt działa i istnieje wyłącznie na danym blockchainie.

Blockchainy to więc do pewnego stopnia osobne byty, charakteryzujące się własnymi cechami, możliwościami i ograniczeniami. Można powiedzieć, że każdy blockchain to osobne „prawo właściwe” dla smart kontraktów.

Czy dojdziemy kiedyś do sytuacji, w której państwa zaczną tworzyć lub autoryzować krajowe blockchainy dla stosunków prawnych rządzonych prawem właściwym konkretnego państwa? To się okaże.

Kolejne posty na temat smart kontraktów będą ukazywać się tutaj.