Granular Certificate
Granular Certificate is a term defined by the EnergyTag Organization.
It is a goal for the Project-Origin to be Compliant with the EnergyTag Standard
Description
In Project-Origin, a Granular Certificate (GC) can describe either a production or consumption of energy at a meter 1.
A GC consists of two parts:
A immutable "header" which is the collection of attributes on the GC. These data cannot be changed after the GC has been issued. These attributes describe all the properties on the GC, like the grid area, time period or which asset the GC originates from.
A collection of slices, when a GC is issued, it is created with 1 initial slice. An active slice contains two values, the quantity of the slice, and the owner's public-key. All transactions on an existing GC and the life-cycle happens through the slices.
Slices
As described above, a GC is immutable, and contains the entire quantity measured at the meter for the period, so how could trading and claiming parts of a certificate work?
To solve this, Project-Origin borrowed a term from the financial sector, stock-slicing, where a single stock can be traded as slices. This happens on top of the existing stock market.
This was implemented as a core part of the architecture of the GC system in Project-Origin. A GC consists of 1 to n slices, when the GC is issued, one initial slice is created. Similar to baking a cake, "1 slice (whole cake)" exists.
When a GC is issued, it is created with a single initial slice.
A slice is always owned by a single public-key.2
A slice can be uniquely identified by its commitment, this was chosen as they were already unique and to save on adding another field with no added value.
Slice life-cycle
A slice has a specific life-cycle. When the slice is created, it becomes active.
When the owner wants to perform any action on the slice, they need to create a transaction. Note that most transactions are final, in there is no way to reverse them once performed.
Below is a diagram of the life-cycle of a slice given transactions that can be performed on it.
stateDiagram-v2
[*] --> Active
Active --> Removed: Slice
Active --> Active: Transfer
Active --> Allocated: Allocate
Allocated --> Claimed: Claim
note right of Removed
Removed slices are <b>not</b>
counted when calculating the total,
since new slices representing the
amount was created.
end note
note left of [*]
A slice can be created by an IssueCommand to create a new GC.
Or a SliceCommand on an existing GC slice to create new slices.
end note
- Issue transaction: Used by an Issuing Body to issue a new GC.
- Transfer transaction: Transfers the ownership of an existing slice to a new owner.
- Slice transaction: Enables the owner to create any number of new slices from an exsting slice.
- Allocate and claim transaction: Claim a production slice to a consumption slice of same quantity.
-
In the EnergyTag scheme a GC only relates to the production of energy, consumption verification is done with the help of a consumption verification body.↩
-
Public-private keys was chosen since the registries do not have the concept of accounts and users. Ownership of a GC is purely done with the help of a public-private key pair. It is up to the integrating system to implement an accounting system and manage ownership through public-private keys.↩