Title: Статус: в противоречии Post by: albertvert on October 04, 2015, 03:03:54 PM Вчера первый раз столкнулся с такой ситуацией в двух разных обменниках:
Статус: в противоречии Дата: 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 Title: Re: Статус: в противоречии Post by: diks on October 04, 2015, 03:23:20 PM в блокчейн.инфо Ваши транзакции
"Transaction rejected by our node. Reason: Transaction was previously accepted but has been pruned from our database." чесно ваще не понятно :o Title: Re: Статус: в противоречии Post by: clipman77 on October 04, 2015, 04:52:18 PM в блокчейн.инфо Ваши транзакции "Transaction rejected by our node. Reason: Transaction was previously accepted but has been pruned from our database." чесно ваще не понятно :o Кажись опять тест устроили Мне также пришли две одинаковые, одна неподтверждённая,которая скоро исчезнет - https://blockchain.info/ru/tx/6eebb8b35d0b8f18ba7451b087dac846baca86ada624e51f0b598550bccfd0e0 Вторая подтверждённая уже - https://blockchain.info/ru/tx/91b72e8c24706adad2710202ae29adae587c00e2776dbf187753a9f5b52824b3 Тут что то похожее обсуждается - https://bitcointalk.org/index.php?topic=1198032.0 ,нужно amaclin расспрашивать что к чему. Title: Re: Статус: в противоречии Post by: CryptoDull on October 05, 2015, 05:16:38 AM в блокчейн.инфо Ваши транзакции "Transaction rejected by our node. Reason: Transaction was previously accepted but has been pruned from our database." чесно ваще не понятно :o Кажись опять тест устроили Мне также пришли две одинаковые, одна неподтверждённая,которая скоро исчезнет - https://blockchain.info/ru/tx/6eebb8b35d0b8f18ba7451b087dac846baca86ada624e51f0b598550bccfd0e0 Вторая подтверждённая уже - https://blockchain.info/ru/tx/91b72e8c24706adad2710202ae29adae587c00e2776dbf187753a9f5b52824b3 Тут что то похожее обсуждается - https://bitcointalk.org/index.php?topic=1198032.0 ,нужно amaclin расспрашивать что к чему. Title: Re: Статус: в противоречии Post by: amaclin on October 05, 2015, 05:25:43 AM он скажет "ну я же говорил" вот она смерть битка, блокчеина всемогущего а, ну я это устроил. таки да.это не смерть, это демонстрация проблемы. причем, проблема эта - совсем не проблема. то есть известная вещь, на которой ещё гокс погорел. это фича. а вот попытка починки этой фичи может сама по себе стать проблемой. поэтому я понимаю разработчиков, которые особо не педалируют bip-62 проблема биткойна вовсе не в этом. это как раз чепуха, а не проблема Title: Re: Статус: в противоречии Post by: mnsx on October 05, 2015, 01:38:49 PM он скажет "ну я же говорил" вот она смерть битка, блокчеина всемогущего а, ну я это устроил. таки да.это не смерть, это демонстрация проблемы. причем, проблема эта - совсем не проблема. то есть известная вещь, на которой ещё гокс погорел. это фича. а вот попытка починки этой фичи может сама по себе стать проблемой. поэтому я понимаю разработчиков, которые особо не педалируют bip-62 проблема биткойна вовсе не в этом. это как раз чепуха, а не проблема А можно подробности про этот стресс тест. Англоязычные пользователи активно про него пишут, а в русском сегменте тишина. Было бы классно, если кто-нибудь по полочкам разложил что это и к чему может привести. Title: Re: Статус: в противоречии Post by: amaclin on October 05, 2015, 01:50:30 PM А можно подробности про этот стресс тест. Англоязычные пользователи активно про него пишут, а в русском сегменте тишина. Было бы классно, если кто-нибудь по полочкам разложил что это и к чему может привести. Ну давайте, я в порядке ликбеза объясню. Чтобы транзакция была валидной, она подписывается приватным ключом. Получается некоторая сигнатура. По русски - сигнатура - это подпись. Ну как подпись под документом, о том что документ вами заверен. Сигнатура в ECDSA - это по сути дела два 256-битных числа. Просто два очень больших числа. Для удобства эти числа называют R и S Если изменить хоть один битик в этих числах - то подпись становится неправильной. (Это не совсем так, но можете считать что это так) Вот. Но есть одно простое изменение, которое не делает сигнатуру невалидной. Очень простое. Вместо S надо подставить -S Берем транзакцию, которая пишла к нам от одного из наших соседей. Меняем в ней S на минус S И остальным соседям отправляем не оригинал, а измененную транзакцию. Ну и получаем вой и вопли. У кого-то деньги не дошли, а к кому-то два раза пришли. Леонид Соловьёв, «Возмутитель спокойствия»/«Повесть о Ходже Насреддине», 1940 Quote Удивительно, что может натворить в большом городе один маленький ишак, если к нему привязать барабан! Title: Re: Статус: в противоречии Post by: wonko86 on October 05, 2015, 02:15:42 PM Но есть одно простое изменение, которое не делает сигнатуру невалидной. а кто обнаружил эту маленькую проблему? и когда?Очень простое. Вместо S надо подставить -S Title: Re: Статус: в противоречии Post by: amaclin on 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 Если не ошибаюсь, то это следствие того, что при решении уравнения ay3 + bx2 + c = 0 есть два решения для икс. (Но повторю, я в этом не силен особо) А кто первый обнаружил что x2 = (-x)2 - это я не знаю Title: Re: Статус: в противоречии Post by: wonko86 on 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 Если не ошибаюсь, то это следствие того, что при решении уравнения ay3 + bx2 + c = 0 есть два решения для икс. (Но повторю, я в этом не силен особо) А кто первый обнаружил что x2 = (-x)2 - это я не знаю Title: Re: Статус: в противоречии Post by: Mad_Max on October 06, 2015, 06:53:13 AM Хм. Там написано что размер транзакции от такой подмены НЕ меняется.
Я когда заметил эту атаку, полистал блочейн выбирая в нем такие "дубли" и заметил что у всех (по крайней мере из тех что успел проверить) размер отличается. В каждой из пары транзакций оригинал/модифицированный дубль размер отличался ровно на 1 байт. Title: Re: Статус: в противоречии Post by: amaclin on 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 Title: Re: Статус: в противоречии Post by: chemodan on October 09, 2015, 01:20:41 AM Если транзакция провисела неподтвержденной в blockchain какое-то время и потом была удалена из-за того, что долго не подтверждалась, то это потерянные деньги или можно как-то вернуть их?
Title: Re: Статус: в противоречии Post by: Mad_Max on October 09, 2015, 02:03:04 AM Естественно можно - т.к. на самом деле монеты вообще никуда и не ушли, если транзакция так и не была подтверждена. Надо лишь исправить некорректных их учет в своей локальной копии кошелька - для этого заново пересканировать свой кошелек (чтобы он привел транзакции в нем в соответсвие с теми что есть в блоках).
Или откатится на бекап-версию сделанную до этого платежа. Хуже если не отправляли, а получаем такой платеж - тогда теребить отправителя, чтобы он проверил что монеты по факту не ушли и отправил заново. Вообще стандартный клиент (bitcoin core) по умолчанию это делает вообще автоматически - если он видит, что у него давно уже висит отправленная, но не подтвержденная транзакция, то он ее через некоторое время будет пытаться заново отправить. Title: Re: Статус: в противоречии Post by: oyeTorry on 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=1200306 yghbn: admin, Сейчас почитаю. Но скажите, я потерял свой перевод или он придёт с большой задержкой??? Title: Re: Статус: в противоречии Post by: Balthazar on October 10, 2015, 04:08:57 PM Если вы - принимающий платежи сервис, то
Code: diff --git a/src/main.cpp b/src/main.cpp и ваш вопрос решен навсегда. Title: Re: Статус: в противоречии Post by: transss on October 14, 2015, 08:10:22 AM Объясните, если не сложно, варианты завершения событий
Мне какой то сайт отправил биток, отдал номер транзакции, я проверяю по номеру транзакции поступление: http://btc.blockr.io пишет - транзакции не существует https://blockchain.info пишет - удалил транзакцию и что отправитель замечен в двойной отправке. Битка в кошельке соответственно не вижу Куда и когда упадет в итоге биток? Title: Re: Статус: в противоречии Post by: amaclin on October 14, 2015, 08:29:26 AM Объясните, если не сложно, варианты завершения событий Возможно никуда и никогда.Мне какой то сайт отправил биток, отдал номер транзакции, я проверяю по номеру транзакции поступление: http://btc.blockr.io пишет - транзакции не существует https://blockchain.info пишет - удалил транзакцию и что отправитель замечен в двойной отправке. Битка в кошельке соответственно не вижу Куда и когда упадет в итоге биток? Варианты такие: 1) проверяйте свой кошелек - возможно поступления есть, но так как транзакция изменилась, то поступления будут с другим ID (вполне возможно, что и адрес отправителя может быть иной, если отправитель пересылал несколько раз) 2) если поступлений вообще нет - пишите письма отправителю и жалуйтесь, что перевод не получили, а транзакции нет в блокчейне На сообщения на сайте bc.i о двойной отправке внимания не обращайте. Они не значат ровным счетом ничего. Title: Re: Статус: в противоречии Post by: 0n0t0le on 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=1200306 yghbn: admin, Сейчас почитаю. Но скажите, я потерял свой перевод или он придёт с большой задержкой??? была такая же тема у меня только пропала транза с биржи, написал в саппорт, видимо сделали рескан и со второго раза все пришло, теперь нужно быть внимательным и держать руку на пульсе=) Title: Re: Статус: в противоречии Post by: transss on October 14, 2015, 09:38:15 AM Объясните, если не сложно, варианты завершения событий Возможно никуда и никогда.Мне какой то сайт отправил биток, отдал номер транзакции, я проверяю по номеру транзакции поступление: http://btc.blockr.io пишет - транзакции не существует https://blockchain.info пишет - удалил транзакцию и что отправитель замечен в двойной отправке. Битка в кошельке соответственно не вижу Куда и когда упадет в итоге биток? Варианты такие: 1) проверяйте свой кошелек - возможно поступления есть, но так как транзакция изменилась, то поступления будут с другим ID (вполне возможно, что и адрес отправителя может быть иной, если отправитель пересылал несколько раз) 2) если поступлений вообще нет - пишите письма отправителю и жалуйтесь, что перевод не получили, а транзакции нет в блокчейне На сообщения на сайте bc.i о двойной отправке внимания не обращайте. Они не значат ровным счетом ничего. Спасибо amaclin за раскладку. Ещё пара вопросов - у отправителя автоматом с кошелька должна идти повторная отправка или ему просто вернется в кошелек и он руками должен будет послать? Слышал что в последней версии кошелька автоматом вычищаются убитые транзакции и повторно шлется или что то типа того. В случае с api blockhain info и другими тонкими клиентами - автоматом будет долбиться пока я деньги не увижу в своем кошельке или через саппорты всё надо решать? Title: Re: Статус: в противоречии Post by: amaclin on October 14, 2015, 09:47:15 AM Ещё пара вопросов - у отправителя автоматом с кошелька должна идти повторная отправка Вы всё время забываете про децентрализацию и либертарианскую идеологию битка.По русски это: Кто как хочет - так и дрочит Отправитель может любым кошельком пользоваться, как перепосылающим транзакции, так и нет. Потому что в биткойне нет условного "Центробанка", который может настучать по башке, если отправитель что-то пообещал отправить, а до получателя баблосы не доехали. Quote или ему просто вернется в кошелек и он руками должен будет послать? Неотправленная транзакция в кошелек не возвращается.Считайте, что её вообще не было. Quote Слышал что в последней версии кошелька автоматом вычищаются убитые транзакции и повторно шлется или что то типа того. В случае с api blockhain info и другими тонкими клиентами - автоматом будет долбиться пока я деньги не увижу в своем кошельке или через саппорты всё надо решать? Долбиться ничего не должно само по себе.Не, ну можно и такой алгоритм реализовать. Но я бы поостерегся пользоваться таким клиентом. Так как существенно возрастает вероятность того, что отправитель пошлет баблосы дважды. Да, решать через саппорты. Мне так кажется. Хотя, как я говорил выше - вы имеете право дрочить как хотите. Можете в ООН писать. Или на сайт центробанка. Или в полицию заявление нести - пусть они выясняют. Title: Re: Статус: в противоречии Post by: transss on October 14, 2015, 10:10:17 AM Quote Неотправленная транзакция в кошелек не возвращается. Считайте, что её вообще не было. Отправитель послал >> словил двойную трату >> транзакция не принята сетью >> биток исчез? Его больше не увидит ни отправитель ни получатель, так что ли? Title: Re: Статус: в противоречии Post by: amaclin on October 14, 2015, 10:16:18 AM Отправитель послал >> словил двойную трату >> транзакция не принята сетью >> биток исчез? Ничего не исчезает.Его больше не увидит ни отправитель ни получатель, так что ли? Я не совсем понимаю что значит "словил двойную трату" [Лирическое отступление] Вы читали "понедельник начинается в субботу"? Там был "неразменный пятак" - им платишь, а он обратно к тебе возвращается. Вот это и есть "двойная трата". Но отправитель вовсе и не хочет от такого избавляться [Конец лирического отступления] Ребят, ну прежде чем в тонкостях протокола разбираться - вы базовые вещи усвойте. А то мы с вами общаемся как дикарь с телемастером. Дикарь готов миллион вопросов задать как диктора в ящик засовывают - по частям или целиком. Title: Re: Статус: в противоречии Post by: transss on October 14, 2015, 10:40:21 AM Ничего не исчезает. Я не совсем понимаю что значит "словил двойную трату" Телемастер, ты писал выше: Quote Берем транзакцию, которая пришла к нам от одного из наших соседей. Меняем в ней S на минус S И остальным соседям отправляем не оригинал, а измененную транзакцию. Если отправитель не планировал заниматься размножением "неразменных пятаков", а просто послал кому то перевод, соседи отправили измененную транзакцию. т.е. получается "словил двойную трату". Или отправитель тоже в чем то виноват? В итоге я так и не понял, увижу биток который мне отправляли или нет и кто суко виноват. А телемастер вообще засранец, поломал все что и так туго работало ещё и в ООН отправляет возврат битка запрашивать. Title: Re: Статус: в противоречии Post by: amaclin on October 14, 2015, 11:03:41 AM Если отправитель не планировал заниматься размножением "неразменных пятаков", а просто послал кому то перевод, соседи отправили измененную транзакцию. т.е. получается "словил двойную трату". Или отправитель тоже в чем то виноват? Отправитель ни в чем не виноват.Хотя само понятие "виноват" или "не виноват" как вы определяете? В обычном мире это всегда определяет "третья сторона". То есть приходят Маша и Ваня к воспитательнице: мол Маша машинку сломала, а Ваня её за косу дернул. Кто виноват? И МарьВанна решает спор. В биткойне нет "третьей стороны". В качестве "арбитра" в спорах выступает сама сеть. Есть в блокчейне транзакция - это значит отправитель её послал. Нет в блокчейне транзакции - на нет и суда нет. Выходит, что отправитель виноват в том, что не удостоверился что его транзакция дошла до получателя. Так ясно? Quote В итоге я так и не понял, увижу биток который мне отправляли или нет и кто суко виноват. Обращайтесь в суппорт. Жалуйтесь что вам бабло не дошло. Тут даже если найдёте "виноватого" - то все равно нет МарьВанны, которая его в угол поставит. Quote А телемастер вообще засранец, поломал все что и так туго работало ещё и в ООН отправляет возврат битка запрашивать. Ну а как же вас еще уму-разуму учить?Если на любые неподкрепленные действиями доводы биткойнеры огрызаются мол "да биткойн люди поумнее тебя разрабатывали!" Title: Re: Статус: в противоречии Post by: transss on October 14, 2015, 11:59:40 AM Так ясно? Да, спасибо за разъяснение. Пойду бить морду отправителю. Думаю биткоин переходная фаза более продвинутой системы, надеюсь твоя компетенция будет участвовать в её проектировании, а не ломе. Title: Re: Статус: в противоречии Post by: amaclin on October 14, 2015, 12:18:44 PM Да, спасибо за разъяснение. Пойду бить морду отправителю. Правильное, разумное решение. Поаккуратнее там. Гляди чтобы тебе не досталосьQuote Думаю биткоин переходная фаза более продвинутой системы, надеюсь твоя Увы. Ничего более прогрессивного, чем банальная централизация я не вижу.компетенция будет участвовать в её проектировании, а не ломе. Title: Re: Статус: в противоречии Post by: Mad_Max on October 14, 2015, 04:58:09 PM Долбиться ничего не должно само по себе. Не, ну можно и такой алгоритм реализовать. Но я бы поостерегся пользоваться таким клиентом. Так как существенно возрастает вероятность того, что отправитель пошлет баблосы дважды. Вообще оригинальный толстый кошелек (Bitcoin Core) перепосылает регулярно не дошедшие(не подтверженные) транзакции. Но он именно исходную транзакцию 1в1 пытается повторно отправлять если она долго не подтверждается. Если вместо нее уже подтвердился модифицированый дубль, то понятное дело у него ничего не получится - все полные ноды и майнеры будут ее отфутболивать. Т.е. дважды не пошлет, только зря в сеть спамить будет переодическими повторами. Title: Re: Статус: в противоречии Post by: in100 on October 14, 2015, 05:37:16 PM Но он именно исходную транзакцию 1в1 пытается повторно отправлять если она долго не подтверждается. Если вместо нее уже подтвердился модифицированый дубль, то понятное дело у него ничего не получится - все полные ноды и майнеры будут ее отфутболивать. Я думаю, не будет спамить. Он поставит транзакции статус "в противоречии" и прекратит попытки отправки.Т.е. дважды не пошлет, только зря в сеть спамить будет переодическими повторами. Title: Re: Статус: в противоречии Post by: amaclin on October 14, 2015, 07:01:45 PM Но он именно исходную транзакцию 1в1 пытается повторно отправлять если она долго не подтверждается. Если вместо нее уже подтвердился модифицированый дубль, то понятное дело у него ничего не получится - все полные ноды и майнеры будут ее отфутболивать. Я думаю, не будет спамить. Он поставит транзакции статус "в противоречии" и прекратит попытки отправки.Т.е. дважды не пошлет, только зря в сеть спамить будет переодическими повторами. http://www.youtube.com/watch?v=fmOhfwiqRo4 Факт в том, что перепосылать неподтвержденную транзакцию в этом случае бессмысленно. Title: Re: Статус: в противоречии Post by: deepshadow on November 16, 2015, 12:30:47 PM Кто юзает bitcoin core - обновитесь до последней версии и запустите клиент с ключем -reindex. Это должно все исправить, даже если транза все еще висит неподтвержденной в блокчейне. На будущее - транзы с минимальной (или близкой к ней) комиссией "зависают" намного чаще. Проблема, я так понимаю, в неправильном значении block lock time при отправке транзы. Косвенно в этом виноваты майнеры, отдающие сети блоки bip-62... Не знаю, кто и где тут увидел ошибку в подписи транз...
|