以太坊:是否可以验证钱包所有权?
Ethereum: is validating wallet ownership possible?
如何验证某人拥有钱包地址?
用例:
钱包所有者向众筹活动的钱包地址捐赠 10 ETH
活动决定在活动结束后提供福利(类似于 kickstarter)。
如果贡献的钱包所有者有权获得额外津贴,那么该所有者如何申请该额外津贴?理想情况下,他们可以提供只有 sender/receiver 知道的密钥,但该活动只有交易收据和钱包地址,这些都是 public 知道的。
这个众筹露营需要上线智能合约吗?
:-/
虽然智能合约在上述情况下可能是一个有用的工具,但想要证明他们控制某个地址的用户可以使用与地址相关联的私钥签署一条消息,表明捐款已发送到广告系列来自。
交换将类似于以下内容:
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 tool (the above demo is in Etherscan verifySig here).
等在线服务。
当然,就像你提到的那样,这可以通过智能合约实现。在 return 向合同发送资金的过程中,最终用户可以拥有允许他们甚至从原始众筹合同完成后生成的新合同中兑换奖励的功能。
智能合约也可能是一个不错的选择,因为存在实施多重签名以从合约中提取资金的开源合约,并且合约还可以控制组织以何种利率筹集多少资金。
如何验证某人拥有钱包地址?
用例:
钱包所有者向众筹活动的钱包地址捐赠 10 ETH
活动决定在活动结束后提供福利(类似于 kickstarter)。
如果贡献的钱包所有者有权获得额外津贴,那么该所有者如何申请该额外津贴?理想情况下,他们可以提供只有 sender/receiver 知道的密钥,但该活动只有交易收据和钱包地址,这些都是 public 知道的。
这个众筹露营需要上线智能合约吗?
:-/
虽然智能合约在上述情况下可能是一个有用的工具,但想要证明他们控制某个地址的用户可以使用与地址相关联的私钥签署一条消息,表明捐款已发送到广告系列来自。
交换将类似于以下内容:
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 tool (the above demo is in Etherscan verifySig here).
当然,就像你提到的那样,这可以通过智能合约实现。在 return 向合同发送资金的过程中,最终用户可以拥有允许他们甚至从原始众筹合同完成后生成的新合同中兑换奖励的功能。
智能合约也可能是一个不错的选择,因为存在实施多重签名以从合约中提取资金的开源合约,并且合约还可以控制组织以何种利率筹集多少资金。