2017-06-19 261 views
0

如何驗證某人是否擁有錢包地址?以太坊:是否可以驗證錢包的所有權?

使用案例:

  • 錢包主人捐贈10 ETH的集資活動

  • 運動決定給津貼(類似Kickstarter的)之後的戰役已經結束的錢包地址。

  • 如果出錢的錢包所有者有權獲得津貼,那麼該老闆怎麼會聲稱這種津貼呢?理想情況下,他們可以提供一個只有發件人/收件人知道的密鑰,但該活動只有一個交易收據和一個公開的錢包地址。

這是否是一個需要啓動智能合同的加息露營?

: -/

回答

0

雖然智能合同可以是在上述情況中的有用工具,想要證明他們控制的地址可使用簽署消息的用戶私人密鑰與捐贈地址相關聯的資金從該活動中發送。

交流會去類似於以下:

Organization: Hooray we raised our goal and we had the great idea to 
give everyone that participated a free t-shirt! Send us a signed message with the 
word 'shirt' and your address and we will mail you a shirt. 

然後用戶會去到控制,他們從發送的交易,並使用地址帳戶中的地址的錢包,簽署一個消息:

然後
> personal.unlockAccount('0x30ddF5144a0483e3c1d6E5f45C396aC72a487B9e', 
    'examplepassword',60); 
true 
> eth.sign(eth.accounts[41], web3.sha3("shirt 123 Main St., Any Town, Any Country")) 
"0x90e8f95ca6f44410572401ad5d16255914a23af76613580c436926985dfdbfdb2d808a691cb808ed32cb0cc419d306916c17dd26a8df53bbbc31826352d81ca31b" 

用戶可以用自己復仇的地址,他們用來發送資金,他們簽署的消息(在這種情況下shirt 123 Main St., Any Town, Any Country)和簽名向組織信息(通過電子郵件等)。然後組織可以將這三個輸入到以太坊節點中進行驗證或使用在線服務,如Etherscan's verifySig工具(以上演示在Etherscan verifySig here中)。

當然,像你提到的那樣,通過智能合同是可能的。作爲向合同發送資金的回報,最終用戶可以具有這樣的功能,即使是在原始衆包合同完成之後產生的新合同,也可以使他們兌換獎勵。

智能合同也可能是一個很好的選擇,因爲開源合同存在實施多信號從合同中提取資金,合同也可以控制組織以多大比率提高多少。