Signature

如何證明錢包所有權?

  • May 8, 2021

語境

我想驗證存在A是否可以訪問錢包,因此想要求他們向我以外的人擁有的特定錢包地址支付最低金額,例如,我給1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa存在的簽名。ThisIsUnexpected``A

我認為基本概念很簡單,如果A同意,他們會與我分享他們的比特幣錢包地址:being_A_bitcoin_wallet_address. 接下來,我將與being 共享預期的簽名和選定的收件人地址(例如1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNaA。然後, BeingA1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa. 交易完成後,我查看收到的捐款的交易歷史記錄,1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa並找到由 進行的交易being_A_bitcoin_wallet_address。接下來,我查看該特定交易的簽名並驗證它是否為:ThisIsUnexpected. 如果交易確實有那個簽名,我有很高的確定性可以A訪問being_A_bitcoin_wallet_address,我可以驗證他們的資金數額。

挑戰

雖然這個想法可能相對簡單,但我在執行過程中遇到了一些挑戰。

為了測試驗證程序,我想我會查找該地址的過去交易的簽名。因此我去了:https ://www.blockchain.com/btc/address/1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa並查看了交易列表。在撰寫本文時,是最近的交易,所以我想我也許可以Sigscript將交易的 (索引為 1)放入此簽名驗證工具中以獲得人類可讀的簽名。但是,該工具似乎沒有提供人類可讀的簽名,我也不知道我選擇的任意交易是否包含類似“Thank you Satoshi”的簽名。

我如何實際驗證比特幣交易的簽名(如果有的話)?

子問題

我認為這個問題可以細分為以下子問題:

  • 如何驗證任意交易是否包含人類可讀的簽名?
  • 我應該使用交易數據的哪些資訊來獲得交易簽名的人類可讀形式?
  • 哪些線上資源可用於驗證簽名?
  • 是否有提供函式的python腳本:being_has_access_to_wallet(claimed_wallet_access_address, recipient_wallet_address,human_readable_signature, amount=0.0001)返回TrueFalse使用類似於塊瀏覽器的東西?

如何驗證任意交易是否包含人類可讀的簽名?

沒有“人類可讀的簽名”之類的東西。簽名只是一個非常大的數字。或者我們可以將其視為一對非常大的數字。通常我們用十六進制編碼它,所以它看起來像 3044022007ae5e36b79303f992e153798061458b435d34285c5fddc20655451ac71b49f6022079421d162cad51db0daa0a934cbf5261d4b503f1851604e

我應該使用交易數據的哪些資訊來獲得交易簽名的人類可讀形式?

輸入腳本

哪些線上資源可用於驗證簽名?

Google“ecdsa 線上驗證簽名”。但我不確定這些資源是否適合驗證比特幣簽名。

引用自:https://bitcoin.stackexchange.com/questions/106137