SHA256
GPT: сгенерено и не проверено (смена ключей пользователя)
This commit is contained in:
@@ -64,7 +64,7 @@ block_version: u8 = 0
|
||||
root_key: [u8;32]
|
||||
```
|
||||
|
||||
`root_key` — холодный recovery authority. Blockchain authority не может изменить root. Root authority может изменить root и остальные поля.
|
||||
`root_key` — холодный recovery authority. Обычные update не используют root. Root участвует только в полной ротации ключей: старый root разрешает переход на одновременно новые `root_key`, `client_key` и blockchain fork.
|
||||
|
||||
## ClientKeyBlock
|
||||
|
||||
@@ -74,7 +74,7 @@ block_version: u8 = 0
|
||||
client_key: [u8;32]
|
||||
```
|
||||
|
||||
Client key не является authority PDA. Он может использоваться клиентским уровнем и как fee payer Solana-транзакции.
|
||||
Client key не является authority PDA. Он может использоваться клиентским уровнем и как fee payer Solana-транзакции. В текущем протоколе смена `client_key` разрешена только как часть полной ротации вместе с root и новым blockchain fork.
|
||||
|
||||
## BlockchainRegistryBlock
|
||||
|
||||
@@ -148,12 +148,13 @@ PDA 1.2 разрешает `server_count = 0` или `1`. Count оставлен
|
||||
|
||||
- обычный update — активный blockchain key;
|
||||
- новый fork — новый blockchain key;
|
||||
- root-mode — root нового состояния;
|
||||
- смена root — новый root.
|
||||
- полная ротация root + client + blockchain fork — новый blockchain key.
|
||||
|
||||
На update программа дополнительно требует Ed25519-подпись authority предыдущего состояния по тому же hash нового unsigned state. Эта transition-подпись не хранится внутри PDA.
|
||||
|
||||
Blockchain-mode не может изменить root. Root-mode может изменить root и выполнить recovery. Одновременно менять root и добавлять blockchain fork одной транзакцией запрещено.
|
||||
Blockchain-mode не может изменить root. Для полной ротации используется root-mode: текущий root подписывает hash нового unsigned PDA state как разрешение на переход, а новый blockchain key подписывает тот же hash и его `signature[64]` сохраняется в PDA. Поскольку hash считается по всему unsigned state, обе подписи одновременно фиксируют новый root key, новый client key, новый blockchain fork и остальные поля записи.
|
||||
|
||||
Смена root считается корректной только как полная ротация: root key изменён, client key изменён и в ту же запись добавлен новый blockchain fork. Такая recovery-ротация не ограничивается обычным 72-часовым cooldown blockchain-authority.
|
||||
|
||||
## Create
|
||||
|
||||
|
||||
Reference in New Issue
Block a user