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 делается над этим хэшем. |