четверг, 4 ноября 2010 г.

Bitcoin: p2p-криптовалюта


Bitcoin - это основанная на системе peer-to-peer цифровая валюта. Использование системы peer-to-peer (P2P) обозначает, что в данной системе нет центральной власти, которая выдает новые деньги или записывает все транзакции. Вместо этого, эти задачи выполняются коллективно всеми узлами сети. Выгоды этого подхода:
  • Простая передача денег через интернет, без необходимости доверять посредникам.
  • Третьи лица не могут предотвратить или контролировать ваши транзакции.
  • Переводы денег посредством Bitcoin практически бесплатны, в то время как кредитные карты и системы онлайновых платежей обычно требуют комиссию в 1-5% суммы каждого перевода + дополнительные торговые затраты, (которые могут достигать несколько сот долларов).
  • Отсутствие нестабильности, которую вызывают банковская мультипликация (fractional reserve banking) и политика центральных банков. Ограниченная инфляция денежной поддержки в системе Bitcoin распределяется поровну (по мощности процессора) через всю сеть, а не монополизируется банками.
Bitcoin - это проект с открытыми исходниками (open source), созданный Сатоши Накамото (Satoshi Nakamoto). Данный проект сейчас находится в стадии beta.


Как оно работает.

Bitcoin полагается на криптографические принципы, чтобы создать уникальные, невоспроизводимые, и делимые маркеры валюты. Пользователи хранят криптографические ключи к своим собственным деньгам и проводят транзакции непосредственно друг с другом, проверяя с помощью сети достоверность денежных переводов. Каждая монета имеет свой уникальный ключ. При осуществлении транзакции пользователь добавляет к монете открытый ключ адресата и подписывает её своим личным закрытым ключом. Чтобы исключить двойное списание одной монеты, все транзакции транслируются другим участникам, а список транзакций в анонимном виде хранится в распределённой сети. При каждой новой транзакции ключи проверяются по списку предыдущих транзакций.


Использование Bitcoin.

Если хотите помочь работе сети, а для себя получить некоторое количество монет, включите флажок Настройки->Генерировать монеты (Options->Generate Coins). В режиме генерации монет Bitcoin работает в фоновом режиме, загружая процессор на 100%, но поскольку приоритет отдаётся другим программам, то эта загрузка пользователем не ощущается, а компьютер работает по-прежнему легко и быстро. На самом деле генерируются не отдельные монеты, а блоки. На начальном этапе эмиссии BCN за каждый сгенерированный блок пользователь получает 50 BCN. Генерация блока - событие случайное, которое неизбежно произойдёт, но предсказать его невозможно. Продолжительность этого процесса исчисляется неделями и месяцами, и зависит от мощности процессора и времени нахождения в сети; есть калькулятор, вычисляющий время генерации блока. В процессе “решения” блоков нет прогресса. При заданных параметрах компьютера вероятность вычисления блока одинакова что в самом начале работы, что через месяц.

Канал сети используется целиком только при первом запуске Bitcoin, когда загружаются блоки, и этот процесс может занять например пару часов. В дальнейшей работе сеть используется эпизодически и только в гомеопатических дозах.

Итоговое количество денег в системе Bitcoin будет равно 21 000 000 монет. Дальше этой суммы монеты создаваться не будут. Монеты входят в обращение постепенно в течение множества лет, раздаваясь узлам, поддерживающим сеть пропорционально затрачиваемому ими процессорному времени. Генерация монет завершится примерно в 2140 году.


Следствие анонимности Bitcoin: информация о состоянии вашего счёта находится в файле wallet.dat, это и есть ваш "кошелёк". Он расположен:
Windows XP:
C:\Documents and Settings\[username]\Application Data\Bitcoin\wallet.dat
Windows Vista and later:
C:\Users\[username]\AppData\Roaming\Bitcoin\wallet.dat

В случае его утери деньги теряются навсегда. Их невозможно будет восстановить или заново сгенерировать. Для безопасного сохранения или переноса файла wallet.dat на другой компьютер, сначала остановите работу клиента Bitcoin.

Чтобы получать деньги в сети Bitcoin, необязательно быть подключённым к сети. Как только вы подключитесь (или создадите адрес), отправленные на него деньги будут вам доступны. Любой перевод на "правильный" адрес будет успешным. Существует возможность как ввода, так и вывода денег из системы. Недавно открылась первая биржа для торговли Bitcoin за российские рубли. За последние два месяца стоимость BTC относительно традиционных валют возросла примерно в 6 раз, объёмы сделок по BTC стремительно увеличиваются. В ноябре 2010 курс монеты составил 1 BTC = 6...10 RUB. Наименьшая доля монеты составляет 0.01 BTC.



Bitcoin адрес.

BitCoin адрес - это 160-битный хеш (уникальное число) открытого ключа алгоритма ECDSA. Используя определённые математические приёмы, вы можете "пометить" данные вашим секретным ключом и все, кто знает ваш открытый ключ, смогут проверить достоверность вашей подписи. Дополнительную информацию о том, как это работает, можно найти в Википедии.

Для каждого получаемого адреса создаётся новая пара ключей (public/private keypair). BitCoin адреса (открытые ключи) и связанные с ними закрытые ключи хранятся в файле wallet.dat (wallet (англ.) - бумажник, кошелёк). Это единственный файл, который вы должны сохранять и бэкапить. Для транзакции "пересылки монет" на определенный адрес BitCoin требуется, чтобы соответствующий закрытый ключ существовал в кошельке получателя. Это подразумевает, что если вы создаете адрес X получателя и получите монеты на этот адрес, а затем восстановите кошелёк из резервной копии, созданной до генерации этого адреса, то монеты, связанные с адресом X, будут потеряны. Если вы потеряете свой бумажник целиком, все ваши монеты потеряются безвозвратно и восстановить их не удастся.

Транзакции "генераций" происходят так же, как и транзакции "пересылок": каждая партия из 50 порождённых монет "посылается" на уникальный адрес, который создаётся вами только для этой цели. Эти адреса также хранятся в вашем кошельке, но они не показаны в разделе "your receiving addresses" ("полученные").

BitCoin позволяет создать любое количество адресов, какое вы захотите, и каждый из них совершенно независим. Не существует "мастер-адреса": совокупность ваших BitCoin адресов в системе BitCoin не имеет особого значения. BitCoin адрес нужен только для вашего удобства, и он будет автоматически изменяться время от времени для повышения вашей анонимности. Все ваши адреса будут работать вечно. Они перечислены в разделе "your receiving addresses" ("полученные"). Каждый адрес занимает всего около 500 байт, так что наличие большого количества адресов в вашем кошельке не является проблемой.

BitCoin адрес содержит встроенный код проверки, так что невозможно отправить BitCoins на ошибочный адрес. Однако, если адрес сформирован верно, но им никто не владеет (или владелец потерял wallet.dat), все монеты, отправленные на этот адрес, будут потеряны навсегда. Также заметим, что биткоины нельзя отозвать, поэтому действовать надо либо на доверии, либо через третье доверяемое лицо.

Кроме того, можно отправить BitCoins непосредственно на IP-адрес, если у получателя сейчас запущен клиент Bitcoin. Это потеря анонимности и такой способ транзакций практически не используется, но если монеты отправляются на IP-адрес, то можно добавить комментарий и указание, от кого они идут. На Bitcoin адрес отправляем биткоины если получатель сейчас не в сети или не желает раскрывать свой IP.

Поскольку Bitcoin адреса по сути являются случайными числами, то возможно, хотя это крайне маловероятно, что два человека независимо друг от друга сгенерируют одинаковые адреса. Такое событие называется коллизией. Если это произойдет, то оба владельца адреса смогут использовать деньги, посланные на этот адрес. Но к кошелькам друг друга по другим адресам эти владельцы двойного адреса не будут иметь доступа. Если вы намеренно попытаетесь создать коллизию, это займёт в настоящее время в 2^126 раз больше времени, чем время, необходимое для создания блока (которое в свою очередь исчисляется неделями и месяцами). Так что такое событие практически невозможно. Пока подписи и алгоритмы хэширования остаются криптографически сильными, а это будет вероятно всегда, будет выгоднее использовать сеть BitCoin для генерации и пересылки монет, чем пытаться создавать коллизии.

Satoshi Nakamoto излагает идею Bitcoin:
http://www.bitcoin.org/bitcoin.pdf

Bitcoin Wiki на русском языке:
http://www.bitcoin.org/wiki/...

Русскоязычная ветвь форума Bitcoin:
http://www.bitcoin.org/smf/...

Статистика BCN - транзакции, обмен, блоки и курсы:
http://www.bitcoinwatch.com/


Ссылки:
https://en.bitcoin.it/wiki/
http://bitcoinme.ru/
http://www.bitcoinblogger.com/
http://habrahabr.ru/blogs/crypto/99100/
http://habrahabr.ru/blogs/eCommerce/104682/
http://habrahabr.ru/blogs/crypto/113569/
http://habrahabr.ru/blogs/crypto/114642/
http://habrahabr.ru/blogs/crypto/115151/
http://www.mainru.com/2010/08/p2p.html
http://open-life.org/blog/opensource/1181.html
http://lj.rossia.org/users/is3/27351.html
http://bitcoin.su/
http://www.bitcoinme.com/

Статьи:
http://www.hartfordadvocate.com/... читать дальше

4 комментария:

  1. Что то не могу найти у себя файл wallet.dat
    OS: Windows 7

    ОтветитьУдалить
  2. Например в русифицированном Windows 7 путь к этому файлу C:\Пользователи\[username]\AppData\Roaming\Bitcoin\wallet.dat. Папка AppData скрытая :) Надо разрешить отображение скрытых папок Start - Control Panel - Folder Options - View - Show hidden files, folders and drives.

    ОтветитьУдалить
  3. Этот комментарий был удален автором.

    ОтветитьУдалить
  4. "WARNING: Dislayed transactions may not be correct. You may need to upgrade, or other nodes may need to upgrade.
    38 подключений 143429 блоков 0 переводов"
    Между тем, http://blockexplorer.com/q/getblockcount обнаруживает 147944 блоков в системе,
    а http://blockexplorer.com/address/... обнаруживает два принятых блока.
    На форумах про этот WARNING много чего написано неконкретного, либо связанного с малопонятными манипуляциями по сохранению wallet.dat и blk***.dat перед последующей реинсталляцией bitcoin.exe. Не могли бы Вы дать четкую инструкцию по устранению причин появления вышеупомянутого WARNINGa?

    ОтветитьУдалить