Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
26 мая 2011, 2:06:21 PM   # 1
 
 
Сообщений: 14
Цитировать по имени
цитировать ответ
по умолчанию Re: Незначительные ошибки в сложности вычислений

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


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

$ Свернуться --url Http: // ***: ***@127.0.0.1: 8332 -H 'типа контента: текст / равнина;' --data-бинарная «{"jsonrpc": "1,0", "Я бы":"curltest", "метод": "getwork", "Титулы": []}»
{"результат": {"Midstate":"df92c2b8aac64fc5d15a0ff08a8950453ce9e8fb1ecfa39cb8aeaca78bae173a","данные":"0000000174dae8b4ae722300d81693b97993f4a57dc7c8151b980d4a00003bfc00000000b79f998 e1df8db02f7d2ba1676e7060a57fa8a5764990629f53173f8b61d8c1f4dde5b591a44b9f2000000 0000000080000000000000000000000000000000000000000000000000000000000000000000000 0000000000080020000","hash1":"0000000000000000000000000000000000000000000000000000000000000000000000800000000 0000000000000000000000000000000000000000000010000","цель":"0000000000000000000000000000000000000000000000f2b944000000000000"},"ошибка":ноль,"Я бы":"curltest"}

$ Свернуться --url Http: //***.***@127.0.0.1: 8332 -H 'тип контента: текст / равнина;' --data-бинарная «{"jsonrpc": "1,0", "Я бы":"curltest", "метод": "getdifficulty", "Титулы": []}»
{"результат": 244139.48158254,"ошибка":ноль,"Я бы":"curltest"}

$ эхо "База = 10; IBase = 16; масштаб = 8; 00000000FFFF0000000000000000000000000000000000000000000000000000 / 00000000000044B9F20000000000000000000000000000000000000000000000" | Ьс
244112.48777433


Почему я получаю 244112.48777433 вместо 244139.48158254?

Энцо

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


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


28 мая 2011, 10:15:49 AM   # 2
 
 
Сообщения: 504
Цитировать по имени
цитировать ответ
по умолчанию Re: Незначительные ошибки в сложности вычислений

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





Поскольку Ъс лучше при расчете точки произвольной точности с плавающей чем Bitcoin.

Bitcoin использует аппроксимацию:

Код:
двойная GetDifficulty ()
{
    // Число с плавающей точкой, которая является кратной минимальной сложностью,
    // минимальная сложность = 1,0.
    если (pindexBest == NULL)
        вернуться 1,0;
    INT nShift = 256 - 32 - 31; // чтобы поместиться в UINT
    двойная dMinimum = (CBigNum (). SetCompact (bnProofOfWorkLimit.GetCompact ()) >> nShift) .getuint ();
    двойная dCurrently = (CBigNum (). SetCompact (pindexBest->Nbits) >> nShift) .getuint ();
    вернуться dMinimum / dCurrently;
}

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

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

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

Код:
неподписанных INT hb1, hb2;
hb1 = highest_bit (proofOfWorkLimit);
HB2 = highest_bit (currentTarget);
если (hb2 > hb1)
  hb1 = HB2;
hb1 - = bits_of_precision_in_double;

uint64_t L = proofOfWorkLimit >> hb1;
uint64_t Т = currentTarget >> hb1;

вернуться (дважды) (L) / Т;

Чтобы быть честным, хотя, нет никакой реальной причины, чтобы изменить его. Он используется только для отображения пользователей, никогда для расчетов. Кроме гордости, нет насущной необходимости, чтобы исправить это.
realnowhereman сейчас офлайн Пожаловаться на realnowhereman   Ответить с цитированием Мультицитирование сообщения от realnowhereman Быстрый ответ на сообщение realnowhereman

28 мая 2011, 10:24:41 AM   # 3
 
 
Сообщения: 1050
Цитировать по имени
цитировать ответ
по умолчанию Re: Незначительные ошибки в сложности вычислений

Там уже патч, чтобы исправить это, см https://github.com/bitcoin/bitcoin/pull/276
Pieter Wuille сейчас офлайн Пожаловаться на Pieter Wuille   Ответить с цитированием Мультицитирование сообщения от Pieter Wuille Быстрый ответ на сообщение Pieter Wuille

28 мая 2011, 2:37:21 PM   # 4
 
 
Сообщений: 14
Цитировать по имени
цитировать ответ
по умолчанию Re: Незначительные ошибки в сложности вычислений


Поскольку Ъс лучше при расчете точки произвольной точности с плавающей чем Bitcoin.

Так что я наткнулся на ошибку в bitclient (незначительная ошибка, очевидно)
Я хотел бы отметить, что нет необходимости в высокой точности калькулятора: цель является большим числом, но с небольшим количеством значащих цифр. Максимальная цель имеет только 4 значимых шестнадцатеричные цифры (FFFF), я не знаю, сколько есть в текущей цели, но я полагаю, что нет необходимости для того, чтобы иметь много больше.
Энцо сейчас офлайн Пожаловаться на Enzo   Ответить с цитированием Мультицитирование сообщения от Enzo Быстрый ответ на сообщение Enzo



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW