Доставка против оплаты на блокчейне PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Доставка против оплаты на блокчейне

Как блокчейны могут решить самую старую проблему в книге

Торговля между людьми так же стара, как само человечество. Это началось в тот момент, когда пещерный человек Огг сказал пещерному человеку Уггу: «Я дам тебе камень, ты дай мне ягоды». Но торговля несет в себе фундаментальную проблему: она требует доверять, Что мешает Оггу использовать камень, чтобы ударить Угга, а затем схватить оба камня и ягоды, прежде чем убегать? Как мы переводим устное соглашение об обмене в механизм принуждения, который гарантирует, что обе стороны сдержат свое слово?

Возьмем современный пример. Несколько лет назад я продал машину на вторичном рынке. Я нашел покупателя через Интернет, мы встретились лично, он проверил машину, и мы договорились о цене. Поэтому он пошел в свой банк, чтобы получить кассовый чек, который фактически является наличными в более компактной форме. Мы вместе пошли в почтовое отделение, где я могу подписать и отправить официальную правительственную форму, которая передает законное право собственности на машину.

Итак, мы стоим у окна почты и попадаем в неловкий тупик. Чек все еще в его кармане, а я держу подписанный бланк. Мы познакомились несколько часов назад, и у нас нет причин доверять друг другу. Могу ли я сначала подать форму, а затем надеяться, что он даст мне чек, а не убегу? Или он вручает мне чек, а затем надеется, что я дам ему форму? В любом случае кто-то подвергает себя риску предательства.

И тут меня осенило, что надо перестать волноваться и просто сдать анкету. Зачем? Потому что потом может произойти одно из двух. Либо покупатель передает мне чек, и в этом случае все довольны и обмен завершен. Но что, если он вместо этого убежит? В этом случае клерк почтового отделения увидит и разорвет бланк, который я ему только что дал. Бинго, у нас безопасный обмен.

Вы видели, что там произошло? Наша дилемма была решена с помощью посредника, в данном случае служащего почтового отделения. Клерк гарантирует, что будет выполнена справедливая транзакция или вообще не будет транзакции. И не любой посредник может предоставить эту услугу. Это должен быть кто-то, кому доверяют обе стороны. В случае сотрудника государственной почты это связано с нашим доверием к самому правительству. Если бы сотрудники почтовых отделений могли быть подкуплены, я или покупатель могли бы спроектировать ситуацию, когда у нас будут как наличные деньги, так и машина. Действительно, в многие страныПодобная коррупция может привести к огромной потере процветания.

Пещерные люди и автомобили - это одно, но давайте сместим наше внимание на финансовый мир, в котором торговля играет важную роль. Центральная роль. Конечно, банки не платят своим сотрудникам за то, что они сбегают с чужими акциями. Но безопасный обмен финансовыми активами остается важной проблемой, потому что есть менее забавные способы, которыми участники сделки могут не выполнить свое обещание. Например, одна из сторон может стать неплатежеспособной, или внезапное изменение рыночных условий может помешать ей получить актив. Они могут страдать от канцелярских ошибок или от последствий бухгалтерское мошенничество в другом контрагенте.

В результате этих «расчетные риски», Большинство финансовых операций совершаются с использованием Доставка против оплаты (DvP). Это просто причудливый термин для описанного выше почтового процесса. DvP гарантирует, что, если одна сторона транзакции не доставит обещанного, другая сторона сможет сохранить актив, предложенный взамен.

И как в мире финансов реализуется доставка и оплата? Вы догадались, через доверенных посредников. Это могут быть другие банки, расчетные палаты или центральные депозитарии ценных бумаг. Поскольку большая часть сегодняшних торгов происходит в цифровом формате, это не вопрос управления передачей физических сертификатов или наличных денег. Скорее, DvP достигается за счет одновременного обновления нескольких записей в своей базе данных посредником и / или передачи инструкций в другие учреждения.

Доставка против оплаты блокчейном

Разговор о базах данных подводит нас к теме блокчейнов. Блокчейн позволяет совместно использовать регистр или базу данных и синхронизировать их между несколькими сторонами. Однако, в отличие от обычных баз данных, базы данных блокчейнов могут безопасно и напрямую модифицироваться несколькими пользователями, даже если они находятся в жесткой конкуренции друг с другом. Если вы работаете в сфере корпоративных информационных технологий, вы можете подумать о последствиях этого предложения.

