As of October 1, 2023, LINE has been rebranded as LY Corporation. Visit the new blog of LY Corporation here: LY Corporation Tech Blog

Dynamic Link開発の裏話。LINE内製のスマートコントラクトの相互利用手法  

LINE株式会社およびヤフー株式会社は、2022年11月17日・18日の2日間にわたり、技術カンファレンス「Tech-Verse 2022」をオンライン(ライブストリーミング形式)にて開催しました。特別連載企画「Tech-Verse 2022 アフターインタビュー」では、発表内容をさらに深掘りし、発表で触れられなかった内容や裏話について登壇者たちにインタビューします。今回の対象セッションは「Dynamic Link: LINE が開発したスマートコントラクトの相互利用手法」です。 

スマートコントラクトをサポートするブロックチェーンの多くは、コントラクト同士の相互利用の方法を提供しています。いずれの方法も、コントラクトの実行中に他のコントラクトが提供する機能を利用することを可能にしています。本セッションではこれらの手法を比較するとともに、LINEが開発した手法であるDynamic Linkについて解説されました。今回は発表内容についての秘話を、LINEのBlockchain Engineering Teamに所属するSoftware Engineerの高瀬亮(loloicci)にインタビューしました。  

 自社にマッチした技術基盤を内製するLINEの文化  

――Blockchain Engineering Teamの役割と、高瀬さんの業務内容を簡単に教えてください。  

Blockchain Engineering Teamはその名前が示すように、LINEでブロックチェーンを運営していくにあたって必要になる機能や、ブロックチェーン関連の技術そのものを作っているチームです。ブロックチェーンに関する機能開発は日本のチームと韓国のチームとで協業しており、日本側のチームがLINE Blockchain Engineering Teamになります。  

日本側では主に、スマートコントラクトやVM、コンセンサスレイヤー、セキュリティなどに関連する部分を担っています。私はそのうちスマートコントラクトやVMに関する機能の担当です。LINEがGitHub上で CosmWasmのリポジトリを公開 しているのですが、このリポジトリ内で扱っている内容が、概ね私の業務内容とリンクしています。  

――今回のインタビューでは「Tech-Verse 2022」のセッションをふまえ、より深掘りした内容を伺います。前提として、なぜLINEではスマートコントラクトをサポートするブロックチェーン技術を内製しているのでしょうか?  

LINEでは全社的に、各種の基盤技術を内製する文化があります。そうすることで自由度高く便利な機能を組み込めますし、自分たちの事業方針や開発組織の方針に合ったシステム基盤を構築できます。そのわかりやすい例が、内製のプライベートクラウドであるVerdaです。そうした文化があるため、ブロックチェーンやスマートコントラクトなどの技術も内製し、より使い勝手の良いものを作る方針をとっています。  

――Dynamic LinkはCosmWasmの拡張機能として実装されています。この事例のように「特定技術の何の機能をどのように拡張していくか」を決める際の、Blockchain Engineering Team内での合意形成のプロセスをご説明ください。  

基本的にはチーム内の誰かが機能改善の提案をし、その意見について議論するための会議が設けられます。会議のなかでさまざまなコミュニケーションをとった後、そこで出たアイデアがそのまま開発タスクのベースになります。今回のセッションのテーマになったDynamic Linkも、そうした会議のなかで「コントラクト同士の相互利用の方法を、より改善できるのではないか」という意見が出たことをきっかけに開発がスタートしました。  

――Dynamic Link以外で、社員からのアイデアをもとに開発を進めた事例はありますか?   

CosmWasmには、コントラクトをブロックチェーンに乗っているかのようにシミュレーションできる実用レベルのソフトウェアが、現時点では世の中にありません。そこで、「簡単にシミュレーションできるツールを作ろう」という案が先に述べた会議のなかで出され、現在開発を進めています。もうしばらくしたら、一般公開できると思います。   

メンバーの意見を尊重するチーム体制  

――Blockchain Engineering Teamは、メンバーから挙がった意見を尊重する文化が色濃くあるのでしょうか?  

その文化はかなりありますね。今回のDynamic Linkの開発においても、自分たちの意見をかなり尊重してもらえました。CosmWasmにもともと備わっているSubmessages/Replyなどの機能は、Cosmos SDKの他のモジュールとのやり取りを前提に作られている仕組みです。そのため、「Dynamic Linkのような新機能を作るよりも、既存のSubmessages/Replyを改善するほうが良いのではないか」という案を挙げたメンバーもいました。  

チーム内でもDynamic Link開発の賛否が分かれている状態でしたが、「Dynamic Linkを作る案にそれなりの賛成票があるので、まずはその意見を尊重して一度作ったうえで、今後の方針を考えましょう」ということになり、賛成派の意見をくみ取ってもらえ、開発することになりました。  

――セッションで語られたような各種の知識を身につけるには、エンジニアが最新技術をインプットすることが必要不可欠だと思います。インプットを行ううえで、Blockchain Engineering Teamの体制面で優れている点はありますか?  

Blockchain Engineering Teamには、定期的に各メンバーが担当を持ち回りして「最近勉強したこと」を共有する場が設けられています。発表の準備をすることが技術をより深く学ぶきっかけになりますし、他のメンバーの発表を聞くことで新しい技術に触れる機会となります。また、不定期ですが日韓共同で技術情報を共有する会を開催することもあります。  

そして、業務中に最新技術を学ぶことが歓迎される文化があります。正当な理由があれば、「1週間をまるまる最新技術の調査に充てたいです」ということが許可されます。また、チーム内に各種の要素技術に詳しいメンバーが何人もいるため、そうした意味でもインプットしやすい環境ですね。  

アウトプットをきっかけに、携わっている技術を見つめ直せた  

――「Tech-Verse 2022」に登壇しての感想はありますか?   

「Tech-Verse 2022」への登壇が決まった後に、「せっかく内製したのだから、Dynamic Linkの話をしよう」と考え、ツールの詳細についてあらためて情報をまとめました。その過程を通して、Dynamic Linkの良さを再発見できたんです。つまり、アウトプットの場をいただいたことが、自分の携わっている技術を見つめ直す機会になりました。   

アウトプットをすることで開発に対するモチベーションが高まるのは、こうしたカンファレンスなどで発表することの利点だと思います。意識的にアウトプットの機会を設けることは、エンジニアとして大事だと実感しましたね。  

――Blockchain Engineering Teamにいるからこそ経験できたことはありますか?  

Blockchain Engineering TeamはRustやGo、WebAssemblyといった新しい技術を積極的に取り入れています。また、今回のセッションでも発表したように新しい仕組みそのものを内製するケースも多いです。このチームにいるからこそ、業務を通じて継続的に最新技術に触れることができ、自分自身の成長にもつながっています。  

それから、チームが比較的小規模であるため各エンジニアが担当する領域はある程度広くなります。その分責任も伴いますが、エンジニアの裁量は大きいですし、各々の意思を尊重してもらえます。  

また、先ほどの話にも通じますが技術について発表する場が設けられているため、「最新技術を学ぶ→発表する→定着した知識をもとに開発を進めていく」というサイクルを回せることも、Blockchain Engineering Teamの体制の優れている部分です。  

――最後に、高瀬さん個人のエンジニアとしての今後の目標を教えてください。  

私は新しい技術に触れることがすごく好きな人間です。これはLINEに入社する前の学生時代に、アルバイトとしてエンジニアをしていた頃からそうでした。アルバイト先で急に「仕事で使うから、Raspberry Piについてすぐに覚えてほしい」と無茶振りされたことがありますが、その際にも楽しみながら学習できました。  

Blockchain Engineering Teamでは、フロンティア領域の技術に触れられることが本当に楽しいです。この心を忘れずに、これからも新しい分野や技術を楽しみながら学んでいきたいですし、優秀なエンジニアとして成長していきたい。そして、その過程で得た技術的な直感やノウハウを、さらにその次の開発にも役立てていきたいです。  

――高瀬さんがさらにスキルを研鑽されることを楽しみにしています。今回はありがとうございました。