Здравствуйте, vsb, Вы писали:
vsb>Биткоин вводит понятие блокчейна. Для простоты будем считать, что каждый блок это одна транзакция плюс хеш-сумма предыдущего блока плюс какие-то псевдослучайные данные. Мы начинаем с нулевого блока, он, к примеру, пустой. После этого создаём первый блок, пишем туда первую транзакцию о переводе ста тысяч битрублей, пишем туда хеш-сумму нулевого блока. Потом создаём второй блок, пишем туда хеш-сумму первого блока и какую-нибудь транзакцию и так далее.
Мне сейчас не совсем понятно следующее: зачем хранить полный блокчейн, с самими первыми транзакциями. Предположим, в блокчейне миллион блоков; из всех клиентов каждый был подключен к сети не позднее чем год назад, а год назад в блокчейне было 800 тысяч блоков. Почему нельзя обрезать эти 800 тысяч и держать в блокчейне только последние 200?
vsb>Хеш-сумма у нас криптографическая. Поэтому единственный известный науке путь добиться желаемого — перебирать эти случайные байты-довески, пока не сгенерируется хеш-сумма со ста нулевыми битами. И вот этот перебор уже всё усложняет, теперь миллион блоков за секунду сгенерировать не получится. Нужно перебирать триллионы триллионов вариантов, пока найдёшь такой блок. Те, кто этим перебором занимаются, называют этот перебор майнингом, а себя — майнерами.
vsb>И теперь выходит такая ситуация. Все майнеры сидят в чате. А также в чате сидят все заинтересованные лица, не обязательно майнеры. И как только какой-то майнер нашёл новый блок, он его сразу в чате выкладывает. И все этот блок записывают в свою цепочку и ищут следующий.
vsb>Последний компонент это мотивация для майнеров. Понятно, что жечь электричество ради идеи мало кто готов. Поэтому мы добавляем ещё одно правило. Во-первых в транзакцию тот, кто её создаёт, добавляет чаевые. Сколько хочет, столько добавляет. Во-вторых майнер в блок добавляет помимо транзакции ещё свой публичный ключ. И в-третьих считается, что при добавлении блока в цепочку вознаграждение переводится на указанный публичный ключ майнера.
vsb>Теперь система выглядит так: в чате сидят майнеры, в чате сидят заинтересованные в актуальной версии БД, а также в чате сидят те, кто хочет переводить деньги. И последние пишут в чат свои транзакции. Майнеры смотрят на транзакции, которые не попали в цепочку, и выбирают ту, у которой вознаграждение больше. Конечно проверяют, что на кошельке у него хватает средств на перевод. И тот, кто сгенерировал блок — добавляет эту транзакцию в блокчейн и получает себе награду.
Тогда вопрос, почему майнингом не занимается каждый отдельный клиент. Я пока суть всё-таки ещё не ухватил, ещё не могу сформулировать своими словами, для чего нужно вознаграждение майнеров.
Я считал, что майнинг нужен для другого — раздать биткоины новым людям. Если бы Сатоши изначально сгенерировал себе все 20 миллионов биткоинов, которые допустимы в системе, то ему наверно не удалось бы их продать; а так каждый юзер первое время сам себе их генерил, поэтому юзеров становилось всё больше и в какой-то момент один из них решил продать за биткоины пиццу, с чего всё и завертелось. Т.е. тут работал игровой что ли момент, или психологический.
Поэтому мне кажется, новые криптовалюты лучше делать вообще без майнинга, просто бесплатно раздать случайным людям; ещё лучше ввести какой-то фильтр, например чтобы люди сдавали экзамены на знание научпопа, и кто сдал — тот получил свою порцию монет.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать." Р.П. Уоррен