­čçÁ­čç▒ IOHK - Marlowe: kontrakty finansowe w blockchainie

Polskie tłumaczenie artykułu Marlowe: financial contracts on blockchain - IOHK Blog z bloga IOHK opublikowanego przez prof. Simona Thompsona 11 grudnia 2018

image

Marlowe: kontrakty finansowe w blockchainie

Pierwsze komputery zosta┼éy zaprogramowane w ÔÇ×kodzie maszynowymÔÇŁ. Ka┼╝dy rodzaj systemu mia┼é inny kod, a kody te by┼éy niskopoziomowe i niewyra┼╝alne; programy by┼éy d┼éugimi sekwencjami bardzo prostych instrukcji, niemo┼╝liwych do skompresowania dla wszystkich opr├│cz tego, kto je napisa┼é. Obecnie do programowania system├│w mo┼╝emy u┼╝ywa─ç j─Özyk├│w wy┼╝szego poziomu, takich jak C, Java i Haskell. Te same j─Özyki mog─ů by─ç u┼╝ywane na bardzo r├│┼╝nych maszynach, a struktura program├│w odzwierciedla to, co robi─ů. W blockchainie ich odpowiednikami s─ů j─Özyki takie jak Solidity i Simplicity. Te nowoczesne j─Özyki wy┼╝szego poziomu s─ů og├│lnego przeznaczenia ÔÇô mog─ů by─ç u┼╝ywane do pokonywania r├│┼╝nego rodzaju problem├│w, ale rozwi─ůzania, kt├│re wyra┼╝aj─ů, s─ů nadal programami i nadal wymagaj─ů umiej─Ötno┼Ťci programowania, aby skutecznie z nich korzysta─ç. W przeciwie┼ästwie do nich, Marlowe jest j─Özykiem specyficznym dla domeny (DSL), kt├│ry jest przeznaczony do u┼╝ytku przez kogo┼Ť, kto jest ekspertem w okre┼Ťlonej dziedzinie (w przypadku MarloweÔÇÖa t─ů dziedzin─ů s─ů kontrakty finansowe), a nie posiada umiej─Ötno┼Ťci programowania.

Korzystanie z DSL ma wiele zalet poza korzystaniem z niego przez osoby nie b─Öd─ůce programistami:

Mo┼╝emy zapewni─ç, ┼╝e niekt├│rych rodzaj├│w z┼éych program├│w nie da si─Ö nawet napisa─ç, poniewa┼╝ rozwi─ůzania potrzebne do ich stworzenia nie s─ů nawet cz─Ö┼Ťci─ů j─Özyka. Tym sposobem mo┼╝emy d─ů┼╝y─ç do unikni─Öcia niekt├│rych nieoczekiwanych exploit├│w, kt├│re by┼éy problemem dla istniej─ůcych blockchain├│w.

Mo┼╝emy r├│wnie┼╝ ┼éatwiej sprawdzi─ç czy programy realizuj─ů zastosowania, na kt├│rych nam zale┼╝y. Na przyk┼éad w przypadku umowy finansowej mo┼╝emy zagwarantowa─ç, ┼╝e kontrakt nigdy nie zaniecha p┼éatno┼Ťci, kt├│r─ů powinien wykona─ç.

Poniewa┼╝ jest to DSL, mo┼╝emy tworzy─ç narz─Ödzia specjalnego przeznaczenia, kt├│re pomog─ů ludziom pisa─ç programy w tym j─Özyku. W przypadku j─Özyka Marlowe mo┼╝emy emulowa─ç zachowanie kontraktu, zanim zostanie on faktycznie uruchomiony w systemie - pomaga to upewni─ç si─Ö, ┼╝e napisany przez nas kontrakt spe┼énia swoje zadanie.

