loshara (OP)
Newbie
Offline
Activity: 57
Merit: 0
|
|
April 25, 2017, 12:23:50 AM |
|
помогите чайнику разобраться с base58.
Как (на примере) из hex переводится в base58?
вот как , например, 1000bbcc перевести с ручкой и калькулятором на бумаге.
помогите пожалуйста чайнику разобраться с таким смешным вопросом
|
|
|
|
xhomerx10
Legendary
Offline
Activity: 4018
Merit: 8852
|
|
April 25, 2017, 04:50:08 AM |
|
помогите чайнику разобраться с base58.
Как (на примере) из hex переводится в base58?
вот как , например, 1000bbcc перевести с ручкой и калькулятором на бумаге.
помогите пожалуйста чайнику разобраться с таким смешным вопросом
1000bbcc 16 = 268483532 10 0 Остаток 23 X 58 4 + 58) 23 Остаток 42 X 58 3 + 58) 1376 Остаток 2 X 58 2 + 58) 79810 Остаток 46 X 58 1 + 58) 4629026 Остаток 24 X 58 0 + 58)268483532 <----- Начать здесь Стоимость | символ | Стоимость | символ | Стоимость | символ | Стоимость | символ | 0 | 1 | 1 | 2 | 2 | 3 | 3 | 4 | 4 | 5 | 5 | 6 | 6 | 7 | 7 | 8 | 8 | 9 | 9 | A | 10 | B | 11 | C | 12 | D | 13 | E | 14 | F | 15 | G | 16 | H | 17 | J | 18 | K | 19 | L | 20 | M | 21 | N | 22 | P | 23 | Q | 24 | R | 25 | S | 26 | T | 27 | U | 28 | V | 29 | W | 30 | X | 31 | Y | 32 | Z | 33 | a | 34 | b | 35 | c | 36 | d | 37 | e | 38 | f | 39 | g | 40 | h | 41 | i | 42 | j | 43 | k | 44 | m | 45 | n | 46 | o | 47 | p | 48 | q | 49 | r | 50 | s | 51 | t | 52 | u | 53 | v | 54 | w | 55 | x | 56 | y | 57 | z |
23=Q, 42=j, 2=3, 46=o, 24=R поэтому 1000bbcc 16= Qj3oR58
|
|
|
|
loshara (OP)
Newbie
Offline
Activity: 57
Merit: 0
|
|
April 25, 2017, 06:44:47 AM |
|
Спасибо огромное! Только остался последний вопрос, от куда Вы берете этот остаток? 268483532/58=4 629 026,4137931034482758620689655 4629026/58=79 810,793103448275862068965517241 объясните, пожалуйста, чайнику.
|
|
|
|
kzv
Legendary
Offline
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
|
|
April 25, 2017, 08:47:20 AM |
|
Спасибо огромное! Только остался последний вопрос, от куда Вы берете этот остаток? 268483532/58=4 629 026,4137931034482758620689655 4629026/58=79 810,793103448275862068965517241 объясните, пожалуйста, чайнику. На бумажке столбиком делите
|
|
|
|
loshara (OP)
Newbie
Offline
Activity: 57
Merit: 0
|
|
April 25, 2017, 08:56:32 AM |
|
Нет, ну а правда. Помогите понять. Не всем понятны общеизвестные истины.. 3 час идет, хоть убейте
|
|
|
|
|
loshara (OP)
Newbie
Offline
Activity: 57
Merit: 0
|
|
April 25, 2017, 10:07:04 AM |
|
Еще учусь.. переименую ник, неужели этот ник, причем, никого не оскорбляющий, влияет на ответ всех участников форума. Иными словами, столбиком же из hex в base58 никто не пользуется.. Спасибо xhomerx10, буду искать ответ дальше.. Ник выбрал такой - потому что это, на данном форуме, правда.
|
|
|
|
kcaterpillar
|
|
April 25, 2017, 10:36:35 AM |
|
Еще учусь.. переименую ник, неужели этот ник, причем, никого не оскорбляющий, влияет на ответ всех участников форума. Иными словами, столбиком же из hex в base58 никто не пользуется.. Спасибо xhomerx10, буду искать ответ дальше.. Ник выбрал такой - потому что это, на данном форуме, правда. Есть системы измерения - десятичная, шестнадцатеричная, двоичная и другие - в любой из них можно делить столбиком. У base58 основание 58-ное, что и следует из её названия. Т.е. это пятидесятивосьмиричная система счисления и записи. Делите столбиком и в ней - всё получится. С остатком тоже всё просто. Например, в десятичной системе возьмите число 17. В нём первая цифра указывает целые десятки, а семёрка - это остаток от деления на 10, т.е. на основание (base10). В числе 589 первые цифры 5 и 8 также указывают на целые десятки десяток и десятки, а последняя цифра 9 - это остаток от деления столбиком на десять. В системе биткойн используется обратный порядок записи - см. Little endian/Big endian.
|
|
|
|
ThisNameIsAlreadyInUse
Newbie
Offline
Activity: 54
Merit: 0
|
|
April 25, 2017, 10:40:59 AM Last edit: April 25, 2017, 10:55:40 AM by ThisNameIsAlreadyInUse |
|
Еще учусь.. переименую ник, неужели этот ник, причем, никого не оскорбляющий, влияет на ответ всех участников форума. Иными словами, столбиком же из hex в base58 никто не пользуется.. Спасибо xhomerx10, буду искать ответ дальше.. Ник выбрал такой - потому что это, на данном форуме, правда. Он никого, кроме тебя не оскорбляет. Самокритика - это конечно злорово, но к месту. Подумай, чем он принципиально отличается от ника, скажем, "пидар". Какое впечатление ты производишь на тех, кто тебя читает? Теперь по теме напомню правило: Для перевода числа, записанного в системе с основанием a, в систему с основанием b нужно: записать основание b как число в системе с основанием a и выполнять деление числа с остатком на ba до тех пор, пока частное не станет равным нулю. На первой итерации выполняется деление исходного числа, на всех последующих - частного от предыдущей итерации. Затем все остатки переводятся в цифры системы счисления с основанием b и выписываются в обратном порядке Перевод биткойн-адресов из бинарной формы (внутреннего машинного представления) в форму, удобную для человека, происходит по такому же принципу, где конечная система счисления имеет основание 58, а цифры представлены следующей последовательностью символов: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz где символ 1 соответствует нулю, а z - 57 10
|
|
|
|
loshara (OP)
Newbie
Offline
Activity: 57
Merit: 0
|
|
April 25, 2017, 11:03:28 AM |
|
спасибо большое. Понял. Ну и логично, что обратно надо умножать тогда Только не понял зачем так сложно и зачем понадобилось использовать вобще base58, почему не оставить hex было умному математику.. И единственная проблема, внимая Вашим советам, ник здесь нельзя менять (переименовывать
|
|
|
|
kcaterpillar
|
|
April 25, 2017, 11:15:04 AM |
|
Только не понял зачем так сложно и зачем понадобилось использовать вобще base58, почему не оставить hex было умному математику..
Потому что base58 занимает на два с небольшим бита меньше, чем HEX. И base58 содержит много буквенных "цифр", т.е. возможны осмысленные названия и прочтение, это удобнее цифр для людей. base58 в биткойне была сделана именно для людей, а не для машин, чтобы легче читали и не ошибались в адресах.
|
|
|
|
amaclin
Legendary
Offline
Activity: 1260
Merit: 1019
|
|
April 25, 2017, 03:43:55 PM |
|
Потому что base58 занимает на два с небольшим бита меньше, чем HEX. И base58 содержит много буквенных "цифр", т.е. возможны осмысленные названия и прочтение, это удобнее цифр для людей. base58 в биткойне была сделана именно для людей, а не для машин, чтобы легче читали и не ошибались в адресах. Интересно, вы сколько раз в жизни записывали биткойн-адрес на бумажку? Я лично ни разу. В кефире вовсю используются Hex-представления и никто особо не парится. У них даже нет в адресе контрольной суммы. Так что base58 - это скорее прижившийся атавизм. Никому не интересно как там внутри устроено и почему нет буквы 'l' (L-маленькая) в адресе. А для программистов, которые не вчера родились нет разницы что base58, что hex использовать. Накамото придумал так кодировать - и с тех пор проще продолжать так, чем всех переучивать. Экономия в 2 бита - это вообще смешно.
|
|
|
|
ThisNameIsAlreadyInUse
Newbie
Offline
Activity: 54
Merit: 0
|
|
April 25, 2017, 04:16:47 PM |
|
Экономия в 2 бита - это вообще смешно. Справедливости ради, экономия не в два бита - адрес записанный в кодировке base58 почти на треть короче чем, в шестнадцатеричной форме:
|
|
|
|
kcaterpillar
|
|
April 25, 2017, 04:23:25 PM |
|
Интересно, вы сколько раз в жизни записывали биткойн-адрес на бумажку? Я лично ни разу.
Лично я тоже ни разу не записывал на бумажку, но тем не менее сделали base58 именно для чтения/записи человеком. Подобный алгоритм, исключающий похожие буквы-цифры, использовался и раньше, например, при проверке паролей, чтобы люди не путались. Может и не самая нужная идея, но в биткойне base58 придумали именно для этого. Теоретически, кто-то когда-то может и запишет на бумагу, в целом идея верная, если бы предположить, что биткойн покорит весь финансовый мир. Например, будут присылать бумажные биткойн-счета по почте. )
|
|
|
|
kcaterpillar
|
|
April 25, 2017, 04:52:41 PM |
|
Экономия в 2 бита - это вообще смешно. Справедливости ради, экономия не в два бита - адрес записанный в кодировке base58 почти на треть короче чем, в шестнадцатеричной форме: Так я об этом и говорю, только не до конца уточнил. При записи двоичных данных одинаковой длины на шесть HEX символов придётся чуть более четырех base58 символов - это уже в ASCII кодировке. Т.е. на каждый символ base58 в ASCII будет округлённо на два бита больше в HEХ-формате в ASCII тех же данных.
|
|
|
|
amaclin
Legendary
Offline
Activity: 1260
Merit: 1019
|
|
April 25, 2017, 06:17:00 PM |
|
Так я об этом и говорю, только не до конца уточнил. При записи двоичных данных одинаковой длины на шесть HEX символов придётся чуть более четырех base58 символов - это уже в ASCII кодировке. Т.е. на каждый символ base58 в ASCII будет округлённо на два бита больше в HEХ-формате в ASCII тех же данных.
Епать экономия. 20 байт в base58check это 35 символов (приблизительно) в хексе 40 символов (без контрольной суммы) Ахуительная экономия. Примерно на два сантиметра на бумаге запись короче.
|
|
|
|
kzv
Legendary
Offline
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
|
|
April 25, 2017, 06:50:57 PM |
|
Есть мнение, что изначально вся эта байда с пруф оф ворком придумывалась накомотой вовсе не для финансов, а для электронной почты. В почте все кодируется base64. Но когда родилась идея сделать из открытых ключей адреса кошельков, то было лень прямо все переделывать и поэтому base64 превратился в base58 (хотя логичней было бы в base10 и не трахать мозг) просто потому, что так действительно удобней читать когда в ключе нет символов оliI+/
|
|
|
|
xhomerx10
Legendary
Offline
Activity: 4018
Merit: 8852
|
|
April 26, 2017, 12:53:43 AM |
|
спасибо большое. Понял. Ну и логично, что обратно надо умножать тогда Только не понял зачем так сложно и зачем понадобилось использовать вобще base58, почему не оставить hex было умному математику.. И единственная проблема, внимая Вашим советам, ник здесь нельзя менять (переименовывать Я не мог бы объяснить лучше, потому что я не говорю по-русски. Я рад, что другие помогли вам полностью понять. «Как дела» - только слова, которые я знаю по-русски
|
|
|
|
|