仮想通貨とフィンテック

金融系SEによる、ブロックチェーン、仮想通貨、フィンテックなどのブログ。英語勉強中。

Lisk公式ブログ翻訳:Liskとは何か?そして何ではないのか?

Lisk公式ブログ 2016/7/27の記事の和訳です。少し前の記事ですが、Liskの概要がわかります。

元記事はこちら:What Is Lisk? And What It Isn’t. – Lisk Blog

 

 


 

Liskのローンチから、何が本当なのか、将来何ができるようになるのか、大きな混乱を招いています。これは私たちにも非があります。ICO中は他の仮想通貨コミュニティで宣伝をしていましたが、まだホワイトペーパーを公開していなかったからです。今回の投稿でその誤解を解消し、Liskとは何か、そして何ではないのかを簡単に説明します。

f:id:notetoff:20180120131127p:plain

誤解

Liskを取り巻くさまざまな誤解やうわさ、間違った認識があります。特に顕著なものについて明らかにしましょう。

LiskEthereumのフォークだ!

違います!LiskのコードベースはCryptiプロジェクトからフォークされました。私とオリバーはLiskの開発を開始する18ヶ月前からそのメンバーでした。約2年前、Cryptiブロックチェーンアプリケーションプラットフォームを開発するために750BTCを調達し、開発へ向け良いスタートを切りました。しかし、アイデアを存分に生かし最終的な目標に到達するためには、十分に管理していても資金が純粋に足りませんでした。オリバーと私はその可能性を見出し、Cryptiホルダーに出口を与え、それにふさわしい分散型ブロックチェーンアプリケーションプラットフォームを世界へ発信するために、Cryptiを引き継ぐことを決めました。LiskEthereumと異なるより詳しい理由については後述します。

LiskJavaScriptで書かれているから安全ではない!

違います!JavaScriptは弱く型付けされた言語であっても、本質的に安全ではないという意味ではありません(訳注・ javascriptは動的型付け言語で、静的型付のCなどと比べるとバグを産みやすいと考える人もいる)。確かに使用されるプログラミング言語は重要ですが、結局は安全なコードを書くことが開発者の最も重要な義務です。開発者が粗悪なコードを生まないように、強く型付けされた他の言語を開発に使うこともできますが、それは他の重要なトレードオフを提供してくれるということにはなりません。JavaScriptを選んだのは、文字通りどこでも動いていて、非常に一般的で普及しており、GoogleMicrosoftのような大企業が様々なデバイスを対象に実行速度やセキュリティについての取り組みをしているからです。つまり、開発基盤と利用しやすさが益々高まっていることが、JavaScript採用の大きな要因です。

32ビットを超える数の精度に関するJavaScriptの既知の制限に関しては、BigNumber.js(任意精度の10進数と非10進数の計算用ライブラリ)をコード全体で使用することで回避しました。ブロックチェーンアプリケーションの開発者は、それについてはAPIで隠蔽されていますが、必要な場合はLiskコアで使用されているものと同じライブラリを利用できます。したがって、この制限は問題になりません。

コードベースをさらに強化するために、動的型付けに関連する問題を軽減する方法として静的型付けなJavaScriptスーパーセットであるTypeScriptへの移行を計画しています。さらに、スピードとセキュリティを最大限高めるために、重要なコア部分についてはC ++で実装することを検討しています。まとめると、JavaScriptの使用に伴う問題を解決することについては、あらゆるオプションを活用しています。

Liskはあらゆるブロックチェーンプロジェクトのライバルだ!

違います!実際、Liskのサイドチェーンになんでも実装できることは事実ですが、ブロックチェーンという領域には、同じ問題を解決するための複数のプロジェクトが共存しうると考えています。

最も重要なのは、Liskブロックチェーンアプリでこれらのサービスが必要な場合、すべてを再実装する必要はないということです。サードパーティの機能を、Liskブロックチェーンアプリ内から活用できます。詳しくは後述します。

Liskとは何か

