ビットコイン・インスティテュート

Re: 提案:Bitcoinと​一緒に​短い​メッセージを​送れるようにしないか?

人物: ByteCoin
ByteCoin 2010年10月24日20:53 UTC
サトシ・ナカモトの投稿(2010年10月23日19:02 UTC)

全員が見られるように平文メッセージを永続的に記録するのは賢明ではない。いつ事故が起きてもおかしくない。

どんな悪影響が出ると予想しているのかな?

これはECDSAのブロードバンドサブチャネルのおかげで、現行のシステムでもある程度可能だ。

私はブロックチェーン全体を覚えておく必要のないフルクライアントの実装をサポートするため、blockchain上に任意の情報を分散させる方法を探していた。http://bitcointalk.org/index.php?topic=505.0を見てくれ ― “Balance Sheets” についてのスレッドだ。 データをエンコードする素朴なやり方は、いくつものアドレスへ送金して、たとえば受信アドレスの最初の数バイトを調べることでデータをデコードする方法だが、これは比較的少ないデータを送るのに多数のトランザクションが必要となり、帯域の無駄が大きい。

DSAの興味深い性質として、32バイトのメッセージに署名しようとすると、各署名は64バイトの長さになる。つまり署名には、何もないところから生み出された32バイトの情報が含まれているということだ。アルゴリズムを調べてみるといいhttp://en.wikipedia.org/wiki/Digital_Signature_Algorithm。この情報はランダムパラメーターkから来ている。署名はg^kという数と、kとg^kの両方を含む別の式とのペアで構成される。もしg^kが自分のデータを含むようにkを選べるなら、blockchainに巨大な塊で平文データを含めることができる。(不)幸にも、これを行うのは困難でなければならない。さもなければECDSAは安全ではないということになる。

しかし、もし実質的に秘密鍵を公開すれば、誰でも簡単な代数を使って、その鍵で署名されたすべての署名に使われたk値を復元できる。これに気づいたのは私が最初ではない。http://en.wikipedia.org/wiki/Subliminal_channelsを見てくれ。 その鍵に関連付けられた金をすべて使い切っていれば、もうその鍵はどうでもよくなる。(もちろん誰かがその鍵にさらに金を送れば、みんなが先を争ってそれを使おうとするだろう!)だから、何日でも何か月でも普通のトランザクションに大量のデータをエンコードしておき、その後で実質的に秘密鍵を公開すれば(そのためのエレガントな方法がある)、すべてのデータが丸見えになる。

もちろん私の “balance sheet” スキームは、この問題(もし問題だとすれば)にそれほど悩まされない 😉

ByteCoin