Вернуться   Биткоин Форум > Аукционы
14 апреля 2014, 4:53:24 PM   # 1
 
 
Сообщения: 1064
Цитировать по имени
цитировать ответ
по умолчанию Re: [BOUNTY] Mathematica fcns для RIPEMD-160 и base58 кодирования (0,05 BTC каждый)

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


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


Я ищу кого-то, чтобы поставить следующие функции, которые будут работать в системе Mathematica 9.0:

Hash [x_, "ripemd160"] (Возвращает целое число Mathematica)
Base58Encode [x_Integer] (возвращает строку Mathematica)
Base58Decode [x_String] (возвращает Mathematica целое число)

Mathematica в настоящее время поддерживают Hash [x_, "SHA256"], Но не ripemd160. Существует 0,05 BTC Баунти, чтобы написать функцию, которая добавляет эту поддержку. Эта функция должна вести себя точно так же, как стандартный Hash [] функции, просто используя ripemd160 вместо этого. 

Mathematica в настоящее время не поддерживает Bitcoin кодирования и декодирования base58. Существует 0,05 BTC Баунти, если поставить обе функции кодирования / декодирования. 

Правила:

0. Разместите функцию (ы) в этой теме. Я выплачу награду первого человека, который доставляет. 
1. Каждая функция должна быть одной интегральной функции (то есть, она может вызывать только стандартные функции Mathematica).
2. Каждая функция должна быть достаточно краткой (то есть, он не может иметь груды посторонней коды - он должен быть чистым). 
3. Они не должны генерировать никаких предупреждений о допустимых входах.
4. Он не должен делать какие-либо ошибки в допустимых входов.
5. Вы не можете кода C и скажите мне "просто изменить это или что," Я просто вырезать&вставьте код и выполнить его в Mathematica, и он будет либо работать или не работать. 
6. Я оставляю за собой право не выплачивать награду, если вы нарушите эти правила, но я обещаю быть разумными, если есть незначительный надзор. 
7. Я оставляю за собой право отсрочить выплату щедрот на срок до 48 часов, чтобы позволить мне время, чтобы проверить свои функции.


*** Это опубликовано в аукционе, так что люди не могут изменить свои сообщения ложно утверждают Баунти ***
Peter R сейчас офлайн Пожаловаться на Peter R   Ответить с цитированием Мультицитирование сообщения от Peter R Быстрый ответ на сообщение Peter R


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


14 апреля 2014, 9:36:40 PM   # 2
 
 
Сообщения: 1064
Цитировать по имени
цитировать ответ
по умолчанию Re: [BOUNTY] Mathematica fcns для RIPEMD-160 и base58 кодирования (0,05 BTC каждый)

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





Баунти увеличилась до 0,075 BTC каждый.
Peter R сейчас офлайн Пожаловаться на Peter R   Ответить с цитированием Мультицитирование сообщения от Peter R Быстрый ответ на сообщение Peter R

17 мая 2014, 3:12:31 PM   # 3
 
 
Сообщения: 1876
Цитировать по имени
цитировать ответ
по умолчанию Re: [BOUNTY] Mathematica fcns для RIPEMD-160 и base58 кодирования (0,05 BTC каждый)

Так как я громил свое переназначение нити, я вновь Заголовок сообщения CaeZaR здесь:

