[blockchain問題点][176] アドレス先頭が1と3では、スクリプトの構造は異なりますが、コンセンサスは両方で得られてしまいます……。通常の1なら餌にハッカーが喰らい付いてきましたが、内部を少し書き換えた3は放置のままになりました。もちろん、この3もコンセンサスは取れております。

投稿者: | 03/07/2023

似ているようで似ていないアドレス先頭が1または3の仕組みです。スクリプトの構造が異なるので、アドレスの違いだけではなく、別物の扱いとなっております。

ところで、アドレスはどこで作られるのか。それはBase58を処理する関数で行います。そこで、Base58の規則に沿って調整するとアドレス先頭を固定化することができます。それで1または3となっております。

ただ、それを逆手に取ると、アドレスの違いはBase58の関数内部で処理されたただの結果です。それゆえに、スクリプトの構造とは関係がありません。そのため、スクリプトの構造を変えてもBase58の関数内部を調整して組み立てればコンセンサスが得られるようになります(ここが問題)。

何度も書いておりますが、ブロックチェーンでコンセンサスが取れるというのは、善悪関係なく、そのコンセンサスで何でもできてしまう事を意味します。

そのようにして作り出したコンセンサスは、公式はもちろんサードパーティから配布されているウォレットから資金を動かすことはできません。なぜならスクリプトの構造が異なるため、指定されたアドレスを導くことができず、それを認識できないからです。

それで……そのスクリプト構造を知る者のみが資金を動かせるという状況になります。この使い道、果たして何があるのでしょうか。もちろん、このような手法を好む者はパソコンやスマホにウォレットのデータなんて絶対に残しません。そのスクリプト構造と、それを導くアドレスを正確に「記憶」するでしょう。憶えてしまえば痕跡が何も残りません。

これだけだと推論の域を出ませんから、実際に検証用のトランザクションで試してみました。そしたらビンゴです。通常の1なら餌にハッカーが喰らい付いてきましたが、内部を少し書き換えた3は放置のままでした。スクリプト構造が異なるのでハッカーもその餌を「別物」としてみてしまい喰らい付けないのが明らかでした。