Design commitments
Every rule in Ting follows from ten commitments. The pages in this section take the most consequential ones in turn: the decision, why it was made, and what it costs.
- Consensus specifies ordering, execution, commitments and resource bounds, and nothing else.
- SHA-256 is the fixed consensus hash and proof-of-work function.
- Every accepted program has deterministic execution semantics.
- The protocol has no native currency, external user accounts, signature scheme, fee asset, account nonce or application address format.
- Authentication, replay protection, assets and application cryptography are ordinary program behavior.
- Code is immutable after deployment. Applications upgrade through calls, new deployments and their own state.
- Resource counters describe logical work and quantities, independent of CPU speed, time, caches and prices.
- Miners can adjust resource capacities at predefined rates above fixed floors. They cannot vote to change instructions, accounting, hashes or application rules.
- All block data needed to validate a state transition must be available.
- Optimized execution must preserve results, failure behavior and accounting.
The execution model and the host interface are consensus rules. A compiler, a database or a relay policy is an implementation choice.
These commitments are settled.
Declined#
- Merged mining with another chain's proof of work, which would put foreign formats into frozen consensus.
- State rent or expiry, which would have nothing to charge in and would change storage semantics under deployed programs.
Outside sources#
These references inform the design:
- NIST hash-function guidance, for SHA-256;
- WebAssembly Core 1.0, W3C Recommendation dated 5 December 2019, the base of the execution profile;
- WebAssembly Core Specification, Release 2.0, for the three accepted additions;
- the wide-arithmetic proposal, for its four instructions;
- the WebAssembly execution specification, for reviewing where Ting fixes a behavior deterministically;
- ASERT difficulty adjustment (aserti3-2d), Bitcoin Cash, November 2020, the source of the retarget arithmetic;
- EIP-2929, as evidence for separating storage access from ordinary computation.
Later changes to these documents are not incorporated into Ting's consensus. The wire formats, resource definitions, voting rule and state model are Ting's own, and Ting claims no adoption or endorsement by the projects referenced.
In this section
Freeze consensus onceWhy the rules are meant to stop changing.No native coin or accountsWhy assets, fees and identities are application territory.Cryptography lives in programsWhy signature schemes and hash libraries are deployed, not built in.Four counters, not one priceWhy compute, state access, data and growth stay separate.Prices, not capsWhy byte work is priced and nothing a counter can measure is capped.Nothing is refundedWhy rollback restores state but never consumed resources.A dated WebAssembly subsetWhy instruction meaning is inherited from a fixed standard.Capacity moves, rules do notHow throughput can change without changing the protocol.