Author

Topic: Насколько сеть биткоина уязвима для хаке&#108 (Read 307 times)

legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
В этой статье [1] в принципе дается ответ на вопрос в каких единицах измерения выражается размер транзакции и это определенно килобайты (kb), а не кибибайты (kib)
Еще нашел такой текст: https://bitcoin.org/en/release/v0.8.2#fee-policy-changes



А сначала попробовал все-таки создать транзакцию в Электруме (сегвит, 1 вх./1 вых.), изменив минимальную комиссию с 110 сатоши на 109 - не позволяет. Хотя, конечно, Электрум - не эталон, правильнее в консоли Bitcoin Core проверять, но лень было возиться.
legendary
Activity: 2450
Merit: 4415
🔐BitcoinMessage.Tools🔑
А вот я не уверен, что это так. Насколько я знаю, килобайтом с некоторых пор называют как 1024 байта, так и 1000 байт, причем все чаще второе. Для 210 ввели приставку киби, вот кибибайт - это однозначно 1024 байта.

Надо будет попробовать отправить транзакцию с комиссией 0.98 сат/Байт, по вашей логике она должна проходить.
В этой статье [1] в принципе дается ответ на вопрос в каких единицах измерения выражается размер транзакции и это определенно килобайты (kb), а не кибибайты (kib). Эти килобайты должны влезать в блок размером 1 MB (мегабайт), а не 1 MiB (мебибайт). Тут кажется все логично, потому что было бы неудобно рассчитывать сколько кибибайт влезает в 1 мегабайт. Что интересно, там есть неявное ограничение размера блока и оно составляет 32 MiB. Это максимальный разрешенный размер сообщения о блоке в P2P сети Биткоина.

[1] https://en.bitcoin.it/wiki/Weight_units
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
Если уж быть занудным, то 3000 сатошей за килобайт, это, строго говоря, не 3, а 3000/1024 сатошей за байт.
А вот я не уверен, что это так. Насколько я знаю, килобайтом с некоторых пор называют как 1024 байта, так и 1000 байт, причем все чаще второе. Для 210 ввели приставку киби, вот кибибайт - это однозначно 1024 байта.

Надо будет попробовать отправить транзакцию с комиссией 0.98 сат/Байт, по вашей логике она должна проходить.
copper member
Activity: 1554
Merit: 489
Stop the war!
Но фактически, минимальной комиссией, если вы не оператор майнинг пула, является другая дефолтовая константа в том же файле, 3000 сатошей:
https://github.com/bitcoin/bitcoin/blob/master/src/policy/policy.h#L55
Мне кажется, кто-то из нас неправильно толкует параметр DUST_RELAY_TX_FEE. Или вы неточно выразились, поэтому я вас не понял.

Я понимаю так, что эта цифра - 3 сат/байт - показывает тариф, при котором комиссия за трату выхода не должна превышать ценность этого выхода. Иначе этот выход считать пылью. Например, p2pkh-выход - это 34 байта (чтобы его создать) + 148 байт (чтобы его потратить в следующей транзакции) = 182 байта, умножаем на эту константу (на 3), получаем 546 байт - значит если этот выход меньше 546 сат, то он считается пылью. Для p2wpkh-выхода эта цифра будет (31+67)*3=294 вБайта. И так далее.

Вот тут все расписано в комментах и дальше собственно код
https://github.com/bitcoin/bitcoin/blob/master/src/policy/policy.cpp#L28

Если уж быть занудным, то 3000 сатошей за килобайт, это, строго говоря, не 3, а 3000/1024 сатошей за байт.

А так, вроде все верно вы написали. Минимальная возможная комиссия в стандартной транзакции 3000 сат/кБ, поэтому минимальный возможный выход, в стандартной p2pkh транзакции, равен 546 сат. Если p2pkh выход будет тратить меньше  546 сат, то стандартная комиссия 3000 сат/кБ окажется больше суммы выхода, этот выход будет считаться пылью и значит далеко такая транзакция не уйдет.
Хотя, как я сказал, оператор пула вполне может ее впихнуть в блок ибо это не правило консенсуса, как и многие другие нестандартные транзакции.
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
Но фактически, минимальной комиссией, если вы не оператор майнинг пула, является другая дефолтовая константа в том же файле, 3000 сатошей:
https://github.com/bitcoin/bitcoin/blob/master/src/policy/policy.h#L55
Мне кажется, кто-то из нас неправильно толкует параметр DUST_RELAY_TX_FEE. Или вы неточно выразились, поэтому я вас не понял.

