TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
CryptoBotan

27 Nov 2019, 13:50

Открыть в Telegram Поделиться Пожаловаться

Репост из: Crypto Lemon
Часто слышу что смарт контракты есть там только в Эфире, Еосе и прочих навороченных блокчейнах. Это немного не так, ведь сам Сатоши предвидел возможность появления "смарт контрактов", правда из-за ограничений изобретенного им языка Script возможности биткоиновых смарт контрактов были (и по сути есть) немного ограниченными. Но самые простые смарт контракты конечно же можно делать (и намного проще чем в Эфире) и в биткоине.

К примеру, нам нужно сделать отложенный платеж, или же завещать свои средства своему сыну или если нет сына - коту. Здесь нам пригодится контракт-завещание. в чем его суть? Создается отложенная транзакция с nLocktime скриптом, которая позволяет тратить средства только после указанного блока или же после указанного времени. При создании "сырой" транзакции у нас есть специальное поле "locktime", (метод LOCKTIMEVERIFY) где мы можем указать некое число. Если число < 500 000 000, то условие будет восприниматься как количество блоков которое должно пройти, прежде чем транзакцию можно тратить. Если > , тогда оно воспринимается как время в UTX после которого можно тратить.

Минус этого метода в том, что транзакция с locktime-ом не сохраняется в мемпуле нод, и ее надо забросить в сеть собственно после истечения срока (иначе не выйдет). Плюсы же в следующем: вы можете потратить средства если передумаете (транзакции ведь нет в мемпуле, читай нет в сети) а также, у вас не могут это украсть и вам не нужно переживать из-за приваткеев и прочего. Создали транзакцию, подписали, скинули хэш коту и он закинет когда придет время.
Выглядеть в Bitcoin Core это будет примерно так:
createrawtransaction [{"txid":"id","vout":n},...] [{"address":amount},{"data":"hex"},...] ( locktime = число )

Не сложно, но вы скажете, мол "Да какой это нахрен смарт контракт???". Хорошо, давайте тогда немного усложним:

Как вам вариант CLTV или же CHECKLOCKTIMEVERIFY ? По сути тоже самое, только с интересным отличием: откладывается не вся транзакция, а только указанные UTXO (непотраченные входы) на указанное время. Тоесть, вы можете отправить 10 биткоинов на три разных адреса, первый из которых сможет потратить их например через 2 года, второй через 1000 блоков, а третий вообще никогда или сразу же. Притом, такая транзакция может быть отправлена в мемпул, и будет подтверждена, просто потратить деньги можно будет только через указанное время/количество блоков. Уже интереснее, не правда ли?

Но самое интересное это конечно же CHECKSEQUENCEVERIFY или CSV. Метод, во многом идентичный CLTV но более универсальный: таймер возможности траты выхода включается с момента смайненого инпута. Тоесть, в CLTV задается некое абсолютное время, после которого можно тратить средства, а в CSV - некое время после попадания транзакции в блок. В чем сила? Да в том, что есть возможность создавать отложенные действия.
Например, создается транзакция на два выхода, для одного нужен ключ кота, для другого ключ сына. Если же выходы не тратятся в течении 2 лет, то открывется альтернативное условие, где для траты нужен уже ваш ключ (не захотели себе биточки, ну и ладно, оставлю себе). Согласитесь, это уже полноценный смарт контракт! Простенький, да, но сам факт то! Единственное что ограничивает его размер - это 520 байт места (больше нельзя в одной транзакции P2SH впихивать)

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

1.1k 3 0
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot