Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
5 ноября 2014, 12:29:34 PM   # 1
 
 
Сообщения: 1148
Цитировать по имени
цитировать ответ
по умолчанию Re: Вспомогательный заголовок - Improved предложения

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Это основано на предложение я сделал некоторое время назад. Это процесс, в котором размер заголовка может быть увеличен. Чистейший способ сделать это будет трудно вилкой изменения к корню Merkle.

Merkle_root = Hash (старый Merkle корень | заголовок хэш-Окс)

Это способ сделать это с мягкой вилкой, но с потерей эффективности.

Первоначальное предложение здесь:



Проблема с этим предложением в том, что он ограничивает количество сделок с мощностью 2.

Основная идея состояла в том, чтобы иметь 2 ^ п + 1 сделок. Например, если есть 513 сделок, то первые 512 сделок будут способствовать левому потомку корня и только в 513-м сделки будет способствовать праву ребенка.

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

Сделка будет 513 имеет хэш вспомогательного заголовка, закодированный в нем. Это означает, что короткое доказательство может быть использовано, чтобы доказать, что вспомогательный заголовком является частью блока.

Как правило, при предоставлении филиала Меркла, вам необходимо предоставить хэш пути не принимается. При переходе от родительского узла к левому ребенка, вы обеспечиваете хэш правого ребенка и наоборот.

Однако, когда речь идет о последних сделках, есть только левый ребенок. Если нет никакого права ребенка, то вам не нужно отправить его хэш, поскольку он является копией хэша левого ребенка. Это происходит, если имеется нечетное число узлов для этого уровня.

Если есть 513 сделок, то это будет происходить на всех уровнях, кроме последнего.

513 -> 257 ->  129 -> 65 -> 33 -> 17 -> 9 -> 5 -> 3 -> 2 -> 1

Только 2 -> 1 требует преобразования левой хэш которая должна быть предоставлена ​​(как это имеет четное число узлов). Это означает, что ветвь пути Меркл может быть закодирован с 32 байта. Блок 512 транзакций будет обычно требует около 300 байт для пути и требование будет увеличивать блоки становятся больше 32 * log2 (tx_count).

Трудность этого предложения заключается в том, что количество сделок ограничено. Горняк с 1023 транзакций в его пуле памяти будет только в состоянии включить 512 из них в блоке он является добыча. Заполнения операция может быть использована, чтобы заполнить дополнительное пространство.

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

Например, если бы было 11 нормальных операций и 1 сделка заголовка, то Merkle дерево будет выглядеть следующим образом

11 сделки + 1: 12 -> 6 -> 3 -> 2 -> 1

11 = 1011 (3 не ноль)

27 сделок + 1: 28 -> 14 -> 7 -> 4 -> 2 -> 1

27 = 11011 (4 отлична от нуля)

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

16: 10000
17: 10001
18: 10010
19: 10011
20: 10100
21: 10101
22: 10110
23: 10111
24: 11000
25: 11001
26: 11010
27: 11011
28: 11100
29: 11101
30: 11110
31: 11111

Если 31 сделки были в пуле памяти, то можно было бы включить только 28 (90,3%).

Если 4 ненулевые биты были разрешены, могут быть включены, то 95% сделок и обычно больше, чем это.

Для больших графов ТХ, 3 бита будет иметь худший случай, 87,5% сделок, включенных и 4 бита будет иметь худший случай 93.75.
TierNolan сейчас офлайн Пожаловаться на TierNolan   Ответить с цитированием Мультицитирование сообщения от TierNolan Быстрый ответ на сообщение TierNolan


Как заработать Биткоины?
Без вложений. Не майнинг.


8 ноября 2014, 1:11:03 PM   # 2
 
 
Сообщения: 1148
Цитировать по имени
цитировать ответ
по умолчанию Re: Вспомогательный заголовок - Improved предложения

Получил 1806 Биткоинов
Реальная история.





Это доказательство того, что число 1-х годов в счет сделки, за исключением дополнительной сделки, определяет количество сводок, которые должны быть предоставлены для филиала Merkle.

Определить C (п) как количество дайджестов, необходимых для филиала Merkle, если есть N листы

Предположение о том, что

С (п) = NumberOfOnes (п - 1)

Базовый вариант

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

С (1) = 0

С (1) = NumberOfOnes (1-1) = NumberOfOnes (0) = 0

Предположение справедливо для C (1)

Одд Case

Если п нечетно, то последний дайджест повторяется. Это означает, что ни одна ветвь дайджеста не требуется.

С ((п + 1) / 2) = С (п) + 0

Для предположения о проведении,

NumberOfOnes ((п + 1) / 2 - 1) = NumberOfOnes (п - 1) при п нечетном

Это то же самое, как требование

NumberOfOnes (((п + 1) + 1) / 2 - 1) = NumberOfOnes ((п + 1) - 1) для четных п

NumberOfOnes ((п + 2) / 2 - 1) = NumberOfOnes (п) по п даже

NumberOfOnes ((п + 2 - 2) / 2) = NumberOfOnes (п) для четных п

NumberOfOnes (п / 2) = NumberOfOnes (п) при п даже

Верно, так как сдвигает вправо четное число от 1 причин ее следует разделить на 2 без какого-либо 1-х утрачиваются.

Это означает, что если предположение верно для (п + 1) / 2, то это верно для п, когда п нечетно.

если п > 1 и п нечетно, то (п + 1) / 2 >= 1, а (п + 1) >= 2.

Даже Case

Если п четно, то последний дайджест не повторяется. Это означает, что ветвь дайджест требуется.

С (п / 2) = С (п) - 1

Для предположения о проведении,

NumberOfOnes (п / 2 - 1) = NumberOfOnes (п - 1) - 1 для четных п

Это то же самое, как требование

NumberOfOnes ((п + 1) / 2 - 1) = NumberOfOnes ((п + 1) - 1) - 1 при п нечетном

NumberOfOnes ((п + 1 - 2) / 2) = NumberOfOnes (п) - 1 при п нечетном

NumberOfOnes ((п - 1) / 2) = NumberOfOnes (п) - 1 для нечетных п

Это верно, так как если п нечетно, вычитание 1 из п имеет эффект установки МДРА к нулю. Разделить на 2 сдвигает все одно вправо без изменения количества единиц.

Это дает один меньше одного относительно п, по мере необходимости.

Это означает, что если предположение верно для п / 2, то это верно для п, когда п четно.

Если п > 1 и п четно, то п / 2 >= 1.

Вывод

Предположение верно при п = 1.

Если это верно для 1 <= п < к, то это верно для к одной из двух указанных выше случаев.

По индукции предположение верно для всех п >= 1.
TierNolan сейчас офлайн Пожаловаться на TierNolan   Ответить с цитированием Мультицитирование сообщения от TierNolan Быстрый ответ на сообщение TierNolan



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW