読者です 読者をやめる 読者になる 読者になる

bitcoinのアドレスについて[和訳]

例によってあんまり日本語で転がってなかった情報のbitcoin wikiの和訳シリーズ。Bitcoinクライアントをダウンロードして使ってみたらアドレスが沢山あってどういう仕組みかわからなかったので勉強がてら翻訳してみた。

      • -

Address - Bitcoin Wiki

Bitcoinアドレス、もしくは単にアドレス、は数字1か3から始まる、英数字26-35文字の識別子であり、あり得るBitcoin支払の宛先を表す。アドレスはいかなるBitcoinユーザもコスト無しに作ることができる。例えば、Bitcion-Qt (訳者注: Bitcoinのクライアント名) を使うと、「New Address」を一回押すとアドレスが一つ割り当てられる。Bitcoinアドレスは取引所やオンラインウォレットサービスのアカウントを用いても作ることができる。

Bitcoinアドレスの一つの例は 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy である。

  1. Bitcoinアドレスは使い捨てトークンである

Emailアドレスのように、あなたはBitcoinをアドレスのうち一つに送ることでBitcoinを人に送ることができる。しかしながら、Emailアドレスとはことなり、人は沢山の異なるBitcoinアドレスを持ちそれぞれの取引でユニークなアドレスが用いられるはずである。ほとんどのBitcoinソフトウェアやウェブサイトであなたが請求や支払リクエストを行うたびに真新しいアドレスを利用できるようになっている。

  1. アドレスはオフラインで生成できる

アドレスの生成はインターネット接続無しに行うことができ、Bitcoinネットワークとの接続や登録も求められない。無料で入手できるソフトウェアツールを使って大量のアドレスの束をオフラインで作ることも可能である。大量のアドレス束を生成することは、eコマースウェブサイトとしてあらかじめ生成したユニークなアドレスを「Bitcoinで支払う」オプションを選択したそれぞれの顧客に分配するなど幾つかのシナリオで有用である。最近の「 決定論的ウォレット(HD wallets) 」は(Webサーバのような)信頼できないシステムに受け取ったBitcoinを消費させることなく限りない数のアドレスを作らせられるように「シード」となるトークンを生成することができる。

  1. アドレスはケースセンシティブで厳格である

Bitcoinアドレスはケースセンシティブ(大文字/小文字を区別する)である。Bitcoinアドレスはどこであれれ可能であればコンピューターのクリップボードを用いてコピー、ペーストするべきである。もしBitcoinアドレスを手写し、それぞれの文字が厳密にー大文字小文字含めてー書き写されなかったら、間違ったアドレスはBitcoinソフトウェアによって大抵は拒否されるだろう。もう一度自分の入力を確認しもう一度試さなければならないだろう。

ミスタイプしたアドレスが妥当であるとして受理される可能性は1/2^32であり、おおよそ429万回に1回である。

  1. あるアドレスであなたが受信することを示す

ほとんどのBitcoinウォレットはメッセージに「署名」する機能を持っており、そのアドレスで資金を受け取った存在がメッセージに賛成したことを示すことができる。

特定のアドレスを認可専用とし、そのアドレスが実際のBitcoin取引に決して利用されることがないようにすることでこの能力に便乗するサービスも出てくるだろう。あなたがこういったサービスにログイン、もしくは使用しようとするときには、あなたが前に署名したアドレスを持った人と同一であることを署名を提供して示すことになるだろう。

これらの署名はあるアドレスが受け取ることを示すだけであるということは重要な留意すべきことである。というのはBitcoin取引は"from"アドレスを持っておらず、あなたが資金の送り元であることを示すことはできないからである。

Current standards for message signatures are only compatible with "version zero" bitcoin addresses (that begin with the number 1).
現在のメッセージ署名の標準は「バージョンゼロ」Bitcoinアドレス(番号1から始まる)のみと互換性がある。

  1. アドレスの検証

If you would like to validate a Bitcoin address in an application, it is advisable to use a method from this thread rather than to just check for string length, allowed characters, or that the address starts with a 1 or 3. Validation may also be done using open source code available in various languages or with an online validating tool.

  1. Multi-signature addresses

Addresses can be created that require a combination of multiple private keys. Since these take advantage of newer features, they begin with the newer prefix of 3 instead of the older 1. These can be thought of as the equivalent of writing a check to two parties - "pay to the order of somebody AND somebody else" - where both parties must endorse the check in order to receive the funds.

The actual requirement (number of private keys needed, their corresponding public keys, etc.) that must be satisfied to spend the funds is decided in advance by the person generating this type of address, and once an address is created, the requirement cannot be changed without generating a new address.

  1. What's in an address

Most Bitcoin addresses are 34 characters. They consist of random digits and uppercase and lowercase letters, with the exception that the uppercase letter "O", uppercase letter "I", lowercase letter "l", and the number "0" are never used to prevent visual ambiguity.

Some Bitcoin addresses can be shorter than 34 characters (as few as 26) and still be valid. A significant percentage of Bitcoin addresses are only 33 characters, and some addresses may be even shorter. Every Bitcoin address stands for a number. These shorter addresses are valid simply because they stand for numbers that happen to start with zeroes, and when the zeroes are omitted, the encoded address gets shorter.

Several of the characters inside a Bitcoin address are used as a checksum so that typographical errors can be automatically found and rejected. The checksum also allows Bitcoin software to confirm that a 33-character (or shorter) address is in fact valid and isn't simply an address with a missing character.

  1. Testnet

Addresses on the Bitcoin Testnet are generated with a different address version, which results in a different prefix. See List of address prefixes and Testnet for more details.

  1. Misconceptions
    1. Address reuse

Addresses are not intended to be used more than once, and doing so has numerous problems associated. See the dedicated article on address reuse for more details.

    1. Address balances

Addresses are not wallets nor accounts, and do not carry balances. They only receive funds, and you do not send "from" an address at any time. Various confusing services and software display bitcoins received with an address, minus bitcoins sent in random unrelated transactions as an "address balance", but this number is not meaningful: it does not infer the recipient of the bitcoins sent to the address has spent them, nor that they still have the bitcoins received.

An example of bitcoin loss resulting from this misunderstanding is when people believed their address contained 3btc. They spent 0.5btc and believed the address now contained 2.5btc when actually it contained zero. The remaining 2.5btc was transfered to a change address which was not backed up and therefore lost. This has happened on a few occasions to users of Paper wallets.

    1. "From" addresses

Bitcoin transactions do not have any kind of origin-, source- or "from" address. See the dedicated article on "from address" for more details.

  1. See Also