Dostawa a płatność na blockchainie PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Dostawa a płatność na blockchainie

Jak łańcuchy bloków mogą rozwiązać najstarszy problem w książce

Handel między ludźmi jest tak stary jak sama ludzkość. Zaczęło się w momencie, gdy jaskiniowiec Ogg powiedział do jaskiniowca Ugg: „dam ci kamień, a ty dasz mi jagody”. Ale handel wiąże się z podstawowym problemem: wymaga zaufać. Co powstrzymuje Ogga przed użyciem kamienia do uderzenia Ugga, a następnie złapania obu kamieni i jagody przed ucieczką? Jak przekładamy ustną umowę wymiany na mechanizm egzekwowania, który gwarantuje, że obie strony dotrzymają słowa?

Weźmy nowoczesny przykład: kilka lat temu sprzedałem samochód na rynku wtórnym. Znalazłem kupca przez Internet, spotkaliśmy się osobiście, przetestował samochód i ustaliliśmy cenę. Poszedł więc do swojego banku po czek kasjerski, który jest faktycznie gotówką w bardziej zwartej formie. Poszliśmy razem do urzędu pocztowego, gdzie mogę podpisać i przesłać oficjalny rządowy formularz przenoszący prawo własności do samochodu.

Tak więc stoimy przy oknie poczty i dochodzimy do niezręcznego impasu. Czek wciąż jest w jego kieszeni, a ja trzymam podpisany formularz. Spotkaliśmy się kilka godzin temu i nie mamy powodu, aby sobie ufać. Czy najpierw oddam formularz, a potem mam nadzieję, że on da mi czek, a nie ucieknie? A może wręcza mi czek, a potem ma nadzieję, że dam w formularzu? Tak czy inaczej, ktoś naraża się na zdradę.

I wtedy dotarło do mnie, że powinienem przestać się martwić i po prostu podać formularz. Dlaczego? Ponieważ może wydarzyć się jedna z dwóch rzeczy. Albo kupujący wręcza mi czek, w którym to przypadku wszyscy są zadowoleni i wymiana jest zakończona. Ale co, jeśli zamiast tego ucieknie? W takim przypadku urzędnik na poczcie zobaczy i podrze formularz, który mu właśnie dałem. Bingo, mamy sobie bezpieczną wymianę.

Widziałeś, co tam się stało? Nasz dylemat został rozwiązany za pośrednictwem pośrednika, w tym przypadku urzędnika pocztowego. Urzędnik zapewnia uczciwą transakcję lub jej brak. I nie każdy pośrednik może świadczyć tę usługę. Musi to być ktoś, komu ufają obie strony. W przypadku pracownika rządowej poczty wynika to z naszego zaufania do samego rządu. Gdyby urzędnicy pocztowi mogli zostać przekupieni, ja lub kupujący moglibyśmy zaaranżować sytuację, w której otrzymamy zarówno gotówkę, jak i samochód. Rzeczywiście, w wiele państw, taka korupcja może bardzo osłabić dobrobyt.

Jaskiniowcy i samochody to jedno, ale skupmy się na świecie finansów, w którym handel odgrywa ważną rolę centralna rola. Oczywiście banki nie płacą swoim pracownikom za ucieczkę z czyimi akcjami. Jednak bezpieczna wymiana aktywów finansowych pozostaje ważnym problemem, ponieważ istnieją mniej kreskówkowe sposoby, w których uczestnicy transakcji mogą nie dotrzymać obietnicy. Na przykład jedna ze stron może stać się niewypłacalna lub nagła zmiana warunków rynkowych może uniemożliwić jej zabezpieczenie aktywów. Mogą cierpieć z powodu błędów pisarskich lub efektu domina oszustwa księgowe u innego kontrahenta.

W wyniku tych „ryzyko rozliczeniowe”, Większość transakcji finansowych jest rozliczana za pomocą dostawa a płatność (DvP). To tylko fantazyjne określenie opisanego powyżej procesu pocztowego. DvP zapewnia, że ​​jeśli jedna strona transakcji nie dostarczy tego, co obiecała, druga strona może zatrzymać aktywa, które zaoferowała w zamian.

