ArcBlock Q&A:ブロックチェーン開発者に包括的でシンプルかつ使いやすいツールを

エンジニアリング担当副社長が DApps Workshop のリリースについて回答
DApps Workshop は北京時間 6 月 15 日に正式リリースされました。午後 1 時、ArcBlock(ABT)エンジニアリング担当副社長の Tyr Chen が「ABT ニュースライブ」に出演し、ABT コミュニティとメディアからの質問に答えました。

Q1:今回リリースした DApps Workshop は、以前リリースした Forge フレームワークや SDK とどう違いますか?
DApps Workshop は主にエンジニアやプロダクトマネージャー向けの新しい開発ツールであり、以前リリースした Forge フレームワークや SDK(ソフトウェア開発キット)とは大きく異なります。Forge 上のアプリケーションとして、実際にコードを書かなくても携帯電話の wallet(ウォレット)と相互運用し、基本的なアイデアを検証できるようにします。以前の SDK は、プログラマーが異なる言語環境から Forge フレームワークや Forge が生成したチェーンと相互運用するためのツールです。たとえば SDK を使わず手作業で transaction(トランザクション)を送るのは非常に複雑ですが、SDK なら簡単です。DApps Workshop はさらに一歩進み、グラフィカルな画面でクリックして入力するだけで QR コードを生成し、ウォレットと相互運用してチェーンへ transaction を送信できます。
Q2:DApps Workshop は開発アイデアのテストと検証に使います。アイデアも実装も多様なのに、なぜ共通のテスト方法があるのでしょうか?製品プロトタイプの作成をどう支援しますか?
Forge フレームワークはリリース時点で十数種類の transaction を内蔵しており、それらを組み合わせると、たとえば一連の資産作成 transaction など、ブロックチェーン上の豊富な業務機能を実現できます。DApps Workshop では、現在サポートする transaction をドラッグやキーボード入力で素早く生成し、さまざまに組み合わせて必要な製品プロトタイプを作れます。
オンラインショップなら、まずウォレットを作り、初期 token を取得し、asset factory(資産ファクトリー)でより多くの資産を生成できる asset を作ります。次に別の携帯電話またはウォレットで新しいユーザーをシミュレーションし、そのウォレットで asset factory が生成した資産を購入します。この全工程を一行もコードを書かず DApps Workshop で完了できます。
今後クロスチェーン transaction をリリースすれば、多くの DApp がクロスチェーン開発を試すでしょう。DApps Workshop なら、コードを書かなくても携帯電話の wallet と Workshop だけで、相互運用して動作するプログラムをすぐに生成できます。
製品プロトタイプ開発では、idea(アイデア)を最小コストで MVP、つまり Minimum Viable Product(実用最小限の製品)にしたいものです。コードが少なければ投入時間が減り、反復回数を増やせます。DApps Workshop により、プロダクトマネージャーと開発者ができるだけ早く MVP を作れるよう支援したいと考えています。Workshop 自体も継続的に改善し、皆さんとともに、より良い MVP の開発を支援していきます。
Q3:ArcBlock は Forge SDK と DApps Workshop の二つの開発者向け製品をリリースしました。両者の連携は開発者に何をもたらしますか?
DApps Workshop は、開発者とプロダクトマネージャーが製品プロトタイプ(MVP)を開発する際、コードをできる限り減らし素早く反復するためのツールです。
Forge SDK は少ないコードで Forge が生成したチェーンと相互運用し、チェーン情報の取得、transaction の送信、ユーザーの account state(アカウント状態)や asset の詳細取得などを行えるようにします。transaction の送信や Forge とのやり取りの難しさを軽減することが役割です。Forge SDK がなければ、Protobuf (Google が公開したメッセージシリアライズツール。メッセージ記述構文とエンコード形式を定義し、主要言語向けコードジェネレーターを提供) でコードを生成し、gRPC (Google が主にモバイルアプリ開発向けに HTTP/2 標準を基に設計した、高性能で汎用的なオープンソース RPC フレームワーク。ProtoBuf シリアライズプロトコルを基盤とし、多くの開発言語に対応) でチェーンと通信し、規則に従って transaction を組み立てる必要があり、多大な労力がかかります。SDK なら一つか二つの関数で完了できます。
一般に、開発者はアイデアを得た後、Workshop とモバイルウォレットの簡単なやり取りを通じて一連の操作を行い、妥当性を検証できます。検証は何度か反復するかもしれませんが、検証後は SDK を呼び出し、結果をコードと最終的な UI(ユーザーインタラクション)に落とし込み、DApp のコアロジックとフロントエンドロジックを完成させます。
Q4:Forge の概念、構造、対応言語を簡単に紹介してください。
私たちは Forge をブロックチェーン時代の Ruby on Rails にしたいと一貫して述べています。Web 2.0 時代に Ruby on Rails が多数の Web Application(ウェブアプリケーション)を生んだのは、シンプルでフルスタックだったからです。小さなチームや個人でも十分に複雑なアプリケーションを簡単に構築できました。今日のブロックチェーン開発者が作る DApp はまだ非常に単純で、賭博やゲーム型が大半です。そこで Forge は、ブロックチェーン開発に関わるフロントエンドとバックエンドの一式を包含し、アプリケーションをより簡単に構築できるようにします。

