Выступал с докладом на местной Linux User Group конференции по теме криптовалют.
Текст доклада:
Содержание:
История криптовалют
Описание принципов
работы биткоин
Обзор форков биткоин
Описание NXT Coin
Работа клиента
(Кошелек)
Майнинг(форжинг)
Безопасность кошелька
История криптовалют
2008
год 18 августа. Зарегистрировано доменное
имя bitcoin.org. человеком или группой лиц
под псевдонимом Сатоси Накамото был
опубликован файл с описанием протокола
и принципа работы одноранговой сети
2009 год 3 января.
Свет увидел первый блок Bitcoin
2010 год 6 февраля. Открыта первая
официальная биржа Bitcoin Market.
2011
Лопнул первый пузырь на 30$
2014
Лопнул второй пузырь на 1000$
Описание принципов
работы биткоин
Условно ограниченный
ресурс
Чем дольше добывается золото,
тем труднее (затратнее по ресурсам)
становится его добывать. Это гарантирует,
что инфляция будет под контролем.
В Bitcoin похожее поведение
достигается путем введения функции
скорости суммарно добываемых монеток
от времени. Эта функция обратно
пропорциональная, т. е. скорость со
временем падает и стремится к нулю. Если
взять интеграл этой функции по времени,
то получится экспонента. Приблизительно
такая:
Монетки появляются в
системе пачками приблизительно каждые
10 минут, количество монеток в одной
пачке — 25, и оно уменьшается вдвое каждые
4 года.
Цепочка блоков
Любая электронная
платежная система должна где-то и как-то
хранить транзакции. В Bitcoin вся информация
хранится в цепочке блоков. Блоки
передаются в формате JSON. Каждый блок
содержит заголовок и список транзакций.
Заголовок состоит из нескольких свойств,
среди которых есть хэш предыдущего
блока. Таким образом вся цепочка блоков
хранит все транзакции за все время
работы Bitcoin.
В текущих версиях
программы Bitcoin цепочка блоков скачивается
целиком каждым клиентом, что делает
систему полностью децентрализованной.
Данные никак не шифруются и любой может
вручную проследить все транзакции.
Транзакции
Транзакции
содержатся в блоках в виде списка. Они,
также как и блоки, выстраиваются в
цепочки. Каждая транзакция должна
указать, откуда она берет деньги (из
какой существующей транзакции), и куда
направляет.
Для указания адресата
используется его публичный ключ. Чтобы
адресат мог использовать полученные
деньги, он должен создать новую транзакцию,
которая будет брать деньги с предыдущей
и перенаправлять их по другому адресу.
Чтобы доказать, что человек использует
для перевода именно свои деньги, а не
чужие, он должен оставить в своей
транзакции свою цифровую подпись. Тогда
в любой момент времени можно удостоверится,
что все транзакции в системе являются
валидными.
Самостоятельный майнинг
в данный момент потерял свою актуальность,
и единственной возможностью майнить
является участие в пулах для майнинга
Сложность добычи
Биткоин является в
некотором роде аналогом золота в цифровом
виде. Золото нельзя скопировать — его
можно только добыть. Но это очень
затратный процесс как по времени, так
и по ресурсам. Частично из-за этого
золото ценится так высоко.
Обзор форков биткоин
Популярные форки биткоин
1)Ripple is a Payment System и цифровая валюта (Более
старая валюта) (Оригинальный код)
Отличия от биткоин:
Можно отправлять в
любой валюте
Поддерживает аватарки
и никнеймы
Не нужно скачать всю
цепочку блоков
2)Counterparty (xcp) (Оригинальный
код)
Финансовая p2p платформа,
в основе которой лежит bitcoin. Расширяет
функционал bitcoin, позволяя создавать
внутри свою валюту, выпускать акции,
платить дивиденты, создавать чеки и
принимать ставки. Имеет собственную
биржу
3)Ethereum (eth) (Оригинальный
код)
Более дружественный к
CPU. Ограничивает возможности
высокопроизводительных майнеров в
пользу средних cpu. Имеет свой встроенный
язык программирования. Имеет возможность
создавать саб валюты. Имеет потенциально
огромный потенциал: Custom currencies are
potentially extremely powerful in e-commerce, explains Buterin:
“Paypal dollars are a custom
currency. Airmiles are a custom currency. Starbucks gift cards are a
custom currency. The potential applications are unlimited.”
4)Lite coin(не оригинальный
код)
-время добычи блока 2.5
минут
-Транзакция, как правило,
считается завершенной после 6 блоков,
или 15 минут.
-Максимальное количество
litecoin, которое войдет в обращение,
превышает максимальное число bitcoin в 4
раза (84 миллиона против 21)
Описание NXT
Оригинальный код
Одним из значителных
плюсов системы является экологичность
PoS протокола с точки зрения потребления
энергии, так как он не требует значительных
ресурсов для расчета криптографии.
Nxt будет иметь
встроенную поддержку для дополнительных
планируемых сервисов, таких как
пиринговая биржа, цветные коины, обмен
сообщениями, чат, децентрализованная
DNS и опции для мгновенных транзакций.
О разработке Nxt было
объявлено заранее, в отличие от
большинства коинов. За распространение
1 миллиарда Nxt коинов, отвечают 71
инвесторов, они получили в свое
распоряжение эту эмиссию из «первоначального
блока» в качестве компенсации за
инвестиции в размере 21 BTC.
Возможность Phasing
В простейшем случае Алиса(один владелец
аккаунта) посылает транзакцию,
которая
включается в блокчейн в специальном
"подвешенном" (pending) статусе,
то
есть она не не исполняется, пока
Боб(второй владелец) не подтвердит её.
В Монетарной Системе
Nxt каждый может выпустить свою собственную
валюту, в том числе PoW валюту.
Есть встроенный
магазин Digital good store
Еще один подход к решению
проблемы централизации майнинга —
устранить майнинг полностью, предложив
другой механизм расчета веса узла в
консенсус-сети. Самая популярная
альтернатива сегодня это «proof-of-stake»
(PoS), где вместо изначальной формулы
«один процессор — один голос» используется
формула «одна единица валюты — один
голос».
Простейший PoS-алгоритм
требует от майнера, чтобы тот подписал
новый блок приватным ключом, соответствующим
адресу, на котором лежат его монеты.
Блок считается валидным, если
sha256(PREVHASH + ADDRESS + TIMESTAMP) <= 2^256 * BALANCE /
DIFFICULTY, где PREVHASH — хэш предыдущего блока,
ADDRESS — адрес автора подписи с балансом
BALANCE, TIMESTAMP — текущее время в секундах
в эпохе Unix, DIFFICULTY — изменяемый параметр,
используемый для настройки частоты
успешных подписей. На первый взгляд,
этот алгоритм удовлетворяет базовым
требованиям: каждый майнер обладает
некоторой случайной вероятностью успеха
за единичный отрезок времени, а майнер,
обладающий вдвое большим количеством
монет в кошельке, удваивает свои шансы.
Работа клиента (Кошелек)
Есть два варианта
использования клиента онлайн через
браузер или локальный клиент на ява.
Клиент для линукс всего
15 Мб, работает в виде сервера, к которому
подключаешься через веб интерфейс
Веб клиент
У Nxt, в отличие от Биткойн
или других альтернативных койнов, нет
локального кошелька. Если быть более
точным, Nxt использует "brain wallet"
("кошелек в мозгу"), что говорит о
том, что кошельки децентрализованы и
хранятся в сети. Когда вы создаете
аккаунт Nxt, ваша секретная парольная
фраза используется для создания номера
счета. Как только номер счета сгенерирован,
вы можете его разблокировать и войти в
него, используя вашу парольную фразу
на любом запущенном Nxt узле.
Майнинг(форжинг)
Почему это называется форжингом вместо
майнинга?
В Bitcoin и многих других
криптовалютах, операции обеспечения
безопасности и проверки blockchain приводит
к созданию новых монет. В случае с Nxt,
все монеты уже существуют, и учетные
записи зарабатывают монеты только за
счет получения комиссионных за проведение
транзакций. В результате появилось
новое слово - "ковка", чтобы описать
способ, которым зарабатываются монеты
в Nxt.
В
Nxt монеты могут быть заработаны посредством
сбора комиссии за проведение транзакций.
После получения NXT,и после 1440 подтверждений,
ваши монеты становятся эффективным
балансом и ваше программное обеспечение
Nxt начнет участвовать в процессе генерации
блоков, и соответственно получает
возможность заработать монеты для вас,
пока ваша учетная запись "разблокирована".
Сумма NXT, которые вы можете заработать,
зависит от числа NXT, которые содержатся
у вас на эффективном балансе, общем
количестве "активных" NXT в сети и
комиссионных за транзакции, включенных
в блоки в blockchain.
Почему я должен покупать Nxt монеты для
того, чтобы их форжить?
Если вы хотите владеть
биткойнами или какой-то другой
альтернативной криптовалютой, вы должны
инвестировать средства в майнинговое
железо, чтобы иметь возможность намайнить
монет. В случае Nxt вы покупаете нужное
количество монет, чтобы начать форжинг.
Не нужно никаких дополнительных затрат,
не нужно дорогого оборудования для
майнинга.
Должен ли я оставлять клиент открытым
для форжинга монет?
Нет. Когда ваш сервер
заработает, просто оставьте аккаунт
"разблокированным", после этого
можете закрыть ваш веб-браузер.
Что значит "оставить аккаунт
разблокированным"?
Когда
вы вводите секретную парольную фразу
в окно клиента Nxt, ваш аккаунт становится
"разблокированным" в вашем серверном
программном обеспечении. После того
как вы его разблокировали, он остается
разблокированным до тех пор, пока вы
специально снова его не заблокируете
или пока не остановите сервер. Чтобы
разблокировать Вашу учетную запись,
зайдите в Nxt Клиент открыв страницу
браузера с адресом http://127.0.0.1:7876/ и войдите
в систему как "Returning User", введя свою
секретную фразу. После чего вы получите
доступ к клиентскому интерфейсу с Вашим
аккаунтом, который будет показан в
верхнем левом углу клиентского окна.
На этом шагу Вы можете закрыть свой
веб-браузер, и Ваша учетная запись
останется разблокированной для вашего
сервера. Обратите внимание на то, что
Вы должны сохранить работающим окно
сервера, если Вы хотите форжить с Вашей
учетной записью! Альтернатива этому -
использование пула форжинга, это решение
позволяет вам сдать в аренду вашу
мощность форжинга пулу, не отправляя
Ваши монеты куда либо.
Как я могу увидеть, что мой аккаунт
сфоржил блок?
Если вы сфоржите блок
и получаете награду, ваш клиент отобразит
входящую транзакцию с суммой награды.
Источником этого поступления будет
идентификатор блока вместо идентификатора
счета. Кроме того, 'Forge Balance в вашем
Клиенте покажет общее количество NXT,
который вы зарабатывали на данный
момент, форджа при помощи этой учетной
записи, а 'More Info' даст вам детальную
информацию о блоках, которые Вы сфорджили
и сумма комиссий в NXT, которую Вы заработали
за форжинг каждого блока.
Сколько Nxt я могу заработать форжингом,
и как часто это будет происходить?
Вы можете начать
обрабатывать транзакции зарабатывать
после того как первая сумма на вашем
счете будет подтверждена 1440 раза (или
через 24 часа). Когда пройдут 24 часа, в
верхней части виджета "Blocks" будет
показано оценочное время до того момента
когда ваша программа сфоржит блок. Очень
важно отметить, что генерация блоков —
это абсолютно случайный процесс, так
что лучшее, что можно сделать — это
оценить сколько времени может
пройти перед тем, как вы создадите блок.
В Nxt клиенте вы можете видеть текст "you
can generate the next block in X days....": это просто
оценочное время того, сколько может
занять генерация блока, базирующаяся
на вашей текущей вероятности. Оно будет
меняться каждую минуту, потому что
каждую минуту будет меняться вероятность.
Это математическая пошаговая демонстрация
того, как Nxt монеты могут быть заработаны
посредством транзакций:
Каждые 24 часа 1440 блоков
должны быть добавлены в цепочку. Это
основывается на среднем времени генерации
блока в минуту. Эти блоки представляют
транзакции всего объема монет (1 миллиард)
Ваша вероятность
форжинга блока зависит от вашей доли в
общем количестве монет, активных в сети.
Если бы все доступные монеты(1 миллиард)
использовались для активного форжинга,
то баланс счета в 694444 NXT (1 миллиард
деленный на 1440) форжил бы 1 блок в день.
Однако:
монеты, перемещаемые
на новый счет, должны ждать 1440 блоков,
чтобы созреть
некоторые владельцы
монет не озабочивают себя форжингом,
не оставляют запущенным софт Nxt или их
софт падает, таким образом только часть
всех монет активно участвует в форжинге
в любой момент времени.
число активных монет
в сети варьируется от одного блока к
другому
Если вы посмотрите на
"recent blocks widget" в Nxt клиенте, вы увидите
красно-белую иконку мишени в каждом
блоке. Если вы разделите 100% на значение
возле иконки мишени, вы получите часть
монет, которая использовалась для
создания этого блока. (Примечание: так
как блоки генерируются раз в минуту, вы
должны взять среднее значение, так
как они меняются от минуты к минуте)
Например, если среднее
target value равно 400%, то только 100/400 = 25% монет
форжат блоки.
Теперь вы можете
рассчитать приблизительное значение
того, сколько блоков вы можете
создать в день, умножая число монет на
вашем счету на абсолютное значение
target value (абсолютное значение 400% = 4), и
затем разделив на 694444.
Например, если у вас
50000 Nxt и среднее значение равно 400%, вы
могли бы сфоржить 0.288 Nxt блоков в
день, что соответствует одному блоку в
3 или 4 дня.
Число монет, заработанных
вами с создания блока зависит от числа
"монет комиссии" в блоке. Минимальная
комиссия с одной операции равна 1 Nxt, а
число операций в блоке будет разным.
Блок может содержать максимум 255
транзакций. Также возможны пустые блоки.
Сколько Nxt у меня должно быть, чтобы
форжить 1 Nxt в день?
Это очень сложно
подсчитать, потому форжинг базируется
на вероятностях, и из-за того как работает
механизм proof-of-stake. Каждую минуту число
активных монет в сети меняется, так что
вероятность форжинга всегда разная.
Опытные держатели Nxt наблюдали, что для
ежедневного форжинга блоков нужен
баланс в несколько сотен тысяч монет.
Безопасность
1)Подлинность клиентской
программы. После скачивания нужно
сгенерировать sha256 хэш фала и сравить с
тем, что указан на сайте
2)Длина паролькой фразы
должна быть 50-60 символов. Изменить
контрольную фразу нельзя, т.к. Она
является по сути приватным ключем к
кошельку.
Ссылка на слайды опубликована в группе LUG https://vk.com/udmlug