Jul 29, 2020
Elas Ledgers and Satoshi Tokens
Elas Ledgers and Satoshi Tokens
Last week we took a look at the Elas Ledger and what it can enable us to do from the perspective of a framework. This week I wanted to delve into the functionality of the tokens within the system.
Thanks to the architecture of the Elas Ledger, and the ability of the BitcoinSV network to handle transaction types and sizes that aren’t possible anywhere else, it becomes possible to issue tokens in a completely new manner. Once an Elas ledger has been created within the bounds of Bitcoin, we are able to issue tokens such that they are completely traceable using the historical records created by miners and secured by the block chain and which don’t have a requirement to be managed by a third party. This on-chain record becomes our validation pathway, and gives us the means to shed the burdens of data carriage, script overhead and much more.
Elas’ Satoshi tokens represent the most simplified approach we believe possible in Bitcoin. Our tokens have:
Zero script overhead
No FALSE RETURN outputs (although they can be used in transactions with Satoshi Tokens)
No pushdata requirement (although pushdata information can be present or even needed in Satoshi token outputs)
No issuer agent (although they can be used where needed)
Full Bitcoin script capability including sCrypt OP_TX style conditional payments
Usable in payment channels
Can be used in transactions with other token types or protocols
Usable within a Metanet framework
We call these tokens Satoshi Tokens for a good reason. Each token resides upon a small quantity of Satoshis, and to exchange the token the sending party must move all of the Satoshis in the UTXO holding the token across to the new receiving script. Currently, we need to issue the tokens with a large amount of Satoshis in each output to enable the use of different types of transactions within the dust limitations, but once this relic of the past is discarded, it will be possible to print each token onto a single Satoshi and manage the exchange process by passing Satoshis from peer to peer.
Eventually, we plan to be able to issue tokens onto spendable zero value outputs which is possible within the bounds of the protocol, but currently not permitted by transaction processors. This will not be needed for several years (decades) yet, as the 1.8 quadrillion Satoshis already in circulation represent an adequate source for current needs 😉.
Tokens are issued dependent on the nature of the sub-ledger that they are being issued into. Some tokens may represent something of fixed value which will never change, while others might represent a single use coupon, or the first state in a sequence of states through which the token must pass before being recycled. It is also simple to represent a tokenized asset or asset class as a set of tokens in a variety of separate denominations, allowing functionality much like we have in the physical cash system of today.
The key thing is that each and every Satoshi token is unique, giving us the ability to attach serial numbers, artwork and more with and allowing the fungibility of the units to be determined as a rule set by the issuer. In other words, the issuer can create a set of tokens such that one output represents 1, 5 or 10 tokens and those outputs are fungible within the economy they are being used. We will explore the ways this can be used more in up-coming posts but suffice to say the limits on the different types and use cases are only in your imagination.
The minting action used to create the tokens incorporates an authority stamp from the ledger’s self-declared issuer which is used to validate the authenticity of the tokens when they are transacted. A token which originates from a minting action that does not have a traceable link back to the issuer can be declared invalid using simple and repeatable checks and this technique can be implemented using certificates (as shown below) or within a Metanet framework. Each method has advantages dependent on the purpose and scale of the system.
Another important aspect of these tokens is how they are exchanged. When a token is spent, the UTXO holding the Satoshis that represent it is spent into a transaction and the only requirement is that the same number of Satoshis are spent to an output at the same index as the input. In other words, if I bring a token into a transaction as the fourth input, the script I am spending it out to must be attached as the fourth output and must contain the same number of Satoshis. By doing it this way, we keep each token exchange contained within a single input -> output pair giving you the freedom to use other inputs and/or outputs for any purpose you like. We also ensure that tokens carry no restrictions pertaining to the type of script that is usable to transact them.
This can include spending tokens from other Elas ledgers, spending other types of tokens, spending Bitcoin, attaching data and more. This is also how the token histories are traced on the ledger.
Using the ledger in this way allows us to simplify the token down to the most base ideal, allowing complexity to be built as it is required to meet the needs of each particular project.