Я узнал этот адрес, играя с блокчейном
https://blockchain.info/address/3NukJ6fYZJ5Kk8bPjycAnruZkE5Q7UW7i8
Я узнал, что это что-то под названием «scripthash». Как это работает? Чем он отличается от обычного адреса?
Я узнал об этом - https://en.bitcoin.it/wiki/BIP_0016 - но я до сих пор этого не понимаю и не понимаю сути.
Преимущество заключается в том, что отправитель может финансировать любую произвольную транзакцию, какой бы сложной она ни была, используя фиксированную длину 20-байтового хэша, достаточно короткого для сканирования с помощью QR-кода или легко копируемого и вставляемого.
Чем это отличается от того , что возможно сегодня - сканирование только адреса получателя?
редактировать: И добавив еще один вопрос - почему именно эта транзакция с указанным адресом в качестве ввода
https://blockchain.info/tx-index/3618498
включены в 94 различных блоков ? Как это вообще работает?
P2SH, как определено в BIP 16 , утверждает, что
Цель pay-to-script-hash — передать ответственность за предоставление условий для выкупа транзакции от отправителя средств к выкупателю.
Преимущество заключается в том, что отправитель может финансировать любую произвольную транзакцию, какой бы сложной она ни была, используя фиксированную длину 20-байтового хэша, достаточно короткого для сканирования с помощью QR-кода или легко копируемого и вставляемого.
Следовательно, это позволяет любой клиентской реализации финансировать транзакцию с помощью произвольного сценария, при этом клиенту не обязательно понимать его. Видите ли, у транзакций есть довольно сложные возможности заявить свои условия требования, что может поставить различные реализации клиентов перед дилеммой: каждый раз, когда появляется новый тип сценария, они должны будут реализовать его, чтобы клиент мог отправлять транзакции, которые использовать их.
Преимущество P2SH в том, что клиенту не обязательно знать, как создать такой скрипт, ему просто нужно знать, как (с учетом произвольного скрипта или даже его хэша) построить скрипт, который сначала проверяет скрипт, а затем использует этот скрипт. чтобы убедиться, что само требование работает.
Внезапно, если я предоставлю вам хэш условия запроса (скрипт), вы сможете отправить мне биткойны, фактически не зная, какие механизмы безопасности я внедрил, чтобы гарантировать, что только я могу их потратить.
В качестве дополнительного бонуса он действительно сохраняет небольшие адреса (25-байтовый скрипт), которые можно легко отобразить в QR-коде или даже напечатать вручную.
Причина, по которой транзакция 4005d6be включена в такое количество блоков, заключается в том, что все эти блоки потеряны, поэтому включенные в них майнеры поддерживали версию P2SH, но так и не получили большинства. Тот факт, что эта транзакция до сих пор не подтверждена, возможно, связан с тем, что это не настоящий сценарий P2SH.
Я помню некоторые из этих транзакций и исследовал их.
P2SH был представлен как софт-форк, то есть технически старые узлы не нужно было обновлять — софт-форк мог быть выполнен большинством майнеров по хешрейту.
OP_HASH160 [20 byte hash] OP_EQUAL
Это скрипт P2SH PubKey. До софт-форка это означало, что любой, кто знал значение хэша, [20 byte hash]
мог потратить монеты.
Небольшая заметка о софт-форках с принудительным большинством хешрейта. Обычно они невидимы для клиентов, не подозревающих о них. Причина в том, что эти софт-форки обычно только запрещают определенные вещи, а не позволяют произойти чему-то новому и неожиданному.
P2SH является одним из этих типов, потому что он добавил дополнительные правила к приведенному выше фрагменту биткойн-скрипта. Правило таково: если значение хешируется до [20 byte hash]
, то считайте, что это строка биткойн-скрипта, и проверьте ее . Все, что это делает, — это предотвращает некоторые попытки траты войти в блокчейн — они могут не пройти проверку P2SH.
С точки зрения старой версии, если что-то, что вы разрешаете, никогда больше не повторится, это не нарушение правил.
Итак, почему этот блок был «заминирован» 94 раза? Ну, отчасти потому, что Blockchain.info использует запутанную терминологию. Они получили 94 блока, включая эту транзакцию. Жаль только, что все они остались сиротами!
Это неудачный случай, когда софт-форк с большинством хешрейта действительно вызвал проблемы для кого-то. Что кто-то был в меньшинстве, использующем v0.6, и продолжал использовать более старую версию программного обеспечения (или они забыли обновить). Их программное обеспечение обработало транзакцию с действительным прообразом для [20-байтового хэша] и приняло его в мемпул. Затем он попытался добыть его.
Большинство, однако, только что приняли правило, согласно которому такие транзакции подвергаются дополнительной проверке, и посчитали эту транзакцию недействительной, поэтому они отказались строить поверх этих блоков.
Что касается адресов P2SH, в наши дни они очень полезны. Вы можете попросить кого-нибудь профинансировать сложный скрипт (например, мультиподпись или канал Lightning), используя адрес фиксированного размера!
OP_0 [32 bytes]
и майнеры поместят ваши расходы в блок без вашей подписи. (однако мы бы не софтфорчили этот скрипт, если бы кто-то его использовал) С активацией segwit выходные данные с этим скриптом больше не принимаются без проверки — применяются новые правила (теперь необходимо предоставить ДЕЙСТВИТЕЛЬНЫЙ свидетель), так что только не- нарушения правил включаются в блоки. Со старыми узлами ничего нового не происходит. Просто отсутствие чего-то, что его не заботило.OP_HASH160 [HASH] OP_EQUAL
до активации, принимали любую транзакцию без подписи. Впоследствии они не поймут, что всех подписей, которые не прошли оценку P2SH, больше нет.
Карел Билек
cdecker
альмель
cdecker
Мозг2000
cdecker
создатель