btc: miniscript (-1)
2025/03/10
はじめに
実際にどう miniscript を使うのがよいのか考え中。
で、ごにょごにょ考えていたけどうまくまとまらない。
そういえば descriptors もうまく使ってなかった(私が)
miniscript は descriptors を発展させた形らしい。
てっきり先に miniscript があったのかと思っていた。
libwally-core は同じ API で descriptors も miniscript も扱えるようになっていた。
まあ、descriptors はウォレット用なので全部ではないと思うが。
何を言いたいかというと、descriptors のことを調べたときもウォレットの seed のことしか考えていなかったので 使い方を全然理解していなかったということだ。
コミュニティは無視できない
何の話だ?となりそうだが、ウォレットの生成とバックアップと、それとユーザの使い勝手についてだ。
Bitcoin ウォレットのバックアップといえば mnemonic の単語群だろう。
12単語か24単語を書き留めて、頑丈にするなら金属製などの燃えにくいもので単語リストを作って金庫などに保管したものだ。
ただまあ、ウォレットアプリを作っていると特に感じるのだが、この過程がかなりめんどくさい。
この単語はある意味では銀行口座を開いたときの印鑑(今はなさそうだけど)みたいなもので、
これが漏れるとそのウォレットから送金し放題になるので、銀行印を厳重に扱うなら mnemonic も厳重に扱うべきなのだ。
しかし利便性などから ATM ができ、キャッシュカードと PIN で送受金ができるようになったことを考えると、
mnemonic がキャッシュカード+PIN のような扱いになってきたとも考えられる。
そうなのかどうかは知らないが、ともかく他のアカウント作成などに比べると格段に面倒になっているのは間違いなかろう。
これをどうするのかというのは結構ウォレット実装で違うのが興味深い。
「最初だけなんだから面倒でもいいやん」というのも理解できるし、「最初でつまずくと使ってもくれない」というのも理解できる。
mnemonic をクラウド上にバックアップすると楽ではあるのだが、これは嫌われやすい。
特に Bitcoin の理念を重視して「鍵は自分で持つ」という界隈にはひどく嫌われる。
Bitcoin はコミュニティから広まって今に至っているという経緯からすると、積極的にはそういうことはしたくない。
つまり、ユーザエクスペリエンスだけで決められないというか、 背景も含めてユーザエクスペリエンスになっている、と私は思っている。。。 というと格好が良いが、これまでの仕事で教えられたことである。
まあ、仕事でやっていてユーザが増えないと心は揺らぐんだけどね・・・。