Forge は階層構造を前提に設計しました。最下層には Consensus Engine(コンセンサスエンジン)と Storage Engine(ストレージエンジン)があります。Storage Engine はまだ有効化しておらず、IPFS(InterPlanetary File System)の採用を計画しています。Consensus Engine は現在 Tendermint を使い、将来は別のものや独自の Consensus(コンセンサスメカニズム)に置き換えられます。その上の ABI(アプリケーション・ブロックチェーン・インタラクション)層が、下層の Storage Engine と Consensus Engine を上層の Forge Kernel(カーネル)から分離します。Forge Kernel、つまり Forge Core は下層と通信し、Transaction Protocol(トランザクションプロトコル)を追加で支援します。
Forge Core による Transaction Protocol の支援には、Protocol の読み込み、インストール、Forge ノードの更新、その他の補助機能があります。その上にある Core Transaction Protocol(コアトランザクションプロトコル)は Ethereum のスマートコントラクトに似ていますが、より強力です。現在十数種類をサポートし、今後大規模な Core Transaction Protocols 群へ拡張します。開発者は一つまたは複数を使って DApp のコア内容を開発できます。
Core Transaction Protocol の上には Forge SDK があり、現在 Node.js、Javascript、Python、Elixir、Erlang、Java に対応しています。今後さらに対応言語を増やし、近い将来、2~3 か月以内に Golang や C++ などの DK をサポートする可能性があります。
SDK の上には Forge の支援ツールチェーンがあります。Forge Web は誰でも起動した Forge チェーンにブロックエクスプローラーを提供します。Simulator(シミュレーター)は、ブロックチェーンアプリケーションにまだデータがなく、表示や各種ロジックが妥当か判断できないときに、大量の traffic(トラフィック)を投入してデータを豊かにし、さらにデバッグできるようにします。
これらの補助ツールと並び、一連の Forge Starter Application(Forge スターターアプリケーション)も複数言語版で提供します。開発者がすぐ使える Application(アプリケーション)で、Forge CLI(Forge コマンドラインツール)から一つのコマンドで repo(コードリポジトリ)を作り、そのまま実行できます。基本的なログイン、ユーザー Profile(プロフィール)、tracking(追跡)、transfer token(トークン移転)などが備わり、追加機能を加えるだけで DApp の雛形が完成します。
Q5:Forge は開発者専用の開発フレームワークです。主要な技術的優位性は何で、なぜ開発者は Forge を選ぶのでしょうか?
Forge の技術的な優位性は、最下層から最上層まで一式のツールチェーンを提供することです。開発者が DApp 専用チェーンを必要とすれば Forge CLI で簡単に立ち上げられ、完成後に世界各地の Data Center(データセンター)のノードへ展開する場合は Forge Deploy(Forge デプロイ)でチェーン全体を容易にデプロイできます。Forge Web ブロックエクスプローラー、各種 traffic を生成する Forge Simulator、製品プロトタイプを支援する DApps Workshop に加え、未公開のテストツールチェーンもあります。クロスチェーンを考慮するテストには複数チェーンの実行環境が必要で、とりわけ困難です。Forge はこれらを統合し、可能な限りフルスタックのサービスを提供して、開発者がツール不足に妨げられず業務ロジックに集中できるようにします。
Forge を選ぶ理由は、Ruby on Rails が選ばれた理由に似ています。当時の J2EE や Java などのプラットフォームは使いにくく、開発者に優しくなく、多くのツールが統合されていませんでした。Ruby on Rails はデータベースモデリングから Template Service(テンプレートサービス)、Templating Engine(テンプレートエンジン)、testing(テスト)、開発版 Web Server(ウェブサーバー)までを丁寧に統合し、ウェブアプリを容易に開発できるようにしました。私たちも、開発者に包括的でシンプルかつ使いやすいツールを提供し、開発効率を高めたいと考えています。
Q6:Forge は現在のブロックチェーン業界でどんな役割を果たし、どんな効果を生みますか?業界第 1 位ですか?
現在の DApp エコシステムを見ると、90% 以上がごみのような DApp です。Forge はこの状況を変えたいと考えています。Forge が提供する能力により、Forge 上の DApp をユーザーのニーズに近づけられます。社内では Eventchain や非常に簡略化した Docusign など、日常生活で使う Demo(デモ)型 DApp を開発しています。
これらを分散型アプリケーションにする目的は、Forge が実際に有意義な DApp を作る能力を提供できることを検証するためです。業界第 1 位かは私たちが答えるべきではありませんが、まだ誰も取り組んでいないこともあります。たとえば秘密鍵を失ったウォレットをどう migrate(移行)するか、企業ポリシーにより秘密鍵を半年ごとに rotate(ローテーション)するにはどうするか。既存のブロックチェーンプロジェクトは考慮していません。
先ほど触れた testing もあります。成熟したソフトウェア分野ではテストが極めて重要で、優れた自動テストツールがなければコード品質の保証は困難です。Forge の開発中、ブロックチェーンには優れたテストツールがないという痛点を実感しました。ブロックチェーンをテストするには、まず十分な topology(トポロジー)を構築し、少なくとも複数ノードのチェーンを用意する必要があります。単一ノードのチェーンではテストの完全性が足りません。
最近注目されるクロスチェーン技術では、各ベンダーが自社ソリューションを称賛します。しかし開発者がまず考えるのは、その上で開発したものをどう簡単にテストするかです。満足できる答えはまだありません。開発ツールを作るたび手動テストし、bug(バグ)を一つ直すたび全体を手動テストするわけにはいきません。完全自動テストがなければ、ソフトウェア品質は懸念されます。
Q7:ArcBlock の一連の開発ツールは、どう開発者を引きつけ、より多くの参加を促しますか?対応する施策や仕組みはありますか?現在はパートナーだけが開発し、ABT プラットフォーム上に個人開発者のアプリがないようです。
開発者の観点では、私たちの開発チームにできるのは、第一にツールのユーザー体験をできるだけ良くすること、第二にドキュメントをさらに正確で分かりやすく磨き、中国語版も提供することです。市場面では Bounty Program(報奨プログラム)など異なる計画があり得ますが、私の回答範囲ではなく、今後マーケティング部門が回答できます。
Q8:DApp と従来型 App の違いを簡単に説明してください。
最大の違いは、動作が依存するデータが分散化され誰でも読めるのか、閉じられて特定のアプリケーションしか読めないのかです。たとえば Docusign のような文書署名ツールでは、送られた契約書に署名すると法的効力が生じます。Docusign は従来型 Web App であり、作成された契約書と署名はすべて Docusign のサーバーにも保存され、ユーザーも写しを持ちます。
問題は、Docusign が本来持つべきでないほど多くのデータを持つことです。同様の文書署名を DApp で作るなら、私が B、C、D の 3 人へ契約書を送り、全員の署名が集まった後、署名と原本のハッシュをチェーンへ記録できます。全員が全署名入り文書を持ち、チェーン上のハッシュと署名で真正性を検証できるため、強力な第三者の保証なしに工程を完了できます。安全性とプライバシー保護のどちらでも後者が優れます。
別の例はチケットサイトです。従来のサイトで購入したチケットを払い戻し、譲渡できるかは、その App の開発者が機能を許可したかどうかだけで決まります。
分散型チケットシステムなら、購入したチケットというデジタル資産の所有者は私です。携帯ウォレットから transaction を直接送る方法でも、簡単な DApp を作る方法でも、チェーン上で他者と容易に取引できます。データは皆に属し公開・透明なので、元の開発者が定めた制約に縛られず取引できます。
Q9:従来型 App は専門化からモジュール型開発へ移り始めました。DApp の開発も従来型 App と同じくらい簡単になりますか?
インターネットは 1990 年代初頭から生活に浸透し、21 世紀初頭に Web 2.0 が普及するまで 15~20 年近くかかりました。今日の水準と開発ツールは、世代を超えた努力による発展の結果です。DApp 開発はまだ非常に初期ですが、ブロックチェーンも同じ過程を経て、将来は従来型 App と同じくらい簡単になると信じています。
私たちにできるのは、この歴史的過程をできる限り前進させ、ブロックチェーン、DApp、ツール、フレームワークへの理解を生かして、開発者がより速く、より良く DApp を作れるよう支援することです。DApp 開発者に、従来型 App 開発とできる限り同じ体験と十分な簡潔さを提供することが目標です。
Q 10:ArcBlock 自身も DApp を開発していますか?内容やリリース予定、第 1 号となる ArcBlock ベースの DApp を教えてください。
はい、私たちは一連の App を開発中で、大半は Demo です。自社の必要を満たす DApp もあり、たとえば現在の Technical Learning Series(技術学習シリーズ)なら、ユーザーが講座へ登録、受講し、最後に Certificate(証明書)を受け取る DApp にできます。このようなアプリケーションを多数開発しています。リリース時期はマーケティングと製品チームが決定します。
Q11:分散型コミュニティアプリケーションはいつリリースされますか?
現在も設計・開発中です。具体的な日程は公式サイトのロードマップを参照するか、製品・マーケティングチームへお問い合わせください。
Q12:ArcBlock の下半期の計画は?DApp が中心ですか、開発ツールを続けますか、それともエコシステムの実用アプリですか?
下半期の重要事項は、第一に資産チェーンのトークンスワップ、第二にクロスチェーンインターフェースのサポートです。この部分はほぼ完成していますが、周辺の開発支援ツールをさらに強化する必要があります。DApp 開発ツールではテストフレームワークをリリースし、適切な時期にデプロイツールをパッケージ化して公開します。
Forge 自体は毎週一つの milestone(各 milestone は一つから数個の release を含む)のペースで公開を続けます。Forge Framework(フレームワーク)の中核ではより豊富な Transaction Protocol を提供し、周辺ツールでは各言語の SDK と Starter Project を改善し、新機能に沿ったより使いやすいツールを提供します。
Forge Framework のエコシステムと、その上の完全なツールチェーンを築くことは重要な仕事です。より多くの開発者に参加してもらい、Forge Framework、DApps Workshop、SDK などを使って、MVP や現実のニーズを解決する DApp を開発してほしいと考えています。途中で問題があれば、ぜひ私たちと交流してください。可能な限り解決し、問題によっては Forge Framework やツールチェーンを直接修正して feature(機能)の一部にします。本日の説明と質疑応答は以上です。ありがとうございました。