What is Base58 and Why Does Bitcoin use it?
Last updated
Last updated
While Base58 & Base58Check are not hash functions, they are important topics to cover.
Base58 is a binary-to-text encoding of data to plain text; i.e., printable characters.
Like Base64, Base58 is used to represent 8-bit bytes of binary data in an ASCII string format. BSV uses a binary-to-text encoding to enable data stored in binary formats to be transmitted across communication channels that only reliably support text values like email and the internet.
The original Bitcoin source code provides an explanation for why Base58 is used in Bitcoin instead of the more common Base64:
In other words, since Base58 avoids using non-alphanumeric characters (+ and /) and ambiguous letters (0 - zero, I - capital i, O - capital o, and l - lower case L), it helps ensure addresses are readable, transmittable, and more secure.
One important point to note is the Base58 encoding used in Bitcoin is unique to Bitcoin and is not intended to match any other Base58 encoding implementations.
The table below shows the Base58 value mappings.
Value
Base58 Character Encoding
Value
Base58 Character Encoding
0
1
29
W
1
2
30
X
2
3
31
Y
3
4
32
Z
4
5
33
a
5
6
34
b
6
7
35
c
7
8
36
d
8
9
37
e
9
A
38
f
10
B
39
g
11
C
40
h
12
D
41
i
13
E
42
j
14
F
43
k
15
G
44
m
16
H
45
n
17
J
46
o
18
K
47
p
19
L
48
q
20
M
49
r
21
N
50
s
22
P
51
t
23
Q
52
u
24
R
53
v
25
S
54
w
26
T
55
x
27
U
56
y
28
V
57
z
Using the hash calculator, encode the following hash (displayed in HEX) in Base58:
\