Re: スケーラビリティ

spaceshakerの投稿(2010年7月13日 16:52 UTC)
ギャビン・アンドレセンの投稿(2010年7月13日 15:42 UTC)

そしてほとんどの人は、ウォレットの保持、トランザクションの署名、そしてすべてのトランザクションを監視している超高速ノードへのトランザクションの送受信だけを行う軽量クライアントを使うことになるだろう。

これは可能なのか? どんな感じになる? 技術的な観点から「軽量クライアント」はどのようなものか? 私の理解では、Bitcoinクライアントは信頼を確立するためにブロックチェーン全体が必要だ。

私のイメージはこうだ:

軽量クライアントはコインの入ったウォレット(公開鍵+秘密鍵のペア)を持つ。

そして、常時接続の超高速ヘビー級ノードとの間で安全にメッセージを送受信する方法を持つ。

軽量クライアントは送金時に: トランザクションを作成する(秘密鍵でコインに署名する) 署名済みトランザクションを超高速サーバーに安全に送信し、サーバーがネットワークに流す トランザクションが有効で送信されたことの確認を受け取り、ウォレットを更新する(コインを使用済みにする) (またはサーバーから「そのコインはすでに使用済みだ」というエラーを受け取る)

軽量クライアントは受け取り時に: 定期的にサーバーにポーリングして「ウォレット内のこれらの BC アドレスへの支払いはあるか?」と尋ねる …または BC アドレスのリストへのトランザクションを検知した時(あるいは N 回の確認が得られた関連トランザクションを検知した時)に通知するようサーバーに依頼する トランザクションが発生したら、軽量クライアントはウォレットを更新する(コインを追加する)

サーバーを信頼する必要はない。サーバーは秘密鍵を持つことはない。

まあ、サーバーがトランザクションの有効性について嘘をつかないことは信頼する必要があるが、サーバーがなぜそんな嘘をつくのか?