millix

frequently asked questions


Q. what is millix?

Ans. millix is an decentralized cryptocurrency built from the ground up using first principles of speed, scale, energy efficiency and simplicity.

Q. is millix a blockchain or an erc-20 currency?

Ans. no. millix is neither a blockchain, nor is it based on the erc-20 (ethereum request for comment) standards. millix it is a directed acyclic graph, known as a DAG or tangle. click here for details about how millix is designed to have the benefits of a blockchain without the scale and speed limitations of a blockchain.

Q. is millix a clone or copy of another project?

Ans. no. development work on millix began in 2018. other DAG projects such as iota, byteball, and nano were deemed to be limited by centralization which affected speed. as a result, millix was built from the ground up from first principles and is an original code base. no compromises were made to the architectural and functional vision.

Q. what is a direct acyclic graph (DAG)?

Ans. a DAG is a high scale, high speed, energy efficient architecture for network participants to exchange data with peers. DAGs send and store data with many paths and branches of data flow and peer relationships. a DAG is a one way branching graph that does not look back upon itself. for general information about DAGs click here. traditionally, cryptocurrency DAGs were compromised by centralization, consensus and known state of the network. click here to learn how the millix project has solved these compromises with architectural improvements.

Q. what technology was used to build the millix software?

Ans. millix uses a sqlite database to store data, jscript for logic, and nodejs for network communication. as the millix code is open source, anyone can create a wallet application to interact with the network using different technology than the official millix wallet. in theory, someone could also modify themillix protocol code to use MySQL or another database engine to replace sqlite.

Q. is any aspect of the millix protocol centralized?

Ans. no. there is no hierarchy of nodes, node operators, or validators. the software, permissions, and features used by the core team are identical to those available to all participants. any node operator can create transactions, validate transactions, achieve consensus, create custom data shards, access data and participate on the millix network without permission.

Q. what is unique about millix?

Ans. millix is unique in its decentralization, in the way it validates transactions, and in the reduced network usage allowed by hibernation and reduced storage capacity as it is not necessary to download the entire graph. additionally, millix was specifically designed to be a platform upon which applications and processes would be built.

why did we create millix?

Q. why did we create millix?

Ans. we believed there was a need for a small, lightweight cryptocurrency which allowed users to transact quickly and with little friction. It was designed to be a simple way for humans to earn and use a cryptocurrency in their everyday lives, as an increasing number of humans are excluded from or limited in participating in the modern ecosystem. its ability to transact in micro amounts at speed also lends millix to use in machine to machine or internet of things applications.

Q. what are the first principles for millix development?

Ans.millix was built from the ground up from first principles and is an original code base. as a result, no compromises were made to the architectural and functional vision.
millix was designed to operate on low-power computing devices with minimum energy consumption.
millix was designed to satisfy the scale of machine-to-machine transactions.
millix was designed to be simple and accessible upon which any developer could build their own projects.

Q. when was millix created?

Ans. development on millix began in February of 2018. the genesis event occurred on January 20, 2020.

Q. who built millix?

Ans.millix was designed and built by the core team members listed on the millix foundation team page. since the genesis event, additional team members have been added to the team. millix is an open source project and anyone can contribute to it.

how does one get millix?

Q. how was millix generated and distributed?

Ans. all the millix that will ever exist was created in the genesis event on January 20, 2020 and was distributed to the initial development team without restrictions or limitations. millix was not made available for sale in an offering. millix was not mined.
in the same way that bitcoin has a fixed maximum of coins (some issued, some pending issuance), which are distributed from the bitcoin protocol to bitcoin miners over time, millix has a fixed circulation that will be distributed over time by the initial developers to millix participants that add value to the network. participants who earn millix include not only developers, but also users of millix and millix based applications.

Q. how do i earn millix?

Ans. you can earn transaction fees by running the official millix software. click here to download the millix software for Windows, Mac or Linux. other companies unassociated with millix.org are known to allow their users to earn millix, including:
tangled.com
the tangled browser is an internet browser similar to google chrome that is integrated with the millix network. the tangled browser contains a millix wallet and can operate a millix node in the background, which earns transaction fees if connected to the network as a public node. advertisers pay users millix for each initial ad impression on the user’s browser.
bitcoinwallet.com
bitcoinwallet.com has announced its intention to give millix to its customers.
fiatleak.com
fiatleak.com has announced its intention to give millix to its users and facilitate social transactions between users.
a variety of social media, advertising, data storage, media and community based projects are known to be in development using millix as their chosen cryptocurrency and will be listed here when available.

Q. can anyone develop or build projects using the millix network?

Ans. yes. this is encouraged, and may even be funded or supported, click here to learn more. additionally, click here for developer guides or click here to request assistance from the millix team of developers.

Q. how can I buy or sell millix?

Ans. millix can be bought and sold at millix.com. other exchange operators are able to add millix to their trading platforms at any time using the open source millix code base and developer documentation.
millix has not and will not be offered for sale by the official millix project at millix.org. all the millix that will ever exist was created in the genesis event.

How does millix work from a user’s perspective?

Q. where can I store my millix?

Ans. you can store your wallet using the millix wallet software ( click here to download) or on a hosted wallet service like millix.com.
additionally you can use the tangled.com internet browser to store millix. the tangled browser is integrated with a millix wallet and is eligible to earn millix by being shown ads or by validating transactions in the background.
millix.com and tangled.com are not associated with millix.org.

Q. how do I backup my millix wallet?

Ans.when you create your wallet using the millix wallet software ( click here to download) a list of 24 words is generated. these 24 words allow you to restore the private key of the new wallet. store these phrases in a secure location. you can view the 24 words in the file < user folder >/millix/millix_private_key.json. you should have multiple backups of these words and this file.
in addition to backing up your secure phrases, you should also backup the database that contains the transactions you have sent and received. this database transaction file is located at < user folder >/millix/millix.sqlite and the directories and files located in < user folder >/millix/shard/.

Q. is there a millix network explorer?

Ans. yes. you can view transactions, addresses and the nodes operating on the millix network at millix.com.

Q. how can i engage with the millix community?

the millix team encourages bug reporting, new ideas, and new millix related project development. you can contact us here.

tangled.com, an unrelated company is one of the early adopters of using millix as an underlying cryptocurrency for social activities. learn more at tangled.com. 

how does millix work from a network perspective?

Q. how do millix transactions flow through the network?

Ans. transactions are sent to a random millix node which acts as a proxy. the proxy reviews the transaction’s history to determine that the transaction is valid. if the proxy does not have the transaction’s history it requests it from the network. if the transaction is valid: funds are available and there are no double spends, then the proxy propagates the transaction to nodes on the network for validation and storage.
for this work, the proxy receives the associated transaction fee.
Click here for more details on data propagation. click here for more details on the use of proxies.
how are millix transactions validated

  1. a sender creates a transaction and a node is randomly selected as the proxy
  2. the proxy checks the transaction’s history and if it is valid the transaction is submitted to network
  3. nodes on network do their own validation of the transaction’s history and seek consensus from other nodes
  4. once consensus is reached, the transaction stabilizes
  5. after ten minutes the transaction goes into a resting state and hibernates

click here for more details on transaction validation.

Q. how many transactions can millix handle per second?

Ans. unlike blockchain networks or networks with centralized validator nodes, the number of millix transactions that can be processed on the millix network increases as more nodes are added to the millix network. in benchmarks tests using one hundred nodes, millix has processed more than 100 transactions per second. the transactions per second performance increases should increase linearly to the growth of the number of nodes participating on the millix network.

Q. what devices can run a millix node?

Ans.most cryptocurrencies are dependent on massive computing resources to solve the network’s problems. millix is designed to run on inexpensive, low-power devices. in addition to laptops, desktops and server class devices, the millix protocol software has been tested to operate on raspberry pi devices. validating transactions requires no graphics card power, the validation work is done using a local database and is best tuned with CPU and disk I/O speed.
as there is no mining, there is no computing power arms race to earn millix competitively on the millix network. devices used to validate millix transactions don't become outdated or obsolete.
the strategy to increase fee earnings from validating transactions is to configure your node to store more transaction data. this allows your node to examine historical transaction data stored locally without requesting legacy transaction data from the network.

Q. how are transaction fees determined and who are they paid to?

Ans. transaction fees are paid to the node that is randomly selected to be the proxy for submitting the new transaction to the network. the fee is determined by the sender. the millix wallet can suggest an appropriate fee based on an analysis of the fees paid in recent transactions.

Q. how does millix store so many transactions and so much data?

Ans. millix achieves large scale of transactions and stores large amounts of data within transactions via data shards. a data shard is a copy of a database that stores different data than other shards. for example imagine a warehouse filled with fruit. the fruit could either be stored as a single giant pile, or in small organized crates. the fruit crates are like data shards. if you are looking for a specific piece of fruit and you know what crate it's in, finding that piece of fruit is very fast. if you want to move the fruit to a new warehouse, it's easier to deal with small crates than a giant pile.
each millix transaction is assigned to a data shard. each millix node operator is assigned to a data shard and is obligated to store all the transactions assigned to that shard. to keep the size of each data shard small, new shards are created and assigned to node operators as transaction volume increases.

