Данные, записанные в блокчейн, хранятся в блоках, которые в свою очередь записаны в линейной последовательности друг за другом. Каждый блок в блокчейне имеет уникальный идентификатор (хэш), временную метку генерации блока и данные, записанные пользователями.
Блоки связываются друг с другом с помощью хэшей, и это позволяет данным в блокчейне оставаться неизменными — при изменении любого байта данных в блоке меняется его хэш и хэш всех последующих блоков, что делает невозможным изменение ранее записанных данных.
Цепочки данных
Традиционные блокчейны часто позволяют записывать произвольные данные в блок. Например, биткоин транзакции содержат поле OP_RETURN, куда пользователи могут вставить любую информацию на своё усмотрение. Эти данные включаются в блок и следовательно навсегда записаны в блокчейне.
Несмотря на то, что в блокчейне биткоина блоки связаны друг с другом, достаточно проблематично связать собственные данные, записанные в разные блоки биткоина, друг с другом.
Factom решает эту проблему.
В блокчейне Фактом пользователи могут создавать собственные уникальные цепочки данных (Chains), в каждой из которых хранятся данные (Entries), отправленные определённым приложением. Данные, отправленные в различное время, группируются по цепочкам независимо от того, в какой блок блокчейна они попали.
Это преимущество позволяет строить приложения, использующие блокчейн для любых целей: отслеживание состояния любых данных, файлов или баз данных; неизменяемые логи; цепочки поставок. Отслеживание статуса данных внутри цепочки позволяет создавать смарт-контракты, работающие с этими данными.
ChainID и ExtIDs
- Каждая цепочка данных имеет уникальный хэш — ChainID
- Каждая цепочка данных имеет уникальный набор тегов — ExtIDs — который задаётся при создании цепи и впоследствии не меняется
- Хэш ChainID уникален и рассчитывается из набора тегов ExtIDs
- Зная ChainID или ExtIDs, можно прочитать данные, записанные в эту цепочку данных
Пример ниже показывается взаимосвязь между набором тегов и хэшем цепи. Цепочка содержить 2 тега — Factom PRO и Tutorial — которые вместе генерируют хэш цепи ChainID.
Это реальная цепочка данных, которую можно посмотреть в обозревателе блокчейна.
При изменении порядка тегов создастся новая цепочка с другим хэшем:
Хэш ChainID зависит только от набора тегов, присвоенных цепочке, и их порядка.
Протокол не даст создать 2 цепочки с полностью идентичными тегами и их порядком, поэтому такая транзакции будет отклонена.
Записи (Entries)
Записи хранят в себе данные, записанные пользователем или приложением. Любая запись должна быть привязана к одной и только одной цепочке. Можно провести аналогию с папками и файлами, где цепочки — это папки, а записи — это файлы.
Структура записи
- ChainID — хэш цепочки, в которую делается запись
- []ExtID — один или несколько тегов
- Content — полезный контент
Каждая запись имеет уникальный хэш — EntryHash — который зависит от 3 вышеперечисленных параметров.
В отличии от цепочек, записи не уникальны — можно записать одинаковые записи в одну и ту же цепочку. Например, если ваше приложение записывает логи системы безопасности в блокчейн, то может возникнуть одинаковое событие в различные периоды времени, и таким образом в цепочку будут записаны несколько одинаковых записей, но с разными временными метками (т.к. записи попадут в разные блоки).
Приложения и протоколы 2-го уровня (PegNet)
Возможность связывать пользовательские данные друг с другом открывает неограниченные возможности для разработки приложений и децентрализованных протоколов 2-го уровня, использующих блокчейн Factom как децентрализованную базу данных.
Наиболее яркий пример такого использования — сеть деривативов PegNet — использующая блокчейн Фактом для хранения курсов связанных активов (криптовалюты, фиатные валюты и товарные рынки).
PegNet записывает и считывает данные из блокчейна Factom, все балансы и транзакции сети PegNet рассчитываются внутри кошелька (как в Bitcoin), а майнеры необходимы для защиты котировок деривативов от манипуляций и мошенничества.
Технически, PegNet использует несколько цепочек данных в блокчейне Фактом и рассчитывает балансы и транзакции пользователей путём простого считывания этих данных:
- Цепочка котировок деривативов, записанных майнерами
- Цепочка транзакций и конвертаций, записанных пользователями сети
Формат цепочек и записей Фактома позволяет хранить пользовательские данные в блокчейне в любом удобном виде — это делает блокчейн пригодным для любых приложений, позволяет создавать собственные токены (FAT — Factom Asset Token), смарт-контракты, Digital и Decentralized Identities, и даже создавать блокчейн-сети 2-го уровня на базе Factom.
Кто мы — Factom PRO
Factom PRO — это облачный блокчейн-шлюз для приложений, позволяющий быстро начать работу с блокчейном Factom. Мы обеспечиваем фиксированную стоимость записи данных в блокчейн — $0.01 за запись до 10 КБ данных — и предоставляем удобнейший REST API, который позволяет делать записи в блокчейн так же легко, как при работе с традиционными базами данных.
Дополнительным преимуществом является отсутствие необходимости приобретать криптовалюты для оплаты транзакций, а также поднимать и поддерживать собственную блокчейн ноду.
Первый месяц использования всегда бесплатен для новых пользователей.