Inteligentny Kontrakt czy cryptoCyrograf? | Chatka cryptoDZIADKA

Nie wiem dlaczego, ale ilekroć jakiemuś przejrzystemu, intuicyjnie doskonałemu terminowi towarzyszy niepotrzebne uszczegółowienie – w moim mózgu natychmiast zapala się czerwona żaróweczka. Weźmy np. znaczenie zwrotu ‘sprawiedliwość… społeczna’. Prosta definicja sprawiedliwości nie jest tu adekwatna. Oznacza to, że mam do czynienia z czymś innym niż sprawiedliwość. Jak nazwać coś, co nie jest sprawiedliwością?

Podobny dylemat mam z terminem ‘inteligencja… sztuczna’. Inteligencja to inteligencja! Owszem, możemy się spierać co do jej właściwej definicji, ale kiedy już się wszyscy na jakąś zgodzimy – na co miałby wskazywać przydomek ‘sztuczna’? Skoro musi być zastosowany, oznacza to, że NIE mamy tu do czynienia z inteligencją.

Jeśli wciąż nie wiesz o czym mówię – zadzwoń na infolinię Orange i zamień parę słów z botem Max’em:

MAX: Wybierz temat rozmowy. Dzwonisz w sprawie telefonu stacjonarnego czy Internetu?
JA: Dzwonię w sprawie telefonów komórkowych.
MAX: Nie wybrano tematu rozmowy. Spróbuj jeszcze raz.
JA: W sprawie Te-Le-Fo-Nów Ko-Mór-Ko-Wych!!!
MAX: Nie wybrano tematu rozmowy. Spróbuj jeszcze raz.
JA: …(__Y__)…~!^&%$@..@…

W zwrocie: ‘kontrakt INTELIGENTNY’ (Smart Contract) – ten drugi człon jest przecież właśnie synonimem tzw. sztucznej inteligencji. Z przytoczonych wyżej powodów – tego typu twór powinniśmy raczej nazywać kontraktem NIEinteligentnym. Wiem, wiem – ‘smart’ to po naszemu ‘sprytny’ albo ‘mądry’, ale z mądrością i sprytem jest podobnie jak ze sprawiedliwością i inteligencją. A więc – do wyboru: kontrakt sztucznie sprytny (= NIEsprytny) / sztucznie mądry (= NIEmądry) / sztucznie inteligentny (= NIEinteligentny). Jednym słowem: GŁUPI.

Ale do rzeczy: Co to takiego i o czym mowa?

Tzw. INTELIGENTNE KONTRAKTY opisane zostały po raz pierwszy pod koniec lat 90-tych przez Nicka Szabo w artykule Formalizing and Securing Relationships on Public Networks. Wynika z niego, że są to protokóły zawierania transakcji elektronicznych, o tyle nietypowe, że – egzekwując się – realizują postanowienia pewnej umowy, czyli uwzględniają spełnienie określonych w tej umowie warunków. Dzięki samo-egzekucji znacznie zmniejszają koszty transakcyjne (omijanie pośredników, unikanie oszustw, kosztów postępowań rozjemczych itp. itd.).

Dla tych, którym nie podoba się powyższy opis – definicja po ludzku:

INTELIGENTNY KONTRAKT to program komputerowy, który automatycznie egzekwuje zapisaną w nim umowę, jeśli spełnione są jej warunki.

Innymi słowy program ten – w sposób niemożliwy do zablokowania – przeprowadzi:
A) ‘zaprogramowaną’ (zapisaną w nim) transakcję, jeśli tylko spełnione zostaną:
B) ‘zaprogramowane’ (zapisane w nim) warunki. Aby to zrobić, nasz program musi mieć:
C) ‘zaprogramowany’ (zapisany w nim) sposób weryfikowania spełnienia warunków.

Jeśli obie strony umowy zgodzą się na powyższe postanowienia i wszystko, co będzie ich następstwem – mamy do czynienia z obopólnym uznaniem, że w danym przypadku:

KOD jest PRAWEM

Uwaga: Zaraz do tego powrócę (i zacznę się czepiać), wcześniej jednak przedstawię zagadnienie do końca:

W świecie ‘codziennym’ posługujemy się językiem naturalnym, który nie jest zrozumiały dla smart-kontraktów, używających kodu. Kod, z kolei – nie jest zrozumiały dla świata ‘codziennego’. Oznacza to, iż musi istnieć ogniwo pośrednie, łączące świat języka kodu ze światem języka naturalnego. Takim ogniwem pośrednim, a więc tłumaczem radzącym sobie z przekładem w obie strony – może być tzw. język znaczników (np. LKIF – legal knowledge interchange format).