A w jaki sposób dostawa kontra płatność jest wdrażana w świecie finansów? Zgadłeś, za pośrednictwem zaufanych pośredników. Mogą to być inne banki, izby rozliczeniowe lub centralne depozyty papierów wartościowych. Ponieważ większość dzisiejszych transakcji odbywa się cyfrowo, nie jest to kwestia zarządzania transferem fizycznych certyfikatów lub gotówki. DvP jest raczej osiągane przez pośrednika, który jednocześnie aktualizuje pewną liczbę rekordów w swojej bazie danych i / lub przekazuje instrukcje innym instytucjom.

Dostawa a płatność przez blockchain

Mówienie o bazach danych dobrze prowadzi nas do tematu blockchainów. Blockchain umożliwia współdzielenie i synchronizację księgi głównej lub bazy danych między wieloma stronami. Jednak w przeciwieństwie do zwykłych baz danych, bazy danych blockchain mogą być bezpiecznie i bezpośrednio modyfikowane przez wielu użytkowników, nawet jeśli zaciekle konkurują ze sobą. Jeśli pracujesz w korporacyjnym IT, możesz zastanowić się nad konsekwencjami tego zdania.

Aby zrozumieć, jak działa dostawa i płatność w łańcuchu bloków, musimy zacząć od zrozumienia modelu transakcyjnego Bitcoina. Należy tutaj zauważyć, że inne projekty blockchain używają innego modelu dla transakcji, a o tych różnicach porozmawiamy później.

Transakcja bitcoin ma zestaw wejść i wyjść. Każde wejście jest połączone z jednym wyjściem poprzedniej transakcji, a wszystkie bitcoiny z poprzedniego wyjścia wpływają. Bitcoiny w wejściach transakcji są następnie redystrybuowane na jej wyjścia zgodnie z zapisanymi w nich ilościami. Ponadto każdy wynik transakcji zawiera publiczny identyfikator swojego nowego właściciela, dla którego właściciel posiada odpowiedni klucz prywatny. Transakcja bitcoin jest ważna tylko wtedy, gdy:

  • Całkowita ilość bitcoinów we wejściach transakcji jest większa lub równa ilości zapisanej w jej danych wyjściowych. Każda różnica jest pobierana jako opłata przez „górnika”, który potwierdza transakcję w bloku, tworząc mechanizm rynkowy, za pomocą którego transakcje mogą licytować o potwierdzenie.
  • Transakcja jest zatwierdzana przez właścicieli każdego wcześniejszego wyniku, który ta transakcja „wydaje”. Zgoda ta jest wyrażana za pomocą podpisu kryptograficznego treści nowej transakcji. Podpis dla wcześniejszego wyjścia można utworzyć tylko przy użyciu klucza prywatnego, który jest zgodny z jego publicznym identyfikatorem.

Obie te zasady mają kluczowe znaczenie w księdze finansowej, która jest współdzielona między stronami, które nie mają zaufania. Bez pierwszego, każdy mógłby stworzyć bitcoiny z powietrza. A bez drugiego, każdy mógłby wydać bitcoiny innych osób. Ale potrzebujemy również trzeciej reguły, która jest egzekwowana globalnie, a nie w ramach pojedynczych transakcji:

  • Każde wyjście transakcji może być wykorzystane tylko przez jedną kolejną transakcję. Zapobiega to atakowi znanemu jako podwójne wydatki w którym te same bitcoiny są wysyłane do więcej niż jednego odbiorcy.

Aby wyegzekwować tę zasadę, łańcuch bloków zawiera chronologiczny dziennik prawidłowych transakcji, które nie powodują konfliktów między sobą, a dziennik ten jest niezależnie weryfikowany przez każdy węzeł w sieci.

Model transakcyjny Bitcoin można łatwo rozszerzyć, aby reprezentował dowolne aktywa finansowe. Zamiast danych wyjściowych transakcji zawierających bitcoiny, może zawierać identyfikator i ilość aktywów. Wszystkie zasady dotyczące transakcji bitcoin nadal obowiązują, uniemożliwiając uczestnikom (a) tworzenie aktywów z powietrza, (b) wydawanie aktywów innych osób oraz (c) dwukrotne wydawanie tego samego aktywa. W przypadku aktywów innych niż kryptowaluty, staramy się nalegać, aby ilości wejściowe i wyjściowe dokładnie się równoważyły, zamiast pozwalać górnikom na zbieranie różnicy.

Jak więc w tym modelu stworzyć bezpieczną dostawę w porównaniu z transakcją płatniczą? Powiedzmy, że Alicja i Bob zgodzili się wymienić 10 funtów Alicji na 15 dolarów Boba. Dla wygody przyjmiemy, że Alicja ma już dokładnie 10 funtów na jednym wyjściu transakcji, a Bob również ma 15 dolarów. (Jeśli tak nie jest, mogą łatwo przenieść swoje fundusze, aby tak się stało).

Na początek każda ze stron tworzy transakcję z dwoma wejściami i dwoma wyjściami. Dwa wejścia wydają poprzednie wyjścia zawierające odpowiednio 10 £ Alicji i 15 $ Boba. Jeśli chodzi o dane wyjściowe, pierwsza zawiera identyfikator Alicji i 15 USD, a druga trafia do Boba zawierającego 10 GBP. Ponieważ ilości wejściowe i wyjściowe w obu walutach są bilansowane, nasza transakcja spełnia pierwszy warunek powyżej. Aby wykonać drugą, zarówno Alicja, jak i Bob muszą teraz podpisać transakcję, ponieważ wydaje wcześniejsze wyjścia należące do każdego z nich.

Transakcję można teraz sfinalizować, umieszczając ją w łańcuchu bloków, ale nadal musimy rozważyć problem podwójnych wydatków. A co by było, gdyby Alice dokonała sprzecznej transakcji, wymieniając te same 10 funtów z innym kontrahentem, który zaproponował jej lepszą ofertę? Tutaj wchodzi w grę trzecia zasada, w której łańcuch bloków zapewnia, że ​​każde wyjście może zostać wydane tylko raz. Jeśli konkurencyjna transakcja zostanie przesłana po tym, jak wymiana Alice z Bobem znajdzie się na łańcuchu blokowym, po prostu nie zostanie potwierdzona. A jeśli konkurencyjna transakcja została potwierdzona jako pierwsza, wymiana Alicji z Bobem zakończy się niepowodzeniem. Tak czy inaczej, blockchain zapewnia dostawę zamiast płatności za wymianę Alice i Boba, a także każdą inną. Jeśli Bob nie dostanie 10 funtów od Alicji, Alice nie dostanie jego 15 dolarów.

Siła transakcji częściowych

Tak więc łańcuchy bloków dają nam możliwość spotkania się dwóch stron, zbudowania i podpisania transakcji wymiany oraz zapewnienia, że ​​jako całość zakończy się ona sukcesem lub porażką. Umożliwia to dostawę zamiast płatności we wspólnej księdze, bez konieczności korzystania z zaufanego pośrednika do zarządzania procesem. Górnicy, którzy potwierdzają transakcje w blokach, nadal mają pewną moc, ale to znacznie mniej niż tradycyjny pośrednik. Najgorsze, co mogą zrobić, to odmówić potwierdzenia konkretnej transakcji w całości, i to nie narusza DvP. Co więcej, jeśli wydobycie zostanie podzielone między strony faktycznie tworzące transakcje, to ryzyko całkowicie znika, ponieważ każdy będzie miał szansę potwierdzić własne.

Na razie w porządku. Ale łańcuchy blokowe w stylu bitcoin mają więcej sztuczek w rękawie. Przypomnij sobie, że transakcja musi być podpisana przez właściciela każdego wcześniejszego wyniku, który ta transakcja wydaje. Domyślnie ten podpis blokuje pełną listę danych wejściowych i wyjściowych w ramach transakcji. Kryptografia gwarantuje, że najmniejsza modyfikacja danych wejściowych lub wyjściowych spowoduje unieważnienie podpisu. Postępując zgodnie z powyższym przykładem, jeśli Bob zostałby zastąpiony przez Carol po podpisaniu transakcji przez Alice, transakcja zakończyłaby się całkowitym niepowodzeniem.

Ale co, jeśli Alice nie obchodzi, z kim dokonuje wymiany? Do większości celów dlaczego miałaby się tym przejmować? O ile Alicja nie jest zdecydowana pracować konkretnie z Bobem, tylko dwie części transakcji naprawdę jej dotyczą. Po pierwsze, fakt, że wydana zostanie jej 10 funtów produkcji, a nie inna ilość lub aktywa. Po drugie, otrzyma w zamian 15 dolarów nowego produktu. Dopóki wszystkie pieniądze w systemie są czyste, Alice nie ma nic przeciwko temu, skąd pochodzi te 15 dolarów ani co jeszcze może się stać, aby ułatwić jej wymianę.

Być może jedna impreza przyjdzie z 15 $ i dokona prostej zamiany na 10 £ Alice. Ale może Bob i Carol chcą wymienić tylko 7.50 dolara za sztukę. W takim przypadku dodaliby dwa wejścia do transakcji, wraz z dwoma wyjściami zbierającymi po 5 funtów. A może Carol faktycznie chce wymienić 15 dolarów na 950 rubli, podczas gdy Sasha w Moskwie ma 950 rubli i szuka 10 funtów. W takim przypadku może nastąpić wymiana 3-stronna, w której każda ze stron nadal dba tylko o swój własny element układanki. Transakcja, którą rozpoczęła Alicja, może zostać zakończona na nieskończoną liczbę różnych sposobów. Ale z punktu widzenia Alice, wszystko to osiąga ten sam cel, dając jej 15 dolarów w zamian za 10 funtów, i wszystkie sprawiają, że jest równie szczęśliwa.

Scenariusze wymiany

W jaki sposób blockchain to ułatwia? Poprzez częściowe transakcje i częściowe podpisy. Alice rozpoczyna transakcję z jednym wejściem (jej 10 funtów) i jednym wyjściem (15 dolarów dla niej). Blokuje te części transakcji za pomocą podpisu cyfrowego, który stwierdza, że ​​można dodać dowolną liczbę innych wejść lub wyjść. Wręcza tę częściową transakcję Bobowi i mówi „zobacz, co możesz zrobić”. Może wręcza go również Carol i dowolnej liczbie innych potencjalnych kontrahentów lub twórców syndykatów. Każdy z nich może dodawać własne pary wejść i wyjść, albo w celu zbilansowania wymiany, albo w celu stworzenia większej częściowej transakcji, którą można przekazać ponownie. Bez względu na to, co ktoś zrobi, transakcja może zostać zrealizowana (tj. Rozliczona poprzez potwierdzenie w łańcuchu bloków), gdy aktywa wejściowe i wyjściowe zostaną zbilansowane.

Transakcja blockchain to tylko fragment danych cyfrowych, więc te częściowe transakcje można przesyłać pocztą elektroniczną lub innym medium komunikacyjnym. Można je nawet opublikować publicznie, ponieważ wiedzą o tym uczestnicy potencjalnej transakcji zajmie się nimi blockchain. Podpis Alicji gwarantuje, że wyda tylko 10 funtów, jeśli ktoś da jej 15 dolarów w zamian.

Wreszcie, jeśli Alicja zdecyduje się wyłączyć ofertę, jedyne, co musi zrobić, to wydać te same 10 GBP na inną transakcję, najczęściej wysyłając ją z powrotem do siebie. Ponieważ blockchain nie pozwoli na dwukrotne wydanie tego samego wyniku, czyni to jej istniejącą częściową transakcję bezwartościową. Wszyscy pozostali uczestnicy blockchain zobaczą to i przestaną tracić czas na próby dokończenia wymiany.

Od DvP po inteligentne kontrakty

