blog.8-p.info

9月になった

Sep 1, 2022

なんだか最近パッとしないので、しばらくここに書く量を増やしてみる。去年も9月になにかテコ入れをしていたけど

そういったわけで、今年の残りは「ちゃんとした」技術的な話を一定のペースで書く、ブログというものに挑戦してみることにした。

今回は、どちらかというと、2021年に英語のほうでやっていたような、淡々としたものにするつもり。

私は web3 は基本的にダメだと思っていて、Letter in Support of Responsible Fintech Policy にも同意して、署名している。

一方で、Web 2.0 時代によく読んでいた、渡辺千賀さんは暗号通貨勉強会をやっているし、UIEvolution の中島さんNouns DAO を高く評価している。中島さんは

AWSやAzureどころか、IPFSにすら頼らないフルブロックチェーンのスマートコントラクトは、ブロックチェーンそのものが無くならない限り未来永劫、動き続けるのです。その事実とそれが意味するところに気づいた時には、稲妻の様な衝撃が走りました。

書いていて、その、インターネット上に巨大なデータベースとチューリングマシンが出現していて、それがかっこいいな、という気持ち自体はわかる。

あるいは、伊藤穣一さんも日本国内では web3 の人としての活動が多くて、

たとえば僕はジャニーズ事務所の顧問を務めているのですが、2022年、ジャニーズ事務所は、コンサートチケットの一部をNFT化する挑戦をはじめます。

なんてこともインタビューでいっている。私は彼らに一定の信頼をおいているので、web3 にもじつは見るべきものがあるのかもしれない。

そういえば、楠正憲さんが、

とりあえずBitcoinやEthereumの基本的な仕組みをO’ReillyのMasteringシリーズで学んで金融庁の「分散型金融システムのトラストチェーンにおける技術リスクに関する研究」を斜め読みして、分からないところをネットからの情報で補完したらだいたい追いつけるんじゃないかな

書いていた。私はここらへんちゃんと勉強していないので、Mastering Ethereum と金融庁のものくらいは読んでもいいかもしれない。Proof of Stake 移行の後にしたいけれど、そもそも今年に移行できるのかな。

プログラマも、もうちょっと一般むけに話したほうがいい

ロシアのウクライナ侵攻では、私は小泉悠さんとか、国際政治チャンネルまわりの人々を信頼、追っていて「ロシアが悪い」という立場でいる。新型コロナウィルスに関しては、あまり政策についての定見はないのだけど、西浦博さんは追っている。

こういう、専門家がテレビやマスメディアを待たずに、一般の人々に話しかけられるようになったのは、インターネットが普及した結果おこった良いことの一つだと思う。

web3 も、ロシアのウクライナ侵攻とか新型コロナウィルスほど大きい話題ではないけれど、日本には一定の期待をおいている人々がいる。たとえば平将明議員は、GPIF (年金積立金管理運用独立行政法人) による投資の可能性にまで言及している。

GPIFには現在、概ね200兆円の運用資産がある。そこから、0.5%にあたる1兆円を切り出し、スタートアップ支援ファンドを作るのも良い。税制やレギュレーションの整備、特区、ファンドなどを活用すれば、一気にWeb3の世界のトップに立てると思っている。環境さえ整えば、日本に来たい人はいっぱいいる。

スタートアップ支援はいいけれど、それで web3 世界のトップを目指すのは愚策だと思う。まあ、インタビューは今年の4月のもので、Telsa が7月に Bitcoin の大半を売却したりしているなか、いまもそう思っているかというのは定かではないけれど。

ロシアのウクライナ侵攻や新型コロナウィルス、もう少し日本にローカルなものだと、江戸しぐさとか EM 菌とか、専門家がでてきて「それは間違っていますよ」といってくれる話題は結構ある。プログラマというかコンピュータの専門家の人々は、私も含めて、web3 についてそれをサボっていたと思う。

そもそも政府による「選択と集中」が産業支援策としてどうなの、というところまでは覆せなくても、web3 について語ることが「新しい技術に明るく前向き」というポーズをとるための選択肢のひとつにならないようにはできると思うんだけど、どうだろう。甘すぎかなあ。

日本には長らく、海外から来た人は政府の指定ホテルにしばらく閉じこもって、新型コロナウィルスにかかっていないことを確認してから、街にでてほかの日本人に会ってくださいね、という「自主隔離」と呼ばれる手続きがあった。

これが最近やっとなくなって、数年ぶりに、3週間くらい日本に帰っていた。

久しぶりに帰る日本はだいぶ暑かった。昔より実際に暑くなっているらしい一方で、私の基準がシアトルによりつつあるせいもあるのだろう。暑いなかで、みんながきちんとマスクをしているのもすごかった。

今回は事情があって、私の実家のほうにはよらず、東京にすこし、あとは大阪の妻の実家に滞在していた。大阪は、梅田に大きな紀伊國屋があって、西河原市民プールにはウォータースライダーがあって、海遊館という水族館は大きくて、当然のようにわたしの実家まわりよりも発展していた。オニツカタイガーの、とはいえ日本製ではないスニーカーを買った。JINS と Snow Peak のコラボの、サングラスになるメガネも買った。

ユニバーサルスタジオジャパンをはじめ色々なところに行ったけれど、結局、新型コロナには感染せずに帰ってこれた。

帰ってからはすぐに、コンテナランタイムミートアップというイベントに参加した。本当に久しぶりに、会社員として人前で発表したので、だいぶ緊張した。

日本にいるあいだの軽い読みものと、あとイベントのハッシュタグとで、だいぶ Twitter に入り浸ってしまっていたけれど、またしばらく長い文章を読み書きする生活に戻していきたい。

また Web3 の話

Jul 21, 2022

インプレスから出ている、いちばんやさしいWeb3の教本良くないという話からはじまって、

「いちばんやさしいWeb3の教本」というのが試し読みできたので開いてみたら、出だしから「Web1の時代は1970年代から80年代にかけて整備され」とめちゃくちゃなことが書いてあってその先を読む気力が失せた。インターネットとWebを混同している? 専門家なのに? いろいろ謎。

そこから、

と、また Web3 の話が盛り上がっている。

私はいわゆる GAFA の一つ (Amazon) に勤めているので、人々の「現状の GAFA はいかがなものか」という話には関心がある。また、インターネットの利用者の一人として、例えば明日 Google や Amazon が私のアカウントを閉じたらすごく困るよな、という懸念はあり、データの可搬性みたいなものが確保されるといいですよね、というのもわかる。

パブリックなブロックチェーンにデータを記録する、というのが一般化したら、データの可搬性に関する問題は少しだけ解決する。データの所有者は私企業ではなく、私企業はデータを読み書きするアプリケーションを提供する。これは、例えば IMAP サーバーにメールがあって、メールを読み書きするソフトウェアは各社が開発していましたよ、という時代に戻るわけで、それをもって「インターネットの真の姿を取り戻す!」ということもできると思う。

パブリックなブロックチェーンにデータを記録するために解決しなければいけない問題は、解くに値する問題なのか

ただ、パブリックなブロックチェーンにデータを記録する、というのには色々と副作用がある。まず遅い。また、私は自分のメールも、だれと頻繁にメールをやりとりしているかも、他人には知られたくない。むかしに送って後悔しているメールは、手元からだけでも消しておきたい。

ここで、ブロックチェーンに詳しい人なら「速度の問題はロールアップで緩和できるし、ブロックチェーンに記録するデータはもちろん暗号化できます。人間とウォレットは 1:1 ではなく、1:N でいいし、これはナカモトサトシの論文 Bitcoin: A Peer-to-Peer Electronic Cash System の6ページ目で検討されていて…」となるのだろう。ただ、私からすると「そもそも、パブリックなブロックチェーンに、プライベートなデータを記録するのは、筋の悪い応用なのでは?」と思ってしまう。

昔々に、Paul Graham は Hackers and Painters で「間違った前提からはじめると、たくさんの問題が生まれる」と書いていた。

Nothing yields meaty problems like starting with the wrong assumptions. Most of AI is an example of this rule; if you assume that knowledge can be represented as a list of predicate logic expressions whose arguments represent abstract concepts, you’ll have a lot of papers to write about how to make this work. As Ricky Ricardo used to say, “Lucy, you got a lot of explaining to do.”

「パブリックなブロックチェーンをもって、データの可搬性を確保します」というところから出発すると、たくさんの解くべき問題がある。それを解く面白さはあるのかもしれないけれど、個人的には「そもそも前提が間違っているのでは」と思っている。

相互乗り入れのためのコスト、例えば合意形成の遅さを、我々は受け入れられるのか

また、パブリックなブロックチェーンにデータを記録して可搬性を確保する、というのには、そのデータのかたちには、アプリケーション間で合意がある、という前提がある。ただ、これを実現するのは難しい。例えばあるオンラインゲームでアイテムを買って、これが「すばやさ」を上げるものだとする。これを別のゲームに持ちこんで、同じように「すばやさ」を上げるには、二つのゲームで「すばやさ」という概念を揃えなくてはいけない。

「デジタルなアイテムが NFT なら、他のメタバースやゲームにも持ち込める」という仕様を実装するには、この概念をそろえる作業を参加するゲームなりアプリケーション間でやらないといけない。Signal の Moxie Marlinspike は My first impressions of web3 で、こういった複数のアプリケーションでの合意を取り決めることの難しさ、とりわけ変化の遅さを指摘している。

A protocol moves much more slowly than a platform. After 30+ years, email is still unencrypted; meanwhile WhatsApp went from unencrypted to full e2ee in a year. People are still trying to standardize sharing a video reliably over IRC; meanwhile, Slack lets you create custom reaction emoji based on your face.

This isn’t a funding issue. If something is truly decentralized, it becomes very difficult to change, and often remains stuck in time. That is a problem for technology, because the rest of the ecosystem is moving very quickly, and if you don’t keep up you will fail. There are entire parallel industries focused on defining and improving methodologies like Agile to try to figure out how to organize enormous groups of people so that they can move as quickly as possible because it is so critical.

我々は本当にそのコストを払えるのだろうか。IETF や W3C とか、私の仕事に近い OCI とかはそれぞれ頑張っている。一方で、例えば Slack と Discord の相互乗り入れはいまだに実現していない。

ところで、日本はどうすればいいのか

わかりません。アメリカでしばらく働いているけれど「ここがちがう! これがあれば日本は復活する!」と思うものは、正直みあたらない。Google, Apple, Facebook, Amazon の前には、Sun Microsystems や DEC があって、そういう歴史の積み重ねと、そこからくる人材の層の厚さが効いているのでは、と思うことはある。でもこれはコピーするのが難しい。国際競争力のあるソフトウェアを作ることについては、アメリカは特異点なのでまずは無視して、カナダにある Shopify とか、オーストラリアの Atlassian とか、アメリカの外の会社を見たほうがいいのでは、とは思う。

こうやって言い淀んでいるところに「Web3 で日本は復活します!」といっている人が来ると、それが頼もしくみえて、話を聞いてしまうのは致し方ないのかもしれない。

仕事のプログラミングには、人々の要求を取りまとめて、論理的なかたちにまとめる作業と、それをコンピュータに教え込んで動かす作業と、二つの要素があって、この配分は会社やチームによってだいぶばらつきがある。

私はいわゆるクラウドをつくる側にいるので、日々の仕事に前者の要素はあまりない。これは、作っているソフトウェアがそこまで新しくなく、何を作ればいいのかわからない段階は過ぎてしまっているというのもあるし、客になるような人々がコンピュータに詳しいというのもある。

後者の要素、Linux カーネルのバージョンがどうとか、コンテナランタイムがどうとか、そういうことはよくやっている。クラウドとか、サーバレスというのは、つまりは後者を他人に任せる仕事で、その他人というのが私だからだ。

結果として、ソフトウェア業界全体を見渡すと、前者の仕事はあまりなくならず、後者の仕事は徐々に減っているように思う。世界のどこかにやっている人はいるのだけど、集中と統合が進んで、特定少数の人々が、多数のアプリケーションを支える形になりつつある。クラウドの外をみても、例えば2000年代は、会社ごとの Web フレームワークというのがあったりしたけれど、最近はあまり見かけず、出来合いのオープンソースのものを使う場合が多い。

インターネットでは、それでも後者について語る人が多い。これは、頼まれもしないのにコンピュータについて語りたがるのは後者が好きな人が多いというのもあるし、前者は仕事につながりすぎていて話しにくく、話したとしても、共通の話題になりにくい、というもあるのかもしれない。

後者の仕事が減っているのは、全体としては良いことなのだと思う。なんでもできる人が前者に集中できることも、後者が苦手な人がソフトウェアを開発できるのも良いことだからだ。前者が苦手で後者が得意な人にはちょっと辛いけれど、これは昔からずっと進んでいる傾向で、例えば私の前の世代は「これからの世代はメモリ管理とか GC まかせなのだなあ」と、なんとなく寂しく思ったのかもしれない。