Чтобы понять, как доставка по сравнению с оплатой работает в блокчейне, нам нужно начать с понимания транзакционной модели биткойна. Здесь следует отметить, что другие конструкции блокчейнов используют другую модель транзакций, и мы поговорим об этих различиях позже.

Биткойн-транзакция имеет набор входов и выходов. Каждый вход связан с одним выходом предыдущей транзакции, при этом весь биткойн из предыдущего выхода поступает внутрь. Биткойн на входах транзакции затем перераспределяется по ее выходам в соответствии с записанными внутри количествами. Кроме того, выходные данные каждой транзакции содержат открытый идентификатор ее нового владельца, для которого владелец имеет соответствующий закрытый ключ. Биткойн-транзакция действительна, только если:

  • Общее количество биткойнов на входах транзакции больше или равно количеству, записанному на ее выходах. Любая разница собирается в качестве комиссии «майнером», который подтверждает транзакцию в блоке, создавая рыночный механизм, с помощью которого транзакции могут предлагать цену для подтверждения.
  • Транзакция утверждается владельцами каждого предыдущего выхода, который эта транзакция «тратит». Это одобрение выражается посредством криптографической подписи содержимого новой транзакции. Подпись для предыдущего вывода может быть создана только с использованием закрытого ключа, который соответствует его общедоступному идентификатору.

Оба эти правила имеют решающее значение в финансовой книге, которая используется недоверчивыми сторонами. Без первой любой мог бы создать биткойны из воздуха. А без второго каждый мог тратить чужие биткойны. Но нам также нужно третье правило, которое применяется глобально, а не в рамках отдельных транзакций:

  • Каждый вывод транзакции может использоваться только одной последующей транзакцией. Это предотвращает атаку, известную как двойные расходы в котором одни и те же биткойны отправляются более чем одному получателю.

Для обеспечения соблюдения этого правила блокчейн содержит хронологический журнал действительных транзакций, которые не конфликтуют друг с другом, и этот журнал независимо проверяется каждым узлом в сети.

Модель транзакций биткойнов может быть легко расширена для представления любого финансового актива. Вместо вывода транзакции, содержащего биткойны, он может содержать идентификатор и количество актива. Все правила, регулирующие транзакции с биткойнами, по-прежнему применяются, не позволяя участникам (а) создавать активы из воздуха, (б) тратить активы других людей и (в) тратить один и тот же актив дважды. Для активов, не связанных с криптовалютой, мы склонны настаивать на точном балансе входных и выходных количеств, а не позволять майнерам собирать разницу.

Итак, как с помощью этой модели создать безопасную транзакцию доставки по сравнению с платежной? Допустим, Алиса и Боб договорились обменять 10 фунтов стерлингов Алисы на 15 долларов Боба. Для удобства предположим, что у Алисы уже есть ровно 10 фунтов стерлингов, аккуратно размещенных в одном выводе транзакции, а у Боба также есть 15 долларов. (Если это не так, они могут легко перераспределить свои средства, чтобы это сделать.)

Для начала любая из сторон создает транзакцию с двумя входами и двумя выходами. Два входа тратят предыдущие выходы, содержащие 10 долларов Алисы и 15 долларов Боба соответственно. Что касается выходных данных, первый содержит идентификатор Алисы и 15 долларов, а второй идет Бобу, содержащий 10 фунтов стерлингов. Поскольку объемы ввода и вывода в обеих валютах сбалансированы, наша транзакция выполняет первое условие выше. Для выполнения второго и Алиса, и Боб должны теперь подписать транзакцию, поскольку она тратит предыдущие выходы, принадлежащие каждому из них.

Теперь транзакцию можно завершить, включив ее в блокчейн, но нам все еще нужно рассмотреть проблему двойных расходов. Что, если бы Алиса создала конфликтную транзакцию, обменяв те же 10 фунтов стерлингов с другим контрагентом, который предложил ей более выгодную сделку? Здесь вступает в игру третье правило, согласно которому блокчейн гарантирует, что каждый вывод может быть потрачен только один раз. Если конкурирующая транзакция передается после того, как обмен Алисы с Бобом находится в блокчейне, то она просто не будет подтверждена. И если конкурирующая транзакция была подтверждена первой, обмен Алисы с Бобом не удастся. В любом случае блокчейн обеспечивает доставку вместо оплаты для обмена Алисы и Боба, а также для любого другого. Если Боб не получит 10 фунтов Алисы, то Алиса не получит свои 15 долларов.

