Base58

Base58 im originalen Bitcoin-Sourcecode

Base58 beschreibt ein Verfahren aus dem Computerbereich zur Kodierung von positiven ganzen Zahlen. Das Alphabet von Base58 ergibt sich aus dem der Base62-Kodierung durch Weglassen der vier Zeichen 0 (Null), O (großes o), I (großes i) und l (kleines L). Gegenüber dem Alphabet der Base64-Kodierung fehlen außerdem die Zeichen + (Plus) und / (Schrägstrich).

Kodierungstabelle

Das resultierende Alphabet der Länge 58 lautet 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz, es besteht somit nur aus verwechslungsfreien alpha-numerischen Zeichen.

DezimalBinärBase58DezimalBinärBase58DezimalBinärBase58DezimalBinärBase58
0000000116010000H32100000Z48110000q
1000001217010001J33100001a49110001r
2000010318010010K34100010b50110010s
3000011419010011L35100011c51110011t
4000100520010100M36100100d52110100u
5000101621010101N37100101e53110101v
6000110722010110P38100110f54110110w
7000111823010111Q39100111g55110111x
8001000924011000R40101000h56111000y
9001001A25011001S41101001i57111001z
10001010B26011010T42101010j
11001011C27011011U43101011k
12001100D28011100V44101100m
13001101E29011101W45101101n
14001110F30011110X46101110o
15001111G31011111Y47101111p

Der Vorteil von Base58 im Vergleich zu Base62 und Base64 ist, dass eine Verwechslung zwischen ähnlich aussehenden Zeichen (0, O, o; 1, I, l) unabhängig vom verwendeten Schrift-Font ausgeschlossen ist. Außerdem ist wie bei Base62 (und im Gegensatz zu Base64) durch Verwendung von ausschließlich alpha-numerischen Zeichen (ohne + und /) sichergestellt, dass bei Doppelklick die gesamte Base58-Zeichenkette markiert wird und dass bei Verwendung z. B. in E-Mails kein unerwünschter Zeilenumbruch entsteht. Der Nachteil ist eine etwas längere Zeichenfolge als bei einer Base62- oder Base64-Kodierung. Außerdem können zwei Zahlen, die in binärer Darstellung gleich viele Bits enthalten, in Base58-Darstellung unterschiedlich lang sein, weil 58 keine Zweierpotenz ist. Aus diesem Grund können zum Beispiel die Base58-kodierten Bitcoin-Adressen zwischen 25 bzw. 27 und 34 Zeichen lang sein.[1][2]

Verwendung

Verwendung findet die Base58-Kodierung typischerweise dort, wo lange Integer-Zahlen in kürzere Zeichenketten umgewandelt werden sollen und eine verwechslungsfreie Erkennung der Adresse sichergestellt sein soll, zum Beispiel bei Flickr-Kurz-URLs[3] oder bei Bitcoin-Adressen.

Weblinks

Einzelnachweise

  1. https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses
  2. https://en.bitcoin.it/wiki/Address
  3. flickr short URLs

Auf dieser Seite verwendete Medien

Original source code bitcoin-version-0.1.0 file base58.h.png
Autor/Urheber: FlippyFlink, Lizenz: MIT
A screenshot from the original source code of bitcoin where base58 is described in the file base58.h in version 0.1.0.

Downloaded from http://www.zorinaq.com/pub/bitcoin-0.1.0.rar (or archive.org) as mentioned in https:// bitcointalk .org/index.php?topic=68121.0 and mentioned in https://en.bitcoin.it/wiki/Base58Check_encoding

base58.h on github.com