Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
18 августа 2011, 7:45:33 PM   # 1
 
 
Сообщений: 42
Цитировать по имени
цитировать ответ
по умолчанию Re: Вопрос о генерации адреса с помощью открытого ключа

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Уважаемые все,

Как я в настоящее время понимаю, Bitcoin адреса генерируются из открытых ключей ECDSA следующим образом (без учета каких-либо вопросов, порядок байтов на данный момент):

адрес = base58 (versionbyte + ripemd160 (sha256 (Публичных)) + hashCheck),
hashCheck = first4bytesof (sha256 (sha256 (versionbyte + ripemd160 (sha256 (Публичный)))))

где versionbyte является 0 в реальной сети и 111 в тестовой сети.

Есть ли какая-либо техническая / криптографическую причина, почему это должно быть настолько сложными? Другими словами, будет следующий метод для создания адресов есть серьезный недостаток, что описанный выше метод не будет:

адрес = base58 (версия байты + first160bitsof (sha256 (Публичный)) + crcCheck)
crcCheck = CRC32 (версия байты + first160bitsof (sha256 (Публичный)))

Или уж на то пошло, есть ли смысл в sha256'ing открытый ключ, чтобы начать с? то есть, будет замена first160bitsof (SHA256 (ключ PUB)) только с first160bitsof (Публичный) делать так же хорошо?

Благодаря!
patvarilly сейчас офлайн Пожаловаться на patvarilly   Ответить с цитированием Мультицитирование сообщения от patvarilly Быстрый ответ на сообщение patvarilly


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


18 августа 2011, 9:11:40 PM   # 2
 
 
Сообщения: 406
Цитировать по имени
цитировать ответ
по умолчанию Re: Вопрос о генерации адреса с помощью открытого ключа

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





Цитата: patvarilly
Уважаемые все,

Как я в настоящее время понимаю, Bitcoin адреса генерируются из открытых ключей ECDSA следующим образом (без учета каких-либо вопросов, порядок байтов на данный момент):

адрес = base58 (versionbyte + ripemd160 (sha256 (Публичных)) + hashCheck),
hashCheck = first4bytesof (sha256 (sha256 (versionbyte + ripemd160 (sha256 (Публичный)))))

где versionbyte является 0 в реальной сети и 111 в тестовой сети.
Верный.

Цитата: patvarilly
Есть ли какая-либо техническая / криптографическую причина, почему это должно быть настолько сложными? Другими словами, будет следующий метод для создания адресов есть серьезный недостаток, что описанный выше метод не будет:

адрес = base58 (версия байты + first160bitsof (sha256 (Публичный)) + crcCheck)
crcCheck = CRC32 (версия байты + first160bitsof (sha256 (Публичный)))
Не вижу причин, почему это было бы гораздо слабее, на самом деле.

Цитата: patvarilly
Или уж на то пошло, есть ли смысл в sha256'ing открытый ключ, чтобы начать с? то есть, будет замена first160bitsof (SHA256 (ключ PUB)) только с first160bitsof (Публичный) делать так же хорошо?

Благодаря!
Не совсем уверен, что я сомневаюсь, разоблачающая частью Публичного задолго является проблемой. Но тогда я не криптограф знакомы с ECC, так что я бы не стал ставить будущее валюты на нем.
ArtForz сейчас офлайн Пожаловаться на ArtForz   Ответить с цитированием Мультицитирование сообщения от ArtForz Быстрый ответ на сообщение ArtForz

18 августа 2011, 9:24:15 PM   # 3
 
 
Сообщения: 1134
Цитировать по имени
цитировать ответ
по умолчанию Re: Вопрос о генерации адреса с помощью открытого ключа

Цитата: patvarilly
Есть ли какая-либо техническая / криптографическую причина, почему это должно быть настолько сложными? Другими словами, будет следующий метод для создания адресов есть серьезный недостаток, что описанный выше метод не будет:

адрес = base58 (версия байты + first160bitsof (sha256 (Публичный)) + crcCheck)
crcCheck = CRC32 (версия байты + first160bitsof (sha256 (Публичный)))
Не вижу причин, почему это было бы гораздо слабее, на самом деле.
Я тоже, но это всего лишь мнение

Цитата: patvarilly
Или уж на то пошло, есть ли смысл в sha256'ing открытый ключ, чтобы начать с? то есть, будет замена first160bitsof (SHA256 (ключ PUB)) только с first160bitsof (Публичный) делать так же хорошо?