分散ネットワーク 

f:id:notetoff:20180120140151p:plain

Liskは、BitcoinNxtBitSharesなどと同様の分散ネットワークです。ですが、BitcoinのようなProof of Workや、NxtのようなProof of Stakeを利用していません。Liskは、BitShares独自のコンセンサスアルゴリズムの簡略化された実装であるDelegated Proof of Stakeを使用しています。つまりLSK所有者は、ネットワークの処理をしているメインチェーンのデリゲータに投票(vote)することができます。アクティブなメインチェーン・デリゲータは投票で選ばれた101人で、彼らだけがブロック生成の報酬を得ることができます。つまり、アクティブなデリゲータになることには経済的なインセンティブがあります。他のすべてのデリゲータは、101人に選ばれるのを待つか、もしくはリスクのサイドチェーンを処理します。

仮想通貨

Lisk仮想通貨であり、トークンはLSKと呼ばれます。あるアカウントから別のアカウントにLSKを送信するには10秒かかり、約12分後にトランザクションが成立したみなすことができます。

フレームワーク

Lisk App SDK、独自に構築したサイドチェーンの上にブロックチェーンアプリケーションを開発するためのフレームワークです。すべてがJavaScriptで書かれています。つまり、プラットフォームに依存しない、ソーシャルネットワークメッセンジャー、ゲーム、金融アプリケーション、予測市場、取引所、ストレージプラットフォーム、契約実行プラットフォーム、経済、オンラインショップ、IoTアプリケーションなどを独自のブロックチェーンに配置できます。それらは完全に分散化され、複雑なコンセンサスプロトコルP2Pネットワーキングアルゴリズムのことを考える必要はありません。

f:id:notetoff:20180120145747p:plain

サイドチェーンプラットフォーム

前のセクションでは、Lisk App SDKを使用してサイドチェーンをLiskにデプロイできることを述べました。サイドチェーンは、メインチェーンや他のサイドチェーンによる影響のない、完全にカスタマイズ可能なブロックチェーンです。すべての仕様、パラメータ、およびトランザクションタイプは、実装したいブロックチェーンアプリケーションに合わせて変更することができます。

ブロックチェーン上での迷惑行為を防止するために、ブロックチェーン上にデータを保存するためには幾らかのトークンを必要とします(たとえば、トランザクションを送信するための手数料)。Liskのサイドチェーンでは、メインチェーンのLSKトークンを使用するか、まったく新しいカスタムトークンを使用できます。

サイドチェーン内でメインチェーンのLSKトークンを使用する場合は、制限がひとつあります。異なるブロックチェーン間でトークンを転送することはできない、ということです。サイドチェーンは全く新しい独立したブロックチェーンであることを覚えておいてください。LitecoinBitcoinネットワークに送信することはできません。

そのため、LSKトークンをメインチェーンからサイドチェーンに転送するための特別なトランザクションがあります。実際には、LSKトークンは決してメインチェーンを離れることはありません。LSKはサイドチェーン管理者のLiskアカウント(メインチェーン上の)に転送されます。同時に、同じ数のLSKトークンがサイドチェーンに複製され、通常どおり使用することができます。

つまりサイドチェーンまたはブロックチェーンアプリケーションが壊れてしまっても、すべてのLSKトークンは安全で、サイドチェーンの管理者が簡単に取り戻すことができます。しかしこれは、サイドチェーンの管理者を信頼する必要があることを意味します。これは、スタートアップや評判の高い個人が管理者の場合のみに使える考え方で、全てのブロックチェーンアプリケーションに当てはまるわけではありません。

f:id:notetoff:20180120150856p:plain

真にトラストレスなアプリケーションを開発したい場合、つまりユーザーのLSKトークンを保持したくない場合は、サイドチェーン上に独自のカスタムトークン(または複数のトークン)を発行して、新しい仮想通貨として使用することができます。つまり、それらをICO配布したり、取引所で販売することができます。このようにして、ユーザーはあなたのブロックチェーンアプリケーションの中でトラストレスにトークンを使用することができます。LSKとカスタムトークンを簡単に換金するためには、ブロックチェーンアプリケーション内にミニ換金システムを実装してもよいでしょう。

