コントラクトを作成しよう
👩💻 実装する内容の確認
本プロジェクトで作成するdappの内容を整理します。
銀行の行っている手形取引をスマートコントラクトで管理するアプリを作成します。
手形取引とは以下のようなものです。
手形の発行者と受取人、仲介人としての銀行がいる状態で以下のような取引が行われます。
- ある事業者の間で商品の取引が行われます。ここで商品の買い手がその場で代金を用意できない場合に手形が利用されます。商品の買い手を手形発行者、売り手が受取人とします。
- 発行者はすぐには代金を支払えないために、期限が来たら現金と交換することができる手形を受取人に対して発行します。
- 受取人は手形を銀行に持っていきます。
- 銀行は手形を現金と交換し受取人へ渡します。この時、手形の期限に達していない場合は本来の金額から割り引いた金額を受取人に渡すことになり ます。
- 銀行は期限に達した手形に対して発行者に請求します。
- 発行者は手形の金額と手数料を銀行に支払います。
- 期限までに手形の支払いを行わなかった発行者は不渡りを起こした事業者となり取引ができなくなります。
以上の仕組みをスマートコントラクトに実装します。
発行者と受取人がユーザとして存在し、スマートコントラクトが銀行の役目を果たします。
代金にはネイティブトークンを使用します。
🥦 既存金融と Subnet
ブロックチェーンは透明性や改ざん耐性から、銀行などの既存金融にとってメリットのあるデータベースと言えます。
またスマートコントラクトなどによりデータ管理業務を自動化できる点もメリットです。
しかし企業の運営には不正な活動をする事業者を排除する責任や利用者への説明責任などが伴うため、ブロックチェーンを使う場合はある程度のコントロールがネットワークに対してできる状態であることも求められます。
Subnetでは,「許可されたユーザーのみがコントラクトの展開やトランザクションを行うことができる」と要求することができます。 許可リストは管理者によってのみ更新され、許可リスト自体はPreCompileコントラクト内に実装されるため、コンプライアンスに関する事項についてはより透明で監査が可能です。