Dobrym przykładem rozwiązania problemu są kontrakty ricardiańskie. Pod koniec lat 90-tych, w pracy Financial Cryptography in 7 Layers – Ian Grigg zaproponował tzw. kontrakty ricardiańskie (od nazwy systemu płatności ‘Ricardo’, w którym wówczas zostały zastosowane). Ich istotą było tworzenie pojedynczego dokumentu, zawierającego jednocześnie 1. postanowienia w języku prawniczym oraz 2. znaczniki czytelne dla maszyny. Dokument taki (podpisany cyfrowo kluczem prywatnym wystawcy) zamieniany był następnie (za pomocą funkcji skrótu) w identyfikator kontraktu. Podpisanie takiego identyfikatora przez dowolnego kontrahenta – było dowodem na istnienie jego zamiaru przystąpienia do kontraktu (w przytaczanym przykładzie – nabycia obligacji). Kontrakty ricardiańskie zaimplementowano w systemach CommonAccord, OpenBazaar, OpenAssets i Askemos.

Inteligentne kontrakty mogą dotyczyć wszystkiego. Mamy więc z jednej strony dokument umowy prawnej w języku naturalnym, z drugiej język kodu, na który została przetłumaczona. Czego jeszcze brakuje? Aby można było umowę automatycznie egzekwować – konieczna jest weryfikacja spełnienia jej warunków. Temu właśnie służą tzw. Wyrocznie (Oracles).

Co to jest Wyrocznia?

Spełnienie lub niespełnienie dowolnych warunków zawartych w kontrakcie zachodzi w świecie zewnętrznym, niejako poza kontraktem. Jednakże – bez względu na to jaką formę przybiera spełnienie lub niespełnienie warunków – formę tę zawsze można przedstawić w postaci danych. W szczególności chodzi nam o cyfrową postać danych. (Jeśli chciałbyś dowiedzieć się więcej na temat tego, jak technologia DLT radzi sobie z zamianą dowolnych danych w postać cyfrową, poczytaj nt. tzw. IoT – Internetu Rzeczy.)

Wyrocznia to źródło wiarygodnych danych; swoisty weryfikator, kolekcjoner, rezerwuar, przekształtnik i przekaźnik (słowem: interfejs) – umożliwiający dostarczanie danych zewnętrznych inteligentnym kontraktom. Wiarygodność przekazywanych danych to – jak nietrudno odgadnąć – sprawa najwyższej wagi – BYĆ albo NIE BYĆ dla wyroczni. Największym wrogiem wiarygodności jest oczywiście centralizacja, trudno się więc dziwić, że najnowszym trendem tej gałęzi jest dążenie do decentralizacji, czyli oparcia systemu o platformę rozproszoną. (Temat bardzo ciekawy, proszący się o odrębne opracowanie.)

Na koniec – zanim zacznę się czepiać – wypada powiedzieć parę ciepłych słów o ogromnej roli, jaką odegrały inteligentne kontrakty w rozwoju technologii ‘crypto’. Prawdą jest bowiem, że to właśnie dążność do udoskonalenia sfery inteligentnych kontraktów – stała się głośnym motorem rozwoju nowych projektów.

Inteligentne kontrakty mogą być pisane w różnych językach. Podstawowym wymogiem jest brak błędów kodu oraz determinizm (czyli: dla określonych danych wejściowych inteligentny kontrakt ma zawsze zwracać ten sam wynik, bez względu na to który węzeł sieci uruchomi kontrakt). Projekt BITCOINA, pierwszej kryptowaluty, posługiwał się prostym językiem skryptowym. Język ten, zadowalający w kwestii potrzeb transakcyjnych – owszem, pozwalał na pisanie inteligentnych kontraktów, ale jedynie w formie mocno ograniczonej, wręcz prymitywnej. Wyobraźnia podpowiedziała całą resztę; matką wynalazku stała się – jak zawsze – potrzeba. Zaczęto opracowywać nowe języki – właśnie po to, by zapewnić nieograniczoną potencję rozwoju inteligentnym kontraktom (np. język Solidity – platforma Ethereum) lub implementować pod tym kątem języki już istniejące (np. platforma Hyperledger Fabric – języki Golang, Java i Java-Script).

Uff…
A teraz będę się czepiał!

