Как добавляются новые блоки в блокчейн
Когда у вас есть знания о том, что такое криптографически стойкая хеш-функция, понять, что такое цепочка блоков (англ. blockchain ), очень просто. Blockchain – это последовательный набор блоков (или же, в более общем случае, ориентированный граф), каждый следующий блок в котором включает в качестве хешируемой информации значение хеш-функции от предыдущего блока.
Технология block chain используется для организации журналов транзакций, при этом под транзакцией может пониматься что угодно: финансовая транзакция (перевод между счетами), аудит событий аутентификации и авторизации, записи о выполненных ТО и ТУ автомобилей. При этом событие считается случившимся, если запись о нём включена в журнал.
В таких системах есть три группы действующих лиц:
- генераторы событий (транзакций);
- генераторы блоков (фиксаторы транзакций);
- получатели (читатели) блоков и зафиксированных транзакций.
В зависимости от реализации эти группы могут пересекаться. В системах типа Bitcoin , например, все участники распределённой системы могут выполнять все три функции. Хотя за создание блоков (фиксацию транзакций) обычно отвечают выделенные вычислительные мощности, а управляющих ими участников называют майнерами (англ. miners , см. раздел про децентрализованный block chain далее).
Основное требование к таким журналам таково:
- невозможность модификации журнала: после записи транзакции в журнал должно быть невозможно её оттуда удалить или изменить.
Для того чтобы понять, как можно выполнить требование на запрет модификации, стоит разобраться со следующими вопросами.
- Каким образом гарантируется, что внутри блока нельзя поменять информацию?
- Каким образом система гарантирует, что уже существующую цепочку блоков нельзя перегенерировать, тем самым исправив в них информацию?
Ответ на первый вопрос прост: нужно снабдить каждый блок хеш-суммой от его содержимого. И эту хеш-сумму включить в качестве дополнительной полезной информации (тоже хешируемой) в следующий блок. Тогда для того, чтобы поменять что-то в блоке без разрушения доверия клиентов к нему, нужно будет это сделать таким образом, чтобы хеш-сумма от блока не поменялась. А это как раз практически невозможно, если у нас используется криптографически стойкая хеш-функция. Либо поменять в том числе и хеш-сумму блока. Но тогда придётся менять и значение этой хеш-суммы в следующем блоке. А это потребует изменений, в свою очередь, в хеш-сумме всего второго блока, а потом и в третьем, и так далее. Получается, что для того, чтобы поменять информацию в одном из блоков, нужно будет перегенерировать всю цепочку блоков, начиная с модифицируемого. Можно ли это сделать?
Тут нужно ответить на вопрос, как в подобных системах защищаются от возможности перегенерации цепочки блоков. Мы рассмотрим три варианта систем:
- централизованный с доверенным центром,
- централизованный с недоверенным центром,
- децентрализованный вариант с использованием доказательства работы.
8.8.1. Централизованный blockchain с доверенным центром
Если у нас есть доверенный центр, то мы просто поручаем ему через определённый промежуток времени (или же через определённый набор транзакций) формировать новый блок, снабжая его не только хеш-суммой, но и своей электронной подписью. Каждый клиент системы имеет возможность проверить, что все блоки в цепочке сгенерированы доверенным центром и никем иным. В предположении, что доверенный центр не скомпрометирован, возможности модификации журнала злоумышленником нет.
Использование технологии block chain в этом случае является избыточным. Если у нас есть доверенный центр, можно просто обращаться к нему с целью подписать каждую транзакцию, добавив к ней время и порядковый номер. Номер обеспечивает порядок и невозможность добавления (удаления) транзакций из цепочки, электронная подпись доверенного центра – невозможность модификации конкретных транзакций.
8.8.2. Централизованный blockchain с недоверенным центром
Интересен случай, когда выделенный центр не является доверенным. Точнее, не является полностью доверенным. Мы ему доверяем в плане фиксации транзакций в журнале, но хотим быть уверенными, что выделенный центр не перегенерирует всю цепочку блоков, удалив из неё ненужные ему более транзакции или добавив нужные.
Для этого можно использовать, например, следующие методы.
- Первый метод с использованием дополнительного доверенного хранилища. После создания очередного блока центр должен отправить в доверенное и независимое от данного центра хранилище хеш-код от нового блока. Доверенное хранилище не должно принимать никаких изменений к хеш-кодам уже созданных блоков. В качестве такого хранилища можно использовать и децентрализованную базу данных системы, если таковая присутствует. Размер хранимой информации может быть небольшим по сравнению с общим объёмом журнала.
- Второй возможный метод состоит в дополнении каждого блока меткой времени, сгенерированной доверенным центром временных меток. Такая метка должна содержать время генерации метки и электронную подпись центра, вычисленную на основании хеш-кода блока и времени метки. В случае, если «недоверенный» центр захочет перегенерировать часть цепочки блоков, будет наблюдаться разрыв в метках времени. Стоит отметить, что этот метод не гарантирует, что «недоверенный» центр не будет генерировать сразу две цепочки блоков, дополняя их корректными метками времени, а потом не подменит одну другой.
- Некоторые системы предлагают связывать закрытые block chain -решения и открытые (и неконтролируемые ими) сети вроде Bitcoin’а, публикуя в последнем (в виде транзакции) информацию о хеш-суммах новых блоков из закрытой цепочки. В этом случае информация из открытой и неконтролируемой организацией сети позволяет доказать, что определённый блок во внутренней сети был сформирован не позднее времени создания блока в открытой сети. А отсутствие для известных (заданных заранее) адресов отправителя других транзакций позволяет доказать, что центральный узел не формирует какую-нибудь параллельную цепочку для замены в будущем.
8.8.3. Децентрализованный blockchain
Наибольший интерес для нас – и наименьший для компаний, продающих block chain -решения, – представляет децентрализованная система block chain без выделенных центров генерации блоков. Каждый участник может взять набор транзакций, ожидающих включения в журнал, и сформировать новый блок. Более того, в системах типа Bitсoin такой участник (будем его назвать «майнером», от англ. to mine – копать) ещё и получит премию в виде определённой суммы и/или комиссионных от принятых в блок транзакций.
Но нельзя просто так взять и сформировать блок в децентрализованных системах. Надёжность таких систем основывается именно на том, что новый блок нельзя сформировать быстрее (в среднем) чем за определённое время. Например, за 10 минут (Bitcoin). Это обеспечивается механизмом, который получил название доказательство работы (англ. proof of work, PoW ).
Механизм основывается на следующей идее. Пусть есть криптографически стойкая хеш-функция $h(x)$ , и задан некоторый параметр $t$ (от англ. target – цель). $0 < t < 2^
- собрать из пула незафиксированных транзакций те, которые поместятся в 1 блок (1 мегабайт для сети Bitcoin ) и имеют максимальную комиссию (решить задачу о рюкзаке );
- добавить в блок информацию о предыдущем блоке;
- добавить в блок информацию о себе (как об авторе блока, кому начислять комиссии и бонусы за блок);
- установить $r$ в некоторое значение, например, $0$ ;
- выполнять в цикле:
- обновить значение $r := r + 1$ ;
- посчитать значение $h = h( \text <блок>|| r)$ ;
- если $h < t$ , добавить в блок $r$ и считать блок сформированным, иначе – повторить цикл.
Для каждой итерации цикла вероятность получить корректный блок равна $t / 2^
$ . Так как $t$ обычно мало, то майнерам нужно сделать большое количество итераций цикла, чтобы найти нужный $r$ . При этом только один (обычно – первый) из найденных блоков будет считаться корректным. Чем больше вычислительная мощность конкретного майнера, тем больше вероятность, что именно он первым сумеет найти нужный $r$ . Зная суммарную вычислительную мощность block chain -сети, участники могут договориться о таком механизме изменения параметра $t$ , чтобы время генерации нового корректного блока было примерно заданное время. Например, в сети Bitcoin параметр $t$ пересчитывается каждые 2016 блоков таким образом, чтобы среднее время генерации блока было 10 минут. Это позволяет адаптировать сеть к изменению количества участников, их вычислительных мощностей и к появлению новых механизмов вычисления хеш-функций.
Кроме задания параметра $t$ можно оперировать другими величинами, так или иначе относящимися к мощности вычислений.
- Hashrate – количество хешей, которые считают за единицы времени конкретный майнер или сеть в целом. Например, в ноябре 2017 года общий hashrate для сети Bitcoin составлял примерно $7,7 \times 10^<18>$ хешей в секунду.
- Difficulty – сложность поиска корректного блока, выражаемая как $d = d_
/ t$ , где $d_ $ – некоторая константа сложности, а $t$ – текущая цель (англ. target ). В отличие от параметра $t$ , который падает с ростом вычислительной мощности сети, $d$ изменяется вместе с $hashrate$ , что делает его более простым для восприятия и анализа человеком.
В случае примерно одновременной генерации следующего блока двумя и более майнерами (когда информация о новом блоке публикуется вторым майнером до того, как ему придёт информация о новом блоке от первого) в направленном графе блоков происходит разветвление. Далее каждый из майнеров выбирает один из новых блоков (например – какой первый увидели) и пытается сгенерировать новый блок на основе выбранного, продолжая «ответвление» в графе. В конце концов одна из двух таких цепочек становится длиннее (та, которую выбрало большее число майнеров), и именно она признаётся основной.
В случае нормального поведения системы на включение конкретных транзакций в блоки это влияет мало, так как каждый из добросовестных майнеров следует одному и тому же алгоритму включения транзакций в блок (например, в сети Bitcoin – алгоритму максимизации комиссии за блок). Однако можно предположить, что какой-нибудь злоумышленник захочет «модерировать» распределённый block chain , включая или не включая в блоки транзакции по своему выбору. Предположим, что доля вычислительных ресурсов злоумышленника (направленных на генерацию нового блока) равна $p, 0 < p < 1/2$ . В этом случае каждый следующий сгенерированный блок с вероятностью $p$ будет сгенерирован мощностями злоумышленника. Это позволит ему включать в блоки те транзакции, которые другие майнеры включать не захотели.
Но позволит ли это злоумышленнику не включать что-то в цепочку транзакций? Нет. Потому что после его блока с вероятностью $1 — p$ будет следовать блок «обычного» майнера, который с радостью (пропорциональной комиссии-награде) включит все транзакции в свой блок.
Однако ситуация меняется, если мощности злоумышленника составляют более 50 от мощности сети. В этом случае, если после блока злоумышленника был с вероятностью $1 — p$ сгенерирован «обычный» блок, злоумышленник его может просто проигнорировать и продолжать генерировать новые блоки, как будто он единственный майнер в сети. Тогда если среднее время генерации одного блока всеми мощностями $t$ , то за время $T$ злоумышленник сможет сгенерировать $N_E = p \times T / t$ , а легальные пользователи $N_L = (1 — p) \times T / t$ блоков, $N_E > N_L$ . Даже если с некоторой вероятностью легальные пользователи сгенерируют 2 блока быстрее, чем злоумышленник один, последний всё равно «догонит и перегонит» «легальную» цепочку примерно за время $t / (2p — 1)$ . Так как в block chain есть договоренность, что за текущее состояние сети принимается наиболее длинная цепочка, именно цепочка злоумышленника всегда будет восприниматься правильной. Получается, что злоумышленник сможет по своему желанию включать или не включать транзакции в цепочки.
Правда, пользоваться чужими деньгами злоумышленник всё равно не сможет – так как все блоки транзакций проверяются на внутреннюю непротиворечивость и корректность всех включённых в блок транзакций.
Кроме концепции «доказательство работы» можно использовать и другие. Например, в подходе «доказательство доли владения» (англ. proof of share, PoS ), который планировалось использовать в сетях Etherium и EmerCoin, вероятность генерации блока пропорциональна количеству средств на счетах потенциальных создателей нового блока. Это намного более энергоэффективно по сравнению с PoW, и, кроме того, связывает ответственность за надёжность и корректность генерации новых блоков с размером капитала (чем больше у нас средств, тем меньше мы хотим подвергать опасности систему). С другой стороны, это даёт дополнительную мотивацию концентрировать больше капитала в одних руках, что может привести к централизации системы.
8.8.4. Механизм внесения изменений в протокол
Любая система должна развиваться. Но у децентрализованных систем нельзя просто «включить один рубильник» и заставить участников системы работать по-новому – иначе систему нельзя назвать полностью децентрализованной. Механизмы и способы внесения изменений могут выглядеть на первый взгляд нетривиально. Например:
- апологеты системы предлагают изменения в правилах работы;
- авторы ПО вносят изменения в программный код, позволяя сделать две вещи:
- указать участникам системы, что они поддерживают новое изменение,
- поддержать новое изменение;
- участники системы скачивают новую версию и выставляют в новых блоках транзакций (или в самих транзакциях) сигнальные флаги, показывающие их намерение поддержать изменение;
- если к определённой дате определённое число блоков (или число транзакций, или объём транзакций) содержат сигнальный флаг, то изменение считается принятым, и большая (по числу новых блоков) часть участников системы в определённую дату включают эти изменения;
- те участники, которые не приняли изменения, или приняли изменения вопреки отсутствию согласия на них большей части участников, в худшем случае начнут генерировать свою цепочку блоков, только её признавая корректной. Основную цепочку блоков они будут считать неверно сгенерированной. По факту это приведёт к дублированию (разветвлению, форку) системы, когда в какую-то дату вместо одного журнала транзакций появляется два, ведущимися разными людьми. Это журналы совпадают до определённой даты, после чего в них начинаются расхождение.
Подводя итоги, Сатоши Накамото (псевдоним, англ. Satoshi Nakamoto ), автор технологий blockchain и Bitcoin , сумел предложить работающий децентрализованный механизм, в котором и само поведение системы, и изменения к этой системе проходят через явный или неявный механизм поиска консенсуса участников. Для получения контроля над системой в целом злоумышленнику придётся получить контроль как минимум над 50 всех мощностей системы (в случае PoW), а без этого можно лишь попытаться ограничить возможность использования системы конкретными участниками.
Однако созданная технология не лишена недостатков. Существуют оценки, согласно которым использование метода PoW для системы bitcoin приводит к затратам энергии, сравнимой с потреблением электричества целыми городами или странами. Есть проблемы и с поиском консенсуса – сложный механизм внесения изменений, как считают некоторые эксперты, может привести к проблемам роста (например, из-за ограниченности числа транзакций в блоке), и, в будущем, к отказу использования механизма как устаревшего и не отвечающего будущим задачам.
Как блоки добавляются в блокчейн, простое объяснение
Хотя блокчейн часто является синонимом криптовалюты , эта технология имеет широкий спектр применений в различных отраслях. В наши дни вы можете обнаружить, что блокчейны используются для хранения данных об активах, начиная от покупок недвижимости и заканчивая управлением цепочками поставок в таких секторах, как здравоохранение и образование.
Во всех случаях использования блокчейн функционирует как общая неизменяемая цифровая запись всех транзакций, называемая блоками.
Вот как блоки добавляются в блокчейн.
Блокчейн, также известный как технология распределенного реестра (DLT), представляет собой децентрализованную запись транзакций, которая постоянно проверяется и обновляется. Практически любой актив можно отследить с помощью сети блокчейнов, хотя эта технология широко связана с такими криптовалютами, как биткойн (BTC) и эфир (ETH), каждая из которых имеет свою собственную связанную сеть блокчейнов.
В прошлом транзакции отслеживались и хранились финансовыми учреждениями, а проверка этой информации часто занимала много времени и ограничивалась определенными привилегированными сторонами.
Технология блокчейн делает ведение записей прозрачным и позволяет делиться ими по сетям. Ни одна сторона не может изменить транзакцию после того, как она была добавлена в реестр, а автоматизированные инструменты, называемые смарт-контрактами , могут выполнять транзакции, не требуя посредника, такого как банк. Кроме того, не существует единой основной копии блокчейна; вместо этого информация перепроверяется (подтверждается ) другими компьютерами (узлами) в сети.
Короче говоря, технология блокчейна может повысить безопасность, повысить доверие и ускорить транзакции внутри сети.
Грубо говоря, двумя основными компонентами блокчейнов являются блоки информации и бесконечная виртуальная цепочка , которая соединяет и отслеживает эту информацию.
Вот несколько дополнительных ключевых терминов для понимания:
- Блок — набор данных, содержащий временную метку и другую зашифрованную информацию о недавних транзакциях, которые должны быть проверены сетью перед добавлением в цепочку.
- Узлы — компьютеры в сети, на которых хранятся полные копии всех транзакций, что делает их практически невозможными.
- Хэш – буквенно-цифровая строка, которая подтверждает транзакции в блокчейне и служит цифровым следом.
- Майнинг – процесс проверки и добавления блоков в реестр блокчейна, а также добавления монет криптовалюты в обращение с использованием механизма консенсуса PoW.
- Nonce – сокращение от «номер, используемый только один раз»; зашифрованное число, которое майнеры должны решить, чтобы проверить новый блок в блокчейне перед его закрытием
- Распределенный реестр – база данных, которая используется совместно и синхронизируется между членами децентрализованной сети.
- Награда за блок — механизм стимулирования, получаемый майнерами и используемый для поощрения участия в сети.
Существует несколько давних технологий , которые вместе обеспечивают работу блокчейна. Криптография означает защиту информации путем ее преобразования так, чтобы ее мог обработать только предполагаемый получатель. Блокчейн использует два типа криптографических ключей — открытый ключ и закрытый ключ — для создания безопасной цифровой идентификации. Распределенная сеть затем используется для проверки транзакций и обеспечения безопасности сети. Весь процесс регулируется уникальным набором правил, называемым протоколом.
Существуют различные механизмы консенсуса, используемые для проверки транзакций и добавления новых блоков в блокчейн. В криптовалюте наиболее распространенными методами являются доказательство работы и доказательство доли.
Биткойн был представленСатоши Накамото в 2008 году под названием «Биткойн: одноранговая электронная денежная система» и стал первым крупным применением технологии блокчейна. Он использует метод консенсуса «доказательство работы» для создания новых блоков и ввода в обращение новых биткойнов. Этот метод проверяет транзакции посредством майнинга, а пользователи, проверяющие транзакции, называются майнерами.
Поскольку центрального органа нет, транзакции управляются, а новые монеты выпускаются коллективно в сети.
Допустим, пользователь А хочет отправить 1 биткойн (BTC) пользователю Б.
Когда пользователь А инициирует транзакцию, информация об отправителе и получателе упаковывается, отмечается в блоке и отправляется в очередь, называемую мемпулом (сокращение от пула памяти), где она будет ожидать проверки и добавления в блокчейн.
Майнеры, успешно обнаружившие блоки, будут выполнять пакеты транзакций и проверять подлинность всей информации, включая цифровые подписи, сообщения и открытые ключи.
Как только информация проверена, блок транслируется всем узлам сети, которые должны проверить и согласиться с тем, что блок действителен, прежде чем добавлять его в официальную цепочку. Среднее время, необходимое для подтверждения транзакции биткойнов, составляет около 10 минут.
Когда процесс будет завершен, пользователь Б получит 1 BTC, отправленный ему пользователем А, все узлы в сети согласятся на транзакцию с использованием выбранной модели консенсуса, а майнер биткойнов получит вознаграждение за проверку успешной транзакции. . Новые блоки информации об этой транзакции теперь связаны друг с другом как часть бесконечной и общедоступной цепочки.
Сегодня существуют тысячи криптовалют, которые работают в десятках сетей блокчейнов, хотя технология блокчейна имеет практическое применение, выходящее за рамки криптовалютных транзакций. Сети блокчейна, такие как Ethereum и Bitcoin , продолжают модернизировать свои сети, интегрируя новые способы стать более эффективными, энергосберегающими и дешевыми, чем когда-либо прежде.
Если Вы дочитали до этого момента, то для Вас бонус: БЕСПЛАТНАЯ МЕТОДИЧКА ПО NFT 2023. Для этого переходим сюда
Изучаем блокчейн на практике
Вы читаете эту статью потому, что, как и я, с горячим интересом наблюдаете за возрастающей популярностью криптовалюты. И вам хочется понять, как работает блокчейн — технология, которая лежит в ее основе.
Но разобраться в блокчейне не так-то просто, по крайней мере, по моему опыту. Я корпел над заумными видео, продирался через туториалы и с нарастающей досадой отмечал недостаток иллюстрирующих примеров.
Я предпочитаю учиться в процессе работы. При таком раскладе мне приходится отрабатывать тему сразу на уровне кода, что помогает закрепить навык. Если вы последуете моему примеру, то к концу статьи у вас будет функционирующий блокчейн и ясное понимание, как это все работает.
Но для начала…
Напомню: блокчейн — это неизменяемая, последовательная цепочка записей, которые называются блоками. Они могут заключать в себе транзакции, файлы и, в принципе, любые другие виды данных. Главное здесь — что они связаны друг с другом посредством хэшей.
Если вы не совсем понимаете, что такое хэш, вам сюда.
На кого рассчитано это руководство? На тех, кто без проблем может читать и писать несложный код на Python и в общих чертах представляет, как работают HTTP запросы — мы будет общаться с нашим блокчейном через HTTP.
Что будет нужно для работы? Проверьте, чтобы у вас был установлен Python 3.6+ (вместе с pip). Также вам нужно будет установить Flask и прекрасную библиотеку Requests:
Ах да, еще вам понадобится HTTP клиент, например, Postman или cURL. Тут подойдет любой.
Где можно посмотреть то, что получится в итоге? Исходный код доступен здесь.
Шаг первый: Делаем блокчейн
Откройте свой любимый текстовый или графический редактор, мне вот, например, нравится PyCharm. Создайте новый файл под названием blockchain.py. Мы будем работать только в этом файле, а если запутаетесь, всегда можно подсмотреть в исходный код.
Представление блокчейна
Сначала мы создаем новый класс, конструктор которого создаст исходный пустой список (где и будет храниться наш блокчейн) и еще один — для транзакций. Вот как выглядит структура класса:
Класс Blockchain отвечает за управление цепочкой. Здесь будут храниться транзакции, а также некоторые вспомогательные методы для добавления в цепочку новых блоков. Давайте распишем эти методы.
Как выглядит блок?
В каждом блоке содержится индекс, метка времени (в Unix), список транзакций, доказательство и хэш предыдущего блока.
Вот пример того, как может выглядет отдельный блок:
Теперь идея цепочки должна быть очевидна — каждый блок включает в себя хэш предшествующего. Это очень важно: именно так обеспечивается неизменность цепочки: если хакер повредит какой-либо блок, то абсолютно все последующие будут содержать неверные хэши.
Понятно? Если нет, остановитесь и дайте себе время усвоить эту информацию — именно в ней состоит базовый принцип блокчейна.
Добавляем транзакции в блок
Нам нужно каким-то образом добавлять в блок новые транзакции. За это отвечает метод new_transaction(), работает он достаточно просто:
Когда new_transaction() добавляет новую транзакцию в список, он возвращает индекс блока, куда она была записана, следующему, с которым будет осуществляться майнинг. Позже это пригодится следующему пользователю, добавляющему транзакцию.
Помимо создания блока genesis в конструкторе, мы также распишем методы new_block(), new_transaction() и hash():
Вышеприведенный код, вероятно, в пояснениях не нуждается — я добавил кое-где комментарии и докстринги, чтобы было понятнее. С представлением блокчейна мы практически закончили. Но сейчас вы, должно быть, задаетесь вопросом, как происходит процесс создания, встраивания и майнинга блоков.
Разбираемся с доказательством работы
Алгоритм доказательства работы служит для создания новых блоков в блокчейне (это процесс еще называется майнингом). Цель доказательства работы — вычислить нужное значение, чтобы решить уравнение. Это значение должно быть сложно рассчитать (с математической точки зрения), но легко проверить любому участнику системы. В этом заключается основная идея доказательства работы.
Чтобы стало яснее, давайте рассмотрим очень простой пример.
Допустим, хэш некоторого числа X, помноженного на другое Y, должен оканчиваться на 0. Соответственно, hash(x * y) = ac23dc. 0. Для этого упрощенного примера установим x = 5. Прописываем все это на Python:
Правильный ответ здесь: y = 21; именно при таком значении получается хэш с 0 в конце:
В биткойне алгоритм доказательства работы называется HashCash и не особенно отличается от простенького примера, приведенного выше. Это уравнение, которые майнеры наперегонки пытаются разрешить, чтобы создать новый блок. В целом, сложность определяется тем, сколько символов нужно вычислить в заданной последовательности. За верный ответ майнеры получают вознаграждение в виде одной монеты — в ходе транзакции.
Проверить их решение для системы не составляет труда.
Пишем простое доказательство работы
Теперь давайте пропишем подобный же алгоритм для нашего блокчейна. Условия возьмем в духе вышеприведенного примера:
Найдите число p, которое, будучи хэшировано с доказательством предыдущего блока, дает хэш с четырьмя нулями в начале.
Мы можем варьировать сложность этой задачи, меняя количество нулей в начале. Но четырех вполне достаточно. Вы можете сами убедиться, что один-единственный дополнительный нолик значительно замедляет процесс поиска решения.
Работа над классом почти завершена и теперь мы готовы начать взаимодействие с ним при помощи HTTP запросов.
Шаг второй: Блокчейн как API
Здесь мы будем использовать Python Flask — микрофреймворк, который облегчает процесс соотнесения конечных пунктов с функциями Python, что позволяет нам осуществлять диалог с блокчейном по Сети при помощи HTTP запросов.
Создаем три метода:
- /transactions/new для создания новой транзакции в блоке
- /mine для майнинга нового блока на сервере
- /chain для возвращения полной цепочки блокчейна.
Наш «сервер» сгенерирует один-единственный узел сети в блокчейн-системе. Давайте напишем немного шаблонного кода:
Краткие пояснения к тому, что мы добавили:
Строка 15: Инстанцирует узел. Подробнее о Flask можно почитать здесь.
Строка 18: Создает произвольное имя для узла.
Строка 21: Инстанцирует класс Blockchain.
Строки 24-26: Создает конечную точку /mine, то есть запрос GET.
Строки 28-30: Создает конечную точку /transactions/new, то есть запрос POST, так как именно туда мы и будем отсылать данные.
Строки 32-38: Создает конечную точку /chain, который возвращает блокчейн целиком.
Строки 40-41: Запускает сервер на порту 5000.Конечный пункт для транзакций
Вот как будет выглядеть запрос на транзакцию. Именно это пользователь отсылает на сервер:
Метод класса для добавления транзакции в блок у нас уже есть, поэтому дальше все легко. Давайте напишем функцию для добавления транзакции:
Конечный пункт для майнинга
Именно в этой конечной точке творится вся магия, но ничего особо сложного в нем нет. Она должна делать три вещи:
- Рассчитывать доказательство работы
- Выдавать майнеру (то есть нам) вознаграждение, добавляя транзакцию, с ходе которой мы получаем одну монету
- Встраивать новый блок в цепочку
Обратите внимание, что в качестве получателя созданного блока указан адрес узла. Большая часть того, что мы тут делаем, сводится к взаимодействию с методами нашего класса Blockchain. По завершению этого шага основная работа закончена, можно начинать диалог.
Шаг третий: Диалог с блокчйном
Для взаимодействия с API в рамках системы можно использовать старый-добрый cURL или Postman.
Давайте попробуем создать блок, отправив запрос GET по адресу localhost:5000/mine:

Теперь создаем новую транзакцию, отправив запрос POST, содержащий ее структуру, по адресу localhost:5000/transactions/new:

Если вы работаете не с Postman, вот как сформулировать аналогичный запрос в cURL:
Я перезапустил сервер и создал еще два блока, чтобы в итоге получилось три. Давайте изучим получившуюся цепочку через запрос localhost:5000/chain:
Шаг четвертый: Консенсус
Все это очень здорово. У нас есть простой блокчейн, который позволяет осуществлять транзакции и создавать новые блоки. Но блокчейн имеет смысл только в том случае, если он децентрализован. А если сделать его децентрализованным, как мы вообще можем гарантировать, что везде будет отображаться одна и та же цепочка? Это называется проблемой консенсуса. Если мы хотим, чтобы в системе было больше одного узла, придется ввести алгоритм консенсуса.
Распознаем новые узлы
Прежде чем внедрять алгоритм консенсуса, нам нужно что-то предпринять, чтобы каждый узел в системе знал о существовании соседних. У каждого узла в системе должен быть реестр всех остальных узлов. А значит понадобятся дополнительные конечные точки:
- /nodes/register, который будет принимать список новых узлов в URL формате
- /nodes/resolve для внедрения алгоритма консенсуса, который будет разрешать возникающие конфликты и отслеживать, чтобы в узле содержалась правильная цепочка.
Заметьте: мы использовали set() для хранения списка узлов. Это нехитрый способ гарантировать, что при добавлении новых узлов будет соблюдаться индемпотентность — то есть сколько бы раз мы ни добавляли какой-то конкретный узел, он будет засчитан только единожды.
Внедряем алгоритм консенсуса
Как я уже упоминал, конфликт происходит тогда, когда цепочка одного узла отличается от цепочки другого. Чтобы его устранить, мы введем такое правило: прерогатива всегда у той цепочки, которая длиннее. Иными словами, самая длинная цепочка в системе рассматривается как фактическая. Используя такой алгоритм, мы достигаем консенсуса среди всех узлов системы:
Первый метод valid_chain() отвечает за проверку цепочек на валидность, проходя каждый блок и верифицируя и хэш, и доказательство.
resolve_conflicts() — метод, который прорабатывает все соседние узлы: скачивает их цепочки и проверяет их описанным выше способом. Если при этом найдена валидная цепочка длиннее, чем наша, производится замена.
Давайте введем в наш API две конечные точки, один для добавления соседних узлов, другой для разрешения конфликтов:
На данном этапе, если хотите, можете привлечь другие машины и насоздавать разных узлов для вашей системы. Или добиться того же используя разные порты на одной машине. Я создал новый узел на другом порте той же машины, и позволил исходному узлу его распознать. Таким образом, получилось два узла: localhost:5000 и localhost:5001.

