Сегодня 29 декабря, воскресенье ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7278
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
тупой блог ниочем
тупой блог ниочем
Голосов: 0
Адрес блога: http://d3zorg.blogspot.com/
Добавлен: 2011-07-08 17:26:28
 

Продвинутый роутер на DD-Wrt

2011-06-15 18:29:00 (читать в оригинале)

Когда-то давно когда я впервые поставил dd-wrt на свой роутер (Dlink dir-615), я просто подумал что этопрошивка ну как бы просто «еще одна прошивка» для тех кто недоволен стандартной от производителя роутера, однако подключившись по telnet к роутеру я увидел самый что не на есть Linux.

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



Просто Linux

Сходив по телнету на роутер можно увидеть самый обычный Linux. Ну так как в комплекте Linux то наверняка есть:
— Фаервол Iptables
— поддержка ip_conntrack
— утилиты из iproute2.

Также наверняка есть дополнительные утилиты:
— brctl (для управления мостами)
— ping, telnet, ssh, mount и все что полагается иметь обычному сетевому маршрутизатору на Linux

Две точки доступа или как осчастливить соседей

Когда я увидел что в настройках Wi-Fi есть возможность создать еще одну точку доступа, я как бы удивился. Оказывается почти все чипы Wi-Fi это умеют, только добрые дяди из $vendor обычно такой функционал считают лишним для домохозяек (а много ли домохозяек настраивают роутеры).
Постепенно разбираясь во всем я решил обеспечить всей улице (у роутера 2 антенны и очень неплохая мощьность) бесплатный интернет, передо мной стало 2 проблемы (решение которых я и опишу далее):
1. Как обеспечить моей домашней сети безопасность путем отрезания доступа в нее с бесплатной точки доступа.
2. Как порезать скорость, чтобы добрые соседи не поедали мой канал.

Ну решение первого прозрачно, фаервол. Но как, что и где не понятно. Второе же тоже понятно, раз есть iproute2 есть и tc, а он может… да чего он только не может.

Создаем точку (Конфигурация интерфейса)

точки доступасоздаем вторую точку доступа и называем ее как нибудь

дополнительно Открываем дополнительные параметры, и устанавливаем «Конфигурация Сети: Не в мосте», «Многоадресные потоки: Отключить», «Masquerade/NAT: Отключить». И вибираем ip адрес для этого виртуального интерфейса, я выбрал маленькую сеть на 16 ip адресов.

шифрованиеДалее надо убедиться что отключено шифрование на этой точке.

Комманды

коммандыПереходим к командному блоку.

Настройка sysctl

Сначала предлагаю настроить sysctl, так как самой утилиты sysctl нет в комплекте, то настроим через proc

echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
echo "1" > /proc/sys/net/ipv4/tcp_abort_on_overflow
echo "0" > /proc/sys/net/ipv4/tcp_ecn
echo "600" > /proc/sys/net/ipv4/tcp_fin_timeout
echo "750" > /proc/sys/net/ipv4/tcp_keepalive_intvl
echo "9" > /proc/sys/net/ipv4/tcp_keepalive_probes
echo "7200" > /proc/sys/net/ipv4/tcp_keepalive_time
echo "65536" > /proc/sys/net/ipv4/tcp_max_orphans
echo "1024" > /proc/sys/net/ipv4/tcp_max_syn_backlog
echo "180000" > /proc/sys/net/ipv4/tcp_max_tw_buckets
echo "1" > /proc/sys/net/ipv4/tcp_orphan_retries
echo "3" > /proc/sys/net/ipv4/tcp_reordering
echo "1" > /proc/sys/net/ipv4/tcp_retrans_collapse
echo "3" > /proc/sys/net/ipv4/tcp_retries1
echo "15" > /proc/sys/net/ipv4/tcp_retries2
echo "0" > /proc/sys/net/ipv4/tcp_rfc1337
echo "4096 87380 4194304" > /proc/sys/net/ipv4/tcp_rmem
echo "1" > /proc/sys/net/ipv4/tcp_sack
echo "5" > /proc/sys/net/ipv4/tcp_syn_retries
echo "5" > /proc/sys/net/ipv4/tcp_synack_retries
echo "1" > /proc/sys/net/ipv4/tcp_timestamps
echo "1" > /proc/sys/net/ipv4/tcp_window_scaling
echo "196608 262144 393216" > /proc/sys/net/ipv4/tcp_mem
echo "4096 16384 4194304" > /proc/sys/net/ipv4/tcp_wmem
echo "65535" > /proc/sys/net/ipv4/ip_conntrack_max
echo "65535" > /proc/sys/net/netfilter/nf_conntrack_max
echo "65535" > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
echo "65535" > /proc/sys/net/nf_conntrack_max
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo "6168" > /proc/sys/net/ipv4/icmp_ratemask
echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
echo "1" > /proc/sys/net/ipv4/conf/all/arp_filter
echo "0" > /proc/sys/net/ipv4/conf/all/log_martians
echo "0" > /proc/sys/net/ipv4/conf/all/mc_forwarding
echo "0" > /proc/sys/net/ipv4/conf/all/proxy_arp
echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects
echo "1" > /proc/sys/net/ipv4/conf/all/send_redirects
echo "1" > /proc/sys/net/ipv4/conf/all/shared_media
echo "500" > /proc/sys/net/ipv4/route/error_cost
echo "262144" > /proc/sys/net/ipv4/ipfrag_high_thresh
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo "1024 4999" > /proc/sys/net/ipv4/ip_local_port_range
echo "1" > /proc/sys/net/ipv4/ip_no_pmtu_disc
echo "0" > /proc/sys/net/ipv4/ip_nonlocal_bind
echo "30" > /proc/sys/net/ipv4/ipfrag_time
echo "120" > /proc/sys/net/ipv4/inet_peer_gc_maxtime
echo "10" > /proc/sys/net/ipv4/inet_peer_gc_mintime
echo "600" > /proc/sys/net/ipv4/inet_peer_maxttl
echo "120" > /proc/sys/net/ipv4/inet_peer_minttl
echo "65664" > /proc/sys/net/ipv4/inet_peer_threshold
echo "2" > /proc/sys/net/ipv4/tcp_adv_win_scale
echo "31" > /proc/sys/net/ipv4/tcp_app_win
echo "1" > /proc/sys/net/ipv4/tcp_dsack
echo "0" > /proc/sys/net/ipv4/tcp_ecn
echo "1" > /proc/sys/net/ipv4/tcp_fack
echo "20" > /proc/sys/net/ipv4/igmp_max_memberships
echo "0" > /proc/sys/net/ipv4/conf/all/bootp_relay

вставляем код в textarea в блоке Команды, и нажимаем «Сохранить параметры запуска» (Save startup)

фаервол iptables

Ниже приведу команды своего фаервола, думаю кому-то будет интересно что зачем, поэтому команды комментируются.

#####################################
# Назначаем дисциплиной обработки очереди htb
tc qdisc add dev `nvram get wan_ifnames` root handle 1: htb default 2
# создаем класс в 100 мегабит, и дисциплину sfq для равномерного распределения трафика между клиентами
tc class add dev `nvram get wan_ifnames` parent 1: classid 1:1 htb rate 100mbit
tc qdisc add dev `nvram get wan_ifnames` parent 1:1 handle 2: sfq perturb 10

# Режем скорость на интерфейсе ath0.1 наша точка для гостей и соседей
tc class add dev `nvram get wan_ifnames` parent 1: classid 1:3 htb rate 1024kbit
tc qdisc add dev `nvram get wan_ifnames` parent 1:3 handle 3: sfq perturb 10
# все пакеты помеченные флагом 0x2ff будут попадать в эту дисциплину
tc filter add dev `nvram get wan_ifnames` parent 1:0 protocol ip prio 1 handle 0x2ff fw classid 1:3
# а вот правило фаервола.
# если пакеты вылетают в wan порт, а прилетают с интерфейса ath0.1 тогда поставить им метку 0x2ff
iptables -t mangle -A FORWARD -o `nvram get wan_ifnames` -i ath0.1 -j MARK --set-mark 0x2ff

# С ath0.1 исходящий трафик порезан, теперь надо порезать трафик приходящий на ath0.1
# добавляем дисциплину
tc qdisc add dev ath0.1 root handle 1: htb default 1
# все что вылетает на ath0.1 летит в очередь 1:1 с указанной скоростью
tc class add dev ath0.1 parent 1: classid 1:1 htb rate 1024kbit

# Теперь правило которое отбрасывает все пакеты которые направляются с ath0.1 и НЕ во внешний мир
iptables -t nat -I POSTROUTING -j SNAT -s `nvram get ath0.1_ipaddr`/`nvram get ath0.1_netmask` -o `nvram get wan_ifnames` --to-source `nvram get wan_ipaddr`
iptables -I FORWARD -i ath0.1 ! -o `nvram get wan_ifnames` -j DROP
#####################################
# Далее я удаляю какое-то магическое правило с роутера, зачем оно нужно ума не приложу, ну и не нужно оно
iptables -t nat -D POSTROUTING -o br0 -j MASQUERADE -s `nvram get lan_ipaddr`/`nvram get lan_netmask` -d `nvram get lan_ipaddr`/`nvram get lan_netmask`

# Стандартный SNAT направляет все пакеты со всех подсетей и со всех интерфейсов кроме WAN
# в интернет натируя трафик, мне это неподходит, да и вам не подходит, ведь на очереди тунели.
# удаляем это правило
iptables -t nat -D POSTROUTING -j SNAT -o `nvram get wan_ifnames` --to `nvram get wan_ipaddr`
# и добавляем правило которое натирует только подсеть на портах LAN
iptables -t nat -I POSTROUTING -j SNAT -s `nvram get lan_ipaddr`/`nvram get lan_netmask` -o `nvram get wan_ifnames` --to-source `nvram get wan_ipaddr`

# некоторые простые защиты
# Игнор всего фрагментированного
iptables -A INPUT -f -j DROP
# Ограничение колличества syn пакетов (Anty SYN Flood)
iptables -A INPUT -p tcp --syn -m limit --limit 100/second --limit-burst 150 -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP
# игнор пакетов с "неправильными" флагами
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
# Так как проц не резиновый а телнет демон, чтобы не зафлудили по telnet
iptables -A INPUT -i `nvram get wan_ifnames` -p tcp --dport 23 -m state --state NEW -m recent --set --name TELNET
iptables -A INPUT -i `nvram get wan_ifnames` -p tcp --dport 23 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name TELNET -j DROP
# И наконец корректная обработка tcp при разных MTU
iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o tun0 -j TCPMSS --clamp-mss-to-pmtu

################################################
# Далее я пишу 2 скрипта, которые в дальнейшем организуют туннели
# про это далее
################################################
insmod etherip
mount -t tmpfs none /opt
echo '#!/bin/sh' > /opt/etherip.sh
echo 'ip tunnel del $1 2>&1 > /dev/null' >> /opt/etherip.sh
echo 'ip tunnel add $1 mode etherip remote $2 local `nvram get wan_ipaddr`' >> /opt/etherip.sh
echo 'ip addr add $3 dev $1' >> /opt/etherip.sh
echo 'ip link set $1 up' >> /opt/etherip.sh
chmod a+x /opt/etherip.sh
# /opt/etherip.sh tun-name remote IFace

echo '#!/bin/sh' > /opt/gre.sh
echo 'ip tunnel del $1 2>&1 > /dev/null' >> /opt/gre.sh
echo 'ip tunnel add $1 mode gre remote $2 key $3 ttl 255' >> /opt/gre.sh
echo 'ip addr add $4 peer $5 dev $1' >> /opt/gre.sh
echo 'ip link set $1 up' >> /opt/gre.sh
chmod a+x /opt/gre.sh
# /opt/gre.sh tun-name remote KEY localIP remoteIP


Так, вроде все готово, теперь о том как клиенты свободной точки будут получать IP. DHCP конечно, только вот нужен второй DHCP сервер, и он есть из коробки.
image

Туннели

Итак теперь представьте ситуацию. У вас есть 2 офиса, в них… стоп. Все проще, у вас есть друг с dd-wrt, также у вас есть банальное желание поиграть с ним… ну скажем в queke II coop. У друга один провайдер а у вас другой. Ну казалось бы ответ очевиден, Hamachi или всякое-там разное проприетарное. Отличное решение обычной проблемы. а теперь представим что всетаки есть 2 офиса, и коннект должен быть24*7*365 и мало того там есть всякие принтеры, пусть даже корпоративный прокси. Cisco, скажете вы, дороговато, скажу я.
Обратим внимание на 2 скрипта приведенные в файерволе, да это туннелирование gre или ethernet over ip (протокол etherip поддерживаемый freebsd cisco но почему-то не поддерживаемый в Linux). Логика создания туннеля такова.

Есть 2 устройства alpha и beta, на устройстве alpha lan подсеть 192.168.2.0/24, на устройстве beta192.168.3.0/24. На устройстве alpha wan IP al.p.h.a на beta b.e.t.a. На alpha создается интерфейс10.0.0.1/30 на beta 10.0.0.2/30 и 2 маршрута.

ALPHA
/opt/etherip.sh beta b.e.t.a 10.0.0.1/30
route add -net 192.168.3.0/24 gw 10.0.0.2


BETA
/opt/etherip.sh alpha al.p.h.a 10.0.0.2/30
route add -net 192.168.2.0/24 gw 10.0.0.1


Общая логика такова. Так к чему я про друга с quake II, лучше попробуйте с ним. Не надо экспериментов в production.

Что дальше?


К сожалению у меня сейчас потерян коннект с роутером dir-320 в который были воткнуты 3 провайдра. Дело в том, что на dir-320 мало того что есть usb и туда можно поставить какой нибудь nginx+postgresql+python+django, так у него внутри умный свитч, а это значит что там создается 3 интерфейса в портах lan, а порт wan включается в конторский свитч. В итоге балансировка, отказоустойчивость, wi-fi, firewall, банилка «xxxxклассников».
Эта контора звонила мне год назад, сказали что к ним пришел специалист и что он спрашивает пароль на роутер, утверждая что я перепутал порты WAN и LAN, я спросил «А у вас все работает?», они ответили утвердительно, тогда я спросил зачем от туда лезет и они внятно мне не объяснили, я сказал «Я дам вам пароль но если этот мастер что нибудь сломает, то я к вам не поеду, а если и поеду то проделаю все работу заново, а это стоит столько же», в общем пароль им не пригодился, год уже не звонят. Бог знает может уже развалились, а может ip сменился, но доступа сейчас нет.

Вообще возможности dd-wrt мне напоминают cisco. В том смысле что если уж reboot не помог, то что-то сломалось не в этой железке.

Все команды я попытался завязать на nwram роутеров, чтобы разные модели работали одинаково. Единственная разница это имя wi-fi адаптера может быть другим. Ну тогда заменяем все ath на имя вашего адаптера в командах.


World of Tanks тестовый патч версии 0.6.5

2011-06-15 13:13:00 (читать в оригинале)



Сегодня 15.06.2011 был вновь открыт тестовый сервер «Мира Танков».
Внимание!
Доступен для скачивания и установки тестовый патч версии 0.6.5 test
Игроки, зарегистрировавшиеся в игре до 11 июня, смогут запустить тест следующим образом:
- Проинсталлировать ещё одну копию игры (0.6.4 1.9 ГБ) в отдельную папку, или скопировать текущий клиент версии 6.4 в отдельную папку.
- Скачать патч (0.6.5_test 369 МБ) и установить его на эту версию. Патч 0.6.5_test устанавливается только на версию 0.6.4.
Внимание! Заработанный опыт, кредиты, танки, золото не перейдут на основной сервер и будут работать только на тестовом!

соответствующей теме.
Список изменений относительно версии 0.6.4:- Добавлена базовая ветка ПТ-САУ США: T18, T82, T40, M10 Wolverine, M36 Slagger, T25 AT, T28, T95.
- На 9 уровне средних танков США танк M26 Pershing заменён на M46 Patton. М26 Pershing сдвинут на 8 уровень вместо танка Т23. Танк Т23 временно выведен из игры.
- Добавлены премиум танки: США M22 Locust, СССР T-127.
- Добавлены новые карты: «Редшир» и «Заполярье».
- Визуально переработаны карты: «Карелия» и «Эрленберг».
- Исправлены некоторые ошибки, застревания и непроходимости на большинстве игровых карт.
- Исправлены модели повреждений и разрушений некоторых игровых объектов.
- Исправлены ошибки в моделях некоторых танков.
- Увеличена доходность арт-САУ M12 до уровня аналогичных арт-САУ других наций.
- Увеличен угол склонения орудий танков: T1 hvy, M6, T32, T34.
- Уменьшен уровень боёв танка КВ-220.
- На 10% увеличена доходность танка M6A2E1.
- Исправлены модели повреждений танков: T1 hvy, M6, M6A2E1.
- Переработана защита от изменения цвета трассеров.
- Исправлена ошибка с отставанием таймера начала боя.
- Исправлена ошибка с пропаданием трассеров и эффектов выстрелов во время подгрузки моделей вражеских танков.
- Исправлено отображение следов от попаданий снарядов на объектах окружения.
- Исправлено описание медали Орлика.
- Исправлен редкий вылет при сворачивании клиента игры.
- Исправлено отображение заглушённого игрока (от которого запрещены голосовые сообщения) на экране загрузки карты.
- Исправлено отображение списка устройств ввода в настройках голосового чата.
- В ангаре после боя добавлено сообщение о сумме кредитов, вычтенных за убийство или повреждение союзника.
- Исправлено отображение статуса танка «готов к бою» при незагруженном боекомплекте.
- Восстановлено голосовое оповещение о повреждении приборов наблюдения.
- Исправлено «непрокликивание» некоторых квадратов миникарты при изменении размеров окна игры.
- Исправлено отображение пустых строк в некоторых настройках графики на определённых конфигурациях.
- Исправлен сброс графических настроек на «пользовательские» при смене общих пресетов графики.
- Исправлены некоторые текстовые описания танков.
- Исправлена ошибка с некорректным выбором самого «слабого» танкиста для прокачки при ускоренной прокачке экипажа.
- Исправлена ошибка при которой пользователь не мог самостоятельно исключить себя из клана.
- Убрана рассылка UDP-пакетов на порт 7533 в локальной сети клиента игры.
UPDATE! Заработок опыта и кредитов в боях на тестовом сервере в ближайшее время будет увеличен в 10 раз.


rembo

2011-06-15 13:07:00 (читать в оригинале)




Мифы о Bitcoin

2011-05-22 21:58:00 (читать в оригинале)



Это просто нечто подобное остальным виртуальным валютам, ничего нового

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

Биткоины обеспечены процессорным временем

Это некорректно говорить, что биткоины обеспечены процессорным временем. Когда говорят, что валюта чем-то "обеспечена", подразумевается, что она к чему-то централизованно привязана по обменному курсу. Вы не можете обменять биткоины на затраченную на их генерацию вычислительную мощность (она слишком высока). В этом смысле биткоины ничем не обеспечены. Это самоценный продукт. Подумайте, разве золото чем-то обеспечено? Нет, это просто золото. То же самое и с биткоинами.
Биткоин валюта создана с применением процессорной мощности: целостность цепочки блоков защищена от разного рода атак существованием большой компьютерной сети. И это все.

Биткоины ничего не стоят, потому что они ничем не обеспечены

Золото ничем не обеспечено, но используется и ценится повсеместно. Смотрите предыдущий миф.

Ценность биткоинов основана на том, сколько электричества и вычислительной мощности требуется для их генерации

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

Биткоины не имеют собственной ценности (в отличие от некоторых других вещей)

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

Биткоины являются незаконными, потому что они не являются законным платежным средством

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

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

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

Биткоины только облегчат уклонения от налогов, что приведет к возможному падению цивилизации

Это зависит только от Вас: будете ли Вы следовать действующему в стране законодательству или столкнетесь с последствиями нарушения законов.

Биткоины может печатать/чеканить каждый, следовательно - они бесполезны

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

Биткоины бесполезны, потому что они основаны на непроверенной/недоказанной криптографии

Алгоримы SHA-256 и ECDSA, которые применяются в программе Bitcoin, являются хорошо известными промышленными стандартами шифрования.

Первые пользователи биткоинами несправедливо вознаграждены

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

21 миллиона монет недостаточно, это несоизмеримо с потребностями человечества

В действительности по проекту Bitcoin будет существовать 2099999997690000 (чуть более двух квадриллионов) максимально возможных неделимых единиц.
Один биткоин представляет собой 100000000 (сто миллионов) из них. Другими словами, каждый биткоин может быть поделен на 10^8 частей.
Если стоимость биткоинов вырастет слишком сильно, то люди для удобства могут начать работать с меньшими частями, такими как миллибиткоины (mBTC) и микробиткоины (μBTC). Впрочем, возможна и деноминация с коэффициентами 1:10, 1:100 и так далее.

Биткоины хранятся в файлах кошелька, просто скопируйте кошелек и получите больше монет!

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

Утерянные монеты не могут быть заменены, а это плохо

Минимальной биткоин единицей является 0.00000001, так что это не проблема. Если Вы теряете монеты, все остальные монеты немного поднимутся в цене. Считайте это пожертвованием всем остальным пользователям биткоинов.
Есть связанный с этим вопрос (и ответ на него).
- Почему нет механизма замены утерянных монет?
- Невозможно различить утерянную монету и ту, что просто не используется в данный момент и ждет в чьем-то кошельке своего времени оказаться полезной.

Это гигантская финансовая пирамида

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

Ограниченная эмиссия и утерянные монеты порождают дефляционную спираль

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

Идея биткоинов не может работать, потому что нет способа контролировать инфляцию

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

Биткоин сообщество это анархисты, теоретики заговоров, сторонники золотого стандарта и гики

Подтверждаем. Однако, нужно учитывать, что это лишь часть всего колорита сообщества.

Любой человек с достаточной вычислительной мощностью может перехватить управление сетью

Подтверждаем. Однако, требуемые для атаки невероятные затраты не оправдывают извлеченной выгоды.
С ростом количества генерирующих узлов становится все сложнее и сложнее какой-либо организации сделать это. В настоящий момент вычислительная мощность всех честных генерирующих узлов превосходит любого крупнейшего в мире суперкомпьютера [1] и даже любую крупнейшую распределенную вычислительную сеть [2].
Даже если злоумышленник сможет однажды взять сеть под контроль, это даст ему весьма ограниченные возможности. Ни при каких обстоятельствах он не сможет использовать чужие биткоины. Атакующему доступна лишь отмена своих собственных недавних переводов, а так же доступно замедление чужих переводов. Эта очень дорогая атака не стоит таких небольших преимуществ, так что нет каких-либо рациональных экономических причин проводить ее.

Биткоины нарушают какие-то постановления правительства

Назовите их, если сможете (так же прочитайте миф #7).

Частичное банковское резервирование невозможно

Возможно!
1. Откройте банк.
2. Примите вклады.
3. Дайте кредиты, используя часть вкладов.
4. Требуйте возврата своих средств с процентами.
5. PROFIT!
Есть связанный с этим вопрос (и ответ на него).
- Но как же дать гарантию, что вкладчики могут вывести 100% своих средств?
- Так же, как обычные банки делают это - никак. Они надеются на федеральное страхование вкладов.

Точки продаж, принимающие биткоины, невозможны, так как требуется 10 минут для подтверждения перевода

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

После добычи 21 миллиона монет никто не будет генерировать блоки, подтверждающие переводы

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

Нет встроенного механизма отмены платежа, а это плохо

Отмена платежа удобна для ограничения мошенничества. Организации вроде PayPal несут ответственность по предотвращению мошенничества. Если Вы покупаете что-то на eBay, а продавец не отправляет Вам товар, PayPal снимает деньги со счета продавца и возвращает их Вам. Это укрепляет экономику eBay, так как покупатели осознают ограниченность своего риска и совершают даже рискованные покупки.
Если же у Вас есть биткоины, то они Ваши и только Ваши. Так они устроены. Если разрешить механизм отмены платежа, то это даст возможность другому лицу забрать Ваши средства. Либо Вы имеете полный контроль над своими средствами, либо защиту от мошенничества, но не то и другое одновременно.
С биткоинами Вы сами становитесь тем, кто должен нести ответственность по предотвращению мошенничества. Вся власть над средствами в Ваших руках. Мошенничество существует всегда. В Ваших интересах отправлять биткоины только доверенным лицам.

Квантовые компьютеры нарушат безопасность биткоинов

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

Генерация биткоинов энергетически затратна и вредна для экологии

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

Владельцы магазинов не могут серьезно устанавливать цены на продукты в биткоинах из-за нестабильного обменного курса

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

Подобно Flooz и E-gold, биткоины прекрасно подходят преступникам, поэтому будут ликвидированы

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

Биткоины будут ликвидированы правительством, как это произошло с Liberty Dollar (не путать с Liberty Reserve)

Liberty Dollar - это рискованная коммерческая попытка установить альтернативную валюту в США, включая физические банкноты и монеты, обеспеченные драгоценными металлами. Разумеется, эти "свободные доллары" были официально запрещены по обвинению в изготовлении поддельных денег и попытку мошенничества. Биткоины же не являются ни коммерческими, ни физическими, ни обеспеченными чем-либо.


Bitcoin. Деньги из воздуха?

2011-05-22 21:21:00 (читать в оригинале)


Bitcoin. Как это работает

О Bitcoin я узнал относительно недавно, но он меня сразу подкупил своей идеей p2p. Чем глубже я зарывался в их Wiki, тем больше проникался этой идеей. Ее реализация красива и элегантна с технической точки зрения.



Настоящие деньги?


Первое место в списке главных заблуждений насчет Bitcoin занимает идея о том, что Bitcoin это очередные «бумажки», пускай и электронные, которые лишь представляют «настоящие» деньги, являются эдакими долговыми расписками. Отсюда берет начало большинство остальных заблуждений: раз это бумажки, то они ничего не стоят; их можно напечатать или уничтожить сколько угодно; их можно подделать; их можно скопировать.

Повторюсь — все это не более, чем заблуждения. В основе идеи Bitcoin лежало желание создать не очередные «бумажки», которые представляют реальные деньги, такие как золото, а аналог самого золота. Взять те свойства золота, благодаря которым оно является идеальными деньгами, и сделать электронную валюту на их основе.

Сложность добычи

Золото нельзя скопировать — его можно только добыть. Но это очеть затратный процесс как по времени, так и по ресурсам. Частично из-за этого золото ценится так высоко. Чтобы было понятнее, рассмотрим на примере.

Допустим человек весь день усердно добывал золото и добыл в итоге 1 кг. Для него стоимость добытого золота равна одному дню усердной работы. После тяжелого рабочего дня он решил отдохнуть и сходить в кинотеатр. По счастливому совпаденью кассир отдавал билеты в обмен на золото. Почему? Потому что кассиру нравится золото, но не нравится весь день работать с киркой. Поэтому он готов оказать услугу — отдать билет — в обмен на 1 кг золота. Фактически же он обменивает свою услугу на один день тяжелой работы.

Теперь представим другую ситуацию. Изобрели копир, который работает с золотом. И любой человек может за минуту из одного 1 кг золота сделать 10 кг. В данной ситуации кассир уже не будет обменивать билеты на золото, так как теперь он сам легко сможет его напечатать столько, сколько захочется. Золото перестанет иметь какую-либо ценность и его уже нельзя будет использовать в качестве денег.

В Bitcoin процесс добычи монеток тоже требует ресурсов и времени. Но в данном случае это не человеческие ресурсы, а компьютерные.

Условно ограниченный ресурс

Чем дольше добывается золото, тем труднее (затратнее по ресурсам) становится его добывать. Это гарантирует, что инфляция будет под контролем.

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

Здесь видно, что общее число монеток стремится к 21 000 000. Подробности работы Bitcoin будут рассмотрены далее. А пока нужно знать две вещи: монетки появляются в системе пачками приблизительно каждые 10 минут, количество монеток в одной пачке — 50, и оно уменьшается вдвое каждые 4 года.

Материальность

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

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

Сложность добычи, ограниченный ресурс, материальность — эти свойства, плюс использование криптографии для обеспечения безопасности, позволяют использовать Bitcoin в качестве денег. На них основано ядро Bitcoin. Это не просто договоренности. Все они заложены в системе by design, и по-другому она работать не будет. Настало время рассмотреть этот самый дизайн.

Цепочка блоков


Любая электронная платежная система должна где-то и как-то хранить транзакции. В Bitcoin вся информация хранится в цепочке блоков. Блоки передаются в формате JSON. Каждый блок содержит заголовок и список транзакций. Заголовок состоит из нескольких свойств, среди которых есть хэш предыдущего блока. Таким образом вся цепочка блоков хранит все транзакции за все время работы Bitcoin.

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

На момент написания статьи количество блоков в цепочке было равно 110 968, и, как я уже говорил ранее, это количество приблизительно через каждые 10 минут увеличивается на 1. Это значит, что кто-то из участников смог создать новый блок.

Кстати говоря, все участники делятся на две группы: на тех, кто работает над новым блоком и кто не работает. По статистике эти группы соотносятся как 1 к 3. Зачем вообще создавать блоки, да еще каждые 10 минут? В блоках записываются транзакции. Каждый блок содержит все транзакции, которые проходили во время его создания, т. е. за 10 минут.

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

Блок


Рассмотрим содержимое блока и процесс его генерации более подробно. Пример блока можно найти на все том же Bitcoin Block Explorer. Блок состоит из заголовка и списка транцакций. Заголовок состоит из следующих свойств:

hash — SHA-256 хэш заголовка блока. Такой хэш является достаточно случайным, а время его вычисления предсказуемо. Хочу заметить, что хэшируется только заголовок, без транзакций. Так что число транзакций не будет сильно влиять на время вычисления хэша.

ver — Версия схемы блока. На данный момент у всех блоков одна версия — 1.

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

mrkl_root — Merkle root — список хэшей транзакций. Хэш блока должен обязательно зависеть от транзакций, чтобы их нельзя было подделать. Но вычислять его напрямую будет долго, если количество транзакций велико. Поэтому сначала хэшируются сами транзакции, а затем их хэши используются для вычисления хэша всего блока.

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

time — uint32_t представляющее время создания блока. Максимально допустимый год — 2106.

bits — Одно из самых важных свойств. Является сокращенной формой целевого значения хэша. Блок считается сгенерированным (валидным), когда его хэш меньше этого целевого значения. Целевое значение определяет сложность создания блока. Чем оно меньше, тем меньше вероятность подобрать подходящий хэш за одну итерацию. Это свойство обновляется каждые две недели.

Происходит это следующим образом. Подсчитывается число сгенерированных блоков за последние две недели и сравнивается с эталоном (1 блок каждые 10 минут). Если блоков слишком много, то сложность увеличивается. Если блоков слишком мало — уменьшается. Таким образом система адаптируется к увеличению числа пользователей и, как следствие, суммарной мощности их компьютеров.

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

Например, версия никогда не меняется. Хэш предыдущего блока обновляется тогда, когда кто-нибудь нас опередит и сгенерирует новый блок. Merkle root обновляется при добавлении транзакции. Время — каждые несколько секунд. Bits (целевое значение, сложность) — каждые две недели. Все это слишком долго. Чтобы не ждать, пока обновится одно из свойств и существует nonce.

Рассмотрим гипотетическую ситуацию. Все значения nonce были проверены и ни одно из них не подходит. За это время ни одно другое свойство не изменилось. Происходит переполнение nonce и оно снова начинается с нуля. Получается, что далее хэши будут повторяться. Чтобы избежать подобных ситуаций, после переполнения nonce, меняется специальное свойство одной из транзакций. После этого обновляется Merkle root и хэши заголовка блока уже не будут повторяться.

n_tx — Количество транзакций в списке.

size — Размер блока в байтах.

Транзакции


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

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

На практике все это реализовано с помощью следующих свойств:

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

ver — Версия схемы транзакции. Пока она ни разу не менялась, так что везде равна 1.

vin_sz — Количество предыдущих транзакций, из которых деньги переводятся на новые адреса. Одна или более.

vout_sz — Количество адресов, на которые переводятся деньги. Один или более.

lock_time — Пока не используется и везде равно 0. Идея в том, чтобы создавать отложенные транзакции, чтобы они добавлялись не в текущий генерируемый блок, а, например, в слещующий. Подразумевается, что в этом свойстве указано количество блоков, которые должна пропустить транзакция перед добавлением. Это дает возможность в течении некоторого времени изменить транзакцию и переподписать ее.

size — Размер транзакции в байтах. Подразумевается размер транзакции в формате JSON.

in — Содержит список входов (источников) транзакции. В качестве входов используются выходы предыдущих транзакций (prev_out). У каждого выхода есть следующие свойства:

hash — Хэш предыдущей транзакции.

n — Так как у транзакции может быть несколько выходов, то нужно указывать, из какого из них берутся деньги. Для этого и существует данное свойство. В нем содержится порядковый номер выхода предыдущей транзакции, начиная с 0.

scriptSig — В этом свойстве отправитель должен доказать, что он переводит именно свои деньги, а не чужие. Для этого он указавает публичный ключ получателя предыдущей транзакции, т. е. свой ключ, так как он должен быть получателем. Кроме того он добавляет ECDSA подпись этой же транзакции, которая сделана его приватным ключем. Это доказывает, что он распоряжается своими деньгами, а не чужими.

После списка входов транзакции (in) указывается список выходов (out), т. е. адресатов. Каждый выход имеет следующие свойства:

value — Содержит количество денег, которые будут переведены по новому адресу. Они берутся из предыдущих транзакций. Поэтому данное число не должно превышать их сумму. Например, мы хотим взять 10 монеток из одной транзакции и 20 из другой и направить 25 по новому адресу. Чтобы оставшися 5 монеток не пропали, мы посылаем их самим себе, как сдачу. Таким образом в нашей транзакции будет два адресата, одним из которых являемся мы сами. Value всегда указывается в наномонетах, чтобы избежать дробных чисел.

scriptPubKey — Это свойство, вместе с scriptSig составляют сценарий на модифицированном Forth-like языке. ScriptPubKey содержит операторы языка и хэш публичного ключа получателя транзакции. Сценарий проверяет транзакцию на валидность. Использование подобного сценария дает богатые возможности для описания условий получения денег адресатом. Например, можно заставить получателя указывать пароль вместо ECDSA.

Суммарное количество денег на входе транзакции всегда равно суммарному количеству на выходе. В противном случае деньги либо возникали из воздуха, либо исчезали из оборота. Но в самом начале был график, по которому видно, что число денег экспоненциально растет. Так откуда берутся новые деньги в системе?

На мой вкус, эмиссия денег реализовано просто и элегантно. В каждом блоке первая транзакция в списке является особой транзакцией. У нее всегда один вход, у которого вместо свойства scriptSig есть свойствоcoinbase. Это свойство может содержать что угодно.

Выход у транзакции также всегда один. Он перенаправляет 50 монеток тому, кто сгенерировал блок, в котором расположена эта транзакция. Это своего рода награда за потраченное время и ресурсы на генерацию блока. Создавая новый блок в цепочке, клиент вносит вклад в работу Bitcoin.

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

Стабильность работы системы основана на количестве пользователей, у которых запущен официальный клиент. Пока их большинство, Bitcoin ничего не угрожает.

Заключение


Proof of work (доказательство работы) — результат работы, которого трудно добиться, но легко проверить. Работа сети Bitcoin основана на этом принципе. Проверить хэш (результат работы) можно за доли секунды. А для того, чтобы его подобрать, требуется много работы.

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

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

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

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

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

Надеюсь, что после этой статьи уровень доверия к Bitcoin хотя бы немного вырастет.
via habr


Страницы: 1 2 3 4 5 

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по сумме баллов (758) в категории «Истории»


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