LINEは12月17日、ブロックチェーン開発者向けにオンライン(Zoomウェビナー)によるイベント「LINE Blockchain Developers Meetup #1」を開催した。
同イベントでは、ブロックチェーンに興味のある開発者や、「LINE Blockchain」(LINE Blockchain Docs)導入を検討している企業などを対象に、LINE開発者による「LINE Blockchain Developers」を使った「dApp」(ブロックチェーンアプリ)開発のデモなどが公開された。LINE Blockchainの今後の展開についても語られるなど、LINE Blockchain Developersの全貌が理解できるイベントとなったので、ここでその模様を紹介しよう。
LINE Blockchain導入事例として、dAppを開発した企業による自社サービス紹介や導入メリットの解説もあったので、別記事を参照してほしい。
オープニングセッション「LINE Blockchain概要」
オープニングセッションでは、LINEのBlockchain Engineeringチーム マネージャー 那須利将氏がLINE Blockchainの概要について解説。
LINE Blockchainは、スローガンとして「LINE Blockchain Designed for Everyone」を掲げている。その意図は、ブロックチェーン技術を我々の普段の生活に取り入れることを目指すというものだ。
LINEは2018年4月に「LINE Blockchain Lab」を設立し、7月にグローバル市場にて現在の暗号資産取引所「BITFRONT」の前身「BITBOX」をオープン。10月には暗号資産「LINK」をリスティング(上場)している。2019年9月には日本にて暗号資産取引所「BITMAX」をオープンし、国内においても2020年8月にLINKを上場。それと同時に「BITMAX Wallet」やLINE Blockchain Developersの提供を開始するなど、この3年間、トークンエコノミー構想実現のために、ひとつひとつブロックチェーンサービスやプロダクトをリリースしてきた。
LINK(LN)はLINEが独自に発行した暗号資産。LINEサービス内において、ユーザーは貢献活動に対するインセンティブとして受け取れるなど、サービスの成長によりトークンエコノミーが拡大し、LINKの需要が増えることが期待されている。
ユーザーがインセンティブとして獲得したLINKは、様々なdAppやサービスで利用できるよう、現在LINEファミリーサービスやパートナー企業と準備を進めているという。すでにLINKは、BITMAXを通じて法定通貨に替えることも可能となり、トークンエコノミーの環境構築は準備できつつある状況にきている。
暗号資産LINKの利用を広げるためにLINEは、「LINK Rewards Program」(リンク リワード プログラム)も用意している。LINK Rewards Programは、LINEトークンエコノミーの各サービスが簡単に参加するための仕組みで、わかりやすくいうと、従来の各種ポイントサービスのように暗号資産LINKをサービス利用者に還元する仕組みとなっている。
そして、ユーザーがLINKを受け取る入り口として用意されたのがBITMAX Walletとなる。BITMAX Walletは、LINKやブロックチェーン上で発行されたデジタルアセットを管理できるウォレットサービスだ。LINE IDとひも付いており、LINEユーザーは誰でも利用でき、秘密鍵を忘れてアクセスできなくなるといったことがないよう設計されている。
BITMAX Walletは、8600万人のLINEユーザーがブロックチェーンサービスにアクセスするための入り口となる重要なサービスとなる。ちなみに暗号資産取引サービスのBITMAXとは異なるものなどで、注意が必要だ。
LINE Blockchain Developersは、BITMAX Walletをユーザーのために開発したのと同様に、開発者向けに簡単にブロックチェーンに連動したサービスを開発できるように提供する開発ツールとなる。
LINE Blockchain Developersでは、APIやウェブUIを使って簡単にブロックチェーン上にトークン、NFT(Non Fungible Token。ノン ファンジブル トークン)を発行でき、サービスに連動できる。
また、ブロックチェーンの特徴として取引の透明化があるが、そのサービスが「LINE Blockchain Explorer」という。ユーザーやサービス内でどのようなトランザクションが発行されて、処理されているか確認できる。
これらすべてが、LINE Blockchainが提供するサービスの全貌だ。以上が、那須氏によるオープニングセッションとなる。
LINE Blockchain Developersを利用したdApp開発
続いてのセッションは、LINE Puls Blockchain Dev 1 Blockchain Developerの坂井隆一氏による「LINE Blockchain Developersを使用した簡単でスピーディーなBlockchain dApp開発」だった。
このセッションでは、トークンの設定やその発行までがすべてリアルタイムで行われた。本稿では非常に長い文章になっているが、サンプルのdApp(のコード)が用意されていたとはいえ、40分間のセッション内ですべて完了しており、ブロックチェーンサービスを簡単に開発を始められる点は指摘しておきたい。少なくともトークンの設定と発行については、エンジニアでなくとも手軽に行えることがわかった。
またLINE Blockchain Developersでは、REST APIs、Console(ウェブUI)、Docsを提供している。
LINE Blockchainでは、直接ブロックチェーンにアクセスするのではなく、REST APIsを介してブロックチェーン機能が使用できるよう設計されている。エンジニアはブロックチェーンに関する詳しい知識がなくとも、REST APIsを使用することでdAppを開発できるわけだ。
ウェブUIにより操作可能なConsoleは、LINE Blockchain Developersを使ってdAppを開発する際に必要なブロックチェーンの設定を行えるツールとなっている。
さらにDocsでは、LINE Blockchainを使用するにあたり、サービスのチュートリアル、APIリファレンス、サンプルコードなどのドキュメント類が整理され用意されている。
ちなみにLINE Blockchainでは、これらのツールを使ってトークンを発行できる。このトークンは、大きく分けてサービストークンとアイテムトークンの2種類が発行可能だ。サービストークンは、各サービス内の通貨という位置づけで用意されているもの(ERC-20に類似)。またアイテムトークンは、お金ではないものやアイテムをトークンとして扱う際に利用するもので、さらに代替可能なファンジブルトークンと、代替不可能なノンファンジブルトークン(NFT)に分かれている(EthereumのERC-1155規格に近い)。
デモ用dApp「LINE Blockchain Coffee」で見る開発の流れ
開発デモ用として紹介されたdApp「LINE Blockchain Coffee」は、バーチャルなオンラインコーヒーショップ。LINE Blockchainのテストネット「Cashew(カシュー) chain」上で動いくように作られている。LINE Blockchain Coffeeでは2種類のトークンを使用する。ひとつは、サービストークンのLBCC(LINE Blockchain Coffee Coin)。LBCCはサービス内で通貨として使用される。ふたつ目のトークンLBCR(LINE Blockchain Coffee Reward)はNFTとして発行し、コーヒーを購入した際のおまけとして使用するトークンとなる。
LINE Blockchain Coffeeは、LINE PulsのエンジニアAlan Goo氏が開発したもので、すでにdAppのコードはAlan Goo氏のGitHubにて公開されている。
セッションでのここからの解説は、LINE Blockchain CoffeeをベースとしたLINE Blockchain Developersを使ったdApp開発の手順になる。
ちなみにLINE Blockchainには、メインネットの「Daphne(ダフネ)chain」と、メインネットと同様の動作をするテストネット「Cashew(カシュー) chain」がある。まずはテスト段階のサービス開発に適した無料で提供されているCashew chainを使って開発を進め、本格的な事業やサービスを展開するにあたり、有料のメインネットを使用する流れになる。
メインネットは、その規模によって月額500ドル(約5万円)、2500ドル(約26万円)、4300ドル(約45万円)が用意されている。なお、テストネットのCashew chainは無料だが、使用するにあたり最初に申請が必要なので(1日程度で承認される)あらかじめ申請をしておくこと。Cashew chainでは、テストアカウントとして100アカウントまで登録が可能だ。
LINE Login channel
開発の際は、まずはブロックチェーンサービスのためのLINE Login channelを作ることから始めていく。
LINE BlockchainのdApp利用者はLINEユーザーになるが、dAppはLINEユーザー向けのウォレットサービスBITMAX Walletと連携する必要がある。そのために必要になるのがLogin channelだ。
Login channelの作成にはLINEの開発者向けポータルサイト「LINE Developers」にアクセスする必要があるため、LINE Developersのアカウントが必要だ。LINE Developersアカウントは、LINEアカウントがあれば誰でも登録できる。
LINE Developersにアクセスしたら、次にConsoleで「Providers」を作成する。Providersは、GitHubのOrganizationのようなもの。プロダクト名のようなものと考えておけばよいだろう。LINE Developersでは、Providers以下にブロックチェーンサービスのためのLogin channelを作っていくので、ここで任意のProviders Nameを作成する。デモでは、Providers Nameは「LBD Meetup」とされた。
Providersを作成したら、続いてChannelを作成する。LINE Developersでは、他のLINEアプリなども作成可能だが、ここでは「Create a Blockchain Service Channel」を選択しブロックチェーンチャネルを作成する。
チャネルタイプはBlockchain Service、Providerは先ほどのLBD Meetupになる。ここでチャネルアイコンが登録可能だが今回のデモでは省略。続いて、チャネル名の登録になるがデモではProviderと同じ「LBD Meetup」とした。本来はチャネルディスクリプションの設定も可能だ。
次にサービスのカテゴリー、サブカテゴリーの登録となるが、今回はカテゴリーを「飲食店・レストラン」、サブカテゴリーを「カフェ・喫茶店」とした。カテゴリーは、プルダウンメニューから選択をする。
続いてアプリタイプを指定。ここでは開発するアプリに応じて「Web app」「Mobile app」を選ぶ。ちなみに日本語版のコンソールでは「ウェブアプリ」「ネイティブアプリ」となっているので、「Mobile app」はスマートフォン向けのアプリと考えていい。ちなみにデモでは、両方選択した。
メールアドレスには、開発者のメールアドレスが入る。またオプショナルとしてプライバシーポリシー、利用規約が設定できるが、ここは用意したページのURLを任意で入力する。
以上を設定した上で、LINE公式アカウント利用規約など3種類の利用規約を確認した上で同意し、チャネルクリエイトボタンを押すと最初のステップは終了だ。
またこのチャネルは数秒程度で作成される。この後は自動でLINE Blockchain DevelopersのConsoleに移動し、次のステップとなる。
LINE Blockchain DevelopersのConsoleを通じdAppを設定
続いて、LINE Blockchain DevelopersのConsoleを通じて、ウェブUIを介しdAppの設定を行う。ここでは、ブロックチェーン上のサービスを作成し、サービス用ウォレットを作る。このウォレットは、トークン発行などdAppがブロックチェーンに対して何か操作する際に使用される。
まずは「Create a Service」で、使用するチェーンを選択。テストネットのCashew chainを指定する。続いてサービスカテゴリーをプルダウンメニューから選ぶが、デモではCommerceとした。ターゲットカントリーは、日本、日本以外の国、または両方から選べるようになっており、今回は両方を選択した。
またLINE Blockchainは、ギャンブルへの使用を禁止しており、ここでその確認がある。ギャンブルに使用しない旨に同意し、クリエイトボタンを押す。
以上で、Create a Serviceの設定は完了し、サービスに関するAPI Key、API Secretのふたつのパラメータが作成される。これらのパラメータはdAppがLINE Blockchain DevelopersのAPIをコールする際に必要になる。
重要な点は、この後API Secretは一切表示されないことで、コピーしてどこかにメモをしておく必要がある。API Secretは、クリエイトをコンファーム(承認)する際に必要なので、大切に保管をすること。コンファームボタンを押し、API Secretを入力することで設定は終了となる。
続いて、Create a Walletの作業になる。
最初にWalletの名前を設定する。デモでは「Admin」としたものの、名前はわかりやすければ何でもかまわない。名前を設定しクリエイトボタンを押すと、Wallet Address Wallet Secretが作成される。このWallet Secretも1度しか表示されないので、しっかりとメモして保管しておくこと。コンファームボタンを押し、Wallet Secretを入力することで設定は終了となる。
ここまでで、準備は完了だ。
サービストークンの作成(発行)
次は、Create a service tokenにてサービストークンの作成(発行)を行う。
最初にトークンイメージが設定できるのだが、今回のデモでは割愛。次のトークン名を決めた。サービストークンの名前は、すでにLBCCに決定しているのでここではそのまま入力する。続いてトークンのシンボルを設定できるが、トークン名と同じものにした。
続いてのInitial supplyは、発行枚数を指す。デモではいったん1000枚とした。LINE Blockchainでのトークンは、デシマル(小数点以下の桁数と考えてよい)が6桁固定になっているので、ここでの入力は1000を入力し、さらに0を6桁ぶん追加する必要がある。つまり「1」とだけ入力すると「0.000001枚」となることを意味する。
デモにおいても、実際に「1000」の入力後「000000」(6桁ぶんの「0」)を追加で入力した。しつこいようだが、「1000」という入力だけでは「0.001000枚」となってしまうので注意が必要だ。
次に、オーナーウォレットとレシピエントウォレットを指定する。オーナーウォレットとは、このサービストークンを管理するウォレットだ。レシピエントウォレットは、イニシャルサプライとして生成されたトークンをどのウォレットに送るかを指定するものになる。
今回は、どちらも先に作成したウォレットadmin walletのアドレスを指定した。この指定の際に必要になるのが、先ほどメモをしたWallet Secretになる。
クリエイトボタンを押し、Wallet Secretを入力することで、これもまたわすが数秒でサービストークンが発行され、設定作業が終了となる。
画面上では、LBCCというサービストークンが発行されたことがわかる。
続いて、アイテムトークンLBCRの発行を行う。
ここからは、画面上から該当するトークンのCreate Newを押して新たなトークンを発行していく。まずはアイテムトークンのCreate Newを選択する。
Create an Item tokenでは、冒頭にファンジブルかノンファンジブルを選択する。LBCRはNFTで発行するので、ノンファンジブルボタンを選択する。
アイテムトークン名にはLBCRと入力。ここでもトークンイメージが設定できるが、今回は省略。サービストークンと同様にオーナーウォレットの指定が必要になるが、こちらもadmin walletを指定する。
クリエイドボタンを押し、Wallet Secretを入力することで、アイテムトークンが発行される。
以上で、トークンの設定も完了となる。画面上では、2種類のトークンが発行されたことが確認できる。
dApp本体の開発と、dAppの起動
ConsoleによるdAppの設定が済んだら、いよいよdApp本体の開発を行っていく。ただし今回は、開発が済んでいるものとして、dAppを動作させる様子が紹介された。
今回のdAppデモLINE Blockchain Coffeeは、バーチャルなオンラインコーヒーショップで1杯のアメリカーノコーヒーの価格が200LBCC、リワードとして1杯のアメリカーノコーヒーを買うとおまけとして1LBCRがもらえる仕様になっている。
実際にdAppを動かすには準備が必要になる。まずdAppを起動するには、最初にパラメータを指定する。ここでは、LINE Login Channel IDやSecret、API Key、API Secret、オーナーウォレットアドレスなど、ここまで設定して得てきた情報を受け渡す(必要パラメータは画面参照のこと)。
2番目には、dAppがLINE Login Channelを通じたログインのコールバックを受けるためにコールバックURLをLINE Blockchain Developersに登録する。3番目にdApp上でユーザーを作り、4番目にその作ったユーザーをLINE Blockchain Developersに登録する。ユーザーを登録する作業は、テストネットのみに必要な作業になる。LINE Blockchainのテストネットではユーザー数を100人に限定しているため、登録ユーザーのみがdAppを利用できる環境になっている。5番目は、ユーザーが買い物をできるようにLBCCをユーザーのウォレットにあらかじめ送信しておく。ここまでが準備作業となる。
これで、いよいよdAppを起動することになる。デモンストレーションでは、無事にコーヒーの購入とおまけのリワードを受け取る動作を見ることができた。ここまで、40分のセッション内で実施された。
2021年には、カスタムスマートコントラクトの導入、またBITMAX Walletのグローバルリリースを目指す
ふたたびLINEの那須利将氏が登壇し、LINE Blockchainが描く未来について語った。LINE Blockchain Developersの今後の大きな機能追加について、まず2021年にカスタムスマートコントラクトの導入、またBITMAX Walletも同じく2021年にグローバルリリースを目指していると明かした。
コアとなるLINE Blockchainのメインネットでは、さらなる技術開発を進めている。スマートコントラクト用のバーチャルマシン、コンセンサスアルゴリズムの改善、プライバシー向上のためのHD Walletやミキシングなどの技術研究を行っている。これらは、ユーザーに直接影響を与えるものではないが、LINE Blockchain DevelopersおよびBITMAX Walletが一層使いやすくなるという。
カスタムスマートコントラクトは、すでにLINE Blockchain Developersにて提供しているサービストークン、ファンジブルトークン、ノンファンジブルトークンなどの機能と連動したビジネスロジックを実行したい開発者のニーズに応えるものという。新たなビジネスロジックを開発してもらい、それをLINEが用意するバーチャルマシンにデプロイし、実行可能にする環境を用意する予定。
実行環境についてはWASMのランタイムを使用し、完全にサンドボックスとして提供していく予定とした。また、他のWASM実行環境と異なり、同社が提供する環境ではWASMのバイナリーをそのまま実行するのではなく、さらに実行するマシンコードにコンパイルし、よりパフォーマンスがよくなるよう提供していく。
カスタムスマートコントラクトは現在、開発言語としてRust(ラスト)をサポートしているが、将来的には一般的に利用されているプログラミング言語もサポートする予定という。
ちなみに、これらは今後、さらに調査を行い、より使いやすい方向になるよう調整中とのこと。
プライバシー関連の研究も進行中
また、同社はブロックチェーン業界全体の課題のひとつであるプライバシー関連の研究も進行中であることを明かした。まだPoCで研究している段階として、HD Walletという自分のアドレスを難読化させる技術と、ミキシングというトランザクションとアドレスの関係を難読化させる技術の研究を行っているという。
HD Walletでは、自分の子アドレスを作り、それをトランザクションの発行者に使用したり、宛先に使用したりする。子アドレスは必ず親アドレスから作成されるので自分自身は子アドレスを知ることができ、周囲のものは子アドレスから誰が親なのかわからない仕組みという。それにより、トランザクションを発行すること自体は透明性を確保でき、子アドレスを使用することで使用者自身のトランザクション履歴のプライバシーを担保する。
そして、さらにミキシング技術を組み合わせることで、より難読化させていく。ミキシングは、ある程度のトランザクションを集め、各トランザクションをさらに小さなトランザクションにし、トランザクションの発行者と宛先を、アルゴリズムを用いて、ミックスする技術。ミキシングすることにより、たとえばAがBに10コインを送るという単純なトランザクションが、発行者や宛先、10コインといった量も含めて難読化される。
ちなみにここにセントラルミキシングとKYC認証を使うことで、トレーサビリティ(追跡性)を実現させる方法もあるという。この研究も行っているそうだ。
これらは、PoCであることから、まだどのようなサービスに利用されるかなどは未定であるとのこと。
LINE Blockchainに関しては、VRF(Verifiable Random Function)という疑似アルゴリズムの研究を行っているという。これらの研究は、現在LINE Blockchainはプライベートブロックチェーンで運用されているが、将来的には自分たちのネットワークだけで完結するのではなく、コンソーシアム型ブロックチェーンやパブリックチェーン型ブロックチェーンへの応用を考えた場合に必要になる技術であるとし、研究開発を進めている。
その他にも、インターオペラビリティ(相互運用)の研究、レイヤー技術の研究についても行っているという。
CBDCに対して応用が可能かを研究
また、CBDC(中央銀行デジタル通貨)についても触れた。那須氏は、CBDCについて、各国の中央銀行が何かしらのステートメントを出しており、この分野では大きく分けてふたつの研究が進んでいると指摘。ひとつは「ホールセールCBDC」で、これは金融機関間等の巨額な決済のためのCBDCにあたる。日本でいうと全銀システムになるが、これらはすでにデジタル化されており、取引が大きいため手数料もまた巨額になることも多い。これらをブロックチェーン化することでコストを大幅に削減できないか研究が行われているという。
もうひとつは「ディテールCBDC」で、一般決済CBDCとして日常の決済に使われるものとして研究されているという。那須氏は、併せて各国の取り組みなど現状のCBDCについて紹介した。LINE Blockchainのメインネットに関して、これらのCBDCに対して応用が可能かを研究しているという。
開発者向けコミュニティの形成を目指す
今回のLINE Blockchain Developers Meetupは、開発を支援する場、情報交換ができる場として、開発者のコミュニティになればという思いで開催をしたという那須氏。今後、さらにMeetupを続け、様々なサービスの紹介やその成果について共有できる場にしていきたいという。
なぜLINE Blockchainなのかという点について同氏は、LINEのユーザーベースを基盤としたエンドユーザーに提供できることがメリットとして挙げた。また、使いやすさは、ユーザーと開発者の両者に必要な要素で、LINEはそれを目指していることも強調し、重要なポイントであるとしている。
また那須氏は、LINEが用意したLINKリワードプログラムについて、サービスを活性化する手段として利用してもらえれば幸いであると述べた。今後は、ブロックチェーン技術が表に出ず、サービスやプロダクトが表に出るようなことになったらよいなと語った。そして、今年2020年は、ブロックチェーンサービスが普及するための土壌が作れたとし、LINE Blockchain Developers Meetupの幕は閉じた。
関連記事
・LINEがブロックチェーン開発者向けイベント「LINE Blockchain Developers Meetup」開催
・暗号資産・ブロックチェーン業界の最新1週間(2020.9.27~10.3)
・LINEがブロックチェーンサービス開発プラットフォーム「LINE Blockchain Developers」提供開始