Bitcoin Forum
November 18, 2024, 11:46:35 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Что мешает вставить несколько блоков в се  (Read 1191 times)
Alda Gordaya (OP)
Member
**
Offline Offline

Activity: 61
Merit: 10



View Profile
January 27, 2013, 03:38:22 AM
 #1

Что мешает вставить несколько блоков в середину цепочки?
(ну, кроме контрольных точек (checkpoints))

ведь следующие блоки ссылаются на предыдущий блок (кстати на один, или на несколько?),
а это значит, что такой блок можно подобрать по-новой,
причем контрольная сумма у него останется прежней, но ссылаться он теперь будет на другие предыдущие блоки.



И другой вопрос - merkle tree оно одно общее на все блоки,
или в каждом блоке своё merkle tree, которые не входят в одно общее дерево?
Yurock
Sr. Member
****
Offline Offline

Activity: 462
Merit: 250


View Profile
January 27, 2013, 07:14:09 AM
 #2

такой блок можно подобрать по-новой,
причем контрольная сумма у него останется прежней
Сегодняшние технологии этого не позволяют. Чтобы сбрутить 256-битный SHA-2 надо перебрать до 115792089237316195423570985008687907853269984665640564039457584007913129639936 вариантов. Со скоростью подбора 1 терахеш в секунду на это уйдёт в среднем 1834614945960976047347881096925747012657331113038389548626 лет. Майнеры брутят лишь первые 50-60 битов хеша ("контрольной суммы").

в каждом блоке своё merkle tree, которые не входят в одно общее дерево?
Да.
tvv
Legendary
*
Offline Offline

Activity: 1302
Merit: 1005


View Profile WWW
January 27, 2013, 07:57:24 AM
 #3

Что мешает вставить несколько блоков в середину цепочки?

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

Потом правда чтобы заменить базу придеться применить какой-нить хак,
хотя, впрочем, более длинную цепочку биткоин всосет автоматически стандартным клиентом,
но так можно пересчитать только последнии блоки после последнего чекпоинта.
(это будет труднее сделать через атаку на пулы, но набег на склад AMD или посредничество
в продаже асиков даст новых ресурсов больше чем у всей сети, и это легко сделать)


Поэтому в проектах серьезных валют от этой "SHA навыворот" пришлось отказаться совсем,
заменив ее прямой ЭЦП - вот ее-то пока невозможно взломать вообще...
(кстати после этого уже никакие 51% не помогают - даже взлом 99.999% компьютеров сети
не приведет к взлому валюты - если где-то останеться хоть 1 правильная копия,
или частично по чуть-чуть на нескольких узлах, то вся история будет автоматически восстановлена)


(ну, кроме контрольных точек (checkpoints))

да они тоже особо не мешают - но это уже не может сделать любой дурак...


ведь следующие блоки ссылаются на предыдущий блок (кстати на один, или на несколько?),
а это значит, что такой блок можно подобрать по-новой,
причем контрольная сумма у него останется прежней,

во, мне нравиться ход ваших мыслей Wink

Наконец-то хоть кто-то начал думать правильно Wink

И другой вопрос - merkle tree оно одно общее на все блоки,
или в каждом блоке своё merkle tree, которые не входят в одно общее дерево?

да, это еще одна дырка.  Но это мало кто понимает - так что можете не беспокоиться об этом...
(тем кто могут это взломать нет смысла разваливать золотую жилу)

Vladimir
tvv
Legendary
*
Offline Offline

Activity: 1302
Merit: 1005


View Profile WWW
January 27, 2013, 08:03:18 AM
 #4

Сегодняшние технологии этого не позволяют. Чтобы сбрутить 256-битный SHA-2 надо перебрать до 115792089237316195423570985008687907853269984665640564039457584007913129639936 вариантов.

кстати, какие аналитические пакеты используете?..


Со скоростью подбора 1 терахеш в секунду на это уйдёт в среднем 1834614945960976047347881096925747012657331113038389548626 лет. Майнеры брутят лишь первые 50-60 битов хеша ("контрольной суммы").

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

Vladimir
PS  кто догадается как сделать защиту чтобы даже в случае полного перебора не помогло?..
Yurock
Sr. Member
****
Offline Offline

Activity: 462
Merit: 250


View Profile
January 27, 2013, 08:33:06 AM
 #5

ну это только если не воспользуются алгоритмами для ускорения перебора - для многих функций они уже найдены.
Всё, что Вы получите, это увеличение скорости перебора.
1000 терахешей в секунду – 1834614945960976047347881096925747012657331113038389548 лет.
1000000 терахешей в секунду – 1834614945960976047347881096925747012657331113038389 лет.
1000000000 терахешей в секунду – 1834614945960976047347881096925747012657331113038 лет.
Нет пути.

