Кто-нибудь может объяснить, как этот человек взломал биткойн?

Я пытаюсь заполнить несколько пробелов в своем понимании того, как произошла эта транзакция!

Все началось с этой статьи

Короче говоря, какой-то линчеватель/майнер смог собрать все BCH, находящиеся на адресах segwit (а именно те, для которых открытые ключи были раскрыты владельцами, тратящими BTC с тех же адресов.

Смотрите эту транзакцию, которая была создана, майнер Bitcoin Cash Block Explorer

Пошаговая разбивка

  1. Майнер извлекает открытый ключ этого адреса 3P9dyU9ga3aJorHAUqKBFCX2NdyuHEVgx1 (это адрес P2SH P2WPKH, см. этот обозреватель блоков биткойнов )

    Вопрос: что это за открытый ключ? Ты видишь какие-нибудь ключи? («3» — это адрес с мультиподписью и требует 3 адреса, поэтому должно быть 3 открытых ключа, верно?)

  2. В статье не объяснялось, как и какую необработанную транзакцию он создал, используя только открытые ключи.

  3. Это самая неприятная часть. В статье утверждается, что майнер создал узел segwit и майнил поверх него.

    Как это вообще возможно? (У Bcash не активирован segwit. Однако, даже если он майнил, используя свой узел segwit, его узел не позволит ему создать действительную транзакцию, потому что segwit требует свидетеля или подписи с закрытым ключом открытого ключа с адресом 3P9dyU9ga3aJorHAUqKBFCX2NdyuHEVgx1.)


Однако в этой статье утверждается

  1. Майнер только что создал scriptsig (в статье не объяснялось, что означает «применить определенный хэш»).

  2. Теперь это легко, майнеру просто нужно назначить выход BCH (адрес, начинающийся с 1)

  3. становится еще глупее. В статье говорится, что после совершения необработанной транзакции он добыл ее ..... без трансляции. Как это работает?

    3.1 Если вы это не транслируете, то какой в ​​этом смысл? Как эта транзакция пройдет на новый адрес/кошелек, созданный майнером (в данном случае 1C4TafndKYFoGkeoHfQAWkZzEYLum31txf)?

    3.2 Если майнер майнит свой собственный блок, а затем не транслирует его, не станет ли он осиротевшим? и так, что здесь происходит?

Это хороший вопрос (хотя было бы легче читать предложения с заглавными буквами, правильное написание и меньше знаков ?). Однако последний абзац не по теме — этот сайт не место для найма людей для ваших проектов.
я согласен, однако я хочу научиться ... segwit так сбивает с толку, пытаясь искать 25 дней ... уже было открыто 46 вкладок и 4 окна в моем браузере

Ответы (2)

Вопрос: что это за открытый ключ? ты видишь ключи? («3» — это адрес с мультиподписью и требует 3 адреса? Значит, должно быть 3 открытых ключа, верно?)

Нет. Адрес, начинающийся с a 3, является адресом P2SH. Это не означает, что это адрес с мультиподписью или что для подписи транзакции требуется любое количество ключей. Скорее это просто означает, что есть какой-то сценарий (это может быть любой сценарий, не обязательно сценарий с несколькими подписями), который необходимо включить во входные данные, которые расходуют выходные данные P2SH. Этот сценарий будет диктовать другие элементы ввода.

Для вложенного вывода Segwit P2SH (P2SH-P2WPKH и P2SH-P2WSH) сценарий, на который ссылается адрес (известный как сценарий погашения), имеет форму OP_0 <20 byte hash>или OP_0 <32 byte hash>. Когда узел segwit видит этот сценарий в выходных данных или как сценарий выкупа, он знает, что ему следует просмотреть вновь определенные свидетели транзакции, чтобы получить остальные данные, необходимые для проверки транзакции.

Однако для узла без SegWit они пометят транзакцию как действительную (но не стандартную), потому что для узла без SegWit эти сценарии выкупа не указывают, что требуется подпись. Это делает эти выходные данные доступными для всех на не-сегвит-узлах.

Поскольку Bitcoin Cash не реализует segwit, все их узлы не являются узлами segwit. Таким образом, чтобы тратить средства из вложенных выходов SegWit P2SH, вам нужно только предоставить сценарий погашения. Однако сценарии выкупа защищены хешем; имея только вывод P2SH, вы не можете понять сценарий выкупа, если вы его уже не знаете. Скрипты выкупа раскрываются, когда тратится выход.

Что майнер сделал здесь, так это то, что они нашли как можно больше скриптов выкупа. Сценарии выкупа используемых выходов P2SH были сценариями выкупа, которые были обнаружены в сети Биткойн, потому что они использовались в качестве входных данных в транзакции. Таким образом, майнер взял все обнаруженные сценарии выкупа и проверил, какие из них имеют соответствующие результаты в сети Bitcoin Cash. Те, что были, затем могли быть потрачены майнером, поскольку майнер тогда знал сценарий выкупа.

становится еще тупее????????????????????? В статье говорится, что после совершения необработанной транзакции он добыл ее ..... без трансляции ?????? Какие

Транзакцию не нужно транслировать до того, как она будет добыта. Майнер может включать любые транзакции, которые он хочет, включая транзакции, которые не транслируются для публики. Как только блок будет добыт, транзакция будет транслироваться вместе с блоком.

«После того, как блок будет добыт, транзакция будет транслироваться вместе с блоком». 1. майнер может включить tx, который раньше не транслировался! разве это не противоречит правилам консенсуса? 2. что произойдет, если майнер не передаст этот tx после того, как блок будет добыт? будет ли этот блок отклонен другими узлами?
Нет, правила консенсуса не противоречат включению транзакции, которая не транслировалась. Узел не может знать, действительно ли транзакция транслировалась в сеть, потому что он мог бы не получить ее, если бы она транслировалась. Саму транзакцию не нужно транслировать; он будет включен в блок, и этот блок будет транслироваться. Если передаваемый блок не включает транзакцию, но она была включена при добыче, то переданный блок будет недействительным.
было бы намного проще, если бы bitcoin.org объяснил, как майнинг работает с segwit... Если блок включает в себя этот tx и удаляет его после майнинга, он затем изменит создание nonce + hash автоматически недействительным ... вот что вы пытаешься сказать правильно?
Да. Однако это не имеет ничего общего с сегвитом. Это правило консенсуса, которое существовало всегда.
так почему же он просто не транслировал это, как обычный человек, вместо того, чтобы добывать? может быть, потому что он боялся, что другие майнеры возьмут эту транзакцию и заменят ее адресом в разделе вывода, я думаю .... лол :) прямо как в игре престолов
спасибо за объяснение ... однако, какое отношение сценарий погашения имеет к открытому ключу и scriptsig «конкретному хэшу», о котором говорится в этих статьях?
Транзакция не транслировалась, потому что она нестандартна. Это означает, что консенсус действителен, но узлы не передают его. «Особый хеш» и scriptsig связаны с тем, что сценарий выкупа помещается в scriptsig, и он должен хэшироваться до хэша, указанного выводом P2SH, из которого тратятся средства.
подожди.... что ты имеешь в виду под нестандартным? также в первой статье говорится, что майнер использовал узел segwit в цепочке bcash для майнинга этого Tx .... имеет ли это какое-то значение для вас?
Биткойн и связанные с ним монеты (включая bcash) имеют набор правил, называемых правилами стандартизации. Эти правила находятся поверх правил консенсуса. Транзакция может соответствовать правилам консенсуса, но не правилам стандартности. Это просто означает, что он действителен, но узлы не будут его передавать. Такие сделки называются нестандартными. Нет никакого смысла использовать узел SegWit на bcash, потому что bcash не имеет SegWit.
Иисус Христос! (поправьте меня, если я ошибаюсь) 1. майнер использовал обычный узел биткойн-abc для майнинга своего tx, 2. Блок, содержащий tx, будет передан другому майнеру и будет принят как действительный блок 3., однако бдительность не может транслировать этот конкретный tx, так как он нестандартный.. майнер собирает монеты в своем кошельке (те, что prev_out не транслируются, а добываются), готовые потратить где угодно? (да, он будет транслировать позже, когда заплатит «бобу»), так в чем смысл транслировать tx, как обычному человеку, из кошелька?
Нет, там нет "собирать монеты в свой кошелек" или "prev_out не транслируются, а добываются". Биткойн или bcash работают иначе. Нет монет для сбора, только выходы и входы, которые тратят выходы. Майнер просто создает транзакцию, которая тратит выходы и включает их в блок, который он майнит, а затем транслирует блок. Цель трансляции tx состоит в том, чтобы майнеры могли включить их в блок. Майнерам не нужно транслировать свои транзакции, чтобы кто-то включил их в блок, но это увеличит шансы на то, что он будет включен раньше.
спасибо, вы действительно гениальный человек, мистер Чоу ... я отметил ваш ответ как .. ответил
извините, я спрашивал о цели не транслировать транзакцию, чтобы сохранить вывод ... если майнер не транслировал транзакцию ... другие майнеры подберут ее и включат в свою версию блока ... так как же они сохранить эти 100 BCH TX? twitter.com/khannib/status/931448049125249024
Нет, если транзакция не транслируется, другие майнеры об этом не узнают и не подхватят. В этом случае со 100 BCH btc.com создал транзакцию и не транслировал ее.
я согласен, однако в этом особом случае отправитель уже транслировал TX и просил пул не транслировать его... потому что bch придумал решение - если вы отправляете bch в btc, свяжитесь с майнером, чтобы он не транслировал его....мой вопрос - он будет распространяться через каждый узел - затем мемпул - чем майнер... даже если один майнер проигнорирует его....другой подхватит его? так как здесь работает решение bch?
Нет, это не так. Ни одна транзакция не транслируется; если транзакция транслируется, даже если один узел (например, майнер) ее игнорирует, остальная часть сети (включая других майнеров) услышит ее и может включить в свои блоки. Что происходит с btc.com, так это то, что пользователи общаются напрямую с btc.com. Они не создают транзакцию и не транслируют ее.
ладно, btc.com — это всего лишь один пул, есть много других… как насчет них? или, может быть, я предполагаю, что это все монополия
Другие майнинговые пулы или майнеры могут предложить аналогичную услугу, если они достаточно осведомлены. Вне зависимости от того, предлагают ли майнеры такую ​​услугу или нет, любой майнер может тратить средства с таких выходов SegWit, как я описал ранее, при условии, что он знает сценарий выкупа (либо обнаружил его сам, либо ему рассказал человек, который фактически владеет адресом на биткойн-бирже). сеть).

