SHA256
48 lines
2.0 KiB
Markdown
48 lines
2.0 KiB
Markdown
Общая структура блока
|
|
|
|
Блок — это бинарная запись фиксированного формата:
|
|
|
|
[ RAW ][ signature64 ][ hash32 ]
|
|
|
|
RAW — данные блока (участвуют в хэшировании и подписи)
|
|
signature64 — Ed25519-подпись над hash32
|
|
hash32 — SHA-256 от preimage (привязан к цепочке и владельцу)
|
|
|
|
RAW-часть (BigEndian)
|
|
recordSize int32 — размер RAW (без signature+hash)
|
|
recordNumber int32 — глобальный номер блока
|
|
timestamp int64 — unix time (seconds)
|
|
lineIndex int16 — индекс линии
|
|
lineNumber int32 — номер блока внутри линии
|
|
bodyBytes bytes — тело блока (type+version+payload)
|
|
|
|
Общая структура блокчейна
|
|
|
|
Блокчейн — это:
|
|
линейная цепочка блоков (по recordNumber)
|
|
внутри неё — параллельные логические линии (lineIndex)
|
|
каждая линия имеет собственную нумерацию (lineNumber) и prevLineHash
|
|
вся цепочка связана ещё и prevGlobalHash
|
|
|
|
👉 Таким образом, каждый блок:
|
|
связан с предыдущим глобальным блоком
|
|
и с предыдущим блоком своей линии
|
|
|
|
Это даёт:
|
|
строгий порядок всей истории
|
|
и независимую валидацию логических потоков
|
|
|
|
Криптографический смысл блока
|
|
|
|
Хэш блока считается от:
|
|
"SHiNE" +
|
|
login +
|
|
prevGlobalHash32 +
|
|
prevLineHash32 +
|
|
RAW
|
|
|
|
Это означает:
|
|
блок жёстко привязан к владельцу (login)
|
|
блок невозможно перенести в другую цепочку
|
|
подмена предыдущего блока ломает всю цепь
|
|
Подпись Ed25519 делается над этим хэшем. |