Введение в смарт контракты. Лекция 8

2,196 views

Published on

Презентации из курса лекций "Основы криптовалют", который читается для студентов ХНУРЕ на кафедре БИТ.

Published in: Internet
  • Be the first to comment

Введение в смарт контракты. Лекция 8

  1. 1. Введение в smart-контракты Кравченко Павел Лекция 8
  2. 2. План Повторение Что такое smart-контракт? Escrow Micropayment channel CoinJoin
  3. 3. Smart-контракт Контракт – это транзакция, которая использует распределенную систему Bitcoin для исполнения финансовых договоренностей. Контракты часто используются для минимизации зависимости от внешних агентов, таких как судебная система, что существенно сокращает риск вовлечения третьих сторон.
  4. 4. Escrow Алиса хочет купить у Боба товар онлайн, но они не доверяют друг другу. Классическим контрактом была бы 2-из-2 транзакция, при которой деньги блокируются на счету до тех пор, пока Алиса и Боб не выполнят свои обязательства. Они используют медиатора, который вмешается в случае конфликта. Теперь, если возникнет конфликт, одна из сторон обратится к медиатору и сможет получить возмещение.
  5. 5. Escrow Например, товар слегка повреждеа при пересылке. Алиса хочет полное возмещение, а Боб считает, что 10% будет достаточно. Они высылают документы Еве, и решает что 40% будет достаточно. Тогда Ева создает транзакцию, которая платит 40% Алисе и 60% Бобу и дает ее им на подпись. Ева тем не менее не может украсть деньги, т.к. ни Алиса ни Боб не подпишут такуют транзакцию. Они даже могут сменить медиатора Еву, на кого- то другого, переслав средства на новый 2-из-3 адрес.
  6. 6. Micropayment channel Алиса работает на Боба, делая однообразную повторяющуюся работу (например модерируя посты на форуме). Боб иногда забывает заплатить Алисе, поэтому она хочет получать платеж после каждого поста, который она проверила. Боб не согласен, т.к. он будет тратить слишком много на transaction fee (0.0001 BTC).
  7. 7. Micropayment channel Боб берет открытый ключ Алисы и создает две транзакции – первая транзакция платит 100 mBTC (предположительный обьем работы на день) на P2SH 2-из-2 output, который требует подписи Алисы и Боба. Боб не распространяет эту транзакцию, т.к. Алиса сможет держать биткоины в залоге. Теперь Боб создает вторую транзакцию, которая возвращает Бобу деньги из первой и дает Алисе ее на подпись (с 24 часовым locktime).
  8. 8. Micropayment channel Алиса проверяет locktime, подписывает и возвращает Бобу. Теперь она запрашивает первую транзакцию, и проверяет что все правильно. Она распространяет ее в сеть. Теперь биткоины в залоге и Боб не может их потратить (до истечени locktime). Теперь, когда Алиса сделала работу на 1 mBTC, она просит Боба создать новую версию refund транзакции, которая возвращает Бобу 99 mBTC и платит 1 mBTC Алисе. Вторая версия уже не имеет locktime, но Алиса не торопится ее тратить. Она работает и далее после каждого поста просит Боба о создании новой транзакции пока дело не дойдет до 100mBTC.
  9. 9. Вопросы? kravchenkopo@gmail.com ideateam_macuser ua.linkedin.com/in/pkravchenko/

×