サトシさん、こんにちは。
お元気でお過ごしのことと思う。最近、BitCoin がインターネット上の不正利用にどう対処できるかについて考えており、意見を聞かせてほしい。
私の「本業」は Google の不正利用対策チームだ。ネットワークからのアウトバウンドスパムを制御するために、電話認証を広範に活用している。Facebook や Craigslist も同様だ。電話認証がうまくいくのは、ほとんどの人が 1 つか 2 つの電話番号にアクセスできるものの、それ以上はほとんど持っていないためだ。しかし、重大な欠点がある。(我々にとって)費用がかかり、不安定で、プライバシーへの影響を嫌がる人もおり、一部のスパムは大量の SIM カードを購入するのに十分な利益がある。
BitCoin をアカウントの担保として使用できれば理想的だ。担保額によってシステムがあなたの行動に課す制限(例えば送信できるメールの量)が決まり、匿名かつプライベートな方法で行える。しかし、これをどう実装するか?
コインを永久にバーンするのは簡単で、唯一の出力を
しかし、人々はこれらの大規模ネットワークに出入りするものであり、Google を辞めて自分のメールサーバーを運営する場合にコインを失うという考えは魅力的ではない。コインを一定期間ロックして時間 X まで使えないようにし、所有者が望めば X を常に将来に延長できるが、そうでなければ最終的にコインが再び使用可能になるのが理想的だ。Google アカウントを認証するために、一定量のコイン(例えば 10)を取り、6ヶ月間使えないように設定する。
スクリプト言語には時間の概念がない。OP_BLOCKNUMBER は、再編成がトランザクションのチェーン全体を無効にする可能性があるため、除外された。しかし、OP_DAY は実現可能だろうか?ブロックヘッダーからタイムスタンプを返すオペコードを考えているが、ブロックチェーンで見られる自然なクロックドリフトに対処するため、最も近い日に丸める。これが機能するなら、特定の日までコインを拘束するトランザクションの構築は容易だ。期限を常に移動させ続けるのはより困難だ。単純な力ずくの解決策は、ユーザーに 2倍のコインを担保として要求し、最初のトランザクションが期限切れになって使用可能になりそうな時点で 2番目のトランザクションを作成することだ。こうすれば、常に十分に遠い期限の担保として機能するトランザクションが少なくとも 1 つある。しかしこれは不格好だ。より良い方法は、期限付き出力に期限が切れる前にトランザクションが接続できる新しいルールを導入し、そのトランザクションの出力が再び同じ形式の期限付き出力であることを条件とすることだ。しかし、これはスクリプト言語よりも汎用性が低いため、やはり不格好だ。
どう思うか?