<<  >> (p.3)
    Author Topic: Bitcoin Message Tool - command-line signer at verifier  (Read 48 times)
    Peanutswar (OP)
    Legendary
    *
    Offline

    Activity: 2436
    Merit: 2199


    Alliance Of Bitcointalk Translator | ENG to FIL


    View Profile
    February 08, 2026, 03:15:17 AM
    Merited by cryptoaddictchie (1), GazetaBitcoin (1)
     #1

    Akda ni: witcher_sense
    Orihinal na akda: Bitcoin Message Tool - command-line signer & verifier




    Panimula

    Isa itong madaling gamitin na open-source CLI tool para sa pag sign at pag verify ng bitcoin message. Ang Bitcoin message ay isa sa mga direktang natural na pag papatunay nang mag kakakilanlan ng kanilang address na hindi na kailangan pa mag bigay ng kanilang mga impormasyon.

    Ang tool na ito ay gumagamit ng espesipikasyon ng BIP137

    "...Habang wala tayong BIP na nakasulat kung paano nga ba talaga mag sign digitally gamit ang Bitcoin private keys gamit ang P2PKH addresses at para ito ay lubos na maunawaan, gayunpaman mula sa pagsisimula ng Segwit (parehas na P2SH at bech32) addresses, hindi pa din malinaw ano nga ba ang pinagkaibahan ng P2PKH, P2SH, o bech32 address. Gamit ang BIP nagkaroon tayo ng pamantayan sa pagkakaroon ng signature format na pinahintuluyan ang mga kliyente nito na malaman ang pag kakaiba ng bawat address na ito."


    Pag katandaan:

    "dahil kasama dito ang format ng P2PKH keys, at ito ay gumagana pa din kahit ito ay luma na, pero pagkatandaan na may ilan pa ding mga software ang kayang tumingin ng sakop ng mga header at mag report ng mga bagong segwit header bilang error."


    Para sa karagdagang impormasyon: https://github.com/bitcoin/bips/blob/master/bip-0137.mediawiki

    Mga wallet na suportado ang BIP137 na klase ng signature:

    1) Trezor
    2) Sparrow Wallet
    3) Coldcard?
    4) ...

    Ang tool na ito ay paramasubukan kung gaano nga ba kalawak ang gamit nito bilang pamantayan

    Installation

    1)Para ito ay ma install gamit ang pip, run:

    Code:
    pip install bitcoin-message-tool

    Maari kayong gumagamit ng isang virtual environment para sa application na ito at dito ninyo patakbuhin, halimbawa gamit ang Poetry.

    Gumawa ng bagong folder (ang kahulugan ng bmt ay Bitcoin Message Tool o di kaya ay pwede kayo mamili ng gusto ninyo):

    Code:
    poetry new bmt

    Code:
    cd ./bmt

    Gumawa ng bagong virtual environment:

    Code:
    poetry install
    Code:
    poetry shell

    I-download ang application mula sa PyPi gamit ang command na ito:

    Code:
    poetry add bitcoin-message-tool

    Para patakbuhin ito mula sa terminal gamitin ang command na ito:

    Code:
    python3 -m bitcoin_message_tool

    Pag ni-run mo ang app na walang mga arguments, makikita ninyo ang tulong na mensahe na ito.

    2) Sa ibang paraan, maari ninyo i-download ang source code mula sa GitHub gamit ang command na ito:

    Code:
    git clone https://github.com/shadowy-pycoder/bitcoin_message_tool.git

    o di kaya ay maari mong i-fork ang repo tapos ay mag clone para sa forked version nito

    I-install ang iba pang kailangan gamit ang command na ito:

    Code:
    pip install -rpath/to/requirements.txt

    Para mapatakbo ang application na ito galing sa forked o di kaya yan cloned repo, maari nyo lamang sundan ang mga ito:

    Code:
    python3path/to/bmt.py -h

    Paano gamitin ang Bitcoin Message Tool

    Mula sa doctest maari mo na dito makita kung paano ang mag sign at verify ng mensahe gamit ang CLI tool na ito:

    Pangunahing gamit:

    Code:
    python -m bitcoin_message_tool -h

    o

    python bmt.py -h
    usage: python3 bmt.py [-h] {sign,verify} ...

    Bitcoin message signing/verification tool

    positional arguments:
    {sign,verify}

    options:
    -h, --help     show this help message and exit


    Pag sign ng mensahe:

    Code:
    python bmt.py sign -h
    usage: python3 bmt.py sign [-h] -p -a {p2pkh,p2wpkh-p2sh,p2wpkh} -m [MESSAGE ...] [-d] [-v]

    options:
    -h, --help            show this help message and exit

    Sign messsage:
    -p, --privkey         private key in wallet import format (WIF)
    -a {p2pkh,p2wpkh-p2sh,p2wpkh}, --addr_type {p2pkh,p2wpkh-p2sh,p2wpkh}
                            type of bitcoin address
    -m [MESSAGE ...], --message [MESSAGE ...]
                            Message to sign
    -d, --deterministic   sign deterministtically (RFC6979)
    -v, --verbose         print prettified message

    Halimbawa: Paiba-iba ang gamit na signature para sa compressed private key at p2pkh address

    Code:
    $python bmt.py sign -p -a p2pkh -m ECDSA ang isa sa mga nakakatuwa kong karanasan

    PrivateKey(WIF): <insert private key here>
    Paalala na hindi makikita ang inyong private key sa terminal.

    Output:

    Code:
    Bitcoin address: 175A5YsPUdM71mnNCC3i8faxxYJgBonjWL
    Message: ECDSA ang isa sa mga nakakatuwa kong karanasan
    Signature: IBuc5GXSJCr6m7KevsBAoCiX8ToOjW2CDZMr6PCEbiHwQJ237LZTj/REbDHI1/yelY6uBWEWXiOWoGnajlgvO/A=

    Parehas lang ang lalabas gamit sa -v/--verbose flag:

    Code:
    -----BEGIN BITCOIN SIGNED MESSAGE-----
    ECDSA is the most fun I have ever experienced
    -----BEGIN BITCOIN SIGNATURE-----
    175A5YsPUdM71mnNCC3i8faxxYJgBonjWL

    IBuc5GXSJCr6m7KevsBAoCiX8ToOjW2CDZMr6PCEbiHwQJ237LZTj/REbDHI1/yelY6uBWEWXiOWoGnajlgvO/A=
    -----END BITCOIN SIGNATURE-----

    Pag beripika ng mensahe:

    Code:
    python bmt.py verify -h
    usage: python3 bmt.py verify [-h] -a ADDRESS -m [MESSAGE ...] -s SIGNATURE [-v] [-r]

    options:
    -h, --help            show this help message and exit

    Verify messsage:
    -a ADDRESS, --address ADDRESS
                            specify bitcoin address
    -m [MESSAGE ...], --message [MESSAGE ...]
                            Message to verify
    -s SIGNATURE, --signature SIGNATURE
                            bitcoin signature in base64 format
    -v, --verbose         print full message
    -r, --recpub          recover public key

    Example: Pag beripika ng mensahe gamit ang verbose mode

    Code:
    python bmt.py verify -a 175A5YsPUdM71mnNCC3i8faxxYJgBonjWL \
    > -m ECDSA ang isa sa mga nakakatuwa kong karanasan \
    > -s HyiLDcQQ1p2bKmyqM0e5oIBQtKSZds4kJQ+VbZWpr0kYA6Qkam2MlUeTr+lm1teUGHuLapfa43JjyrRqdSA0pxs= \
    > -v

    Resulta:

    Code:
    True
    Ang mensahe ay beripikado mula sa 175A5YsPUdM71mnNCC3i8faxxYJgBonjWL
      Maari kayong makakita ng marami pang halimbawa at mga source code mula dito:
    https://github.com/shadowy-pycoder/bitcoin_message_tool

    Subukan gamit ang Sparrow Wallet

    Ngayon ay subukan nating i-beripika ang SegWit signature mula sa totoong wallet:



    Resulta:



    Ngayon ay subukan nating i-beripika ang SegWit signature na ginawa natin gamit ang tool na ito:



    Resulta:

    [/list]

    ▄▄████████████████████▄▄
    ▄████████████████████████▄
    ██████████████████████████
    ██████████████████████████
    ███▄▄▀▀▀▄▀▀▄█▄▀▀▀▄█▄▀▀▄▄██
    ████████████▐▌████▐▌██████
    ███▀███████▀▀████▀▀███████
    ███▐▌█████████████████████
    ████▀▄▄██▄▄▄▄███▄▄▄███████
    ██████▀▀▀█▀▀▀▀█▀▀▀▀▀██████
    ██████████████████████████

    ▀████████████████████████▀
    ▀▀████████████████████▀▀

    ..1win..
    █████████████████████████
    █████████████████████████
    ████████████▀░░░▀▀▀▀█████
    █████████▀▀▀█▄░░░░░░░████
    ████▀▀░░░░░░░█▄░▄░░░▐████
    ████▌░░░░▄░░░▐████░░▐████
    █████░░░▄██▄░░██▀░░░█████
    █████▌░░▀██▀░░▐▌░░░▐█████
    ██████░░░░▀░░░░█░░░▐█████
    ██████▌░░░░░░░░▐█▄▄██████
    ███████▄░░▄▄▄████████████
    █████████████████████████
    █████████████████████████

    ..POKER..
    █████████████████████████
    █████████████████████████
    ███████████▀▀▀███████████
    ███████▀▀░░▄▄▄░░▀▀███████
    ██████▄░░░░███░░░░▄██████
    █████░▀▀█▄▄░░░▄▄█▀▀░█████
    █████░██░░▀▀█▀▀░░██░█████
    █████░░░░░░░█░██░▄▄░█████
    █████▄░░░▄▄░█░▄▄░▀▀▄█████
    ███████▄▄▀▀░█░▀▀▄▄███████
    ███████████▄█▄███████████
    █████████████████████████
    █████████████████████████

    ..GAMES..
    █████████████████████████
    █████████████████████████
    ████████▀▀░░░░░▀▀████████
    ██████░░▄██▄░▄██▄░░██████
    █████░░████▀░▀████░░█████
    ████░░░░▀▀░░░░░▀▀░░░░████
    ████░░▄██░░░░░░░██▄░░████
    ████░░████░░░░░████░░████
    █████░░▀▀░▄███▄░▀▀░░█████
    ██████░░░░▀███▀░░░░██████
    ████████▄▄░░░░░▄▄████████
    █████████████████████████
    █████████████████████████
    Pages: [1]
      Print  
Page 2
Viewing Page: 3