ブロックチェーンを応用する
eコマースサイトについて
弊社が開発した、ブロックチェーンを応用したeコマースサイトのデモ版をご紹介いたします。
<目次>
1.ブロックチェーンを応用するeコマースサイトの開発背景
◆サイトのスペック
使用プラットフォーム:
- Ethereum
- Truffle
- Ganache
- Metamask
プログラミング言語:
- Javascipt
- HTML/CSS
- Solidity
◆現在の問題
オンラインで買い物をする際、商品をオーダーしてから買い手の元へ配達するまでは様々な確認ステップを踏みます。しかし、この取引過程では売り方と買い手、双方がリスクを負うことになります。
店舗側(売り手)が遭遇する可能性のあるリスク:
- 商品が到着した際、買い手が注文をキャンセルする(送料は店舗側が負担)。
- 買い手が店舗と商品の品質についてクレームし、支払いを拒否する。
買い手が遭遇する可能性のあるリスク:
- 何の通知もなく、店舗側が買い手が前払いをしたオーダーをキャンセルする(前払いした代金は買い手に返金されない)。
- 店舗側は商品の品質が悪いと知っていながら、商品の交換や返品に応じない。
◆解決方法
- 販売システムへのログイン権限が必要なEthereumプラットフォームで暗号通貨を発行します。2NFトークンを所有する人のみシステムにて売買できます。
- 支払いの処理や返品/交換条件が明示的かつ正確に公開され、規約の十分な履行を確実にするためにSmartContractを使用します。
規約:
- 買い手がオンラインで注文した際、代金(デモ版での通貨はEther)はSmartContractのアドレスに送られ、そこに保存されます。
- 店舗から商品配達の通知が届いてないうち、買い手は注文のキャンセルができ、SmartContractで保存されている代金を全て返却してもらえます。
- 一旦店舗が商品の発送を開始すると、注文をキャンセルしたい場合は店舗に送料を補償しなければなりません。(このデモ版では補償金を代金の50%金額としています。つまり、注文をキャンセルした場合、買い手は代金の半分しか返金されません。代金の残り半分は送料を補償するために店舗のEthereumアドレスに送られます。)
- 商品を受け取った後、品質に問題がある場合、買い手は商品を交換してもらうように店舗にフィードバックできます。交換したい商品の在庫がない場合、買い手はSmartContractに登録された代金を全て返却してもらえます。
※Ethereum電子ウォレットのログイン機能の実装にMetamaskを使用します。
※Truffle-Ganacheを使用してEthereumローカルネットワークを作成します。
※Smart ContractのコーデイングにSodilityを使用します。
※HTML / CSS / Javascriptを使用してインタフェースを開発し、Smart Contractとやり取りするよう実装します。
2.デモ版のイメージ
Ganacheで作成されたBlockchainローカルネットワークにSmart Contractをデプロイします。ローカルホストにSmart Contractとやり取りするインタフェースをアップロードします。
Metamaskウォレットを使用し、Ganacheで作成されたアドレスに接続します。ウェブサイトにユーザーのウォレットアドレスとアカウントが持っているEther残高及び2NFトークン残高が表示されます。
アカウントが2NFトークンを持っていない場合、商品の購入はできません。システムはトークン残高が足りないといった通知を表示します。買い手が「Buy Token」ボタンを押して2NFトークンを買うと、トークンは自動的に該当アカウントに配信されます。トークンを購入してからウェブサイトの使用を続けます。
本システムに、2NF トークンの発行・情報確認の管理ページがあります。このページには以下の機能があります。
- Get Token Info機能:トークン名、記号、バージョンを表示します。
- Check balance address機能:アカウントが持っている現在のトークン残高を確認します。
- Set price buy/sell機能(システム所有者のみの機能):トークンの買い値と売り値を指定します。
- Frozen account機能(システム所有者のみの機能):ユーザーのウォレットを無効化します。このウォレットではトークンを買うことができません。
- Address Frozenチェック:アカウントが無効化されているかどうかをチェックします。
続いて、ETHで商品を購入します。「BUY」ボタンを押すと商品を購入できます。Metamaskウォレットはこれから実行が必要な取り引きを通知します。
取り引きを確定した後、ユーザーの代金金額はSmart Contractアドレスに送られます。「CANCEL ORDER」ボタンを押すことで注文をキャンセルし、送られた金額を返却してもらえます。一定期間内で「CANCEL ORDER」ボタンが押されなかった場合、「CONFIRM」ボタンに変更されるので、店舗は配達が開始できます。その際、注文のキャンセルはできなくなります。
最終取引が完了した際に「CONFIRM」ボタンを押すと、Smart Contractに登録された代金の金額は売り手のアドレスに送られます。
この最終取引をキャンセルすると、「CONFIRM」ボタンは「CANCEL ORDER」ボタンに変更されます。
「CANCEL ODER」ボタンを押すと、注文をキャンセルするために必要な取引の通知が表示されます。この取り引きを確定した場合、規約通りに対象商品の配達開始後の注文キャンセル料としてSmartcontractへ送られた金の半分を没収されます。
キャンセル料発生を避けるには、注文キャンセル取引を取り消してください。その時、「CANCEL ODER」が再び「CONFIRM」に変更されます。
3.デモ版における商品売買プロセス図
4.終わりに
以上、弊社が開発したブロックチェーンEコマースサイトのデモ版についてご紹介しました。興味をお持ちの方はご遠慮なくお問い合わせください。
また、このような案件だけでなく、他分野の案件についてもご協力させていただける機会があれば幸いでございます。弊社の能力やサービス、弊社の詳細情報については2NFソフトウェアのホームページをご参照ください。