Выходные данные SegWit выглядят так же, как выходные данные AnyCanSpend для устаревших узлов (чтобы сохранить его как софтфорк). Поскольку у Bitcoin Cash нет SegWit (и он категорически против), все майнеры видят в них выход AnyCanSpend и могут их выкупить.

Этого не может произойти в сети Биткойн, потому что другие майнеры отклонят этот блок.

Может, он вот этот парень: https://www.reddit.com/r/btc/comments/7g6s9l/an_update_on_bch_segwit_recoveries/ ?

[Удалена бессмысленная часть]

да, это майнер.. однако эти выходные данные были проигнорированы другими майнерами (майнеры не взяли это - посмотрите дату в обозревателе блоков bch), и на самом деле это было после того, как он был вроде как взломан этим bcnsegwit-майнером
Нет, это не взлом. Другие майнеры тоже могли выкупить эти выходы, но по какой-то причине этого не сделали. (Этика?)
я знаю, что это не взлом... другие майнеры этого не делали, потому что это чертовски сложно... даже сам майнер признается: «Из-за значительных усилий, которые потребовались как для получения этих BCH, так и для проверки того, что каждый человек является человек, который должен получать МПБ, я возьму 30%».
Эта статья о SegWit — бессмысленная FUD, поскольку она полностью игнорирует полные узлы. Поскольку почти каждый узел в сети теперь применяет правила консенсуса SegWit, чтобы вернуться к краже его выходных данных, потребуется, чтобы полные узлы прекратили применение в первую очередь. Это хардфорк.
@PieterWuille Спасибо за просмотр этой страницы... 1. На какую статью вы ссылаетесь? 2. цитата «Поскольку почти каждый узел в сети теперь применяет SegWit», какая сеть? бкэш или биткойн
Я имею в виду ссылку на coingeek.
@PieterWuille, что вы думаете об обычном адресе биткойн-кэш? они меняют байт версии на 28 для адресов p2pkh и 40 для адресов p2sh... решит ли это ситуацию для всех пользователей на борту?
BitPay действует там самостоятельно. Наличные люди также имеют предложение для новых адресов. Да, они должны были сделать это с самого начала.