mealsforall 27.07.2011 01:02
How-to`s — Bitcoin - настоящие электронные деньги
Bitcoin -- электронная валюта, постепенно набирающая популярность во всём мире. Этой заметкой я надеюсь заинтересовать побольше людей и расширить сеть bitcoin в рунете.Как работает сеть Bitcoin?
Дизайн системы очень прост:
* у каждого клиента есть свой уникальный ID и пара приватный ключ/публичный ключ для подписи этого ID.
* существует глобальный лог транзакций, хранящий все транзакции между клиентами начиная с самой первой. У каждого клиента есть копия этого лога, и каждый получает свежие обновления к нему.
Клиенты объединены в p2p-сеть и выполняют денежные транзакции вида “счёт А положил столько-то денег на счёт В”. Транзакция попадает в глобальный лог транзакций, где все участвующие пиры проверяют её на два условия:
1. Нужное количество денег есть у А на счету. Для этого считывается весь лог транзакций счёта А и вычисляется текущая сумма на нём.
2. Счёт А подписал транзакцию своим ключом.
Если транзакция не удовлетворяет этим условиям, другие клиенты её отвергнут и она не попадёт в глобальный лог.
Каждые десять минут новый блок свежих проверенных транзакций шифруется хэшем предыдущего блока транзакций. Таким образом гарантируется непрерывность и валидность глобального лога.
Иными словами, никакого кошелька ни у кого нет. Чтобы узнать, сколько денег находится на конкретном счету, надо пересчитать все операции данного счёта начиная с момента его открытия. Это легко сделать, поскольку у каждого клиента хранится полный лог всех транзакций всего мира.
Откуда берутся деньги в системе?
Каждые десять минут кто-то должен генерировать подпись для следующего куска транзакций -- длинный такой хэш. Генерацией блоков занимаются клиенты-волонтёры.
Особенность этого хэша состоит в том, что по требованию алгоритма он должен заканчиваться на несколько нулей. Так как генерация хэша необратима, мы не можем предугадать, какие исходные данные дадут нам хэш с заданным количеством нулей на конце.
А поскольку это ещё и очень ресурсоемкая операция, то тот клиент, который сгенерировал хэш первым, вознаграждается 50 биткоинами. Собственно, прямо в момент генерации клиент-волонтёр первой транзакцией блока приписывает себе это вознаграждение.
А это не инфляция?
Каждые 210 тысяч блоков вознаграждение уменьшается в два раза, а когда накопится 21 миллион биткоинов, выпуск биткоинов полностью остановится.
Кроме того, алгоритм усложняет условия генерации хэша путём увеличения необходимого количества нулей в конце его каждый раз, когда новый хэш генерируется клиентами слишком быстро. Это ограничение отражает рост процессорных мощностей и количества клиентов.
Как пользоваться?
Официальный клиент доступен на bitcoin.org. Линуксовая версия представляет собой архив tar.gz с исходным кодом и четырьмя бинарниками: GUI и CLI для 64 и 32 бит.
При первом запуске клиент bitcoin генерирует уникальный ID и пару ключей для него. Эти данные хранятся в файле ~/.bitcoin/wallet.dat. Этот файл надо защищать так же, как и свой кошелёк.
Если есть подключение к интернету, то клиент начинает скачивать лог транзакций у ближайших пяти-восьми пиров. Он их находит по IRC на канале #bitcoin на lfnet. Соответственно, желательно открыть исходящие соединения по IRC (6667). Общается он с ними напрямую обычно по порту 8333, можно открыть этот входящий порт. Если входящий не открывать, ваш клиент будет только скачивать лог, не делясь им ни с кем. Размер лога на данный момент примерно 600 Мб.
Оплату делать очень просто -- нужно знать уникальный ID того, кому перечисляются деньги, и провести операцию в клиенте Bitcoin. Клиент сам свяжется с соседними клиентами, и как только они подтвердят валидность транзакции, транзакция попадёт в лог. Таким образом, деньги будут перечислены.
Где взять Bitcoin деньги?
Если у вас мощный компьютер и не жалко электричества, участвуйте в генерации блоков лога. Этот процесс по-английски называется mining. Участвовать можно либо самостоятельно, либо как часть распределенного пула. Первый вариант даёт вам 50 биткоинов, если вам повезло. Второй -- только свою долю, если повезло всему пулу. Как участвовать, написано ниже.
На биржах и онлайн-аукционах можно поменять обычные деньги на биткоины. Или продать что-нибудь за биткоины. Список бирж можно найти на bitcoin.org
Участие в генерации блоков лога (Mining)
Стандартный клиент bitcoin не занимается генерацией, для этого нужна другая программа. Выбор программы зависит от возможностей вашего компьютера. Поскольку хэши можно считать и на CPU, и на GPU, программа должна поддерживать то, что есть в компьютере.
Я покажу процесс генерации на примере ufasoft-miner и пула Eligius. Пул Eligius раздает задания участникам и выплачивает заработанное по мере накопления определённого количества биткоинов. Он хорош тем, что не требует никакой регистрации и красиво предоставляет статистику работы. Ufasoft miner хорош относительной простотой установки.
Моя система: Xubuntu 11.04 64-bit на ноутбуке Lenovo T61.
1. Скачиваем bitcoin-клиент и распаковываем клиент с официального сайта:
1 |
wget http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.24/bitcoin-0.3.24-linux.tar.gz/download -O bitcoin-0.3.24-linux.tar.gz
|
2. Запускаем бинарник (у меня 64-битный):
1 |
|
Запустится приложение и покажет наш новый свежесгенерированный ID. Он нам понадобится для того, чтобы сказать пулу Eligius, куда перечислять заработанные деньги.
3. Скачиваем ufasoft-miner в виде исходного кода и распаковываем:
1 |
wget http://ufasoft.com/files/open/ufasoft_bitcoin-miner-0.10.tar.lzma
|
4. Устанавливаем зависимости для ufasoft miner.
Библиотеки libpcre3-dev и libcurl3-dev есть в репозиториях:
1 |
|
Ассемблер jwasm надо скачать бинарником и положить в /usr/bin:
1 |
wget http://www.japheth.de/Download/JWasm/JWasm206bl.zip
|
5. Компилируем и ставим ufasoft-miner:
1 |
|
6. Всё, запускаем miner:
1 |
bitcoin-miner -v -a 5 -t 2 -o http://mining.eligius.st:8337 -u 1N62rta4YLkbXGnz1ikLa86UCj1eLeUGrh -p x
|
Работающий miner выглядит скучно:
1 |
bitcoin-miner 0.10 Copyright (c) 2011 Ufasoft http://ufasoft.com/open/bitcoin
|
Разберем параметры командной строки:
-v подробный отчёт
-a интервал запроса новых заданий от пула (пул рекомендует 5 сек)
-t количество одновременно запускаемых потоков. У меня двух-ядерный ноутбук, этот параметр нагружает оба процессора почти на 100%. Если у вас видеокарта ATI, этот miner будет нагружать и её.
-o Адрес сервера Eligius.
-u Мой счёт Bitcoin. Поменяйте на свой, сгенерированный клиентом в шаге 2.
-p Пароль клиента пула. Eligius не требует паролей, поэтому просто x.
Результат
Мой хиленький ноутбук генерирует 5 миллионов хэшей в секунду, задействуя на полную оба ядра CPU и угадывая примерно один хороший хэш за 20 минут. Это примерно 0.0001 BTС в час. :)
Мощные десктопные видеокарты с OpenCL и CUDA могут генерировать до 2 миллиардов хэшей в секунду только на GPU, при этом практически не мешая обычной работе десктопа. Для них нужны и соответствующие программы-minerы. Почти все они OpenSource и доступны под Linux, пробуйте.
Где узнать больше?
Сайт bitcoin.org и его вики https://en.bitcoin.it/wiki/Main_Page содержат наиболее подробную информацию. В основном на английском. На русской Википедии есть хорошая статья на русском: Bitcoin.
Принимаю вопросы в комментах и благодарности за статью по адресу 1N62rta4YLkbXGnz1ikLa86UCj1eLeUGrh ;)
wil_low 27.07.2011 02:05 #
+ 3 -
Не имеет смысла. Полезнее белки считать.
Считать хэши -- это опционально. Главное здесь валюта и возможность ею пользоваться.
А Ваш опыт использования белков, о которых Вы всеравно ничего не знаете. Ну сидите, расчитываете белки, и что потом? Фармацевтические компании продают их за бешеные деньги. В чем ваш профит ДЛЯ САМОГО СЕБЯ? Так же просиживаете штаны. А с биткоинами копейки зарабатываете.
Ээээх, а раньше были субботники. Хотя и сейчас есть множество подобных акций, правда от организаций вроде GreenPeace и т.п.
Мой опыт - сгененировал два биткоина (текущий курс примерно 1 BTC ~= 15 USD), купил ещё пять биткоинов на бирже, один подарил, на 6 других купил virtual appliance.
К моему удивлению, при скорость 4.5 Mhash/sec ушло всего трафика 1.37 Mb трафика за час.
Сейчас не выгодно заниматься майнингом. Курс низкий и очень долго будет окупаться железо (ну то, что будет генерить по несколько миллиардов хешей в секунду). + оплата электричества. + шум. + тепла много. На слабых картах этим заниматься нет смысла, ~1 биткоин в год %) Вот если поставить где нить на работе, тогда хоть от уплаты электричества освобождаешься :)
ps
Вот еще инфа: Как заработать на биткойнах, или мой опыт майнинга
ps
Вот еще инфа: Как заработать на биткойнах, или мой опыт майнинга
У меня майнер скачал при запуске около 200 мб хешей. Потом я подсчитал скорость и забросил это занятие.
Минут за 20. Вероятно, скачал все мировые транзакции - больше интенсивного трафика не наблюдалось.
в разделе "Откуда берутся деньги?" автор ответин на самом деле откуда берутся биткоины, а деньги - баксы и тугрики из биткоинов получаються только изза желания некоторых людей купить эти самые биткоины.
Именно, поменял заголовок в статье.
Биткоин сам по себе деньги ;)
Биткоин сам по себе деньги ;)
ok, пусть будет валюта, но не СКВ, а значит купить за нее огурец на базаре в зимбабве я не куплю.
лично для меня она так и остается просто набором хешей
лично для меня она так и остается просто набором хешей
В интернет-магазинах, которые принимают биткоины, можно купить вполне реальные вещи. А на биржах -- поменять биткоин на любые другие денежки.
Тут как раз идея в доверии. Про СКВ мы мало что знаем -- сколько там американское казначейство напечатало долларов, почему доллар стоит столько рублей, а не вот столько, и тэдэ.
Биткоин в этом смысле идеально прозрачен -- каждый знает, сколько их и сколько будет сгенерировано через год и через пять, и как именно они перераспределяются между счетами. Подделать их нельзя, подделать транзакцию тоже нельзя.
Плюс ко всему, все участники сети заинтересованы в её развитии.
Тут как раз идея в доверии. Про СКВ мы мало что знаем -- сколько там американское казначейство напечатало долларов, почему доллар стоит столько рублей, а не вот столько, и тэдэ.
Биткоин в этом смысле идеально прозрачен -- каждый знает, сколько их и сколько будет сгенерировано через год и через пять, и как именно они перераспределяются между счетами. Подделать их нельзя, подделать транзакцию тоже нельзя.
Плюс ко всему, все участники сети заинтересованы в её развитии.
Чего не понимаю в биткойнах, так это того, почему вся мощность сети идет на тупой подбор хэшей, т.е. на свисток/обогрев квартиры. Могли бы белки считать, что ли. Да и простому обывателю станет понятнее - деньги получаются за белки. Ну и да, важное предупреждение: если уведут содержимое ~/.bitcoin - плакали ваши денежки.
Это не вся мощность сети, это мощность волонтёров, которые хотят это делать. Печатный станок сети, я бы сказал. Когда лимит "купюр" исчерпается (достигнет 21 млн), печатный станок выключится и волонтёры начнут заниматься исключительно транзакциями. Вот тогда для конечного пользователя ситуация будет выглядеть более логично -- мощность сети тратится на то, чтобы корректно сохранять транзакции.
Кроме того, это выглядит гениально -- такой себе универсальный механизм, самоадаптирующийся к растущим мощностям компьютерных систем и эксплуатирующий жажду наживы. Все участники получаются заинтересованы в том, чтобы сеть и валюта продолжали существовать.
Кроме того, это выглядит гениально -- такой себе универсальный механизм, самоадаптирующийся к растущим мощностям компьютерных систем и эксплуатирующий жажду наживы. Все участники получаются заинтересованы в том, чтобы сеть и валюта продолжали существовать.
Мощность тратится на математические операции, необходимые для совершения транзакций.
Я в криптографии не разбираюсь, поэтому так и не смог понять, почему алгоритм реализован так, что требуется тупой перебор хешей.
Это специфика алгоритма или намеренное условие, придающее биткоинам ценность, выраженную в аренде вычислительных мощностей? Если б они добывались без особых усилий, то вряд ли бы имели такую цену. Как и золото, валяющееся повсюду, не имело бы такой ценности.
Я в криптографии не разбираюсь, поэтому так и не смог понять, почему алгоритм реализован так, что требуется тупой перебор хешей.
Это специфика алгоритма или намеренное условие, придающее биткоинам ценность, выраженную в аренде вычислительных мощностей? Если б они добывались без особых усилий, то вряд ли бы имели такую цену. Как и золото, валяющееся повсюду, не имело бы такой ценности.
Это намеренное условие, тормозящее "печатный станок". Оно не придаёт биткоинам никакой дополнительной ценности, просто поддерживает стабильность экономики, соразмеряясь с растущими мощностями компьютеров и ростом сети клиентов.
В морально-нравственном аспекте -- да, эта мощность не приносить никакой пользы, кроме поддержания экономики биткоин.
А с практической точки зрения гонять какую-то мощную машину только ради биткоинов бессмысленно, слишком много электричества на это идёт. Но если, скажем, человек целый день работает за компьютером, у которого мощная видеокарта, но не использует её, то вполне можно нагрузить GPU этой задачей. То же самое с многоядерными CPU.
А с практической точки зрения гонять какую-то мощную машину только ради биткоинов бессмысленно, слишком много электричества на это идёт. Но если, скажем, человек целый день работает за компьютером, у которого мощная видеокарта, но не использует её, то вполне можно нагрузить GPU этой задачей. То же самое с многоядерными CPU.
Ничего. Все при первом запуске клиента будут скачивать лог значительных размеров, а затем как всегда -- только новые блоки.
Я так понимаю что валюта с перспективой.
А что если блоки разрастутся до больших размеров?
А что если блоки разрастутся до больших размеров?
Технологии же не стоят на месте :)
Все блоки примерно одного размера, впрочем. Кроме того, сейчас придумали клиентов, которые скачивают только несколько последних блоков, а не весь лог. На андроидах, например, такой кошелек для биткоинов.
Все блоки примерно одного размера, впрочем. Кроме того, сейчас придумали клиентов, которые скачивают только несколько последних блоков, а не весь лог. На андроидах, например, такой кошелек для биткоинов.
Если я правильно понимаю, основной аргумент в пользу полноценности биткоина как валюты, состоит в том, что за него можно купить реальную вещь.
Но в общем смысле это условие не является достаточной характеристикой полноценности валюты.
Также в статье наблюдается противоречие. С одной стороны говорится о прозрачности биткоина как противовес доллару (видимо). С другой, биткоин жестко привязан к баксу, и этим обеспечивается платежепригодность биткоина.
Объясните пожалуйста в чем профит при таких раскладах?
Но в общем смысле это условие не является достаточной характеристикой полноценности валюты.
Также в статье наблюдается противоречие. С одной стороны говорится о прозрачности биткоина как противовес доллару (видимо). С другой, биткоин жестко привязан к баксу, и этим обеспечивается платежепригодность биткоина.
Объясните пожалуйста в чем профит при таких раскладах?
Не совсем так. Ценность биткоина как валюты в стабильности и масштабируемости его алгоритма. Все участники сети понимают, как он работает, откуда берётся и как обменивается, а потому доверяют этой валюте. Благодаря этому доверию можно и купить реальную вещь, и обменять биткоины на другую валюту. Транзакции прозрачны, остановить их нельзя, счета заморозить невозможно.
Что до противоречия, то я его в тексте не увидел. Биткоин вообще никак не привязан ни к доллару, ни к евро. Скажем, если завтра штаты обанкротятся и доллар перестанет что-нибудь стоить, то ценность биткоина останется на том же уровне.
Профит такой, чуточку гиковский получается -- вот у нас есть своя интернет-валюта, она вполне ценная и стабильная, и я как гик могу часть денег хранить в ней.
Что до противоречия, то я его в тексте не увидел. Биткоин вообще никак не привязан ни к доллару, ни к евро. Скажем, если завтра штаты обанкротятся и доллар перестанет что-нибудь стоить, то ценность биткоина останется на том же уровне.
Профит такой, чуточку гиковский получается -- вот у нас есть своя интернет-валюта, она вполне ценная и стабильная, и я как гик могу часть денег хранить в ней.
Ценность биткоина как валюты в стабильности и масштабируемости его алгоритма
А ценность рублевой купюры в ее устройчивости к воздействию воды. Да, это так. Но это высказывание не имеет никакого отношения к ценности рубля как валюты.
то ценность биткоина останется на том же уровне
На том же уровне относительно чего?
могу часть денег хранить в ней.
Можно часть денег хранить в фантиках от конфет. Только возникает вопрос какой процент населения этой планеты начнет воспринимать фантик как платежеспособный документ. Даже после того, как вы расскажете насколько удобен и приятен процесс перевода обычных денег в фантики.
Обычные деньги -- такие же фантики. Вон белорусы буквально недавно убедились в этом. Ценность биткоина держится на уровне остальных валют ровно так же, как валюты котируются относительно друг друга. Это такая же валюта, как и остальные, просто электронная.
Фанатичность такая фанатичность. Ладно, я знаю, в данный момент вы к словам глухи.
а и вообще на cpu майнить уже невыгодно месяцев как 5 уже.
реквестирую настройку для ati видеокарт под дебиан 6 :)
реквестирую настройку для ati видеокарт под дебиан 6 :)
Реквестирую видеокарту ATI :)
У меня Nvidia Quadro FX где-то была, попробую настроить и потестировать.
У меня Nvidia Quadro FX где-то была, попробую настроить и потестировать.
Каждые 210 тысяч блоков вознаграждение уменьшается в два раза, а когда накопится 21 миллион биткоинов, выпуск биткоинов полностью остановится.
Занятная штука. Ведь при потере приватного ключа, биткоины, числившиеся за конкретным ID кошелька, теряются безвозвратно. Т.е. в логе они есть, но совершить при помощи них перевод никто не сможет. Таким образом, общее число биткоинов в обороте уменьшится.
Ну, и наверняка с течением времени какие-то суммы будут так же пропадать из-за утраты ключей или смерти владельца кошелька. И общая сумма биткоинов, доступная для оборота, будет постепенно уменьшаться. А 21 миллион — не так уж и много. Придётся расплачиваться миллионными долями биткоина, так как их цена будет возрастать с уменьшением количества.
Всё верно. Разве что, на мой взгляд, количество утерянных биткоинов незначительным, потому что человек, потративший деньги или время на получение биткоинов наверняка озаботится и бэкапом кошелька.
И да, биткоин по определению можно делить до восьмого знака.
И да, биткоин по определению можно делить до восьмого знака.
Как видно из обсуждения на Bitcoin Forum, теряют и не мало.
Такими темпами человечество перейдёт к использованию восьмизначных долей биткоинов довольно скоро ))
Такими темпами человечество перейдёт к использованию восьмизначных долей биткоинов довольно скоро ))