Yazar: witcher_sense
Ana Konu: Bitcoin Message Tool - command-line signer & verifier
Bitcoin mesajlarının imzalanması ve doğrulanması için hafif, tamamen açık kaynak kodlu bir CLI aracı. Bitcoin mesajları, herhangi bir gizli birimi ifşa etmeden belirli bir adres üzerindeki mülkiyeti kanıtlamanın en basit ve doğal olarak iletilir.
Bu araç, BIP137'de anlatılan özellikleri detaylı takip eder:
"...Bitcoin özel anahtarlarıyla yani private keylerle, P2PKH adresleri kullanarak mesajları dijital olarak imzalamaya yönelik yazılmış bir BIP olmasa da bu süreç oldukça iyi anlaşılmıştır. Ancak, Segwit'in (hem P2SH hem de bech32 formunda) adreslerle tanıtılmasıyla birlikte, bir P2PKH, P2SH veya bech32 adresini birbirinden ayırt etmenin nasıl yapılacağı belirsiz hale gelmiştir. Bu BIP, müşterilerin farklı adres formatlarını ayırt etmesine olanak tanıyacak standart bir imza formatı önermektedir.."
Lütfen şunu da unutmayın:
"bu format P2PKH anahtarlarını içerdiği için geriye dönük uyumludur, ancak bazı yazılımların başlık aralıklarını kontrol ettiğini ve daha yeni segwit başlık türlerini hata olarak bildireceğini de göz ardı etmeyin."
Daha fazla bilgi için: https://github.com/bitcoin/bips/blob/master/bip-0137.mediawiki
BIP137 imza türünü tam olarak destekleyen cüzdanlar:
1) Trezor
2) Sparrow Cüzdan
3) Coldcard?
4) ...
Bu araç temel olarak bu standardın kullanımını genişletme girişimidir.
Kurulum
1) Pip ile kurmak için aşağıdaki kodları çalıştırın:
Bu uygulama için sanal bir ortam oluşturabilir ve oradan çalıştırabilirsiniz, örneğin Poetry'yi kullanarak.
Yeni bir klasör oluşturun (bmt, Bitcoin Message Tool'un kısaltmasıdır veya istediğinizi seçebilirsiniz):
Yeni bir sanal ortam oluşturun:
Uygulamayı PyPi'den şu komutla indirin:
Terminalden çalıştırmak için aşağıdaki komutu kullanın:
Uygulamayı argümanlar olmadan çalıştırdığınızda bir yardım mesajı göreceksiniz.
2) Alternatif olarak, kaynak kodunu doğrudan GitHub'dan şu komutla indirebilirsiniz:
veya depoyu çatallandırabilir ve ardından çatallanmış sürümü klonlayabilirsiniz.
Gereksinimleri şu komutla yükleyin:
Forked(çatallanmış) veya klonlanmış depodan bir uygulama çalıştırmak için, basitçe aşağıdakileri kullanabilirsiniz:
Bitcoin Mesaj Aracı Nasıl Kullanılır
Aşağıdaki doctest, bu CLI aracıyla mesajların nasıl imzalanacağı ve doğrulanacağı hakkında net bir tablo sunmalıdır:
Temel kullanım:
veya
python bmt.py -h
kullanım: python3 bmt.py [-h] {sign,verify} ...
Bitcoin mesaj imzalama/doğrulama aracı
konumsal argümanlar:
{sign,verify}
seçenekler:
-h, --help bu yardım mesajını göster ve çık
Mesaj imzalama:
kullanım: python3 bmt.py sign [-h] -p -a {p2pkh,p2wpkh-p2sh,p2wpkh} -m [MESAJ ...] [-d] [-v]
seçenekler:
-h, --help bu yardım mesajını göster ve çık
İmza mesajı:
-p, --privkey cüzdan içe aktarma biçiminde (WIF) özel anahtar
-a {p2pkh,p2wpkh-p2sh,p2wpkh}, --addr_type {p2pkh,p2wpkh-p2sh,p2wpkh}
bitcoin adresi türü
-m [MESAJ ...], --mesaj [MESAJ ...]
İmzalanacak mesaj
-d, --deterministic deterministik olarak imzala (RFC6979)
-v, --verbose güzelleştirilmiş mesajı yazdır
Örnek: Sıkıştırılmış özel anahtar ve p2pkh adresi için kesin olmayan imza
PrivateKey(WIF):
Çıktı:
Mesaj: ECDSA şimdiye kadar deneyimlediğim en eğlenceli şey
İmza: IBuc5GXSJCr6m7KevsBAoCiX8ToOjW2CDZMr6PCEbiHwQJ237LZTj/REbDHI1/yelY6uBWEWXiOWoGnajlgvO/A=
-v/--verbose bayrağıyla aynı çıktı:
ECDSA şimdiye kadar deneyimlediğim en eğlenceli şey
-----BITCOIN İMZASI BAŞLANGICI-----
175A5YsPUdM71mnNCC3i8faxxYJgBonjWL
IBuc5GXSJCr6m7KevsBAoCiX8ToOjW2CDZMr6PCEbiHwQJ237LZTj/REbDHI1/yelY6uBWEWXiOWoGnajlgvO/A=
-----BITCOIN İMZASI BİTİŞİ-----
Mesaj doğrulama:
kullanım: python3 bmt.py verify [-h] -a ADRES -m [MESAJ ...] -s İMZA [-v] [-r]
seçenekler:
-h, --help bu yardım mesajını göster ve çık
Mesajı doğrula:
-a ADRES, --adres ADRES
bitcoin adresini belirt
-m [MESAJ ...], --mesaj [MESAJ ...]
Doğrulanacak mesaj
-s İMZA, --imza İMZA
bitcoin imzası base64 biçimi
-v, --verbose tam mesajı yazdır
-r, --recpub genel anahtarı kurtar
Örnek: Ayrıntılı modda mesaj doğrulaması
> -m ECDSA şimdiye kadar deneyimlediğim en eğlenceli şey \
> -s HyiLDcQQ1p2bKmyqM0e5oIBQtKSZds4kJQ+VbZWpr0kYA6Qkam2MlUeTr+lm1teUGHuLapfa43JjyrRqdSA0pxs= \
> -v
Çıktı:
Mesajın 175A5YsPUdM71mnNCC3i8faxxYJgBonjWL'den olduğu doğrulandı
Daha fazla örnek ve kaynak kodu yandaki linkten bulunabilir: https://github.com/shadowy-pycoder/bitcoin_message_tool
Sparrow Cüzdanı ile Testler
Gerçek cüzdanla oluşturulan bir SegWit imzasını doğrulayalım:
Sonuç:
Bu cüzdanla oluşturulan bir SegWit imzasını doğrulayalım araç:
Sonuç:
Bu çeviri AOBT instiyatifi ile yapılmıştır.