Блокчейн что это ?

Главная/статьи/Блокчейн что это ?

Простой вариант понимания

Что такое блокчейн и зачем он нужен?

Об этом говорят все, но многие так и не разобрались, что это такое и почему все пророчат, что эта технология изменит мир.

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

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

Как блокчейн связан с биткоинами?

Криптовалюты — это продукт, созданный на основе применения технологии блокчейн. Впервые блокчейн использовали в платежной системе Bitcoin, именно с этого момента о технологии узнал весь мир. Bitcoin создал неизвестный программист (или группа программистов) Сатоси Накамото в 2008 году. Вместе с запуском платформы Накамото опубликовал документ, который описывал математические и идейные принципы системы. Он хотел, чтобы люди переводили деньги друг другу напрямую, без банков и других посредников. 

Первое время криптовалюта и майнинг были увлечением небольшого сообщества программистов, пароли к кошелькам с тысячами биткоинов беззаботно выбрасывали вместе со старыми ноутбуками, майнили на обычных компьютерах, а ценность биткоина была практически нулевой. Первая покупка за криптовалюту произошла в 2010 году: программист Ласло Ханьеш купил две пиццы за 10 тысяч биткоинов. За семь лет курс биткоина вырос в 650 тысяч раз.

Как работает блокчейн?

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

⚡Майнеры 

Обеспечивают работу блокчейна. Они собирают последние транзакции, проверяют их, организуют в блок и соединяют с предыдущей цепочкой блоков. Для этого они решают криптографические задачи — создают уникальные коды (хэш), которые шифруют транзакции в одном блоке и связывают его с предыдущими. На майнерах держится безопасность блокчейна. Взломать блокчейн и изменить записанную информацию возможно: для этого нужно объединить мощности не менее 51% майнеров системы (так называемая «атака 51%»). Но это маловероятно, потому что потребуются гигантские вычислительные ресурсы, и ни одна цель такой атаки себя не окупит. Кроме того, чем старше блок, тем сложнее его подделать, поскольку придется перешифровать все блоки после него. 

⚡Аудиторы 

Люди, которые хранят у себя всю историю транзакций (вся цепочка блоков сети Bitcoin занимает 122 гигабайта), проверяют работу майнеров и распределяют нагрузку по сети. 

⚡«Легкие» клиенты 

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

 

Углублённое понимание

 

Цепочка блоков транзакций — выстроенная по определённым правилам цепочка из формируемых блоков транзакций. Впервые термин появился как название распределённой базы данных, реализованной в криптовалюте «Биткойн». Широко используется также термин блокчейн как транслитерация англ. blockchain или block chain (block — «блок», chain — «цепочка»).

Блок транзакций

Блок транзакций — специальная структура для записи группы транзакций в системе Биткойн и аналогичных ей.

Чтобы транзакция считалась достоверной («подтверждённой»), её формат и подписи должны проверить и затем группу транзакций записать в специальную структуру — блок. Информацию в блоках можно быстро перепроверить. Каждый блок всегда содержит информацию о предыдущем блоке. Все блоки можно выстроить в одну цепочку, которая содержит информацию о всех совершённых когда-либо операциях в этой базе. Самый первый блок в цепочке — первичный блок (англ. genesis block) — рассматривается как отдельный случай, так как у него отсутствует родительский блок.

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

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

Созданный блок будет принят остальными пользователями, если числовое значение хеша заголовка равно или ниже определённого числа, величина которого периодически корректируется. Так как результат хеширования (функции SHA-256) необратим, нет алгоритма получения желаемого результата, кроме случайного перебора. Если хеш не удовлетворяет условию, то в заголовке изменяется параметр nonce и хеш пересчитывается. Обычно требуется большое количество пересчётов. Когда вариант найден, узел рассылает полученный блок другим подключенным узлам, которые проверяют блок. Если ошибок нет, то блок считается добавленным в цепочку и следующий блок должен включить в себя его хеш.

Величина целевого числа, с которым сравнивается хеш, в системе Биткойн корректируется через каждые 2016 блоков. Запланировано, что вся сеть системы Биткойн должна тратить на генерацию одного блока примерно 10 минут, на 2016 блоков — около двух недель. Если 2016 блоков сформированы быстрее, то цель немного уменьшается и достичь её становится труднее, в противном случае цель увеличивается. Изменение сложности вычислений не влияет на надёжность сети Биткойн и требуется лишь для того, чтобы система генерировала блоки почти с постоянной скоростью, не зависящей от вычислительной мощности участников сети.

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

 

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

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

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

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

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

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

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

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

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

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

До версии 0.8.0 для хранения цепочки блоков основной клиент использовал Berkeley DB, начиная с версии 0.8.0 разработчики перешли на LevelDB.

Ветвление

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

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

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

Подтверждение транзакций

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

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

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

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

Для уменьшения влияния подобных ситуаций на сеть существуют ограничения на распоряжение только что полученными биткойнами. Согласно сервису blockchain.info, до мая 2015 года максимальная длина отвергнутых цепочек была 5 блоков. Необходимое число подтверждений для разблокирования полученного зависит от программы-клиента либо от указаний принимающей стороны.

