スマート契約は上記の場合に有用なツールであるかもしれないが、彼らはアドレスを制御することを証明したいユーザは、使用してメッセージに署名することができます寄付がキャンペーンに資金提供された住所に関連付けられた秘密鍵。
交換は、次のように行くだろう:、ユーザーがどこからトランザクションを送信したアドレスを制御して、アドレスのアカウントを使用してウォレットに行くだろう
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契約が存在し、契約でどのくらいの割合で企業がどのくらいの割合でレイズするかを制御できるため、スマート契約も良い選択です。