Сила частичных транзакций

Таким образом, блокчейны позволяют двум сторонам собраться вместе, создать и подписать обменную транзакцию, а также обеспечить ее успех или неудачу в целом. Это позволяет использовать доставку по сравнению с оплатой в общей бухгалтерской книге без необходимости в доверенном посреднике для управления процессом. Майнеры, которые подтверждают транзакции блоками, все еще имеют некоторую власть, но она намного меньше, чем у традиционного посредника. Худшее, что они могут сделать, - это отказать в подтверждении конкретной транзакции. в целоми это не нарушает DvP. Кроме того, если майнинг распределяется между сторонами, фактически создавшими транзакции, этот риск полностью исчезает, поскольку каждый получит возможность подтвердить свои собственные.

Все идет нормально. Но у блокчейнов в биткойн-стиле есть больше хитростей. Напомним, что транзакция должна быть подписана владельцем каждого предыдущего результата, который эта транзакция проводит. По умолчанию эта подпись блокирует полный список входов и выходов в транзакции. Криптография гарантирует, что малейшая модификация ввода или вывода сделает подпись недействительной. Чтобы следовать приведенному выше примеру, если Боб заменил Кэрол после того, как Алиса подписала транзакцию, транзакция полностью провалилась бы.

Но что, если Алисе все равно, с кем она осуществляет обмен? Для большинства целей почему она должна заботиться? Если Алиса не настроена работать конкретно с Бобом, ее действительно волнуют только две части транзакции. Во-первых, тот факт, что ее продукция в размере 10 фунтов стерлингов будет потрачена, а не другое количество или актив. Во-вторых, она получает взамен 15 долларов новой продукции. Пока все деньги в системе чистые, Алиса не особо заботится о том, откуда взялись эти 15 долларов или что еще может случиться, чтобы облегчить ее обмен.

Возможно, одна партия придет с 15 долларами и произведет прямой обмен на 10 фунтов Алисы. Но, возможно, Боб и Кэрол хотят обменять только 7.50 доллара каждый. В этом случае они добавили бы к транзакции два входа, а также два выхода, собрав 5 фунтов стерлингов каждый. А может, Кэрол действительно хочет обменять 15 долларов на 950 рублей, а у Саши в Москве 950 рублей и он ищет 10 фунтов. В этом случае может иметь место трехсторонний обмен, при котором каждая сторона по-прежнему заботится только о своей части головоломки. Транзакция, которую запустила Алиса, может быть завершена бесконечным количеством различных способов. Но с точки зрения Алисы, все они достигают одной и той же цели - дать ей 3 долларов в обмен на 15 фунтов стерлингов, и все они делают ее одинаково счастливой.

Обменный-сценарий

Как блокчейн способствует этому? Через частичные транзакции и частичные подписи. Алиса начинает транзакцию с одного входа (ее 10 фунтов стерлингов) и одного выхода (ей 15 долларов). Она блокирует эти части транзакции с помощью цифровой подписи, в которой указано, что можно добавить любое количество других входов или выходов. Она передает эту частичную транзакцию Бобу и говорит: «Посмотри, что ты можешь сделать». Может быть, она также передаст его Кэрол и любому количеству других потенциальных контрагентов или создателей синдикатов. Каждый из них может добавлять свои собственные пары входов и выходов, чтобы сбалансировать обмен или создать более крупную частичную транзакцию, которую можно передать снова. Независимо от того, что кто-либо делает, транзакция может быть выполнена (т.е. рассчитана посредством подтверждения в блокчейне) только после того, как входные и выходные активы будут сбалансированы.

Транзакция блокчейна - это просто кусок цифровых данных, поэтому эти частичные транзакции могут быть отправлены по электронной почте или любой другой среде связи. Они даже могут быть опубликованы публично, потому что участники потенциальной транзакции знают, что блокчейн позаботится о них. Подпись Алисы гарантирует, что она потратит только 10 фунтов, если кто-то даст ей 15 долларов взамен.

