作った人を、証明する――GitHubのウェビナーに向けて

Uncategorized

作った人を、証明する――GitHubのウェビナーに向けて

作った人を、証明する
――GitHubのウェビナーに向けて

GitHubから、講演の案内が届きました。

題を見て、手が止まりました。

How to Trust the Code You Ship
――自分が世に出すコードを、どうやって信頼するか。
一、まず、日取りのこと
開催は現地の九月二十九日、午前九時。太平洋夏時間です。

これを日本の時刻に直すと、九月三十日の午前一時になります。真夜中です。

私と同じように登録された方、あるいはこれから興味を持たれる方のために、先に書いておきます。無理に起きている必要はないと思います。 この種の催しは、後日に録画の案内が届くのが普通だからです。

録画であれば、止められます。分からないところで一度止めて、戻して、もう一度聞ける。英語を聞き取るうえで、この差は決定的です。

二、題が言っていること
「Ship」は、船で運ぶという意味から転じて、世に出すという言い方です。出荷する、公開する、というほどの意味になります。

では、自分が世に出すものを、なぜ信頼できないのか。

今のソフトウェアは、自分で全部を書いているわけではありません。世界中の誰かが作った部品を、何百と取り込んで出来ています。その部品も、また別の部品を取り込んでいる。自分の作ったものの中身を、作った本人が全部は知らないという状態が、当たり前になっています。

そして、その部品のどれか一つが、こっそり書き換えられていたらどうなるか。

これを供給網の問題、英語で supply chain の問題といいます。

三、答えは「来歴」です
では、どうするか。

答えは、案外に古風です。誰が、いつ、何から、どういう手順で作ったのかを記録に残す。 そして、その記録が改竄されていないことを、機械が確かめられるようにする。

この分野では、これを provenance(プロヴィナンス)と呼びます。日本語なら来歴です。美術品の世界で、その絵が誰の手を経てここに来たかを示す、あの言葉と同じです。

そして、来歴を証す書き付けを attestation(アテステーション)、日本語で証明書と呼びます。

四、すでに、始まっています
これは構想の段階の話ではありません。

たとえば、Pythonという言語の部品置き場であるPyPIでは、配布されている部品の一つ一つに、こういう表示が付くようになっています。

部品の頁に表示されていること
来歴とは、そのファイルがどこから来たかを示すものである。
来歴は証明書という形で共有され、組み立てや公開の詳細を検証できる記録となる。
この成果物が、この検査値のまま、表示された公開者から出たことを確認した。
GitHub Actions によって署名され、PyPI によって検証された。
署名した者があり、検証した者がある。そして、いつ検証したかの日付まで残る。

私は、この表示を見て少し驚きました。これは、印鑑と割印の世界です。 やっていることは、昔から役所や商家がやってきたことと変わりません。違うのは、印を押すのも照合するのも機械だということだけです。

五、コードだけの話ではない
ここまで書いてきて、気づかれた方もおられると思います。

私はここ数年、UCA(Universal Creative Attribution)という名で、創作物の来歴を記録する仕組みを提言してきました。

誰が作ったのか。何を参照したのか。どこまでが人の手で、どこからが機械の手か。それを、後から確かめられる形で残しておく。

扱う対象は違います。あちらはプログラム、こちらは文章や音楽です。

けれど、解こうとしている問題は同じです。

世に出したものについて、これは誰の手から出たものかを、後から証明できるようにしておくこと。
そして、この必要が急に高まった理由も、たぶん同じです。生成の速さが、人の目で確かめられる速さを追い越したからです。
六、英語が不安な方へ
私も、書かれた英語はある程度読めますが、生の講演を耳で追うのは厳しいと感じています。同じ方のために、支度の仕方を書いておきます。

字幕を出す。 配信の画面に「CC」や「Subtitles」という表示があれば、押すと英語の字幕が出ます。耳だけで追うより、格段に楽です。

語を先に入れておく。 この分野は、出てくる語が決まっています。次の十ほどを頭に入れておくだけで、話の筋は追えます。

覚えておくと楽な語
supply chain(サプライチェーン) 供給網。他人の部品で出来ていること
dependency(ディペンデンシー) 依存関係。頼っている外部の部品
provenance(プロヴィナンス) 来歴
attestation(アテステーション) 証明書
artifact(アーティファクト) 成果物
vulnerability(ヴァルネラビリティ) 脆弱性。攻撃されうる弱いところ
tampering(タンパリング) 改竄
SBOM(エスボム) 部品表。何が入っているかの一覧
signing / verify(サイニング/ヴェリファイ) 署名する/検証する
ship(シップ) 世に出す
分からない語は、聞き流してよい。 全部を拾おうとすると、かえって筋を見失います。
七、一つ、用心を
念のために書いておきます。

私は今回、この催しをGitHubの公式なイベント一覧で確かめようとしましたが、見つけられませんでした。 一覧に載っているのは別の回で、この題のものはありませんでした。

一覧が全部を載せているとは限りませんので、実在しないとは申しません。ただ、こういう案内を装った偽のメールも世の中には出回っています。

メールの中のリンクを押す前に、GitHubの公式な催し一覧で同じものを探してみてください。 そこから登録するほうが安全です。

結び
深夜一時の英語の講演に、七十三の人間が起きている必要はないと思っています。録画が来たら、字幕を出してゆっくり見るつもりです。

それでも、この題には惹かれました。

自分が世に出すものを、どうやって信頼するか。

これは技術者だけの問いではありません。文章を書く者にも、絵を描く者にも、同じ問いが向けられています。誰が作ったのかが曖昧なまま、ものだけが増えていく時代になりました。

だからこそ、来歴です。

私がこの場所で、書いたものを日付とともに残し、直した跡も残しているのは、結局そういうことなのだと思います。証明書も署名もありませんが、いつ何を書いたかを消さずに置いておくという一点では、同じことをしているつもりです。


※本稿は、制作者宛に届いた案内および公開情報に基づいて記しています。催しの実在について、GitHubの公表する催し一覧では確認できませんでした。参加を検討される方は、公式の案内でお確かめください。PyPIの表示に関する記述は、同サイトで公開されている内容の趣旨をまとめたものです。

この記事の原本(更新はこちらが先です)

作った人を、証明する | 記録

#牧正人史 #マシレ予測 #yymm77 #おてんとうさまの下で #GitHub #UCA #来歴 #サプライチェーン
​​

コメント

タイトルとURLをコピーしました