Marlowe jest wzorowany na DSL kontrakt├│w finansowych, spopularyzowanym w ci─ůgu ostatniej dekady przez naukowc├│w i przedsi─Öbiorstwa takie jak LexiFi, kt├│re dostarcza oprogramowanie kontraktowe w sektorze finansowym. Tworz─ůc Marlowe, dostosowali┼Ťmy go do pracy na blockchainie. Marlowe jest zaimplementowany w warstwie rozliczeniowej (SL) blockchainu Cardano, ale r├│wnie dobrze mo┼╝e by─ç zaimplementowany na Ethereum/Solidity lub innych platformach blockchain. Pod tym wzgl─Ödem jest ÔÇ×niezale┼╝ny od platformyÔÇŁ, podobnie jak wsp├│┼éczesne j─Özyki programowania, takie jak Java i C++. Emulator online Meadow umo┼╝liwia eksperymentowanie, rozwijanie i interakcj─Ö z umowami MarloweÔÇÖa w przegl─ůdarce internetowej bez konieczno┼Ťci samodzielnego instalowania jakiegokolwiek oprogramowania.

Jak wygl─ůda kontrakt napisany w Marlowe? Powstaje on z po┼é─ůczenia niewielkiej liczby element├│w, kt├│re opisuj─ů dokonywanie p┼éatno┼Ťci, obserwacj─Ö czego┼Ť w ÔÇ×rzeczywistym ┼ŤwiecieÔÇŁ, czekanie na spe┼énienie okre┼Ťlonego warunku i tak dalej. R├│┼╝ni si─Ö to od wcze┼Ťniej stosowanych rozwi─ůza┼ä tym w jaki spos├│b upewniamy si─Ö, ┼╝e umowa jest przestrzegana. Weryfikujemy czy nie wyst─ůpi─ů sytuacje gdy instrukcje zawarte w kontrakcie nie s─ů realizowane, ale upewniamy si─Ö te┼╝ ┼╝eby uczestnicy nie rezygnowali z udzia┼éu zbyt wcze┼Ťnie pozostawiaj─ůc pieni─ůdze na zawsze zamkni─Öte w kontrakcie.

Realizujemy to za pomoc─ů dw├│ch narz─Ödzi: zobowi─ůza┼ä i limit├│w czasu. Zobowi─ůzanie wymaga od uczestnika ÔÇ×wy┼éo┼╝enia pieni─Ödzy na st├│┼éÔÇŁ, a poprzez stosowanie limit├│w czasowych, upewniamy si─Ö, ┼╝e stanie si─Ö to w odpowiednich ramach czasowych. W przeciwnym razie musimy zastosowa─ç ┼Ťrodki zaradcze. ┼ü─ůcz─ůc te metody jeste┼Ťmy w stanie zach─Öci─ç uczestnik├│w do kontynuowania kontraktu, gdy ju┼╝ si─Ö do niego zobowi─ů┼╝─ů.

Pracujemy nad wypuszczeniem pe┼énej wersji MarloweÔÇÖa w po┼éowie 2019 roku. Wtedy te┼╝ j─Özyk zostanie udost─Öpniony na Cardano SL. Od dzi┼Ť mo┼╝esz samodzielnie odkrywa─ç Marlowe za pomoc─ů Meadow i dowiedzie─ç si─Ö wi─Öcej szczeg├│┼é├│w z naszego internetowego artyku┼éu. W ci─ůgu najbli┼╝szych sze┼Ťciu miesi─Öcy b─Ödziemy dopracowywa─ç sam projekt j─Özyka i opracowywa─ç zestaw szablon├│w dla popularnych zastosowa┼ä finansowych, a tak┼╝e wykorzystywa─ç narz─Ödzia logiki formalnej do udowodnienia w┼éa┼Ťciwo┼Ťci kontrakt├│w napisanych w Marlowe daj─ůc u┼╝ytkownikom najwy┼╝szy poziom pewno┼Ťci, ┼╝e ich kontrakty dzia┼éaj─ů jak powinny.