enabling senders to pay a transaction fee reduces spam transactions, incentivizes node operators to be online to validate and store transaction data, influences the speed and scale that transactions propagate through the network and provides opportunities to architect additional features to increase the economic activity supported by the protocol.
unlike blockchains, where miners construct blocks of transactions and collect a batch of fees from the transactions included into the block, in a decentralized DAG it is unknown which node will earn a transaction fee. trying to determine which node will do work, then paying them a transaction fee based on the quality of their work would require a complex system of back-and-forth negotiations to update the transaction in question or a cascading amount of transactions with endless fee transactions that require more fee transactions to validate.
although millix nodes store data that is relevant to validate their own balances, and are obligated to store network transaction data in an assigned shard, there are edge cases where historical data needed to validate transactions could be unavailable or inefficient to find.
for a variety of reasons, it is preferable that nodes sending transactions be online. verifying whether nodes are online en masse is not a simple or reliable operation.
if an invalid transaction is submitted to the network, many nodes would perform duplicate, useless work searching for supporting data only to all independently conclude that the transaction is invalid. this is inefficient in the best case and forms an attack vector on the network in the worst case.
in addition to node operators storing unexpired transactions and transaction assigned to the shard they are obligated to support, they are also encouraged to store the history of transactions needed to validate their balance.
force senders to connect to a random online node as a proxy node, send it the new transaction and as much of the supporting data possible and pay the node to act as a proxy that pre-validates and submits the transaction to the network on the sender's behalf. proxy nodes do not contribute to trust, they are only used as an administrative requirement to submit transactions to the network.
sender constucts transaction with inputs, recipients and amounts to be sent.
sender selects a random node from a list of nodes that recently transacted on the millix network. this is the proxy node.
sender submits an unsigned transaction payload with proposed transaction fee to proxy node.
if proxy node accepts proposed fee, proxy gathers the required transaction data to validate the transaction and send proof of work to the sender.
the sender verifies the proof of work and sends the signed transaction to the proxy node.
if the proxy node validates the transaction it collects the fee and propagates the transaction to its peers.
proxy node notifies the sender that the transaction was validated and propagated.
the peers that are connected to the proxy node perform work to validate the transaction, knowing that the data required for validation is hosted by the proxy node at a minimum. this reinforces that relevant data for a current transaction exists, renews and spreads on the network.
if nodes can’t validate the transaction all of it’s outputs, including the transaction fee to the proxy, are invalid.
senders can explicitly configure the size of the fee they propose to proxy nodes. the millix client is also able to suggest an appropriate fee amount based on current network fee prices. nodes are also able to configure the minimum fee they are willing to accept to act as a proxy node.
nodes that are configured to maintain connections to many peer nodes may decide to configure a higher proxy fee minimum because their network connectivity accelerates the speed at which they can propagate transactions. nodes that are configured to support many data shards may configure their fees to represent the each with which they can locate historical transaction data needed to validate new transactions.
millix is an open source cryptocurrency project. millix is fully decentralized, designed for simplicity, transacts at very high speed and very large scale.
work began on the project in spring of 2018 by a diverse group of developers and business professionals. their motivation to create a cryptocurrency protocol with the use case potential of millix came from their backgrounds building:
social network platforms
content management systems
e-commerce systems
data distribution systems
online financial services
communication services
affiliate marketing
manufacturing and logistics operations
gaming platforms
accounting and legal practices
fundamentally, there was a recognition that
which influenced the following set of first principles:
currencies should not be created with debt
currencies should operate at infinite scale
the cost of securing value can't exceed the value it secures
a currency's market value should be proportionate to its fundamental value
participants that increase fundamental value should be compensated
currencies should function without carrying the weight of previous transactions
currencies should work the same throughout the spectrum of transaction values
modern currencies should be at least as simple to use as primitive currencies
simplicity at the edge is only possible with equal simplicity in the foundation
to the extent there is an inverted correlation between utility and a store of value, millix is not intended to compete with the use case or feature set of blockchain projects. the utility that comes from scale and speed has been prioritized, leading to the principles and methodologies described above.
learn more: meet the millix team
case study: the speed and scale of millix
Developers: millix certification for technical and non-technical careers
the total allocation of 9,000,000,000,000,000 mlx (nine quadrillion millix) were created in a genesis event on January 20th , 2020. millix is not being offered directly for sale. instead it will be distributed to participants who support and improve the millix ecosystem.
participants running millix software constantly receive millix for performing protocol related tasks that improve the millix ecosystem, such as storing transaction data and verifying transactions.
the economy is envisioned to allow any participant to incentivize any computing activity by any other participant via fees.
unlike blockchain cryptocurrencies, millix is built on the logic of Directed Acyclic Graph (DAG) for transaction speed and capacity that increases as more transactions and users are added.
millix is original work and was not built on a copied code base of existing work. millix has no points of centralization. millix has no designed bottlenecks. millix has no hierarchy of participants of capabilities. millix data is natively sharded.
learn more: how does millix data sharding work
learn more: the millix toolbox of trust
learn more: how do transactions work
learn more: how do transactions get verified
the initial millix road map consisted of the following themes:
base organization and functionality
connecting millix protocol to machines for large scale transactions
large scale transaction speed and storage
a community of earning
store and own your personal data
developers: contribute to the millix project
millix is available to download for windows, mac, and linux at millix.org/client.