(nixoidの引用投稿)

nixoid 2010年6月10日 原文 · 個別ページ

みなさん、こんにちは。分散型通貨に興味があり、このプロジェクトの開発に参加するか、自分のバージョンを開発するかのどちらかを考えている。決断する前に、ドキュメントからは明確でないいくつかの技術的な点を確認したい。部分的には英語が母国語ではないからでもあるが。

  1. ウォレットを持ちたい場合、ノードを実行する必要があるのか?ウォレットは特定のノードに紐付けられるのか、それともフラッシュドライブに保存して任意のノードで使えるのか?残高はどこにどのような形式で保存されるのか?
  2. 受け取ったコインを検証するために、ネットワーク全体のトランザクションログをダウンロードする必要があるのか?
  3. あるノードがハッキング(または改変)され、ユーザーのID(公開鍵)を使ってそのアカウントから送金するという潜在的な状況から、ユーザーはどのように保護されるのか?すべてが全員の間で同期されている場合、それは可能に見える。
  4. トランザクション中に2つのノード間でどのようなデータが正確にやり取りされるのか?(またはソースコードのどこを見ればいいか教えてほしい)
  5. トランザクション手数料についてもう少し詳しく書いてくれないか。なぜ必要で、どのように、どのような場合に使われるのか、など。
  6. ノードリストの分散化の計画はあるのか?(IRCで知ったのだが、Bitcoinは現在、ノードがfreenodeのIRCチャンネルに参加することで接続しており、真に分散化されていないようだ)
  7. ある時点以降、誰も新しいコインを生成できなくなるという理解で正しいか?既存の固定量のコインを使うだけになるのか。

回答に感謝する。

答えられるものに答えてみよう:

Quote from: nixoid on June 10, 2010, 08:38:13 PM

0) ウォレットを持つためにノードを実行する必要があるのか? 特定のノードに紐付けられるのか、それとも例えばフラッシュドライブにウォレットを保管して任意のノードで使えるのか? 口座残高はどこにどのような形式で保存されるのか?

ノードを実行するか、誰か(MyBitcoin.comのような)を信頼してウォレットを預けるかのどちらかだ。

口座残高はwallet.datというBerkeley DBファイルに保存される(どのディレクトリかはOSによる。Macでは~/Library/Application Support/Bitcoin/wallet.dat、Linuxでは~/.bitcoin/wallet.dat、PCについては不明)。

wallet.datを読めるアプリケーションはbitcoinのコードだけで、データベース構造はbitcoinのC++ソースコード以外にはどこにもドキュメント化されていない。 理論的にはいいえだが、軽量な検証を行うコードはまだ書かれていない。 サトシはウォレットデータベースの暗号化を計画しているので、読むためにはパスワードを入力する必要がある。(トランザクションを生成するためには秘密鍵が必要で、それがwallet.datに保存されているものだ) 分からない。 このフォーラムにこれについての別のスレッドがある。「サトシのTODOリスト」スレッドを始めて、人々にボランティアを呼びかけてはどうか。 今後N年間(Nは何年だ、20?)にわたって生成されるコインはますます少なくなる。これはバグではなく機能だ…

自分のバージョンの開発について:既存のC++実装と互換性のある2番目のbitcoin実装を作ることを考えているのか(俺の意見では良いアイデア)? それとも似ているが同じではないシステムを作ることか(俺の意見では悪いアイデア)?

それに賛成だ。トランザクション手数料がうまくスケールしないのではないかという懸念がある。根拠のないものだといいが。

Quote from: nixoid on June 10, 2010, 08:38:13 PM

4) トランザクション手数料について詳しく書いてくれないか:なぜ必要なのか、どのように、どのような場合に使われるのか、など。

トランザクション手数料は、今から何年も先にブロックの価値が低くなった後、ブロック生成のインセンティブを与えるために必要です。また、多くのノードが(わずかな生成速度の恩恵しかないために)生成するブロックにトランザクションを記録しなくなった場合、インセンティブとしてトランザクション手数料を適用できます。

おそらく常に、無料でトランザクションをブロックに含めてくれるノードは存在するでしょうが、多くのノードがそうしない場合は数ブロック待つ必要があるかもしれません。

  1. ビットコインアドレスで送信する場合は何もない
  2. 分散型だ。最初にネットワークに接続した後は、IRCは不要だ。