Я понимаю так, что эта цифра - 3 сат/байт - показывает тариф, при котором комиссия за трату выхода не должна превышать ценность этого выхода. Иначе этот выход считать пылью. Например, p2pkh-выход - это 34 байта (чтобы его создать) + 148 байт (чтобы его потратить в следующей транзакции) = 182 байта, умножаем на эту константу (на 3), получаем 546 байт - значит если этот выход меньше 546 сат, то он считается пылью. Для p2wpkh-выхода эта цифра будет (31+67)*3=294 вБайта. И так далее.
copper member
Activity: 1554
Merit: 489
Stop the war!

А комиссия может быть любой, вплоть до нуля. Только нода решает, каким  комиссиям позволять заполнять свой мемпул, а какие  отфутболивать,


Код биткоина открыт и любой желающий может там что-нибудь для себя подкрутить, чтобы у него работало немножко не так, как у других.
Однако есть и единые для всех правили консенсуса. Правилам консенсуса должны подчиняться все блоки и транзакции в блоках.

Пыль в транзакциях - это не правило консенсуса. Майнеры могут подкрутить у себя код так, чтобы включать в блоки блатные транзакции хоть с нулевой комиссией. Но вообще, для обычных транзакций, где-то с 13 версии коры, в код забито дефолтовое значение минимальной комиссии для транзакции внутри блока: 1000 сатошей
https://github.com/bitcoin/bitcoin/blob/master/src/policy/policy.h#L25

Но фактически, минимальной комиссией, если вы не оператор майнинг пула, является другая дефолтовая константа в том же файле, 3000 сатошей:
https://github.com/bitcoin/bitcoin/blob/master/src/policy/policy.h#L55
hero member
Activity: 714
Merit: 1298
Брутфорсить можно при любых мощностях, даже с листочком бумаги и карандашом. Вопрос только насколько это будет эффективно в контексте атаки или хака. Возможно, что одного украденного ключа будет достаточно, чтобы дискредитировать Биткоин в глазах обычных пользователей. Во всяком случае, правительство обязательно попытается использовать подобный инцидент для атаки на Биткоин и укрепления позиции CBDC или фиатной системы.

Это важное замечание. У меня возник такой вопрос: пробовал ли кто-то подсчитать, сколько денег стоит убить биткоин?
Это можно сделать например так: завести миллион кошельков и купить на них по минимуму биткоинов, и перекидывать по 1 сатоши с одного на другой и обратно, пока блокчейн не разпухнет. Насколько это реально?
Да, проворачивали такое несколько раз в старых версиях биткоина, пока транзакции с нулевыми комиссиями были в порядке вещей. Биткоин тогда был молодой и не особо популярный. Возможность переводить деньги без комиссий, преподносилась как одна из основных фичей.
Как только разрабы поняли проблему подобного спама, то запретили нулевые комиссии в следующих версиях кошельков. Именно из-за таких вот спамеров биткоин получил сейчас такие конские комиссии, что практически потерял привлекательность как средство дешевых микроплатежей, для которых первоначально и был задуман.

Вы наверное имели ввиду не комиссию, а минимальное значение сатошей, которое можно отправить в сеть.

В большинстве кошельков это что-то около 546 сатошей.

А комиссия может быть любой, вплоть до нуля. Только нода решает, каким  комиссиям позволять заполнять свой мемпул, а какие  отфутболивать,

И сейчас в блоках встречаются транзакции с комиссиями близкими к нулю. Включают их видимо "по блату". Wink

Сервис-отправитель может потребовать у клиента оплатить товар заново и я не вижу причин почему клиент может отказаться

