以太坊:是否可以验证钱包的所有权?
问题描述:
如何验证某人是否拥有钱包地址?以太坊:是否可以验证钱包的所有权?
使用案例:
钱包主人捐赠10 ETH的集资活动
运动决定给津贴(类似Kickstarter的)之后的战役已经结束的钱包地址。
如果出钱的钱包所有者有权获得津贴,那么该老板怎么会声称这种津贴呢?理想情况下,他们可以提供一个只有发件人/收件人知道的密钥,但该活动只有一个交易收据和一个公开的钱包地址。
这是否是一个需要启动智能合同的加息露营?
: -/
答
虽然智能合同可以是在上述情况中的有用工具,想要证明他们控制的地址可使用签署消息的用户私人密钥与捐赠地址相关联的资金从该活动中发送。
交流会去类似于以下:
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中)。
当然,像你提到的那样,通过智能合同是可能的。作为向合同发送资金的回报,最终用户可以具有这样的功能,即使是在原始众包合同完成之后产生的新合同,也可以使他们兑换奖励。
智能合同也可能是一个很好的选择,因为开源合同存在实施多信号从合同中提取资金,合同也可以控制组织以多大比率提高多少。