Zacznę od hasła, które w niektórych kręgach pasjonatów nowej technologii bywa uznawane za jakieś… programistyczne credo: KOD jest PRAWEM! Niestety, w zdaniu tym wyczuwam… ‘cryptoDiabła’? Przypominam: mowa o tzw. ‘inteligentnych cyrografach’. (“Ta karczma RZYM się nazywa; kładę areszt na Waszeci” – kto pamięta? 🙂 A zaczynało się tak niewinnie: Jedzą, piją, lulki palą, tańce, hulanki, swawola… Całkiem jak z ‘crypto’.)

Na goły rzut oka wszystko jest w porządku, jednak…

Po pierwsze:

Dowolna umowa zawierana jest zawsze pomiędzy ludźmi – stronami umowy. Ma ona sens jedynie wtedy, kiedy obie strony dokładnie rozumieją na co się umawiają. W przeciwnym wypadku – jest zwykłym oszustwem. Na straży rozumienia treści umowy – stoją: 1. bełkoczący prawnik (dzisiaj ten, jutro inny) + 2. jakiś język znaczników (dzisiaj ten, jutro inny) + 3. nieopierzony programista, mający kłopot z poleceniem: “Idź po chleb. Jak będą bułki – kup pięć”.

Po drugie:

Dowolna umowa zawsze zawiera zestaw warunków, od spełnienia których uzależniona jest jej prawomocność. Spełnienie ich – musi zostać zweryfikowane w sposób rzetelny i wiarygodny, aby odzwierciedlać prawdę. Na straży prawdy stoi wiarygodność jakiejś Wyroczni (dzisiaj tej, jutro tamtej – najczęściej scentralizowanej, a więc podatnej na manipulacje).

Tak się składa, że tzw. KOD ma dupie obie te sprawy. Jeśli uznalibyśmy, że jest on tożsamy z prawem, uznalibyśmy też, że PRAWO może mieć gdzieś prawomocność, leżącą w 1. zrozumieniu umowy i 2. prawdzie dotyczącej spełnienia jej warunków.

Powie ktoś: A teraz jest inaczej? Moralność sędziów leży w gruzach (gdyby byli niezawiśli, jakie miałoby znaczenie – kto ich wybiera?), a współczesny prawniczy bełkot zaczyna przypominać BASIC młodego Gates’a. Czym się różnią ‘bełkot’ i ‘bełkod’?

No ale przecież właśnie TO nam się NIE PODOBA! Przecież właśnie z tym warto i trzeba walczyć. Jeśli byłoby mi źle… np. ze świadomością, że oto pozbawiony wyobraźni ośmiolatek trzyma w garści nabitego kałacha – miałbym mu jeszcze sprezentować wyrzutnię rakiet? Źle nam z prawniczym bełkotem? Więc dajmy im jeszcze kod?!

Nie zrozum mnie źle. Nie twierdzę, że uda nam się uniknąć tzw. ‘smart-kontraktów’, a w ich miejsce szybko wprowadzić coś bezpieczniejszego. Twierdzę tylko, że nie są one ani inteligentne, ani mądre, ani sprytne. Są GŁUPIE! Są bezmyślne, bezduszne, bezrefleksyjne i nieludzkie. Całkiem jak sznurek: można nim nie tylko wiązać snopki, ale i kogoś na nim powiesić. Tzw. inteligentny kontrakt – to jedynie narzędzie. Nie wolno o tym zapomnieć.

Hurra-optymizm towarzyszący pionierskim odkryciom w przestrzeni ‘crypto’ musi się kiedyś skończyć. Osobiście uważam, że koniec ten przybierze postać – właśnie! – poważnej refleksji dotyczącej smart-kontraktów.

I – kończąc – po trzecie:

Nie chodzi o to, czy wprowadzenie i stosowanie smart-kontraktów będzie możliwe. Będzie. Chodzi o to, do czego wolno nam je zastosować, a do czego NIE WOLNO. Rozwój technologii DLT będzie prowadził do opanowywania przez nią coraz to nowych dziedzin. Prędzej lub później technologia natrafi jednak na sferę, w której ważą się losy jednostek – np. służba zdrowia. Powierzyłbyś decyzję o resekcji własnej wątroby – spełnieniu warunków inteligentnego kontraktu, napisanego przez prawnika NFZ?

Jeśli się wahasz – zadzwoń na infolinię medyczną i przedyskutuj to z botem EWUŚ.

Komentarze