Можно сделать форк цепочки. Это намного более реально и многократно обсуждалось. А тема этой ветки именно об изменении одного блока, которое не затрагивает все последующие блоки.
блок можно подобрать по-новой,
причем контрольная сумма у него останется прежней
tvv
Legendary
*
Offline Offline

Activity: 1302
Merit: 1005


View Profile WWW
January 27, 2013, 08:45:34 AM
 #6

1  Считали как 2^256 ?   Нифига - в асимметричных кодах надо на перебор корень из этого, то есть 2^128.

2  Ускорение возможно не только на несколько битов, но и в разы по числу битов, то есть экспоненциально.

3  Заменить один блок можно, но потом надо что-то не стандартное(вирус?) чтобы его переписать на всех дисках сети...
  (счас у провайдеров внедряют анализаторы траффика, вот на этом уровне при обмене легко заменить любой блок)

4  Последующая история ссылается на блок и использует его, поэтому провести кардинальные изменения
  таким образом не возможно.  Проще переписать всю цепочку нахрен, подбирая порядок транз и добавочный
  мусор в блоках так, чтобы хэши в контрольных точках не изменились.  Но это тоже не типовое решение.
Yurock
Sr. Member
****
Offline Offline

Activity: 462
Merit: 250


View Profile
January 27, 2013, 09:09:28 AM
 #7

надо на перебор корень из этого, то есть 2^128.
Опишите алгоритм подбора, применительно к данной теме, или киньте ссылку.
Balthazar
Legendary
*
Offline Offline

Activity: 3108
Merit: 1359



View Profile
January 27, 2013, 12:15:46 PM
 #8

В каждом v2 блоке содержится его номер, и при несовпадении с реальным номером блока в цепочке он становится инвалидом, даже если он валидный по всем остальным критериям. v2 блоков на данный момент примерно 50%, и эта доля растет. Условие задачи выполнить "чуть-чуть" сложнее, потому что коллизию потребуется найти не для одного последующего блока, а для каждого последующего v2 блока.
tvv
Legendary
*
Offline Offline

Activity: 1302
Merit: 1005


View Profile WWW
January 27, 2013, 01:02:15 PM
 #9

Каждый думает в меру своей испорченности, а балтазар по-своему Wink

Нафиг двигать остальные блоки?

Собсно исходный вопрос(как я понял) был даже не в замене самого блока вообще, заголовок не трогать,
а заменить кусок тела блока на другой с таким-же хэшем.   Вероятность хоть и мала, но рано или поздно
хэши даже случайно могут совпасть у разных массивов данных...

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


Реально(если вирусом не переписывать все БД по сети) это не поможет, поскольку по всей остальной
сети история правильная, а для отката цепочки и загрузки другой причин нет.  (а пересчитав все
с большей сложностью сеть перейдет на новую цепочку автоматически)

Vladimir
PS  да, чтобы не гадали(думать я смотрю вам все равно не чем Wink ) - получается что степень защиты
истории биткойна не криптографическая, а на уровне обычной бумажной бухгалтерии, из-за странного
использования криптографии.  Хотя можно было запечатать цепочку прямыми ЭЦП так что не распечатаешь...
(но зато игра получилась в 51% интересная, вроде там даже какой-то форк прибили такой атакой насколько я помню? Wink )

PPS  бальт, лучше напряги извилины, и вспомни кто именно предложил эту дурацкую идею с "обратной SHA"?
Сам Сатоши или кто-то другой?     
Да, и у Сатоши какой ник и где он писал?
Balthazar
Legendary
*
Offline Offline

Activity: 3108
Merit: 1359



View Profile
January 27, 2013, 01:24:26 PM
 #10

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

Quote
Хотя можно было запечатать цепочку прямыми ЭЦП так что не распечатаешь..
С прямыми ЭЦП цепочка не нужна. Пора бы уже осознать это и не скрещивать ужа с носорогом.

Quote
бальт, лучше напряги извилины, и вспомни кто именно предложил эту дурацкую идею с "обратной SHA"?
Если ты чего-то не в состоянии осилить в силу собственной упертости, это не означает что идея дурацкая. Предложи свой метод децентрализованной и не доверяемой реализации сервера временных меток, посмотрим насколько не дурацкой будет идея. Иначе, как уже говорили... Стена, разбег, удар.
tvv
Legendary
*
Offline Offline

Activity: 1302
Merit: 1005


View Profile WWW
January 27, 2013, 02:03:58 PM
 #11

С прямыми ЭЦП цепочка не нужна.

ну наконец-то до тебя дошло...

А чего тупишь?..
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!