Protocol Alpha¶
This page contains all the relevant information for protocol Alpha, a development version of the Tezos protocol.
The code can be found in the src/proto_alpha
directory of the
master
branch of Tezos.
This page documents the changes brought by Protocol Alpha with respect to Edo.
Summary of changes
Baking Accounts¶
A new account type has been added to represent accounts managed by bakers. These accounts are Michelson smart contracts running a fixed multisig script. This feature lets bakers renew and split their consensus keys without moving to a new address and asking their delegators to follow. In addition to the usual internal operations, baking accounts can also emit baking operations such as proposing and voting for protocol amendments.
TZIP: tzip!133
MR: tezos!2458
Docs: tezos!2490
/!This is a breaking change, see the corresponding section in the TZIP.
Smart Contracts/Michelson¶
Increase max_operation_data_length
to 32KB¶
The maximal size of operations is doubled. In particular this has the effect of slightly more than doubling the maximum size of a smart contract.
Commit: tezos#3ff6bc8d
Fixed a discrepancy between CONTRACT
and PACK
in addresses without entrypoints¶
Solves issue: tezos#643
Commit: tezos#e879b1a7
Depth-First Execution Order¶
The applied order of inter-contract calls emitted by smart contracts has changed. The operations are now placed in a stack instead of a queue, resulting in a depth-first as opposed to breadth-first execution order.
TZIP: tzip!111
MR: tezos!2420
/!This is a breaking change that affects the security of smart contracts
Tooling¶
Normalization RPCs¶
Two new normalization RPCs, normalize_data
and normalize_script
,
have been added. They can be used to convert Michelson values and
scripts that have multiple possible representations into a canonical
format. In particular, these RPCs can be used to convert Michelson comb
pairs into the format they had before the introduction of the compact
notations in Edo.
Solves issue: tezos#1016
MR: tezos!2354
New failing_noop
Operation¶
A new operation has been added to the protocol that is guaranteed to
fail. This feature can be used by tooling (such as tezos-client
) to
sign arbitrary data securely, without fear of malicious injection into
future protocols.
Solves issue: tezos#52
MR: tezos!2361
Performance¶
Endorsements Now Checked in Linear Time¶
Endorsement and double endorsing evidence operations now contain an additional slot field; the slot should be the smallest among the endorser’s slots.
Software that make use of operations and receipts will have to be adapted, in particular indexers.
Most notably, the first list of operations is now composed of endorsement_with_slot instead of endorsement operations.
The change will not affect custom signing stacks, as the endorsement_with_slot is just an unsigned wrapper around the Edo-compatible endorsement format.
The reference endorser forges an endorsement, sends it to the signer, and then wraps the result in an endorsement_with_slot before injection.
Solves issue: tezos#1028
MR: tezos!2471
/!Breaking change: the format of endorsements and double endorsing evidences has changed
Staking balance RPC¶
Some users observed degraded performance in v8.1 as reported in issue
tezos#1067. To
address this, the measurement of staking balance has been reworked,
improving the performance of the
/chains/[...]/blocks/[...]/context/delegates/[...]
RPC endpoint.
MR: tezos!2547
Gas Optimizations¶
Various optimizations have been added to the gas accounting subsystem. Most notably, gas consumption is now computed using saturated arithmetic.
MR’s: tezos!2328, tezos!2327, and tezos!2329
Governance¶
Deactivation of the Test Chain in the Economic Protocol¶
Prior to Florence, Tezos nodes spawned a test chain during the “Testing” phase of voting for the purpose of allowing users to test the new amendment. However, this feature was both unused in practice and quite complex. It has been removed, simplifying the amendment protocol.
- Furthermore, the voting periods have been renamed as follows:
Proposal –> Proposal
Testing_vote –> Exploration
Testing –> Cooldown
Promotion_vote –> Promotion
Adoption –> Adoption
TZIP: tzip!141
MR: tezos!2469
Migration¶
Migrations may now Produce Balance Receipts¶
Protocol migrations can now update the balance of accounts by producing balance receipts. This was necessary groundwork for Baking Accounts and facilitates developer invoicing.
Solves issue: tezos#138
MR: tezos!2437
Internal¶
Refactoring¶
Abstract protocol types can now be used consistently outside the protocol.
MR: tezos!2497