Bitcoin Forum

Local => Кодеры => Topic started by: kkosta on September 25, 2014, 06:22:54 PM



Title: Получение случайного числа из хеша транзk
Post by: kkosta on September 25, 2014, 06:22:54 PM
Если перечислить минимальное количество биткоинов в определенный момент, будет ли хэш этой транзакции случайным числом или отправитель может знать его заранее?

Можно ли узнать хэш транзакции до ее физического отравления?

То есть если мне говорят, что предоставят случайное число на основе хэша их транзакции, можно ли доверять этому случайному числу? Или они могут манипулировать хешем или знать хеш еще до отправления транзакции?


Title: Re: Получение случайного числа из хеша транзk
Post by: rPman on September 25, 2014, 06:54:57 PM
Отправитель может создать транзакцию но не отправлять ее в сеть, посмотреть на получившийся хеш, и если он не подходит под желаемый - создать следующую, что-нибудь изменив в транзакции.

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

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


Title: Re: Получение случайного числа из хеша транзk
Post by: kkosta on September 25, 2014, 07:05:27 PM
Какие возможны варианты если случайное число нужно получать примерно раз в минуту? Возможно ли это?


Title: Re: Получение случайного числа из хеша транзk
Post by: icreator on September 25, 2014, 07:21:33 PM
брать хэш 6-го от высоты блока в цепочке
он уже 6 подтверждений прошел так что мощи не хватит у пула


Title: Re: Получение случайного числа из хеша транзk
Post by: kkosta on September 25, 2014, 07:38:22 PM
Если стоит задача получать случайные числа допустим в начале каждой минуты. То есть получение числа начинается с :01 секунды каждой минуты и продолжается до 5-10 секунд. И что бы никто не смог повлиять на результат. И что бы расчетные данные можно было просмотреть допустим на blockchain.info


Title: Re: Получение случайного числа из хеша транзk
Post by: kkosta on September 25, 2014, 07:51:52 PM
То есть получать случайное число оперативно в течении нескольких секунд. Что бы исходные данные были задокументированны блокчейном, для того что бы можно было проверить в любое время верность расчета. И так же что бы никто не мог повлиять на это случайное число.
 Возможно это можно организовать на потоке новых транзакций. Допустим брать четыре вновь поступивших транзакций, начиная с определенного момента и вычислять на основе их хеша случайное число. Но иногда транзакции идут медленно и злоумышленник может как то запустить свои транзакции и тем самым получить нужный результат случайного числа.
Скорее всего не самый лучший способ. Как еще возможно реализовать решение этой задачи?


Title: Re: Получение случайного числа из хеша транзk
Post by: rPman on September 25, 2014, 08:17:33 PM
Если для задачи не критично, что каждый сможет хотя бы в пределах короткого периода (секунды) предугадать (но не манипулировать) значения следующих случайных чисел, то достаточно просто использовать хеши транзакций (методом что я описал выше) как seed в любом алгоритме генерации псевдослучайных чисел. А там сколько угодно генерируйте этих чисел.


Title: Re: Получение случайного числа из хеша транзk
Post by: kkosta on September 25, 2014, 08:39:17 PM
Заранее извиняюсь за возможное недопонимание тонкостей. Поясните пожалуйста. То есть в начале каждой минуты, в 00 секунд создается транзакция, она в течении нескольких секунд попадает в сеть от нее берется хэш и скрещивается с хешем блока. Но новый блок один раз в 10 минут создается. А задача получать случайное число с периодичностью раз в минуту. Так же все должны быть уверены что полученное число действительно случайно и создатель транзакции не сможет повлиять на него. Критично, что бы предугадать получившееся число было невозможно.

Если данный вариант не подходит, возможно есть другие варианты генерации случайного числа на основе блокчейна с высокой защитой от манипуляций?


Title: Re: Получение случайного числа из хеша транзk
Post by: amaclin on September 25, 2014, 09:00:25 PM
Quote
Если перечислить минимальное количество биткоинов в определенный момент, будет ли хэш этой транзакции случайным числом или отправитель может знать его заранее?
В транзакции есть ECDSA-сигнатура
Сигнатуру можно формировать с помощью генератора случайных чисел либо детерминированным образом.
Клиенты сегодня как правило используют ГСЧ, но с плохими ГПСЧ вы сильно рискуете.
Если алгоритм детерминированный - то транзакция будет получаться все время одинаковая.

До формирования транзакции хеш вы узнать не сможете. Но формирование и отправка - это же разные вещи! Можно сформировать транзакцию, но не отправлять ее.

Quote
Можно ли узнать хэш транзакции до ее физического отравления?
Да.

Quote
То есть если мне говорят, что предоставят случайное число на основе хэша их транзакции, можно ли доверять этому случайному числу? Или они могут манипулировать хешем или знать хеш еще до отправления транзакции?
Легко. Хотите я вам пошлю транзакцию, хеш которой будет "1234...."
Ну, скажем так... Не очень легко, но возможно.


Title: Re: Получение случайного числа из хеша транзk
Post by: icreator on September 26, 2014, 08:59:55 AM
постановка задачи с ошибкой
Quote
случайное число на основе хэша их транзакции

если надо случайное число - то оно никак не связано с транзакцией или блоком или еще чем - она СЛУЧАЙНАЯ

и по ней ничего определить нельзя

если нужен код на основе транзакции или блока или еще чего - то он не может быть СЛУЧАЙНЫМ
он жестко связан со случайной инфо в транзакции или блоке


Title: Re: Получение случайного числа из хеша транзk
Post by: pianist on October 01, 2014, 07:26:35 PM
Рекомендую использовать хеш транзакции в сочетании с хешом блока, в который она добавлена (например их побитовый xor) - манипуляции с этим тоже возможны, но уже только со стороны владельцев пулов майнинга, и вероятность успеха манипуляции сравнима с их долей мощности от всей сети.

цена такой манипуляции — 25 биткоинов :)