Tak jak ja argumentował wcześniej, blockchain w stylu bitcoin może być postrzegany jako sposób zarządzania synchronizacją i bezpieczeństwem we współdzielonej relacyjnej bazie danych. Zarówno transakcje bitcoin, jak i transakcje w bazie danych są traktowane atomowo, co oznacza, że ​​jako całość kończą się sukcesem lub porażką. Kluczem do analogii jest równoważność między wynikiem transakcji w łańcuchu bloków a wierszem w bazie danych. Transakcja blockchain, która zużywa niektóre dane wyjściowe i tworzy inne, jest taka sama, jak transakcja w bazie danych, która usuwa niektóre wiersze, a zamiast tego tworzy inne. (Operacja bazy danych, która modyfikuje istniejący wiersz, jest równoważna usunięciu tego wiersza i utworzeniu w jego miejsce nowego zaktualizowanego wiersza. Ta równoważność leży u podstaw popularnego MVCC metoda kontroli współbieżności w bazach danych, z których łańcuchy bloków w stylu bitcoin mogą być postrzegane jako forma rozproszona).

Wyobraźmy sobie więc, że nasze dane finansowe są przechowywane w bazie danych, w której każdy wiersz zawiera trzy informacje: identyfikator właściciela, identyfikator aktywów i ilość aktywów. Blockchain umożliwia bezpieczne współdzielenie tej księgi między jej uczestnikami, nawet jeśli w ogóle nie ufają sobie nawzajem. W języku baz danych zapewnia, że:

  • Ilości aktywów w wierszach usuniętych w wyniku transakcji odpowiadają ilościom w utworzonych przez nią wierszach.
  • Dla każdego wiersza usuniętego (lub zmodyfikowanego) w wyniku transakcji transakcja musi zostać podpisana przez właściciela tego wiersza.
  • Jeśli wiersz bazy danych został usunięty przez jedną transakcję, zapobiega to ponownemu usunięciu go przez inną transakcję.

Spójrzmy na pierwszą z tych reguł, a mianowicie, że transakcje muszą chronić ilości aktywów. Możemy rozszerzyć to na ogólne pojęcie „ograniczenia transakcji”. Ograniczenie transakcji ma postać czarnego pola, które zawiera dwa zestawy wierszy dla każdej transakcji: (a) wiersze usunięte przez transakcję, (b) wiersze, które tworzy. Zadaniem czarnej skrzynki jest przyjrzenie się tym dwóm zestawom i udzielenie odpowiedzi „tak” lub „nie”, czy transakcja jest prawidłowa. W naszym konkretnym przypadku odpowiedź będzie twierdząca tylko wtedy, gdy łączne ilości aktywów w obu zestawach będą dokładnie zgodne.

Gdy już będziemy mogli zastosować ograniczenia transakcji, możemy je rozszerzyć tak, aby zawierały dowolny zestaw reguł. Niektórymi przykładami mogą być: „jednostka tego aktywa może zostać utworzona tylko wtedy, gdy te trzy inne aktywa są jednocześnie zablokowane na rachunku escrow” lub „ten składnik aktywów może zostać przeniesiony tylko wtedy, gdy odpowiedni wiersz zgłasza niewystarczający deszcz”. Z punktu widzenia rozproszonej architektury łańcucha bloków logika wewnątrz pudełka nie ma znaczenia, o ile może dać nam ostateczną i spójną ocenę każdej widzianej transakcji.

W rezultacie ograniczenia transakcji mogą służyć jako ogólna metoda ograniczania transformacji danych, które mogą wykonywać uczestnicy łańcucha bloków. Takie podejście do „inteligentnych kontraktów” stanowi alternatywę dla procedury składowane stosowane w Ethereum i jego Eris pochodna. W przyszłym artykule zagłębimy się w zalety i wady tych dwóch paradygmatów, jeśli chodzi o prostotę, skalowalność i współbieżność.

Możesz śledź mnie na Twitterze tutaj. Zobacz też: Zakończenie debaty Bitcoin vs Blockchain.

Dodatek techniczny

Aby zbudować częściowe transakcje DvP, użyj pliku typ podpisu of SINGLE|ANYONECANPAY. Jeśli używasz MultiChainThe preparelockunspent, createrawexchange i appendrawexchange Wywołania API zadbać o szczegóły za Ciebie. Zobacz Pierwsze kroki na stronie, aby zapoznać się z prostym przykładem ich wykorzystania.

Prosimy o umieszczanie komentarzy na LinkedIn.

Źródło: https://www.multichain.com/blog/2015/09/delivery-versus-payment-blockchain/

Znak czasu:

Więcej z Multichain