バージョン 0.3.18
ありがとう。これは単にトランザクション表示の UI の問題なのか、それともクライアントが価値の移転をまったく認識しないのか? もしそのアドレス 179c7kVKJNxJN1TJ8EqcFhzXDAkrMqr2uB がその値を使おうとした場合(クライアントがパッチされてそれを許可するとして)、そのトランザクションは有効として受け入れられるのか?
クライアントは取引の scriptPubKey の解き方を知らない。完全な scriptSig+scriptPubKey を評価することはできるが、scriptPubKey のテンプレートを認識しないため、奇妙な scriptPubKey に一致する scriptSig を生成できない。パッチされたクライアントなら取引を解ける。パッチされていないクライアントは、ブロックチェーンをスキャンする際に非標準の取引を自分のものとして認識すらしない。
クライアントが奇妙な取引を送信する場合、受信側クライアントもそれを受信するように変更する必要がある。その場合は問題ない。
上で述べたタイムスタンプの概念を実装する簡単な方法を思いついた。タイムスタンプしたいファイルに対してsha1sumを実行する。結果をBitcoinアドレスに変換する(例えば
http://blockexplorer.com/q/hashtoaddress経由で)。そしてそのアドレスに少額の支払いを送る。お金は永遠に失われる。さらに使う方法がないからだ。しかしタイムスタンプのBitcoinアドレスはブロックチェーンにファイルの存在の記録として残り続ける。
これはBitcoin分散データベースの良い使い方とは言えないかもしれないが、人々がこれを行うことを止めるものはないので、行われる可能性があることを認識すべきだ。
興味深いアイデアだ。アドレスに変換する必要はない——Bitcoin は内部的にプレーンハッシュを扱うので、ハッシュ出力をそのまま使える。(もちろん、アドレスを使えば既存の Bitcoin バージョンを汎用タイムスタンプサーバーとして使える。)
ネットワークにとっては OP_DROP を使う方がいいかもしれない。<定数> OP_DROP は無関係な情報であることが証明可能なので、Bitcoin の将来のバージョンではスペースを節約するためにその部分の取引の削除を許可するかもしれない。
変更点:
- 0.3.17 からダウングレードして再びアップグレードした場合の wallet.dat 互換性問題を修正
- ブロックに既知のトランザクションタイプのみを含める IsStandard()チェック
- 初回ブロックダウンロードを少し高速化する Jgarzik の最適化
このリリースの主な追加は、Gavin が取り組んできたアカウントベースの JSON-RPC コマンドです(詳細は http://bitcointalk.org/index.php?topic=1886.0)。
- getaccountaddress
- sendfrom
- move
- getbalance
- listtransactions
ダウンロード:
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.18/
これは Bitcoin の更新の中で、すぐに飛びついてダウンロードするのを控えた最初のものだ。ブロック内のトランザクションタイプをチェックするという選択は、必ずしも良いことではないと思うからだ……少なくともコミュニティ内でこの問題に決着がついていない間はな。これはネットワークに影響を与えるが、それは微妙で政治的な形でだ。
少なくともサトシには、純粋な金融データ以外の追加データをトランザクションに入れることについて、自分の見解を表明してほしいものだ。そして思うに、これはスクリプトでいろいろ遊びたい連中と、スクリプトを「純粋」に保ちたい連中との間で軍拡競争を始めさせるだけになるだろう。ここで起きたのは、ただ単に IsStandard() チェックを通過することへの挑戦状を叩きつけたに過ぎない。そのテストを通過しつつ別のデータも含めることのできるトランザクションを見つけ出す、ということだ。
少なくともサトシには、純粋な金融データ以外の追加データをトランザクションに入れることについて、自分の見解を表明してほしいものだ。そして思うに、これはスクリプトでいろいろ遊びたい連中と、スクリプトを「純粋」に保ちたい連中との間で軍拡競争を始めさせるだけになるだろう。ここで起きたのは、ただ単に
IsStandard()チェックを通過することへの挑戦状を叩きつけたに過ぎない。そのテストを通過しつつ別のデータも含めることのできるトランザクションを見つけ出す、ということだ。
ああ、これはほとんど無意味だ。一体全体、なぜマイナーがこの変更を採用するというのだ?非標準トランザクションを失うことで取引手数料が減ってしまうというのに。
ArtForz(ネットワークの 15%以上)、tcatm(2Ghash/s)、doublec(プール管理者)は、IsStandard を使用しないと表明している。したがって非標準トランザクションは依然として可能だ。
時間ができたら、Bitcoin に対してネットワークによって強制されていないトランザクション制限をすべて取り除くパッチを作成するつもりだ。そうすれば、他のマイナーも簡単にこれらのトランザクションを含めるよう設定できるようになる。
Bitcoin のブロックチェーンにデータをエンコードすることは、取引を特別に作成するだけですでに可能であることも考慮してほしい。
あるいは、タイムスタンプと支出の証明(つまり手数料付きの通常の取引)のみを使い、実際のデータストレージは外部サービスに押し出すこともできる。
しかし、取引に 64 バイトか 128 バイトのランダムデータを許可するだけで全員が楽になるのではないか? これらの Bitcoin のサイドバンド利用は、マイニングインセンティブを増やしネットワークのセキュリティを高めることで、ネットワーク全体としてのみ有益だろう。
しかし、取引に 64 バイトか 128 バイトのランダムデータを許可するだけで全員が楽になるのではないか? これらの Bitcoin のサイドバンド利用は、マイニングインセンティブを増やしネットワークのセキュリティを高めることで、ネットワーク全体としてのみ有益だろう。
個人的には nanotube の意見に同意する。特に、やる気があれば標準的なトランザクションに任意のデータをすでに偽装できるという事実を考慮すると。ソースコードは見ていないが、理解している限りでは、はるかに心地よい(政治的にも技術的にも)解決策は次のようなものだろう:
デフォルトで、128 バイト(または合意できる閾値)を超える非標準トランザクションを禁止する?
上記のオプションがなぜ開発者に却下されたのか聞きたい。
Bitcoin トランザクション自体がブロックチェーンの主要な用途であるべきだという点には同意するが、良い通貨は自らを孤立させる必要もない。
法則を提案する:
「チェーンを作った者が、その見た目を決める権利がある」
これと組み合わせれば機能する: 「誰もがブロックを受け入れるか破棄するかを選べる」
ジャンクだらけのブロックで全員がスパムされるのは望まないので、ジャンクを含まない競合するブロックを生成して無効化を試みたい。もちろんジャンクは最終的には入るが、マイナーの大多数がスパムフィルターをオンにしない限り。
この件についてはサトシを完全に支持する。
Bitcoin チェーンにデータを保存する可能性を残すことは、災害が起こるのを待っているようなものだ。誰かが児童ポルノをチェーンにエンコードするのを待つだけだ——それは永遠にそこに残る。そして政府はそれと戦うための完璧なプロパガンダの機会を得る。「普通の」人々は、変質者、マフィア、金融詐欺と関連付けられるなら、Bitcoin をまったく使わないだろう。
新しいトランザクションテンプレートは必要に応じて追加できる。数日以内に、それを受け入れて処理する GPU パワーが十分にあるだろう。ネットワークのサポートは、新しいトランザクションの受信と解釈の方法を理解するクライアントが十分に揃うよりもはるかに前に完全なものになる。
タイムスタンプハッシュはすでに可能だ:
txin: 0.01
txout: 0.00 <appid, hash> OP_CHECKSIG
fee: 0.01
BitDNS のような実際のアプリケーションが実際にハッシュの挿入を開始する準備ができたら、タイムスタンプ用の特定のトランザクションテンプレートをいつでも追加できる。
ハル・フィニーのユーザーフレンドリーなタイムスタンプのアイデアが気に入っている。ファイルのハッシュをビットコインアドレスに変換して 0.01 を送信する:
ハル・フィニーの投稿(2010年12月5日 14:43 UTC)上で述べたタイムスタンプの概念を実装する簡単な方法を思いついた。タイムスタンプしたいファイルに対してsha1sumを実行する。結果をBitcoinアドレスに変換する(例えば
http://blockexplorer.com/q/hashtoaddress経由で)。そしてそのアドレスに少額の支払いを送る。
デフォルトで128バイト(または合意できる閾値)を超える非標準トランザクションを不許可にするのは?
上記のオプションがなぜ開発者に却下されたのか聞きたい。
数ヶ月前、0.3.9 のバグが発見された頃、受け入れ可能な取引タイプのホワイトリスト化の方が、問題を引き起こすことがわかった取引タイプのブラックリスト化よりも良い方法だとサトシに個人的に伝えた。
ユーザーが入力した HTML の
受け入れ可能な取引タイプのホワイトリスト化が正しいことだと今でも確信している。
「開発者によって却下された」については——何も却下されていない! まだサトシと話していないが、任意の追加データを含む第三の「標準」取引タイプのアイデアには前向きだ。その議論を行い、-testnet で実装し、突いてみて、悪用される可能性のあるあらゆる方法を想像してみて、利益とコストを見積もり……一般的なコンセンサスがそれが良いアイデアだと判断されれば、本番環境に展開しよう。
新しいトランザクションタイプをいかに素早く追加できるかに気づいた時、ホワイトリスト方式についてギャビンと同じ考えに至った。
nanotubeの投稿(2010年12月8日 21:19 UTC)Bitcoinのブロックチェーンにデータをエンコードすることは、取引を特別に作成するだけですでに可能であることも考慮してほしい。
それはすでに可能だ。
タイムスタンプハッシュサイズの任意データ用の第 3 のトランザクションタイプもサポートする。すでにできるのだから、持たない理由はない。ノードにインデックスを作成する必要がないことを伝えることになる。
誰かが児童ポルノをチェーンにエンコードする日を待っているがいい――それは永遠にそこに残ることになる。
残念ながら、その手の悪用を完全に防ぐことは不可能だ。
例えば、送金額の小数点以下の数字に情報をエンコードしたり、「バニティプレート」のビットコインアドレスに情報をエンコードすることもできる。
jpeg や mpeg のファイルには現実的ではないだろうが、Blu-Ray キーのような他の低帯域の「違法データ」については、遅かれ早かれ起こることだろう。
「低帯域の児童ポルノ」ですら、いつか俺たちにとって大きな問題になりうる。世界中で、法律は毎年より過酷なものになっていて、国によっては「間違った」種類のフィクションや詩ですら、裁判所によって児童ポルノと見なされ違法とされている。
タイムスタンプハッシュサイズの任意データ用の第 3 のトランザクションタイプもサポートする。すでにできるのだから、持たない理由はない。ノードにインデックスを作成する必要がないことを伝えることになる。
そう、既に可能ではある。だが、メインの bitcoin チェーンを汎用データストレージとして使うことを奨励するのは残念なことだ。
大量のユーザーが非通貨データのユーザーになれば、通貨用途のユーザーは遅延の長期化、コスト増、無料トランザクションを送れる余地の縮小に直面することになる。これらの要因によって、通貨ユーザーは bitcoin を使うのを敬遠するようになる。
自由市場の素晴らしさを語る連中は皆、現在は独占された市場が一つしか存在しないことを都合よく省略する――それがメインラインチェーンだ。これは複数の市場(=複数のチェーン)と比較して競争の低下を意味し、誰もがメインチェーンに自分のデータを押し込むことで共有地の悲劇を招く。
データストレージを奨励する代替チェーンがあれば、データユーザーにとってより良いサービスを提供でき、メインチェーンは通貨ユーザーにより良いサービスを提供できるようになる。
ShadowOfHarbringerの投稿(2010年12月9日 13:51 UTC)誰かが児童ポルノをチェーンにエンコードする日を待っているがいい――それは永遠にそこに残ることになる。
残念ながら、その手の悪用を完全に防ぐことは不可能だ。 例えば、送金額の小数点以下の数字に情報をエンコードしたり、「バニティプレート」のビットコインアドレスに情報をエンコードすることもできる。
もちろんそうだ。だが俺の言いたいことはそこじゃない。 俺の言いたいのは、もし Bitcoin プロトコルが設計上、追加データを保存できるようになっていたら、政府は「追加データ(児童ポルノを含む)を保存できる――プロトコルがそう設計されており、デフォルトクライアントもそれを許可している」と論じる材料を得る、ということだ。
デフォルトクライアントからこの可能性を取り除くことで、その論拠を奪うことができ、Bitcoin は「児童ポルノ・プロパガンダ攻撃」に対してずっと耐性を持つようになる。
新しいトランザクションテンプレートは必要に応じて追加できる。数日のうちには、それを受け入れて処理する十分なGPUパワーが集まるだろう。新しいトランザクションを受信して解釈する方法を理解するクライアントが十分に揃うよりずっと前に、ネットワークのサポートは徹底されるはずだ。
ホワイトリスト方式には賛成だ。これによりジェネレータは何を受け入れ何を拒否するかをより選別できるようになる。とはいえ、まともな BitDNS 実装のテンプレートがリリースされたら、すぐに自分のジェネレータのホワイトリストに追加するつもりだ。
サトシ・ナカモトの投稿(2010年12月9日 15:17 UTC)私はタイムスタンプハッシュサイズの任意データ用に第3のトランザクションタイプを設けることにも賛成だ。どうせ既にできてしまうのだから、用意しない理由はない。これがあれば、ノードに対して「インデックス化する必要はない」と伝えることができる。
そう、既に可能ではある。だが、メインのbitcoinチェーンを汎用データストレージとして使うことを奨励するのは残念なことだ。
大量のユーザーが非通貨データのユーザーになれば、通貨用途のユーザーは遅延の長期化、コスト増、無料トランザクションを送れる余地の縮小に直面することになる。これらの要因によって、通貨ユーザーはbitcoinを使うのを敬遠するようになる。
自由市場の素晴らしさを語る連中は皆、現在は独占された市場が一つしか存在しないことを都合よく省略する――それがメインラインチェーンだ。これは複数の市場(=複数のチェーン)と比較して競争の低下を意味し、誰もがメインチェーンに自分のデータを押し込むことで共有地の悲劇を招く。
データストレージを奨励する代替チェーンがあれば、データユーザーにとってより良いサービスを提供でき、メインチェーンは通貨ユーザーにより良いサービスを提供できるようになる。
ビットコインをタイムスタンプとして使うことについて……
現在、金(ゴールド)は採掘でき、通貨として使える。また、特殊な性質を持つために、宝飾品の製造や回路基板の作成などにも使うことができる。したがって、金には複数の用途があり、それが価値を高めている。現時点では、ほとんどの人がビットコインは通貨としてしか使えないと考えている。だが、もし人々がビットコインを使って自分の仕事にタイムスタンプを刻み始めたら、すべてのビットコインは複数の用途を持つようになるため、実際に本質的な価値が高まることになる!ビットコインは実は通貨としてだけでなく、タイムスタンプを刻む能力も持っているのだ。科学者たちが金の導電性を利用したのと同じように、誰かがこのビットコインの特殊な性質を利用できれば、ビットコインは別の方向に飛躍し、その価値はさらに高まるかもしれない。タイムスタンプの性質を使った画期的なアプリケーションが、まだ発見されないまま待っているのではないだろうか???