Q. what data or NFTs can be stored within a transaction?

Ans. multiple files of any size and type can be attached to a millix transaction. this feature allows users to attach files such as invoices, medical records, messages, videos, json data, private documents etc. the meta data about the files (location, size, type, name etc) are stored as transaction output attributes. the files are encrypted and stored locally on the sender's device. the recipient of the transaction containing the files downloads the files to their device.
the files attached to millix transactions are stored separately from the transaction data that is shared throughout the millix network. these data files are available to, and can be stored by, any millix node but they are only readable by the recipient of the transaction the files are attached to.
the files are encrypted with the recipient's public key and can only be decrypted with the recipient's private key. if the recipient can sends the file to a new recipient, the file is re-encrypted with the new recipient's key.

how does millix work from a developer’s perspective?

Q. what is the difference between a protocol data shard and a custom data shard?

Ans. each millix node is assigned a shard and is obligated to store all the transactions associated to that shard. this assures that a copy of every transaction ever processed on the millix network exists on a node.
custom shards allow any node to create their own shard to contain transaction data or transaction_output_attribute data. this extends the capability of millix to be able to store large pieces of data with a transaction or to act as an economic incentive to store data redundantly across multiple nodes. for example, an organization can create and host custom shards to store their transactions on known nodes operating at performance levels that meet their specific operational goals.
for example, a manufacturing facility that uses millix transactions for machines to communicate with each other can create a custom shard to store their specific transactions using nodes on their network. they can transact without fees within their custom shard environment, and only need to engage with the millix network when they move funds into and out of their environment. this allows very fast transaction settlement and puts them in control of the transaction data backup and storage.
click here to read more about data sharding.

Q. how does millix prune data?

Ans. all new transactions sent to a node from the network are stored on that node’s shard zero. the node’s own transactions are permanently stored in its shard zero. transactions that occur on the shard assigned to that node are moved from zero to the assigned shard. after ten minutes, the time it takes for a transaction to enter hibernation, transactions that are not the node’s, are pruned from shard zero. addresses and public keys are not pruned from shard zero. If a node is not connected to a peer in the past 60 days, the peer is pruned from the node’s shard zero.

Q. what is the risk of 51% attacks on millix?

Ans.the biggest concern with 51% attacks on millix is that each data shard is subject to its own attack. a data shard that is not supported by a sufficient number of nodes could be overtaken by a bad actor with many nodes assigned to that node. for this reason, new protocol data shards are not created unless existing protocol data shards have a sufficient number of nodes assigned to support them.
click here to read more about data sharding.

Q. how does millix handle double spends?

Ans.millix does not guarantee that double spends do not happen prior to hibernation, millix does guarantee that double spends will be detected. doubles spends can happen in the first 10 minutes of a transaction's life, prior to the transaction entering hibernation.
when a double spend is detected, the transaction with the earliest validation date is determined to be the winner. if the validation date is the same, the transaction with the smallest transaction ID (which has a random probability) wins. the recipient of a double spend will see the funds removed from their balance.
best practice is to keep your millix node online until all received payments have entered hibernation.

Q. how do millix transactions get validated using consensus?

Ans.the first step for a node that has received payments is to gather and analyze the history of the transactions that funded the payment. next, the recipient node selects a number of random peers for consensus, each of which works to validate the transaction. 66% of the randomly selected nodes must agree that the transaction is valid. if they agree, the recipient node considers the transaction to be valid. the validation decision from the peer nodes overrides the recipient node's analysis.
the transaction is pending until all the nodes required for consensus have done their validation work. If they do not agree the transaction is considered invalid and is removed from your balance.

Q. what cryptography does millix use to sign and secure transactions?

Ans. millix uses the same cryptography as bitcoin to sign and secure transactions: secp256k1 elliptic curve.

Q. how does millix achieve a known state of the network without using a blockchain network?

Ans. traditionally DAG based cryptocurrencies have struggled to have a network state. millix achieves a known state of the network by hibernating transactions that are 10 minute old. once transactions are hibernating they cannot be altered. as a result, the state of the network is known as of 10 minutes ago.

Q. why are millix transactions sent to the network through a proxy node?

Ans.proxy nodes reduce chatter on the network. millix payments are sent to the millix network by selecting a random node on the network and paying it a transaction fee to act as a proxy for submitting the transaction to other nodes. the proxy node is paid to be the first node to validate a new transaction. validating transactions requires requesting a copy of the transactions used to fund the transaction. while a copy of the transactions may be found on many nodes on the millix network, it is a high probability that the sending node has a copy of the transactions. when the copy is provided to the proxy node, it is a high probability that at least two nodes have a copy. subsequent nodes that validate the transaction have a high level of confidence that if they need a copy of the transactions, they can be found on the proxy node. this process adds efficiency to knowing that copies of the transactions exist and where to find them.
in addition, by validating transactions through a proxy node, invalid transactions do not propagate throughout the network. without using a proxy node as the initial validation point, a bad actor could submit millions of invalid transactions to the entire network, and each node on the network could waste their resources working to validate transactions that cannot be validated.

Q. how are proxy nodes selected by the transaction sender?

Ans. when a node attempts to send a transaction it examines recent transactions on the network and selects a random node that participated in recent transactions. the only requirement for selecting a proxy node is that it is online and randomly selected.

Q. how many peer nodes connections should I configure?

Ans. the number of peers that a millix node connects to can be configured. the more peer nodes you are connected to the faster transactions reach you and the more secure your transactions are. the default peer node configuration is 30 inbound and 30 outbound connections. this default is based on testing minimum devices, more powerful machines can connect to more peers. inbound connections represent nodes getting transaction data from your device, outbound connections represent nodes you push transaction data to.

Q. how many peer nodes for consensus rounds should I configure?

Ans.the number of peer nodes required to gain network consensus about the validity of payments that one receives can be configured. the more peer nodes you require for consensus, the more secure your transactions are
the default number of the peer nodes required for consensus is 6. requiring more peer nodes for consensus slows down the speed at which your received payments are validated, but is a good option for processing high value transactions
keep in mind that the number of peer nodes for consensus should not be more than 50% of the number of peer connections you have configured, in other words, if you only allow 10 peer connections you can't configure 6 peer nodes for consensus.

Q. what is a full node cluster valve?

Ans.a full node cluster valve is a group of millix nodes using purposeful settings in the node's standard configurations to efficiently pull in as much transaction data from the network as possible (intake nodes) and provide that data to a group of nodes that aggregate the data for other nodes to read from (output nodes). this concentrates the data received from many nodes into a small number of nodes. no special software is required, only configuration settings of the standard millix software.
the first full node cluster valve was implemented by millix.com to power their network explorer. click here to read more about full node cluster valve configuration.

Q. does millix have an api?

Ans. yes. each millix node hosts an API engine for interacting with it. The API is secured by a self-signed SSL certificate generated by the millix node. click here to for the API catalog and developer guide.

Q. what does it mean when a transaction is in hibernation?

Ans. unlike blockchain networks, DAG based cryptocurrencies have traditionally suffered from a problem called ledger closure. the ledger closure problem means that it's more difficult to know when DAG transactions are no longer able to be changed than blockchain transactions.
millix solves the ledger closure problem by expiring unspent funds' ability to be spent. when a transaction is 10 minutes old it becomes static and goes into hibernation. the funds from hibernating transactions are only available to be spent by the funds owner to themself.
when the funds owner wants to spend funds from the hibernating transaction the protocol first spends the hibernating transaction in a refresh transaction paid to the funds owner. at that point the refresh transaction can be used to fund the new transaction. all of this happens automatically in the background. this solution means layer two services such as millix explorers, wallet services and exchanges only have to monitor millix transactions for 10 minutes before having certainty that they will not change. hibernation is a key to millix decentralization, otherwise the network does not know how far back in time it needs to look.
click here to read more about hibernation and solving the ledger closure problem.

Q. How can a developer contribute to the millix ecosystem?

Ans.millix is a tool which was meant to be used. it was designed specifically as a base upon which developers could build. consider millix as layer one or as a box of legos. it can support file sharing systems, distributed DNS, distributed databases, point of sales, and any number of applications. we have specific projects we would like to see developed, and welcome other ideas or projects, click here to see the lasted in our ecosystem support program.

whitepaper

overview

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

“all activity benefits from trusted
transactions at scale”

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

community: millix certification for technical and non-technical careers

overview

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

“all activity benefits from trusted
transactions at scale”

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

economy

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.

learn more: how can I earn, buy or sell millix?

use case: millix turns unused computer power into income

technology

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

learn more: how does the millix network work

developers: full API documentation and tutorials

roadmap

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

learn more: see the current millix road map with dates

get started

millix is available to download for windows, mac, and linux at millix.org/client.