Bitcoin Forum
November 11, 2024, 12:12:52 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Отмена транзакции btc до 1-го подтверждения  (Read 11842 times)
Crystral IP (OP)
Newbie
*
Offline Offline

Activity: 30
Merit: 0


View Profile
March 17, 2015, 05:16:38 AM
 #1

Какие шансы есть и какие технические возможности надо иметь чтобы отменить транзакцию bitcoin до того как сеть даст одно подтверждение?
Допустим, при условии, если начать активные действия через 3 минуты после совершения транзацкии btc.
Wi-Fu
Hero Member
*****
Offline Offline

Activity: 672
Merit: 500


View Profile
March 17, 2015, 05:53:01 AM
Last edit: March 17, 2015, 06:04:13 AM by Wi-Fu
 #2

Какие шансы есть и какие технические возможности надо иметь чтобы отменить транзакцию bitcoin до того как сеть даст одно подтверждение?
Допустим, при условии, если начать активные действия через 3 минуты после совершения транзацкии btc.
Словосочетание "отменить транзакцию" неприменимо для биткоина и сети. Об отмене транзакции можно говорить лишь в рамках работы сервиса, т.е. обработчика транзакции.

Транзакция отправленная в сеть разлетается по клиентам и доходят до майнеров. Включение транзакции в блок майнерами даст подтверждение.

Схема атаки должна быть примерно такой: отправляем транзакцию которая доходит до обработчика транзакции в сервисе приема платежей (одна "подсеть") и почти одновременно отправляем еще одну транзакцию которая использует те же входы что и первая на узлы майнеров (другая "подсеть").

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

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

А если просто послать транзакцию, а после через 3 минуты начинать активные действия наобум, то тут уже скорее игра "на удачу" (много факторов, как повезет).

---
* под захватом контроля управленя над узлами принимающего сервиса не имеется ввиду физический контроль, существуют способы удаленного захвата

Negotiant
Newbie
*
Offline Offline

Activity: 14
Merit: 0


View Profile
March 17, 2015, 07:33:58 AM
 #3

А почему тогда многие биржи и другие сервисы используют политику нескольких подтверждений? Вплоть до 5-6?
Или это очередные их "перехваты" в пользование наших средств? Что думаете по этому поводу?
svetoch
Hero Member
*****
Offline Offline

Activity: 826
Merit: 1004


View Profile
March 17, 2015, 08:02:34 AM
 #4

это как раз защита от двойной траты
Wi-Fu
Hero Member
*****
Offline Offline

Activity: 672
Merit: 500


View Profile
March 17, 2015, 10:24:03 AM
 #5

А почему тогда многие биржи и другие сервисы используют политику нескольких подтверждений? Вплоть до 5-6?
Или это очередные их "перехваты" в пользование наших средств? Что думаете по этому поводу?
Вы где-то не совсем корретно поняли. Вообще говоря, абсолютной защиты от двойной траты нет -  уже был прецедент хард-форка цепи биткоина. Вся защита от двойной траты строится на сложности поиска блоков, поэтому чем длинее цепь, тем сложнее ее перебить более длинной цепочкой блоков. Поэтому логично что чем больше блоков в подтверждении, тем она надежнее (считается что 6 достаточно, но многие некоторые сервисы уже обрабатывают с 3-х подтверждении, а некоторые даже с 1).

King Kod
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
March 17, 2015, 12:03:15 PM
 #6

Да что вы распинаетесь, объясняете Smiley Время тратите только... Кто понимает, тот понимает чуть работы...
Wi-Fu
Hero Member
*****
Offline Offline

Activity: 672
Merit: 500


View Profile
March 17, 2015, 12:43:56 PM
 #7

Да что вы распинаетесь, объясняете Smiley Время тратите только... Кто понимает, тот понимает чуть работы...
Бывает что из неотесанных и малопонимающих новичков получаются очень достойные люди если им помочь. Мне в жизни помогали казалось бы случайные люди, и теперь я возвращаю долг обществу.

Negotiant
Newbie
*
Offline Offline

Activity: 14
Merit: 0


View Profile
March 17, 2015, 05:05:53 PM
 #8

Да что вы распинаетесь, объясняете Smiley Время тратите только... Кто понимает, тот понимает чуть работы...
Бывает что из неотесанных и малопонимающих новичков получаются очень достойные люди если им помочь. Мне в жизни помогали казалось бы случайные люди, и теперь я возвращаю долг обществу.
Согласен. Главное интересные примеры давать чтобы заинтересовать. Практическое применение. Ну как в школе, помните треды с учителями: "Где мне эта алгебра в жизни пригодится?!"  Wink
icreator
Legendary
*
Offline Offline

Activity: 1554
Merit: 1008



View Profile WWW
March 17, 2015, 08:21:39 PM
 #9

Какие шансы есть и какие технические возможности надо иметь чтобы отменить транзакцию bitcoin до того как сеть даст одно подтверждение?
Допустим, при условии, если начать активные действия через 3 минуты после совершения транзацкии btc.

можно:
послать в сеть транзакцию использующую те же входы монет на свой адрес + добавить к ней еще 1 биткоин например, и ++ добавить комиссию побольше - ее первой схватит любой пул сразу - а первая транзакция будет признана ошибочной

наверно так

Erachain Blockchain is fully ready for use Digital Ecosystem based on blockchain technology for business and government with low transaction costs, identification and built-in functions.
+Decentralized exchange of tokens in Erachain
ari100tel
Newbie
*
Offline Offline

Activity: 20
Merit: 0


View Profile
March 17, 2015, 09:17:52 PM
 #10

Какие шансы есть и какие технические возможности надо иметь чтобы отменить транзакцию bitcoin до того как сеть даст одно подтверждение?
Допустим, при условии, если начать активные действия через 3 минуты после совершения транзацкии btc.

можно:
послать в сеть транзакцию использующую те же входы монет на свой адрес + добавить к ней еще 1 биткоин например, и ++ добавить комиссию побольше - ее первой схватит любой пул сразу - а первая транзакция будет признана ошибочной

наверно так

Неплохая идея... Проверим опытным путем?
Wi-Fu
Hero Member
*****
Offline Offline

Activity: 672
Merit: 500


View Profile
March 18, 2015, 02:08:05 AM
 #11

Бывает что из неотесанных и малопонимающих новичков получаются очень достойные люди если им помочь. Мне в жизни помогали казалось бы случайные люди, и теперь я возвращаю долг обществу.
Согласен. Главное интересные примеры давать чтобы заинтересовать. Практическое применение. Ну как в школе, помните треды с учителями: "Где мне эта алгебра в жизни пригодится?!"  Wink
Если раскрыть практическое применение, то придется раскрыть схему захвата контроля управленя над узлом. Но что-то мне подсказывает что не стоит это делать, т.к. среди пользователей встречается откровенный сброд.

daddybios
Legendary
*
Offline Offline

Activity: 1624
Merit: 1098



View Profile WWW
March 22, 2015, 12:21:22 PM
 #12

А почему тогда многие биржи и другие сервисы используют политику нескольких подтверждений? Вплоть до 5-6?
Или это очередные их "перехваты" в пользование наших средств? Что думаете по этому поводу?

На ексмо нужно одно подтверждение (для торговли - обмена) но быстренько вывести обратно не получется надо ждать 4 под.
Страхуют себя... а что же еще?
Иногда попадаешь на разницу курсов на разных биржах... уже весь довольный... но пока ети подтверждения пройдут- за пол часа уже все может поменятся и получается только даром FEE платил

Freedom to Ross Ulbricht!
leadcorp
Newbie
*
Offline Offline

Activity: 84
Merit: 0


View Profile
April 07, 2015, 08:15:51 AM
 #13

если иметь доступ к фильтрации трафика у какого-нибудь крупного Интернет-провайдера и оборудования по майнингу на 30 миллионов долларов, можно сфабриковать цепочку блоков для таргетингового клиента находящегося в подсети Интернет-провайдера, т.е. например сделать так чтобы жертва подумала что к ней пришли деньги, хотя по-настоящему вся цепь сфабрикована в изоляции пре-майнингом.

Но в этой схеме мы как-то расчитывали что на премайн фальшивой цепи уйдёт достаточно много времени (где-то за 14 дней оборудованием для майнинга за 30 миллионов долларов можно создать около 3-х фальшивых блоков).

И опять же это слишком сложная форма атаки т.к. для этого нужно знать какие блоки известны биткоин-клиенту жертвы. А если жертва в течении этих 14 дней захочет совершить транзакцию?
Xtc
Legendary
*
Offline Offline

Activity: 1973
Merit: 1028


;u


View Profile WWW
April 07, 2015, 11:10:48 AM
 #14

Quote
можно:
послать в сеть транзакцию использующую те же входы монет на свой адрес + добавить к ней еще 1 биткоин например, и ++ добавить комиссию побольше - ее первой схватит любой пул сразу - а первая транзакция будет признана ошибочной

наверно так
Я думаю вторая просто не будет принята
amaclin
Legendary
*
Offline Offline

Activity: 1260
Merit: 1019


View Profile
April 07, 2015, 02:29:49 PM
 #15

Я думаю вторая просто не будет принята
Это вообще-то на совести владельца ноды/пула.
Референсный клиент не принимает транакцию, если её входы уже потрачены другой транзакцией.
Но есть и модификации, например https://github.com/bitcoinxt/bitcoinxt который передаёт транзакцию своим пирам, даже если она конфликтует по входам.
Есть модификации "replace-by-fee", когда нода оставляет у себя ту транзакцию из двух, которая имеет большую майнерскую комиссию.
Но это очень мало кто поддерживает (может и никто вообще), так как определить какая цепочка из транзакций даст майнеру больше вознаграждения достаточно муторно. Ради 0.0001 лишней комсы никто не парится.
Да, и не забывайте, что ноды не хранят вечно транзакции которые не подтверждены в блоках.
Рано или поздно нода забывает про первую транзакцию и принимает вторую.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!