Closed Sourceとは何か?
Closed Sourceはコードが非公開に保たれるソフトウェアです。制作者や限られたチームだけがコードを見たり、変更したり、共有したりできます。秘密のレシピが金庫にしまわれ、利用者は料理だけを受け取るようなイメージです。
「Closed Sourceは常に安全だ、攻撃者がコードを見られないからだ」という見方がありますが、必ずしもそうではありません。秘密にすることで一定の助けにはなりますが、本当の安全は設計、監査、対応計画から得られます。
Closed Sourceの仕組み
アプリストアからダウンロードする暗号資産ウォレットを想像してください。画面は見えますが内部は隠されています。更新は会社が配布したときに届き、各リリースに付された署名を信頼して使います。
- Step 1: チームは非公開のリポジトリでコードを書き、ビルドを作成します。
- Step 2: ビルドに署名し、サイトやアプリストアに公開します。
- Step 3: インストールし、ブランド、監査、権限の確認を信頼します。
- Step 4: バグは舞台裏で修正され、次のアップデートで配布されます。
- Step 5: コードをフォークしたり、すべての行を検証したりできないため、信頼が必要になります。
流れはこうです。簡潔でよく見られる形態です。
Closed Sourceの意義
Closed Sourceでは可視性を譲って利便性と速度を得ることになります。時にはより洗練されたユーザー体験につながり、時にはブラックボックスを信頼することを意味します。判断は十分な情報を元に行ってください。
- Benefit: 明確な所有権、製品方針の迅速化、模倣が少ない。
- Perspective: オープンなコードは透明性を高めることがあり、Closed Sourceは企業の知的財産を守ることができます。
- Relevance: ウォレット、取引所、ブリッジ、バリデータクライアントなどで出会う機会があります。
Closed Sourceのウォレットを使う前に、信頼できる監査やバグバウンティ、チームが過去の攻撃事例にどう対処したかを確認してください。過去の対応は将来の対応の指標になります。
Closed Sourceの主な特徴
一般的に伴う内容は次のとおりです:
- Control: ベンダーのみがコードベースを変更または公開できます。
- Access: 利用者が得るのはバイナリであり、行ごとに読み書きできる完全なソースコードではありません。
- Audit: レビューは非公開で行われるか委託され、公開情報が限定される場合があります。
- Trust: 会社、その更新サーバー、署名鍵を信頼する必要があります。
- Data: よくより良いプライバシーをうたいますが、どのようなテレメトリが収集されるかを必ず確認してください。
バリエーション
すべてのClosed Sourceが同じではありません。よく見られる形態:
- Proprietary: 完全に閉鎖され、コードは公開されません。
- Sourceavailable: コードは閲覧できるが、自由に再利用はできません。
- Opencore: 一部は公開され、プレミアム部分は非公開です。
- Auditonly: 監査のためにNDA下でコードが共有され、ユーザーには公開されません。
Closed Sourceが悪や完璧を意味するわけではありません。長所と短所のある選択ですので、信頼性や実績、自分のリスク許容度を考慮してください。
例
大手の中央集権型取引所のモバイルアプリはClosed Sourceであることが多く、セッションの保存方法やAPIキーの保護方法を検査することはできません。
豆知識
ハードウェアウォレットの議論が白熱するのは、ソフトウェア哲学に関して意見が分かれるためです。LedgerはファームウェアをClosed Sourceのままにしており、Trezorはオープンに寄っています。同じ目的でもアプローチは大きく異なります。
まとめ
要点:Closed Sourceはコードの可視性をコントロールに置き換える選択です。信頼を置くことが自分の環境や資金に合うかどうかを判断してください。