Благодаря!
Не совсем уверен, что я сомневаюсь, разоблачающая частью Публичного задолго является проблемой. Но тогда я не криптограф знакомы с ECC, так что я бы не стал ставить будущее валюты на нем.
В этом случае будет 2 ^ 96 известен pubkeys с тем же адресом, это может быть проблемой
jackjack сейчас офлайн Пожаловаться на jackjack   Ответить с цитированием Мультицитирование сообщения от jackjack Быстрый ответ на сообщение jackjack

18 августа 2011, 10:47:53 PM   # 4
 
 
Сообщения: 1428
Цитировать по имени
цитировать ответ
по умолчанию Re: Вопрос о генерации адреса с помощью открытого ключа

котировка
Или уж на то пошло, есть ли смысл в sha256'ing открытый ключ, чтобы начать с? то есть, будет замена first160bitsof (SHA256 (ключ PUB)) только с first160bitsof (Публичный) делать так же хорошо?

На самом деле да, мог бы проблема с этим. Открытый ключ два 256-битные числа, представляющие (х, у) точки на эллиптической кривой. Используя первые 160 бит, вы используете только кусок х значения открытого ключа, без какого-либо у-значения. Я могу взять 160 бит х, добавить еще 96 битов, а затем, вероятно, вычислить у-значение на кривой, которая соответствует этому значению х, я только что создали. Это заставляет меня новый (х, у) точки на secp256k1 эллиптической кривой.  Это не замена ключа, потому что у меня нет закрытого ключа для него, но он может открыть дверь для злоумышленника, чтобы сделать некоторые хитрости, потому что никто не может доказать, что точка не открытый ключ. Я не знаю, какие серьезную атаки может быть получена из этого (если таковые имеется), но я видел некоторые очень творческие атаки в свое время. Это похоже добавили, ненужную неопределенность в процесс. С другой стороны, используя хэш, каждый символ конечного адреса зависит от каждого бита открытого ключа. Кроме того, это уже реализовано ... это сложный, но это одноразовая инвестиция, чтобы получить его работу.

котировка
В этом случае будет 2 ^ 96 известных pubkeys с тем же адресом, это может быть проблемой

Это на самом деле не имеет значения. Там же примерно 2 ^ 256 различных возможных открытых ключей на любой заданной эллиптической кривой. Конечно, из-за ripemd160, есть только 2 ^ 160 различных адресов, но я уверяю вас, что 2 ^ 160 уникальных адресов более чем достаточно. Таким образом, в то время как есть 2 ^ 96 одинаковых хешей на адрес, вероятность двух людей на самом деле создает два адреса, которые имеют тот же адрес еще 1 в 2 ^ 160.  

Для справки, в течение всего времени, что сеть БТД была жива, с тысячами людей, вычислительных миллиардами хэш в секунду ... вся сеть вычислена составляют менее 2 ^ 70 хэш. 2 ^ 32 миллиардов людей на земле. У нас есть по крайней мере 100 лет до того, каждый атом во Вселенной нуждается в его собственный адрес BTC, и даже тогда, может быть достаточно.

Еще один комментарий о SHA256 (sha256 ()) ... Я не знаю точно, но я предположить, что причина для двойного хеширования вместо одного хэширования по соображениям безопасности (в целом, а не только для адресов). Сейчас она занимает в среднем 2 ^ 256 хэшей найти столкновение SHA256. Если кто-то находит уязвимость, которая может найти такое столкновение в 2 ^ 50 хэш, то сообщество может начать рассматривать это небезопасно. Однако, так как мы используем двойное хеширование, что уязвимость, вероятно, только ослабляет BTC-хеширование до 2 ^ 100, который еще много безопасности в течение многих десятилетий, чтобы прибыть.

-Eto
etotheipi сейчас офлайн Пожаловаться на etotheipi   Ответить с цитированием Мультицитирование сообщения от etotheipi Быстрый ответ на сообщение etotheipi

19 августа 2011, 4:26:14 AM   # 5
 
 
Сообщений: 42
Цитировать по имени
цитировать ответ
по умолчанию Re: Вопрос о генерации адреса с помощью открытого ключа

Всем спасибо за ответы!
patvarilly сейчас офлайн Пожаловаться на patvarilly   Ответить с цитированием Мультицитирование сообщения от patvarilly Быстрый ответ на сообщение patvarilly



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW