Как стать автором
Обновить

Комментарии 48

Собственно вопрос: как блокчейн технически работает?
Если база есть у всех одновременно, то как транзакция вписывается сразу всем?
Как несколько одновременных транзакций вписываются в базу?
Строго говоря, «одновременными» транзакции не будут. Будет принята, естественно, самая молодая.
Важно понимать, что в блоке всегда есть ссылка на предыдущую транзакцию. Давайте представим, что три участника А, Б, В имеют общий банк денег, которыми договорились совместно распоряжаться.

Транзакция 1. А перевел Б 100 рублей. Все три участника проверили и приняли транзакцию, первый блок записан.
Затем, Б хочет забрать 100 рублей и В хочет забрать 100 рублей. Начинается процесс обмена транзакциями для окончательного утверждения. Номер будущей транзакции — 2.

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

Вариант 1. Б передает А свою транзакцию. В ней указана ссылку на транзакцию 1, А соглашается с тем, что это верно. Проведя дополнительные проверки (содержащие некую бизнес логику, например), А принимает транзакцию и записывает ее к себе. Блок 2 создан. Теперь, когда, В попытается сделать тоже самое, ни А, ни Б не примут транзакцию, потому что ее место уже «занято».

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

Пример очень поверхностный, не учитывающий множество дополнительных факторов. Прошу не принимать за абсолютно правильный и верный.
Не «самая молодая», конечно же, а «самая старая». Во втором предложении.
Если есть еще участники, которые пока не активны, скажем, Г, Д, Е — как они узнают, что между А, Б, В произошли транзакции? У них есть какая-то первоначальная база с предыдущими транзакциями, они находились оффлайн, пока А, Б, В совершали свои сделки, вот один из них включаются и пытается что-то сделать, перевести, снять, еще что-то — что при этом происходит?
Теоретически они могут продолжить совершать транзакции от более ранней версии базы. В результате база разветвится на две части и, так как их половина от всех пользователей, то это беда. Будет непонятно какое состояние базы актуальное. Но если есть еще пользователи И Й и далее по алфавиту, то это разветвление ничего плохого не сделает, так как их ветку большинство попросту не примут. Получается этой веткой смогут пользоваться только они Г, Д и Е. А зачем им это? По этому для работы с базой им нужно актуализировать ее. Если участников много — это не проблема. А делиться базой тоже выгодно, а то как еще узнают другие, что у тебя на счету появились деньги.
Т.е. они должны у кого-то скачать актуальную базу? А если её подменить?

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

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

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

В случае с Ассанджем это сопоставление с информацией, дата которой известна. С таким же успехом он мог бы держать газету с последними новостями, многим было бы понятнее. Каким образом такое можно сделать с базой? Ведь какие были транзакции после подмены, неизвестно. Если ориентироваться на то, что база должна «жить», т.е. постоянно должна меняться, то и это можно имитировать.

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

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

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

Зачем получать ключи вообще всех участников? Многие же могут оказаться не активны в интересующий период. Можно создать группу пользователей, которые совершают транзакции, с известными ключами, и от их имени имитировать активность. Участник Б занял сумму у участника А, сохранил базу на тот момент, потом деньги вернул участнику А, провел актуализацию сохранённой базы с использованием транзакций ботов-имитаторов, и отправил актуализированную таким образом базу участнику Г. Или в системе должны быть какие-то доверенные узлы, подтверждение от которых обязательно для всех транзакций?
Если вам таким образом подсунули устаревшую базу, то да, подвоха можно и не заметить. Правда и получить с этого какую-то выгоду тоже будет сложно. Скажем в этой версии базы злоумышленник еще не потратил все свои деньги на выпивку. И теперь он попробует этими же потраченными деньгами расплатиться с вами. Ему нужно будет через свое вредоносное ПО залить вам еще несколько «правильных» транзакций, но уже созданных им от старого состояния базы. Если он не изобретатель квантового компьютера, то у него на это может уйти несколько лет.

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

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

P.S. про ключи я что-то не понял, что вы имели ввиду
«Теоретически они могут продолжить совершать транзакции от более ранней версии базы. В результате база разветвится на две части» — это вы же писали здесь ранее. Из этого и исхожу. Сохраняем более раннюю версию базы и искусственно выращиваем вторую часть. Насчёт другого устройства, точнее, другого канала данных, это понятно, чем больше независимых каналов, тем надёжнее. Но у граждан независимых каналов много не бывает, максимум, 2-3. Мысль была заткнуть канал и на все попытки считать базу подсовывать свою. Про ключи мысль о том, чтобы у злоумышленника не получилось сделать искусственную базу из-за меняющегося ключа. Злоумышленник занял денег, ключ изменился, отдал деньги опять изменился, а базу, любую, и новую и старую, он может менять только с этим ключом. Любое действие злоумышленника меняет его ключ. Может быть так оно и работает? Но софтом такой ключ не сделать, его можно будет скопировать на каждом этапе.
Теоретически да, это возможно. Но это все равно займет много времени для индивида (возможно годы). Почему же в общем случае это не занимает годы? Все по тому что продолжением базы (подтверждением новых шагов) занимаются очень большое число желающих. И чем их больше (чем чаще подтверждаются новые блоки), тем выше становятся требования к сложности подтверждения (заложено в систему). Иногда они даже объединяются в группы и потом делят выигрыш. Например, суммарная мощность для подтверждения блока биткина сейчас составляет 3,861,463,139 GH/s.

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

P.S. Про ключи все равно не понял. Для подтверждения владения в биткойне используются ключи для подтверждения владения кошельком. Но он меняется только при переводе с одного кошелька на другой. Если у вас старая база, то и ключ от кошелька с деньгами старый.
Допустим, отключавшийся Г захотел продать что-то Б, который проделал такую операцию — занял у А крупную сумму, сохранил себе базу на тот момент, потом сумму вернул. Г подключается, пытается скачать базу и получает через вредоносное ПО, засевшее у него в роутере, базу от Б, в которой Б располагает занятой суммой. Ничего не подозревая, Г продает товар, фиксирует транзакцию, измененную базу сверяет с базой, которую вновь предоставляет Б, и отправляет товар. Что защищает от подобной процедуры?
Клиент («кошелёк») держит коннекты с несколькими узлами (пирами), для надёжной работы считается необходимым и достаточным 8 пиров. Если клиент имеет «белый IP», коннектов с пирами обычно больше. У каждого пира клиент получает список других пиров.
Клиент сверяет базу с каждым из пиров.
Для описанного вами злоумышленник должен имитировать все подключения к пирам, которые выбираются случайным образом из списка пиров, накопленного клиентом. Это реально, но несколько сложно.
Для надёжности можно посмотреть транзакцию и текущее состояние блокчейна на публичных сервисах (сайтах с HTTPS). Подделать сертификат SSL ещё сложнее, чем имитировать произвольных пиров.
В статье приведена распространенная но слишком грубая метафора блокчейна, которая не объясняет ничего, но наводит мысли о наличии какой-то криптомагии.

Гораздо проще понять блокчейн, представив его как технологию подтверждения неких связанных действий. При этом не особо важно каких. Эта технология позволяет при получении базы этих связанных действий от какого-либо источника проверить, было ли потрачено на «некое действие» над каждым шагом очень большое количество времени, а точнее вычислительных ресурсов. При этом информация, над которым проводится «некое действие», очередной шаг или транзакция — это просто текст, НО, и это очень важно, с дополнительной частью в которой находится хеш предыдущего шага. Таким образом «некое действие» зависит не только от самого шага, но и от всех предыдущих шагов, т.к. оно зависит от хеша от хеша… от хеша самого первого шага. Вот вам и цепочка — chain в слове blockchain.

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

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

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

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

Если операция добавления нового звена такая затратная по вычислительным ресурсам, то почему проверка не требует этих ресурсов?

Обычно это решается через алгоритмы консенсуса, которые позволяют сети прийти к какому-то единому решению относительно того, какой из предложеных блоков принять как следующий.
В Биткоине это Proof of Work, нужно подобрать такой nonce, в результате которого хэш блока будет удовлетворять какому-то условию, которое однозначно вытекает из состояния на момент последнего принятого блока. Процесс подбора называется майнингов и вероятность того, что два узла подберут одновременно подходящий блок крайне мала, но такое иногда случается, в результате чего цепочка блоков форкается, но вычислительные ресурсы между форками неравномерно распределяются и один из форков просто пропадает, а узлы, которые принимали эти блоки просто откатываются до последнего нормального блока и выкачивают самую длинную известную цепочку.

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

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

Второй вопрос интереснее. Почему проверка выполнения «некой операции» не требует тех же ресурсов, что само выполнение «некой операции»? Если очень абстрактно, то представьте эту операцию как поиск иголки в стоге сена. Искать ее долго (хотя вам может и повезти), а проверить, что вы ее нашли легко, если вы поставили на найденном месте флажок. Флажок и будет подтверждением вашей находки.

Математически же эту логику можно реализовать так. Представьте, что у вас есть алгоритм сложного перемешивания и преобразования исходного текста любой длинны, например «Большой большой стог сена», в небольшую строку. Получаться будет какая-то каша вроде «Ав02Й», но при этом, поскольку алгоритм осуществляет точный компьютер, то сколько не перемешивай копии одного и тот же текста, результат всегда будет одинаковым, а вот если изменить или добавить хоть одну букву к тексту, то результат перемешивания будет скорее всего совсем другим:

«Большой большой стог сена» ----> «Ав02Й»
«Большой большой стог сена A» -> «В59ф9»

И вот представьте, что вы пытаетесь добавить к тексту такую строку, чтобы в результате перемешивания, ну скажем получилось слово «иголка». И вот, несколько миллиардов попыток спустя вы нашли такую добавочную строку:

«Большой большой стог сена 0юФВа2дафВ3ущшч34» -> «иголка»

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

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

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

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

Возможно есть способ создать и закрытую систему на основе блокчейна, каким-то хитрым образом обязав всех участников осуществлять поддержку безопасности системы. Но я пока не очень представляю как это сделать не вводя какой-то аналог валюты.
Вроде про блокчейн, но про сам блокчейн ни слова. Хотелось бы прочесть более прикладную статью. Например, используемые алгоритмы, технологии, блокчейн в домашних условиях, блокчейн для семейного бюджета и т.д.
Хорошая статья про транзакции и не только
https://habrahabr.ru/post/319860/
надо сказать что аналогия с FTP сервером вообще никакая
Интересно почитать математику, лежащую внутри блокчейна. Есть что-то почитать фундаментальное, а не маркетинг?
Как вы думаете, какой объем базы транзакций будет через десяток лет?
Мне кажется, что в плане денег вообще никакого. В смысле что-то будет, но гораздо меньше чем сейчас. Зато, на основе этих технологий попытаются сделать более устойчивые к взломам и кражам различные государственные финансовые учреждения.
Само забавно смотреть, что биткоин по сути придумывался как средство прямого обмена без участия третьих лиц, денежной единицы без инфляции… А в итоге: фермы по майнингу, пирамиды МММ, посредники снимающие комиссию с транзакций, привязка к курсам других валют.
Меня тоже интересует этот же вопрос. И даже не через десяток лет, а достаточно года интенсивной работы.
Ладно ПК на нормальном интернете и большим диском все это загрузит и сможет работать. А что делать на мобильном устройстве, да еще и как вариант с 3G?
Как отправить деньги или проверить получил ли я их? Доверить расчет всех хэшей сторонней организации? И наверное хорошо если банку.
А если это банк и он «контролирует» мой кошелек (ну или я ему делегировал это право), то как по мне особой разницы нет, что блокчейн, что нет.

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

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

Вот мне интересно: насколько технология позволяет масштабировать систему которая на ней работает?

Ну и да. Буду ждать новых статей. Тема интересная.
Вполне можно разбить работу с базой на «тонкого» клиента с несколькими последними транзакциями и «толстого» клиента — с полной базой. Даже если локальная проверять только нескольких последних транзакций — этого будет достаточно для хорошей безопасности в случае мелких переводов. Для более важных переводов полную проверку можно доверить нескольким независимым «толстым» клиентам.

Важно понимать, что такие «толстые клиенты» не будут иметь доступ к вашим кошелькам, а только смогут проверять, пришла ли на кошелек N нужная сумма.

Чтобы отправить платеж, нужно и того меньше — достаточно ключей от своих кошельков.
А что делать на мобильном устройстве

Использовать тонкий клиент, как это изначально предусмотрено в архитектуре биткоина.

Как отправить деньги или проверить получил ли я их? Доверить расчет всех хэшей сторонней организации?

Чтобы отправить транзакцию просто создайте транзакцию, подпишите её, и доверте кому-нибудь чтоб он закинул её в сеть. Например можно использовать https://blockchain.info/pushtx
Доверять ему не надо. Подписываете транзакцию вы сами, подписывать свою транзакцию вы можете хоть на оффлайновом девайсе. Максимум что может сделать злоумышленик с вашей транзакцией, это просто не отправить её в сеть. Всё, никак по-другому вам навредить он не может.
Чтобы проверить, получили ли вы деньги, можно воспользоваться сервисом кого-угодно с полным клиентом. Сейчас таких несколько десятков только для биткоина. Навредить вам он так же никак не может. Максимум может не отобразить транзакцию. Ну так можно посмотреть на другом сервисе.

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

Насущный вопрос — хочу присоединиться к использованию, значит я должен скачать всю историю транзакций? Сейчас там десятки гигабайт насколько я знаю. Технология приобрете большую популярность, как тогда начнет расти база? Кто-нибудь считал примерные цифры?
Мало того, база должна постоянно обновляться всеми участниками у всех участников для поддержания её актуального состояния. Информация о транзакции рассылается всем участникам и одновременно принимается информация о транзакциях всех участников. Объем передаваемой и принимаемой информации вроде бы не очень большой, но вычислений много. Допустим, в системе миллион участников, совершающих транзакции, в среднем, раз в сутки, раз в 86400 секунд. Тогда информация о транзакциях будет приходить 11,5 раз в секунду, с такой регулярностью все участники должны будут пересчитывать базу. Передавать информацию о собственных транзакциях участникам придётся по 1 миллиону адресов. Если информация о транзакции представляет собой блок в 1 кб, то получится передача 1 Гб на транзакцию. А если отключаться-подключаться, то каждый раз ещё и считывать актуальную базу. Если производительность компьютера большая, канал связи достаточно широкий, вроде бы ничего страшного. Нужно знать конкретные цифры, здесь сплошные «если».
Транзакции подписываются пачками (блоками), периодичность блоков заложена в распределённый алгоритм: чтобы подписать блок, нужно найти требуемый хэш, сложность поиска которого устанавливается алгоритмически, в Биткойне периодичность ~10 минут.
Клиенты могут генерировать хоть миллион транзакций в секунду, сеть узлов их примет только с момента подписания очередного блока. И ещё несколько блоков транзакция считается неподтверждённой, это защита от форка.

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

Для биткоинов это точно не так, при сохранении офлайн сохраняется только кусок цепочки (и немудрено, поскольку объем такой базы колоссален)
Не обязательно. У биткона есть тонкие клиенты, которые почти ничего не выкачивают и работают.
При создании биткоина изначально было предусмотрено что в конце-концов полные клиенты (со всей цепочкой блоков) будут в нескольких дата-центрах и у майнеров, а остальные пользователи будут использовать легкие клиенты, не выкачивая всю цепочку.
И нет, это практически не влияет ни на децентрализацию, ни на безопасность.
О, Битфури, не те ли это ребята которые на деньги инвесторов начали майнить летом 2013-го а инвесторам начали отгружать свои девайсы только в конце сентября? Девайсы с пылью внутри, наверное нужно было хорошенько месяц-второй оттестировать перед тем как отдавать.
Нет, это был Метабанк (Тимур и Ко), а вот чипы они как раз покупали у Битфури. Битфури у меня всегда будет ассоциироваться с идейным майнером :) Много постов от него есть на биткоинтолке. А Метабанк кстати потом продали.
Мне нравится вот эта серия из 6-ти видео (с русскими субтитрами) «Блокчейн для чайников»



Надеюсь, кому-то поможет разобраться (там мало технических подробностей, но много разъяснений основных принципов, «на пальцах»)
Интересна цена на продукты.
Сайт как-то не демонстрирует прозрачности ценообразования.
Так что же такое блокчейн? От статьи с таким заголовком ожидаешь описание технологии, а не перечисления сфер применения и уж точно не саморекламы.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий