2017-06-19 6 views
0

誰かがウォレットアドレスを所有していることをどのように検証できますか?Ethereum:可能な財布の所有権を検証していますか?

使用事例:

  • ウォレット所有者が

  • キャンペーンは、キャンペーン終了後(キックスターターに類似)の特典を与えることを決定クラウドファンディングキャンペーンの財布アドレスに10 ETHを寄付しています。

  • 寄付したウォレットの所有者が特典を受けられる場合、その所有者はその特典をどのように主張できますか?理想的には、送信者/受信者だけが知っているであろうキーを提供することができますが、キャンペーンには取引の領収書とすべての公開情報であるウォレットアドレスしかありません。

スマートコントラクトを開始する必要があるのは、この大規模なキャンプですか?

: -/

答えて

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で)署名されたメッセージと署名と組織にメッセージ(電子メールを介して、など)を送信することができます。組織は3つをethereumノードに入力して検証したり、Etherscan's verifySigツール(上記のデモはEtherscan verifySig here)のようなオンラインサービスを使用することができます。

もちろん、このことを暗示しているように、スマートな契約によって可能です。契約に資金を送付する代わりに、エンドユーザは、元のクラウデール契約が完了した後に生成された新しい契約からでも報酬を引き換えることができる機能を持つことができます。

契約から資金を引き出すためにmulti-sigを実装しているopensource契約が存在し、契約でどのくらいの割合で企業がどのくらいの割合でレイズするかを制御できるため、スマート契約も良い選択です。

関連する問題