Конечно не может отказаться , если этим тoваром является что-то типа USDT.

Надеюсь сарказм понятен и дальнейших объяснений не потребуется.

copper member
Activity: 1554
Merit: 489
Stop the war!
Брутфорсить можно при любых мощностях, даже с листочком бумаги и карандашом. Вопрос только насколько это будет эффективно в контексте атаки или хака. Возможно, что одного украденного ключа будет достаточно, чтобы дискредитировать Биткоин в глазах обычных пользователей. Во всяком случае, правительство обязательно попытается использовать подобный инцидент для атаки на Биткоин и укрепления позиции CBDC или фиатной системы.

Это важное замечание. У меня возник такой вопрос: пробовал ли кто-то подсчитать, сколько денег стоит убить биткоин?
Это можно сделать например так: завести миллион кошельков и купить на них по минимуму биткоинов, и перекидывать по 1 сатоши с одного на другой и обратно, пока блокчейн не разпухнет. Насколько это реально?
Да, проворачивали такое несколько раз в старых версиях биткоина, пока транзакции с нулевыми комиссиями были в порядке вещей. Биткоин тогда был молодой и не особо популярный. Возможность переводить деньги без комиссий, преподносилась как одна из основных фичей.
Как только разрабы поняли проблему подобного спама, то запретили нулевые комиссии в следующих версиях кошельков. Именно из-за таких вот спамеров биткоин получил сейчас такие конские комиссии, что практически потерял привлекательность как средство дешевых микроплатежей, для которых первоначально и был задуман.
legendary
Activity: 2450
Merit: 4415
🔐BitcoinMessage.Tools🔑
Я тоже не понимаю. Если злоумышленник имеет больше половины мощности сети, то он же скорее всего обгонит честную цепь блоков всё равно. Ну выкатит он свою секретную цепочку не через два, а через 20 блоков, какая разница? Хотя, конечно, небольшая разница есть - если от такого пула долго не будет видно активности, это станет подозрительным. Да, еще вы сказали "при наличии злого пула". Но подразумевается, что его злонамеренность еще не очевидна, он делает это впервые (думаю, такой фокус больше одного раза пулу показать не удастся), иначе сами участники пула начнут разбегаться, и мощность упадет ниже 50%.
Тут наверное подразумевается отправка каких-то взаимных транзакций, может быть реального товара, другой криптовалюты или фиата. Если транзакция была совершена, товар отправлен, а после злонамеренный пул представляет свою историю, где эта транзакция никогда не была сделана. В итоге получаем, что у транзактанта - получателя товара останутся и деньги, и сам товар. Но я думаю, что это  не такая уж и серьезная проблема. Сервис-отправитель может потребовать у клиента оплатить товар заново и я не вижу причин почему клиент может отказаться. У них же все равно есть данные этого клиента, и там потом проблем не оберешься, еще по судам затаскают. И дая согласен, что на уровне пула вряд ли возможна атака 51%, потому что участники обычно не заинтересованы в нечестном заработке, как это ни парадаксально для "жадных" майнеров.
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
Я не ошибаюсь, просто мой ответ подразумевает условие "при достаточном количестве подтверждений". Самым оптимальным значением для сети Биткоина считается 6 блоков, но при наличии злого пула можно это количество увеличить многократно.
Я тоже не понимаю. Если злоумышленник имеет больше половины мощности сети, то он же скорее всего обгонит честную цепь блоков всё равно. Ну выкатит он свою секретную цепочку не через два, а через 20 блоков, какая разница? Хотя, конечно, небольшая разница есть - если от такого пула долго не будет видно активности, это станет подозрительным. Да, еще вы сказали "при наличии злого пула". Но подразумевается, что его злонамеренность еще не очевидна, он делает это впервые (думаю, такой фокус больше одного раза пулу показать не удастся), иначе сами участники пула начнут разбегаться, и мощность упадет ниже 50%.
legendary
Activity: 2450
Merit: 4415
🔐BitcoinMessage.Tools🔑
Шибко ошибаетесь уважемый.

51% общего хешрейта это не дулю показать воробьям.

