如何确认有人拥有钱包地址?
用例:
电子钱包拥有者将10 ETH捐赠给众筹广告系列的钱包地址
广告系列决定在广告系列结束后提供特权(类似于kickstarter)。
如果捐赠的钱包所有者有权获得奖励,那么该拥有者如何声称获得奖励?理想情况下,他们可以提供只有发送者/接收者知道的密钥,但该活动只有一个交易收据和一个所有公共知识的钱包地址。
这个拥挤的露营是否需要推出智能合约?
: - /
答案 0 :(得分: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中)。
当然,正如你提到的,这可以通过智能合约实现。作为向合同发送资金的回报,最终用户可以拥有允许他们甚至从原始众包合同完成后生成的新合同中兑换奖励的功能。
智能合约也可能是一个不错的选择,因为存在开源合约,实施多重合同以从合同中提取资金,合同也可以控制组织以多少汇率筹集多少资金。