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

More Related Content

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

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

Editor's Notes

  1. Решил банк сделать себе интернет банкинг. У других уже все есть, а мы тут как в каменном веке, эти очереди в кассы с квитанциями, бабушки платят за коммунальные... С чего начать? Вокруг все эти хакеры, только и сделай сайт какой-то сразу накинутся. Нужно обеспечить информационную безопасность. А что это такое? Стоимость = риск х вероятный ущерб
  2. Возьмем тот же обычный компьютер в банке: Нельзя полазить по сайтам – только пара корпоративных ресурсов Никакого тебе скайпа и или аськи USB порты не работают, даже флешку с музыкой не подключить. И так далее... Здесь как раз вся нагрузка падает на тестировщика – возможно ли выполнять все необходимые функции пользователя при требуемых настройках безопасности