導入文
第二のインターネットといわれるWeb3.0の到来がいよいよ目前に迫るなか、スマートコントラクトの重要性がますます高まりつつあります。スマートコントラクトの登場により、ブロックチェーンは単なる仮想通貨の決済と送金手段から、金融や不動産、食品、貿易、医療・医薬品、高級ブランド、物流、ゲーム・エンタメといったさまざまなフィールドにおける用途が広がりました。 そこで今回は、Web3.0の影の主役ともいえるスマートコントラクトについて詳しく解説します。 スマートコントラクト仕組み や開発手段、費用についても紹介するので、これからブロックチェーンを本格的に開発したいとお考えの経営者や開発担当者の皆様は、ぜひ参考にしてください。
スマートコントラクトとは
スマートコントラクトとは、あらかじめプログラムされた契約を自動的に実行する仕組みのことで、ブロックチェーン上で稼働するプロトコルを意味します。
ブロックチェーンが世に知られるようになったのは、サトシ・ナカモトという人物がビットコインを開発し、その仕組みについて記述された論文をインターネット上で発表したことによります。ビットコインは、国が発行する法定通貨とはまったく仕組みが異なり、管理者も不在であることから「仮想通貨」と呼ばれるようになりました。
ビットコインの用途は、送金と決済の2種類に限られます。これらの取引が自動実行されるという意味では、ビットコインにもスマートコントラクトが機能しているといえます。しかし、スマートコントラクトというワードが多用され始めたのは、ビットコインに遅れること約6年後にメインネットがローンチされた「イーサリアム」が登場してからです。
イーサリアムは単なる送金と決済にとどまらず、ブロックチェーン上にあらゆる機能を持つアプリケーション(Dapps)を開発できる仕組みがあることで、徐々に注目を集め始めます。
スマートコントラクトには、主に
・高い信頼性
・高い透明性
・コスト削減が可能
という3つのメリットがあります。それぞれについて解説しましょう。
高い信頼性
スマートコントラクトはブロックチェーン上で機能するため、いったんプログラムされたら二度と書き換えることはできません。また、全ての取引履歴はブロックチェーン上に記録されるので、改ざんをするのはほぼ不可能です。さらに、プログラム通りに契約が実行されるため、ヒューマンエラーは絶対に起こりません。以上のような理由で、非常に高い信頼性があるといえるのです。
高い透明性
スマートコントラクトが稼働するブロックチェーンでは、全取引記録を参加者全員が閲覧することができます。そのため、不正が行われた場合はすぐに発覚するので高い透明性が担保されています。
コスト削減が可能
ブロックチェーンは、P2P(ピア・ツー・ピア)で各端末がすべて一対一で繋がっており、クライアントサーバーが存在しません。つまりサービス企業や金融機関などの中央集権的管理者が不在のため、取引ごとに手数料を支払う必要がないのです。
さらに本来なら書類に個人情報をはじめとするさまざまな記載事項を記入したり、押印したり、サービスを利用するための許可を得たり、手数料を振り込んだりといった作業がの多くが省略できるうえ自動で行われるため、ペーパレス化や業務効率化によるコスト削減も大幅に進みます。
スマートコントラクトの種類
スマートコントラクトは、ERCというイーサリアムの共通規格に則って開発されます。イーサリアムは、その開発者をはじめとする有志によって、ずい時アップデートのための技術提案がなされてきました。その技術提案をERCと呼び、提案の順番ごとに数字が割り振られ、技術提案の場である、EIP(Ethereum Improvement Proposals)において承認されると正式な規格として採用される仕組みになっています。有名なところでは、「ERC-20」や「ERC-721」などがあります。
ERC-20はFT(ファンジブルトークン)を実装するための共通規格です。ファンジブルトークンとは、代替可能なトークンのことで、同じ数量のトークンならだれが保有していても価値が同じで交換が可能ということです。これを使うと、投票や自動入札、宝くじ、カジノといったサービスをブロックチェーン上で提供することができます。
一方のERC-721は、NFT(ノンファンジブルトークン)を実装するための共通規格です。ノンファンジブルトークンとは、代替不可能なトークンです。トークンごとに内容がまったく異なるので、FTのようにだれが保有していても価値が同じではありません。
具体的には、画像や動画、音楽といったデジタルコンテンツをトークンと紐付けて唯一無二の価値を証明するのに利用します。これによってブロックチェーン上でデジタルコンテンツを売り買いでき、スマートコントラクトでプログラムすれば、売られるたびに原作者に決まった割合の報酬が支払われる2次販売にも対応可能になります。
さらに、開発現場ではERC20とERC721のハイブリッド型であるERC-1155やERC1155の進化系ハイブリッド型であるERC3525も多用されています。
前記のERC20とERC721は、1つのスマートコントラクトにつき1種類のトークンしかサポートできませんでした。よって、新規トークンを開発するごとにいちいちスマートコントラクトを新たに作成しなければならないのが、開発者からすると面倒だったのです。
この問題を解消すべくERC1155やERC3525が開発されます。マルチトークンといわれるこれらの共通規格を利用すると、複数のFTやNFTでも一度で取引ができるため、手数料が安くなるだけでなく、開発作業が大幅に効率化されました。とりわけERC3525は、トークンの分割や統合ができるので金融取引における利便性が高まる点が注目されています。
ERCが有志によってひっきりなしに提案されることにより、イーサリアムブロックチェーンの使い勝手が良くなるように、改良の手がずい時、加えられています。ERCの後に続く数字は、提案がなされた順番を意味しています。つまりERC3525なら、3525番目に提案された共通規格ということです。いかに多くの提案が日常的になされているかが理解できるでしょう。そして今後も提案作業は続き、スマートコントラクトの共通規格は確実に増えていくと考えられます。
スマートコントラクト活用範囲・活用事例
スマートコントラクトの活用事例を具体的に紹介しましょう。
・DeFi
・ブロックチェーンゲーム
・DAO
・STO
・トレーサビリティ
以上5つの具体例について解説します。
DeFi(分散型金融)
スマートコントラクトを稼働させることによって、ブロックチェーン上で金融サービスを提供することができます。ウォレットさえあればだれでも融資や保険、資金調達などが可能になります。銀行や保険会社といった管理者が不在のため、手数料がいらないか非常に安く済み、取引もスピーディーに行える点が大きなメリットです。
ブロックチェーンゲーム
スマートコントラクトを使うと、ブロックチェーン上でゲームを開発することもできます。これがNFTゲームです。ゲームキャラクターやゲーム内で使用するアイテムをNFTにすることによって、ユーザーはプレイするだけでなくそれらを売買することが可能となります。キャラクターやアイテムのレア度や人気が高まれば、NFTとしての市場価格が上がりますし、人気がなくなれば価格も下落します。
メタバース上でもゲームをプレイしたり、NFTを売買したりすることができるので、今後の市場規模の拡大が期待されています。
DAO(分散型自律組織)
DeFiの一種であるDAOは、同じ目的を持つ者がネット上で集まって組織を作り、持ち寄った資金を元手にプロジェクトを運営するというものです。DAOで発行されるガバナンストークンを購入すれば、年齢や身分、国籍を問わずだれでも、どこからでも参加可能で、平等の発言権が得られます。投票で意思決定がなされ、過半数以上の賛成があればその決定事項はスマートコントラクトによって自動実行されます。
一般的な会社組織であれば、意思決定のプロセスは詳しく明かされないことが珍しくありません。しかしDAOは身分の上下や、人同士のしがらみといったものは一切関係なく、しかも意思決定の過程はすべて可視化されるため、極めて透明性が高いといえるでしょう。
STO(セキュリティ・トークン・オファリング)
STOは、株式や社債、不動産といった政府が正式に認めた有価証券とトークンを紐付け、スマートコントラクトによってブロックチェーン上で自動取引して資金調達する方法です。政府によるお墨付きを得た証券が対象となるため、一般的な仮想通貨と比較すると信頼性が高いといえるでしょう。
トレーサビリティ
加工食品や医薬品といった製造業では、材料の仕入れから生産、そして出荷に至るプロセスで異物混入や産地偽装、盗難といったリスクが少なくありません。そこでスマートコントラクトを活用すると、ブロックチェーン上に全工程を記録し、いつ、だれが、何を、どのようにしたのか、といったデータがいつでも確認できるため、精度の高いトレーサビリティの実装が可能となります。同じ理屈で、物流、貿易プロセスのトラッキングや高級ブランドのセキュリティと品質の保持といった用途にも活用できます。
スマートコントラクトとGas(ガス)の関係
イーサリアムブロックチェーンでは、スマートコントラクトの実行やガバナンストークンであるETHの送金に手数料がかかります。この手数料を「Gas(ガス代)」といいます。手数料がかかるのは、トランザクションのたびに計算処理を行うマイナー(採掘者)への報酬が必要となるからです。
以下に、Gasについての理解を深めるため、「Gas Price」と「Gas Limit」について解説しましょう。
Gas Price とは
マイナーにいくらでトランザクションを依頼するかという価格は、「Gas Price」と呼ばれ、ユーザー自身が決めるルールとなっています。マイナーは、Gas Priceが高く設定されているユーザーのトランザクションを優先的に実行・承認します。正式に承認されると、ブロックが生成されます。Gas Priceが低ければ実行と承認は後回しにされます。よって、ユーザーにとっては、その時々のイーサリアムブロッックチェーンの利用状況を見ながら適切なGas Priceを設定することが求められるというわけです。
ちなみに取引が成立するGas Priceは1日の内でも時間帯によって頻繁に変化しています。そのため、ユーザーにとっては取引量が少なくてGas Priceが低く済むタイミングでいかに取引を行うかが、Gasを節約するためには有効となります。
イーサリアムは、スマートコントラクトが利用できる人気のブロックチェーンですから、世界中で非常にニーズが高まる局面があります。そのためあまりに手数料が安いと取引量が激増し、とてもマイニング作業が追いつかず、ネットワークに大変な負荷がかかってしまいます。そこで、任意でGas Priceを決めてユーザー内で差別化を図れるようにすることで、一定以上の負荷がかからない仕組みになっているのです。
またGasの存在はセキュリティ対策にも一役買っています。というのも、悪意のある第三者がネットワークに負荷をかけハッキングを行おうとしても、そのたびにGasがかかるため、セーブ機能が働くといえるのです。
Gas Limitとは
上記のようなメカニズムでは、資金に余裕がある投資家や富豪が優位となり、放置しておくとGas Priceは際限なく高騰する恐れがあります。にもかかわらず取引を継続すると、Gasの支払い額が膨大となり、ユーザーの中には資産が枯渇したり破綻をきたしたりといったゆゆしき事態を招くリスクも生じます。そこで「ここまでならGasを払います」という限界値(リミット)を「Gas Limit」という形であらかじめ決めておくわけです。
Gas Limitに達した時点で取引ができなくなるため、予算オーバーすることもいっさいありません。いわば、ユーザーを守るセーフティネットの役割を果たすのが、「Gas Limit」なのです。
Gasは「wei(ウェイ)」という単位で表され、「1Gwei(ギガウェイ)=0.000000001ETH」と決められています。
2023年5月16日時点のETHの価格は250,000円前後で推移しているので、仮に1ETH=250,000円とすると、1Gwei=0.00025円となります。
Gasの計算例を示しましょう。
仮に、あるユーザーのGas Priceが50GweiでGas Limitを21,000Gasとすると、最大の手数料は以下の通りになります。
最大の手数料=50Gwei×21,000Gas×0.000000001=0.00105ETH
上記のレート(1ETHi=250,000円)で計算すると、「262.5円」となります。
マイナーによって取引が承認され、新たにブロックが生成された時点でガス代はマイナーに支払われます。もし実際に使われなかったガスがある場合は、後でユーザーへ返金されることになっています。
スマートコントラクトの仕組み
先ほど説明したスマートコントラクトの共通規格(ERC)は、Solidityという開発言語でプログラムされます。Solidityは、スマートコントラクトを作成するため開発された言語で、現在、おもなスマートコントラクトはほぼこのSolidityを使って作られています。
Solidityは、JavaScriptに似た文法のオブジェクト指向言語で、非常に汎用性が高いのが特徴です。コンパイラは、イーサリアム仮想マシーン(EVM)のバイトコードに翻訳するかたちになります。
このSolidityを使って、例えば
・ゲーム内キャラクターをNFTにする
・融資を受けた通貨に90日後に2%の利息をつけて返済する
・データ登録されていない材料が混入されたらアラームを鳴らす
・「〇〇」というプロジェクトをDAOの参加者の51%以上が賛成した場合は、自動実行に移る
といった具合にプログラムするとその通りにスマートコントラクトが機能する仕組みになっているのです。したがって、開発者が投資家やゲームプレイヤーにとっていかに魅力あるスマートコントラクトを作成できるかが、プロジェクトの成否を大きく左右するといっても過言ではないでしょう。
スマートコントラクトの作り方とオフショア型開発手順
それでは、ここからオフショア開発によるスマートコントラクトの開発手順についてご説明しましょう。
オフショア開発には、「ラボ型」と「請負型」の2つの形態があります。
ラボ型・・・準委任契約で、契約で定められた期間のみ、開発業務を遂行します(一定の成果物の完成が目的ではない)。
請負型・・・請負型契約で、発注者が決めた仕様と開発要件を納期までに完成させることが絶対的な原則です。
とくにラボ型は、優秀なエンジニアからなる自社専属の開発チームが確保でき、契約期間ないであれば、予定していた開発業務以外の業務を委任することも可能です。
請負型はいったん開発がスタートすると細かな進捗状況や問題点などが見えにくく、途中での修正や仕様変更はできません。その点、エンジニアと開発者の距離が近く、関係が密になるラボ型は、さまざまな問題に対して迅速に対応したり、細かな方針変更や修正がしやすかったりするので、非常におすすめです。
では、開発手順について詳しくみていきましょう。
オフショアによるスマートコントラクトの開発は、以下のような流れになります。
オフショア開発成功のポイントは、発注者とオフショア企業間の適切な連携をいかに確保できるかという点にかかっています。
時差や商習慣の違い、言語の違いなどにより、発注者の考えていることとオフショア企業側の認識がズレる恐れがあります。すると期待した通りの成果に繋がらない可能性があるので十分な注意が必要でしょう。
エンジニアだけでなく、とくに両者の橋渡し役となるブリッジSEや翻訳者のスキルおよび実績、人柄などをよく吟味した上でオフショア企業を選定することが大切です。そして、双方で情報交換を密にし、チームの様子や開発の進捗度を頻繁に確認しながら、問題点は迅速に修正しつつ一体感をもってゴールを目指すというのが理想です。
レリパでは、お客様のブロックチェーン開発のお手伝いを致しております。日本の企業のみに特化したラボ型のオフショア開発を得意としており、すでに多くのお客様からご満足いただいております。ベトナムのオフィス内で御社専属の開発チームを作り、全面的に開発をサポート致します。スピーディーな開発に加え、日本国内で開発するより50〜70%のコストカットが可能な点が、我が社の大きな強みです。ブロックチェーン開発をご検討なら、ぜひ当社にお任せください。
スマートコントラクト開発費用
スマートコントラクトの開発は、単独というよりブロックチェーン開発の一環で行われることがほとんどです。そのため、開発費用もスマートコントラクトだけでなく、ブロックチェーン全体のコストを想定する必要があるでしょう。
ブロックチェーン開発費用の相場は、以下の通りです。詳しくは下記の参考記事をご覧ください。
上記の金額は、あくまでも目安です。スマートコントラクトの機能やプロジェクト全体の中身、開発業者によって違いが出ることは十分に考えられます。
参考記事:ブロックチェーン開発コストを削減する方法!アプリの種類別コストやコストが高くなる要因も
レリパのサービス
レリパでは、ブロックチェーン開発を全般的にサポートしております。
・スマートコントラクト設計・実装
・NFT/トークノミクス設計・販売
・ブロックチェーンコンサルティング
・IDO/INO リスティング支援
・資金調達支援
・マーケット調査
・コミュニティ構築
・デジタルマーケティング
などを広く請け負います。
アジャイル開発により「計画→設計→テスト→実装」のプロセスを高速化し、お客様が理想とするサービスの実現に貢献してまいります。
・NFTゲーム
・NFTアイテム販売支援
・NFTマーケットプレイス
・暗号資産取引所
・DeFiウォレット
など、自社サービスを含む豊富な開発実績をもちます。
「ブロックチェーン開発のアイデアはあるが、具体的な手段がわからない」
「信頼できるパートナーがいない」
「資金不足が心配」
「マーケティングの方法がわからず不安」
「Web3.0に乗り遅れないか心配」
心よりお待ち申し上げております。