Voted Coins
follow us on twitter . like us on facebook . follow us on instagram . subscribe to our youtube channel . announcements on telegram channel . ask urgent question ONLY . Subscribe to our reddit . Altcoins Talks Shop Shop


This is an Ad. Advertised sites are not endorsement by our Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise Here

Author Topic: Bitcoin Message Tool - command-line signer & verifier  (Read 359 times)

Offline Husna QA

  • Moderator
  • Legendary
  • *
  • *
  • *
  • Activity: 2337
  • points:
    171399
  • Karma: 294
  • Mixero: Privacy by XMR (Monero) bridge
  • Trade Count: (0)
  • Referrals: 3
  • Last Active: Today at 09:57:25 AM
    • View Profile

  • Total Badges: 24
    Badges: (View All)
    Seventh year Anniversary Sixth year Anniversary Fifth year Anniversary
Bitcoin Message Tool - command-line signer & verifier
« on: September 21, 2024, 01:58:30 AM »
Note:
Thread terjemahan berikut ini bisa dikategorikan sudah tingkat lanjut.
Mengenai topik dasar bagaimana cara Sign message pada Bitcoin Address yang lebih instan menggunakan tools yang sudah tersedia pada wallet Bitcoin (non-custodial) mungkin perlu dibuat terpisah. Sementara itu, bisa merujuk juga pada salah satu bagian tulisan pada topik yang pernah saya buat di sini:
Husna QA - ELECTRUM - BITCOIN WALLET

Info:
Bagi teman-teman mungkin bisa memanfaatkan thread berikut ini sebagai langkah preventif, minimalnya untuk memudahkan pembuktian ketika misalkan akun altcoinstalks diretas orang lain: Stake your Bitcoin address (https://www.altcoinstalks.com/index.php?topic=321705.0)



Topik Asli   : Bitcoin Message Tool - command-line signer & verifier
Penulis Asli : witcher_sense




Pendahuluan

Sebuah tool CLI open-source yang ringan untuk menandatangani dan memverifikasi bitcoin message. Bitcoin message adalah cara yang paling mudah dan natural untuk membuktikan kepemilikan atas sebuah address tanpa mengungkapkan informasi rahasia.

Tool ini mengikuti spesifikasi yang dijelaskan dalam BIP137:

"...Meskipun tidak ada BIP yang ditulis untuk cara menandatangani pesan (message) secara digital dengan private key Bitcoin dengan alamat P2PKH, proses ini cukup dipahami dengan baik, namun dengan diperkenalkannya alamat Segwit (baik dalam bentuk P2SH maupun bech32), tidak jelas bagaimana membedakan alamat P2PKH, P2SH, atau bech32 satu dengan yang lainnya. BIP ini mengusulkan format tanda tangan standar yang akan memungkinkan klien untuk membedakan antara format alamat yang berbeda."

Harap dicatat bahwa:

"karena format ini menyertakan kunci P2PKH, format ini kompatibel dengan format sebelumnya, tetapi perlu diingat bahwa beberapa software memiliki pemeriksaan untuk rentang header dan akan melaporkan jenis header segwit yang lebih baru sebagai error."

Info lebih lanjut: https://github.com/bitcoin/bips/blob/master/bip-0137.mediawiki

Wallet yang sepenuhnya men-support jenis tanda tangan (signature) BIP137:

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

Tool ini pada dasarnya adalah sebuah upaya untuk memperluas penggunaan standar ini.

Instalasi

1)Untuk menginstal dengan pip, jalankan:

Code: [Select]
pip install bitcoin-message-tool
Anda bisa membuat sebuah virtual environment untuk aplikasi ini dan menjalankannya dari sana, contohnya dengan menggunakan Poetry.

Buat sebuah folder baru (bmt adalah kependekan dari Bitcoin Message Tool atau Anda bisa memilih nama yang Anda inginkan):

Code: [Select]
poetry new bmt
Code: [Select]
cd ./bmt
Buat sebuah virtual environment baru:

Code: [Select]
poetry install
Code: [Select]
poetry shell
Download aplikasi dari PyPi melalui command berikut ini:

Code: [Select]
poetry add bitcoin-message-tool
Untuk menjalankannya dari terminal, gunakan command berikut ini:

Code: [Select]
python3 -m bitcoin_message_tool
Ketika Anda menjalankan aplikasi tanpa argumen, Anda akan melihat help message.

2) Atau, Anda dapat mengunduh source code langsung dari GitHub melalui command berikut ini:

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

atau Anda dapat melakukan fork pada repo dan mengkloning versi fork tersebut

Instal requirement melalui command berikut:

Code: [Select]
pip install -r /path/to/requirements.txt
Untuk menjalankan aplikasi dari repo yang di-fork atau dikloning, Anda cukup menggunakan yang berikut ini:

Code: [Select]
python3 /path/to/bmt.py -h
Cara menggunakan Bitcoin Message Tool

Doctest berikut ini akan memberikan gambaran yang jelas mengenai cara menandatangani dan memverifikasi pesan dengan tool CLI ini:

Penggunaan dasar:

Code: [Select]
python -m bitcoin_message_tool -h

or

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


Penandatanganan pesan:

Code: [Select]
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

Contoh: Tanda tangan non-deterministik untuk private key terkompresi dan alamat p2pkh

Code: [Select]
$python bmt.py sign -p -a p2pkh -m ECDSA is the most fun I have ever experienced

PrivateKey(WIF): <insert private key here>
Harap dicatat bahwa private key tidak akan muncul pada terminal.

Output:

Code: [Select]
Bitcoin address: 175A5YsPUdM71mnNCC3i8faxxYJgBonjWL
Message: ECDSA is the most fun I have ever experienced
Signature: IBuc5GXSJCr6m7KevsBAoCiX8ToOjW2CDZMr6PCEbiHwQJ237LZTj/REbDHI1/yelY6uBWEWXiOWoGnajlgvO/A=

Output yang sama dengan -v/--verbose flag:

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

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

Verifikasi pesan:

Code: [Select]
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

Contoh: Verifikasi pesan dalam mode verbose

Code: [Select]
python bmt.py verify -a 175A5YsPUdM71mnNCC3i8faxxYJgBonjWL \
> -m ECDSA is the most fun I have ever experienced \
> -s HyiLDcQQ1p2bKmyqM0e5oIBQtKSZds4kJQ+VbZWpr0kYA6Qkam2MlUeTr+lm1teUGHuLapfa43JjyrRqdSA0pxs= \
> -v

Output:

Code: [Select]
True
Message verified to be from 175A5YsPUdM71mnNCC3i8faxxYJgBonjWL

Contoh dan source code lebih lanjut dapat diWord blocked to prevent spamkan di sini: https://github.com/shadowy-pycoder/bitcoin_message_tool

Test dengan wallet Sparrow

Mari kita verifikasi tanda tangan SegWit yang dibuat dengan wallet sungguhan:



Hasil:



Mari kita verifikasi tanda tangan SegWit yang dibuat oleh tool ini:



Hasil:






Terjemahan ini diinisiasi oleh Tim AoBT (The Alliance of Bitcointalk Translators).

Sumber rujukan terjemahan serupa:
Husna QA: Bitcoin Message Tool - command-line signer & verifier
« Last Edit: September 21, 2024, 02:42:40 AM by Husna QA »
░░░░░░░░░░░░░░░░░█████████████
░░░██████░░░░░░░░█████████████
░░░██████░░░░░░░░█████████████
░░░██████░░░░░░░░█████████████
░░░░░░░░░░░░░░░░░█████████████
░░░░░░█████████░░█████████████
░░░░░░█████████
░░░░░░█████████
░░░░░░█████████░░░░█████████
░░░░░░░░░░░░░░░░░░░█████████
████░░░░░░░░░░░░░░█████████
████░░░░░░░░░░░░░░█████████
██████████████████████████████
█████████▀▀███▀▀░░▀▀▀█████████
███████▀░░█▀░░░░▄▄▄▄▄▄▄███████
██████░░░██░░▄█▀▀░░░░░▀▀██████
█████░░░░█░░███████▄▄▄░░░▀████
███░██░░░█▄████████▄░▀█▄░░░███
███░░██░░░███████████░░▀█▄░███
████░░▀██▄▄████████░██░░░█▄███
█████░░░░░▀▀▀▀▀▀██░░██░░░█████
███████▄▄▄▄▄▄▄█▀░░░▄█░░░██████
████████▀▀▀▀░░░░░░██░░▄███████
██████████▄▄▄▄▄████▄██████████
██████████████████████████████
██████████████████████████████████████████████████████████████████████████████████
.
MIXERO.IO
.
██████████████████████████████████████████████████████████████████████████████████
████
██
██
██
██
██
██
██
██
██
██
██
████
..
..
..
..
..
..
..
..
██████████████████████████████
███████▀▀██░▀█████████████████
████████░░█░█▀▀░██████████████
████████░░▀░░░▄███████████████
██████▀░░░░░░░░░▀██████░▀█████
████▀░░░░░░░░░░░░░██▀▀█▄░░████
████░░░░░░░░░░░▄████▄░▀██░░███
████░░░░░░░░░▄██▀░▄██░░██░░███
█████░░░░░░▄██▀████▀░░██░░████
███████▄▄▄████▄░░░░▄██▀░░█████
███████████░░▀▀▀██▀▀▀░░▄██████
██████████████▄▄▄▄▄▄██████████
██████████████████████████████
..
..
..
..
████
██
██
██
██
██
██
██
██
██
██
██
████
██████████████████████████████████████████████████████████████████████
.
MIX.NOW
.
██████████████████████████████████████████████████████████████████████
████
██
██
██
██
██
██
██
██
██
██
██
████
█████████████
█████████████
░░░░░░░░░██████
█████████████░░░░██░░░██████
█████████████░░░░░░░░░██████
█████████████
█████████████░░█████████
░░░░░░░░░░░░░░░█████████
░░░░░░░░░░░░░░░█████████
░░█████████░░░░█████████
░░█████████
░░█████████░░░██░░░░░░░░░░████
░░█████████░░░░░░░░░░░░░░░████

Altcoins Talks - Cryptocurrency Forum

Bitcoin Message Tool - command-line signer & verifier
« on: September 21, 2024, 01:58:30 AM »


 

ETH & ERC20 Tokens Donations: 0x2143F7146F0AadC0F9d85ea98F23273Da0e002Ab
BNB & BEP20 Tokens Donations: 0xcbDAB774B5659cB905d4db5487F9e2057b96147F
BTC Donations: bc1qjf99wr3dz9jn9fr43q28x0r50zeyxewcq8swng
BTC Tips for Moderators: 1Pz1S3d4Aiq7QE4m3MmuoUPEvKaAYbZRoG
Powered by SMFPacks Social Login Mod