Наконец, если Алиса решает отключить предложение, все, что ей нужно сделать, это потратить те же 10 фунтов стерлингов на другую транзакцию, проще всего, отправив их обратно себе. Поскольку блокчейн не позволяет использовать один и тот же результат дважды, это делает существующую частичную транзакцию бесполезной. Все остальные участники блокчейна увидят это и перестанут тратить свое время, пытаясь завершить обмен.

От DvP до умных контрактов

Поскольку у меня есть утверждал ранееблокчейн в биткойн-стиле можно рассматривать как способ управления синхронизацией и безопасностью в общей реляционной базе данных. И биткойн-транзакции, и транзакции с базой данных обрабатываются атомарно, что означает, что они преуспевают или терпят неудачу в целом. Ключом к аналогии является эквивалентность между выводом транзакции в блокчейне и строкой в ​​базе данных. Транзакция блокчейна, которая тратит некоторые выходные данные и создает некоторые другие, аналогична транзакции базы данных, которая удаляет некоторые строки и вместо этого создает другие. (Операция базы данных, которая изменяет существующую строку, эквивалентна удалению этой строки и созданию новой обновленной на ее месте. Эта эквивалентность лежит в основе популярной МВКК метод управления параллелизмом в базах данных, из которых блокчейны в биткойн-стиле можно рассматривать как распределенную форму.)

Итак, давайте представим, что наши финансовые данные хранятся в базе данных, в которой каждая строка содержит три части информации: идентификатор ее владельца, идентификатор актива и количество актива. Блокчейн позволяет безопасно делиться этим реестром между его участниками, даже если они вообще не доверяют друг другу. На языке баз данных он гарантирует, что:

  • Количества активов в строках, удаленных транзакцией, совпадают с количествами в строках, которые она создает.
  • Для каждой строки, удаленной (или измененной) транзакцией, транзакция должна быть подписана владельцем этой строки.
  • Если строка базы данных была удалена одной транзакцией, это предотвращает ее повторное удаление другой транзакцией.

Давайте посмотрим на первое из этих правил, а именно на то, что транзакции должны сохранять количество активов. Мы можем расширить это понятие до общего понятия «ограничение транзакции». Ограничение транзакции принимает форму черного ящика, который видит два набора строк для каждой транзакции: (а) строки, удаленные транзакцией, (б) строки, которые она создает. Работа черного ящика - посмотреть на эти два набора и ответить «да» или «нет» относительно того, действительна ли транзакция. В нашем конкретном случае он ответит «да» только в том случае, если общие количества активов в обоих наборах точно совпадают.

Как только у нас появится возможность применять ограничения транзакций, они могут быть расширены, чтобы содержать любой набор правил. Некоторые примеры могут быть такими: «единица этого актива может быть создана только в том случае, если эти три других актива одновременно заблокированы на условном депонировании» или «этот актив может быть передан только при наличии соответствующей строки, сообщающей о недостаточном количестве дождя». С точки зрения распределенной архитектуры блокчейна, логика внутри коробки не имеет значения, если она может дать нам определенную и последовательную оценку каждой транзакции, которую он видит.

В результате ограничения транзакций могут служить общим методом ограничения преобразований данных, которые могут выполнять участники блокчейна. Такой подход к «умным контрактам» предоставляет альтернативу хранимые процедуры используется в Эфириум и ее Эрис производная. В следующей части мы более подробно рассмотрим преимущества и недостатки этих двух парадигм с точки зрения простоты, масштабируемости и параллелизма.

Вы можете следуй за мной в твиттере здесь, Смотрите также: Завершение дебатов о биткойнах и блокчейнах.

Техническое приложение

Чтобы создать частичные транзакции DvP, используйте тип подписи of SINGLE|ANYONECANPAY. Если вы используете многоцепочечного, preparelockunspent, createrawexchange и appendrawexchange Вызовы API позаботиться о деталях для вас. Увидеть Первые шаги страница для простого примера того, как они могут быть использованы.

Пожалуйста, оставьте любые комментарии на LinkedIn.

Источник: https://www.multichain.com/blog/2015/09/delivery-versus-pay-blockchain/

Отметка времени:

Больше от многоцепочечного