唯一標識符/信用
紐布,如果這是一個愚蠢的問題,請道歉。如果將比特幣發送到我的錢包,發件人是否可以使用區塊鏈/交易的任何部分作為唯一標識符,以便他們將來可以為發送的金額申請信用,也就是說,無需為他們分配任何額外的標識資訊給他們?(例如,您向我發送比特幣,我將其視為信用。您可以使用交易中使用的數字組合來申請信用,因此我可以將發送的金額記入您,而無需向您分配任何其他資訊,並且沒有其他人可以知道該辨識資訊。感謝您的幫助!
這是可能的,但您的客戶必須使用支持使用錢包私鑰簽署消息功能的錢包。例如, bitcoind 有
signmessage
命令。使用者可以輸入諸如*“今天日期是____,我控制比特幣地址____,它向____服務發送硬幣”之*類的消息來證明他們的身份。使用來自交易本身的任何辨識資訊都不是證明使用者身份的好方法,因為所有交易細節都是公開記錄的問題。
注意:通過使用此功能,您將把潛在使用者群限制為知識淵博的使用者。並非所有錢包都具有此功能,實際上大多數錢包都沒有。如果使用者碰巧從無法簽署消息的錢包發送比特幣,他們可以通過將私鑰導入其他有能力的軟體然後使用它來簽署消息來證明自己的身份——但這又是一個更“高級的使用者” ’ 之類的操作。
另一個注意事項:不要建構要求使用者將其私鑰傳達給您的服務。這將是不負責任的做法。
發件人有沒有辦法使用區塊鏈/交易的任何部分作為唯一標識符,以便他們將來可以申請信用
唯一安全的唯一標識符是用於發送資金的私鑰(或證明該密鑰所有權的數字簽名)。
如果我對您的理解正確,您想給某人發送比特幣的功勞。確保特定人向您發送比特幣的唯一方法是讓他們提供證據證明他們擁有發送它的私鑰。這可能意味著要麼向您顯示私鑰(通常不是首選,因為現在它已暴露),或者使用用於支付您的相同密鑰對消息(您提供)進行數字簽名。即使這也不能證明他們發送了它,它只是證明他們可以訪問能夠發送它的密鑰。
問題是整個區塊鍊是公開的,因此任何人都可以查看交易並提供有關它的數據,例如
txid
它所在的區塊,甚至是確切的金額,並假裝他們發送了它。注意:順便說一句
signmessage
,比特幣核心中有一個 RPC 方法可以用來執行此操作,請參閱<https://bitcoincore.org/en/doc/0.16.2/rpc/wallet/signmessage/>更新:正如評論中提到的,為每個客戶生成一個新的比特幣地址,你只需要與他們分享,這將是一種體面的(和常見的)跟踪付款方式。如果其他人發現了該地址並發送了資金,則只有您分配該地址的客戶才能獲得信用。這最好實現為分層確定性錢包,因此您的密鑰都可以從主密鑰生成。