Sa paglalayon uli ng mga Bitcoin developers na makagawa ng progreso sa mekanismo ng transaksyon habang nagtitipid sa memorya, nailathala ang BIP-0141: Segregated Witness (Consensus Layer). Ito ay isang soft fork sa Bitcoin protocol.
Ang witness sa kriptograpiya ay isang solusyon sa itinakdang problema kung saan makakakuha ka ng YES na sagot. Halimbawa, ang signature na gamit sa pagberipika ng bisa ng isang mensahe, na pinag-usapan natin sa digital signature algorithms sa Kabanata 3, ay uri ng witness.
Kapag naging mas komplikado ang transaksyon, ang paggamit ng witness ay lumalaki rin. Isa na dun ang multi-sig, at meron pang ibang advanced transactions na pag-uusapan natin sa susunod na kabanata. At ito pa: ang witness nga ay gamit sa validation. Pero, hindi talaga sya kasama sa epekto ng transaksyon (paggastos ng UTXO na magreresulta sa bagong UTXO).
Kaya naisip ng mga Bitcoin developers na ihiwalay ang mga witness data, dahil kakailanganin lang ang mga ito kapag ang node ay nagbeberipika. Nagdulot ito ng pagdami ng pwedeng maisamang transaksyon sa block. Kaya tumaas ang kapasidad ng mga blocks.
Kasama pa sa pagbabago ay ang gamit na sistema sa pagsulat ng Bitcoin Address: Base32
Sa BIP-0173 ay isinaad ang Base32 na anyo ng address para sa mga native v0-16 (bersyon) na witness outputs. Gaya ng naunang anyo, may kasamang checksum ang Bitcoin address sa bersyong ito. Bech32 and pinaiksing tawag sa checksummed Base32.
Base 32 sa mga bagong Bitcoin Address
May itinakdang mga karakter para sa Base 32 na gamit ng Bitcoin network, na ganito ang pagkakasunud-sunod:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |
---|---|---|---|---|---|---|---|---|
+0 | q | p | z | r | y | 9 | x | 8 |
+8 | g | f | 2 | t | v | d | w | 0 |
+16 | s | 3 | j | n | 5 | 4 | k | h |
+24 | c | e | 6 | m | u | a | 7 | l |
Wala ditong, “1”, “b”, “i”, at “o”. Lahat ng letra ay lower case. Pero makikita mo pa rin ang “b” at “1” sa address, pero hindi bilang kasama ng code data na ginawan ng representasyon. Halimbawa ngang nabanggit kanina: bc1q6m86vk2t8wj2fhn4s3sevg7xzjdwqlll3v73p2. Ang “bc” sa umpisa ng address ay tumutukoy sa “human-readable part” at napili para sa Bitcoin. Ang “1” naman ay tumatayong “separator”. Ang ikaapat na karakter na makikita mo sa mga unang bersyon ng segwit address ay q, na syang tumatayong version 0.

Pinapakita sa itaas na ilustrasyon ang pagbuo ng anyo ng Segregated Witness na Bitcoin address. Kung simpleng isang public key lang at signature ang kelangan, ang address ay Pay-to-witness-public key hash (P2WPKH). Kapag mas komplikado ang script para magastos ang output, susundan ang paraan ng pagbuo ng address na Pay-to-witness-script hash (P2WSH).
Baka magtaka ka, sa paraan ng P2WPKH, double-hash ang gamit at dahil may RIPEMD160, 20 bytes ang kalalabasan nito. Samantalang sa P2WSH, isang SHA-256 lang gamit na magiging 32 bytes. Tama, at kasama yan sa konsiderasyon kapag nagde-decode na ng address. Malalaman kung ano ang P2WPKH at P2WSH. At sa ika-0 na bersyon (mga bc1q…), ang isang palatandaan ay 42 karakter ang haba ng P2WPKH address at may 62 na karakter sa P2WSH.
Kitakits sa ika-10
Pingback: SegWit Address para sa Luma (P2WSH) at mas Bagong SegWit (P2TR) Address – Bitcoin ba kamo?