今回はCoinSpark Assetsのイントロダクションを訳してみる。

CoinSpark Assets

CoinSparkはbitcoinネットワークへのweb-backedなアセットの発行や取引を実現します

CoinSparkアセットはColored Coinsファミリーの一員であると言えますが、CoinSparkではbitcoinの単位では直接は色づけられていません。その代わりbitcoinトランザクションのそれぞれの出力には、通常のbitcoinと共に、単一もしくは複数のCoinSparkアセットの数量を含むことができます。トランザクションの出力が他のトランザクションの入力によって’使用された’時、特定のCoinSparkアセットの全ての単位はbitcoinと共に新しいトランザクションに流れ込むとともに、添付された1任意の転送メタデータに一致する(新しいトランザクションの)アウトプットの間で分配されます。

CoinSparkプロトコルは特にスケーラビリティとユーザビリティを考慮して設計されています。設計の基本原則の一つは アセットの独立性(independence) であり、これはある特定のCoinSparkアセットの動きは他のアセットの動きとは無関係にbitcoinのトランザクションを横断して追跡できるということを意味します。もう一つの基本原則は アセットの発見容易性(discoverability) であり、これはCoinSparkワレットのユーザはあらゆる種類のアセットを単一のアドレスで受け取ることができ、そのワレットはやって来た新しい種類のアセット自動的に読み込み/認識するということです。さらに詳しくはBitcoin Colorsホワイトペーパーに書かれています。

新しいCoinSparkアセットは、OP_RETURNジェネシス(起源)メタデータを含むbitcoinトランザクションによって生成されます。このメタデータは、キーパラメータの個数と共に、発行した単位数、トランザクション手数料、アセットのWebページのURL、そしてプルーフ・オブ・コントラクトとしてのアセットハッシュをエンコードしたものです。もしこのジェネシスメタデータが正当であれば、必要数を生成するために、非OP_RETURNの全ての出力(最後を除く)にある同数のアセットが’デポジット2され’ます。一度ジェネシストランザクションがブロックチェーン上でコンファームされると、そのトランザクションが生成したアセットはアセット参照により簡潔に参照できます。

デフォルトでは、あるトランザクションの入力に存在する全てのCoinSparkアセットは、そのトランザクションの最後の非OP_RETURN出力へと流れこみます。しかしあるトランザクションがOP_RETURN転送メタデータを含み、かつその転送が正当である場合、このデフォルトの振る舞いを、あるアセットのいくつかの単位数が特定の入力から特定の出力へと送られるように変更することができます。CoinSparkプロトコルは高効率のエンコード方法を採用しているため、OP_RETURNの40byte制約の中でもこのような多数の転送を表現することができます。

全てのCoinSparkアセットはWebページを持ち、そのURLはアセットを生成したトランザクションのジェネシスメタデータにより与えられます。Webページは通常のWebブラウザによって表示できるだけでなく、JSON形式のアセットに関するマシンリーダブルな情報を含みます。そのJSONには、アセットの発行者その保持者の間の法的な関係を定義する契約へのリンクがあります。いくつかのJSONフィールドは、契約の中身とともにアセットハッシュの算出に使われます。このハッシュはジェネシスメタデータの中に埋め込まれ、契約の発行者がその発行後にアセットの重要な法的位置づけを変えられないことを保障する役割を担います。

特定のbitcoinトランザクションの出力にある特定のCoinSparkアセットの数量を知るため、そのアセットの起源からの履歴はそれが取引されたトランザクションの全てに渡って追跡できることが求められます。 なぜなら通常のbitcoinノードはCoinSparkプロトコルを知らないため、アセットの数量の検証や追跡を直接ノードに委任できないためです。仮にbitcoinワレットが全てのブロックチェーンをダウンロードし、全ての情報を持っていても、大変時間のかかる処理であることは承知の上で3ワレットはこの計算を行う必要があります。それ故にCoinSparkは全てのアセット発行者に対して、アセットWebページのJSONの中に一つ以上の追跡サーバのアドレスを提供することを求めます。追跡サーバは、ネットワークに対して発行されたトランザクションについて出力のアセットの収支を計算し、その収支に関するワレットからの要求に対して応答します。発行者はasses[1|2|3].coinspark.orgにある無料の追跡サーバを自由に利用できます。また我々は自分自身でアセット追跡サーバを立ち上げたい発行者のために、オープンソースのサーバを提供しています。

1.添付が何を指すのかわかってない。
2.デポジットとそのまま訳したが、どういう状態を指しているのかが分からないので、適切なのかどうか判断がつかない。
3. ..., it has all the information it needs to perform this calculation, ... の部分をどう切ったらいいか分からない。なんとなく感覚で訳した。

脱線

冒頭で web-backed と謳ってる通り、CoinSparkにはアセットの発行者や送信者が指定するサーバを補完的に使うという思想が見受けられる。 ただ、サーバへのDDoSやなりすましなどによる攻撃も可能そうなので、信頼性をどう担保しているのか知りたい所。まあ、後者はSSLを使え!で済む話かもしれないけど。

これからはもう少し詳細にはいっていきます。