Категория: Новости

Как создать свой блокчейн с нуля при помощи Go? Часть 3

первой и второй частях мы пошагово разобрали процесс создания генезис блока и интерфейса командной строки. В последней части мы расскажем как сделать базу данных неизменной и для чего это нужно.Клиент бара BabaYaga слишком увлекся инвестированием. Он забыла, что подходит срок оплаты аренды, и у нее не осталось свободных средств. Баба Яга звонит хозяину квартиры Цезарю.Баба Яга: Привет, Цезарь. Мне очень жаль, но у меня нет денег заплатить за квартиру в этом месяце.Цезарь: Это еще почему?Баба Яга: Ну, ICO Blockchain Bar предлагали огромные бонусы и я купил токенов на $2000 всего за $1000. Это была отличная сделка!Цезарь: Что за дичь? Что за ICO? Что за токены? Заплати мне нормальными деньгами.Баба Яга: Давай так – я дам тебе 1000 TBB токенов, которые стоят $1000. Ты можешь потратить их в баре и расплачиваться за выпивку! Я позвоню владельцу бара, и он быстренько переведет тебе токены.Цезарь: Ну ладно, я их приму.Андрей проводит транзакцию, но решает снять 50 TBB комиссии за потраченное время. Ему-то самому этого, конечно, не хочется, но акционеры бара требуют приносить прибыль как можно быстрее. “Баба Яга все равно не заметит крошечной комиссии”, – подумал Андрей. В конце-концов, доступ к базе данных есть только у него.Баба Яга заходит в бар отмечать свой день рождения.Баба Яга: Привет, Андрей! Сегодня мой день рождения! Давай свою самую дорогую бутылку!Андрей: С днем рождения! Вот, прошу – водка Crystal Head. Но тебе нужно докупить еще один TBB токен. Бутылка стоит 950 TBB, а у тебя на балансе всего 949.Баба Яга: В смысле?? У меня на балансе должно быть 999 TBB!Андрей: Перевод денег Цезарю стоил тебе 50 токенов.Баба Яга: Это недопустимо! Я бы никогда не согласился на такую комиссию. Так нельзя делать, Андрей. Я доверил твоей системе, а ты меня кинул. Так не пойдет.Андрей: Ладно, послушай. Ты мой самый частый клиент, и я не хотел с тебя стягивать деньги, но меня заставили акционеры. Давай я перепишу систему и сделаю ее полностью прозрачной и децентрализованной. Если все смогут взаимодействовать с баром без моего посредничества, это должно повысить уровень доверия!1. Заказ напитков будет занимать секунды, а не минуты2. Пользователи, которые забыли кошельки дома, могут одалживать токены друг у друга.3. Если у всех есть копия базы данных, владелец не может ее потерять.4. База данных будет неизменна, никто не сможет внести правки в нее.5. Если акционеры захотят поднять комиссии или представить новые механизмы, все участники будут в курсе и смогут согласиться или отказаться от изменений. Баба Яга: Звучит, конечно, хорошо. Ты уверен, что это выполнимо?Андрей: Думаю да.Баба Яга: Ну тогда иди и занимайся своими блокчейнами.Если Андрей хочет выяснить как создать неизменную базу данных, сначала ему нужно узнать почему остальные базы данных изначально изменяемы. Он решил изучить базу данных MySQL:В MySQL DB любой, у кого есть доступ, может внести изменение в таблицу:В таблице можно изменять значения разных строчек, так как каждая строчка не зависит от других. Но если бы строчки и состояние таблицы были связаны друг с другом (например, изменение строчки генерирует совершенно новую таблицу), то Андрей смог бы достичь желаемой неизменности.Процесс хэширования – это преобразование данных произвольного размера в короткую строку определенного размера. Любое изменение изначальных данных приведет к созданию нового хэша.Блокчейну также необходим определенный уровень безопасности, поэтому Андрей добавляет криптографическую хэш функцию со следующими свойствами:1. Детерминированная – одинаковое сообщение всегда будет иметь одинаковый хэш2. Небольшое изменение в сообщении полностью изменяет хэш3. Имея в наличии хэш невозможно сгенерировать изначальное сообщение, только перепробовав все возможные варианты4. Невозможно найти два разных сообщения с одинаковым хэшем.Андрей модифицирует функцию Persist(), что бы она делала Snapshot хэша каждый раз, когда сохраняется новая транзакция.Snapshot производится новой функцией sha256 secure hashing
Когда новая транзакция записывается в файл tx.db , Persist() хэширует весь файл и возвращает 32-байтный хэш-отпечаток.
С этого момента каждый клиент может 100% конфиденциально и безопасно получить нужный набор данных при помощи нужного снимка.1. Запустите команду tbb balances list и проверьте совпадают ли балансы.2. Уберите две последние строчки из ./database/tx.db и проверьте балансы заново.3. Выплатим награду Андрею за два дня работы:Транзакция 1Транзакция 24. Запустите команду tbb balances list и убедитесь, что все снимки хэшей совпадают с изначальными.
Готово!Так как криптографическая хэш функция sha256 производит одинаковую строку при одинаковых входных данных вы можете повторить эти шаги на своем компьютере и сгенерировать такую же базу данных и такие же хэши!Блокчейн – это неизменная база данных. Общее количество токенов, начальные балансы пользователя и общие настройки блокчейна задаются в генезис файле. Балансы в генезис файле отображают изначальное состояние блокчейна и никогда не изменяются.
Изменения в базе данных называются транзакциями. Транзакции – это события внутри системы, которые записываются на блокчейн.Информация в базе данных управляется криптографической хэш функцией. Участники блокчейна используют хэш для того, чтобы указать на определенное состояние базы данных.Подписывайтесь на ForkNews в Telegram, чтобы быть в курсе новостей из мира криптовалют

Disqus Comments Loading...
Share
Опубликовано
Elena Frolova

Recent Posts

Биткоин: где купить? Обзор некоторых платформ для покупки криптовалюты

С ростом цен все больше россиян интересуются биткоином. Но всемирное увлечение этим криптоактивом также привело…

07.12.2023

Cryptonica – лучший информационный портал о криптовалюте

В наше время криптовалюты стали неотъемлемой частью мировой экономики и финансов. Они предоставляют уникальные возможности…

24.11.2023

Прогноз курса Ethereum: опасения регулирующих органов по поводу будущего ETH стремительно растет

Виталий Бутерин, основатель Ethereum, имеет тесные связи с Wanxiang Group, китайской компанией, зависящей от правительства…

13.11.2023

Обмен юсдт на российские рубли

Обмен юсдт (Tether TRC20 USDT) на российские рубли (RUB) на карты РФ - это процесс…

05.10.2023

Выбор интернет-казино с минимальным депозитом и невысокими ставками

Каждый посетитель интернет-казино жаждет получить крупный выигрыш с наименьшими рисками. Для такой игры лучше всего…

30.08.2023

Алгоритм обмена криптовалюты в обменнике на примере epichange.online

Появление криптовалюты произвело революцию в цифровых активах, позволив частным лицам безопасно и легко обмениваться ценностями…

31.07.2023

Заявление управляющего Банка Англии о Bitcoin и стейблкоинах

Bitcoin и другая криптовалюта всегда вызывала противоречивые мнения у разных участников финансового сектора. Не исключением…

13.07.2023

Какие преимущества клиентам дает онлайн-сервис по подбору кредитов?

Рынок финансовых услуг России стабильно развивается. Каждый день компании предлагают новые программы финансирования для потенциальных…

12.07.2023

Кэш-память L3 в процессоре, что это значит и как отражается на быстродействии ноутбука/компьютера?

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

10.07.2023

Риэлтор: отзывы о работе и особенности профессии

Для того чтобы стать успешным и востребованным риэлтором, нужно хорошо разбираться в объектах недвижимости и…

28.06.2023

Как технология блокчейн может повлиять на безработицу

По данным Организации Объединенных Наций, пандемия и связанная с ней нестабильная экономика приводят к росту…

23.06.2023

Оформить кредитную карту без отказа: критерии выбора продукта, обзор предложений

В последнее время банки активно предлагают различные программы финансирования граждан. Одним из удобных и технологичных…

19.06.2023

В чем особенность доверенного торгового счета

Доверенный торговый счет – это соглашение между трейдером и инвестором, в результате которого трейдер торгует…

06.06.2023

Рейтинг лучших ботов для торговли криптовалютой на бирже

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

23.05.2023

GRIN4: площадка для эффективного трейдинга

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

18.05.2023

Онлайн микрозаймы на карту: быстро, удобно и без лишних вопросов

В наше время деньги нужны всем и всегда. Но иногда бывают ситуации, когда они нужны…

17.04.2023

Что такое Aptos? Охота на миллиард пользователей

Aptos - это блокчейн L1, который стремится стать самым безопасным и масштабируемым блокчейном в истории.…

07.04.2023

Причины, по которым вам следует инвестировать в Ethereum

Ethereum является одной из самых перспективных криптовалют и в ближайшем будущем может отнять трон у…

18.03.2023

Дефи Криптовалюта: Очередное Поколение Валютных Революций

Дефи криптовалюта - это новый вид валюты, которая появилась на рынке в последние годы. Она…

14.03.2023

Покупать ноутбуки-трансформер или нет: собрали все преимущества и недостатки

Ноутбуки 2-в-1, также известные как конвертируемые ноутбуки — эти устройства давно стали отдельным сегментом в…

27.02.2023

WhiteBIT залучає до купівлі NFT Brave Legion задля активізації зборів на ЗСУ та гуманітарку

Найбільша криптовалютна біржа Європи з українським корінням — WhiteBIT — створила спеціальні умови для залучення…

14.02.2023