【Lisk Academy 和訳】スマートコントラクトとDapps

スマートコントラクトとDapps

おはようございます。おーみんです。

今回はLisk Academyの " Smart Contracts and Decentralized Applications " 部分を和訳しました。

以下のサイトより引用し、翻訳しています。

lisk.io

主にスマートコントラクトによってどういうことができるのか?などがこの記事では書かれています。

スマートコントラクトはプログラムで書かれているのですが、最後のほうに実際のスマートコントラクト(Solidityによるプログラム)を載せましたので興味のある方はぜひ!(^-^)/

 

それではいつも通り原文+和訳の形で進めていきます。

f:id:bookreadkun:20180411162848p:plain

<和訳>

スマートコントラクトと分散型アプリケーション

様々な業界を根本的に変えてしまうブロックチェーン技術の一つにスマートコントラクトがあります。スマートコントラクトはコード(プログラミング)で書かれた契約であり、特定のブロックチェーンに埋め込まれています。このコードには様々なルールが書かれており、条件が満たされると自動的に実行される仕組みになっています。

f:id:bookreadkun:20180411164154p:plain

<和訳>

スマートコントラクトは1990年代前半にNick Szaboによって初めて提唱されました。その性質上、私たちが普段使っている自動販売機と比較されたりしました。(補足:おそらく自動販売機もお金を入れてボタンを押せば商品が得られるという、条件が合えば自動的に売買が実行されるものだからだと思います。)

f:id:bookreadkun:20180411165530p:plain

<和訳>

今までの契約は人間の言葉で書かれていましたが、スマートコントラクトはそれとは対照的にプログラム言語で書かれています。スマートコントラクトは「これが行われたら、それを行う」というような " ifパターン " で記載されています。

 

スマートコントラクトはその条件をすべて定量的に設定することが可能であることも特徴とされています。

f:id:bookreadkun:20180411172347p:plain

<和訳>

Liskネットワーク上でアプリを開発している方々は、スマートコントラクトをサイドチェーンに埋め込むことが可能です。

 

f:id:bookreadkun:20180411172655p:plain

<和訳>

スマートコントラクトはブロックチェーンによって管理されているため、改ざんを行うことは不可能です。

ある特定のスマートコントラクトが失敗しても、データベース全体やブロックチェーン全体の倫理性がなくなるわけではありません。最終的にはスマートコントラクト技術によって1つの大規模かつ安全なコンピュータシステムとして論理的に動作するものを作っていく形になります。ブロックチェーンで管理されている限り、従来のような中央集権型のリスクやコストの心配もありません。

スマートコントラクトの特徴である自動化、検証可能、そしてトラストレスな性質はブロックチェーンに新たな可能性を見出しました。これは大部分の中央集権型の産業に大きなビジネスチャンスを与えることを可能にしているのです。今までのほとんどのビジネスは第三者との法的基盤だったり契約に依存しています。様々な仲介人のほか、文書処理や契約締結に費やされる膨大な費用が必要になります。ブロックチェーン技術とスマートコントラクトを利用することで詐欺のリスクも仲介者のコストもしながら中央集権的に管理もされなくなるわけです。

 

f:id:bookreadkun:20180411183056p:plain

<和訳>

ブロックチェーンによって改ざんが不可能だとか色々話してきましたが、企業にとって一番大切なのはリソースが節約できることだと思います。今までは書類の作成や契約の執行、仲介者とのやりとりにもの凄く時間がかかっていましたが、スマートコントラクトによって、それらの時間も節約されます。

f:id:bookreadkun:20180411184043p:plain

<和訳>

スマートコントラクトの利用事例

 これまでスマートコントラクトを用いるとこんなことができるよ~と理論的な話しかしていませんでしたが、実は実際にスマートコントラクトを導入している企業もあったりします。2016年には金融会社Markeitがクレジットデフォルトスワップ(クレジットデリバティブの一種)取引のネットワーク構築や管理を目的にスマートコントラクトを利用しました。

 

法的な議論も現在されており、弁護士は今でこそ契約書を普通に書いていますが、将来的には契約書をプログラムで書いたりすることになる可能性もあります 

f:id:bookreadkun:20180411185623p:plain

<和訳>

ブロックチェーンアプリケーション

スマートコントラクトによって色々話してきましたが、B to C の業界にはどんな影響を与えるかも見てみましょう。スマートコントラクトの面白い例としてブロックチェーンアプリケーション(Dapps)があります。ブロックチェーンアプリケーションは、スマートコントラクトを組み合わせることによってつくられています。

 

ブロックチェーンアプリケーションと従来のアプリケーションを比較してみましょう。

Webアプリケーションを作る際にHTML、CSS、JavaScriptを使用しているように、ブロックチェーンアプリケーションはスマートコントラクトやブロックチェーンの関係について考えなければいけません。

Webアプリケーションを作る際は、プラットフォームAPIもしくはデータベースにアクセスするためのAPIを使用します。同様にブロックチェーンアプリケーションではスマートコントラクトを使用して、それが基づいている特定のブロックチェーンに接続します。スマートコントラクトの効率性やセキュリティによってエンドユーザ(顧客)側にとっても斬新さを感じ取ることができると思います。

 

和訳は以上で終わりです。

スマートコントラクトってどんなものなのか、簡潔ではありますが少し載せたいと思います。

(引用文献:ブロックチェーン[技術]入門 田篭照博)

堅牢なスマートコントラクト開発のためのブロックチェーン[技術]入門

堅牢なスマートコントラクト開発のためのブロックチェーン[技術]入門

 

f:id:bookreadkun:20180411200935j:plain

f:id:bookreadkun:20180411200913j:plain

プログラミング言語はイーサリアムの(ETH)開発言語でもある「Solidity」です。

struct Switch{}で構造体を定義→functionで関数を自分で作成し~→という流れで特に他のプログラミング言語とは大きな違いはないです。

modifier onlyOwner(){} 部分では「オーナー」によってこのコントラクトは実行されているか?なんて確認していたりと、色々な内容がこのプログラムに詰め込まれています。

Solidityも勉強を続けていくので、何か記事を書こうと思います。

ではでは!!

 

「読者になる」ボタンも押していただけると嬉しいです!