Допустим у нас есть компьютеры или программы объединенные в так называемую пиринговую сеть, то есть все отдельные участники сети равны между собой, нет каких то главных участников и подчиненных им, каждый участник сети может напрямую общаться с любым другим участником, делиться со всеми любой информацией. При этом никто не контролирует участников, они могут делать все что захотят.
И вот мы хотим в такой системе сделать что то серьезное, ответственное, например систему для обмена деньгами между собой. Но тут сразу начнутся проблемы. Если все могут бесконтрольно делать что хотят, то любой может выдумать себе любое количество денег, отдавать одни и те же деньги разным людям, врать про других участников, якобы у них есть или нет деньги. В общем нифига это работать не будет.
Чтоб решить эту проблемы существует алгоритм под названием блокчейн. Он помогает в пиринговой сети надежно хранить данные об участниках, не дает их изменять кому попало и как попало, и т.д.
Чтоб самому с нуля создать блокчейн, нужно решить 7 задач:
1) Как то описать, кто из участников сети какой информацией владеет.
2) Обеспечить безопасность этих данных, надежное хранение.
3) Надо где то и как то хранить эти данные.
4) Подготовить данные к распространению в ненадежной сети, чтоб кто угодно не мог делать с ними все что угодно.
5) Само распространение этих данных по сети.
6) Добавление новых данных.
7) И еще надо как то после всего этого определить, какие данные верны, а какие уже устарели, созданы как попало и т.п.
Решив эти задачи мы получим готовый рабочий блокчейн, которым можно пользоваться.