Quote from: gavinandresen on July 14, 2010, 02:20:45 AM
Quote from: spaceshaker on July 14, 2010, 01:52:00 AM Quote from: gavinandresen on July 14, 2010, 12:42:32 AM
そしてほとんどの人は、ウォレットの保持、トランザクションの署名、そしてすべてのトランザクションを監視している超高速ノードへのトランザクションの送受信だけを行う軽量クライアントを使うことになるだろう。
それは可能なのか?どのようなものになるのか?技術的な観点から「軽量クライアント」はどういうものをイメージしているのか?私の理解では、Bitcoinクライアントは信頼を確立するためにブロックチェーン全体が必要だ。
私のイメージはこうだ:
軽量クライアントはコインの入ったウォレット(公開鍵+秘密鍵のペア)を持つ。
そして、常時接続の超高速ヘビー級ノードとの間で安全にメッセージを送受信する方法を持つ。
軽量クライアントは送金時に: トランザクションを作成する(秘密鍵でコインに署名する) 署名済みトランザクションを超高速サーバーに安全に送信し、サーバーがネットワークに流す トランザクションが有効で送信されたことの確認を受け取り、ウォレットを更新する(コインを使用済みにする) (またはサーバーから「そのコインはすでに使用済みだ」というエラーを受け取る)
軽量クライアントは受け取り時に: 定期的にサーバーにポーリングして「ウォレット内のこれらのBCアドレスへの支払いはあるか?」と尋ねる …またはBCアドレスのリストへのトランザクションを検知した時(あるいはN回の確認が得られた関連トランザクションを検知した時)に通知するようサーバーに依頼する トランザクションが発生したら、軽量クライアントはウォレットを更新する(コインを追加する)
サーバーを信頼する必要はない。サーバーは秘密鍵を持つことはない。
まあ、サーバーがトランザクションの有効性について嘘をつかないことは信頼する必要があるが、サーバーがなぜそんな嘘をつくのか? Quote from: spaceshaker on July 14, 2010, 01:52:00 AM Quote from: gavinandresen on July 14, 2010, 12:42:32 AM
そしてほとんどの人は、ウォレットの保持、トランザクションの署名、そしてすべてのトランザクションを監視している超高速ノードへのトランザクションの送受信だけを行う軽量クライアントを使うことになるだろう。
それは可能なのか?どのようなものになるのか?技術的な観点から「軽量クライアント」はどういうものをイメージしているのか?私の理解では、Bitcoinクライアントは信頼を確立するためにブロックチェーン全体が必要だ。
ちょっと思いつきを述べてみる…
P2Pモデルは確かに斬新だが、多少ユートピア的に思える。少し付き合ってほしい(荒らしたいわけではない)。銀行を考えてみよう。銀行には効率的に協力し合うシステムがある。銀行Yの口座を持っていても、銀行XのATMからお金を引き出せる。銀行同士は融資し合う。基本的に協力的だ。すべての人がPC(やスマートフォン)にBitcoinクライアントを入れてオープンなP2Pネットワークに参加する代わりに、Bitcoinの「銀行」の集まりがブロックチェーンのホスティングと「ピアリング」のサービスを提供するのはどうだろう。これらは十分に大きな組織で、1日100万件(以上)のトランザクションを持つ無限に長いブロックチェーンを維持するための帯域幅とハードウェアを賄える。これらの銀行はP2Pのままであり、完全にオープンであることが望ましい。理想的には誰でもP2Pネットワークに参加できるが、参入障壁があるため一般の人はそうしないだろう。これらの銀行は今日あるのと同じ基本技術で運営される。Bitcoinの美しい側面はすべて保たれるが、アクティブな参加者の数がいくらか減少する。参加したい人は引き続き参加できる。
残る問題は典型的な「ラストマイル」問題だ。一般ユーザーはどうやってトランザクションを行うのか?この時点では問題はかなり単純になる。信頼は2者間(「銀行」とユーザー)だけで済む。これは本質的にプロキシの問題になる。ユーザーは「銀行」を通じてトランザクション要求を送信する。プロキシトランザクション用のプロトコルをBitcoinに組み込むことさえ可能かもしれない。
とにかく…これは私の個人的な意見に過ぎない。この問題に対する具体的な回答がほしい。なぜなら、この取り組みの成功にとって根本的に重要だと思うからだ。
想像する必要もない。実際には既にノードを「リモートコントロール」できるので、自分の(高速接続、HDD満載の)ホームサーバーに情報を送受信するだけの小さな軽量クライアントを作ればいい。
ある種の「管理されたサーバー-クライアント版」はMyBitcoinにすでに存在している。自分のウェブホストで同様のものを実行して、どこからでもどんな接続速度でもアクセスできる。
「軽量クライアント」自体がそうである必要はなく、接続して何をすべきか指示すればいい。 JSONでできる。