Base58Encode
Mod ... NestWhileList ... Факторпространства часть кода разбивает строку вниз в базу-58, то StringTake находит соответствующий символ, чтобы закодировать его из словаря.
Код:
Base58Encode [x_Integer]: =
 StringJoin [
  StringTake [
   "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",
   Раздел [
    Мод [Обратный [NestWhileList [Факторпространство [#, 58, 1] &, Х + 1, # > 58 &]],
      58, 1], 1]]]
Base58Decode
StringPosition ... Характеры часть является словарем преобразования символов в число, то складка заботится сдача номера в полномочие 58.
Код:
Base58Decode [x_String]: =
 Fold [58 # 1 + # 2 &, 0,
   Во-первых [First [
       StringPosition [
        "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"\
#]]] & / @ Символы [х]] - 1
Пожалуйста, отправьте 0.075BTC Баунти в 19t2j4ZHfaNf1hX7YEDLZpdURcwvGywBhc
Я сделаю другую в ближайшее время, если я получу эту награду. Благодарю.
злорадный сейчас офлайн Пожаловаться на злонамеренные   Ответить с цитированием Мультицитирование сообщения от злобного Быстрый ответ на сообщение злонамеренные

20 мая 2014, 4:22:41 PM   # 4
 
 
Сообщения: 9
Цитировать по имени
цитировать ответ
по умолчанию Re: [BOUNTY] Mathematica fcns для RIPEMD-160 и base58 кодирования (0,05 BTC каждый)

Я понимаю, что я испортил это, когда я поймал, что после того, как г должен прийти 21 не 11 (все ведущие нераспечатанные цифры 1s), так вот Исправленная версия:
Код:
Опции [Base58Encode] = {п -> Никто};
Base58Encode [x_Integer, OptionsPattern []]: =
 StringJoin [
  StringTake [
   "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",
   Раздел [
    1 +, если [OptionValue [N] === None, IntegerDigits [X, 58],
      IntegerDigits [х, 58, OptionValue [п]]], 1]]]
Вы можете назвать это с одним параметром и получить самую короткую версию номера, либо указать количество цифр (п) в качестве опции.
Код:
я = RandomInteger [2 ^ 256]
Base58Encode [я]
Base58Encode [я, п -> 50]
Я починю декодирование в следующем посте, так как это тоже неправильно. Извини за это.
CaeZaR сейчас офлайн Пожаловаться на CaeZaR   Ответить с цитированием Мультицитирование сообщения от CaeZaR Быстрый ответ на сообщение CaeZaR

20 мая 2014, 4:28:45 PM   # 5
 
 
Сообщения: 9
Цитировать по имени
цитировать ответ
по умолчанию Re: [BOUNTY] Mathematica fcns для RIPEMD-160 и base58 кодирования (0,05 BTC каждый)

Вот неподвижная расшифровывает:
Код:
Base58Decode [x_String]: =
 FromDigits [
  Во-первых [First [
      StringPosition [
        "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"\
#] - 1]] & / @ Символы [х], 58]
Вы можете проверить эти функции с:
Код:
ParallelDo [я = RandomInteger [2 ^ 256];
 Если [я! = Base58Decode [Base58Encode [я]] Печать [Ложная]], {100000}]
а также
Код:
Таблица [{я, Base58Encode [я, п -> 5], Base58Decode [Base58Encode [I]]}, {я,
    0, 100}] // TableForm
CaeZaR сейчас офлайн Пожаловаться на CaeZaR   Ответить с цитированием Мультицитирование сообщения от CaeZaR Быстрый ответ на сообщение CaeZaR

20 мая 2014, 5:51:33 PM   # 6
 
 
Сообщения: 1064
Цитировать по имени
цитировать ответ
по умолчанию Re: [BOUNTY] Mathematica fcns для RIPEMD-160 и base58 кодирования (0,05 BTC каждый)

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

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

В любом случае, сделка есть сделка, как ясно я не уточнил срок, так что я буду подтвердить код и отправить вам щедрость. 

Но мне интересно, о времени здесь. Отметка в этой теме является 17 мая @ 3:12 вечера, но я не выкладываю (частично) решения до 17 мая @ 7:43 вечера. Но тогда ведущий "1"s проблема не была установлена ​​до сегодняшнего дня, после того, как мы имели дискуссии я связан выше конкретно о ведущих "1"s. Совпадение я думаю.


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

20 мая 2014, 5:53:51 PM   # 7
 
 
Сообщения: 1064
Цитировать по имени
цитировать ответ
по умолчанию Re: [BOUNTY] Mathematica fcns для RIPEMD-160 и base58 кодирования (0,05 BTC каждый)

Баунти для ripemd160 [] в настоящее время завершается. У меня есть решение для этого тоже
Peter R сейчас офлайн Пожаловаться на Peter R   Ответить с цитированием Мультицитирование сообщения от Peter R Быстрый ответ на сообщение Peter R

20 мая 2014, 7:52:49 PM   # 8
 
 
Сообщения: 1064
Цитировать по имени
цитировать ответ
по умолчанию Re: [BOUNTY] Mathematica fcns для RIPEMD-160 и base58 кодирования (0,05 BTC каждый)

Я предполагаю, что технически должен утверждать свою собственную награду за ripemd160

Вот рабочий код для ripemd160 адаптированной почти дословно Вот. К сожалению о форматировании, но он должен вставить обратно в Mathematica красиво. 

Код:
(*
   Эта функция находит ripemd160 хэш списка байт, выраженные в виде целых чисел.
Целые больше 255 и меньше 0, усекаются до 8 бит.
Этот код был адаптирован из: http://www.win.tue.nl/~berry/2WC01/CryptographicHash-Collisions.nb

 *)

ripemd160 [bytelist_List /; или [А @@ IntegerQ / @ bytelist, длина [bytelist] == ​​0]]: = Модуль [{F, Y, Z, S, h1, h2, h3, h4, h5, а, б , с, д, е, т, т, X, R, хх, I, J, K, X, BitRotateLeft, конвертировать},

х = Свести [IntegerDigits [bytelist, 2, 8]];

BitRotateLeft [X_, П-]: = FromDigits [RotateLeft [IntegerDigits [х, 2,32], п], 2];
преобразовать [X_]: = FromDigits [Reverse [IntegerDigits [х, 256,4]], 256];

F [J_, u_, V_, ш _]: =
Если [J<= 16, BitXor [U, V, W],
Если [J<= 32, BitOr [BitAnd [U, V], BitAnd [BitNot [и], ш]], 
Если [J<= 48, BitXor [BitOr [и, BitNot [v]], ж],
Если [J<= 64, BitOr [BitAnd [U, W], BitAnd [v, BitNot [ш]]],
BitXor [и, BitOr [v, BitNot [ш]]]
]]]];
у [0, J_]: = у [0, J] = Если [у<= 16, 0, если [у<= 32, 16 ^^ 5a827999, если [у<= 48, 16 ^^ 6ed9eba1, если [у<= 64,16 ^^ 8f1bbcdc, 16 ^^ a953fd4e]]]];
у [1, J_]: = у [1, J] = Если [у<= 16, 16 ^^ 50a28be6, если [у<= 32, 16 ^^ 5c4dd124, если [у<= 48, 16 ^^ 6d703ef3, если [у<= 64,16 ^^ 7a6d76e9,0]]]];
г [0] = Flatten [{{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}, {7,4,13,1 , 10,6,15,3,12,0,9,5,2,14,11,8},
{3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12}, {1,9,11,10,0,8,12,4 , 13,3,7,15,14,5,6,2}, {4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13 }}];
г [1] = Flatten [{{5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12}, {6,11,3,7 , 0,13,5,10,14,15,8,12,4,9,1,2}, {15,5,1,3,7,14,6,9,11,8,12,2 , 10,0,4,13}, {8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14}, {12,15,10 , 4,1,5,8,7,6,2,13,14,0,3,9,11}]};
с [0] = Flatten [{{11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8}, {7,6,8,13 , 11,9,7,15,7,12,15,9,11,7,13,12}, {11,13,6,7,14,9,13,15,14,8,13,6 , 5,12,7,5}, {11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12}, {9,15,5 , 11,6,8,13,12,5,12,13,14,11,8,5,6}}];
с [1] = Flatten [{{8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6}, {9,13,15,7 , 12,8,9,11,7,7,12,7,6,15,13,11}, {9,7,15,11,8,6,6,14,12,13,5,14 , 13,13,7,5}, {15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8}, {8,5,12 , 9,12,5,14,6,8,13,6,5,15,13,11,11}]};
м = Потолочный [(длина [х] +65) / 512];
г = 512m-Длина [х] -64;
хх = Регистрация [х, {1}, таблица [0, {г-1}], Сплющите [IntegerDigits [назад [IntegerDigits [Mod [Длина [х], 2 ^ 64], 256,8]], 2,8 ]]];
{H1, h2, h3, h4, h5} = {16 ^^ 67452301,16 ^^ efcdab89,16 ^^ 98badcfe, 16 ^^ 10325476,16 ^^ c3d2e1f0};
Для [г = 0, я<м, я ++,
Для [J = 0, J<16, J ++, Х [J] = FromDigits [Возьмем [хх, 512I + 32j + {1,32}], 2];];
Для [к = 0, к<= 1, K ++
{[К], Ь [к], С [K], д [к], е [к]} = {h1, h2, h3, h4, h5};
Для [J 1, J<= 80, J ++, т = моделирование [[к] + ж [(1-к) J + K (81-к), Ь [к], С [K], д [к]] + преобразовать [Х [ г [к] [[J]]]] + у [K, J], 2 ^ 32];
{[К], Ь [к], С [K], д [к], е [к]} = {е [к], моделирование [е [к] + BitRotateLeft [т, с [к] [[ J]]], 2 ^ 32], Ь [к], BitRotateLeft [с [к], 10], д [к]};
];
];
{H1, h2, h3, h4, h5} = Mod [{h2 + с [0] + d [1], Н3 + d [0] + е [1], H4 + е [0] + а [1] , H5 + а [0] + Ь [1], h1 + B [0] + с [1]}, 2 ^ 32];
];
FromDigits [преобразующие / @ {h1, h2, h3, h4, h5}, 2 ^ 32]
];


Если вы хотите добавить ripemd160 по умолчанию Mathematica FUCTION Hash на [], вот как для самых полезных типов шаблонов:

Код:
Unprotect [Хэш];
Hash [x_List, "ripemd160"]: = Ripemd160 [х]
Hash [x_String, "ripemd160"]: = Ripemd160 [ToCharacterCode [х]]
Hash [x_Integer, "ripemd160"]: = Ripemd160 [IntegerDigits [х, 256, 20]] (* 160 битное целое число предполагается *)

Вот это правильный выход для тестовых векторов из http://homes.esat.kuleuven.be/~bosselae/ripemd160.html

Код:
В работе [63]: =
Hash ["", "ripemd160"] // IntegerString [#, 16]&
Hash ["", "ripemd160"] // IntegerString [#, 16]&
Hash ["азбука", "ripemd160"] // IntegerString [#, 16]&
Hash ["Дайджест сообщения", "ripemd160"] // IntegerString [#, 16]&
Hash ["АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЭЮЯ", "ripemd160"] // IntegerString [#, 16]&
Hash ["abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", "ripemd160"] // IntegerString [#, 16]&
Hash ["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", "ripemd160"] // IntegerString [#, 16]&
Hash [StringJoin @@ Таблица ["1234567890", {8}], "ripemd160"] // IntegerString [#, 16]&
Hash [StringJoin @@ Таблица ["", {10} ^ 6], "ripemd160"] // IntegerString [#, 16]&

Из [63] = 9c1185a5c5e9fc54612808977ee8f548b2258d31
Из [64] = bdc9d2d256b3ee9daae347be6f4dc835a467ffe
Из [65] = 8eb208f7e05d987a9b044a8e98c6b087f15a0bfc
Из [66] = 5d0689ef49d2fae572b881b123a85ffa21595f36
Из [67] = f71c27109c692c1b56bbdceb5b9d2865b3708dbc
Из [68] = 12a053384a9c0c88e405a06c27dcf49ada62eb2b
Из [69] = b0e20b6e3116640286ed3a87a5713079b21f5189
Из [70] = 9b752e45573d4b39f4dbd3323cab82bf63326bfb
Из [71] = 52783243c1697bdbe16d37f97f68f08325dc1528
Peter R сейчас офлайн Пожаловаться на Peter R   Ответить с цитированием Мультицитирование сообщения от Peter R Быстрый ответ на сообщение Peter R

20 мая 2014, 8:12:11 PM   # 9
 
 
Сообщения: 1064
Цитировать по имени
цитировать ответ
по умолчанию Re: [BOUNTY] Mathematica fcns для RIPEMD-160 и base58 кодирования (0,05 BTC каждый)

Я понимаю, что я испортил это, когда я поймал, что после того, как г должен прийти 21 не 11 (все ведущие нераспечатанные цифры 1s), так вот Исправленная версия:
Код:
Опции [Base58Encode] = {п -> Никто};
Base58Encode [x_Integer, OptionsPattern []]: =
 StringJoin [
  StringTake [
   "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",
   Раздел [
    1 +, если [OptionValue [N] === None, IntegerDigits [X, 58],
      IntegerDigits [х, 58, OptionValue [п]]], 1]]]
Вы можете назвать это с одним параметром и получить самую короткую версию номера, либо указать количество цифр (п) в качестве опции.
Код:
я = RandomInteger [2 ^ 256]
Base58Encode [я]
Base58Encode [я, п -> 50]
Я починю декодирование в следующем посте, так как это тоже неправильно. Извини за это.


Привет CaeZar. Мне нравится, как вы протестировали функцию кодирования / декодирования с использованием случайного списка. Это то, что я тоже. 

Ваша функция кодирования не совсем корректно, однако. Она до сих пор не имеет дело с ведущим "1"S правильно. Я думаю, что значение параметра "N" должно быть количество байтов, чтобы предположить, число который кодируется состоит из. А затем добавить "1" для каждого байт что равно нулю. Кодирование для Bitcoin странно. Документально Вот и мы обсуждали его Вот

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

20 мая 2014, 9:18:22 PM   # 10
 
 
Сообщения: 9
Цитировать по имени
цитировать ответ
по умолчанию Re: [BOUNTY] Mathematica fcns для RIPEMD-160 и base58 кодирования (0,05 BTC каждый)

Если вы знаете длину байт вы хотите закодированы, вы могли бы сделать это вместо того, чтобы:
Код:
Опции [Base58Encode] = {п -> Никто};
Base58Encode [x_Integer, OptionsPattern []]: =
 StringJoin [
  StringTake [
   "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",
   Раздел [
    1 +, если [OptionValue [N] === None, IntegerDigits [X, 58],
      IntegerDigits [х, 58, Потолочный [OptionValue [п] * 8 / Вход [2, 58]]]],
    1]]]
и проверить с
Код:
byteLength = 16;
я = RandomInteger [2 ^ (8 * byteLength), 100];
я = Регистрация [я, {0, 2 ^ (8 * byteLength) - 1}];
{Base58Encode [#], Base58Encode [#, п -> byteLength]} & / @
  Сортировка [я] // TableForm
Первый столбец не определяет длину в байтах, а второй делает. Во второй колонке, вы всегда получите "правильно" количество ведущих «1s», даже если вы получите значение, которое обычно приводит к слишком мало «1s»

Кстати, это единственная нить я читал. Я нашел свою собственную ошибку сегодня утром, когда я делал RIPEMD-160 в Mathematica. Я начал, что прежде, чем я видел ваш пост выше. Мой код очень похож на ваш, с небольшими различиями:
Код:
F [j_Integer /; 0 < J <= 16, x_Integer, y_Integer, z_Integer]: =
  BitXor [х, у, г];
F [j_Integer /; 16 < J <= 32, x_Integer, y_Integer, z_Integer]: =
  BitOr [BitAnd [х, у], BitAnd [BitNot [х], г]];
F [j_Integer /; 32 < J <= 48, x_Integer, y_Integer, z_Integer]: =
  BitXor [BitOr [х, BitNot [у]], г];
F [j_Integer /; 48 < J <= 64, x_Integer, y_Integer, z_Integer]: =
  BitOr [BitAnd [х, г], BitAnd [у, BitNot [г]]];
F [j_Integer /; 64 < J <= 80, x_Integer, y_Integer, z_Integer]: =
  BitXor [х, BitOr [у, BitNot [г]]];

к = Свести [
   ConstantArray [# 16] & / @
    Пол @ {0, 2 ^ 30 Sqrt [2], 2 ^ 30 Sqrt [3], 2 ^ 30 Sqrt [5], 2 ^ 30 Sqrt [7]}];
кп = Свести [
   ConstantArray [# 16] & / @
    Пол @ {2 ^ 30 Сурд [2, 3], 2 ^ 30 Сурд [3, 3], 2 ^ 30 Сурд [5, 3], 2 ^ 30 Сурд [7, 3],
       0}];
Я предпочитаю положить J диапазоны на LHS функции, а не с If на РИТ. Кроме этого, все, казалось, очень похожи. Я также определил мою Rotate функцию в несколько иначе, то вы:
Код:
Рол [x_Integer, n_Integer]: =
 Моделирование [BitOr [BitShiftLeft [х, п], BitShiftRight [х, 32 - п]], 2 ^ 32]
CaeZaR сейчас офлайн Пожаловаться на CaeZaR   Ответить с цитированием Мультицитирование сообщения от CaeZaR Быстрый ответ на сообщение CaeZaR

20 мая 2014, 10:51:48 PM   # 11
 
 
Сообщения: 1064
Цитировать по имени
цитировать ответ
по умолчанию Re: [BOUNTY] Mathematica fcns для RIPEMD-160 и base58 кодирования (0,05 BTC каждый)

Этот код еще заметьте дело с ведущими "1"S правильно. Вот доказательство:

Код:
В работе [83]: =
адр
IntegerDigits [адр, 256, 25]
Base58Encode [адр, н->24]
Base58Encode [адр, н->25]
Base58Encode [адр, н->26]

Из [83] = 4265945407764313278158431948729033804705681414470582224586
Из [84] = {0,173,250,140,87,79,52,104,141,119,77,20,47,92,96,5,77,223,21,9,70,89,193,70,202}
Из [85] = Grv3aiTr82o1kEgYV2QZD8UtLmhqHoBKX
Из [86] = 11Grv3aiTr82o1kEgYV2QZD8UtLmhqHoBKX
Из [87] = 111Grv3aiTr82o1kEgYV2QZD8UtLmhqHoBKX

Выход 86 и 87 оба имеют один слишком много "1"s. 

В качестве одного из условий было:

4. Он не должен делать какие-либо ошибки в допустимых входов.

и потому, что это третье повторное представление я думаю, что вы это сейчас составляет более "незначительный контроль" таким образом, что:

6. Я оставляю за собой право не выплачивать награду, если вы нарушите эти правила, но я обещаю быть разумными, если есть незначительный надзор.


Однако, несмотря на совпадение с когда я отправил (частично) код в другом потоке, я думаю, что вы работали над этим добросовестно и ясно почти сразу же. Я полагаю, что мы соглашаемся на половину щедрот, который работает до 0,0375 BTC (без повторной отправки требуется). Если это приемлемо для вас, пожалуйста, напишите Bitcoin адрес. 
Peter R сейчас офлайн Пожаловаться на Peter R   Ответить с цитированием Мультицитирование сообщения от Peter R Быстрый ответ на сообщение Peter R

20 мая 2014, 11:15:06 PM   # 12
 
 
Сообщения: 1064
Цитировать по имени
цитировать ответ
по умолчанию Re: [BOUNTY] Mathematica fcns для RIPEMD-160 и base58 кодирования (0,05 BTC каждый)

Этот код не отображается правильно кодировать версии байт в целом. Та же функция для кодирования Base58Check для Bitcoin адреса должны работать для частных ключей и P2SH адреса:  https://en.bitcoin.it/wiki/Base58Check_encoding
Peter R сейчас офлайн Пожаловаться на Peter R   Ответить с цитированием Мультицитирование сообщения от Peter R Быстрый ответ на сообщение Peter R

21 мая 2014, 12:49:43 PM   # 13
 
 
Сообщения: 9
Цитировать по имени
цитировать ответ
по умолчанию Re: [BOUNTY] Mathematica fcns для RIPEMD-160 и base58 кодирования (0,05 BTC каждый)

В соответствии с ОП, на котором Баунти детализирован, наемник должен был сделать base58 декодирование и кодирование:
котировка
Base58Encode [x_Integer] (возвращает строку Mathematica)
Base58Decode [x_String] (возвращает Mathematica целое число)
Там нет никакого упоминания в ОП по количеству или характеру ведущих «1s» включить.
Тем не менее, в соответствии с документом, https://en.bitcoin.it/wiki/Base58Check_encoding, который является тот, который вы сподвиг меня читать, он определяет, что подразумевается под нормированной основанием 58 кодирования в пункте 4:
котировка
Лечение результаты шага 3 - серия байт - как один большой-Endian bignumber, преобразовать в базу-58 с помощью обычных математических шагов (bignumber деления) и основания 58 алфавита, описанного ниже. Результат должен быть нормализованы, чтобы не иметь каких-либо ведущих базовых 58 нулей (символ «1»).
Я имею в виду ваше внимание на последнее предложение, что результат не должен иметь никаких ведущих базовых 58 нулей (символ «1»).
Это именно функциональные возможности, предоставляемые вам 20 мая в 4:22 вечера, когда вы используете функцию по умолчанию без указания п, кодировка базы-58 без каких-либо ведущих «1s».
То, что вы просите, так как это следующий шаг, который является Base58Check, и выходит за рамки щедрот, как описано.
Я открыт для обсуждения этого дальше, если вы хотите; однако --- почтительно --- Я утверждаю, что щедрость уже завершена, и что нет больше работы не требуется с моей стороны.
Пожалуйста, присылайте 0.075BTC Баунти на: 19t2j4ZHfaNf1hX7YEDLZpdURcwvGywBhc
CaeZaR сейчас офлайн Пожаловаться на CaeZaR   Ответить с цитированием Мультицитирование сообщения от CaeZaR Быстрый ответ на сообщение CaeZaR

21 мая 2014, 3:43:13 PM   # 14
 
 
Сообщения: 9
Цитировать по имени
цитировать ответ
по умолчанию Re: [BOUNTY] Mathematica fcns для RIPEMD-160 и base58 кодирования (0,05 BTC каждый)

Ради тщательных кода, вот некоторые Mathematica, что присоединяет правильное число ведущих «1s» в соответствии с критериями Base58Check, когда вы кладете в n->25 дополнительный аргумент.
Код:
Опции [Base58Encode] = {п -> Никто};
Base58Encode [x_Integer, OptionsPattern []]: =
 StringJoin [
  Если нет [OptionValue [п] === Нет, "",
   ConstantArray ["1",
    Факторпространства [
     Длина [TakeWhile [
       IntegerDigits [х, 16, 2 * OptionValue [п]], # == 0 &]], 2]]],
  StringTake [
   "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",
   Перегородки [1 + IntegerDigits [X, 58], 1]]]
Она производит правильный результат с номером вы даете:
Код:
В работе [55]: = Base58Encode [\
4265945407764313278158431948729033804705681414470582224586, п -> 25]

Из [55] = "1Grv3aiTr82o1kEgYV2QZD8UtLmhqHoBKX"
О других ваших комментариев, я не согласен, что вы имеете право отказаться от оплаты труда, основанную на 4 и 6 в качестве добавленной работы выполнения Base58Check никогда не была частью щедрости, описанной в ОП, и я вышел за рамки требований Баунтите, чтобы предоставить вам дополнение к коду вы хотели.

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

22 мая 2014, 3:25:18 AM   # 15
 
 
Сообщения: 1064
Цитировать по имени
цитировать ответ
по умолчанию Re: [BOUNTY] Mathematica fcns для RIPEMD-160 и base58 кодирования (0,05 BTC каждый)

Это не хорошо. Это был эксперимент, который я надеюсь, что удался, потому что это было бы полезно, чтобы иметь возможность представить небольшие рабочие места и есть люди их. Я беру на себя ответственность за не размещение даты закрытия (и решения проблемы самого в то же время и размещения части коды в другом потоке); Однако, мы не можем иметь рынок труда, где человек проводкой работу должен знать больше о технических деталях, чем лица, заполняющего работу. Если существует неясность, работа наполнитель должен задать вопрос. На мой взгляд, это было очевидно, что я хотел в base58 закодировать функции / декодирования используется Bitcoin видя, как это Bitcoin форум. Я не могу думать ни о каком использовании связанных Bitcoin для этих функций без надлежащей работы с версией байтом. 

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

1. Я буду платить полную награду (0,075 BTC), если вы полный Base58Encode [] и Base58Decode [] в соответствии с Bitcoin вики я связан (по крайней мере сделку с версии байта правильно). Он должен работать для частных ключей, P2SH адресов и регулярных адресов. 

2. Я заплачу вам половину Баунти за то, что вы делали до сих пор. 

3. Если вам не нравится, либо 1 или 2, мы могли бы попросить второго / третьего мнения от других старших членов здесь относительно того, что они думают, что это лучший способ справиться с этим. 
Peter R сейчас офлайн Пожаловаться на Peter R   Ответить с цитированием Мультицитирование сообщения от Peter R Быстрый ответ на сообщение Peter R

22 мая 2014, 3:34:37 ​​AM   # 16
 
 
Сообщения: 1064
Цитировать по имени
цитировать ответ
по умолчанию Re: [BOUNTY] Mathematica fcns для RIPEMD-160 и base58 кодирования (0,05 BTC каждый)

Это не хорошо. Это был эксперимент, который я надеюсь, что удался, потому что это было бы полезно, чтобы иметь возможность представить небольшие рабочие места и есть люди их. Я беру на себя ответственность за не размещение даты закрытия (и решения проблемы самого в то же время и размещения части коды в другом потоке); Однако, мы не можем иметь рынок труда, где человек проводкой работу должен знать больше о технических деталях, чем лица, заполняющего работу. Если существует неясность, работа наполнитель должен задать вопрос. На мой взгляд, это было очевидно, что я хотел в base58 закодировать функции / декодирования используется Bitcoin видя, как это Bitcoin форум. Я не могу думать ни о каком использовании связанных Bitcoin для этих функций без надлежащей работы с версией байтом. 

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

1. Я буду платить полную награду (0,075 BTC), если вы полный Base58Encode [] и Base58Decode [] в соответствии с Bitcoin вики я связан (сделка с версии байта правильно). Он должен работать для частных ключей, P2SH адресов и регулярных адресов. 

2. Я заплачу вам половину Баунти за то, что вы делали до сих пор. 

3. Если вам не нравится, либо 1 или 2, мы могли бы попросить второго / третьего мнения от других старших членов здесь относительно того, что они думают, что это лучший способ справиться с этим. 
Peter R сейчас офлайн Пожаловаться на Peter R   Ответить с цитированием Мультицитирование сообщения от Peter R Быстрый ответ на сообщение Peter R

22 мая 2014, 12:43:04 PM   # 17
 
 
Сообщения: 9
Цитировать по имени
цитировать ответ
по умолчанию Re: [BOUNTY] Mathematica fcns для RIPEMD-160 и base58 кодирования (0,05 BTC каждый)

Хотя я согласен с вашим утверждением, что
котировка
мы не можем иметь рынка труда, где человек проводку работы должен знать больше о технических деталях, чем лицо, заполняющей работу,
Я до сих пор утверждают, что это ответственность человека, разместившей Баунти четко очертить, что должно быть сделано. В этом случае, вы сказали Base58Encode и Base58Decode, и это то, что я сделал в соответствии с общим определением Bitcoin сообщества (именно поэтому я процитировал пункт 4 в статье вы позже указанного авторитетных на определениях.) Это не означает, что вы должны быть технически более осведомлены, чем лицо, заполняющего работу, но это не означает, что вы должны понимать и иметь четкое представление о требованиях работы. Когда не было разногласия, я вознес документацию общего задержанном зрения, вы вернулись с: ну, это было не то, что я хотел
котировка
в моей голове...
Мне очень жаль, но это несправедливо, как вы можете сохранить передумать и требования, как работа прогрессирует, что то, что вы делали. Первоначально это был base58encode, то символ дополнение base58encode плюс «1s» и в своем последнем посте вы снова добавить больше работы, заявив, я должен также делать все, что необходимо предварять base58 строку с требованиями p2sh. Чтобы быть справедливыми, вы должны оплатить награду за работу, которая была проделана и договориться о цене с работником для дополнительной работы. Как это, вы держите меня в заложники, чтобы продолжать делать больше работы, чтобы получить зарплату из-за меня за работу, я уже сделал.

Никогда-менее, не в отношении 1, что добавленной работы кодирования символов, которые «1S» до сих пор не сделана, вы должны игнорировать мой пост от 21 мая 3:43:13. Обратите внимание на добавление к передней части кода, который подсчитывает количество нулевых байтов и добавляет соответствующее количество символов «1» и соответствующий тест и выход. Я сделал дополнительную работу, в любом случае, чтобы мы могли двигаться дальше.

Пожалуйста оплатите.

И все средства, обратитесь к модератору, если вы думаете, что я несправедливо.
CaeZaR сейчас офлайн Пожаловаться на CaeZaR   Ответить с цитированием Мультицитирование сообщения от CaeZaR Быстрый ответ на сообщение CaeZaR

22 мая 2014, 3:19:04 PM   # 18
 
 
Сообщения: 966
Цитировать по имени
цитировать ответ
по умолчанию Re: [BOUNTY] Mathematica fcns для RIPEMD-160 и base58 кодирования (0,05 BTC каждый)

Я с CaeZar на этом. Питер R сделал просто попросить base58 кодирования и декодирования, ничего о форматировании его для Bitcoin адресов.
tysat сейчас офлайн Пожаловаться на tysat   Ответить с цитированием Мультицитирование сообщения от tysat Быстрый ответ на сообщение tysat

22 мая 2014, 3:57:33 PM   # 19
 
 
Сообщения: 9
Цитировать по имени
цитировать ответ
по умолчанию Re: [BOUNTY] Mathematica fcns для RIPEMD-160 и base58 кодирования (0,05 BTC каждый)

0.075BTC платеж признается. Спасибо.
CaeZaR сейчас офлайн Пожаловаться на CaeZaR   Ответить с цитированием Мультицитирование сообщения от CaeZaR Быстрый ответ на сообщение CaeZaR

22 мая 2014, 4:01:13 PM   # 20
 
 
Сообщения: 1064
Цитировать по имени
цитировать ответ
по умолчанию Re: [BOUNTY] Mathematica fcns для RIPEMD-160 и base58 кодирования (0,05 BTC каждый)

Я с CaeZar на этом. Питер R сделал просто попросить base58 кодирования и декодирования, ничего о форматировании его для Bitcoin адресов.

Спасибо за модерацию Tysat. Я выплатил Баунти 0,075 BTC щедрот к 19t2j4ZHfaNf1hX7YEDLZpdURcwvGywBhc:

https://blockchain.info/tx/9d003c3b4ca172d0d177480570b72fb683542a959c67f924e5c7c76ff5832a73

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


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



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW