Если вам нужен быстрый ответ — нет ошибки в самом Bitcoin. Вы можете пойти на Bitstamp / Coinbase / btc-e и купить больше BTC с огромной скидкой, прежде чем курс вернется к $800 — $900…
Длинный ответ:
Неподтвержденные транзакции Bitcoin всегда были malleable (тягучими), то есть вы можете немного изменить транзакцию, которая «в подвешенном состоянии » (еще не в blockchain), и вы не нарушите свои подписи. Однако, невозможно изменить какие-то важные данные, такие как исходные операции, суммы, порядок входов и выходов, а также другие метаданных. То, что вы можете сделать, это добавить некоторые фиктивные данные, что не меняет сути сделки, но меняет ее содержание.
Что это означает? Вы можете отправить ABC123 транзакцию, а кто-то может увидеть ее в сети и по тихому изменить в результате ее вид чего будет — ABC124. Если ему повезет, то ABC124 будут включена первой, а исходная ABC123 никогда не будет включена (для предотвращения даблспендинга). Нет никаких проблем для получателя сделки — он все равно получат все свои деньги на адрес, куда он запросил вывод. Но если он будут наблюдать за транзакцией в blockchain специально, то ABC123, он никогда там уже не обнаружит.
MtGox объясняет, как они были обмануты:
1). Пользователь делает запрос на вывод из MtGox некоторое кол-во Bitcoins на какой-то адрес пользователя
2). MtGox принимает некоторые из его собственных " неизрасходованных выходов транзакций " и составляет транзакцию, которая посылает средства на адрес пользователя.
3). MtGox помнит хэш этой транзакции и смотрит появилась ли она в blockchain.
4). Пользователь или кто-то другой видит неподтвержденную сделку MtGox в p2p сети. Он изменяет некоторые байты в нем, чтобы сохранить транзакцию в силе, но сделать ее другой и изменить ее хэш.
5). Новая, измененная транзакция включается в blockchain. MtGox послал деньги, но еще не знает об этом. Пользователь же, уже получил средства на кошелек и уже видит их.
6). Затем пользователь переходит на поддержку MtGox и жалуется, что деньги не поступили. Или, MtGox сам видит, что они наблюдали за сделки слишком долго, и может автоматически повторно отправить другую транзакцию, которая посылает некоторые другие " неизрасходованные TX выходы" на тот же адрес (повторяет отправку). Так или иначе, он создает много путаницы для MtGox и первоначально может даже привести их к отправке одной и той же сумы много раз.
Является ли это проблемой самого Bitcoin, который позволяет проводить такие изменения в транзакциях? Да, вероятно, так. Но это не совсем ясно, как его можно предотвратить вообще.
MtGox наткнулись на эту проблему, потому что они не знали, об этом свойстве Bitcoin.
MtGox должно решить проблему таким образом: вместо того, чтобы использовать blockchain для наблюдения за появлением хэша конкретной транзакции, следует смотреть, если адрес X ( задается пользователем ) получил сумму N ( указанный пользователем ) с выходами Y, Z и W (используется MtGox ). Это гарантировало бы, что даже если сделка будет изменена, они наверняка это увидят, получил ли пользователь деньги, предназначенные для него или нет.
This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.
Комментариев нет:
Отправить комментарий