This is draft!
Aereum is a protocol and peer-to-peer network capable of providing stable, relisiant and descentralized infrastructure for human digital communication. It is based on the concept of audiences where network participant can create to perform moderated, authorized and encrypted messages exchanges.
It can be conceived as a TCP/IP for humans. Every subscriber is associated to an unique token and an unique caption that can be used across distinct devices, different apps and even different other protocols constructed on top of Aereum. TCP/IP was conceived on a world of multiple users per machine. Aereum is conceived for the world of multiple devices per user. Every subscriber can create several audiences, grant or revoke moderating, submission and reading powers to other users.
Subscribers and grant or revoke power of attorney for other subscribers to sign messages on their behalf. This enhances user experience, by providing a mechanism to use one or more specialized third party services to engage with the network.
Advertising is a first class entity within the protocol. By submiting advertising offers one subscriber shows interest to be broadcasted to audiences. Once acceptedm the fee colection from the offer can be shared by the creator of the audience with other participants, without any intermediary. All advertising traffic is unencrypted, mitigating the risks of abuse of the network to perform illegal activities.
Being a neutral information transmission protocol, there is no scope for top-down censoring. Nonetheless specialized protocols built on top of Aereum can provide filtered communication or blacklisting mechanisms accordingly.
All members, in all capacities, are geuine stakeholders of the network. They can stake their tokens to network validation pools in order to enhance stability of the network by preventing 51% attacks.
Aero is the name of the currency token of the protocol. One aero is composed of one million oxygens that is the smallest denomination possible. New aeros are created at the blockformation process. Initially the consensus protocol is based on Proof of Work, in order to guarantee proper distribution of tokens. At a predetermined age the protocol shifts to a pre-established proof of stake.
The number of aero created are in conformity with the growth of the network. It is calibrated to be used as a means of exchange within the network, and not to be relied as a long-term medium of value storage. In principle unlimited units of aero can be created as the monetary base grows along with activity in network itself. Being cushioned on real economic activity (message exchange and basic advertising) one expects that its value over time to be more stable than other tokens of more speculative kind.
Nodes with direct participation on the network should distribute information about recent blocks under appropriate conditions.
Miners are responsible for blockchain formation, unequivocally aggregating into the chain database all the valid messages submitted to the network. They collect the minted coins created on block formation and clearing fees for the processed messages. Details about mining protocols will be established in appropriate time.
Since the purpose of the network is communication, if it is succesful, it must be capable of processing hundreds of millions or even billions of messages per day. This requiremente poses relevant burden on the infrastructure that must be aleviated by requirent as minimum blockchain memory as possible. We thus expect the competitive fully distributed behavior of nodes to keep track only of recent activity and general information like wallet content, valid subscribers, valid audiences, etc.
The relevant history of the blockchain should be an economic activity of intermediaires that will offer services to end users. These services can incorporate things like wallet and crypto management, timeline indexation, timeline algorithms, and so on. This should be pursued on free contractual terms off-network. To facilitate the commercial link between users and intermediaries we invoke the principle of power of attoney by which o token gives right to another token to sign messages in its behalf. The intermediare can enter on a revenue sharing deal with subscribers to share aero due to the later.
On the other hand, as long as the subscriber is in possession of the original cryptographic keys he has the autonomy to cancel within the network the power of attorney at his free will, notwithstanding contractual obligations established off-network under virtual or real jurisdictions.
Blockchain provides distributed timestamping (by epoch of block formation) and unique formation of messages databases.
Specification for the format, rules and validation for blockchain formation will be provided.
Advertising is the link between the real economy and the digital network. Within Aereum advertising is an act by which a content creator redistributes to its audience content created by the advertiser and recieved in return Aero tokens. Part of the tokens collected from the advertiser is also distributed (uniformly?) to the members of the audience. This resource will provide digital resources for the less active members of the community to pay for the associated costs.
There are only two kind of messages valid for the block chain.
The first one, is only valid for the genesis block and defines
Genesis:
Token
Wallet Token
IP Address
Epoch=0
Token becomes an acceptable author. Wallet token receives 100 Aero. IP Address is a valid IP Address to a functioning node for the network.
All subsequent messages should be eith an Aero transfer
Transfer:
From Wallet Token
To Wallet Token
Value
Epoch
Signature by From Wallet Token (Private Key) of the above
or a general message
Message:
UUID
Author Token
Message-Type
Message-Data
Publishing Fee:
Publishing Fee UUID
Wallet Token
Value
Signature by Wallet Token (Private Key) of the above
Epoch
Power of attorney Token
Signature either by Author Token (Private Key) of the above or
by the valid power of attorney token
Signature by Wallet Token (Private Key) of the above
Author Token should be a token associated to a valid subscriber (see bellow). A message should not be incorporated into the block chain if it is old enough (proposed epoch less than a certain number of epochs prior of the newly formed blockchain), the any signature is invalid, Message type is invalid, there is not sufficient resources in the wallet or, finally, Message-Data suprpases a certain limit. Power of attorney token should refer to a valid non expired and not revoked power of attorney message in the block chain (see bellow).
A new block cannot contain repeated messages.
A subscription request
Subscribe:
Caption
Subscriber Token
Details
Once incorporated into the blockchain the subscriber token is eligible for authoring new messages (not allowed in the same block nonetheless). Since by construction any message must have a valid author, subscription is only on an invitation basis. The first subscriber should be encoded in the gensis block by the unique Eve message. The caption must be unique on the blockchain. Only one message should be accepted for a caption string.
Details nonetheless can be modified by a request
About:
Details
only to be accepted if the message Author token is the same as the subscription token.
Audiences are created like
Create Audience:
Token
Description
If a valid subscriber is willing to be incorporated into an audiencea request to follow audience should be submitted in the form
Join Audience:
Audience Token
Expire Epoch
New members are added to the audience, or existing members are removed from audience by
Audience Change:
Audience Token
Add: []Follower
Remove: []Follower
Details
where
Follower:
Valid Subscriber Token
Encryption by the Subscrber Token of the Private Key of the Audience Token
The message should only be accepted if every new follower can be traced back to a Join Audience request. Changes in audience can only be performed by the same author that created the audience.
The protocol ensures that a follower is capable of seeing the Tokens of all the other followers in the audience.
The follower can request to be removed from an audience by
Withdraw Audience:
Audience Token
This is only to be processed if the refered audience includes the message author.
An advertising offer is a message of the type
Advertising Offer:
Offer Token
Audience Token
Content-Type
Content-Data
Advertising Fee
Expire Epoch
Signature by Advertising Wallet Token (Private Key) of the above
Expire Epoch must be greater than the epoch associated to the message. Advertising Fee will be withdrawn from fee message fee wallet upon valid acceptance.
The message to deliver content is of the form
Content:
Audience Token
Null or Encryption by audience token (private key) of a content key
Content-Type
Content-Data or Encryption using content key of Content-Data
Null or Advertising Offer Token
The content can be public or encrypted.
If the content reclaims an advertising offer the message is only valid if there is an advertising offer with expire epoch before current epoch and content type and content data are equal to the same information provided by the advertising offer.
Finaly power of attorney is granted by
Grant power of attorney:
Power of attorney token
Expire Epoch
Power of attorney will allow the respective token to sign messages on behalf of the author of the message granting the power of attorney, valid until a expire epoch. The power only becomes effective after the message is incorporated into the blockchain.
In order to revoke the power of attorney before the expire epoch a message must be submitted in the form
Revoke power of attorney:
Power of attorney token
The message must be submitted by the author and signed by the author.
The hash function and the public-key cryptography will be specified later.
The consensus mechanism should be able to produce one block per second.
The state of the system after N block is given by
- the wallet, namely a collection of hashes of public keys and strictly positive balances:
wallet == {#[#PK,Balance],...}
- a collection of hashes of subscribers public keys
subscribers == {#PK,...}
- a collection of hashes of power of attorney
power of attorney == {#[#Atuhor PK,#Attorney PK],...}
- a collection of hashes of captions
captions == {#Caption,...}
- a collection of hashes of audience
audience == {#[#Audience Author,Audience Token],...}
- a collection of live audicence requests
audience request == {#[#Request Author,Audience Token],...}
- a collection of live Advertising offers
After each 15 minutes (multiples of 156060 blocks) every validator must clone their state and broadcast to other validators hashes of their state in the following sense.
For wallets, order (little ending 00..., then 10..., then 01... and so one) all hashes with the eight bytes of the 64-bit uint little ending representation of the balances and calculate the hash of the corresponding byte array.For the rest order the hashes and calculate the hash of the colletion. Then calculate the hash of the all the hashes in the order specified in the state section above. Finally calculate the hash of the validator key and the full state hash and broadcast its value as state checksum to the network.
Every validator must check if the state checksum of other validators agree with theirs and with each other.
Contrary to monetary blockchains, for the volume of traffic expected by a social network, the concept of a full node operating with the entire block chain is not applicable. There must be nodes specialized in specific tasks.
We will present here some estimates about the hardware needs of different kind of nodes with the network performing at the order of magnited of Twitter scale:
- 200 MM Authors, Wallets and Power of Attorney
- 1 BN message per day
- 500 follower per Author audience on average
Thse are responsible for the validation of incoming mesages and block formation. At the bare minimum they have to check is authors are valid, if power of attornment is valid, if signatures are valid, if wallets are compatible with messages, and finally if someone follows someone else under an audience.
These nodes only needs the current state of those variables. The history of the blockchain is not relevant for validation.
For performance reasons, at least Author Tokens, Power of Attorney Tokens and Wallets must be kept on memory. At 200 MM users, and assuming a hashing of 32 bytes, there need to be allocated 200 MM * (3 * 32 bytes for tokens + 8 bytes for wallets + 8 bytes of hash table memory overhead). This gives aroung 20Gb of memory.
Audience is particularly tricky. In order to store 200 MM * 500 followers as 32 byte hashes consumes 3TB of storage. This is not viable for memory but completely viable for SSD, even with sizebla overhead for a fast data structure that works on disk.
Once all the details of the protocol are nailed down estimations for the hardware, networkinging and storage resources to keep the network functioning will be provided together with an assesment of its stability, its solidity and its performance.