Котролируя 51 процент вычислительной мощности пул в состоянии создать альтернативную цепочку блоков и переписать свои потраченные UTXO бы хотя в нескольких последних блоках старой цепочки на новые  "свои" адреса, осущив таким образом двойную трату и чем больше таких блоков переписано, тем больше навар. Эти UTXO по сути будут украдены у их владельцев, с которыми ими расплатились.

Посмотрите, что такое атака 51. Информации полным полно, поэтому ссылок не привожу.
Я не ошибаюсь, просто мой ответ подразумевает условие "при достаточном количестве подтверждений". Самым оптимальным значением для сети Биткоина считается 6 блоков, но при наличии злого пула можно это количество увеличить многократно. Интересно, что многие альтернативные PoW-блокчейны хвалятся быстротой транзакций и скоростью подтверждений, но не берут в расчет то количество мощностей, которое необходимо для переписи последней истории. Обычно, чем быстрее блокчейн, тем дольше вам куковать в ожидании когда другая сторона соизволит отправить товар или деньги.

А вместо ссылок и чтения литературы, можно в очередной раз посмотреть видео Андреаса Антонопулоса, он много говорил по этому вопросу.
hero member
Activity: 714
Merit: 1298

а можно путём подмены цепочки блоков (хотя бы нескольких из последних) и это уже ближе к телу поставленного вопроса "Насколько сеть биткоина уязвима для хак".

Уже был случай, когда мощность одного единственного  пула соответствовала 51% мощности всей сети. И это наблюдалось в течении нескольких часов ( по слухам до полусуток). В это время  блокчейн мог бы быть "хакнут" пулом. Smiley
Пул с большой майнинговой мощностью не сможет украсть средства пользователей и не сможет совершать двойные траты.




 Шибко ошибаетесь уважемый.

51% общего хешрейта это не дулю показать воробьям.

Котролируя 51 процент вычислительной мощности пул в состоянии создать альтернативную цепочку блоков и переписать свои потраченные UTXO хотя бы в нескольких последних блоках старой цепочки на новые  "свои" адреса, осущив таким образом двойную трату и чем больше таких блоков переписано, тем больше навар. Эти UTXO по сути будут украдены у их владельцев, с которыми ими расплатились.

Посмотрите, что такое атака 51. Информации полным полно, поэтому ссылок не привожу.
newbie
Activity: 57
Merit: 0
Понятно более менее, мало шарю, но хоть как то  Cheesy
legendary
Activity: 2450
Merit: 4415
🔐BitcoinMessage.Tools🔑
Это важное замечание. У меня возник такой вопрос: пробовал ли кто-то подсчитать, сколько денег стоит убить биткоин?
Это можно сделать например так: завести миллион кошельков и купить на них по минимуму биткоинов, и перекидывать по 1 сатоши с одного на другой и обратно, пока блокчейн не разпухнет. Насколько это реально?
Скорее всего, вы сломаете себе зубы, разоритесь, а блокчейн съест ваши монеты и не подавится. Сейчас средняя комиссия за транзакцию около 5$, то есть при отправке вы будете терять эту сумму. Средний размер транзакции возьмем 500 байт, но транзакция с одним входом и выходом будет еще меньше. Допустим, ваш бюджет 10 миллионов долларов, насколько вы сможете увеличить размер блокчейна? На каждом адресе будет по 10$, то есть больше двух транзакций вы совершить не сможете. 2 * 1000000 адресов получаем 2000000 транзакций. Размер транзакции 500 байт, то есть 500 * 2000000 / 1024 / 1024 = 953 Мб примерно. Соотношение линейное, за 100 миллионов долларов вы увеличите блокчейн на 10 гб, за миллиард долларов на 100 гб, за 10 миллиардов на 1 Тб, и так далее. Нужно еще учесть, что при заполнении мемпула размер комиссии увеличится многократно, так что окажется, что реальное распухание в несколько раз меньше.
legendary
Activity: 2058
Merit: 1257
⭐⭐⭐⭐⭐⭐
^ я могу рассказать одну притчу.
Quote
Мудрец попросил у короля за первую клетку шахматной доски заплатить ему одно зерно пшеницы, за вторую — два, за третью — четыре и так далее, удваивая количество зёрен на каждой следующей клетке. Правитель, не разбиравшийся в математике, быстро согласился, даже несколько обидевшись на столь невысокую оценку изобретения, и приказал казначею подсчитать и выдать изобретателю нужное количество зерна. Однако, когда неделю спустя казначей всё ещё не смог подсчитать, сколько нужно зёрен, правитель спросил, в чём причина такой задержки. Казначей показал ему расчёты и сказал, что расплатиться невозможно, разве только осушить моря и океаны и засеять всё пространство пшеницей.