Клиент «Bitcoin-qt» для отправки не требует наличия подтверждений, но у большинства получателей по умолчанию выставлено требование 6 подтверждений, то есть реально воспользоваться полученным обычно можно через час. Различные онлайн-сервисы часто устанавливают свой порог подтверждений.

Биткойны, полученные за создание блока, протокол разрешает использовать после 100 подтверждений, но стандартная программа-клиент показывает комиссию через 120 подтверждений, то есть обычно воспользоваться комиссией можно примерно через 20 часов после её начисления.

«Двойное расходование»

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

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

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

На 1 декабря 2013 года суммарная мощность сети превысила 6000 THash/s. С начала 2014 года объединение майнеров (пул) Ghash.io длительное время контролирует свыше 40 % суммарной мощности сети «Биткойн», а в начале июня 2014 года в нём кратковременно концентрировалось более 50 % мощности сети.

Двойное расходование биткойнов на практике никогда не было зафиксировано. На май 2015 года параллельные цепочки никогда не превышали 5 блоков.

Сложность

За требование к хешам блоков отвечает специальный параметр, называемый «сложность». Так как вычислительные мощности сети непостоянны, этот параметр пересчитывается клиентами сети через каждые 2016 блоков таким образом, чтобы поддерживать среднюю скорость формирования распределённой БД на уровне 2016 блоков в две недели. Таким образом 1 блок должен создаваться примерно раз в десять минут.

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

Применение

На технологии блокчейн основаны криптовалюты, в частности, биткойн и лайткойн, база данных DNS-записей Namecoin и Emercoin.

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

Источник: 

Июнь 5th, 2017|

Оставить комментарий

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

