Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Александр Мазалецкий (CTO DiCoiner, член жюри с...

Александр Мазалецкий (CTO DiCoiner, член жюри сообщества блокчейн-разработчиков Санкт-Петербурга, преподаватель ИТМО). Рецепты мультиподписи: заключаем договоры на блокчейне

Доклад на шестом, предновогоднем, митапе сообщества блокчейн-разработчи­ков Санкт-Петербурга
#spblockchain #spb #blockchain #meetup

Avatar for Dmitri Plakhov

Dmitri Plakhov

December 25, 2017
Tweet

More Decks by Dmitri Plakhov

Other Decks in Programming

Transcript

  1. Рецепты мультиподписи: заключаем договоры на блокчейне Александр Мазалецкий, CTO Dicoiner,

    inc, член жюри сообщества «Сообщество блокчейн разработчиков Санкт-Петербурга»
  2. М е н я с п р о с и

    л и о д н а ж д ы : Зачем мне нужен биткоин? Я могу покупать и продавать все, что хочу, с нормальными деньгами
  3. Как решается проблема? – Биткоины - Централизованное обслуживание? - Отказ

    от контроля над моими монетами? - Проблемы безопасности? - Не доступность по ночам? - -> ОЖИДАЕМАЯ ПРОБЛЕМА ПЕРЕД!!
  4. Что, если .. Служба существует там, где вы - НЕ

    отказываясь от контроля над своими монетами НЕ разрешая даже администраторам получать доступ к вашим монетам НЕВОЗМОЖНО, что хакеры могут украсть монеты, даже если сервер взломан -Не нужно доверять другой стороне, так как все еще существует условное депонирование? ДАЖЕ, когда сайт закрыт?
  5. Мультиподпись Часть1: Создание адреса мультиподписи -Берем два или более биткоин

    адреса -Комбинируем их используя addmultisigaddress JSON-RPC команду -Как результат, получаем Bitcoin адреса, начинающийся с „3”. -Итоговый Bitcoin address полностью функциональный и может принимать монеты -Можно создать различные комбинации M из N адресов. Это значит, что то количество приватных ключей, которое необходимо, чтобы разблокировать монеты.
  6. Мультиподпись Part 2: Тратим монеты с адреса с мультиподписью -Создаем

    транзакцию createrawtransaction JSON-RPC команды -Подписываем транзакцию одним из приватных ключей, используя signrawtransaction команду -Обеспечивая транзакцию правильной информацией о публичном ключе и сценарии использования -Передаем данные другой стороне, которая повторит тебе самые действия -И наконец, передаете транзакцию в сеть (используя в sendrawtransaction или другие функции)