Quote from: da2ce7 on December 10, 2010, 12:10:07 AM
Quote from: satoshi on December 09, 2010, 10:46:50 PM
Quote from: nanotube on December 09, 2010, 09:20:40 PM
Quote from: satoshi on December 09, 2010, 09:02:42 PM
BitDNSが完全に別のネットワークと別のブロックチェーンでありながら、BitcoinとCPUパワーを共有できるようにすることは可能だと思う。唯一の重複は、マイナーが両方のネットワークのプルーフ・オブ・ワークを同時に検索できるようにすることだ。
ネットワーク間の調整は不要だ。マイナーは両方のネットワークに並行して接続する。ヒットを得た場合、潜在的に両方を同時に解決するようにSHAをスキャンする。一方のネットワークの難易度が低い場合、その片方のネットワークだけの解決になるかもしれない。
外部マイナーが両方のプログラムでgetworkを呼び出し、作業を組み合わせることができると思う。例えばBitcoinを呼び出し、そこから作業を取得し、BitDNS getworkに渡して組み合わせた作業にするとか。
断片化する代わりに、ネットワークは互いの合計CPUパワーを共有し強化する。これは、複数のネットワークがある場合に利用可能なCPUパワーが1つのネットワークに集中すると互いに危険になるという問題を解決する。代わりに、世界中のすべてのネットワークが合算されたCPUパワーを共有し、全体の強度を高める。小さなネットワークが既存のマイナーの基盤を活用して容易にスタートできるようになる。
理論的には素晴らしく聞こえる……
マイナーは基本的に「追加の作業」をしなければならないようだ。追加の作業からBitDNSマイニングの報酬がなければ(もちろんメインのBitcoin作業を遅くする)、マイナーがBitDNS(およびその他のサイドチェーン)を含めるインセンティブは何だろう?
この件についてのさらなる考えをぜひ聞きたい。Smiley
インセンティブは、同じ作業で追加のサイドチェーンからも報酬を得ることだ。
ビットコインを生成している間に、同じ作業で無料のドメイン名も得られるのに、なぜそうしないのか?
現在週に50 BTCを生成しているなら、50 BTCに加えていくつかのドメイン名も得られる。
1つの作業単位がある。それを解けば、BitcoinとBitDNSの両方のブロックを解決する。概念的には、Merkle Treeで結び付けられている。Bitcoinに提出するにはBitDNSのブランチを切り離し、BitDNSに提出するにはBitcoinのブランチを切り離す。
実際には、Bitcoinに後付けするために、BitDNS側にはおそらく約200バイトの余分が必要だが、大したことではない。1ブロックあたり50ドメインの話をしているが、後方互換性のための1ブロックあたり200バイトは些細なものだ。十分に気にするなら、将来のブロックでBitcoinがMerkle Treeを上位に持つ近代化された配置にアップグレードするスケジュールを組むこともできる。
チェーンはこの新しいMerkle Treeの下にあることに注意してほしい。つまり、BitcoinとBitDNSそれぞれが自分のブロック内に独自のチェーンリンクを持つ。これは一般的なタイムスタンプサーバーの配置とは逆で、通常はチェーンが上にあってその下にMerkle Treeがあり、1つの共通のマスターチェーンを作る。これはチェーンを共有しない2つのタイムスタンプサーバーだ。
あなたのアイデアを完全に理解しようとしている最中だ。BitDNSをトランザクション手数料経由でBitcoinのブロックチェーンに組み込むアイデアが気に入った主な理由は、Bitcoinを使ったBitDNSへの非常に包括的な経済的支援を提供し、Bitcoinの価値と有用性を高めるからだ。
サトシのモデルでは、BitDNSコインとBitcoinの両方が同じブロックで生成され、両方が商品として取引可能になる。問題だと思うのは、ドメイン名の価値はその名前、登録費用、帯域幅/コンピュータコストから来ているのであって、数の希少性からではないということだ。
nanotubeとtheymosの提案では、BitDNSを作成する実際のコストはトランザクション手数料によって_自動的に_支払われ、二次市場を作る必要がない。チェーンにはいくつでもドメイン名が含まれ、生成者はそのサービスの提供に対してBitcoinで補償される。 Quote from: satoshi on December 09, 2010, 10:46:50 PM Quote from: nanotube on December 09, 2010, 09:20:40 PM
Quote from: satoshi on December 09, 2010, 09:02:42 PM
BitDNSが完全に別のネットワークと別のブロックチェーンでありながら、BitcoinとCPUパワーを共有できるようにすることは可能だと思う。唯一の重複は、マイナーが両方のネットワークのプルーフ・オブ・ワークを同時に検索できるようにすることだ。
ネットワーク間の調整は不要だ。マイナーは両方のネットワークに並行して接続する。ヒットを得た場合、潜在的に両方を同時に解決するようにSHAをスキャンする。一方のネットワークの難易度が低い場合、その片方のネットワークだけの解決になるかもしれない。
外部マイナーが両方のプログラムでgetworkを呼び出し、作業を組み合わせることができると思う。例えばBitcoinを呼び出し、そこから作業を取得し、BitDNS getworkに渡して組み合わせた作業にするとか。
断片化する代わりに、ネットワークは互いの合計CPUパワーを共有し強化する。これは、複数のネットワークがある場合に利用可能なCPUパワーが1つのネットワークに集中すると互いに危険になるという問題を解決する。代わりに、世界中のすべてのネットワークが合算されたCPUパワーを共有し、全体の強度を高める。小さなネットワークが既存のマイナーの基盤を活用して容易にスタートできるようになる。
理論的には素晴らしく聞こえる……
マイナーは基本的に「追加の作業」をしなければならないようだ。追加の作業からBitDNSマイニングの報酬がなければ(もちろんメインのBitcoin作業を遅くする)、マイナーがBitDNS(およびその他のサイドチェーン)を含めるインセンティブは何だろう?
この件についてのさらなる考えをぜひ聞きたい。Smiley
インセンティブは、同じ作業で追加のサイドチェーンからも報酬を得ることだ。
ビットコインを生成している間に、同じ作業で無料のドメイン名も得られるのに、なぜそうしないのか?
現在週に50 BTCを生成しているなら、50 BTCに加えていくつかのドメイン名も得られる。
1つの作業単位がある。それを解けば、BitcoinとBitDNSの両方のブロックを解決する。概念的には、Merkle Treeで結び付けられている。Bitcoinに提出するにはBitDNSのブランチを切り離し、BitDNSに提出するにはBitcoinのブランチを切り離す。
実際には、Bitcoinに後付けするために、BitDNS側にはおそらく約200バイトの余分が必要だが、大したことではない。1ブロックあたり50ドメインの話をしているが、後方互換性のための1ブロックあたり200バイトは些細なものだ。十分に気にするなら、将来のブロックでBitcoinがMerkle Treeを上位に持つ近代化された配置にアップグレードするスケジュールを組むこともできる。
チェーンはこの新しいMerkle Treeの下にあることに注意してほしい。つまり、BitcoinとBitDNSそれぞれが自分のブロック内に独自のチェーンリンクを持つ。これは一般的なタイムスタンプサーバーの配置とは逆で、通常はチェーンが上にあってその下にMerkle Treeがあり、1つの共通のマスターチェーンを作る。これはチェーンを共有しない2つのタイムスタンプサーバーだ。
問題は、トランザクション手数料を受け取るマイナーはただ棚ぼたを得ているだけだということだ。手数料はスパマーを排除するために存在するかもしれないが、DNSシステムに関連する作業は一切していない。生のデータを処理し認証するコンピュータには一切の手数料が支払われず、生成者はBitcoinで補償されていない。起きていることは、マイナーが本質的にデータストレージサービスとして支払われているだけであり、それは私の意見では限定的な有用性しかない。
これが、Bitcoinのブロックチェーンを汎用データストレージシステムとして使うことに対する大きな不満がある理由でもある。当然のことだと思う。
Quote from: ribuck on December 10, 2010, 12:21:34 PM
[編集:この投稿は気にしないでくれ。自分の考えをここではうまく表現できなかった。]
ドメイン名登録用に別のブロックチェーンがあり、Bitcoinで支払いを受けたいとする。
foo.domainを登録するために、購入者は標準のBitcoinシステムを使って10 BTCを支払い、次にもう一方のシステムでドメイン名を請求する。しかし、支払いが行われたことをどう知るのか?10 BTCの支払いが自分からのものであることは暗号学的に証明できるが、その支払いがドメイン名のためだったことは証明できない。同じ支払いを使って複数の別々のサイトからサービスを請求しているかもしれない。
したがって、BitcoinにはトランザクションIDをBitcoin支払いに関連付ける方法が明らかに必要だ。トランザクションID(例えば64文字)を含められるなら、ドメイン名の詳細をそのままトランザクションIDとして使えばいい(十分に短いからだ)。その場合、別のドメイン名登録チェーンは不要になる。
ドメイン登録は、不特定のマイナーへのBitcoin支払いであり、そのトランザクションIDがたまたま意味を持つというだけのことだ。
少しの間、ドメインデータだけを含む別のブロックチェーンがあると仮定しよう。暗号的にハッシュされているが、Proof of Workがあるかないかは別として(後述する)。このブロックチェーンの目的は主にデータの認証であり、ドメインサーバーの「ネットワーク」がチェーン内のデータがネットワークルールに適合し、誰がどのドメインを「所有」しているかについて有効であることを「認証」できる。公開ブロックチェーンとして、ネットワークの多数派がそのチェーンに何が入るべきかについて合意していることも示す。不正にフォーマットされたデータは多数派が同意しなければ拒否される。チェーンであるため改ざんに対する検証とタイムスタンプも行い、さらに重要なことに、メインのBitcoinチェーンの外にあることで、すべてのBitcoinユーザーが必ずしも関心を持つわけではない専門サービスのデータ負荷を軽減する。これらはBitcoinのトランザクションデータベースの機能であり、他のデータセットにも適用したいと望まれているものだ。
ここまでは簡単な部分だ。また、このチェーンにデータを入れる「レジストラ」がシステムの登録と認証のために「支払い」を受けるシステムも構築したい。これはレジストラとして存在する理由にもなり(レジストラとして存在すること自体がデータベースを維持する強い経済的利害を持つ)、ドメイン名のスパムや公共財の濫用を削減するための手数料の理由も提供する。手数料はデータベースの維持のために支払われるものであり、これが重要だ。この手数料なしでは、せいぜいこのデータベースは無料の公共サービスとして認証され世界に提供される。それを好む人もいるだろうが、Bitcoinプロジェクトに関わる人は、そのようなサービスに対して報酬が支払われることがいかに有用で動機付けになるかを理解できると期待する。theymos/nanotubeの提案や、トランザクション内の追加データによるBitcoinデータベースへのすべての登録は、認証を無視してBitcoinのタイムスタンプ機能のみを使用することでこの問題を完全に回避しており、このデータベースはいずれにしてもBitcoinから派生して構築されなければならないが、無料の公共サービスとして提供される。
しかし、ここに本当の問題がある:中央サーバーがないため、登録者は自分の登録が、ブロックチェーンに次のレコードを入れる順番のレジストラ(Proof of Workであれ他の合意されたシステムであれ)によって確実に入力されることを望む。その認証者が受け取れる何らかの汎用トランザクションを送信したい。登録がブロックチェーンに受け入れられた場合にのみ、その認証者に支払われるべきだ。
ここに問題が生じる:Bitcoinマイナーは登録者からの手数料が利用可能であることを知るかもしれないが、それらのコインが適切にどこに帰属するかをどう決定するか?一度Bitcoinで手数料が処理されると、それは不可逆だ。フォーマット/認証の紛争でドメインレコードにチェーン分裂があった場合(Bitcoinでさえ今起きているように、おそらく起こるだろう)、それらのBitcoinトランザクションは、実際にはネットワークの多数派がそのドメイン登録ブロックを無視したために登録を完了させなかった認証者に向かっている可能性がある。別のレジストラが善意でその登録を拾って別のブロックに含めるかもしれないが、そのサービスに対する手数料は一切受け取らない。手数料を受け取り、ドメインレジストリにデータを入れるふりをしながらドメインレジストリのプロトコルには無関心で、Bitcoinマイナーと共謀して手数料を自分のものにする荒らしが常にいるだろう。「正直な」レジストラでも、バグなどでこのシステムの下では稀に手数料を取得してしまうことがある。
手数料システムはこのドメイン登録システムの成功に不可欠だと考える。それによりレジストラの利己的な行動が保証され、データベース、コンピュータ機器、その他すべてを維持することが自己利益になる。ドメインネームサーバーがコインを稼ぐ他の方法もあり得るが、登録手数料はすでに市場の一部であり、このシステムが獲得しようとしているものでもある。
要するに、認証は完全に別の通貨で行われなければならないか、あるいはデータの認証(単なるタイムスタンプではなく)がBitcoinクライアント内で行われ、そのデータが何らかの形でBitcoinブロックチェーンにより直接的に含まれ、マイナー自身がデータを認証する必要があることを示そうとしている。Bitcoinマイナーはドメインデータの処理を選ばないかもしれないが、ドメインデータを含む特定のブロックが登録手数料を「獲得」するためにブロックチェーンに受け入れられる何らかの認証基準を満たしていることを認証できるシステムを構築する必要がある。そうでなければシステムは崩壊し、Bitcoinマイナーだけに支払われる純粋なトランザクション手数料以外の手数料の話はすべて無意味であり、そのトランザクションはトランザクションデータベースの保持のためにのみ使われる。
また、登録の即時性を確保するためにも、別の通貨である必要があるかもしれない。すべてのマイナーがドメイン登録の認証に関わりたいわけではなく、時間の経過とともに、Bitcoinネットワークの設定やマイナーの他の優先事項に応じて、ドメイン登録をシステムに入れるまでの遅延が耐えられないほど長くなる可能性がある(数日または数週間のオーダー)。別の通貨を提案するのは、このプロジェクトをBitcoinから無用なデータとして追い出すためではなく、P2Pドメインサーバーのコンセプトの目標の観点からも実行不可能だということを指摘するためだ。トランザクション内にデータを入れることは認証ではなく、認証に関してBitcoinが提供するものの多くの力も失う。Bitcoinが使用するProof of Workシステムは、次のブロックを入れる権利を決定する際にシステムの分散化を確保する唯一の合理的な方法でもある。確かに複数の通貨間で共通のマイニングプールを通じて次のProof of Workハッシュを見つける何らかの共通プロトコルを設定できるが、それは別の通貨にするかどうかとは完全に別の問題であり、このスレッドでは決定されていないと思う。
唯一の他の解決策は、Bitcoinがこれや将来登場するかもしれない同様のコンセプトを完全に受け入れ、メインのBitcoinネットワーク上でこの性質のデータを認証するためのフックと何らかの標準プロトコルを提供することだ。理論的にはそれは可能であり、通貨の増殖を「統合」する意味ではより遠い将来に行われるかもしれない。ただし、それがすぐにメインのBitcoinチェーンに組み込まれるとは思えないし、完全には探っていないが多くの欠点もある。