albertvert (OP)
|
|
October 04, 2015, 03:03:54 PM Last edit: October 05, 2015, 12:36:04 PM by albertvert |
|
Вчера первый раз столкнулся с такой ситуацией в двух разных обменниках:
Статус: в противоречии Дата: 03.10.15 19:58 Для: xpay 1DumNzGPj4QFaGY4c4RrksqkDaRVNgqEvF Дебет: -0.10000000 BTC Комиссия: -0.00010000 BTC Чистая сумма: -0.10010000 BTC ID транзакции: 5784a11ce35ee8869f7f3050764969bf73f6a835c18e5e8a01b95d3bee75d2d2-000
Статус: в противоречии Дата: 03.10.15 19:48 Для: easybit 1KVMUQU6xDZAvNdt23qgjFYdNe2DmACLBc Дебет: -0.10000000 BTC Комиссия: -0.00010000 BTC Чистая сумма: -0.10010000 BTC ID транзакции: 8abbf8a199ed6f99f314d25e591026c06ae877908a616f1a6ec6580cf865f8d9-000
|
|
|
|
diks
Legendary
Offline
Activity: 2632
Merit: 1450
|
|
October 04, 2015, 03:23:20 PM |
|
в блокчейн.инфо Ваши транзакции "Transaction rejected by our node. Reason: Transaction was previously accepted but has been pruned from our database."чесно ваще не понятно
|
|
|
|
|
CryptoDull
|
|
October 05, 2015, 05:16:38 AM |
|
он скажет "ну я же говорил" вот она смерть битка, блокчеина всемогущего
|
|
|
|
amaclin
Legendary
Offline
Activity: 1260
Merit: 1019
|
|
October 05, 2015, 05:25:43 AM |
|
он скажет "ну я же говорил" вот она смерть битка, блокчеина всемогущего
а, ну я это устроил. таки да. это не смерть, это демонстрация проблемы. причем, проблема эта - совсем не проблема. то есть известная вещь, на которой ещё гокс погорел. это фича. а вот попытка починки этой фичи может сама по себе стать проблемой. поэтому я понимаю разработчиков, которые особо не педалируют bip-62 проблема биткойна вовсе не в этом. это как раз чепуха, а не проблема
|
|
|
|
mnsx
Member
Offline
Activity: 63
Merit: 10
|
|
October 05, 2015, 01:38:49 PM |
|
он скажет "ну я же говорил" вот она смерть битка, блокчеина всемогущего
а, ну я это устроил. таки да. это не смерть, это демонстрация проблемы. причем, проблема эта - совсем не проблема. то есть известная вещь, на которой ещё гокс погорел. это фича. а вот попытка починки этой фичи может сама по себе стать проблемой. поэтому я понимаю разработчиков, которые особо не педалируют bip-62 проблема биткойна вовсе не в этом. это как раз чепуха, а не проблема А можно подробности про этот стресс тест. Англоязычные пользователи активно про него пишут, а в русском сегменте тишина. Было бы классно, если кто-нибудь по полочкам разложил что это и к чему может привести.
|
|
|
|
amaclin
Legendary
Offline
Activity: 1260
Merit: 1019
|
|
October 05, 2015, 01:50:30 PM Last edit: October 05, 2015, 03:01:17 PM by amaclin |
|
А можно подробности про этот стресс тест. Англоязычные пользователи активно про него пишут, а в русском сегменте тишина. Было бы классно, если кто-нибудь по полочкам разложил что это и к чему может привести. Ну давайте, я в порядке ликбеза объясню. Чтобы транзакция была валидной, она подписывается приватным ключом. Получается некоторая сигнатура. По русски - сигнатура - это подпись. Ну как подпись под документом, о том что документ вами заверен. Сигнатура в ECDSA - это по сути дела два 256-битных числа. Просто два очень больших числа. Для удобства эти числа называют R и S Если изменить хоть один битик в этих числах - то подпись становится неправильной. (Это не совсем так, но можете считать что это так) Вот. Но есть одно простое изменение, которое не делает сигнатуру невалидной. Очень простое. Вместо S надо подставить -S Берем транзакцию, которая пишла к нам от одного из наших соседей. Меняем в ней S на минус S И остальным соседям отправляем не оригинал, а измененную транзакцию. Ну и получаем вой и вопли. У кого-то деньги не дошли, а к кому-то два раза пришли.
Леонид Соловьёв, «Возмутитель спокойствия»/«Повесть о Ходже Насреддине», 1940 Удивительно, что может натворить в большом городе один маленький ишак, если к нему привязать барабан!
|
|
|
|
wonko86
Legendary
Offline
Activity: 1624
Merit: 1024
|
|
October 05, 2015, 02:15:42 PM |
|
Но есть одно простое изменение, которое не делает сигнатуру невалидной. Очень простое. Вместо S надо подставить -S
а кто обнаружил эту маленькую проблему? и когда?
|
|
|
|
amaclin
Legendary
Offline
Activity: 1260
Merit: 1019
|
|
October 05, 2015, 02:27:02 PM |
|
а кто обнаружил эту маленькую проблему? и когда?
Ну на этом форуме есть сообщение https://bitcointalk.org/index.php?topic=8392Там в целом про это говорится. Вот здесь конкретно говорится о том, что можно заменить S на минус S https://bitcointalk.org/index.php?topic=8392.msg1245898#msg1245898Вообще-то это достаточно известный факт, мне лень искать "кто первый это обнаружил вообще в мире" Возможно, что сами изобретатели ECDSA Если не ошибаюсь, то это следствие того, что при решении уравнения ay 3 + bx 2 + c = 0 есть два решения для икс. (Но повторю, я в этом не силен особо) А кто первый обнаружил что x 2 = (-x) 2 - это я не знаю
|
|
|
|
wonko86
Legendary
Offline
Activity: 1624
Merit: 1024
|
|
October 05, 2015, 02:55:44 PM |
|
а кто обнаружил эту маленькую проблему? и когда?
Ну на этом форуме есть сообщение https://bitcointalk.org/index.php?topic=8392Там в целом про это говорится. Вот здесь конкретно говорится о том, что можно заменить S на минус S https://bitcointalk.org/index.php?topic=8392.msg1245898#msg1245898Вообще-то это достаточно известный факт, мне лень искать "кто первый это обнаружил вообще в мире" Возможно, что сами изобретатели ECDSA Если не ошибаюсь, то это следствие того, что при решении уравнения ay 3 + bx 2 + c = 0 есть два решения для икс. (Но повторю, я в этом не силен особо) А кто первый обнаружил что x 2 = (-x) 2 - это я не знаю спасибо за наводку (ссылки), сейчас почитаю.
|
|
|
|
Mad_Max
|
|
October 06, 2015, 06:53:13 AM |
|
Хм. Там написано что размер транзакции от такой подмены НЕ меняется. Я когда заметил эту атаку, полистал блочейн выбирая в нем такие "дубли" и заметил что у всех (по крайней мере из тех что успел проверить) размер отличается. В каждой из пары транзакций оригинал/модифицированный дубль размер отличался ровно на 1 байт.
|
Не зная покоя и отдыха, При лунном и солнечном свете, Мы делаем деньги из воздуха, Чтоб снова спустить их на ветер!
|
|
|
amaclin
Legendary
Offline
Activity: 1260
Merit: 1019
|
|
October 06, 2015, 07:24:01 AM |
|
Хм. Там написано что размер транзакции от такой подмены НЕ меняется. Я когда заметил эту атаку, полистал блочейн выбирая в нем такие "дубли" и заметил что у всех (по крайней мере из тех что успел проверить) размер отличается. В каждой из пары транзакций оригинал/модифицированный дубль размер отличался ровно на 1 байт.
То, что размер транзакции не меняется - это не совсем точное утверждение. Дело вот в чем. Если S - беззнаковое 256-битное число, то и "минус S" - тоже будет беззнаковым 256-битным числом. Минус там не обычный арифметический минус, а "по модулю" Но кодирование сигнатуры происходит в DER-формате. Это достаточно уёбищный формат, он не совсем оптимальный, но по историческим причинам признан каноническим. Стандарты биткойна и в частности недавно принятый BIP-66 заставляют кодировать "отрицательные числа" с лидирующим нулем. Если вы немного в курсе про компьютерную арифметику - вы вспомните, что 0xFF - это может быть как 255, так и -1 Вот. Так что сейчас при смене в транзакции один раз S на минус S - транзакция изменится на 1 байт (с вероятностью 255/256), потому что придется добавить (или удалить) один лидирующий нолик. Если рассматривать оставшуюся часть 1/256 - то из остатка опять в вероятностью 255/256 транзакция изменится на два байта и... Ну и так далее. TL;DR; сегодня при однократном изменении S на -S размер транзакции обязательно меняется. в большую или меньшую сторону. скорее всего в большую сторону, потому что клиенты генерируют low-S
|
|
|
|
chemodan
Member
Offline
Activity: 99
Merit: 12
|
|
October 09, 2015, 01:20:41 AM |
|
Если транзакция провисела неподтвержденной в blockchain какое-то время и потом была удалена из-за того, что долго не подтверждалась, то это потерянные деньги или можно как-то вернуть их?
|
|
|
|
Mad_Max
|
|
October 09, 2015, 02:03:04 AM |
|
Естественно можно - т.к. на самом деле монеты вообще никуда и не ушли, если транзакция так и не была подтверждена. Надо лишь исправить некорректных их учет в своей локальной копии кошелька - для этого заново пересканировать свой кошелек (чтобы он привел транзакции в нем в соответсвие с теми что есть в блоках). Или откатится на бекап-версию сделанную до этого платежа.
Хуже если не отправляли, а получаем такой платеж - тогда теребить отправителя, чтобы он проверил что монеты по факту не ушли и отправил заново. Вообще стандартный клиент (bitcoin core) по умолчанию это делает вообще автоматически - если он видит, что у него давно уже висит отправленная, но не подтвержденная транзакция, то он ее через некоторое время будет пытаться заново отправить.
|
Не зная покоя и отдыха, При лунном и солнечном свете, Мы делаем деньги из воздуха, Чтоб снова спустить их на ветер!
|
|
|
oyeTorry
|
|
October 09, 2015, 11:20:09 PM |
|
amaclin, так это ты весь этот шухер учинил ? из чата BTC-e - yghbn: МОДЕРАТОР хоть один в чате есть ustylife: про новую атаку на биткоин слышали? yghbn: ustylife, Страдаем уже. Битки пропали даже с блокчейна... 31078: ustylife, даже прочувствовали ! yghbn: Кто может объяснить: был перевод битков на адрес кошеля бтц-е... Сначала транзакция была неподтверждённой, а сейчас она вообще из блокчейна пропала... Как такое возможно yghbn: Больше 6 часов уже прошло. admin: yghbn, тут подробно все описано - https://bitcointalk.org/index.php?topic=1200306yghbn: admin, Сейчас почитаю. Но скажите, я потерял свой перевод или он придёт с большой задержкой
|
|
|
|
Balthazar
Legendary
Offline
Activity: 3108
Merit: 1359
|
|
October 10, 2015, 04:08:57 PM |
|
Если вы - принимающий платежи сервис, то diff --git a/src/main.cpp b/src/main.cpp index 1df4c9f..d3ac137 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4262,7 +4262,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, pfrom->PushMessage("headers", vHeaders); } - +/* else if (strCommand == "tx") { vector<uint256> vWorkQueue; @@ -4385,7 +4385,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, if (nDoS > 0) Misbehaving(pfrom->GetId(), nDoS); } - } + }*/ else if (strCommand == "headers" && !fImporting && !fReindex) // Ignore headers received while importing
и ваш вопрос решен навсегда.
|
|
|
|
transss
Newbie
Offline
Activity: 7
Merit: 0
|
|
October 14, 2015, 08:10:22 AM |
|
Объясните, если не сложно, варианты завершения событий Мне какой то сайт отправил биток, отдал номер транзакции, я проверяю по номеру транзакции поступление: http://btc.blockr.io пишет - транзакции не существует https://blockchain.info пишет - удалил транзакцию и что отправитель замечен в двойной отправке. Битка в кошельке соответственно не вижу Куда и когда упадет в итоге биток?
|
|
|
|
amaclin
Legendary
Offline
Activity: 1260
Merit: 1019
|
|
October 14, 2015, 08:29:26 AM |
|
Объясните, если не сложно, варианты завершения событий Мне какой то сайт отправил биток, отдал номер транзакции, я проверяю по номеру транзакции поступление: http://btc.blockr.io пишет - транзакции не существует https://blockchain.info пишет - удалил транзакцию и что отправитель замечен в двойной отправке. Битка в кошельке соответственно не вижу Куда и когда упадет в итоге биток? Возможно никуда и никогда. Варианты такие: 1) проверяйте свой кошелек - возможно поступления есть, но так как транзакция изменилась, то поступления будут с другим ID (вполне возможно, что и адрес отправителя может быть иной, если отправитель пересылал несколько раз) 2) если поступлений вообще нет - пишите письма отправителю и жалуйтесь, что перевод не получили, а транзакции нет в блокчейне На сообщения на сайте bc.i о двойной отправке внимания не обращайте. Они не значат ровным счетом ничего.
|
|
|
|
0n0t0le
Legendary
Offline
Activity: 1512
Merit: 1125
Swapzone
|
|
October 14, 2015, 08:43:05 AM |
|
amaclin, так это ты весь этот шухер учинил ? из чата BTC-e - yghbn: МОДЕРАТОР хоть один в чате есть ustylife: про новую атаку на биткоин слышали? yghbn: ustylife, Страдаем уже. Битки пропали даже с блокчейна... 31078: ustylife, даже прочувствовали ! yghbn: Кто может объяснить: был перевод битков на адрес кошеля бтц-е... Сначала транзакция была неподтверждённой, а сейчас она вообще из блокчейна пропала... Как такое возможно yghbn: Больше 6 часов уже прошло. admin: yghbn, тут подробно все описано - https://bitcointalk.org/index.php?topic=1200306yghbn: admin, Сейчас почитаю. Но скажите, я потерял свой перевод или он придёт с большой задержкой была такая же тема у меня только пропала транза с биржи, написал в саппорт, видимо сделали рескан и со второго раза все пришло, теперь нужно быть внимательным и держать руку на пульсе=)
|
|
|
|
transss
Newbie
Offline
Activity: 7
Merit: 0
|
|
October 14, 2015, 09:38:15 AM |
|
Объясните, если не сложно, варианты завершения событий Мне какой то сайт отправил биток, отдал номер транзакции, я проверяю по номеру транзакции поступление: http://btc.blockr.io пишет - транзакции не существует https://blockchain.info пишет - удалил транзакцию и что отправитель замечен в двойной отправке. Битка в кошельке соответственно не вижу Куда и когда упадет в итоге биток? Возможно никуда и никогда. Варианты такие: 1) проверяйте свой кошелек - возможно поступления есть, но так как транзакция изменилась, то поступления будут с другим ID (вполне возможно, что и адрес отправителя может быть иной, если отправитель пересылал несколько раз) 2) если поступлений вообще нет - пишите письма отправителю и жалуйтесь, что перевод не получили, а транзакции нет в блокчейне На сообщения на сайте bc.i о двойной отправке внимания не обращайте. Они не значат ровным счетом ничего. Спасибо amaclin за раскладку. Ещё пара вопросов - у отправителя автоматом с кошелька должна идти повторная отправка или ему просто вернется в кошелек и он руками должен будет послать? Слышал что в последней версии кошелька автоматом вычищаются убитые транзакции и повторно шлется или что то типа того. В случае с api blockhain info и другими тонкими клиентами - автоматом будет долбиться пока я деньги не увижу в своем кошельке или через саппорты всё надо решать?
|
|
|
|
|