Bitcoin に関する質問
こんにちは、昨日この素晴らしい決済手段に出会った。
多くのサイトを読み漁ったが、いくつか回答が得られなかった質問がある。
-
ビットコインは本当に匿名なのか?完全に、そして完璧に?ISP は私がビットコインの支払いを送受信したことを検知できるのか?もしかすると、私が今ビットコインを実行していることまで分かるのか?
-
正しく理解しているなら、取引相手は私が誰かを知ることができない。つまり、相手は私の実際の IP アドレスを見ることができず、ビットコインアドレスしか分からないのか?相手がネットワーク接続などを監視していたとしても?
-
もし ISP がビットコインの実行を検知できたり、取引相手が私の IP を特定できる方法があるなら、ネットワークトラフィックを VPN(例えば Paysafecard で支払ったもの)でトンネルする方が安全だろうか?VPN プロバイダーが支払いをキャプチャできるため、これは危険だろうか?
-
「お金」を失わないためにどのファイルをバックアップすべきか?wallet.dat だけか、それとも Bitcoin の AppData ディレクトリ全体か?
-
ウォレットを複製して異なるマシンで使用することはできないのか?そうすれば何もせずにお金を倍にできることになる。このケースに対するセキュリティ対策はあるのか?
-
誰かがウォレットを紛失した場合、失われたコインをシステム内で再生成する方法はあるのか?さもなければ、2100 万枚という上限は正しくなくなる。 (個人のために失われたコインを回復するという意味ではなく、2100 万枚すべてが生成された後に、誰かが 100 万枚入りのウォレットを紛失した場合、他の参加者はその 100 万枚を新たに生成できるのか、それともビットコインネットワークから完全に失われるのか?)
-
現在約 13 万ブロックが存在すると読んだ。私の PC では約 2 万 4 千しか表示されない。何か問題があるのか、それとも正常な動作なのか?
-
ビットコインの生成について完全には理解できなかった。平均して 24時間にマシンはいくつのコインを生成するのか?
-
ポート 8333 をビットコイン実行マシンにフォワードすべきだと知った。これは TCP なのか UDP なのか?そして、このポートはコインの生成に必要なのか?それとも支払いトランザクションのためだけなのか?
-
ビットコインのソースコードは誰でも閲覧可能だと知った。これは実際の危険になりうるのか?コードが改変されれば、他の人よりも多くのビットコインを生成できてしまうのではないか?これは重大なセキュリティ上の欠陥となる。
-
一定期間に生成されるコインの数を計算する式を見たことがある。最大 CPU 速度と利用可能なリソースに関係していた。もう見つからないので、コインの生成について説明してほしい。低速なマシンはハイエンドマシンと同じだけのコインを生成するのか?
-
New Liberty Standard 以外に交換システムや取引相手はあるのか?
-
システムがクラッシュした場合はどうなるのか?ウォレットは自動的に保存されるのか、それともビットコインが手動で閉じられたときだけか?(コインが生成されたり支払いが行われたりしたときにリアルタイムで保存されるのか?)
-
これまでに何枚のビットコインが生成されたか確認する方法はあるのか?そしてビットコインはどれくらい前からあるのか?
質問が多いのは分かっているが、このサービスに本当に興味があり、より頻繁に使い始める前にすべてを知りたいのだ。
(英語が下手で申し訳ない……)
2014年10月31日編集: 文法とタイプミスの修正
1-3: そのレベルの匿名性を得るには、TOR 経由で接続する必要がある。これはバージョン 0.2 で可能になり、あと数週間でリリースされる。その際に TOR の使用方法を投稿する。
4: バージョン 0.1.5:%appdata%\Bitcoin ディレクトリ全体をバックアップしてほしい。 バージョン 0.2:wallet.dat だけをバックアップすれば大丈夫だ。
5: いいえ。設計全体がそれを防ぐためのものだ。
6: それらのコインは二度と回復できず、総流通量は減少する。実効流通量が減少するため、残りのすべてのコインの価値はわずかに上昇する。政府が紙幣を増刷して既存の貨幣の価値が下がるのとは逆だ。
7: 現在 29,296 ブロックだ。流通量はブロック数×50 なので、現在の流通量は 1,464,800 BC だ。
24,000 ブロックしかないなら、初回ブロックダウンロードが完了していないのだろう。Bitcoin を終了して再起動してほしい。バージョン 0.2 は初回ブロックダウンロードがより良く/速くなっている。
8: 現在は通常、数百程度だ。今は簡単だが、ネットワークが成長するにつれて難しくなっていく。
9: 良い質問だ。TCP だ。ウェブサイトを TCP ポート 8333 と記載するように更新する必要がある。
ポートフォワーディングは、他のノードがあなたに接続できるようにするためのものなので、より多くのノードと接続できるため、接続を維持するのに役立つ。IP アドレスによる支払いを受け取るためにも必要だ。
10: いいえ、他のノードはそれを受け入れない。
オープンソースであるということは、誰でもコードを独立して確認できるということだ。クローズドソースだったら、セキュリティを誰も検証できない。この種のプログラムにとって、オープンソースであることは不可欠だと思う。
11: 遅いマシンはより少ないコインを生成する。CPU 速度に比例する。
12: さらに追加される。
13: Berkeley DB と呼ばれるトランザクションデータベースを使用している。システムクラッシュでもデータを失わない。トランザクションは受信時に即座にデータベースに書き込まれる。
14: 今のところ、総ブロック数に 50 を掛ければよい。Bitcoin ネットワークはほぼ 1年間稼働している。設計とコーディングは 2007年に始まった。
おお、詳しい回答をありがとう。
しかし今日、もう一つ疑問が浮かんだ。
隣人が Bitcoin を使っていることが分かっていて、近いうちに支払いを受け取ることも分かっているとする(例えばネットショップを運営していて Bitcoin を支払いオプションとして受け付けている場合)。
さらに、その隣人が WLAN を使っていて、ネットワークが保護されていないか弱い保護しかされていないことも分かっている。ルーターの設定も同様だ。
その場合、ルーターの設定にログインして、ポート 8333 のフォワード先 IP アドレスを自分のシステム IP に変更できる。 そうすれば、すべての支払いが自分の Bitcoin クライアントで受信されることになる。
これは実際に機能するのだろうか?
極めて犯罪的で、このシナリオは…まあ「一般的ではない」と呼ぶべきだが、理論的には機能するはずだよな? (人に害を与えることに興味があるわけではないが、犯罪者はあらゆる方法で金を得ようとすることは分かっている。)
余談:LAN パーティで保護されていないルーター設定がある場合も同様のことができるはずだ。
追記:あるいは、どの IP アドレスがそのポートを使っていようと、支払いは支払い者が指定した Bitcoin アドレスまたは IP アドレスに送られるため、これらのシナリオはまったく不可能なのだろうか?
その通りだ。IP 送信オプションを使用する場合、その IP に応答する相手に送信することになる。Bitcoin アドレスへの送信にはその問題はない。
計画としては、IP + Bitcoin アドレスのオプションを実装し、両方の利点を兼ね備えるようにすることだ。各トランザクションごとに異なるアドレスを使用するが、受信者は指定された Bitcoin アドレスでワンタイムアドレスに署名し、意図された受信者に属していることを証明する。