A
27.08.2017 Achain (ACT)
21.12.2017 Aelf (ELF)
01.06.2017 Aeternity (AE)
06.06.2017 Aidos Kuneen (ADK)
11.01.2018 Aigang (AIX)
18.10.2017 Aion (AION)
17.10.2017 AirSwap (AST)
13.09.2017 Ambrosus (AMB)
18.05.2017 Aragon (ANT)
08.01.2018 AppCoins (APPC)
23.07.2016 Ardor (ARDR)
21.03.2017 Ark (ARK)
01.04.2017 Asch (XAS)
04.10.2017 ATMChain (ATM)
19.09.2017 ATBCoin (ATB)
09.03.2016 Augur (REP)
B
12.06.2017 Bancor (BNT)
01.06.2017 Basic Attention T. (BAT)
16.06.2017 Binance Coin (BNB)
16.10.2014 BitBay (BAY)
15.09.2017 BitClave(CAT)
17.07.2010 Bitcoin (BTC)
01.08.2017 Bitcoin Cash (BCH)
23.10.2017 Bitcoin Gold (BTG)
09.07.2014 Bitcoin Dark (BTCD)
25.04.2014 BitConnect (BCC)
11.07.2017 Bitdeal (BDL)
26.11.2014 BitShares (BTS)
01.11.2014 Blocknet (BLOK)
24.12.2017 Bread (BRD)
27.12.2016 Byteball Bytes (GBYTE)
20.05.2014 Bytecoin (BCN)
08.08.2017 Bytom (BTM)
C
08.01.2018 CanYaCoin (CAN)
01.10.2017 Cardano (ADA)
08.08.2017 Centra (CTR)
20.09.2017 ChainLink (LINK)
12.09.2017 Cindicator (CND)
21.06.2017 Civic (CVC)
17.07.2017 CoinDash (CDT)
02.10.2017 COMSA(CMS)
15.02.2014 Counterparty (XCP)
07.10.2017 Cryptonex(CNX)
D
18.01.2014 Dash (Dash)
17.09.2017 Decentraland (MANA)
10.02.2016 Decred (DCR)
28.12.2017 DeepBrain Chain (DBC)
12.08.2017 Dent (DENT)
01.11.2017 Dentacoin (DCN)
06.02.2014 DigiByte (DGB)
03.08.2017 DistrictOx (DNT)
18.04.2016 DigixDAO (DGD)
15.12.2013 Dogecoin (DOGE)
03.12.2017 Dragonchain (DRGN)
E
30.03.2017 Edgeless (EDG)
09.04.2014 Einsteinium (EMC2)
02.11.2017 Electroneum (ETN)
11.09.2017 Enigma Catalyst (ENG
26.06.2017 EOS (EOS)
30.09.2014 Ethereum (ETH)
24.07.2016 Ethereum Classic (ETC)
01.10.2017 Etherparty (FUEL)
30.10.2017 EthLend (LEND)
18.07.2017 Ethos (ETHOS)
25.10.2017 Exchange Union (XUC)
F
06.10.2015 Factom (FCT)
05.02.2017 FirstCoin (FRST)
27.06.2017 FunFair (FUN)
G
01.09.2014 GameCredits (GAME)
06.07.2017 Gas (GAS)
01.05.2017 Gnosis (GNO)
18.12.2017 Gifto (GTO)
18.02.2017 Golem (GNT)
25.06.2017 GXShares (GXS)
H
18.08.2017 Hshare(HSR) 
I
27.10.2017 ICON (ICX)
30.07.2015 Iconomi (ICN)
20.04.2017 iExec RLC (RLC)
20.11.2017 Ink (INK)
12.01.2017 INS (INS)
02.08.2014 I/O Coin (IOC)
21.10.2016 IOTA(MIOTA)
K
04.10.2017 KickCoin (KICK)
12.09.2017 Kin(KIN)
11.02.2017 Komodo(KMD)
24.10.2017 KuCoin(KCS)
15.09.2017 Kyber Network (KNC)
L
24.05.2016 Lisk (LSK)
13.07.2012 Litecoin (LTC)
30.09.2017 Loopring (LRC) 
14.11.2016 Lykke (LKK)
M
22.04.2014 MaidSafeCoin (MAID)
30.05.2017 MCAP (MCAP)
22.02.2017 Melon (MLN)
25.10.2017 Mercury Protocol (GMT)
11.07.2017 Metal (MTL)
05.06.2017 Metaverse (ETP)
02.11.2017 MinexCoin (MNX)
12.06.2017 MobileGo (MGO)
03.07.2017 Monaco (MCO)
20.03.2014 MonaCoin (MONA)
25.04.2014 Monero (XMR)
06.09.2017 Monetha(MTH)
N
12.06.2017 NAV Coin (NAV)
12.09.2017 Neblio (NEBL)
31.03.2015 Nem(XEM)
09.09.2016 NEO(NEO)
25.01.2015 Nexus (NXS)
12.09.2016 NoLimitCoin (NLC2)
04.12.2013 Nxt (NXT)
O
14.12.2014 OKCash (OK)
07.06.2017 OmiseGO(OMG)
22.06.2017 openANX (OAX)
25.10.2017 Open Trading N-k (OTN)
16.08.2017 Ox (ZRX)
P
20.07.2017 Particl (PART)
15.10.2017 PayPie (PPP)
01.02.2016 PIVX (PIVX)
01.09.2017 Po.et (POE)
01.02.2016 Populous (PPT)
10.02.2014 PotCoin (POT)
01.11.2017 Power Ledger (POWR)
27.03.2015 Pura (PURA)
Q
21.10.2017 QASH (QASH)
28.11.2017 QLink (QLC)
16.03.2016 Qtum (QTUM)
20.11.2017 Quantstamp (QSP)
R
07.03.2017 RaiBlocks (XRB)
08.11.2017 Raiden (RDN)
06.10.2017 RChain (RHOC)
10.02.2014 ReddCoin (RDD)
28.10.2017 Red Pulse (RPX)
13.10.2017 Request Network (REQ)
01.10.2017 Regalcoin (REC)
24.10.2017 Ripio (RCN)
14.08.2014 Ripple (XRP)
S
29.09.2017 SALT (SALT)
12.07.2017 Santiment Net.. (SAN)
26.09.2015 Siacoin (SC)
03.10.2016 SingularDTV (SNGLS)
21.06.2017 SkinCoin(SKIN)
17.04.2017 Skycoin (SKY)
21.07.2017 SmartCash (SMART)
15.06.2017 SONM (SNM)
20.12.2015Storm (STORM)
21.07.2015 Sprouts (SPRTS)
27.09.2017 Starbase (STAR)
20.06.2017 Status (SNT)
17.04.2016 Steem (STEEM)
06.08.2014 Stellar Lumens (XLM)
02.07.2017 Storj (STORJ)
04.08.2017 Stox (STX)
04.08.2017 Stratis (STRAT)
25.09.2017 Substratum (SUB)
20.08.2014 Syscoin (SYS)
09.01.2018 SwftCoin (SWFTC)
T
30.03.2017 TaaS (TAAS)
24.06.2017 TenX (PAY)
08.03.2015 Tether (USDT)
01.07.2017 Tezos (XTZ)
27.07.2017 Tierion(TNT)
27.11.2017 Time New Bank (TNB)
13.09.2017 TRON (TRX)
U
07.09.2014 Ubiq (UBQ)
29.12.2017 UTRUST (UTK)
V
22.08.2017 VeChain (VEN)
25.10.2014 Verge (XVG)
08.06.2017 Veritaseum (VERI)
20.01.2014 Vertcoin (VTC)
25.09.2017 VIBE (VIBE)
W
28.11.2017 WaBi (WABI)
27.09.2017 Walton (WTC)
20.06.2016 Waves (WAVES)
01.11.2017 WAX (WAX)
26.04.2017 Wings (WINGS)
Y
19.08.2017 YOYOW (YOYOW)
Z
01.06.2017 ZenCash (ZEN)
06.10.2016 ZCoin (XZC)
28.10.2016 Zcash (ZEC)