EOSIO史上初のハードフォークが終了 ー v1.8へのアップグレードが無事完了!

EOSIO史上初のハードフォークが終了 ー v1.8へのアップグレードが無事完了!

EOSIO史上初のハードフォークを伴うアップグレードが無事完了

先日9月23日22:00(日本時間)に、EOSIOソフトウェアのハードフォークが実行され、EOSIOソフトウェアはバージョン1.8.0へとアップグレードされました。

 

アップグレードが行われるまでの経緯

より具体的には、今までの1.7.x(”x” は任意の番号)というバージョンシリーズから、1.8.0というバージョンに移行したのが上記日時となっています(執筆現在の最新リリースバージョンは1.8.4となっています)。ここで「移行」というのは、EOSネットワーク内上位21のBPたちが、メインネット上でこのバージョンのEOSIOソフトウェアの使用を実際に開始した(アクティベートした)ことを意味しています。実際に、v1.8の「リリース候補」自体は今年の4月に提案されており、これに修正やテストを重ねることで7月にリリースが行われています。

さて、ここでバージョン番号という概念について大まかに理解しておくことは、EOSIOのみならず、任意の仮想通貨プロジェクト、ひいては任意のソフトウェアのライフサイクルを理解する上で役立つので、以下簡単に説明を加えることにします。

なお、そういったことに興味がないという方は、次のセクションを読み飛ばしていただいて構いません。

バージョン番号について

一般に、ソフトウェアのバージョン番号の表記方法は上記のように「a.b.c」という形となり、”a”、”b”、”c” の位置に来る数字をそれぞれ「メジャー(Major)」、「マイナー(Minor)」、「パッチ(Patch)」として認識するのが通例です。バージョン番号について説明したウェブサイト「セマンティック バージョニング 2.0.0」によると、これらの用語は以下のような意味を持つとされています。

1. APIの変更に互換性のない場合はメジャーバージョンを、
2. 後方互換性があり機能性を追加した場合はマイナーバージョンを、
3. 後方互換性を伴うバグ修正をした場合はパッチバージョンを上げます。

しかし、実際にこれらの数字が意味するところはプロジェクトによって異なることがしばしばあり、今回のEOSIOハードフォークに関しても上記の定義とは異なる形でバージョン番号が使用されています。

というのも、今回の「1.7.x」から「1.8.x」へのアップグレードは、上記の定義に従うと後方互換性があり機能性を追加」する「マイナー」アップグレードとなりますが、実際は本アップグレードはハードフォークを伴っており、「後方互換性(Backward compatibility)」を持たない性質のものだからです。

「後方互換性」というのは、バージョン番号と同様に、仮想通貨に限らずソフトウェア一般に対して頻繁に用いられる概念であり、古いバージョン・システム向けのデータなどが新しいバージョン・システムでも問題なく使用できるという状態を指します。そして、前述のように「ハードフォーク」においてはこの「後方互換性」が失われることになります。なお、ハードフォークと異なり、「後方互換性」を失わないアップグレードを「ソフトフォーク」と呼ぶことがあります。

本アップグレードが意味するところ

開発者向けのテクニカルな内容を詳細に網羅することは本記事の趣旨から逸れるため(かつ執筆者もそうした詳細のすべてを把握・理解しているわけではないため)割愛します(そうした点に興味がある方は、こちらの記事などが参考になります)。本セクションでは、今回のアップグレードがEOSIOのエンドユーザーにとってどのような意味を持つのか、という点に焦点を当てて見ていきたいと思います。

ユーザーにとって関心がある点として、主に以下の2点をあげることができるでしょう。

 

使いやすさの向上

EOSネットワーク上におけるdApps(分散型アプリケーション)の使いやすさ(「ユーザビリティ」とも)が向上することが期待されています。

具体的には、本アップグレードによって、各種dAppsがユーザーに代わってEOSネットワーク利用に必要なリソース(CPU・NET・RAM)を負担するようになることで、ユーザーがより気軽にdAppsを利用できるようになることが期待されています。

これまでは、dApps利用にあたってはユーザー側でCPUやNETを適切にステーキングしたり、RAMを購入したりするのが通常であり、これは特に新規ユーザーにとっては煩雑な作業でした。ところが、dApps側でこうした金銭的・時間的手間を処理してくれるとなれば、ユーザーとしてはより積極的にdAppsを利用できるようになり、その結果としてEOSネットワークのアドプションが加速する可能性があります。

セキュリティの向上

バラエティ豊かなハッカーたちが跋扈するクリプト業界にあって、ソフトウェアのセキュリティが向上することは、ユーザーとしては歓迎すべきことです。

hacker stereotypes
出展: https://www.blackmoreops.com/2017/01/10/10-funny-stereotypes-about-hackers/2/

本アップグレードにおいてはさまざまな新コードの導入によりセキュリティの向上が図られています。一例をあげると、”GET_SENDER” という関数を導入することによって、特定の「インライン・アクション(inline action)」(いわゆる「同期型」のアクション。「非同期型」のアクションである「遅延アクション(deferred action)」に対する概念)の送信元であるアカウントをスマートコントラクトが特定できるようになりました。これにより、アカウントの「なりすまし」に起因する攻撃を防止できるようになることが期待されています。

なお、本アップグレードに伴ってユーザーとして行うべきアクションは特にありません。強いて言えば、取引所のウォレットでEOSトークンを保管している場合(←オススメしません!“Not your keys, not your coins” であることを忘れないでください)、その取引所が今回のハードフォークに伴う各種処理を無事完了するのを気長に待ってから、EOSトークンをScatterなどのウォレットに送信するというアクションをとることができます。

各種作業を行う必要があるのは、BP、dApps開発者、取引所、EOSノードなど、自らのインフラを実際にアップグレードしなければならない人々です。

まとめ

EOSIOソフトウェアがリリースされて以来初のハードフォークを伴う今回のアップグレードでしたが、無事完了したことによりまずは一息といったところでしょう。

上述したように、ハードフォークは後方互換性を持たないチェーンアップグレードであり、そうでないアップグレードと比較するとより多くの複雑性を内包したプロセスであるともいえます。そして、今回のアップグレード完了を受け、EOSコミュニティ内においてもハードフォーク実施時の段取りに関する周知が行われたことにより、今後のハードフォークの実施がよりスムーズに行われていくことが期待されます。

さらに、先日の #B1June イベントでその概要が公開されたソーシャルアプリ “Voice” はEOSIO “v2.0” において実装される予定であり、現在の “v1.8.x” からアップグレードされていく過程でハードフォークが実施されることがあるとすれば、今回のアップグレードはそのための先例を築くという役割を果たしたと捉えることもできるでしょう。

いずれにせよ、ユーザー、ディベロッパー、各種ステークホルダーを含むEOSコミュニティ全体にとって、今回のアップグレードはEOSエコシステムの発展に向けた重要な一歩であったといえるでしょう。

今後の動向に期待すると同時に、EOSコミュニティメンバーとして可能な限り積極的にコミュニティ活動に参加していきたいところです。

関連リソース

Leave a Reply

Close Menu