Liskのサイドチェーンまたはブロックチェーンアプリケーションでバグが発見されハードフォークが必要な場合は、サイドチェーンだけをハードフォークする必要があります。メインチェーンは完全に無傷で不変です。

パブリック、プライベート、そしてコンソーシアムなブロックチェーンに関する議論は進行中です。Liskを使えば、あなたが必要としているものは何でも作ることができます。しかし、スタートアップや開発者をに興味を持ってもらうために、私たちはパブリックコンソーシアムのブロックチェーンに主眼を置いています。これは、アプリケーションのオーナーまたはユーザーにより、公開市場から選ばれたデリゲータが処理をする、組合化されたブロックチェーンを意味します。Liskデリゲートマーケットプレイスの詳細については後述します。

ブロックチェーンアプリケーションプラットフォーム

サイドチェーンはつまるところ、価値を持つトークン、不変なデータ、および分散型ネットワークを提供できる、ブロックチェーンアプリケーションにおける分散型データベースに過ぎません。私たちのユーザーにとって最も興味深いのは、ブロックチェーンアプリケーションプラットフォームです。

Lisk App SDKはサイドチェーンの実装を可能にするだけでなく、ブロックチェーンアプリケーションを開発するために必要なすべてのツールも提供します。ブロックチェーンアプリケーションは、トラストレスに実行される分散化されたスクリプトというだけではありません。それよりもはるかに強力です。基本的に4つの部分で構成されています。

  • コンセンサスアルゴリズム(例:DPoS
  • サイドチェーン(改ざん不可なデータベースとして)
  • バックエンド(アプリケーションロジック)
  • フロントエンド(アプリケーションUI)

ブロックチェーンアプリケーションは、独自のコンセンサスアルゴリズム(デフォルトではDPoS)、ブロックチェーン、オプションのカスタムトークン、バックエンド、およびフロントエンドを備えた完全なアプリケーションです。ただし、LSKトークンを使用してLiskの既存のエコシステムに接続し、他のブロックチェーンアプリケーションやサービスを活用し、サイドチェーンデリゲータを集め、既存のユーザ基盤に対してアプリケーションを始めることもできます。

f:id:notetoff:20180120153744p:plain

Lisk App SDKを使えば、アプリケーションのバックエンド(つまり機能)を開発できるだけでなく、フロントエンド(つまりユーザーインターフェイス)も開発できるということが重要です。1つの便利なパッケージをダウンロードすれば完全なブロックチェーンアプリケーションを簡単に作成できます。この場合、フロントエンドには分散型の方法でアクセスすることもできます。これは現在、ブロックチェーン業界内のユニークな機能です。

コードがブロックチェーンに格納されていない場合、分散アプリケーションではないとする言説をよく耳にしますが、区別をする必要があります。アプリケーション自体はBitcoinクライアントまたはTorrentクライアントと同じようにコンピュータ上で実行されています。つまり、まずダウンロードする必要があります。アプリケーションを実行しているときは、次のユーザーがいます。何人かは新しいブロックを生成するための特別な許可を持っており、これによってネットワークが処理されます(=デリゲータ)。他の人々は単にアプリケーションを使用しています(=ユーザ)。このとき、ブロックチェーンアプリケーションとサイドチェーンは複数のデバイスによって処理されている、つまり分散されているため、これは分散アプリケーションです。

ブロックチェーンサービスプラットフォーム

ブロックチェーンサービスは、ブロックチェーンアプリケーションのサブカテゴリです。ある特定の目的を実現できるという意味で、単一目的のアプリケーションに似ています。

次のような例があります:

  • Identity as a Service(例:オンデマンドで直接アクセスできる、暗号化された個人情報を含む様々なWebサイトのシングルサインイン)
  • Decentralized Hosting as a Service(例:分散型の暗号化されたクラウドに画像やドキュメントを保存)
  • Smart Contract Execution as a Service(例:操作から安全な乱数を計算)
  • Oracles as a Service(例:あなたの製品についての意見や、生活に関する情報を収集)

Lisk blockchainサービスの素晴らしい点は、Liskのメインチェーンとエコシステムにすべて接続されていることです。それらはすべてLiskのサイドチェーンで動作しているからです。つまり、そのようなサービスが存在すると、他のすべてのブロックチェーンアプリケーション開発者はそれを活用することができます。たとえば、SNSを開発してユーザーイメージを保存したい場合にブロックチェーンサービスに接続することで実現できます(StorJのようなサードパーティの分散型ホスティングサービスへのブリッジを作成するという方法もあります)。

これは、Liskブロックチェーンのアプリケーションがより複雑で機能豊富になると、Liskアプリのエコシステム全体が成長することを意味します。それは、より多くの能力を得るために、より多くの神経接続を作り出す脳のようなものです。

これらのブロックチェーンサービスは全て、LSKトークンとユーザを含むLiskのエコシステムに帰属するため、Liskに対する需要を喚起できると考えています。加えて、ブロックチェーンサービスは全て独立していて、障害があったとしてもそのサービスだけの障害になります。メインチェーンに残る影響は、サイドチェーンに関する小さなエントリだけです。

もう一つの強力な要素は、オープンソースとしての性格です。JavaScriptコードを隠す方法はありますが、信頼を得るためにそうはしない人たちが多数派だと予測しています。誰かがブロックチェーンのアプリケーションやサービスにクールな機能を追加するたびに、他の人がそれをコピーして強化し、それを自分のブロックチェーンのアプリケーションやサービスに使うすることができます。

オープンソースには次のような利点があります:

  • LiskSolidityのスマートコントラクトを実行するのに必要なライブラリは今のところ用意していませんが、EVM(訳注・Ethereumのスマートコントラクトが稼働するVMLiskのサイドチェーンに統合することは可能です。誰かがこれを実装すれば、誰もがそのソースコードを利用でき、サイドチェーン内でスマートコントラクトを実行することも、スマートコントラクトをサービスとして実行することもできます。その時、開発者はもうEthereumネットワークに接続する必要はありません。
  • 少し時間がかかるかもしれませんが、Liskのサイドチェーン用のProof of Workコンセンサスアルゴリズムを誰かが開発すれば、誰でも利用することができます。
  • 政治的または経済的理由でプロジェクトが失敗した場合、誰かがコードを使用してブロックチェーンアプリケーションを再度展開することができます。彼はサイドチェーンを作り直すかもしれませんが、今までのユーザーを新しいサイドチェーンに連れて行くこともできます。

アプリケーションの分散ディレクト

今日、私たちはAppleApp StoreGooglePlayストアを利用しています。集中化されたアプリケーションのために企業が運営している集中型のソリューションです。

Liskでは、ネットワーク、エコシステム、SDKだけではなく、すべての人がアクセスできる分散型アプリケーションのディレクトリをLiskクライアント内に用意しています。Liskプラットフォーム上に構築されたすべてのブロックチェーンアプリケーションとサービスはLiskインチェーンに登録する必要があります。これによりメインチェーンとサイドチェーンの接続が作成されます(サイドチェーン用にLSKを複製するために使用します)。アプリケーションディレクトリには、すべてのブロックチェーンアプリケーションとサービスがあります。登録時に、開発者は一意なブロックチェーンアプリケーション名、説明、カテゴリ、アイコン、タグ、およびダウンロードリンクを設定できます。

f:id:notetoff:20180120210415p:plainこれにより、分散型でプラットフォームに依存しないブロックチェーンアプリケーション用の代替アプリストアを提供します。

非中央集権でパブリックなデリゲート・マーケットプレイス

Liskデリゲートマーケットプレイスは、ブロックチェーンアプリケーション開発者とサイドチェーンのデリゲータをつなぐ方法です。すべてのサイドチェーンは独立したブロックチェーンなので、それを処理するための独自のノードが必要です。ブロックチェーンのアプリケーション開発者がデフォルトのコンセンサスアルゴリズム以外(PoSPoWなど)を使用している場合、サイドチェーンのマイナー/フォージャーについては開発者自身でサポートする必要があり、いくつかのユースケースでは有効な方法でしょう。デフォルトのコンセンサスアルゴリズムDPoS)を使用している場合は、デリゲート・マーケットプレイスからデリゲートを月額料金で借りることができます。

f:id:notetoff:20180120211956p:plain

この種のデリゲート・マーケットプレイスDPoSでしか動作しません。そしてLiskでは、他のプラットフォームよりも多くのことを行うことができます。

Bitcoin(またはIPFSEthereumなど)のようなサードパーティのサポート

たとえば、ユーザーのBitcoinでの購買記録をサイドチェーンに保存するブロックチェーンアプリケーションがあるとします。Bitcoinトランザクションはどのように取得したらいいでしょうか?オラク(訳注・RDBMSOracleのこと?)はとても遅く、ブロックチェーンエクスプローラは集中管理されています。つまり、ブロックチェーンアプリケーションとともにBitcoinクライアントをローカルで実行してAPIにアクセスし、必要なすべてのデータを都度取得する必要があります。これは、この種のデリゲートはローカルでビットコイン インスタンスを起動しているサイドチェーンデリゲートとして自身をプロモートする必要があることを意味します。これはデリゲートがデリゲートマーケットプレイス内に持つ属性の1つになります。他の集中化・分散化されたサードパーティのソフトウェアについても同様です。

f:id:notetoff:20180120215137p:plain

法律上の問題

一部のブロックチェーンアプリケーションは、ある国では合法であり、別の国では違法なことがあります。ブロックチェーンアプリケーションによるスタートアップにとっては非常に深刻な問題であり、100%合法に提供したいと考えています。つまり、サイドチェーンはそのアプリケーションが合法な地域のノードによって処理される必要があります。ノードの所属している国は、デリゲートがデリゲート・マーケットプレイス内に持つもうひとつの属性です。

世界のすべての人に収入を生み出す

すべてのサイドチェーンデリゲートは、彼ら自身が定義する料金でレンタルすることができます(たとえば、100ブロックごとに10 LSK)。15ドルで買ったRaspberry Pi 5(訳注・安価で買えるカードサイズのコンピュータ)50のニッチなブロックチェーンアプリケーションを担当し、2年間毎月50ドルの収入を得るとしましょう。多くの人にとってはあまり魅力的でないかもしれませんが、世界の大部分では、これは1ヶ月間生活するのに十分なお金です。世界は日々つながりを増し、インターネットのアクセシビリティも向上しています。このシナリオはフィクションではなく、非常に現実的です。

すべてのブロックチェーンアプリケーションとサービスのための軽量なクライアント

フェデレーションされたサイドチェーンのおかげで、コードを更新するのはとても簡単です。さらに重要なのは、ブロックチェーンアプリケーションまたはサービス用の軽量なクライアントを開発することも非常に簡単であるということです。私たちは、モバイルデバイスは未来のコンピュータになると予測して(あるいは既になって)います。そしてモバイルデバイス上でブロックチェーンの同期を取りたいと考えている人はいません。つまり、インストールプロセスなしで、アプリケーションをディレクトリでただクリックするだけで、ユーザーがブロックチェーンアプリケーションにアクセスできるようにする必要があります。これは、サイドチェーンデリゲートから(フロントエンドとバックエンドを含む)アプリケーション全体をクライアントに受信するという非中央集権的な方法で実現できます。

Liskは何"ではない"のか

スマートコントラクトプラットフォーム

上記の説明で、LiskがSolidityコントラクトを実行するEVMのフォークではないということを理解していただければ幸いです。Liskのブロックチェーンアプリケーションは、その機能をバックエンドに直接統合しています。

Liskのブロックチェーンアプリケーションでのいくつかの実装例を挙げます。

Lisk APIに完全に任せることができます。ユーザーのLiskパスフレーズは常に同じブロックチェーンアプリケーションアカウントに変換されます。セキュリティ上の理由から、メインチェーンにセカンドパスフレーズを設定し、このセカンドパスフレーズをサイドチェーンに入力しないことをユーザーに推奨します。

ユーザーが自分自身を認証する必要のあるアプリケーションを構築できます。これはあらゆる種類のアプリケーションにとって重要です。

  • メッセージの送信、ブログの投稿

必要な長さのテキストを投稿できる新しいトランザクションタイプを追加する必要があります。さらに、このトランザクションの開始と、サイドチェーンからのトランザクションの取得についての、2つのAPIコールを追加する必要があります。

→これで、あなたは分散型メッセージングサービス、ソーシャルネットワーク、またはブログシステムを構築できるようになりました。個々のユーザーのステークに依存する投票システムを開発することもできます。

  • フラグの設定

これについても、trueまたはfalseのブール値を設定できる新しいトランザクションタイプを追加するだけです。

これで、分散型IoTアプリケーションを構築できるようになりました。これにより、シンプルなトランザクションでガジェットを安全に(しかも認証付きで)オンにすることができます。

  • 乱数の生成

Liskブロックチェーンアプリケーション内のすべての計算は決定論的である必要があります。つまり、ブロックチェーンアプリケーションコードを実行するすべてのノードが同じ実行結果を出力する必要があります。JavaScriptのrandom()を使用することはできないため、他のメソッドに頼らざるを得ません。1つの方法は、次の10ブロックのIDをシードに乱数を計算することです。複数のユーザーがいるようなシステムの場合は、それぞれのユーザが何らかの数を通知して、それらの数をもとに乱数を計算することもできます。

乱数を必要とするゲーム、例えばスロットマシンを構築することができます。

Bitcoinスタートアップ

私たちはブロックチェーンのスタートアップであり、さらに重要なのはBitcoinから独立したネットワークであることです。独自の暗号化機能を備えた独自のブロックチェーンで動作し、今後のプラットフォームの進化を完全にコントロールします。私たちの開催するカンファレンスやミーティング、イベントをチェックしていただければ、より明確にご理解いただけるかと思います。

風説の流布

多くのユーザーは、私たちに不要なものに資金を費やすよう促したり、莫大な見返りを求めて急かしたりします。私たちはそういうことはしません!私たちは長年に渡って継続的にプラットフォームを構築し、推進することを目的としています。チームが成長し組織が確立されれば、開発スピードは時間の経過とともに加速します。プロモーションは少しずつ進んでおり、マーケティングキャンペーンはプロジェクトが開発段階の間はしっかりしたものを一度やれば十分です。私たちの資金は、最低5年間は十分に持つと考えています。

準備は整っている

Liskはまだ開発中です。そうでなければICOをやる必要はありませんでした!私たちの大きなビジョンのいくつかの部分を実現するには、数ヶ月、あるいは数年を必要とします。ですが、アプリマーケットに革命を起こすまでには一週間とかからないでしょう。

 

・・・

 

Liskフレームワークとそれにより開発者ができるようになることを理解するために一番良い方法は、コードを深く掘り下げて学習することです。しかし、私はこのブログ記事が多くの誤解を解き、Liskが本当に何であるか、そしてLiskの目指す先を皆さんにご理解いただけることを願っています。

読んでくれてありがとう!

Max Kordek

 


 

この記事は開発初期に書かれたものですが、実装は着々と進んでいるようです。Liskは2018/2/20にリランチイベントを控えています。 今年は躍進の年になるといいですね!

Liskはこちらで購入できます ビットコイン取引高日本一の仮想通貨取引所 coincheck bitcoin

Tipはこちら(LSK):12398507139954858259L