Author

Topic: ГСЧ и немного про смарт-контракты (Read 113 times)

legendary
Activity: 2408
Merit: 1834
Crypto for the Crypto Throne!
Из названия топика ясно, что хочет сделать смартконтракт, то есть некий договор, который будет исполняться при определенных условиях в будущем. Провернуть фарш транзакцию смартконтракта назад уже все равно нельзя, поэтому в принципе фиолетово, что там было раньше.

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

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

Именно. Например последние три цифры от хэша (как делают здесь на форуме при всяких розыгрышах).
copper member
Activity: 1540
Merit: 487
Stop the war!
Плохая идея.

Курс БТЦ к ЮСД обратим. Тоесть посмотрев историю и зная алгоритм ГСЧ можно восстановить все "случайные" числа на нужном промежутке времени.
Может ему это не важно?
Из названия топика ясно, что хочет сделать смартконтракт, то есть некий договор, который будет исполняться при определенных условиях в будущем. Провернуть фарш транзакцию смартконтракта назад уже все равно нельзя, поэтому в принципе фиолетово, что там было раньше.

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

legendary
Activity: 2408
Merit: 1834
Crypto for the Crypto Throne!
Плохая идея.

Курс БТЦ к ЮСД обратим. Тоесть посмотрев историю и зная алгоритм ГСЧ можно восстановить все "случайные" числа на нужном промежутке времени.

Во вторых, брать остачу от деления тоже не лучшая идея. Если ты будешь брать только последние три цифры после деления, то твой интервал доступных "случайных" значений будет колебаться в диапазоне от 0 до 999, а вот значений то курса в центах намного больше. Следовательно, некоторые числа определенно будут повторяться чаще прочих остальных. 

copper member
Activity: 2
Merit: 0
Привет, интересует насколько подходит курс BTC к USDT в центах на том же бинансе (как наиболее волатильный) для использования в качестве основы генератора случайных чисел при необходимости выбора между двумя числами (например, когда курс в центах четный - это 0, когда курс в центах нечетный - это 1)? А если нужно выбирать из 5-10-100-1000 значений?

Механизм с четные-нечетные для двух возможных значений как работает понятно, а вот иные значения (допустим, генерация из 365 возможных значений) уже не так понятны. Вариант тут самый простой (который мне в голову пришел) - делить цену биткоина в центах на нужное число, а остаток после деления и будет сгенерированным числом. То есть берем курс 3791962 цента за биткоин, делим на 365, получаем 10388 целых (целые числа нас не интересуют) и 342 в остатке. Вот эти 342 из остатка и будут сгенерированным числом (о проблеме этого метода ниже).

Насколько я понимаю, ограничений тут несколько:
1. Технические ограничения биржи на получение курса чаще определенного количества раз в секунду (на практике при анализе биржевого стакана цена менялась порядка 50-80 раз в секунду, иногда чаще). Генерирование больших ключей займет много времени при такой скорости генерирования.
2. При значениях более 100+, на мой взгляд, цент уже может быть недостаточно часто изменяемой единицей на краткосрочные перспективы и определенный диапазон значений может быть предугадан исходя из текущей стоимости биткоина с определенной точностью.
3. В момент технического сбоя (или обновления) информация с биржи может перестать поступать, тем самым остановив генерацию чисел.


Для "поиска специалистов" создайте новую тему в подразделе Работа.
Модератор.
Jump to: