Как устроена программа биткоин

Bitcoin: что это такое и как его майнят? Что вообще значит «майнить», и как устроена система работы с криптовалютами? Рассказывает сайт proglib.io.

Криптовалюты

Суть и появление

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

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

Назначение

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

КАК РАБОТАЕТ БИТКОИН? — ТОПЛЕС

Разнообразие криптовалют

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

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

Принцип работы

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

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

Принцип работы

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

Принцип работы Bitcoin

Но и здесь не все гладко, ведь современные технологии позволяют копировать любые данные. Идея в том, что каждый получает «ключевую пару» – открытый (pk) и закрытый (секретный, sk) ключ в виде цепочки битов. В этом случае даже малейшее изменение в сообщении полностью изменяет подпись. sk позволяет делать подпись только вам, и так как она зависит от сообщения, никто не сможет ее скопировать из одного сообщения и подделать для другого. Плюс у каждой записи есть уникальный ID.

Хотите знать, как устроен Биткоин (и другие криптовалюты)?

У каждой записи есть уникальный ID.

Открытый ключ выдает только true или false в зависимости от того, была ли подпись создана на базе закрытого ключа. Суть в том, что невозможно подобрать правильную подпись без доступа к закрытому ключу. Лучшая стратегия – перебор и проверка случайных подписей, используя открытый ключ. Но подписи длиной в 256 бит – это 2 в 256 степени подписей. Астрономически большое количество!

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

Полная история операций

Bitcoin, реальные деньги и доверие

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

Биткоин и реальные деньги

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

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

Решение

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

Хэш-функция

Так что же такое хеш-функция? Аргументом такой функции может быть сообщение, файл или что угодно. А значение – цепочка битов определенной длины, например, 256 бит. Выходное значение функции – «хэш» или «дайджест» сообщения. Значение, по идее, случайное, но это не совсем так: значение всегда одно и то же для определенного аргумента.

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

Эта функция не простая, а криптографическая. Значит, ее расчет в обратном направлении требует невыполнимых вычислений. Опять же, подбор из 2^256 вариантов требует колоссального объема вычислений.

Безопасность

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

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

Допустим, человек говорит вам, что хэш начинается с 30 нулей. Вероятность этого составляет 1 из 2^30 (примерно из миллиарда). Поскольку это криптографическая функция, единственный выход проверить – перебирать и проверять варианты (где-то миллиард чисел). Но когда число известно, его легко проверить, просто подставив в хэш-функцию и посчитав количество нулей.

Читайте также:
Создайте программу которая подсчитывает количество введенного символа во введенной строке

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

Доказательство выполненной работы

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

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

Блокчейн: что за зверь такой?

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

Чтобы упорядочить блоки, мы сделаем так, что каждый блок должен содержать хеш предыдущего блока в заголовке. Так что если вам захочется изменить какой-то блок или поменять их местами, от этого изменится и следующий блок, и его хеш, и так далее. Для этого потребовалось бы обнулить всю работу и начать ее заново, найти особое число, с которым хеш блока начинается с 60 нулей. Эти блоки образуют цепочку, так что вместо слова «журнал» используют «блокчейн» (Block Chain).

Биткоин как награда и майнинг

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

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

Получение награды

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

Самый длинный блок

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

Защита

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

Защита

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

Это и есть механизм, по которому работают Bitcoin и другие криптовалюты.

***
Подписывайтесь на наш канал в Telegram!

Источник: techrocks.ru

Как устроена программа биткоин

Bitcoin (BTC)

Ethereum (ETH)

Cardano (ADA)

Dogecoin (DOGE)

Polygon (MATIC)

Solana (SOL)

Polkadot (DOT)

Litecoin (LTC)

Shiba Inu (SHIB)

Chainlink (LINK)

Cosmos Hub (ATOM)

Monero (XMR)

Ethereum Classic (ETC)

Stellar (XLM)

Bitcoin Cash (BCH)

VeChain (VET)

Algorand (ALGO)

Decentraland (MANA)

Theta Network (THETA)

IOTA (MIOTA)

Enjin Coin (ENJ)

Compound (COMP)

Waves (WAVES)

Komodo (KMD)

OMG Network (OMG)

Криптовалютная биржа №1 в мире

Наши контакты: [email protected]

Криптовалютная биржа №1 в мире

Информационный портал «Майнинг Криптовалюты».

Источник: mining-cryptocurrency.ru

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:
Не заходит в вот прекращена работа программы
Условно ограниченный ресурс

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

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

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

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

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

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

Поэтому всегда можно проверить всю цепочку на валидность.

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

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

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

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

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

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

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

Блок

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 хотя бы немного вырастет.

  • bitcoin
  • платёжные системы
  • электронные деньги
  • p2p
  • протокол
  • структуры данных

Источник: habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru