представляет собой реализацию блокчейна с использованием различных технологий и инструментов. Блокчейн — это распределенная база данных, которая обеспечивает безопасность и прозрачность транзакций. В данном проекте реализованы основные принципы работы блокчейна, включая создание блоков, транзакции и подписи.
Используемые технологии для создания:
- Aqua Style Sheet for QT Applications: Стиль для оформления графического интерфейса пользователя (GUI) приложения, разработанный Хайме А. Куирога П.
- QT: Библиотека для создания графических интерфейсов, позволяющая разработать кроссплатформенные приложения.
- Visual Studio Code (VSCODE): Редактор кода, используемый для разработки блокчейна.
- SHA-1 in C++: Реализация алгоритма SHA-1, используемого для хеширования данных в блоках. Создатели имплементации: Стив Рейд, Брюс Гентер, Волкер Дъелс-Грабш, Евген Хопкисон, Златко Михайлов.
- RSA: Алгоритм для шифрования и подписи сообщений, реализованный в проекте для подписи транзакций. Своя имплементация, для упрощения и наглядности.
- QtCreator: Инструмент для разработки приложений на QT.
- C++: Язык программирования, используемый для разработки блокчейна.
- cURL: Библиотека для работы с URL, используемая для связи между GUI и блокчейном.
- 7z SFX Builder: Инструмент для создания установщиков.
Блокчейн состоит из последовательности блоков, каждый из которых содержит:
- Индекс: Порядковый номер блока в цепочке.
- Хэш предыдущего блока: Уникальный идентификатор предыдущего блока.
- Временная метка: Дата и время создания блока.
- Список транзакций: Все транзакции, включенные в блок.
- Хэш текущего блока: Уникальный идентификатор текущего блока.
- Нонс: Значение, используемое для доказательства работы (Proof of Work).
Это механизм, который требует от участников сети выполнения определенной вычислительной работы для создания нового блока. В проекте используется метод, при котором блоки создаются путем нахождения значения нонса, которое при хешировании блока дает хэш, начинающийся с определенного количества нулей (уровень сложности).
- Генерируется новый блок с транзакциями.
- Увеличивается значение нонса до тех пор, пока хэш блока не будет соответствовать заданному уровню сложности.
- Как только найдено подходящее значение, блок добавляется в цепочку, и транзакции считаются подтвержденными.
- Транзакции и подписи через RSA
- Транзакции: Каждая транзакция содержит публичный ключ отправителя, количество монет, адрес получателя и подпись.
- Подпись: Подпись транзакции создается с использованием закрытого ключа отправителя и включает в себя хеш сообщения, что обеспечивает целостность и аутентичность транзакции.
BlockChain-ToolBox демонстрирует основные принципы работы блокчейна и технологии для создания безопасного и эффективного приложения. Реализация таких функций, как подпись транзакций и создание блоков, позволяет пользователям взаимодействовать с системой, обеспечивая высокий уровень безопасности.