Akda ni:
witcher_senseOrihinal na akda:
Bitcoin Message Tool - command-line signer & verifier
PanimulaIsa 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.mediawikiMga 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
Installation1)Para ito ay ma install gamit ang pip, run:
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):
Gumawa ng bagong virtual environment:
I-download ang application mula sa PyPi gamit ang command na ito:
poetry add bitcoin-message-tool
Para patakbuhin ito mula sa terminal gamitin ang command na ito:
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:
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:
pip install -r /path/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:
python3 /path/to/bmt.py -h
Paano gamitin ang Bitcoin Message ToolMula sa doctest maari mo na dito makita kung paano ang mag sign at verify ng mensahe gamit ang CLI tool na ito:
Pangunahing gamit:
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:
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
$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:
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:
-----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:
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
python bmt.py verify -a 175A5YsPUdM71mnNCC3i8faxxYJgBonjWL \
> -m ECDSA ang isa sa mga nakakatuwa kong karanasan \
> -s HyiLDcQQ1p2bKmyqM0e5oIBQtKSZds4kJQ+VbZWpr0kYA6Qkam2MlUeTr+lm1teUGHuLapfa43JjyrRqdSA0pxs= \
> -v
Resulta:
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_toolSubukan gamit ang Sparrow WalletNgayon 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]