Количество зерна примерно в 1800 раз превышает мировой урожай пшеницы за год (в 2008/09 аграрном году урожай составил 686 млн тонн[1]), то есть превышает весь урожай пшеницы, собранный за всю историю человечества. Количество зёрен составляет примерно 0,0031 % числа Авогадро. В единицах массы: если принять, что одно зёрнышко пшеницы имеет массу 0,065 грамма (Troy grain тройское зерно: 1 gr = 0,06479891 гран), тогда общая масса пшеницы на шахматной доске составит 1200 миллиардов тонн или 1,2 триллиона тонн:
....
источник
member
Activity: 264
Merit: 27
Брутфорсить можно при любых мощностях, даже с листочком бумаги и карандашом. Вопрос только насколько это будет эффективно в контексте атаки или хака. Возможно, что одного украденного ключа будет достаточно, чтобы дискредитировать Биткоин в глазах обычных пользователей. Во всяком случае, правительство обязательно попытается использовать подобный инцидент для атаки на Биткоин и укрепления позиции CBDC или фиатной системы.

Это важное замечание. У меня возник такой вопрос: пробовал ли кто-то подсчитать, сколько денег стоит убить биткоин?
Это можно сделать например так: завести миллион кошельков и купить на них по минимуму биткоинов, и перекидывать по 1 сатоши с одного на другой и обратно, пока блокчейн не разпухнет. Насколько это реально?
legendary
Activity: 2450
Merit: 4415
🔐BitcoinMessage.Tools🔑
Ну хакнуть можно по разному.

Можно путём брутфорсинга приватных ключей, что при существующих мощностях практически невозможно,
Брутфорсить можно при любых мощностях, даже с листочком бумаги и карандашом. Вопрос только насколько это будет эффективно в контексте атаки или хака. Возможно, что одного украденного ключа будет достаточно, чтобы дискредитировать Биткоин в глазах обычных пользователей. Во всяком случае, правительство обязательно попытается использовать подобный инцидент для атаки на Биткоин и укрепления позиции CBDC или фиатной системы.

Часто слышал, что когда разовьются квантовые компьютеры, они расшифруют блокчейн биткоина и это будет ужасной проблемой. А насколько такой сценарий реален уже сейчас, если талантливые хакеры сидят над этой задачей?


Пока существуют только лабораторные образцы квантовых компьютеров и поддержка их работоспособности очень сложная, что бы избежать разрушения кубитов их охлаждают жидким гелием для создания сверх низких температур.
Коммерческие образцы квантовых компьютеров планируются не раньше 2035-2040 года, поэтому в руки хакеров такие игрушки еще не скоро попадут.
Для взлома Биткоина нужен компьютер с 4000 кубитами.

Американская Atom Computing анонсировала первый в мире квантовый компьютер с 1000 кубитами
Встроить квантовую устойчивость в сеть Биткоина гораздо проще, чем добавить еще кубитов, но это потребует хардфорка и, скорее всего, замедлит блокчейн еще больше. То есть здесь опять имеет место возможная дискредитация: хардфорки здесь никто не жалует, а с медленными транзакциями мемпул забьется еще больше.
sr. member
Activity: 601
Merit: 291
Часто слышал, что когда разовьются квантовые компьютеры, они расшифруют блокчейн биткоина и это будет ужасной проблемой. А насколько такой сценарий реален уже сейчас, если талантливые хакеры сидят над этой задачей?


