新聞中心
比特幣系統(tǒng)中可以給一串消息進行數(shù)字簽名,有三個作用:

成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供岑溪網(wǎng)站建設(shè)、岑溪做網(wǎng)站、岑溪網(wǎng)站設(shè)計、岑溪網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、岑溪企業(yè)網(wǎng)站模板建站服務(wù),十余年岑溪做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
- 證明你擁有某筆資金的私鑰
- 該證明是無可爭辯的、不可抵賴的
- 簽名后的交易沒有被其他人修改過
數(shù)字簽名使用橢圓曲線數(shù)字簽名算法(ECDSA),算法非常復雜,普通用戶不必掌握其算法的細節(jié),但你只要掌握了Bitcoin Core錢包軟件或類似工具,也可以非常輕松地生成簽名或驗證簽名。
生成簽名
在Bitcoin Core軟件的“文件”菜單下,點擊“消息簽名”菜單項,彈出一個對話框。分別填寫比特幣地址,消息文本,點擊“消息簽名”按鈕,則會在底部的簽名區(qū)出現(xiàn)一行文本,這段文本可以證明你擁有那個比特幣地址、那段消息是完整的、沒有被修改過一個字,這個證明誰都可以驗證、不可抵賴。
驗證簽名
在Bitcoin Core軟件的“文件”菜單下,點擊“驗證消息”菜單項,彈出一個對話框。分別填寫比特幣地址、消息文本、簽名文本,點擊“驗證消息簽名”按鈕,則會出現(xiàn)是否驗證成功的提示。
沒有安裝Bitcoin Core軟件也沒關(guān)系,很多網(wǎng)站都提供了驗證簽名的工具。比如:https://blockexplorer.com/messages/verify
再比如這個網(wǎng)站:
https://bitcotools.com/verify-messages
下面這個網(wǎng)址中列舉了幾十種簽名方法:
https://bitcointalk.org/index.php?topic=990345.0
截圖上文字顯示得不全,我的完整消息簽名是:
- H0UP22YwxdZ0EyetmIoY72w/v1QGQiSk2vAf6jViHlw/DBC+76775pFqxGclbrkny4D40bVWe9nPLgl/MMWQyZs=
在NBitcoin 中進行消息簽名用2個函數(shù)就可以搞定,非常方便:
- 生成簽名文本用 key.SignMessage(msg)
- 驗證簽名用 addr.VerifyMessage(msg, sig)
就這樣簡單,完整源代碼:
- // 用私鑰給一個消息進行簽名
- var msg = "我擁有這個地址的私鑰:17mKugcBDEJbu391Fq41AdwLeGHwJLPRDf";
- string priv = "3243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C8";
- Key k = new Key(Encoders.Hex.DecodeData(priv), -1, false); // 非壓縮密鑰
- var sig = k.SignMessage(msg);
- Console.WriteLine(sig);
- // 結(jié)果:
- // G2HBHn+ZmgTNtCnxMbgWf4nbXcTjB
- // KFvy3am3UWcxdA0TD3MDdpqaZgEoY
- // PsvbhR +OSZkR9hSp/rrO3nErlzBjY=
- // 驗證一個簽名
- var addr = new BitcoinPubKeyAddress("17mKugcBDEJbu391Fq41AdwLeGHwJLPRDf");
- Console.WriteLine(addr.VerifyMessage(msg, sig));
- // 驗證我以前用Bitcoin Core做過的一個簽名
- var addr2 = new BitcoinPubKeyAddress("12j75TnvVhEVxk3fiaPSy3w4FVfjsKbKZm");
- var msg2 = "申龍斌的程序人生";
- var sig2 = "H0UP22YwxdZ0EyetmIoY72w/v1QGQiSk2vAf6jViHlw/DBC+76775pFqxGclbrkny4D40bVWe9nPLgl/MMWQyZs=";
- Console.WriteLine(addr2.VerifyMessage(msg2, sig2));
Craig Steven Wright(CSW)一直聲稱他就是中本聰,為什么不拿創(chuàng)世區(qū)塊中的比特幣地址(1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa)對一段消息進行簽名?
看來澳本聰就是一個騙子。
【本文為專欄作者“申龍斌”的原創(chuàng)稿件,轉(zhuǎn)載可通過作者微信公眾號(申龍斌的程序人生)獲取聯(lián)系】
戳這里,看該作者更多好文
本文標題:他是中本聰?為什么連簡單的消息簽名都不用?
網(wǎng)站URL:http://fisionsoft.com.cn/article/codeejh.html


咨詢
建站咨詢
