What is Bech32?
Bech32 is a type of encoding used for application layers. It is also known as “Base32”. This encoding originally represented an address format for native version 0.16 witness outputs. Initially, the mechanism of the original and the first cryptocurrency relied on Base58 addresses with double SHA256 as a part of the system. The scope was later extended to P2SH (pay-to-script-hash).
Since the initial encoding and the checksum algorithm had flaws in terms of limitations, the new address format was proposed. One of the limitations of the initial encoding Base58 was the need to use a lot of space in QR codes. The reason for this limitation is the fact that Base58 is not capable of using alphanumeric mode. Additionally, double SHA256 checksum was noted to be slow and had no warranty of safety and security, which posed a major problem. On top of all these limitations, Base58 was soon deemed too slow and too complicated to be used.
While Base58 represents a mixed case, Bech32 could be presented as a more efficient and fool-proof alternative. It has a human-readable part as a string that can be read out loud, and has a smaller format so it is suitable for QR code reading.
Bech32 is created to reduce transaction size
Moreover, Bech32 is created to produce small transactions, reduced in size when compared with transactions made through P2SH SegWit. Both Bech32 and P2SH use 20 bytes for hashing; however, Bech32 doesn’t need additional bytes, only using a fixed value of 00 hash. On the other hand, P2SH demands a value of 160 operational hash in addition to requiring OP_EQUAL alongside integrated 20 bytes.
Additionally, Bech32 doesn’t require non-witness signature script, while P2SH needs 23 bytes for every input with additional bytes taken from P2SH UTXO. Although the two are being compared, P2SH represents a type of transaction while Bech32 is a type of encoding equivalent to native SegWit, which furthermore promotes enhanced detection of errors.
Withdrawal and Sending Enabled to Bech32 Addresses
The present form of the Tokens.net platform enables users to use Bech32 addresses for sending and withdrawing funds. Although withdrawals and transacting of funds are enabled through Bech32 addresses, users are not able to make deposits directly to the platform, but will instead send deposits through wallets.
As a result, Bech32 addresses offer a friendly environment for small transactions alongside having improved functions in the domain of error detection. Bech32 addresses cannot be used for deposits on Tokens.net.
Talking about the morphology of Bech32 addresses, these addresses have a human-readable part and use “bc” for accessing mainnet while “tb” is used for testnet. The separator between the human-readable part and cryptography is always “1”. The Bech32 string has a maximum of 90 characters with a data part consisting of alphanumeric characters which is at least six characters long. Alphanumeric characters within the Bech32 string exclude “1”, “b”, “i” and “o”.
Bech32 addresses have between 42 and 62 characters. A common form of Bech32 addresses can be seen in the following examples:
bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq (42 characters)
bc1qc7slrfxkknqcq2jevvvkdgvrt8080852dfjewde450xdlk4ugp7szw5tk9 (62 characters).