ETHGlobal HackMoney ハッカソンで DAI をステーキングする方法

2020/04/26

It's a stakeout!

Curvegridのエンジニアとインターンは、2020年4月24日から5月24日まで開催されるETHGlobal HackMoneyハッカソンに参加しています。300人のハッカーが最大5人のチームで次世代の分散型金融(DeFi)アプリケーションのプロトタイピングを行っています。過去のETHGlobalハッカソンのDeFi受賞者にはSet Protocol、ZK Social Recovery、およびBlazarが含まれます。

参加者は50 DAIをステーキングする必要があり、ハッカソンの終了時に積極的に参加するすべての人に返金されます。主催者、スポンサー、メンターはハッカソンの組織と運営に多くの労力を注いでおり、50 DAIのステーキングという小さなハードルは、参加することに真剣な人だけが申し込むように促します。

HackMoneyのためにDAIをステーキングする方法は2つあります:HackMoneyのサインアップページを通じて1回ずつ、またはスマートコントラクトと直接やり取りして一括で行うことです。私たちは2つ目のアプローチを示し、異なるDeFiの「マネーLEGO」を組み合わせる方法を説明します。

ステーキングの紹介

ステーキングは、価値あるものを受け取るために、一定期間トークンや暗号通貨を担保として提供するプロセスです。たとえば、DAIをDAI Savings Rateスマートコントラクトに預けることで、DAIがロックされている期間中、実質的に利息を受け取ることができます。

Simple illustration of the staking process

Unlockを使用したHackMoneyのためのDAIステーキング

私たちはHackMoneyのステーキング設定に以下のコンポーネントを持っています。

  • MakerDAO: DAIは、米ドルに対して価格が管理される分散型担保債務ポジション(CDP)のステーブルコインです。1 DAI ≈ 1 USD。DAIはERC20およびDSToken互換のスマートコントラクトです。

  • Unlock Protocol: これはDAI-for-HackMoney参加設定の中心です。ETHGlobalの主催者は参加者からDAIを受け取るためのUnlock PublicLockスマートコントラクトをデプロイしました,そして代わりにHackMoney KEYトークンを発行します。ハッカソンの終了時にベストを尽くした参加者は、50 DAIとサインアップしたが参加しなかった人からのDAIの均等部分を受け取るためにKEYトークンを返却できます。スマートコントラクトの上に、HackMoneyサインアップポータルに統合されたWebベースのDAppを使用してDAIをステークしKEYトークンを受け取ることで、HackMoneyハッカソンへの参加の地位を確保できます。

The HackMoney staking process

HackMoneyのためのDAIステーキングの基本的なプロセスは:

  1. Ethereumのガス料金を支払うためにETHを取得する

  2. 最低50 DAIを購入してステーキングする

  3. web3ブラウザ(MetaMaskなど)でハッカソンにサインアップし、2つのトランザクションを送信する:

  4. approve()を使用して、HackMoney PublicLockスマートコントラクトに50 DAIをあなたのウォレットから引き出すことを許可する。

  5. purchase()を使用して50 DAIと引き換えにKEYトークンを購入し、PublicLockスマートコントラクトにステークします。

あるいは、ステップ1と2をスキップして、ステップ3の最初の部分としてクレジットカードを使用できます。

スマートコントラクトへのHackMoney直接DAIステーキング

HackMoney PublicLockスマートコントラクトは公開Ethereumブロックチェーン上で実行されているので、私たちはそれに直接話しかけることができます。私たちはMultiBaasを使用しますが、コマンドラインに自信がある場合はスクリプトを書いたりgethコマンドを直接使用することもできます。私たちの場合、参加するエンジニアとインターンを代表して50 DAIを提供したいと考えていました。HackMoneyのサインアップページは、アクティブなweb3ブラウザウォレットを使用するだけをサポートしています。各参加者は自分の秘密鍵を私たちと共有する必要がありました、または私たちは各参加者に50 DAIを送信し、彼ら自身がそれをステークできる場合もありました。

しかし、Ethereum上の各トランザクションは約$0.05-$1.50の取引手数料がかかり、DAIを送信し、各参加者のためにapprove()およびpurchase()を呼び出すと、料金が積み重なっていきます。もし中央ウォレットから単純にDAIをステークできたらどうなるでしょうか?

最初に、私たちは中央でステークする400 DAIのために一度approve()をDAIスマートコントラクトに呼び出す必要があります。これにより、DAIが私たちのウォレットから引き出され、HackMoney PublicLockスマートコントラクトにステークされることが許可されます。私たちはすでにMultiBaasインスタンスにDAIコントラクトを設定しているので、単にそれにナビゲートし、適切な値を入力し、Send Methodをクリックします。

PublicLock smart contract in MultiBaas

MetaMaskを使用してトランザクションに署名し、DAIをステークできる準備ができました。これをHackMoneyサインアップUIを使用して行っていれば、8回の別々のトランザクションが必要であったことに注意してください。

次に、PublicLockスマートコントラクトをMultiBaasにアップロードし、既存のHackMoneyスマートコントラクトインスタンスにリンクします:

PublicLock smart contract in MultiBaas

この上部は公開状態の変数を示しており、KEY価格(50.000... DAI)を含んでいます。これまでに発行されたKEYトークンの数(総供給 = 279)も見ることができます。

私たちはpurchase()メソッドを下にスクロールして、適切な値を入力します。受取人は、私たちが代表してステークしている参加者の公開Ethereumアドレスです。再度Send Methodをクリックし、トランザクションに署名し、参加者のために50 DAIと引き換えにKEYトークンをステークしました!

Calling purchase() on the PublicLock smart contract in MultiBaas

要約すると、私たちがやったことは次のとおりです:

  1. Ethereumのガス料金を支払うためにETHを取得した

  2. 8x50 = 400 DAIを購入してステーキングする

  3. approve()を使用してHackMoney PublicLockスマートコントラクトから400 DAIをウォレットから引き出すことを許可した

  4. purchase()を使用して50 DAIと引き換えにKEYトークンを購入し、私たちが代表している各参加者のためにx8のPublicLockスマートコントラクトにステークした

  5. その後、各参加者はweb3ブラウザ(MetaMaskなど)でハッカソンにサインアップし、彼らのウォレットではすでに50 DAIが彼らのためにステークされていることが認識されます

もう一度、ビデオと共に

私たちは努力を記録し、MultiBaasでのDAIのステーキングを示すクイックデモビデオをまとめました。‍