Пока существуют только лабораторные образцы квантовых компьютеров и поддержка их работоспособности очень сложная, что бы избежать разрушения кубитов их охлаждают жидким гелием для создания сверх низких температур.
Коммерческие образцы квантовых компьютеров планируются не раньше 2035-2040 года, поэтому в руки хакеров такие игрушки еще не скоро попадут.
Для взлома Биткоина нужен компьютер с 4000 кубитами.

Американская Atom Computing анонсировала первый в мире квантовый компьютер с 1000 кубитами
hero member
Activity: 714
Merit: 1298
Ну хакнуть можно по разному.

Можно путём брутфорсинга приватных ключей, что при существующих мощностях практически невозможно,



а можно путём подмены цепочки блоков (хотя бы нескольких из последних) и это уже ближе к телу поставленного вопроса "Насколько сеть биткоина уязвима для хак".

Уже был случай, когда мощность одного единственного  пула соответствовала 51% мощности всей сети. И это наблюдалось в течении нескольких часов ( по слухам до полусуток). В это время  блокчейн мог бы быть "хакнут" пулом. Smiley
legendary
Activity: 2450
Merit: 4415
🔐BitcoinMessage.Tools🔑
Часто слышал, что когда разовьются квантовые компьютеры, они расшифруют блокчейн биткоина и это будет ужасной проблемой. А насколько такой сценарий реален уже сейчас, если талантливые хакеры сидят над этой задачей?
Возможности человеческого интеллекта очень велики, кроме алгоритмов тут работает разная эвристика, и талантливый человек расшифрует всё что захочет за достаточное время. Как аналогия - насколько я знаю, сейчас расшифрованы почти все древние письмена, иероглифы, клинописи и т.п. Ещё аналогия - если вы защитите архив паролем, компьютеру потребуется миллиард лет чтобы перебрать ваши пароли, но конечно талантливый программист сможет относительно быстро разобраться.
Вообще, если говорить о второй аналогии, то можно зашифровать файл и так чтобы его в принципе было невозможно расшифровать - достаточно прибавить к нему файл такого же размера из случайных байт. Т.е. для расшифровки необходимо сохранить этот второй файл. Не знаю, может этот факт в этой теме для чего-то пригодится.
В блокчейне Биткоина ничего не зашифровано, поэтому и расшифровывать тут тоже нечего. И тут скорее не хакеры нужны, а талантливые математики, которые предложат решение для так называемой проблемы дискретного логарифма. Нет, разумеется алгоритмы решения проблемы уже есть (например, квантовый алгоритм Шора), но они как раз требуют больших вычислительных мощностей, которые могут обеспечить только квантовые компьютеры. Для взлома Биткоина талантливые математики, или скорее гениальные, должны предложить решение уже сейчас, и для него не должно требоваться ничего кроме обычного карандаша и листка бумаги. Если такое произойдет, то у Биткоина будут большие проблемы, потому что станет возможно для любого человека вычислить приватный ключ из публичного за то время, пока транзакция еще не подтверждена в блокчейне.
member
Activity: 264
Merit: 27
Часто слышал, что когда разовьются квантовые компьютеры, они расшифруют блокчейн биткоина и это будет ужасной проблемой. А насколько такой сценарий реален уже сейчас, если талантливые хакеры сидят над этой задачей?
Возможности человеческого интеллекта очень велики, кроме алгоритмов тут работает разная эвристика, и талантливый человек расшифрует всё что захочет за достаточное время. Как аналогия - насколько я знаю, сейчас расшифрованы почти все древние письмена, иероглифы, клинописи и т.п. Ещё аналогия - если вы защитите архив паролем, компьютеру потребуется миллиард лет чтобы перебрать ваши пароли, но конечно талантливый программист сможет относительно быстро разобраться.
Вообще, если говорить о второй аналогии, то можно зашифровать файл и так чтобы его в принципе было невозможно расшифровать - достаточно прибавить к нему файл такого же размера из случайных байт. Т.е. для расшифровки необходимо сохранить этот второй файл. Не знаю, может этот факт в этой теме для чего-то пригодится.
Jump to: