Как использовать кошелёк Electrum и Eclair

Данный пост написан с целью показать насколько просто завести достаточно безопасный биткоин кошёлек и как безопасно, опять же относительно хранить\тратить свои сатошики. Итак начнём:

  1. скачиваем electrum c https://electrum.org/#home Естественно, в браузере надо проверить, что вы действительно скачиваете с указанного адреса, и я не направил вас на свои скам)
так выглядит сайт electrum, со временем может измениться
  1. Щёлкнув на зелененький замочек в хроме, или в лисице можно дополнительно проверить сертификат
проверяем что сертификат действителен для посещаемого сайта

Конечно можно проверить ещё много всего, например подпись разработчика, чек-суммы и так далее. Оставим это пока вне рассмотрения. Скачав например установшик для винды, ждем пока загрузиться, он небольшой по современным меркам ~25мб на момент написания и подтверждаем ей что хотим запустить. Ждем немного пока установиться, можно указать куда, но можно оставить и по умолчанию (это мы потом учтём) и запускаем.

  1. При первом запуске начинается визард который проведёт по процессу подключения к сети биткоин и создания кошелька, вернее будет сказать связки ключей, но кошелек привычнее и короче
подключение к серверам

Электрум не хранит весь блокчейн Биткоина, вместо этого он обращается к удаленным серверам для того чтобы передавать ваши транзакции. Однако же он никогда не передаёт ваши секретные ключи

  1. Для целей текущей статьи создаём “простой кошелёк”. Это не означает, что он чем-то хуже
создание простого кошелька
  1. Электрум является детерменистическим кошельком с упрощенной верификацией транзакций. Пары ключей выводяться из семечки, или SEED, и в данном случае это куда удобнее, т.к. его можно запомнить) Выбираем segwit
segwit семечко кошелька
  1. Семечка будет сгенерирована случайно, её надо ЗАПИСАТЬ НА БУМАЖКУ и ХРАНИТЬ как основный документы (если вдруг у вас в кошельке заметная сумма), и желатьлно в нескольких местах. ОБЛАДАНИЕ ВАШИМ Сидом РАВНОЦЕННО ОБЛАДАНИЮ ВСЕМИ ВАШИМИ САТОШИКАМИ. Никогда не храните его электронно.
да, даже от пустого кошелька я сделал половину сида нечитаемым
  1. На следующим шаге Electrum попросит вбить обратно семечку, чтобы убедиться что вы запомнили семечку правильно. Он будет вам помогать, заодно предоставляя вам возмоность оценить словарь)
вбиваем семечку для подтверждения
  1. После того как семечка вбита, он настоятельно попросит зашифровать её, вместе со всем кошельком. Правило простое: короткие пароли типа RjkbtQ4#&7 – плохо, мнемонические пароли типа La_gatta_ciara_come_el_sombrero_negro хорошие.
он и тут помогать будет
  1. Можете вбить пароли которые я упомянул и посмотреть как он их оценит, я использовал один из своих любимых паролей немного его обрезав, СССР…)
и даже в таком обрезанном виде
  1. Уже всё, это было просто правда?
Можно посмотреть некоторое количество адресов.

Когда вы создавали кошелёк можно посмотреть где он его создал, зависит от операционной системы, и удалить его оттуда предварительно сохранив на съёмном носителе. Также вашу семечку можно будет использовать в другом кошельке. Рекомендуется создавать несколько семечек, одна из которых создаёт файл который никогда не бывает онлайн, и несколько “горячих”, т.е. постоянно настоящихся на компьютере имеющим доступ в сеть.

Скромной приватности гид

или как правильно готовить ВПН, ака VPN – virtual private network

Учитывая последние инициативы всяких бешенных принтеров, и прочих контрол-фриков (это такие чудесные звери помешанные на контроле всего и вся) вопрос защиты от онлайн наблюдения встаёт всё острее. И напонимаю: наблюдение === подавление.

Данная статья разбита на три части:

  1. Что такое ВПН, зачем это нужно и где его завести
  2. Настройки OpenVPN серверной части
  3. Настройки OpenVPN клиентской части

Многа-букафф\лень читать: или у меня есть *.ovpn файл конфига — сразу на третью часть.

Что такое ВПН

Если говорить понятным языком — ВПН это способ объединения нескольких персональных компьютеров (к коим сейчас можно относить очень широкий класс устройств) через интернет приватно. Т.е. так, чтобы никто между ними не видел какой информацией происходит обмен. Также это можно использовать для обхода цензуры – запрета определённых сервисов на определенной територии и тому подобное. Как только цензура перестаёт быть внутренней, она становиться вредна.

На сегодняшний день существует море т.н. VPN сервисов, в котором вам дают ключи, т.е. пару логин-пароль, и вы бывает какаете какой-то клиент, а бывает обходитесь настройками в браузере, но в любом случае, ни о какой P, т.е. приватности в данном случае речи не идёт. Т.к. сразу наличествует третья сторона, которая для вас в данном случае является черным ящиком, и одна Вечность знает, что там с вашим трафиком делают. Ещё один важный недостаток таких решений — если вы нашли такой сервис, то и соответсвующие органы его найдут также легко. И ограничат или запретят к нему доступ. Предлагаемое мной решение тоже не даёт 100% гарантии защиты от ограничения доступа (т.к. оно всё равно централизовано), но сводит его к минимуму.

Первое что нам понадобиться — это виртуальный сервер где-то там. Можно использовать для этого Amazon Web Services EC2, MS Azure, Google Compute Cloud или любой другой облачный провайдер. Основная хрень в случае больших провайдеров — это их KYC(Know Your Customer), или знай своего клиента. А целью данного руководства является всё-таки скромная, но приватность. В силу этого был выбран небольшой (по сравнению с гуглом) провайдер – ITL group (ссылко реферальная, но как обычно персональную инфу я не собираю здесь). Для регестрации достаточно емейла, и если пользоваться например protonmail, причём желательно избегать вэб-интерфейса в случае крайней паранои, то вообще всё ОК. Более того данный сервис принимает оплату криптой, т.е. ни карточки, ни прочие персональзированные платёжные системы не требуются.

Для наших целей хватит обычного минимального VDS (виртуального выделенного сервера):

Требуемый виртуальный сервер

Соответсвенно серверу мы выбираем локацию — учитывая, что мы хотим хоть и приватный, но шустрый интернет, т.е. можно забить на всё это и обращаться в сеть исключительно через ТОР, но в этом случае скорость будет варьироваться от модемной (кто еще помнит модемы на 9200, то скорее уж 56к), до полноценного широкополосного, это вне вашего контроля. Т.е. выбираем то, что не очень далеко от вас — из России, например, вполне подойдет Голландия или Латвия. Или даже Украина.

Также к достойнствам данного провайдера стоит отнести простую установку операционной системы, да, мечта – в 1 клик. В целях экономии всего и вся мной была выбрана Centos 7, которая в установке занимает ~600 мегабайт, ещё столько же мы потратим на нужный софт. Да, доступ к нашей виртуальной машинке будет через SSH, т.е. с програмками типа PUTTY для Виндовс, или терминала для Линуксов и Маков. Никакого графического интерфейса конечно не предусмотрено (зачем плодить ненужные сущности?), нормальный чистый шелл. Всё, понеслась, дальше начинается хардкор!

OpenVPN — настройка сервера

Итак, вы получили заветное письмо от провайдера с кредами, от credentials, или паролями-явками:

пример явок-паролей

Собственно нам нужен ИП адрес, юзер (он будет с рут-правами, т.е. полный контроль) и пароль. Пароли есессно надо сразу сменить, в панели провайдера, ибо a) пароли от ssh не один вменяемый клиент не даст запомнить б) ваш емейл провайдер его уже видел в) перебором такое подобрать значительно быстрее чем a_ya_uge_zapomnil_etot_parol. Всё мы оказались в шелл-консоли, теперь нужно установить нужный софт, и да, мы поставим сразу несколько программ одной командной, привет Винда! Погнали:

sudo yum update -y
sudo yum install epel-release -y
sudo yum update -y

Убедились что менеджер пакетов, встроенный в ЦентОС ( это то, что скрывается за буквами yum) актуален. Поставили EPEL ( Extra Packages for Enterprise Linux ) и снова проверили актуальность. Теперь основная котлета. Поскольку данное руководство весьма параноидально, помимо собственно OpenVPN понадобится EasyRSA, да, весь трафик по умолчанию будет сурово защифрован, так что никакой deep packet inspection нас не испугает.

sudo yum install -y openvpn easy-rsa iptables iptables-services wget yum-cron net-tools bind-utils nc mtr 

Также подцепили Iptables. Это то, что называется state-of-art, фаерволл. Теперь нужно изменить конфигурацию сервера:

vi /etc/openvpn/server.conf

Vi — это текстовый редактор по умолчанию, он крайне, предельно минималистичен. Ибо нефик. Украшательства нам не нужны. Можно взять мой файл, можно развлечь себя на пару недель пониманием как ещё можно конфигурировать сервер, напомню сейчас он заточен чтобы предоставлять клиентским компьютерам выход в сеть приватно.

# Базовые настройки сервера
dev tun
proto tcp
port 1194
keepalive 10 120
max-clients 50

# Сертификаты шифрования
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0

# Шифрование и закалка
reneg-sec 0
remote-cert-tls client
crl-verify crl.pem
tls-version-min 1.2
cipher AES-256-CBC
auth SHA512
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256

# После инициализации сервера дропаем root-доступ
user nobody
group nobody

# Настройки пула ИП адресов в нашей сети
server 172.31.100.0 255.255.255.0
topology subnet
ifconfig-pool-persist ipp.txt
client-config-dir ccd

# Разное 
persist-key
persist-tun
comp-lzo

# Весь трафик пускаем через OpenVPN и используем публичные днс сервера Гугла. Для совсем параноиков можно поднять свой, но пока так 
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

# Логи. 3 - храним кто когда подключается, и критические диагностические сообщения
log-append /var/log/openvpn.log
verb 3

Многие параметры имеют достаточно описательное наименование. Proto TCP (используем tcp сооединение, можно udp, который обеспечивает лучшую устойчивость к сканированию портов и ддосу, но у меня он как-то не полетел), через порт 1194, макс клиентов – и т.п. Надо отметить что для эксперимента Я протестил все 10 клиентов под тяжёлым трафиком, и при этом нагрузка на наш хиленький виртуальный сервер не превышала 3% по времени процессора и памяти.

Теперь пришло время сформировать сертификаты сервера и клиента. Для этого используем EasyRSA. Сертификаты сервера мы генерируем однажды (секрет держим на сервере) и публичный выдаем клиентам, он нужен для того, чтобы клиенты знали что они именно с нашим сервером связываются, если вдруг где-то что-то пойдёт не так, и например ваш интернет провайдер погонит весь трафик через все порты через свой сервер, клиент не даст установить соединение. Это очень маловероятно, но я тоже когда-то репостнул изображение из группы МДК в контакте. Маловероятно не значит невозможно. Следующие команды набирать (или через shift+insert) последовательно!

mkdir /etc/openvpn/ccd
cd ~

Создаём директорию для файлов клиентов. И на всяк возвращаемся в корень

/usr/share/easy-rsa/3/easyrsa init-pki

Инициализируем PKI т.е. Public Key Infrastructure, иначе говоря всё то что нам понадобиться для генерации ключей.

/usr/share/easy-rsa/3/easyrsa build-ca nopass

Программа спросит имя сервера, я использовал просто “VPN”, можно указать FQDN имя сервера (aka Fully Qualified Domain Name), однако же, я предпочёл этого не делать, дабы не потерять портабельность, вдруг я решу перейти на физический сервер или в другое облако, тогда придётся заново создавать все сертификаты, и сервера и клиентов. Nopass потому как мы же не хотим чтобы при каждом соединении пользователю дополнительно ко всем приблудам всплывало окошко с паролем, это уже избыточно.

 /usr/share/easy-rsa/3/easyrsa gen-dh

создаём параметры Diffie-Helllman, нужные для сервера для установки защищённого соединения. Это может занять некоторое заметное время, в окружении использованном мной, около 40 секунд.

/usr/share/easy-rsa/3/easyrsa build-server-full vpn-server nopass

Создаём ключи сервера. vpn-server – имя вашего сервера, какое удобней, но оно понадобиться в будущем так что не стоит использовать рандомную крокозябру. Хоть её и можно будет подсмотреть – но зачем лишний раз?

/usr/share/easy-rsa/3/easyrsa build-client-full klient-1 nopass

В вашем случае klient-1 это местное имя устройства(не обязательно его реальное имя, каким бы оно не было, исключительно для удобства), которое будет подключаться к серверу. Эту команду можо повторять сколько нужно раз, единственно имена должны быть разными.

/usr/share/easy-rsa/3/easyrsa gen-crl

АПДЕЙТ: контрольный сертификат по умолчания действует 180 дней. По-этому можно либо озаботиться увеличением этого времени, либо за день-до запустить команду выше снова и закопировать в директорию openvpn (ниже)

Создаём список для отзыва сертификатов. Мало-ли кто-то станет плохо себя вести?) Но об этом в другой раз.

openvpn --genkey --secret pki/ta.key

Это мы сгенерировали предварительно разделенный ключ (пре-шаред ключ). Это тоже немного поможет нашей параное. Подробнее здесь.

Теперь копируем сгенерированные ключи в папку openvpn, чтобы сервер знал, что происходит. Все нужные файлы находяться в корне в папке pki. Можете проверить это набрав:

cd ~
ls
cd pki

Файлы *.key – это секретная часть ключа, файлы *.crt – это публичная часть ключа, т.н. сертификат. Теперь копируем, если всё было как описано, то это должно выглядеть так:

sudo cp pki/ca.crt /etc/openvpn/ca.crt
sudo cp pki/dh.pem /etc/openvpn/dh.pem
sudo cp pki/issued/vpn-server.crt /etc/openvpn/server.crt
sudo cp pki/private/vpn-server.key /etc/openvpn/server.key
sudo cp pki/ta.key /etc/openvpn/ta.key
sudo cp pki/crl.pem /etc/openvpn/crl.pem

Теперь надо всё это делать запустить. И настроить так, чтобы в случае перезапуска нашего виртуального сервера(сервер это такая машинка которая работает 365\24\7, но бывает что угодно) всё запускалось само:

sudo systemctl -f enable openvpn@server.service
sudo systemctl start openvpn@server.service

Настал хороший момент проверить, что пока всё идёт как надо. Для этого посмотрим хвост(tail) лог файла:

sudo tail -f /var/log/openvpn.log

Ctrl+C, чтобы выйти из просмотра хвоста

Также уже сейчас, можно перейти на финальный этап, конфигурацю клиента, установить соединение и опинговать (Ping 172.31.100.1), если пакеты не теряются, то значит всё ОК, иначе – увидите в хвосте лога. Обычный интернет трафик пока что не пойдёт, тут немного подкрутим iptables. Но для этого нам нужно заставить наш сервер пропускать весь Ip v4 трафик, ибо никакая вменяемая система по умолчанию этого не делает, представьте себе на минуточку, в случае если у вас статичный ИП у ващего интернет-провайдера, через вас кто угодно сможет гнать свой трафик. Не дело же!

vi /etc/sysctl.conf

Добаваляем туда:

net.ipv4.ip_forward = 1

Сохранив файл (нажимаем esc и набираем :wq), применяем изменение:

sudo sysctl -p

Теперь нужно весь трафик загнать в openvpn, дропнуть левых и прочее. Внимание! Таблицы надо вводить разом, проше всего это сделать создав отдельный bash скрипт, предварительно сохранив существующие таблицы:

iptables-save > /tmp/iptables.txt

Внимание, если вам лень разбираться с этим, то немного отклонившись вы можете случайно выбить себя из системы, да так что больше не зайдёте. Создаём файл скрипта для ип-таблиц:

cd ~
touch simple.sh
vi simple.sh

Через ctrl+insert вставляем в него следующее содерджимое:

#!/bin/bash
# Стираем все правила
iptables -F FORWARD
iptables -F INPUT
iptables -F OUTPUT
iptables -X
# Устанавливаем все правила по умолчанию
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# Позволяем всему трафику идти через ип таблицы и дальше
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Принимаем весь трафик идуший наружу на интрефейс по умолчанию
iptables -I OUTPUT -o eth0 -d 0.0.0.0/0 -j ACCEPT
# Принимаем все входяшие соединения на интерфейс по умолчанию
iptables -I INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
## Принимаем все входяшие SSH соединения, именно из-за этого и нужен # хороший пароль ssh, но я об этом подумаю позже)
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -s 0.0.0.0/0 -j ACCEPT
# Принимаем весь входяший трафик на порт OpenVPN
iptables -A INPUT -p tcp --dport 1194 -m state --state NEW -s 0.0.0.0/0 -j ACCEPT
# Активируем NAT для VPN
iptables -t nat -A POSTROUTING -s 172.31.100.0/24 -o eth0 -j MASQUERADE
# позволяем TUN соединения для нашего OpenVPN server
iptables -A INPUT -i tun0 -j ACCEPT
# позволяем TUN соединения к нашему серверу идти дальше
iptables -A FORWARD -i tun0 -j ACCEPT
iptables -A OUTPUT -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
# Позволяем всем исходяшим соединениям через наш VPN идти куда угодно в интернете
iptables -A FORWARD -i tun0 -s 172.31.100.0/24 -d 0.0.0.0/0 -j ACCEPT
# Пока что блокируем весь межклиентский трафик. Это будет в части два.
iptables -A FORWARD -i tun0 -s 172.31.100.0/24 -d 172.31.100.0/24 -j DROP

Сохраняем файл (esq + :wq) и даём этому скрипту права исполнения(chmod) и запускаем:

chmod +x simple.sh
./simple.sh

Актуализируем новые таблицы маршрутизации:

sudo systemctl enable iptables
sudo systemctl start iptables
sudo service iptables save

Если вдруг что-то не прошло, то возможно стоит очистить текущие таблицы маршрутизации, с помощью след скрипта (всё всюда пропускает):

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT

Всё, осталось собрать нужные файлы клиента(ca.crt – корневой сертификат нашего сервера; cleint.crt – сертификат клиента; client.key – секретный ключ клиента; ta.key – предварительно разделенный ключ ) в одном месте и скопировать их на нужное устройство:

mkdir klietn-1-config
/usr/share/easy-rsa/3/easyrsa build-client-full klietn-1 nopass
cp pki/ca.crt klietn-1-config/ca.crt
cp pki/issued/klietn-1.crt klietn-1-config/client.crt
cp pki/private/klient-1.key klient-1-config/client.key
cp pki/ta.key klient-1-config/ta.key

Теперь создаем собственно файл кофигурации (*.ovpn) клиента( сначала touch, затем vi klient-1.ovpn), со следующим содержимым, ВНИМАНИЕ СТРОЧКУ С АДРЕСОМ Remote меняем на адрес своего виртуального сервера, полученный в самом начале:

# Secure OpenVPN Client Config

#viscosity dns full
#viscosity usepeerdns true
#viscosity dhcp true
tls-client
pull
client
dev tun
proto udp
# ЗДЕСЬ ПРОПИСЫВАЕМ АДРЕС ВАШЕГО СЕРВЕРА и порт(если меняли):
remote 123.123.123.123 1194
redirect-gateway def1
nobind
persist-key
persist-tun
comp-lzo
verb 3
ca ca.crt
cert client.crt
key client.key
tls-auth ta.key 1
remote-cert-tls server
ns-cert-type server
key-direction 1
cipher AES-256-CBC
tls-version-min 1.2
auth SHA512
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256

Теперь копируем файл в папку клиента и архивируем, чтобы скачать:

cp klient-1.ovpn klient-1-config/client.ovpn
tar cvfz klient-1-config.tgz klient-1-config

Всё готово к третьей части, если вы дочитали до сих пор, то без проблем скачаете файл, например подключившись с логином от ssh через sftp например через Filezilla:

Клиентская часть OpenVPN

У вас есть *.ovpn файл, 4 файла сертификатов, можно начинать настройки клиентской части. Для никсов и винды берём клиент тут. В случае мака(который тоже никсоподобный) есть отдельно. Для андроидов и айфонов есть клиент в соответвующих магазинах приложений: в Гугл Плей, в Аппл Сторе.

Ставим в укзанное место размещения, запоминаем это место, и прямо туда копируем папку с установками. При установке придется несколько раз вбить пароль, или нажать кнопочку “да”, но вот клиент запущен. Теперь ему надо подсунуть наши настройки. Для этого открываем настройки (на примере винды, маки аналогичны):

В случае андройда\айфона нужно будет импортировать профиль из файоловой систему устройства. Основная проблема айфонов в том что это не так просто, но meh, кому они нужны, если уж вы заморочились контролем над своим цифровым следом:)

В расширенных настройках указываем путь к ovpn файлу:

Теперь также нажимаем connect, ждем некоторое время и вуаля, защищенное соединение в Интернет установлено. Даже Я не смогу следить за вашим траффиком, а уж кто-то там ещё, просто без шансов.

Пожалуй как сделать так чтобы соединение устанавливалось при логине, Я рассказывать не буду, самый надежный способ через реестр, при старте системы устанавливать соединение по выбраному профилю. Теперь можно убедиться в том что вы выходите в Сеть с совершенно другой локации, а заодно и измерить скорость:

Данной скорости вполне достаточно чтобы смотреть нетфликс в 1080п, про 4к не скажу, ибо такого содержимого мало, и оно того не стоит, а для браузинга, и всяких рутинных задач – более чем достаточно.

Послесловие

Даже такой параноидальный впн не даст вам достаточного уровня анонимности и приватности в интернете. Если вы читаете почту на компьютере на котором у вас установлено соединение, но при этом у вас не рутованый телефон с тем же аккаунтом – этому помочь нельзя, ваша геолокация всё время будет известна Гуглам\т.е. кому-угодно. Надо менять свои цифровые привычки. Использовать всякие Firefox, а лучше его форк Waterfox, с установленными приложениями PrivacyBadger, UBlockOrigin, AdNauseaum.

Также один набор ключей-сертификатов можно искользовать на нескольких устройствах, но не одновременно, по каждому набору возможно только одно соединение в единицу времени. Однако если у вас на DDWRT, то ключи-сертификаты можно использовать на нём, и уже к нему будут подключаться все ваши устройства, которые будут и за роутером и за впном. Но это история на другой раз:)

и конечно, если вам данный материал был полезен, жду сатошиков на следующий адрес Ьиткойна: 3CNK4GTmK5M3Nq7CTqzM2ocxabVXEjPj6o

Массовые взломы MODX Revolution или почему нужно делать бэкап

Раздался у меня в пятницу звонок, от представителя одного из экс-заказчиков. Знаете эту историю – скупой платит, не дважды, а всегда. Так вот – его ресурс попал под взлом, и соответственно  стал постепенно разваливаться, сначала фронт переводил посетителей на всякие скамы, типа биномо, потом тоже самое стало происходить в бэкэнде, потом перестало вообще грузить бэкэнд. Итак, явки пароли от хостинга взяты, приступим!

Лечим взломанный MODX Revo

Первым делом, снимаем и проверяем дамп базы на опасные вкрапления shell_exec, eval, base64, passthru, includes, requires, decode и прочее. Скорее всего в базе ничего не будет, т.к. MODX не грешит включением в доставляемое из базы содержимое всяких исполняемых на сервере или в браузере скриптов – привет WordPress, в котором в пост можно встроить майнер монерки, и каждый кто зайдёт – присядет на него. Другое дело как его туда внедрить – но это уже совершенно другая история.

Теперь делаем дамп файлов. Смотрим на исполняемые php файлы, особенно в корне, по хорошему у MODX там должны быть только index.php и config.core.pho, также проверяем php файлы в стандартных папках assets, core, components, manager. Там скорее всего будут в самом начале файлов вкрапления следующего вида:

/*b127e*/

@include “\057dom\145/en\145rs/\071/91\061700\060198\0550/d\157mai\156s/p\162o-s\165shi\056net\057cor\145/co\155pon\145nts\057sho\160kee\160er3\057.ce\06715d\0705.i\143o”;

/*b127e*/

Это заражённый код, который запускается специфическим get-запросом, если ведёте логи – то без труда обнаружите их. Можете просто удалить, можете поглумиться. Бонус заключается в том, что вкрапления будут во всех файлах одинаковы, т.е. их без труда удалить.

Но дальше наступает самое интересное – js файлы. В зависимости от глубины заражения могут быть перезаписаны все файлы. Они, будут все одного размера, сложно же ожидать от массовой атаки какой-либо изощренности? к сожалению все js файлы потеряны. Хорошая новость в том, что если у вас нет бэкапа основные файлы можно взять из стандартной поставки MODX. Другой бонус заключается в том, что в зависимости от количества установленных пакетов js файлов может быть далеко за 1000, и не все пакеты могут быть под рукой. Но, MODX  хранит transport zipы пакетов. Т.е. пакетами, которые отсутствуют, можно смело жертвовать – потом их можно будет установить из транспортных архивов. Итак мы зачистили зараженные файлы. Содержимое core/cache/ грохаем, но не саму папку. Файлы стандартных пакетов меняем на чистые. Грузим на сервер, заходим в админку, устанавливаем все недостающие пакеты из архивов. Вуаля. Теперь пришло время защитить ресурс.

Защищаем взломанный MODX Revo

Как известно эксплоиты сразу не умирают и атаки будут продолжаться усердными роботами ещё некоторое время. Самый простой способ – снять со всех папок права на запись для ВСЕХ, т.е. chmod 0555, и будет. Даже если скрипт будет исполнен он ничего не запишет.

Способ посложнее – убивать все запросы запрашивающие специфические php файлы в стандартных директориях через следующий .htaccess:

IndexIgnore */*
<Files *.php>
Order Deny,Allow
Deny from all
</Files>
<Files *.log>
Order Deny,Allow
Deny from all
</Files>

И ещё один бонус. Бывает так, что вы всё вылечели, а то в админке то ещё где – белый экран. Это из-за того что зловред помимо того, что портит всё js он ещё генерит пустые index.html где попало. Грохаем их.

3-2-1 правило или почему надо делать бэкап.

Всё вышеизложенной канители можно избежать регулярно делая бэкап. На хороших хостингах бэкапы делаются автоматический, но может получится так что перезаписанные файлы тоже будут забэкаплены. Так что грамонтый бэкап – ваша головная боль. Правило 3-2-1 гласит, что у вас должно быть 3 копии ваших данных, и базы и кода и почты, короче всего нужного, 2 разных носителя, т.е жесткий диск и флеш-накопители или облака, и обязательно 1 офф-сайт копия. Т.е. в случае сайта будет ваша машина.

Помимо этого надо различать типы бэкапов. Возможно у вас очень большой ресурс, гига или тера-байты данных и каждый раз делать полный бэкап дорого.

Можно раз в неделю делать инкрементальный бэкап – т.е. хранить только изменение файлов относительно последнего полного бэкапа. А раз в месяц полный.

Есть куча софта для менеджмента бэкапов, ничего конкретного рекламировать не стану, фих всем, криптоанархизм наше фсё!

Как Яндекс рекламодателей дурит.

Все мы, так или иначе связанные с интернетом знаем компанию Яндекс, но не все знакомы с её более глубинной сущностью. А уж тех кто знаком с ней в интимных подробностях – ещё меньше.

Так вот, Яндекс – по сути, сборище некомпетентных криворучек. Я думаю многие помнят их игрища в построении СЕРПы с поведенческими факторами и к чему они привели:) Также многие слыхали об их матрикс-нете, страшном таком алгоритме, который недо-ИИ, в котором 100+++ параметров оценки сайта, и их веса не знает ни сам матрикс-нет ни яндекс.

И вот тут мы приходим к самому главному, Яндекс – это компания фо-профит. Т.е. из своего поисковика ей надо максимально больше выжать денежек из рекламодателей. И вот тут начинается совсем уж магия)

Звонит мне некий чудный персонаж, представляется из отделка гео-сервисов Яндекса и начинает просто соловьем петь, как я всё хорошо веду в их справочнике, какой я молодец и так минут 8. Нормальный такой скрипт написали, но чёрт, мозгом надо мыслить, а не мечтать о рекламодателях идиотах) Просит меня зайти в справочник и выбрать там одну из точек и посмотреть стату… Тут реально сработал робот, потому-что стату я коллекционирую. И вот что-же я там увидел:

Какие заботливые) даже в письме продублировали тогдашнюю картинку, да ещё вместо меня всё обвели… Только вот сразу столько лажы видно) Итак, как мы видим радиус охватывает четыре муниципальных округа красносельского района и даже кусочек кировского, по-этому не будем мелочиться и просто возьмем всё население района ~ 380 тыс. людей. Ещё какое-то количество приезжает сюда на работу, но будем считать, что уезжает столько-же, и вообще сдаётся мне что люди склонны столоваться ближе к домику, так что эта цифра выглядит вполне правдоподобно. Теперь же делим страшную большую цифру в квадратике на 30 дней. ~223 тысячи запросов в день про жратву.  Т.е. 58% ежедневно ищут ресторан в котором поесть или еду заказать. Достаточно вспомнить другую стату, по данным Nielsen 56% россиян хотя-бы раз в году посетили кафе(данные за 2016 год). Удвоим цифру – два раза в год. Этож чисто питер. И да, чтобы соответствовать данным яндекса, надо еще в 180 раз увеличить. Т.е. это первая фантастическая цифра.

Смотрим дальше. Даже лучшая организация на районе получила из этих 6.6М только 153 клика. т.е. даже не 0,1%. бред сумасшедшего.

Но давайте же посмотрим на псевдоцвет. Есть области над водой, над промзонами, в которых цвет максимально темный, Это что вообще такое? хреновое меппинг данных? лень? кривые руки? Да ладно, мы же можем приблизить…

Общий радиус 1км

общий радиус 5км

Эээ, без комментариев. Тут всё и так ясно. С визуализацией данных в Яндексе беда….

Но на этом чудеса не заканчиваются. Цифры волшебным образом стали более реалистичными.

Эти цифры на мои вкус выглядят более приближенными к реальности. И в данном случае предполагаемая цена клика ~5 руб, и цена конверсии в 80-100 руб, не выглядит уж такой абсурдной. Ещё бы и давали потестить, даже за денежку, а не писали что  “И в большинстве случаев, люди выбирали 90, 180 либо 360 (дней)”.  А хотя-бы на 7, ладно на 30… но сразу вписываться в блудняк на 90, только по-тому что какие-то люди что-то там выбирали….

Да мне пофиг. Don’t trush. Verify.

 

 

9 заблуждений о Биткоине

К сожалению из каждой щели сегодня мы слышим про то какой Биткоин такой сякой плохой. Удивительным образом – все что на нас выплескивают, за редким исключением, либо прямая ложь, либо введение в заблуждение. Сегодня я хочу попробовать немного развеять по вентилятору выливаемые фекалии.

1. Майнеры используют компьютеры для решения ОЧЕНЬ СЛОЖНЫХ задач

С точностью наоборот. Эти компьютеры решают НАИМЕНЕЕ СЛОЖНУЮ задачу которую можно представить: они случайным образом перебирают числа, и после каждой попытки сравнивают хеш(побайтовые арифметические операции) числа с данным. Как и любой другой не-майняший полный узел.

2. Майнинговое оборудование подтверждает транзакции, обеспечивая соблюдение правил Сети!

Опять нет, майнинговое оборудование ничего не подтверждает. Оно только получает (вероятно действительную) транзакцию от полных узлов: либо от оператора фермы, но чаще от майнинг пула.

3. Если кто-то контролирует 51% сетевого хэшрейта, то он контролирует Биткоин.

Нет, даже если кто-то обеспечит себе 100% хэшрейта всей Сети он не сможет сделать недействительные транзакции действительными (украсть существующие, увеличить количество, т.е. создать инфляцию, изменить правила, например ввести центральную сущность в сеть). С 50%+ можно попробовать блокировать некоторые транзакции в будущем ИЛИ  переписать ВСЮ прошлую историю, т.е. затратить столько же мощности, сколько уже было затрачено на генерацию текущей цепи блоков в Сети.

4. Блокчейн более эффективен, быстр и дешёв чем централизованные решения.

А ещё мы можем заместить их дабы обеспечить сокращение костов и т.п. Бла-бла-бла. Наоборот. Блокчейн медленнее, дороже в сетапе, и требует значительно больших ресурсов на поддержание. Единственно и достаточно – блокчейн убирает единую точку уязвимости присущую всем централизованным системам.

5. Блокчейн защифрован и обеспечивает приватность, недоступную централизованным технологиям.

А ещё мы можем их использовать чтобы зашифровать\зашифровать чувствительные данные. Ога. В чистом виде сам по себе блокчейн не зашифрован, читабелен, публичен и доступен для ВСЕХ и КАЖДОГО, НАВСЕГДА, большого кошмара для приватности\конфиденциальности и представить сложно.

6. Биткоин можно превзойти, блокчейн это революция – пора забыть про Биткоин.

См. пункты 4 и 5. Нет, блокчейн можно превзойти, но мы преуменьшаем ценность биткоина, как первого децентрализованного средства хранения ценности. Пора начинать развивать Биткоин забыв про блокчейн. Привет Лайтнинг.

7.  Биткоин чаще всего используют криминальные элементы.

Нет. Биткоин чаще всего используют искренние люди, которые стремятся остановить\подавить\победить\избежать\уклониться\нейтрализовать\аннулировать самые страшные преступления в истории, которые и по сей день совершаются самыми жестокими и беспринципными людьми в истории, а именно – налоги, запреты, манипуляции рынком, и конечно вы поняли о ком идёт речь – о Банкирах. Существах без совести, без расовой принадлежности, без ценностей, кроме одной – фальшивки, существующий только в разумах одурманенных людей, по имени деньги.

8. Биткоин – криптовалюта первого поколения. Скоро будет 3, 4 и 5ое вот  мы заживем!

Нет. Биткоин с большим преимуществом самая продвинутая, современная, инновационная технолигия на сегодняшний день. На текущий момент – это проект на котором работает, причем на волонтёрских началах, беспрецедентное количество людей.  Ни одна операционная система, ни одна философская концепция, ни одна физическая теория до сих пор не имела такой концентрации мозговой активности, работающей над проектом.

9. Альткоины изобрели столько всего, что разработчикам Биткоина даже не пришло в голову

Нет. Абсолютно все моменты обеспечивающие продажи альтов (посы, мастерноды, блоки с большими транзакциями), были уже оценены и проигнорированы\отвергнуты самыми первыми разработчиками Биткоина, иногда даже задолго до Биткоина (привет ПоС, использованный в BMONEY, Аж 1998 год).

 

 

 

 

POS (proof-of-stake), или ошибка в ДНК.

TL;DR пруф-оф-стейк отстой, скам и развод для гуманитариев.

Основные определения

В последнее время всё больше нокойнеров, топят за т.н. пруф оф стейк. Остановимся подробнее на этом феномене Для чего понадобиться определить основные понятия.

Нокойнер (англ nocoiner) – это человек, который:

  • полагает что блокчейн >> биткоин
  • постоянно говорит о том, что биткоин – это первое поколение криптовалют, и будет лучший биткоин
  • верит в регулирование и фиатные валюты
  • постоянно вспоминает про тюлпаноманию, компанию южных морей, пузыри, пирамиды и медофа с понзи.
  • не то чтобы не написал ни одной строки кода, но даже не потрудился ознакомится с репозиторием хотя-бы биткоина. Это из серии “гуманитарию скажу в ответ: пакет не надо, карты-нет”.

Пруф оф стейк (англ – proof of stake) – это криптографическое доказательство владения определенной сущностью, при том что эта сущность обладает ещё каким-либо дополнительным свойством, например то что эта сущность не может быть передана кому-либо до выполнения специфических условий.  Т.е. в отличие от доказательства работы, которое отражает затраченную энергию, причем в совершенно термодинамическом смысле, доказательство владения отражает затраченный интерес, что как очевидно вещь совершенно изменчивая.

Критические системы и цена ошибки.

Теперь же определившись с понятиями рассмотрим корневую ошибку в ДНК у разработчиков Etherium Casper, Cardano Ouroboros и прочих и прочих. Возможный интерес разработчиков в PoSу вероятно продиктован желанием неограниченно скалировать(т.е. увеличивать) блокчейн и ложным представлением о том что PoW Биткоина “расточителен”.

За всей этой шумихой вокруг PoS остаётся незамеченным важный, критический важный аспект – а именно то, как PoS, поведёт в случае наихудшего возможного сценария. Например: значительная часть сети уходит в оффлайн, т.е. теряет связь с остальной сетью, или значительная часть приватных ключей украдена/куплена/потеряно.

Кто-то может подумать что такие события маловероятны и вряд-ли когда-либо произойдут, однако 1) они могут быть  не так редки как оцениваются 2) даже если вероятность события крайне мала, например 0.1%, это лишь означает, что оно всё равно произойдёт, просто чуть позже. Т.н. “Черные лебеди”

Проще говоря, Черные лебеди  – это маловероятные и трудно прогнозируемые события, которые имеют масштабные последствия. Иллюзия безопасности, основанная на том, что предыдущие 10-100-1000 лет было безопасно.

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

  • для сохранности, нарушения в таких системах могут привести к потере жизни, тяжелому увечью, обширному повреждению окружающей среды. Примеры таких систем – управляющие системы на хим. производствах, атомных реакторах, автопилоты, и т.п.
  • для предназначения, нарушения в таких системах могут привести к потерям несопоставимо большим самой системы: система подачи топлива в ракетоносителе, система управления багажом в крупных аэропортах, и т.п.
  • для бизнеса, нарушения в таких системах ведут к прямому материальному и репутационному урону, часто выражаются в том что система уходит в состояние “перестала отвечать на запросы”.  К таким системам относятся банковские продукты, крупная интернет торговля, биржи, ERP-системы предприятий и т.п.
  • для информационной безопасности, в таких системах при нарушениях может быть утечка чувствительных данных. Тут всё ясно, такие системы вокруг сплошным плотным забором.

Биткоин удовлетворяет требованиям, предъявляемым ко всем типам критических систем. Права на ошибку просто нет. Хороший опытный разработчик всегда знает что мы лишь в шаге от катастрофы, неважно как прекрасно всё выглядит на бумаге и как гладко всё шло до сих пор.

Приведу несколько примеров того, где инженерные просчеты на высочайшем уровне привели к катарстрофам

Катастрофа Конкорда в 2000 году

Конкорд, считавшийся одним из самых безопасных самолетов в мире, и один из двух пассажирских сверхзвуковых самолетов, находился в эксплуатации с 1976 года, взлетая с ВПП через 4 минуту после предыдущего самолёта порвал одну из покрышек шасси об отвалившеюся от того титановую створку  реверса двигателя (что не представляло для того опасности), и обрывок лопнувшей покрышки попал в топливный бак на крыле, вызвал в нём утечку, а другим обрывком покрышки повредило проводку топливных насосов, вызвав искрение. Вытекающий керосин воспламенился и включил систему пожаротушения двигателя, который тут-же был отключен экипажем, при этом второй двигатель на том же крыле уже не мог обеспечить тягу из-за окружавших его раскаленных продуктов горения и тоже отключился. И тут читатель должен себе представить Конкорд, огромный самолет у которого уже 75% ВПП позади и тяга есть только на одном крыле, т.к. второе крыло охвачено огнём, и двигатели там не тянут совсем, таки отрывается от полосы и взлетает. Шансы на выживание? 0.

Катастрофа Челленжера в 1986

NASA оценивало вероятность катастрофы в 1:100000,  однако позже всё оказалось совсем иначе и уже оценивалась как 1:100. Катастрофа развивалась подобно вышеописанной, только с тем отличием, что началась из-за недостаточной термической эластичности уплотнительного кольца, повлекшее за собой его повреждение в следствие необычайно низкой температуры (аж -1 по Цельсию!) , и дальше уже пошла цепь непредвиденных катастрофических последствий.

Чернобыль 1986

Истинной картины данной катастрофы, по всей видимости мы уже не узнаем никогда. Однако можно немного поразмыслить. Катастрофа началась за день до взрыва. Энергоблок планировали заглушить для планово-предупредительного ремонта. В штатном режиме в реакторе идёт контролируемая реакция распада, энергия которой нагревает прокачиваемую воду в перегретый пар, который вращает ротор электрогенератора. В ходе эксперимента планировалось использовать кинетическую энергию ротора для питания циркуляционных насосов.  Но как оказалось считать энергию вращения ещё не умели, и её не хватило. Реактор сначала заглушили, введя в него поглощающие стержни, и заглушив реактор примерно до 1% от номинальной мощности, чего было недостаточно для прокачки теплоносителя через него, и тогда его стали в ручном режиме разгонять, выводя поглощающие стержни, что при этом происходило в рабочем теле делящегося вещества – одной В. известно, но когда началось лавинообразное нарастание мощности реактора, его уже было не остановить и весь этот радиоактивный адок вырвался наружу.

Фукусима 2011

Спустя 25 лет после Чернобыля, в Японии, в которой землетрясения происходят регулярно, и которая к ним привычно случилось самое мощное из известных землетрясений в Японии, в 9 магнитуд. За ним последовало цунами, что и вызвало остановку реакторов и их перегрев и расплавление.

Как итог: когда речь идёт о критических системах глобального масштаба, даже самые невероятно-плохие сценарии надо держать в голове. Один из основных законов В. “если какая-то хрень может случиться, она обязательно случиться, когда её меньше всего ожидаешь”.

Критические события: PoW vs PoS.

А сейчас рассмотрим как POS и POW поведут себя в сценариях, вполне возможных и уже даже осуществляемых: фрагментация сети и неожиданный простой в течение отрезка времени.

Собственно, почему я сказал уже осуществляемых, чтобы вы не думали о малых, чисто умозрительных, вероятностях. В течение т.н. Арабской весны, турецкое правительство использовало BGP-перехват, для блокировки всего трафика  Twitter исходящего от своих же граждан. Китай имеет в своём распоряжении куда более сложные инструменты, такие как DPI, чтобы блокировать вообще весь специфический трафик в рамках Великого Китайского Брандмауэра (слово которое нам любезно предоставили мелкомягкие для подмены английского firewall).

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

Итак обратимся непосредственно к тому, как поведут себя оба протокола и PoW и PoS в таких сценариях:

Сценарий 1: Вся сеть вынужденно прекращает функционирование на некоторый отрезок времени. Потом перезагружается.

Не все регионы могут быть перезагружены одновременно и соответственно не смогут одновременно восстановить связь с остальной частью сети. Это приведет к тому, что будут регионы, в которых образуются свои, независимые блокчейны(далее цепи), которые начинаются с последнего общего блока, предшествовавшего падению сети, тем самым порождая множественные разделения основной цепи.

С течением времени коммуникация между регионами восстановиться и узлы этих независимых сетей начнут обмениваться между собой.

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

В случае PoS, у узлов не будет ни малейшего понятия какая цепь является той самой, единственно корректной. В отличие от PoW, в PoS нет единого объективного (напомню, что объективной является реальность, материя, явления существующая в независимости от нашего знания) критерия того, какая из двух сравнимых сетей “настоящая”. Поведение после разделения в таком случае не является предопределенным и соответственно невозможно автоматизировать процесс слияния без введения дополнительных произвольных правил, что как раз и влечет за собой расширение потенциальных уязвимостей сети.  Разделение вообще может стать постоянным, поскольку некоторые протоколы делают невозможным возврат далеко назад.

Разработчики PoS-а вообще часто доходят до того, что надо “наказывать” узлы которые ведут себя не по правилам. Что они при этом забывают упомянуть, так это то что при разделении цепи, все узлы вели себя по правилам, но разделение цепи произошло.

Сценарий 2: Некоторые части сети фрагментируются от остальной сети.

Несложно догадаться что всё сведется к той же ситуации, что и в первом сценарии. Фрагменты будут продолжать функционировать как обычно, кроме того, что количество узлов с которыми они будут обмениваться, станет сильно меньше. Когда же полная сеть восстановиться появится путаница в том, какая же версия цепи настоящая.

Основное отличие от сценария 1 в том, что сценарий 2 куда более вероятен. Перенаправление трафика куда проще чем вывод всего фрагмента сети в отключенное состояние. Мы уже видели как это делается на примере Турции. Фрагменты сети могут быть произвольно малых размеров – хоть город, хоть район, не важно. Можно предположить, что с нашим бешеным принтером, и мировой банковской олигархией такое будет происходить сплошь и рядом.

Сценарий 3: Утраченные приватные ключи.

Распределение всего, в том числе и криптоактивов подчиняется универсальным закономерностям, и вполне резонно предположить, что 1% держателей PoS будет контролировать 50%+ всего оборота сети. Приватные ключи таких держателей могут быть похищены в результате глубоко эшелонированых атак, включающих похищения, пытки, вымогательство, шантаж и прочие радости.

Похищая ключи, вместо того чтобы занимать или покупать монеты на открытом рынке, атакующие избегают изменения их цены. Достаточно странно,что рассматривая данный вектор атаки на PoS цепь, разработчики полагают, что единственный путь получения большинства монет (а тем самым и получения контроля над сетью) это покупка на открытом рынке, что делает такую атаку невыполнимой. Кража приватных ключей в данном случае позволяет обходить эти трудности с куда меньшими затратами.

(как вариант, возможна покупка старых ключей у держателей потерявших интерес к данной PoS монете)

В случае PoW это эквивалентно получения контроля над 50%+ хеш-мощности сети.

Допустим, что кому-то удалось получить большую часть хеш-мощности сети, для Биткоина это не реально практический, но для других PoW-монет, может быть осуществимо. И что можно сделать с этой мощностью? Можно попробовать осуществлять двойные траты или переписать всю цепь. Но чтобы осуществить двойную трату, нужно потратить кучу средств, получение большой части мощности в данном случае – это только первый шаг. Даже несмотря на то как ужасно это звучит, получение кем-то 50%+ процентов хэш-мощности сети, сам протокол PoW продолжает работать как обычно, и только одна цепь может быть истинной (однако SPV, simplified payment verification, ноды можно обмануть, т.к. они не загружают блоки полностью и не хранят весь блокчейн, из-за этого крайне рекомендуется иметь хотя-бы одну полную ноду). Для того чтобы переписать весь блокчейн ещё требуется куда большая мощность чем мощность половины сети. В данном случае сами пользователи сети могут предпринять смену алгоритма и свести смысл этих усилий к эффективному нулю.

В любом случае, это крайне плохая ситуация. Но как мы видим, получение большей части хэш-мощности, это ещё полдела, надо постоянно продолжать вложения чтобы в итоге переписать цепь с нуля. Это можно рассматривать как двух-факторную защиту. В случае атаки, поведение сети предсказуемо, и не возникнет сомнений в том какая цепь является истинной. Такое поведение PoW сетей на текущий момент крайне недооценено, спасибо всяким так, не будем показывать пальцем, утверждающим де-биткоин проект спецслужб)

В тоже время PoS являет собой полную противоположность. Получение 50%+ ставки дает неограниченные возможности. Двойная трата становиться возможной без каких-либо дополнительных затрат. Также можно либо а) переписать историю если в протоколе нет чекпоинтов б)если они есть (привет Каспер, ссылка есть выше), то можно сделать несовместимые ответвления сети. Изменения алгоритма в PoS  не даёт в данном случае ничего, т.к. нет цены переключения, в виде например инвестиций в железо.

Вместо завершения, или почему PoS – ошибка ДНК разработчиков.

Подводя итог, PoW предоставляет два преимущества, когда речь идёт о безопасности сети:

  1. PoW защищает будущее: когда происходит разветвление сети, есть объективный механизм, автоматический разрезающий конфликты между воссоединившимися узлами, без человеческого вмешательства и без необходимости доверия третьей стороне-арбитру.
  2. PoW защищает прошлое: для того чтобы изменить ваш баланс, надо не только получить 50%+ мощности, но и затратить всю ту мощность что уже была затрачена на создание блокчейна.

PoS  не предлагает ни того, ни другого. PoS-фаны могут спекулировать на тему того, что чекпоинты решают эти проблемы, однако они лишь переносят их в другую плоскость. Чекпоинты – это централизованное решение, что открывает лишь ещё одну выгребную яму.

(в теории можно реализовать чекпоинты децентрализовано, но это лишь приведет к проблемам которые потребуют централизованных решений, об этом в другой раз, что делает чекпоинты эффективно централизованным решением)


В заключении, критический важно понимать как важен правильный склад ума, умение предсказывать не только известные известные, известные неизвестные и наконец неизвестные неизвестные угрозы (так их классифицировал один мин.обороны атомной державы, неизвестные неизвестные угрозы – это неизвестные нам по природе своей угрозы, про которые мы не знаем даже что они есть), при разработке глобальных протоколов на подобие Биткоина или вообще блокчейна. Это критические системы, заслуживающие самого тщательного анализа и всеобъемлющей инженерии.

Протоколы PoS построены на неверных и наивных представлениях, которые не принимают во внимание худшие возможные сценарии. PoS – это шаг в неправильном направлении: вместо поднятия планки качества, её снижение ради фальшивых бенефиций. Я называю это ошибкой в ДНК, т.е. в самом основании любого начинания.

Будущее биткоина

В данном посте речь пойдет не про курс биткоина к презренной зеленой бумажке, а о том что ожидает биткоин в технологическом плане в ближайшем будущем.

Не так давно биткоин преодолел отметку в 10 тыс, долларов, после чего провёл пару днй в плоской коррекции, нарисовав две не очень приятные для говядины свечки подряд:

После чего, ракетой полетел дальше, и выше и выше…

Поскольку сейчас можно услышать уже и бабушек в сбербанках упоминающих биткоин, и по федеральным каналам стали попискивать, то критический важно понимать, что на графике приведенном выше вы скорее всего потеряете. Соблазн зашортить на всю котлету на исторических хаях очень велик. И вместо того, чтобы заниматься или примериваться к спекуляциям, лучше немного осведомится о том, что ждет биток в технологическом плане. Как сказал Уоррен Баффет, “инвестиции не рискованны, риск начинается тогда, когда вы не понимаете что вы делаете”.

Поскольку биткоин и лежащая в основе технология блокчейн относительно новы, например они куда свежее чем например СТО или ядрена бомба, или даже полевой транзистор, но уже всё таки постарше чем такие умопомрачительные вещи как CRISPR (про него в другой раз), попытка проникнуть в суть этой технологии может показаться пугающе сложной. Это статья написана для того, чтобы осветить проблему масштабирования, которая в настоящий момент стоит перед биткоином, и чего можно ожидать в ближайшем будущем для ее решения.

Данный пост написан с оглядкой на то, что далеко не у всех есть некий технологический бэкграунд, и я не рассчитываю на то, что вы понимаете ООП, и прочие. Тем не менее базовое понятие, что такое блокчейн и биткоин крайне желательно. Об этом можно почитать и посмотреть здесь. Итак, давайте приступать.

Масштабируемость биткоина, или почему #NO2X

Когда Биткоин был впервые введен в оборот, его полумифический создатель Сатоши Накамото, описал Биткойн в своём вайтпепере как “исключительно пир-ту-пир версию электронной наличности, которая позволит осуществлять прямой обмен между участниками сети, без участия какого-либо централизованного института посередине”. Привед, центробанки!

Одной из фундаментальных ценностей биткоина была почти мгновенная и безопасная транзакция от пользователя к пользователю (пир-ту-пир). Сейчас, как никогда ранее, Биткоин становиться превалирующей мировой крипто-валютой, с ростом за последний год более чем в 12 раз.

Такой бурный рост породил помимо огромного числа “онолитегов”, верещащих про тюльпаны и прочие пузыри, еще и рост количества транзакций в сети, вплоть до 400000 и более в день.

Уже из одного этого графика становится очевидна основная проблема Биткоина – что такое, пусть миллион транзакций в сутки в глобальном масштабе – капля в море, та же Visa в сутки осуществляет 150+ миллионов, т.е. около 1600 в секунду. Теперь вспомним, что все транзакции в сети Биткоина записываются в блоки размером около 1 мегабайта, т.е. миллиона байт. Блоки идут +- раз в 10 минут, т.е. 600*1600=960000, т.е. на одну транзакцию должно приходится чуть больше байта, чтобы обеспечить пропускную способность визы. Это нереально, т.к. в транзакцию входит адрес отправителя, получателя, количество битков, временной отпечаток, нонс, хэш предыдущего блока. Ну никак. Небольшая инфографика о том, что на самом деле происходит при транзакции в сети биткоина:

Т.е. как вы видите, без майнеров сеть невозможна, ноды не майнят, они лишь регистрируют транзакции и вносят их в блокчейн, а подтверждают эти транзакции – майнеры. Тут перенесёмся в далекое будущее, когда последний биткоин будет добыт, их же ограниченное количество, то теперь инициатива майнеров будет регулироваться стоимостью транзакций в сети, выше плата – быстрее транзакция. Вот именно это сейчас и происходит. Теперь вернёмся в настоящее и посмотрим как это работает сейчас в числах:

  • медиана размера транзакции находится в районе 250 байт(именно медиана, потому что мы знаем что у 9 медсестёр и одного игорюши сечина средняя зп огого какая)
  • Как уже упоминалось, размер блока около 1 мб.
  • т.е. в блоке около 4000 транзакций
  • время блока – около 10 минут
  • т.е. мы получаем 6,6(6) транзакций в секунду.  маловато.

Транзакции которые не вошли в блок попадают в так называемый mempool который есть на каждой ноде, где и находятся до попадания в блок. И вот у нас в мемпуле сидит тысяч 100 транзакций ждущих подтверждения. И как майнерам выбрать какую именно подтверждать? Правильно, с помощью платы за транзакцию. Обычно она исчисляется с сатоши(10 миллиардных биткоина) за байт, и может доходить до 1000 сатоши/байт. Еще немного математики:  0.00000001 * 1000 * 250 = 0.0025 биткоина, т.е. в моменте 40 долларов. Дорого. Здесь следует сделать оговорку, что это плоская плата, будете переводить 0.01 биткоина или 10 или 100 – не важно, плата будет одинаковой.

Теперь представим что Саша хочет послать Маше 10 баксов – т.е. он либо заплатит еще 10 за транзакцию, либо будет ждать несколько десятков блоков.

Одним из предлагаемых решений был так называемый SegWit2x, который предполагал увеличение блока в два раза, каждый раз когда надо. По небольшому размышлению становится понятно, что это – путь в никуда. пусть 10 транзакций в секунду до 100000 в секунду даст нам увеличение блока в 10 тысяч раз, т.е. до 10 гб. Как такие блоки передавать по сети? я уж не говорю что хранить такой блокчейн можно будет только на очень больших массивах жестких дисков или в облаке, что приведет к предельной концентрации корневых нод и всей сети. Но есть и другие пути…

Segregated Witness (SegWit)

Или разделённое свидетельство. Оно уже было имплементировано в сеть, еще в августе. Суть в том что размер транзакции уменьшается, тем самым позволяя большему количеству транзакции войти в блок. Сегвит это мягкая вилка (soft fork), т.е. полностью совместимая с предудущими версиями блоков.

Каждая транзакция от отправителя, содержит подпись отправителя, или говоря иначе свидетельство. Это свидетельство вообще говоря не является необходимым для подтверждения транзакции, поэтому происходит разделение. Если такая транзакция попадает на ноду еще не поддерживающую сегвит, нода просто удаляет свидетельство этой транзакции, уменьшая размер транзакции и экономя место в блоке. Кроме того, нода больше не может изменять данные в свидетельстве, что было возможно раньше. Это позволяет  ввести много-уровневые решения, о которых речь пойдёт ниже.

Более того, сегвит изменяет определение размера транзакции: вместо того чтобы исчислять его в байтах, ей присваивается вес, вес блока составляет 4000. До-сегвитовская транзакция имеет вес 4, а поддерживающая сегвит 0.25, что позволяет поместить в блок примерно в 16 раз больше транзакций при увеличении размера блока максимум до 2 мб. Однако для того, чтобы полностью перевести всю сеть биткоина на сегвит, необходимо чтобы все корневые узлы и все кошельки внедрили поддержку сегвита, что пока идёт не очень быстро (в данном случае уместна аналогия с апгрейдом с винХП на вин7, против перехода с винХП на хромОсь в случае харфорка сегвитХ2), и к текущему моменту только 12% всех транзакций идут в сегвит формате.

Поскольку принятие сегвита несет выгоды для всей сети в целом, и для каждого пользователя в частности, настоятельно рекомендуется использовать кошельки с поддержкой сегвита. Конечно будет не лишним упомянуть, что кошельки рекомендованные мной ранее поддерживают сегвит. Сам себя не похвалишь….)

Слоёные решения

Дя, я долго подбирал русский аналог для multi-layered и многоуровневое решение как то не отражает сути.

Как уже описывал выше, покупка чашки кофе за биткоины может оказаться не самой удачной идей (как впрочем и используя банковскую карту), и цена транзакции может быть выше покупки и время подтверждения в лучшем случае 10 минут – в общем не-не-не.

Протокол Lightning Network – одно из текущих решений, находящихся в разработке, от которого ожидается решение проблемы, или во всяком случае значительное её смягчение. Эта сеть состоит из двух дополнительных слоёв, которые позволяют пользователям создавать прямые каналы между собой, фактический позволяя осуществлять неограниченное количество транзакций между собой практический мгновенно.  Так так, скажет внимательные читатель, вот мы тут уединимся и наплодим целую кучу биткоинов, которые не в сети, а потом…. А вот потом не будет, и сейчас разберем каким образом все предполагается осуществлять.

Второй слой

Пользователь присоединяется к сети второго слоя производя транзакцию в основной блокчейн, в которой он декларирует количество биткоинов которое он собирается использовать в сети второго слоя. После чего пользователь присоединяется к группе связанных между собой узлов, называемых фабриками каналов (channel factories). Этот канал по сути представляет собой группу пользователей, заинтересованных в проведении между собой большого количества мелких транзакций (вот же ж мечта состоятельного разумного человека – раз в месяц выделяет сотую биточка на кофе, сотую на вино и т.д. присоединяясь к соответствующим каналам, идеальное планирование расходов!). После чего фабрики каналов уже на третьем слое делают возможным неограниченное количество транзакций между участниками, но в рамках декларированного количества биткоинов.

lightning network channel structure

Третий слой

Каналы микроплатежей создаются на третьем уровне для обеспечения расчетов между любыми двумя участниками (в картинке наверху их 3 посколку участников три, простейгая комбинаторика, 4 участника – окей, 6, n участников – n*(n-1)/2, на два делим из-за того что сочетания AB = BA в нашем случае). Поскольку на третьем уровне основной блокчейн уже не присутствует, он не может быть использован для подтверждения. Вместо этого используются смарт-контракты (умные контракты, в отличие от тех к которым мы привыкли, они не статичны во времени и не могут быть изменены в одностороннем порядке, как мы это любим), такие как мультиподпись, означающая адрес который может быть подписан несколькими участниками для перемещения фондов, или же хэшированные ограниченные по времени контракты, представляющие собой криптографический подписанный автоматический контракт который замораживает фонды на определенное заранее время, и коль скоро у вас в кармане нет квантового компьютера который сломает криптографическую подпись.

Рассмотрим на примере, как работает микротранзакция в лаитнинг сети:

  1. Маша хочет зарезервировать 1 биткоин для расчетов с Сашей. Она декларирует этот 1 биткоин в передающую транзакцию в блокчейн. Это означает, что этот 1 биткоин зарезервирован за адресом с мультиподписью, который может быть освобожден если обе стороны решат прекратить действие этого адреса. Сам адрес защищен хэшированным, ограниченным по времени контрактом, который можно интерпретировать так: “У Маши есть 1 биткоин, у Саши есть 0 биткойнов, которые будут освобождены через сутки”. Это означает, что у Маши есть на 1 биткоин меньше на сутки, после чего он вернется к Маше с соответствующей записью в блокчейн (если конечно Маша не решит не обламывать Сашу).
  2. Маша, спустя 4 часа, всё таки решает, что ну на биток Саша не тянет, но на 0.1 вполне. Теперь контракт изменяется на “У Маши есть 0.9 биткоина, у Саши есть 0.1 биткоина, которые будут освобождены через 18 часов”.
  3. Полные сутки проходят и эта передающая транзакция закрывается, и финальный контракт содержащий балансы Саши и Маши отправляется в блокчейн. Если Саша и Маша хотят продолжать расчеты дальше, то они могут продлить действие контракта сколь им угодно. Если один из них захочет прекратить действие досрочно – то он\она выходит из передающий транзакции, что влечет немедленную публикацию контракта в блокчейн с актуальными на момент выхода балансами.

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

Имплементация лаитнинг сети весьма сложна, и полностью её понять практический с нуля невозможно, но для конечного пользователя это и не важно: слыхали про ПеГеПе? ака pretty good privacy, в ранних имплементациях это было клево, вы полторы минуты стучите рандомно по клавиатуре, у вас создаётся случайный ключ, вы этим ключом шифруете свое сообщение, и шифруете этот ключ публичным ключом адресата, и отправляете шифрованное сообщение и шифрованный ключ, получатель дешифрует ключ своим приватным ключом, и с помощью полученного ключа, наконец расшифровывает ваше сообщение? уже мозг закипел? окей, а если я теперь скажу что тот же самый пгп используется в телеграмме\ватсапе\и т.д. и вы этого даже не замечаете)) Тоже самое произойдёт с лаитнинг сетью со временем.

Но вернёмся к нашим слоям над блокчейном. В идеале пользователь не будет создавать передающие транзакции во втором слое слишком часто. Люди рабы своих привычек, и есть регулярные платежи которые постоянно повторяются с одними и теми же адресатами. И будут жить эти передающие каналы долго, дни, месяцы, годы…

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

Да это звучит крайне сомнительно, но второй слой, состоящий из фабрик каналов был только недавно представлен, и находится в интенсивной разработке, по-этому изложение слегка абстрактно и опирается на целую кучу допущений. Обещают запустить в 2018 году, тогда и будет видно, но похоже это станет наибольшим улучшением пропускной сети на сегодняшний день.

Шнорр подписи (Schnorr Signatures)

Когда пользователь посылает транзакцию в биткоинах, входные данные транзакции (количество, что вы посылаете) вычисляется просто изымая из блокчейна данные об общем количестве биткоинов, которые были у вас до сих пор не потраченными. Для примера:

  • Начиная с пустого кошелька, Я получаю 1 биткоин в транзакции №1, потом в отдельной транзакции №2 Я получаю ещё 1 биткоин (яхууу!)
  • Теперь я хочу отправить 2 биткоина, у этой транзакции №3, будет 2 входящие транзакции №1 и №2

В текущей сети, каждая транзакция требует своей подписи. Это увеличивает размер транзакции и тем самым поднимая стоимость транзакции.

Шнорр подписи дают альтернативный способ хранения данных подписи в транзакции. Все входящие транзакции хранятся в одном месте использую Шнорр-алгоритм, который сильно уменьшает размер подписи в транзакции, что позволяет ещё увеличить пропускную способность храня больше транзакций в блоке.

текущая и шнорр подпись

Сверх того, Шнорр-подписи могут помочь блокчейну биткоина в плане анонимности, дополняя CoinJunction транзакции. CoinJunction, как следует из названия – объединение\соединение монет, является методом анонимизации биткоина путем смешения входящих транзакции от множества людей прежде чем отправлять их дальше. Поскольку происходит смешение из множества источников, требуется больше подписей, тем самым опять же делая транзакцию неоправданно дорогой. Здесь Шнорр-подпись может объединить все входящие транзакции в одну подпись, тем самым снижая цену транзакции и побуждая больше использовать CoinJunction.

И еще сверх этого, Шнорр позволяет вводить мультиподпись по цене одной. Не важно сколько подписей нужно  – они все объединяются в одну, Шнорр-подпись.

Шнорр-подписи стали возможны только с внедрением СегВита, поскольку данные подписи не могут быть изменены третьими лицами, они могут быть объединены в одну Шорр-подпись.

MimbleWimble

MimbleWimble – это радикальное, но необыкновенно мощное предложение по улучшению биткоина, которое было сделано анонимно еще в июле 2016.

Названное по имени проклятия из Гарри Поттера, которое заставляло проклятого замолчать (silence же!, ака сало, чертовы нубы блин), МW нацелена на то, чтобы полностью удалить транзакции из блоков. Т.е. оставить в транзакции только входящее количество, исходящее количество и подпись, при том что подпись может быть расшифрована только получателем, соответственно верификация транзакции остается на совести получателя  – не подтвердил, не получил, ок… Я один чую здесь запах пе-ге-пе?

С помощью этого расширения, блоки состоят только из списка входящих транзакций, списка исходящих транзакций и зашифрованных подписей. Блоки могут быть связаны между собой без каких-либо проблем, поскольку количество на входе и выходе из блока не шифрованы. Узлам (нодам) остаётся только проверить, что разница между входом и выходом нуль, а подписи останутся зашифрованными.

Удаление полных данных о транзакции ведёт к существенному снижению объема текущего блокчейна и делает невозможным отслеживание транзакций (просто мечта криптопанков, и кошмар властей и хозяев денег). Более того, с блоками содержащими только не истраченные биткоины (т.е. те что поступили на адрес но никуда оттуда еще не ушли), нодам нужно будет отслеживать только неистраченное количество биткоинов, вместо того чтобы хранить всю историю транзакций, что приведет к огромному росту производительности сети (вспомним что только 3% из всех биткоинов в обороте, остальные лежат в холодную где-то).

Математические детали MW явно не попадают в предмет рассмотрения этой статьи. Однако внедрение, пусть и дающее очевидные преимущества, требует отказа от алгоритма SHA-256, на который опирается вся экосистема биткоина, делая внедрение не реализуемым.

Однако, существуют предложения по имплементации MW в виде так называемого sidechain – стороннего блокчейна с взаимооднозначным соответствием с основным блокчейном биткоина. Эта связь чем то похожа на часовой механизм, или цепную передачу. Эта связь позволит переносить ценность из блокчейна биткоина в блокчейн MW, проводить в ней приватные и мгновенные(во всяком случае значительно более шустрые транзакции), и возвращать ценность в биткоинах в основной блокчейн.

связанная цепь

По факту уже есть группа разработчиков в процессе разработки отдельной криптовалюты на основе MimbleWimble – GRIN; недавно запущенной в тестовом режиме и готовящейся к полноценному запуску в скором будущем (интересно каков будет пре-майн и какое будет ICO:).

Rootstock

Rootstock по какой-то непостижимой причине является одним из наименее обсуждаемых улучшений, но тем не менее одним из самых многообещающих. Rootstock описывают как “первая платформа с открытым исходным кодом для умных контрактов с взаимооднозначным соответствием с Биткоином, которая также позволяет майнерам получать дополнительную награду при помощи совмещенного майнига (одновременная добыча двух монет без какого-либо ущерба для добычи основной, не путать с обычным дуал-майнингом, тут второй алгоритм использует данные первого), позволяя им активно участвовать в РЕВОЛЮЦИИ в умных контрактах”. Устал я от всевозможных революционеров, правда ж… доколе?)))

Во многом походя на MimbleWimble, Rootstock разрабатывается как сайдчейн. Его фундаментальная ценность заключается в фокусе на умных контрактах. Rootstock нацелен на то чтобы стать платформой для умных контрактов полной по Тьюрингу(т.е. платформой на которой можно запрограммировать любую вычислимую функцию, пример функции не-вычислимой очень прост: функция равная 0, если в записи числа Pi нет подряд 4х нулей, и равной 1 если есть, поскольку число нулей которое мы может попросить произвольно, а Pi иррационально, что означает что она содержит все возможные комбинации цифр подряд. Для нас эта функция всегда равна 1, для машины всегда 0, потому что за конечное время PI  не вычислить). При этом эта платформа сможет исполнять умные контракты на базе эфира, и разработанные на собственной платформе.

Разработчики Rootstock рассчитывают имплементировать  обширный функционал умных контрактов, сохраняя доминирующую пользовательскую базу пользователей биткоина, с помощью сайдчейна с взаимооднозначным соответствием с блокчейном биткоина. Также она создаётся с расчетом на уже существующую вычислительную мощность сети биткоина, тем самым избегая необходимости отдельно защищать свой блокчейн. Также предполагается внедрить собственный механизм многослойности под названием Lumino, с помощью которого они обещают 20000 транзакций в секунду.

Rootstock планируют запуск к концу 2017 года, т.е. уже практический завтра! Судя по всему платформа прекрасно дополняет блокчейн биткоина, и если все что они обещают смогут реализовать это добавит огромный пласт функционала в сеть биткоина, тем самым увеличив его ценность.


Если вы дочитали до сюда, мои поздравления! Смею надеяться, что хоть каплю масла в голову я добавил, и вы также разделите со мной оптимизм по поводу светлого будущего биткоина.

Биткоин не совершенен и стоит перед масштабными вызовами, которые предстоит решить сообществу. Однако, это сообщество состоит из постоянно растущего числа разработчиков, и в отличии от любого централизованного агрегата каждый в нём заинтересован в том чтобы сделать биткоин лучше и ценнее.

Никоим образом эта статья не освещает всё что происходит в области блокчейна сейчас. Если у вас есть что добавить – оставляете в комментариях.

Данная статья является дополненным и расширенным переводом этой.

Если вам интересно углублять своё понимание биткоина дальше, то вот несколько ссылок:

И конечно можно купить мне пиво или кофе:)

BTC: 1JMRpXEB9kCtpegdFpe6YEx4JEafDxZRTq

ETH: 0xbB7a62236948e12097523EA9dAD489B37BCd2A2F

>:^_^:<

Почему биткоин не пирамида?

Данный пост, является продолжением “всей истины о майиниге“. Наверное, не секрет, что для меня вопрос “почему?” глубоко омерзителен, и куда более мне симпатична форма “зачем?”, при всей тенденциозности заголовков, Я оставляю себе роскошь предположения, что человек разумный сможет из этого потока сознания извлечь разумное для себя.
лирическое оступление: если бы вы в момент предыдущего поста, купили биткоин, а 1 ноября биток можно было купить по 6800$, сегодня их можно продать по 9500$ легко, скромно предполагаю что переводить в годовые не стоит…

Почему биткоин не пирамида?!

Те, кто проводят аналогии с тюльпаноманией, компанией южных морей, ГКО и прочим оперируют лишь вершиной айсберга. Смотрят в книжку, видят фишку – график похож – ололо, тоже самое… Скажем так, это подход не совсем одноклеточных существ, но явно не венца творения. Когда люди, ворочающие миллионами долларов, рассказывают как они завели на очередную биржу 5 битков(!!!) и поторговали две недели, и стали экспертами в криптовалюте — это ничего кроме смеха не вызывает, по крайней мере у меня.

стоит понимать, что и все предыдущие пузыри фундаментально были другими, это было другое время, скорость распространения информации была абсолютно другой, локализация денег была абсолютно другой (тщательно умалчиваем про то, что тогда были деньги, а не валюта), и всегда была категория лиц которая обладала опережающей информацией, т.н. инсайдом, на котором они неплохо так работали.

Аргумент за нумером два, биткоин использовали для наркоторговли, оборота оружия, и т.п…. Окай, давайте посчитаем сколько триллионов долларов провернулись на наркоте/оружии/работорговли (да-да, сидишь в офисе на з/п РАБотничег^^? ), не получается ? ога.

Аргумент за нумером три: биткоин обеспечивается исключительно верой в рост. Окей, доллар так уже 46 лет живёт. Единственная естественная встроенная функция биткоина – это среда расчётов. Всё. Вот именно этим он и обеспечен. У золота есть множество функций: монетарная, расчётная, ювелирная, сберегательная, и т.п. У биткоина функция одна — расчётная. Те кто говорят что это хранилище ценности, не договаривают, это хранилище ценности универсальной, не-блокируемой, не-подделываемой, устойчивой среды расчётов. Всё.

Аргумент за нумер четыре: биткоин не платит дивиденды. Окей приехали, дивиденд, это не тот-же самый ссудный процент, который позволю себе напомнить, был запрещён большую часть н.э. Покупая акцию вы получаете право на часть прибыли компании, буддисский намёк – в сети биткоина тоже такое возможно. Пока не добыт последний биток есть источник новых биткоинов, потом все биткоины будут  предоставятся также, за подтверждения транзакций, вот и всё.

Вся правда о майнинге!!!

update 15/12/17: добавлены дополнительные риски, пожалуйста обратите внимание, это немаловажно!

Вся правда о майнинге

все знают, что у каждого своя правда, а истина – одна, из-за чего заголовок может показаться слегка тенденциозным, по-этому – Я постараюсь как можно более многогранно осветить вышеуказанное явление, а уж вынести своё ultima ratio – которое и будет для вас истиной, это ваша задача.

КАТ ЗЕ КРАП, ИЛИ СРАЗУ К КОЛЛ ТУ ЭКШЕНУ!

Преамбула (или мы стали забывать, что такое майнинг)

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

Майнинг как он есть

теперь скажем пару слов о том, что же такое майнинг, или крипто-майнинг. Не буду останавливаться детально на том, что такое маининг криптовалют – достаточно только того, что это процесс в котором эти криптовалюты создаются/выплачиваются. Криптовалюта – это расчетная единица того или иного блокчейна. Подробнее о блокчейне здесь (на английском, доставьте себе уже удовольствие, на базовом уровне изучите иностранный язык). А ещё подробнее здесь(лонг-вотч):

 

Теперь перейдём к чистой практике. Раз уж некий биткоин дороже доллара, и даже 5 тысяч долларов, и крупнейший ритейлер в мире говорит о том чтобы принимать его в качестве платежного средства, то самое время поговорить о том как же его заполучить. Как обычно это бывает на просторах В. путь никогда не бывает один. Капитально, все делится на два пути: на своём оборудовании, и на чужом(в облаке). Рассмотри для начала первый путь:

Добыча биткоинов дома(в офисе, на производстве и т.п.)

и тут надо обратится к истории, на заре биткоина, когда это была не более чем игрушка для всяких фриков, биткионы спокойно добывались на обычных потребительских видеокартах, это достигалось за счет того, что видеокарты в отличие от центрального процессора способны, условно за секунду сложить 2 и 2 100 раз, а процессор за это же время может взять интеграл(хотя интеграл это тоже суммирование, только куда более многократное) от 1/х, в промежутке 0.01 до 1 целых 5 раз.  с точки зрения процесса хэширования – интегрирование бесполезно, там используются только базовые арифметические операции. Но потом появились так называемые асики (ASIC – application specific integrated circuit), которые были заточены ровно только под те алгоритмы хеширования(иначе говоря майнинга) что используются в блокчейне биткоина, и производили их исключительно в Китае (превед редкие земли!), в общем все свелось к том, что добыча биткоина оказалась сконцентрирована в поднебесной, с остальным миром довольствующимся б/у асиками из Китая.

Таким образом мы приходим к тому что: а) либо вы продаёте мощность своих видеокарт/процессоров/асиков за эти самые биткоины или добываете их на пулах, либо наоборот покупаете мощность для хэшинга, за обычную валюту(доллар). Сейчас мы остановимся на первом варианте – вы покупаете оборудование, и решаете добывать сами:

Майнинг на своём оборудовании (on-premises)

У вас есть более менее современная видеокарта (хотя бы 3х летней давности?), доступное электричество, помещение в котором можно это разместить без вреда для сна? окей. а если есть еще железо, которое может майнить, то всё круто.  В общем, майнинг на видеокартах – это большие начальные вложения (они все таки стоят).  Тоже самое касается асиков – нормальный асик стоит как хороший калвадос года 1967го, и жрет электричество как чайник. Можно майнить на nicehash – тогда выплаты будут всегда в биткоинах, или на т.н. пулах, тогда выплата будет в той криптовалюте, которую вы добываете на конкретном пуле. Для этого вам понадобиться аккаунт на одной из бирж, на которых обращается криптовалюта(крупнейшие и наиболее надежные poloniex, gdax, bitrex), и уже оттуда выводите через обменники куда вам нужно (привед bestchange). На найсхэше у вас один кошелек – соответственно в биткоинах, и оттуда уже можно выводить куда вам надо через обменники. Найсхэш – ваш выбор если не хотите следить 24/7 за курсом криптовалют, но теоретический пулы могут быть выгоднее в моменте.

Риски:

  • Оборудование может выйти из строя, и требует более менее регулярного обслуживания.
  • Курс биткоина или другой криптовалюты может резко обрушится, и у вас останеться куча никому не нужного железа.
  • Риски биржи/кошелька. Хакеры и правительства не спят, могут скрасть с вашего кошелька/зарегулировать сверх меры.

Преимущества:

  • В случае видеокарт. Можно использовать множество алгоритмов, в случае если станет неинтересно, можно продать видеокарты и вернуть хотя бы часть вложений. Гарантия от 1 года. Что-то случилось с картой? окей, отнесли в магазин/сервис центр, сказали “играли в баттлфилд” пошли артефакты, потом картинка исчезла.
  • У вас дополнительная печка. Каждая из карт/асиков, выделяет достаточно много тепла – от 100 ватт, в случае если у вас одна карта, а если их много… От отопления можно отказаться.
  • После того как оборудование у вас окупиться – оно будет работать только на потребляемую электроэнергию( Примерно 10%) и на вас.  Известны фермы на видеокартах работающие уже 5 лет. Хороший уход и правильный режим работы творит чудеса. Срок окупаемости – от 10 до 14 месяцев.

Недостатки:

  • Большие начальные вложения, одна карта на которой можно что-то добывать стоит от 15 тыр. Её еще надо куда-то воткнуть, в общем более менее интересно (когда стоимость платформы для карт, значительно меньше стоимости самих карт) начинается от 4-6 карт. Что приводит нас к цифре в 60+ тыс. руб. В случае асиков – еще больше.
  • Шум. Все должно быть холодным (до 60 градусов). А это значит что шуметь будет хорошо.
  • Время на сетап. Всё это нужно запустить, настроить на бесперебойную работу – а это может занять кучу времени. И да, вам надо предусмотреть всё что возможно и не возможно. Можно купить готовую ферму, заплатить 20-30-40 тыр сверху и получить ваньку-встаньку работающую 90% времени.
  • Время на обслуживание.
  • Необходим пусть и не самый широкий но крайне стабильный канал в сеть.
  • Обычно все провайдеры, будь то пулы или агрегаторы пулов, предлагают тот или иной вид кошельков. Раз и навсегда: единственный вид крипто-валютного кошелька, который вы по-настоящему контролируете, это ваш собственный core-кошелёк, с которым связаны неудобства хранения полного блокчейна(привет эфир!!!) , и ответсвенности за его сохранность. Вывод с пулов следует делать раз в {промежуток времени} неделю, с авто или без конверсии.

И на закуску, в завершении этого раздела, одна из моих красавиц в теле:

https://wp.anylight.ru/wp-content/uploads/2017/10/DSC_0785.jpg

Для меня это уже это чисто произведение искусства. Ничего особенного в ней нет,  но стоит такая штука примерно…  чистые две недели времени.  24/7. Т.е. немеряно. Чтобы потекли слюни – в моменте приносит 9 евро в день(да по текущему курсу биткоина, но в обычной валюте это стабильный показатель). //апдейт 13-18 евро в день.

Добыча биткоинов где-то там(в облаке)

Сей способ добычи битка несет в себе дополнительные риски. Так, например, сложность добычи биткоинов, за прошедший год учетверилась. А покупаете вы фиксированную мощность. Тут впрочем всё как и с случаем on-premises, нельзя заставить ваше оборудование работать в два раза эффективнее.  Ко всему этому есть еще риск того, что в один прекрасны момент ваш провайдер облачного майнинга скажет “всем спасибо – кому должен, тем  прощаю”. И испарится  на просторах  Вечности. Именно по-этому Я попытался отфильтровать для вас те провайдеры облака, которыми пользуюсь сам:

  • Hashflare – безусловный лидер моего хит-листа. Работает с 2014 года, расположен в ближнем забугорье, есличо можно сгонять-найти-почку изъять.
  • Genesis Mining – номер два, у этих ребят, чьё фасилити расположено аж в Исландии постоянно раскуплены все мощности, что намекает.
  • CCG Mining – недавно начали, в 2016 году, и у них очень характерный акцент, но зато бессрочные контракты (надо понимать, что какую-бы мощность вы не купили, в пределе она стремиться к нулю со временем)

Для примера как оно работает:

hashfalre revenue forecast

Начальная мощность 1TH (150 долларов) по алгоритму SHA-256 (bitcoin) и включено  рейнвестирование – т.е. все выплаты с пулов идут на покупку доп мощностей.  Как я и упоминал выше, со временем выплата (в биткоинах) на единицу мощности будет падать.  Но вместе с тем, если посмотреть на график общей мощности сети и график курса биткоина к доллару можно увидеть неплохую такую корреляцию.

И хэшфлер и генезис не дают открыть бессрочные контракты. ССГ предоставляет бессрочные контракты, но в два раза дороже.

Основные преимущества облачного решения:

  • у вас не болит голова о железе. Этим занимается провайдер. Вы купили и забыли. Хоть каждый день выводите на свой биткоин кошелёк (об этом чуть позже).
  • Вам не надо платить за электричество.
  • Небольшие начальные вложения. Можете буквально на 1.5 долларах посмотреть как это работает (hashflare)

Риски:

  • как и в первом случае, резкое охлаждение интереса к крипто-валюте. Маловероятно, но вероятно.
  • атаки со стороны правительства/3 их лиц.  Ваш аккаунт на провайдере могут взломать. Могут взломать ваш кошелёк. Но тоже самое возможно и в случае с добычей на своём железе.
  • апдейт 15/12: ахрниненно долгое время вывода. Сначала нужно вывести на кошелёк который вы указали (вы же не будете указывать кошелёк вашего обменника сразу, или… ? окай…), а потом уже с него в обменник,  при текущий загруженности сети это может занять пару недель-месяц, возможно курс отрастёт за это время, а возможно упадёт…

Где взять кошелёк.

В случае если вы пользуетесь найсхешем, у вас кошелёк создаётся автоматический. Иначе вам придется завести один или несколько(под каждую криптовалюту/алгоритм), сделать это можно здесь:

  • полоникс – биржа, кошельки под все торгуемые валюты. Расположена в США, со всеми вытекающими (селфи с паспортом с вас попросят)
  • битрекс – биржа, кошельки под все торгуемые валюты. Расположена в США, со всеми вытекающими … (см выше). Если вы решите потретировать своё оборудование, да еще и на пулах, то тут чуть больше торгуемых крипто-валют включая самые новые, на которых чаще всего бывает накачка на начальных этапах.
  • блокчейн – кошелёк. Достаточно параноидальный на мой вкус, не совсем прозрачный интерфейс, но в рамках допустимого.  База в Люксембурге.
  • битго – кошелек. Чуть более доброжелателен к пользователю. База в США.
  • бонус от найсхэша: любой кошелёк могут взломать. Любая система, подключенная к сети является уязвимой. Абсолютно безопасным можно считать компьютер, который замурован где-нибудь в бункере, отключен от сети и от электрической сети тоже(!!!), всё остальное – цель для взлома. Отсюда понятие холодного кошелька – кошелёк, который не в сети большую часть времени. На отдельном, выключенном носителе.

Заключение

да, я постоянно слышу что криптовалюты это пузырь. окей, их уже больше 1000 наверное, и большинство из них действительно попросту скам, т.е. мошенничество. Именно по-этому я сконцентрировался на биткоине.  Это целое новое понимание средства расчетов. Безусловно, текущее состояние сети и блокчена биткоина не позволяет обеспечивать пропускную способность визы/мастеркарда/амекса. Но сколько лет этим системам и биткоину? через 10 лет после создания системы виза ей пользовалось меньше людей чем биткоином сейчас. Сообщество поддерживающее биткоин, а это не большие сытые коты где-то на 69 этаже эмпаер стейт билдинг, постоянно растёт, и рано или поздно сеть и её пропускная способность будет расти. Более того, блокчейн – это гробовой камень всей современной системе правительств/банков/судов и прочего. Просто не до всех это дошло.

И на закуску: по случаю хелловина, хешфлёр даёт скидку 10% на все ордера по коду HF17HLWN10ALL, тыцкаем, регистриуемся, пробуем:

HashFlare

П.С. хэлловин давно прошёл, хэшфлёр тормозит с выводом бабла, т.е. битков, по-этому я могу только сказать только ещё раз тоже самое, вкладывайте в крипту, только те деньги, или валюту, которые готовы пойти и пропить прямо здесь и сейчас. Не больше и не меньше. Возможно проблема с транзакциями в сети будет решена уже в марте 18го, под выборы Пу или На, и биток будет стоить стотыщь, и в будете кусать свои локти, а возможно ничего не будет и всё зарегулируют/конфискуют и вообще и вы будете глумиться надо мной, потому как купили газпром и потеряли 20%, в то время как я потеряю практический половину от всего.

Клевенькие стратегии или Как применять маркетинг в социальных сетях

Социальные сети стали движущей силой сети. Способность конечных пользователей различных страниц сети “расшаривать” представленную информацию, породила возможность того, чтобы каждый пользователь распространял её так быстро, как ещё недавно сложно было даже представить. Если вы хотите продвигаться с помощью социальных медиа, то данная статья для вас, в ней содержится несколько (возможно очевидных, возможно не столь) советов по маркетингу в соц. медиа / интернет медиа.

Я использую термин социальные медиа, вместо соц сетей, т.к. под этот термин попадает более широкий спектр ресурсов нежели соц сети, например: Quora, Gitter, Medium, Twitter, stackoverflow и т.д.

Будьте полезными

Создавайте ценность когда занимаетесь маркетингом в соц.медиа. Многие выбирают бла-бла-бал о других людях или вещах которые дают им ЧСВ (чувство собственной важности/величия). РЕДБУЛЛШИТ. Нелестная оценка о других или негативные отзывы могут привести множество других людей к восприятию ваших собственных продуктов или услуг в негативном ключе. Убедитесь в том, что держите это в голове, когда ведете свой интернет-ресурс или общаетесь с человеком лично.

Используйте facebook для очень дешевых рекламных возможностей. Создайте собственный корпоративный аккаунт или фан-страницу. Потратьте некоторое время на поиск ваших конкурентов на фейсбуке и просто посмотрите, что они делают. Не старайтесь копировать их контент, а просто используйте это как пример того что работает, а что нет. лайки и шары в данном случае являются мерой эффективности.

Различные варианты сортировки, ренкинга и отзывов способны добавить совершенно новый уровень интерактива и очарования на ваш ресурс. Если вы добавите эти элементы ваши посетители смогут быстро находить то, что им нужно, что неизбежно приведет к тому, что они будут возвращаться к вам снова и снова.

Для того чтобы получить абсолютно лучших покупателей от ваших социальных медиа, поддерживайте выход вашего контента на регулярной и последовательной основе. Это не значит что надо делать новый пост раз в год. Каждый раз когда ваш потенциальный покупатель видит ваши новые записи на том же фейсбуке каждый день, ему проще вас запомнить,  однако всё хорошо в меру и не стоит налегать слишком сильно, тогда в один прекрасный день, когда придет время инвестировать деньги в что-то чем вы располагаете, они выберут вас, поскольку вы будете выглядеть достаточно надежным поставщиком.  Да-да, если вы предлагаете товары/услуги повседневного спроса, то скорее всего соц.медиа вам нахрен не сдались. Во всех остальных случаях – это инвестиция в той или иной форме.

Старайтесь не делать нерелевантные или тривиальные посты в ваших профилях в соц.сетях. Постоянно делайте посты отражающие ваш опыт и экспертный подход. Никого не волнует что у вас новый смартфон или вы стоите в очереди в кино. Правда правда. такие тривиальные посты можете оставить для своего личного профиля, а в своём корпоративном профиле – ни-ко-гда.

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

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

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