В узел номер два я добавил побольше блоков, чтобы цепочка получилась однозначно длиннее. После чего вызвал GET /nodes/resolve в первом узле — и алгоритм консенсуса заменил его цепочку на цепочку второго.

Ну, вот и все. Теперь собирайте друзей и тестируйте вам блокчейн совместными усилиями.
Надеюсь, этот материал вдохновит вас на новые идеи. Лично я с большим энтузиазмом наблюдаю за развитием криптовалюты: я уверен, что блокчейн перевернет наши представления об экономике, управлении государством и хранении информации.
В будущем я планирую выпустить вторую часть статьи, где мы добавим в блокчейн механизм валидации транзакций и поговорим о том, как все это можно использовать в продуктах.
Блокчейн для чайников: Ультимативный гайд
На волне хайпа решил сделать перевод, поделиться информацией. Возможно это уменьшит количество «небрежных» комментариев (нет) под новостями о криптовалютах и блокчейнах. Возможно кому-то тема покажется просто интересной и пойдет копать дальше.
Блокчейн был представлен как технология, лежащая в основе Биткоина — первой криптовалюты. Думайте об этом как об инфраструктуре для криптовалюты — если бы криптовалюты были автомобилями, блокчейн был бы дорогой. Хотя среди экспертов ведутся некоторые споры о будущем криптовалют, о светлом будущем технологии блокчейн спорить не приходится. В этом руководстве мы постараемся объяснить блокчейн простыми словами.
Все согласны с тем, что эта технология является огромным достижением — возможно, самым большим с момента появления интернета. В результате большинство крупных компаний, таких как Google и Amazon, борются за свой кусок пирога, работая над собственными блокчейн-решениями. Время, потраченное на прочтение этого руководства, окупится с лихвой.
Сравните это с чтением книги об интернете в 1994 году, когда в телепередачах еще обсуждалось рождение электронной почты.
Будущее децентрализованной технологии светлое, и независимо от того, интересуетесь ли вы криптовалютами или технологией блокчейн, знание основ блокчейн является обязательным. Это включает в себя простое объяснение того, как работают блокчейны, какие проблемы они решают, и их невероятную пользу для мира.
Мы хотим уточнить, что это руководство не будет посвящено обучению разработке блокчейн или чему-то технически продвинутому.
Если вы думаете стать профессионалом в области блокчейна или хотите узнать больше о его технических аспектах, мы предлагаем вам ознакомиться с нашим партнером Blockgeeks (используйте наши эксклюзивные коды купонов CryptoManiaksPRO и CryptoManiaksACC для 20% скидки на их премиальные продукты).
Они предлагают лучшие ресурсы, доступные в Интернете для этой цели, и уже обучили невероятное количество профессионалов в области блокчейна. Технология блокчейн меняет мир вокруг нас, и мы рассмотрим многие из ее применений в этом руководстве.
Блокчейн — это, по сути, цепочка блоков. Блоки содержат цифровую информацию, представьте их в виде пакетов данных, перевязанных, как рождественский подарок.
В случае с блокчейном Биткоина:
- Внутри каждого блока находится серия транзакций биткоина, которые были проведены в течение определенного периода времени
- Все блоки вместе составляют блокчейн Биткоина и являются подтверждением всех транзакций, произошедших с момента его создания
Биткоин, первый рабочий пример технологии блокчейн, был изобретен как ответ на неэффективность централизованных банковских учреждений. Его запуск в 2009 году, сразу после финансового краха 2007/2008 годов, не является случайным совпадением. Создатель(и) Биткоина был вдохновлен демократическим идеализмом, поощряющим индивидуальную автономию в рамках денежной (монетарной) системы.
По своей сути блокчейн — это сеть компьютеров, которые могут находиться по всему миру. Компьютеры, вносящие вклад в определенный блокчейн, обладают данными или транзакциями, которые когда-либо были записаны в этом блокчейне.
Именно эта особенность делает блокчейн децентрализованной и невероятно надежной, поскольку она способна пережить отключение электричества и политические потрясения. Чем больше компьютеров, тем сильнее блокчейн. Таким образом, блокчейн работает децентрализовано.
На сегодняшний день существует, вероятно, более 10 000 блокчейнов. Большинство блокчейнов являются либо публичными, либо частными.
Публичные блокчейны. В этом примере программное обеспечение с открытым исходным кодом используется всеми участниками сети. Любой может присоединиться, и сеть имеет глобальную основу. Например, многие криптовалюты построены на существующих блокчейнах, токены ERC20 — самый известный пример, построенный на Ethereum.
Частные блокчейны. В них используются те же принципы, что и в публичных, за исключением того, что программное обеспечение является запатентованным и размещается на частных серверах. Такие компании, как WalMart, разрабатывают свои собственные блокчейны для отслеживания логистики цепочки поставок.
Технология блокчейн — одна из самых многообещающих новых технологий на сегодняшний день. Она обеспечивает метод записи и передачи данных прозрачным, надежным и доказуемым способом. Она позволяет частным лицам и компаниям участвовать в системе переводов, которая является полностью прозрачной, демократичной и безопасной.
Самое главное, она позволяет хранить и проводить транзакции без необходимости в посредниках.
Возможно, вы еще не осознали влияние этих преимуществ, поэтому приведем несколько примеров, чтобы помочь вам.
- Visa монетизирует доверие как посредник между магазинами и клиентами
- Amazon монетизирует доверие как посредник между продавцами и покупателями
- Uber монетизирует доверие как посредник между водителями и пользователями
И этот список можно продолжать. Если вы обратили внимание, то каждый пример требует доверить посреднику вашу информацию. Наличие центрального узла сбора данных создает угрозу безопасности, ваша информация больше не принадлежит вам, теперь она принадлежит компании. Что они с ней делают — это их исключительное право.
Принятие технологии блокчейн устранит необходимость в третьих сторонах и позволит осуществлять одноранговые (peer-to-peer) транзакции без посредников.
В худшем случае это приведет к снижению затрат для компаний и платы для конечных пользователей услуг, основанных на доверии.
В лучшем случае это полностью устранит необходимость в посредниках в большинстве отраслей.
Блокчейн уже разрушает такие отрасли, как:
- Банковское дело и платежи. Технология блокчейн может предоставить доступ к финансовым услугам «небанковским» (примечание переводчика: людям у которых есть сложности доступа к банковской системе, например страны Африки) людям во всем мире. Она сделает денежную систему более прозрачной и для «банковских» людей. Большинство банков также разрабатывают свои собственные решения на основе блокчейна, поскольку это сделает их операции более быстрыми, безопасными и эффективными.
- Онлайн-хранилище данных. Облачные системы хранения данных, как мы их знаем в настоящее время, опираются на большие централизованные базы данных. Это делает данные уязвимыми для нарушения конфиденциальности и потенциальной экологической катастрофы. Блокчейн делает данные более безопасными, устраняя точки отказа. Это также позволит создать еще более экономически эффективные варианты хранения данных.
- Голосование. Блокчейн сделает выборы более прозрачными и справедливыми, чем когда-либо в истории человечества.
Технология блокчейн в настоящее время нарушает или нарушит работу любой отрасли, связанной с данными и транзакциями. Сюда входят экономические сектора, в которых задействованы посредники, монетизирующие доверие, подумайте о бюрократии в финансовых компаниях и даже правительствах.
Далее в нашем руководстве мы более подробно рассмотрим каждый из аспектов, которые мы только что затронули. От преимуществ блокчейна до проблем, которые он решает, включая некоторые более продвинутые концепции.
Если вас не очень интересуют технические аспекты блокчейна и его взаимодействия с криптовалютами, пропустите и читайте главы, касающиеся преимуществ технологии блокчейн.
Термин «майнер» постоянно развивается, и каждый блокчейн имеет уникальные спецификации этого слова.
Для простоты мы будем называть майнерами отдельных людей или компании, использующие специальное программное обеспечение для включения в блокчейн Биткоина.
Майнеры необходимы для обеспечения функционирования блокчейна, без них не было бы компьютеров, управляющих сетью, и не было бы возможности проводить с ней транзакции.
Чтобы стимулировать майнеров, вознаграждение обычно получает компьютер, который находит следующий блок в публичной цепочке с открытым исходным кодом, такой как блокчейн Биткойна. Вознаграждения обычно распределяются через криптовалюты.
Узлы — это компьютеры, на которых размещена копия блокчейна. В отличие от майнеров, они не заинтересованы в поиске следующего блока в цепочке, вместо этого они подтверждают транзакции и общаются с другими узлами и майнерами.
Узлы можно рассматривать как ретранслирующие башни, помогающие базовому блокчейну обновляться и оставаться точным.
Каждый блок в блокчейне содержит определенные данные. В случае с биткойном данные — это серия транзакций. Эти данные организованы в единую цифровую папку.
Эта папка, блок в данном случае, подтверждается майнером, который добавляет ее к предыдущему блоку в блокчейне.
Новые блоки транзакций записываются в блокчейн Биткоина каждые несколько минут. Это называется «майнинг» блоков. Это действие связывает новые блоки с уже существующей цепочкой блоков.
Но чтобы быть добавленными в существующую цепочку блоков, новые блоки должны быть подтверждены. В этом заключается роль узлов. В случае с биткоином узлы отвечают за проверку транзакций, которые происходят в сети биткоина.
Это работает следующим образом: майнеры выбирают, какие транзакции включить в новый блок. Затем узлы проверяют все транзакции в блоке. И наконец, если все в порядке, узлы передают новый блок другим узлам.
Каждый блокчейн основан на протоколе (или «алгоритме консенсуса»). Протокол — это согласованный метод взаимодействия между компьютерами. Его можно представить как правила, которым должна следовать каждая машина в сети.
Например, у Биткоина есть определенные правила, которые поддерживают стандарт протокола на всех машинах:
- 1 блок добавляется каждые 10 минут. Обычно это зависит от каждого блокчейна.
- Количество биткоинов, выдаваемых в качестве вознаграждения майнерам, уменьшается каждые 210 000 блоков. Это означает, что количество биткоинов ограничено — всего 21 миллион.
- Майнеры должны решить сложную математическую задачу, чтобы найти следующий блок. Протокол обеспечивает увеличение или уменьшение сложности поиска следующего блока в зависимости от количества майнеров, соревнующихся друг с другом.
Программным обеспечением блокчейна управляют отдельные компьютеры, соединенные друг с другом через интернет со всего мира. Каждый компьютер в блокчейне работает под управлением одного и того же программного обеспечения.
Если один из них отключается, сеть продолжает работать. Даже если каждый компьютер в мире одновременно выключится, блокчейн все равно будет хранить свои данные в распределенных бухгалтерских книгах.
Если во всем мире отключат электричество, на компьютерах останется копия бухгалтерской книги с момента ее последнего обновления. Мы не сможем обновить бухгалтерскую книгу до тех пор, пока электричество не будет восстановлено, но BTC не исчезнут.
Эта характеристика делает технологию невероятно надежной, способной пережить отключение электроэнергии и политические потрясения.
Блокчейн — это метод цифрового обмена без посредника, распространяющийся на множество машин, на всех из которых запущена одна и та же программа.
Распространяя бухгалтерские книги на каждый компьютер, работающий по протоколу, блокчейн устраняет необходимость в посредниках, централизованных органах власти и третьих сторонах.
Без третьих сторон пользователи могут взаимодействовать друг с другом напрямую, не нуждаясь в доверии или компенсации централизованных корпораций или правительств для ведения бизнеса.
Это форма сотрудничества peer-to-peer (P2P).
Сама по себе эта идея не является новой или радикальной; такие сервисы, как Napster и Limewire, использовали тот же принцип в начале 2000-х годов.
Разница заключается в возможности хранить цифровую информацию, включая транзакции в распределенной бухгалтерской книге, которая обещает неизменность (иммутабельность).
Чтобы сохранить историю транзакций во времени, копии всех блоков распределяются между участниками блокчейна. Эти участники называются узлами. Майнеры создают блокчейн, добывая блоки, но в качестве узла может выступать любой человек.
Узлы управляют программным обеспечением блокчейна и постоянно обновляют информацию о блокчейне.
Существуют различные типы узлов:
- Полные узлы
На этих компьютерах работает полная копия блокчейна, содержащая информацию, начиная с генезисного (первоначального) блока. - Облегченные узлы
Запуск этой версии содержит информацию только за несколько недель, а может быть, даже за несколько часов. Она быстрее запускается на машине, но имеет возможность быть не такой точной или безопасной, поскольку вам придется доверять другим людям, чтобы они предоставили недостающие данные.
Хостинг узла помогает поддерживать блокчейн в актуальном и точном состоянии. Узлы и майнеры постоянно перекрестно ссылаются друг на друга, чтобы построить и поддерживать блокчейн.
Когда информация хранится на нескольких машинах, это называется технологией распределенных бухгалтерских книг (Distributed Ledger Technology, или DLT). Блокчейн — один из самых известных примеров этой технологии.
Хорошим примером реальной ситуации является ваш банк. Для учета всех вносимых и изымаемых денег учреждение само ведет централизованную бухгалтерскую книгу.
Вы платите им за эту услугу, и это одна из основных причин, по которой были изобретены банки. Это также дорогостоящая инвестиция, требующая физической инфраструктуры и специалистов, работающих круглосуточно, чтобы поддерживать ее в рабочем состоянии.
Децентрализованный способ работы блокчейна контрастирует с традиционными банками.
Блокчейн размещается у каждого участника системы, что исключает необходимость в дорогостоящем центральном офисе. По сравнению с централизованной системой, у нее нет слабых мест, и она более экономически эффективна.
Вспомним предыдущие главы этого руководства «Блокчейн для чайников». Упоминали ли мы о важности майнеров? Да, упомянули. Но мы не объяснили этот аспект подробно.
Майнеры используют мощность процессора и электроэнергию для подтверждения следующего блока в блокчейне Биткоина.
Использование первичных ресурсов, таких как электроэнергия и вычислительная мощность, для подтверждения блоков называется Proof-of-Work.
Именно эта реальная стоимость делает протокол Биткоина таким надежным. Каждый блок в цепи уникален — считайте, что это осязаемый цифровой актив.
Чем больше майнеров находится в сети, тем она сильнее.
Сравните Биткоин, который имеет самую большую майнерскую сеть среди всех криптовалют, с совершенно новым блокчейном, который только запускается. У этого нового протокола меньше майнеров, что означает большую централизацию, больше слабых мест и меньше первичных ресурсов для создания и защиты информации.
Чем длиннее блокчейн, тем сильнее он становится.
Блокчейн Биткоина настолько огромен, что для его воссоздания потребовалось бы больше вычислительных мощностей, чем существует в настоящее время. Это делает транзакции чрезвычайно надежными, а протокол — чрезвычайно прочным.
Это очень базовый пример того, как работает транзакция Биткойна. Он описывает основы и должен помочь вам начать путешествие в удивительный мир криптовалюты.
- Пол хочет отправить 0,01 биткоина из своего кошелька в кошелек Эшли
- Открыв свой кошелек, он вводит публичный адрес Эшли в поле «адрес для отправки»
- Для подтверждения вывода транзакции Пол вводит свой приватный ключ в кошелек, который подтверждает сумму и отправляет транзакцию в блокчейн
- Даг — майнер. Он взимает плату в размере 0,000056 BTC. Эта плата служит стимулом для майнера включить транзакцию в следующий блок блокчейна. Кошелек Пола автоматически добавит комиссию к общей сумме транзакции
- Узлы подтверждают, что транзакция действительна, и добавляют ее в свою версию блокчейна
- Кошелек Эшли получает транзакцию в течение нескольких минут
Транзакции фиксируются по времени и добавляются в блок каждые несколько минут. В протоколе Биткоина время между блоками составляет примерно 10 минут.
Теперь нет необходимости доверять банку или централизованному эскроу счету. Вместо этого мы можем доверять децентрализованной системе отдельных узлов, которые приходят к соглашению.
Proof of Work — это алгоритм консенсуса, который стал известен благодаря Биткоину. Доказательство работы осуществляется с помощью аппаратного обеспечения. Майнеры используют майнинговые установки, которые постоянно пытаются найти следующий блок блокчейна Биткоина.
По сути, майнинг похож на решение сложной математической задачи путем угадывания.
Чем больше угадываний в секунду человек может выдать, тем больше у него шансов первым найти правильный ответ. Человек (или группа людей), который первым найдет следующий блок, получает вознаграждение в виде блока.
Именно так в схемах PoW происходит проверка транзакций блокчейна. Майнеры и узлы проверяют новые предложенные блоки. Люди инвестируют от сотен до миллионов долларов в оборудование для майнинга (как правило, это графические процессоры и много электроэнергии).
PoW — это то, что делает биткоин самой надежной и заслуживающей доверия криптовалютой из всех существующих.
По мере того как все больше майнеров соревнуются в добавлении блоков, сложность разгадывания шифра возрастает. Требуется больше мощности процессора и больше электроэнергии. И то, и другое имеет реальную стоимость.
Именно эта базовая инфраструктура делает биткоин таким безопасным и стабильным по сравнению с другими криптовалютами.
Пользователи сети биткоин могут переводить BTC любому человеку в мире. Для этого участники используют программное обеспечение, известное как кошелек. Каждый может сгенерировать столько адресов, сколько захочет, для этого не требуется никакой личной информации.
После создания каждый кошелек генерирует публичный адрес и закрытый ключ. У каждого из них своя функция, и понимание того, как они работают, необходимо при ориентировании в криптовалютном пространстве.
Публичный адрес — это буквенно-цифровой код, уникальный идентификатор, который связывает транзакции с отправителем и получателем.
Например, 3D2oetdNuZUqQHPJmcMDDHYoqkyNVsFk9r — один из самых богатых биткоин-адресов.
- Получение платежей. Подумайте об этом как о банковских реквизитах, которые вы даете другу, чтобы он мог отправить вам деньги. Если вы хотите получать биткоин от друзей, создайте кошелек биткоин и отправьте им свой открытый ключ
- Доступ к истории транзакций по этому публичному адресу. Это одна из особенностей, которая делает биткоин псевдонимным: запись транзакции является публичной и доступна любому благодаря открытому ключу кошелька, но никто не может знать, кто владеет закрытым ключом, который позволяет получить доступ к средствам
Закрытый ключ — это совсем другое, и вы должны четко понимать разницу.
Закрытый ключ — это также буквенно-цифровой код, но этот ключ дает доступ к средствам кошелька. Он позволяет кому-либо выполнять транзакции из кошелька, например, отправлять биткоин на другой кошелек. Без закрытого ключа невозможно получить доступ к средствам, отправленным на публичный адрес кошелька.
Закрытый ключ генерируется только один раз, и его необходимо защищать любой ценой. Если он будет утерян, вы не сможете получить доступ к своим средствам. Не существует программы, которая может восстановить потерянный ключ.
Вы никогда и никому не должны сообщать свой закрытый ключ.
Основная ценность блокчейн заключается в способности хранить, проверять, распространять и постоянно записывать большие объемы данных, включая записи о транзакциях, что позволяет отстранить доверенную 3-ю сторону.
Технология автоматизирует обмен информацией на всех цифровых носителях. Грядет революция, которую возглавит технология блокчейн.
Вся информация, хранящаяся в блокчейне, является постоянной и не может быть изменена. Информация является иммутабельной.
Сравните это с традиционными методами хранения данных, которые требуют участия третьей стороны.
Необходимость участия человека в доверенных транзакциях неизбежно приводит к коррупции, раздутости и неэффективности. Блокчейн способен автоматизировать каждый из этих аспектов, что может привести к масштабным финансовым и социальным изменениям.
Биткоин доказывает, что блокчейн способен работать и действовать в качестве базовой инфраструктуры для новой денежной системы. Его неизменяемость также полезна для размещения видео и потокового контента.
С помощью блокчейна пользователи могут создавать уникальный контент, который нельзя украсть и бесконечно дублировать, что позволяет им лучше монетизировать свою работу.
Блокчейн не контролируется какой-либо одной организацией. Google, Facebook, Amazon и Microsoft — эти компании контролируют интернет. Большинство электронных писем, фотографий, видео и информации, передаваемой в сети, хранится на их собственных серверах.
Их услуги не бесплатны, продуктом являетесь вы. Когда вы пользуетесь «бесплатной» интернет-услугой, например, Gmail, компания монетизирует вашу информацию, собирает ваши личные привычки и продает их тому, кто больше заплатит.
Доминирование небольшого числа компаний в Интернете — это явление, известное как централизация, и оно ведет к коррупции и снижению стимулов для технического прогресса.
Современные технологические компании страдают от хакерских атак, в результате которых злоумышленники получают доступ к частной информации и крадут ее.
Дошло до того, что ваш адрес электронной почты и даже информация о кредитной карте были проданы или украдены, по крайней мере, один раз.
Существует целая индустрия, построенная на сборе ценной информации.
Централизованные системы по своей сути находятся в невыгодном положении, поскольку преступники знают, где хранится их информация. Децентрализованные системы, с другой стороны, не имеют слабых мест.
Крупные публичные блокчейны распределены между сотнями тысяч компьютеров, и атаковать каждый из них одновременно было бы невозможно. Это делает блокчейн невероятно надежным и безопасным.
Допустим, вы покупаете пару обуви в Интернете. Это не обувь массового производства, которую вы найдете на Amazon, это обувь ручной работы, и она выглядит потрясающе.
У ремесленника, с которым вы хотите вести дела, небольшое предприятие, и они арендуют место на сервере для размещения своего сайта. Они используют простой плагин, чтобы помочь с транзакциями по кредитным картам.
К сожалению, без их или вашего ведома, сервер, на котором хранится их сайт, только что был взломан, и все ваши личные данные были собраны вредоносной программой.
Если бы вместо этого производитель обуви решил разместить на своем сайте публичный адрес биткоин, вы могли бы заказать пару обуви и отправить ему биткоин. Таким образом, его закрытый ключ не будет скомпрометирован.
Если вы, например, пользуетесь услугами традиционного банка, вы оказываете ему огромное доверие. Вы полагаетесь на то, что они безопасно обращаются с вашими деньгами, и можете только надеяться, что они предоставляют те услуги, которые обещают.
Во многих случаях реальность не соответствует этим ожиданиям. Люди сталкиваются с задержками при оплате, снятии и переводе денег.
Каждый день счета замораживаются или ограничиваются по непонятным для клиентов причинам.
Банки могут даже обанкротиться — как Lehman Brothers.
Блокчейн автоматизирует обмен информацией (включая транзакции). Вместо того чтобы доверять компании, пользователи доверяют компьютерной программе с заранее установленными правилами.
Это позволяет бесконечно снизить комиссионные сборы. Например, в сетях блокчейн пользователи могут переводить миллионы долларов менее чем за $1,00.
По мере обострения конкуренции в сфере цифровых транзакций в пространстве блокчейн будут постоянно изобретаться более дешевые и быстрые варианты.
Времена, когда для совершения онлайн-покупок приходилось платить комиссию компаниям, обслуживающим кредитные карты, и полагаться на Paypal, подходят к концу.
Майнеры, создающие сеть и подтверждающие транзакции, взимают плату.
Каждый из них соревнуется с другими майнерами, чтобы решить криптографическую головоломку и получить возможность построить следующий блок. Это позволяет поддерживать пропорционально низкие затраты.
Автоматизация транзакций также снижает корпоративную бюрократию. Если вам не нужно платить тысячам сотрудников, плата за транзакции может быть безумно низкой.
Представьте, что у вас есть интернет-магазин, где продаются шерстяные шапки, и вы берете $20 за шапку.
4% комиссии за подтверждение денежных обменов такого размера. Если вы произведете 100 шапок, то Paypal примет 4 из них.
Можете ли вы представить, что это значит для торговцев по всему миру?
Такие компании, как Paypal, обходятся продавцам в миллиарды и миллиарды долларов. Что если бы вы могли снизить комиссию за денежные транзакции до $.01 или даже до доли цента?
Блокчейн делает это реальностью.
Криптовалюты, созданные на основе технологии блокчейн, дают людям возможность анонимно проводить транзакции и использовать деньги без вмешательства другой стороны.
Некоторым людям нравится отправлять ценности анонимно, а некоторые используют блокчейн как инструмент для возвращения своей конфиденциальности.
Поскольку мир продолжает переходить на цифровые технологии, правительства и крупные корпорации получают все больше контроля над нашими личными данными.
Сюда входит такая незначительная информация, как то, что вы изучали в колледже, имя вашего первого домашнего животного, ваши любимые рестораны, а также ваши привычки в расходовании средств и то, кому вы посылаете деньги.
Сочетание этой информации позволяет злоумышленникам легко получить инструменты, необходимые для того, чтобы начать контролировать вашу жизнь.
Продукты блокчейн работают над тем, чтобы изменить все это.
Например, Monero — это криптовалюта, которая позволяет обмениваться ценностями, которые невозможно отследить.
Существует даже проект под названием Skycoin, который стремится создать анонимный протокол, способный конкурировать с Интернетом.
Возвращение людям свободы — это тенденция, которая будет продолжаться в сфере блокчейна.
Известно, что банки и правительства не позволяют суверенным лицам тратить свои собственные деньги.
Одним из ярких примеров банковского провала является пример Wikileaks. Лица, которые в 2010 году хотели сделать пожертвование Wikileaks (смелой некоммерческой журналистской организации), используя традиционные банки, обнаружили, что их средства заморожены.
Однако биткоин предоставил альтернативу, которая позволила этим же людям без проблем сделать пожертвования Wikileaks.
Свобода как результат блокчейна — это нечто большее, чем просто денежные транзакции.
Когда китайское правительство захочет подвергнуть цензуре интернет-поиск, оно сможет сделать это одним щелчком выключателя.
Децентрализованные системы обмена, такие как блокчейн, не позволяют авторитарным режимам контролировать поток информации.
Пример поближе к реальности касается вашего банковского счета.
Сегодня федеральное правительство имеет возможность заморозить и ликвидировать ваши активы. Действительно ли это ваши деньги, если они могут использовать такой объем контроля над вами?
Такой объем власти над нашим личным богатством делает общество открытым для того, чтобы им воспользовались.
В странах, где правительство более коррумпировано или существуют мафиозные тенденции, денежные системы, основанные на блокчейне, становятся все более ценными.
Цифровые валюты — это по сути просто файлы, вспомните MP3 в качестве примера. Их способность к тиражированию, практически бесконечному, делает музыку трудной для продажи.
Блокчейн меняет эту ситуацию. Теперь мы можем создавать цифровые активы, которые уникальны и не могут быть скопированы. Все это благодаря технологии распределенного учета.
Если бы вы хотели создать копию биткойна, вам пришлось бы перестраивать весь блокчейн!
Надеемся, что наше руководство по блокчейну для чайников описало технологию блокчейна таким образом, чтобы показать вам, насколько она ценна.
Самой большой причиной, по которой люди сопротивляются внедрению криптовалют, является безопасность. В частности, страх потерять криптовалюты из-за хакеров, компьютерных ошибок или непредвиденной вредоносной деятельности.
Традиционные банковские операции считаются «проверенными и верными». Нас приучили пользоваться услугами банков, и у большинства людей никогда не возникало серьезных проблем с ними. Так зачем же нам принимать новый, относительно непроверенный способ делать то же самое?
На самом деле технология блокчейн гораздо безопаснее традиционных банковских операций.
Публичные блокчейны имеют открытый исходный код: это позволяет каждому проверить кодовую базу и убедиться, что она работает так, как заявлено.
Кроме того, существует огромное сообщество, работающее над устранением любых потенциальных проблем. Сравните это с системами с закрытым исходным кодом, такими как банки, где вы должны доверять им.
Блокчейн имеет три уровня безопасности, которые защищают пользователей так, как не могут защитить другие альтернативы.
- Децентрализация
Благодаря отсутствию единой точки отказа цифровые транзакции и другие ценные данные в блокчейне находятся в большей безопасности, чем на любом собственном сервере. Сравните это с банком, который хранит свою информацию на централизованных серверах. - Криптография
Превращение информации в цифровой код, который не позволяет другим пользователям получить к ней доступ. Технология стала настолько надежной, что даже АНБ не может взломать некоторые формы шифрования. Сравните вашу криптовалюту с фиатной валютой, может ли налоговая служба получить доступ к вашему банковскому счету? - Майнеры и узлы
Публичные блокчейны стимулируют проверку транзакций. Доверие создается не одной стороной, оно децентрализовано по всей платформе. Распределенная природа позволяет сети оставаться работоспособной даже в условиях политических и экологических катастроф.
Первый уровень безопасности — это децентрализация.
Если вы доверяете блокчейну, а не банку, вы не доверяете какому-то одному субъекту. Вы доверяете технологии.
Транзакции полностью автоматизированы, в протокол не вмешивается человек.
Это означает, что не существует централизованного органа, способного совершать огромные ошибки или надзирать и контролировать действия участников. Пока работает программное обеспечение, система работает.
Второй уровень безопасности — это криптография. Точнее, цифровые подписи.
Каждая транзакция подписывается отправителем с помощью его закрытого ключа. Затем получатель использует открытый ключ отправителя, чтобы проверить, что транзакция действительно подписана законным владельцем.
Конечно, вам нужно будет тщательно следить за своими закрытыми ключами, как за золотом. Это будет вашей обязанностью. Храните их в тайне, берегите их.
Третий и последний уровень безопасности блокчейна — это майнеры и/или узлы.
Эти майнеры/узлы участвуют в блокчейне, постоянно проверяя все транзакции, происходящие в блокчейне.
Переписывание или повреждение данных блокчейна практически невозможно, поскольку майнеры/узлы постоянно следят за тем, чтобы все данные блокчейна оставались корректными.
Для того чтобы изменить данные таким образом, чтобы нарушить целостность блокчейна, злоумышленник должен получить контроль над большинством майнеров/узлов блокчейна.
Крупные протоколы, такие как Биткоин, защищены от атак такого типа, поскольку они огромны.
Многие новые проекты начинаются как токены ERC-20, которые работают поверх протокола Ethereum. Ethereum безопасен, и создание новой криптовалюты на основе блокчейна Ethereum — надежная ставка.
Однако небольшие криптовалюты, создающие свой собственный блокчейн, все еще могут столкнуться с подобными опасностями, поэтому ранним инвесторам следует провести свое исследование.
Децентрализация, криптография, а также майнеры и узлы представляют собой три чрезвычайно эффективных уровня безопасности блокчейна.
Технология постоянно совершенствуется и уже сейчас гораздо безопаснее, чем это представляется в СМИ.
Люди, которые пытаются дискредитировать блокчейн, основываясь на опасениях относительно безопасности, ошибаются.
Децентрализованная технология блокчейн более безопасна, чем традиционные способы хранения данных. Главный аргумент в пользу блокчейна всегда возвращается к финансовой автономии над активами.
Блокчейн дает эту власть в ваши руки.
В настоящее время существует более 10 000 криптовалют, использующих в той или иной форме технологию блокчейн.
Даже традиционное понимание технологии развивается быстрыми темпами.
Каждая криптовалюта отличается от других и заслуживает тщательного анализа для понимания.
Первое упоминание о технологии, похожей на блокчейн, относится к 1991 году, когда Стюарт Хабер и В. Скотт Сторнетта провели первую работу по созданию защищенной цепочки блоков.
В следующем, 1992 году, в блокчейн-технологию были введены деревья Меркла, которые позволили хранить несколько документов в одном блоке, что повысило эффективность блокчейна.
Десять лет спустя, в 2002 году, концепция децентрализованного доверия в сетевой файловой системе была сформулирована Дэвидом Мазьером и Деннисом Шаша.
В 2005 году Ник Сабо предложил Bitgold: протокол для децентрализованных прав собственности, включающий в себя блокчейн-подобную систему.
Этот протокол включал в себя функции Proof-of-Work и timestamping. К сожалению, у BitGold была одна фатальная слабость.
Было обнаружено, что тот, кто держал баланс BitGold, мог потратить свои монеты дважды, не будучи «пойманным» — эта слабость стала известна как «проблема двойной траты».
Все, о чем говорилось до этого момента, заложило основу для первого настоящего блокчейна.
В то время как Хабер, Сторнетта, Мазьерис, Сабо и др. заигрывали с концепцией блокчейна, реальный блокчейн не был создан до 2008 года.
В 2008 году Сатоши Накамото опубликовал документ под названием «Биткойн — одноранговая система электронных денег». В этом документе была решена проблема двойной траты, которая беспокоила Bitgold, и он стал «white paper», написанной для первого реального, работающего блокчейна.
В 2009 году, с помощью программиста Хэла Финни и других, Сатоши Накамото сделал Биткойн реальностью.
Код был написан, блокчейн родился, и Накамото сам добыл первые блоки. Хэл Финни был получателем самой первой транзакции биткоина, когда он получил 10 биткоинов от Накамото.
В годы, последовавшие за выпуском биткойна, он приобрел огромную популярность и использование.
Он стал рассматриваться как законный способ оплаты — фактически, это был единственный способ, который можно было использовать для определенных целей (например, для пожертвований WikiLeaks).
С 2009 года по настоящее время мы наблюдаем огромное увеличение размеров файлов на блокчейне, инновации, меняющие принцип его работы, и бурный рост цен на криптовалюты, использующие технологию блокчейна.
В 2014 году термин Blockchain 2.0 был впервые использован в журнале The Economist.
Blockchain 2.0 относится к появлению приложений, которые могут выполняться на блокчейне. Это нововведение представляло собой огромный шаг вперед в технологии блокчейн.
Благодаря этой концепции появилась возможность запуска децентрализованных приложений (приложений, код которых распространяется среди децентрализованной сети пользователей, а не хранится в централизованном органе) на блокчейне, а смарт-контракты также стали возможными.
Уже в следующем, 2015 году, был запущен первый блокчейн 2.0. Виталик Бутерин, участвовавший в создании Биткоина, увидел возможности для улучшения Биткоина и написал код для Ethereum.
Ethereum обещает обеспечить ту же функциональность, что и Биткоин, но при этом будет обладать возможностью запуска децентрализованных приложений.
Хотя новые проекты на основе блокчейн появляются с тех пор, как инвесторы и инноваторы начали уделять внимание технологии блокчейн в 2014 году, 2017 год ознаменовался бурным ростом платформ на основе блокчейн.
Первичные предложения монет, также известные как ICO, в ходе которых ранним инвесторам предоставляется возможность приобрести первые акции проекта, стали чрезвычайно распространены в 2017 году.
Технология блокчейн используется и внедряется все шире.
От стартапов до крупных компаний, таких как Google и Amazon, будущее светлое. Определение понятия «блокчейн» меняется, и не все протоколы работают одинаково.
Однако информация, которую мы предоставили в этом руководстве, даст вам отличную основу для понимания этой технологии.
Когда вы начнете знакомиться с разрабатываемыми криптовалютами, вы обнаружите нюансы, которые отличают каждую монету.
Мы надеемся, что вам понравилось это руководство и вы узнали много нового о технологии блокчейн.
Если вам понравилась наша презентация и вы хотите помочь массовому внедрению блокчейна, поделитесь нашим руководством со своими друзьями и людьми, которых вы хотите видеть вовлеченными в процесс.
Наша цель в Cryptomaniaks — стать вашим лучшим гидом, когда вы начнете изучать удивительный мир криптовалют.
Если вы хотите узнать о технологии блокчейн более глубоко и стать экспертом, ознакомьтесь с онлайн-курсом нашего партнера BlockGeeks.
За перевод конечно спасибо, но сама статья на самом деле довольно хреновая ибо предлагает сухое изложение технологии в то время как для научпопа нужно скорее общее простое описание почему блокчейн важен.
tldr, основной поинт — блокчейн это единственная существующая на текущий момент технология позволяющая однозначно закрепить право собственности над единицей информации в сети, передавать это право, а так же подтверждать его подлинность.
Потенциальные возможности использования — криптовалюты (тут все понятно), возможность проведения по настоящему честных выборов, каких нибудь лотерей, создание честных сделок (в идеале например блокчейн позволяет проводить обмен средствами / информацией по жестко заданным условиям) в виде смартконтрактов, системы документооборота в компаниях и все такое прочее производное. Так же сейчас множество банков по всему миру прорабатывают переход внутренних операций именно на блокчейн ибо это практически гарантированно решает множество вопросов безопасности и надежно хранит информацию о транзакциях.
Разумеется есть нюансы и так же подобные системы тоже могут быть уязвимы, но это решаемые проблемы которые при соблюдении всех мер очень значительно повышают надежность всей системы. Блокчейн и правда похож на фундаментальную технологию будущего, но в текущий момент его развитие еще только начинается.
2021 год на дворе, хайп спал, все давно выкупили что блокчейн просто бесполезный, не несущий никакой пользы хлам. Опоздал со статейкой короче, технологии древних.
Бля, я эту простыню не читал. Вернулся в начало. Так это ж просто галимая реклама.
Самое время написать про нанотехнологии.
Как раз лет 10 прошло.Для тупых — не надо путать технологию блокЧей которой несколько сотен лет по факту, и крипту.
И да в статье хоть и для чайников об этом вроде не упомянули, что блокчейн еще у некоторых племен существовал.в этот момент упадет вообще все
Потому что этого никто из политиков не допустит =D
Нормальный такой блокчейн, добротный!
Я прочитал так много воды. Смени заголовок, ничего ультимативного тут нет. Одни хвалебные оды блокчейну и спойлер платных курсов.
Что было в статье, то и оставил
Жду когда этот пузырь ебанётся
Помню как лет 5-6 назад обсуждали вложение в битки и все в один голос говорили "вот сейчас от стоит аж тысячу долларов, а потом КАК ЛОПНЕТ!"
А как он это сделает по твоему?
А вот и топовая статья за сегодняшний день подъехала. Добренько
Статья за километр отдаёт рекламным посылом "покупайте наших слонов".
Отрицательные стороны, недостаки блокчейна практически в статье не раскрыты, а если и затронуты (опасения, безопасность), то только для того, чтобы успокоить тревожных инвесторов.
Что по сути нивелирует ценность этого материала практически в ноль.Я не эксперт в блокчейне, но даже мне видится
— храние приватного ключа ничем не отличается от других видов кошельков — ваш счёт точно так же можно отжать паяльником и утюгом
— жрёт энергию, которую могли бы использовать в других целях
— хранить огромный объём данных и передавать его между пирами
— сеть анонимна, атаки никогда не прекратятся и всегда будут анонимны
и т.д.— и что характерно,
спекулятивно повышает цены на видеокарты. за что основной обыватель держателей битка готов тупо расстрелять)Пока что блокчейн валюты равноценнны любой другой рискованной инвестиции со всеми вытекающими.
На протяжении всего этого чтива всё внимание концентрировалось на том, что банки это херня ненадёжная и вообще там только и ищут способы вставить тебе анальный зонд, а вот майнеры хорошие ребята и вообще блокчейн это охеренно надёжно и безопасно, главное закрытый ключ не просри, а то денег тебе никто не вернёт и вообще сам дурак. Проще говоря, если у тебя случился пожар или ещё какое говно и ты потерял доступ к этому самому ключу, то всё — ты нищий и никто тебе не поможет ибо никто не брал на себя подобные обязательства. Короче, ты предоставлен сам себе, и никакой защиты от дурака или стихийного бедствия не предусмотрено. Кроме того, ни разу не заикнулись даже, что все эти "децентрализованные" системы используются, чтобы конвертировать электронные монетки в самые настоящие доллары во вполне себе централизованных банках иначе оно нахрен никому не надо, ибо за электричество и железо ты этими монетками не расплатишься, а значит весь блокчейн целиком и полностью зависит от всё тех же банков, которые спят и видят как бы засунуть зонд поглубже.
В общем, сама технология может и имеет какую-то ценность, но крипта как независимый аналог обычных денег нет и говорить тут не о чем.
Вот что действительно интересно, так это государственная цифровая валюта (aka цифровой юань), вот эта вещь действительно может изменить жизнь в лучшую сторону, искоренив коррупцию и попилы как явление, ибо все будут знать "кто, откуда, сколько и куда" и просто так жопу уже не прикроешь.Есть еще здравомыслящие люди.
ага, думал подобрать что-то, но ничего в голову не пришло, если есть предложения — welcome