zkSyncのオープンソース化:全てを、自由に、そして永遠に
zkSyncの各コンテンツにご参加ください。
Web3エンジニアは、ある時、重要な決断を迫られることがあります。その決断は、すべてのプロジェクトのミッション、軌道、価値、そして結果を形成することになります。
このような岐路に立ったとき、一つの道は、利己的でゼロサムという従来の経済学や社会学の考え方に戻ることになります。しかし、もちろん、もう一つの道もあります。それは、未来につながる道であり、異なるパラダイム、異なる思考方法です。
この岐路に立たされた私たちには、賢明に選択する責任が生じます。この選択は、個々のプロジェクトの方向性や結果に影響を与えるだけでなく、Web3の世界では、すぐに広がり、複合的になり、標準になります。
つまり、最終的に世界を大きく変えるかどうかを決めるのは、私たちの言葉でも、マーケティングでも、ツイートスレッドの宣言でもなく、私たちが行う選択そのものなのです。
それは、オープンソースであるか、そうでないかという選択です。
オープンソースを拒否し、現状を繰り返すリスクを負うか、オープンソースを選択し、未知への旅立ちという最大のリスクを負うか、です。
フリーであることの意味
1980年代初頭、MITのAIラボでプリンターが故障しました。ゼロックスから贈られ、ゼロックスの研究施設で作られ、ゼロックスのコピー機を改造したものでした。ここで、あるテーマに気づくかもしれません…。
その日、プリンターの故障に立ち会ったのはリチャード・ストールマンという人物で、彼のファイルがプリンターに詰まったのではなく、上司のファイルが詰まってしまったのです。プリンターの詰まりの原因を誰も見ることができなかった場合全ての作業が止まってしまいます。
そこで、ストールマンは考えました。プリンターのソフトを改造して、プリンターが詰まった時に、キューにいる全員に通知するようにするということです。そうすれば、原因とその解決法がわかる誰かが修理にやってきて、問題はすぐに解決できます。
ゼロックスのレーザープリンターは、クローズドソースのプロジェクトであり、ソースコードのコピーは送ってもらえません。そして、元社員にコピーを求めたところ、NDAにサインしていることを理由に断られました¹。
そして1985年、ストールマンはUnixに代わる非占有的な選択肢としてGNU(再帰的にGNU Not Unix)を設立しました。GNUは「フリーソフトウェア」の信条のもとに運営されており、ストールマンはこのことについて以下のように記しています。
「フリーソフトウェア」とは、利用者の自由とコミュニティを尊重するソフトウェアを意味します。大まかに言えば、ユーザーがソフトウェアを実行し、コピーし、配布し、研究し、変更し、改良する自由を持つということです。したがって、「フリーソフトウェア」は自由の問題であって、値段の問題ではありません。この概念を理解するためには、「無料のビール」のようにではなく、「言論の自由」の文脈で「フリー」を考えるべきです。私たちは、フランス語やスペイン語の「自由」という言葉を借りて「リブレソフトウェア」と呼ぶことがありますが、これは、ソフトウェアが無料であるという意味ではないことを示すためです³。
「オープンソース」という言葉については、実際に登場したのは10年以上後の19⁹⁸⁴のオープンソースイニシアティブ(OSI)設立からです。OSIの創設者たちは、ストールマンと同じ原則を多く共有していましたが、派生物(フォークなど)をどう扱うかについては異なっていました⁵。彼らはユーザーにプロプライエタリな派生物を作らせたのに対して、ストールマンのフリーソフトウェア運動はそうしなかったのです。にもかかわらず、ストールマンの原則の多くは、今日のオープンソースの定義の基礎として機能しています。
ストールマンは、GNU GPLソフトウェア・ライセンスによって、フリーソフトウェアの哲学を確固たるものにしました。これによって、GNUはオープンエンドな公開コラボレーションのプロジェクトとなっています。1991年、地球の裏側に位置するフィンランド大学の学生が、GNUに欠けていた最後の要素の一つである「kernel.⁶」を提供しました。
しかし、1980年代より前から、人類はテクノロジーの分野で共同研究を行っていたことが知られています。19世紀の中頃、イギリスのクリーブランドでは、鉄鋼メーカーが高炉の設計に関するイノベーションをオープンに共有していました。パテントなしで発明を公開し、外部の協力を仰ぎ、学会を開催したり。この間、炉の平均高さは150%以上、発破温度は200%以上上昇し、燃料消費量は劇的に減少しました⁷。
その頃から、情報化時代の幕開けとともに、オープンソースの精神は醸成されていったのです。
オープンソースとは何か、オープンソースでないもの
前述のOpen Source Initiativeは、オープンソースソフトウェアについて、長い10段階のテスト⁸を実施しています。
このガイドラインは3つに要約することができます:
これを具現化するとき、心に留めておくべき二つの指導的原則があります:
1.条件つきの自由はカウントしない
例:ソースコードをフォークできるが、特定のソフトウェアを使用する場合に限る (ベンダーロックイン)
例:あなたはソースコードを見ることができますが、他の人は見ることができない¹。
2. 全ての自由を満たす必要がある
例:ソースコードを見ることはできるが、フォークはできない。
この最後のポイントは強調する価値があります。人々はしばしば、オープンソースをソースコードを見る自由だけと混同しています。そのため、OSIは定義の最初の文章でこの点を明確にしています。
「オープンソースは、ソースコードへのアクセスだけを意味するものではない」¹²
明確にしておくと、オープンソースは前述の全ての自由を必要とします。これ以外のサブセットではこの定義を満たしません。単にソースコードをリポジトリで公開することは、真にオープンソースではないことを意味します。
もちろん、全ての自由が同じように重要であるわけではないことは認めます。とはいえ、真にオープンソースでありたいなら、3つとも必要なのです。
オープンソースの利点
Web1やWeb2では、オープンソースはGoogleやFacebookのような大企業がコミュニティに何かを還元するための方法と考えられていました。しかし、あえてすべてをオープンソースにすること、特に広告のアルゴリズムをオープンソースにすることは、ビジネスの自殺行為となります。
しかし、Web3は魔法が起こる場所であり、Web1とWeb2のインセンティブが崩壊する新しい次元です。この世界では、最も価値のある発明を、物ではなく、コミュニティに提供するという行為が、実は競争力をもたらすのです。
どうしてでしょうか?説明しましょう。
あなたのビジネスモデルが、人々を閉じ込めるのではなく、出口を提供する場合、あなたは、世界中のコミュニティのフィードバックを活用し、重要なセキュリティホールのバグ報奨金を作成し、他の人があなたと一緒に構築するためのオープン招待など、オープンで構築することで得られるあらゆる利点を享受することができます。
簡潔に言えば、これは製品市場適合性を理解することと、ミッション・市民適合性を理解することの違いです。
プロダクト・マーケット・フィットは、通常、競争システムの中で求められるもので、スタートアップとして、自分が勝てるように、競合からコードを隠します。
私たちのミッション・シチズン・フィットは、協力体制の中で求められるもので、あなたは、市民として、自身のコードをエコシステムと共有し、エコシステムが勝利できるように貢献するものです。たとえあなたが失敗しても、エコシステムはあなたの貢献から利益を得ます。
また、ネットワーク国家の市民として、あなたのコードを提供することの公益性は、あなたのコードを競合や悪意ある行為者に利用させることの危険性を凌駕するものとなるのです。
オープンソースの旅
zkSyncネットワークをオープンソース化する選択は、非常に簡単な決断だったと私は主張していきたいと思います。
実際にはそうではありませんでしたが…。
私たちはいくつかの基本的な質問を自問自答する必要がありました。
最初の質問です。「レイヤー 2 のロールアップは、それが真のオープンソース、つまりコードを見たり、変更したり、フォークする自由という固有の保護が付属するプロジェクトでない場合、公共財になり得るのか?」
結論から言うと、ノーです。公共財の最も基本的なテストは、それが非排他的かつ非競合的でなければならないということです。そして、もしプロジェクトが真にオープンソースでないなら、それは直ちに非排他的なテストに失敗すると言えるでしょう。
2つ目の質問です。「レイヤー2ロールアップが、そのコードをオープンソースにしなかった場合に、それが検閲されないokとを信じることができるでしょうか?」
答えとして、 動作し、機能し、配備可能なロールアップを表すコードベース全体に対する完全なオープンソースライセンスに満たないものは、もはや検閲の一形態であり、それはコード、アイデア、革新性に対する検閲であると考えます。
3つ目の質問です。「もし私たちがZKロールアップのような強力な製品を完全にオープンソース化したら、悪意の行為者がそれを悪用することをどうやって防ぐのでしょうか?」
答え。チームとして、私たちはコードを完全にオープンソース化することの利点と欠点を経験しました。zkSync 1.0をリリースしたとき、ある行為者が私たちのコードをフォークして、バグを含んだサービスを立ち上げ、私たちとその製品の評判を危険にさらしてしまったのです。
社内でどうすべきか議論しながら、コードをロックダウンし続け、そのために私たちは他のプロジェクトからも非難を浴びました。「ミッションドリブンを謳いながら、コードを完全に闇に葬るとは何事か」と、ある人物に言われました(名前は伏せておきます)。
クランチタイム
ある日、ひらめいたことがあります。面接をしているときに、その候補者から「あなたのビジネスモデルは何ですか?」と聞かれたのです。私は「えっ?」と思いましたが、彼は「B2BかB2Cか」と言いました。
その瞬間、私は「私たちは、開発者に何かを売るB2Bモデルの会社ではありません」と言いました。私たちはM2Cモデルのプロジェクトで、Mはミッション、Cは消費者ではなく、私たちの新しいネットワークへの参加者(市民)を表します」と言いました。
この瞬間、私の脳の回路がつながり、瞬間的に明確になったことがあります。「ミッションへの適合が最も重要で、公共財は保護主義に勝り、完全なオープンソース以外のものは機能的に検閲となる。」ということです。
zkSyncネットワークのオープンソース化について、私たちは正しい決断をしたと自負しています。
私たちは、Fair Onboarding Alphaのローンチ時に、zkSync 2.0の全てのコードをMITオープンソースライセンスで公開することを決定しましたす。
全てであり、永遠にです。
これには、私たちの秘密のソースであるZKプロバーの背後にあるコードも含まれ、そのコードを閲覧、変更、フォークする自由があります。
私たちは、このことが、エコシステムの他の創設者、チーム、開発者に、オープンに構築することが難しい決定であっても、正しいことをする責任が常にあるという強いシグナルを送ることを心から願っています。
zkSync 2.0のオープンソース化へのコミットメントによって、私たちの技術がイーサリアムのエコシステムへの贈り物となり、他のすべてのレイヤー2プロジェクトのための真の意味で「使える」公共財となることでしょう。