General
What is the xx network?
The xx network is a global network and blockchain with an unprecedented combination of speed, privacy, security, and scale. The xx network will support messaging, payments, and dApps for users around the world.
The xx network was designed in response to growing public concern for user privacy as well as the emerging threat of quantum computing. The Elixxir cMix network layer provides groundbreaking privacy and security by shredding user metadata. Praxxis provides a denominated coin structure that breaks payments into individual coins to provide privacy, and distinctive hash-based cryptography, which is secure against attacks from current nation-state adversaries and future quantum computers.
What is the difference between Elixxir, Praxxis, and the xx network? How do they all work together?
-
Elixxir is the name of the team and project implementing cMix, software that shreds metadata and ensures communications privacy for the xx network and xx coin.
-
Praxxis is the name of the team and project implementing the quantum-secure digital currency, blockchain, and consensus technology used by the xx network and xx coin.
-
The xx network is the decentralized network and blockchain that will run on nodes using both Elixxir and Praxxis software.
What is the network architecture and relationship between Elixxir, Praxxis, and the xx network? Are there separate nodes and networks for the xx network, Elixxir, and Praxxis, or are they all part of one network?
The xx network is the single network which is comprised of nodes running both Elixxir and Praxxis software. Elixxir implements cMix, which is the private communications protocol. Praxxis focuses on digital currency and consensus.
What is the handful of key technical innovations that the xx network introduces?
Elixxir
-
While cryptography provides users with the benefits of security, this security has traditionally come at the cost of time-consuming calculations.
-
Elixxir nodes precompute the cryptography for the upcoming messages so that when it’s their turn to process a new batch, they can do so extremely quickly. Since nodes have open time scheduled between batches, they can spend that time interval running precomputations so that they will have a head start on the next batch.
-
The time savings for a system using precomputations are substantial. A mix network built with the same cryptographic and adversarial assumptions would be 100x or more slower without precomputation.
Praxxis
-
A new scalable quantum-secure consensus with linear authenticator complexity, linear transaction verification complexity, and constant-size proof of block finality.
-
Compact quantum-secure group signatures.
-
Method for initializing and maintaining quantum-resistant, trustless authenticated channels between nodes and committed randomness per node, which delivers unmanipulatable, unpredictable network randomness.
-
New quantum-resistant multi-sig coin and wallet cryptographic structures.
Who are the nodes on the alpha?
The xx network public alpha consists of eight nodes run by independent operators, and represents the first public demonstration of cMix, the pioneering transaction network that shreds metadata and provides unprecedented consumer privacy and security. The xx messenger runs on the public alpha, as well as the ArrowSDK program. Currently there are eight nodes operating on four continents.
Who are the nodes on the beta?
A community-driven node selection process for the BetaNet ran earlier in 2019. 870 applications were received from more than 80 countries . After a public comment period for community review, 600 node operators were selected to be part of the BetaNet.
Who will be the nodes on the MainNet xx network?
There will be a single MainNet network called the xx network. The partners listed above are running nodes in the AlphaNet. The Betanet nodes will be those who were selected through our public selection process run last year. Nodes for the MainNet will be chosen in an unpermissioned process starting with the launch of the MainNet. More details will be published soon.
How are the nodes incentivized?
MainNet nodes will be incentivized via fees received in the native token of the xx network. A document with more information will be published soon.
Is the alpha network a version of xx network, Elixxir, or Praxxis?
The xx network alpha implements the Elixxir cMix protocol as well as components of Praxxis node identity.
How has the community responded in support of the xx network since Elixxir and Praxxis were first announced?
First, we’ve had wonderful support from the node operator community. The BetaNet node selection process ran from January through June of 2019. Elixxir first solicited community input on selection criteria via a questionnaire that received more than 500 responses. The resulting node application received 870 applications from more than 80 countries around the world. The high quality of these applications led Elixxir to select 600 node operators for the BetaNet.
Second, smartphone users of all types have been downloading the xx collective app, which is available on iOS and Android and currently has over 4,500 users on the access list. The xx collective is the community for Elixxir and Praxxis and the app allows users to find out about xx collective events and keep updated with blog posts, news features and videos.
The xx messenger has been released and members of the public can gain access via the xx collective access list. We are onboarding users as we test the features and capabilities of the xx network alpha, and expect to have several thousand users testing the messenger by the end of the month.
What is the timeline and roadmap for Elixxir, Praxxis, and the xx network?
-
September 2018: Elixxir announced, internal AlphaNet demonstrated
-
January 2019: BetaNet node selection process begins
-
May 2019: xx collective app released
-
June 2019: BetaNet nodes announced, with 600 selected
-
June 2019: ArrowSDK developer program launched
-
August 2019: Praxxis announced
-
September 2019: xx network alpha goes live
-
November 2019: xx messenger released via the xx collective app
-
Early 2020: xx network BetaNet goes live
-
Late 2020: xx network MainNet goes live
Elixxir
How does Elixxir's mix network differ from ring signatures which mix inputs?
Ring Signatures are similar to Group Signatures, a concept developed by David Chaum and Eugène van Heyst in 1991 . First, ring signatures are not quantum resistant. Second, the anonymity set of the ring signature in current platforms is limited to 11, while the xx network will use an anonymity set of at least 1,000 (the xx network alpha is already running batch sizes of 1,000).
Is Elixxir the messaging app, or the network underlying the messaging app?
Elixxir is the name of the organization and project building the privacy layer for the xx network. The messaging app is the xx messenger, and users can access the messenger via the xx collective smartphone app.
How do consensus and block production work in Elixxir?
Elixxir does not do consensus or block production. Elixxir produces a batch of anonymized payloads which are the input to Praxxis consensus. The Praxxis consensus is new will be described in detail in a forthcoming whitepaper; we briefly describe our consensus in the Praxxis section below.
What is Prelixxir?
Prelixxir is the former name of the community app launched earlier this year. It has since been rebranded as the xx collective, the global community for the xx network, Elixxir, and Praxxis.
The xx collective smartphone app acts as our community portal and allows users to participate in the community by keeping updated on xx blogs, news features and events and allows users to access the xx messenger. There are currently over 4,500 people on the access list for the xx messenger.
How does Elixxir work as a smart contract/dApp platform?
The smart contract and dApp platform is an integration between Elixxir and Praxxis technologies and is currently under development. More detailed information will be released soon.
How does latency within the Elixxir messaging app on the AlphaNet compare with that of traditional messaging apps like Facebook or private ones like Signal?
Other messaging solutions typically range from 0.1 to 0.6 seconds, or potentially longer depending on how they implement notifications. The xx network alpha currently takes roughly 6 seconds (5 for precomputation, 1 for real time). Once we move to BetaNet, message latency will fall to roughly one second. Messaging on the xx network offers performance that users will find nearly indistinguishable from platforms like Facebook Messenger and Signal, while vastly improving privacy protection.
Haven't mixing networks and technologies like onion routing been around for some time? What are the key differences between xx network/Elixxir and these technologies? Is it precomputation?
The key difference between cMix and previous mix networks is precomputation and its impacts on the network architecture and design. Most mixing networks and their cousins require real time public key operations to re-encrypt payloads. Since batches of operations have to be done together in a traditional mix network, the long delays of public key operations result in networks with very poor performance that make them unsuitable for most consumer use. To avoid these performance limitations, onion networks (a cousin of mix networks) and poisson mix networks use a random delay, rather than actually mixing data together within nodes, which offers weaker protection against adversaries. True mix networks assume a global adversary while other systems assume an adversary with more limited capabilities.
Elixxir overcomes the performance challenge by using precomputation to do all the heavy computation beforehand, allowing the network to operate solely with fast one-time-pad-like operations in latency-critical parts of the pipeline. Unlike onion routing networks and poisson mix networks, this approach allows for stronger privacy properties that withstand a more powerful global adversary, while providing equivalent or better performance characteristics.
Praxxis
What is Praxxis?
Praxxis is a digital currency and a consensus protocol underpinning a full-stack blockchain. Praxxis technology will be implemented in the xx network and xx coin, in combination with Elixxir technology, to create a global network and blockchain with an unprecedented combination of speed, privacy, security, and scale.
Praxxis has been designed and developed by WBM Corp. Founded by David Chaum and led by William Carter, WBM Corp. is one of the first companies officed in the Cayman Enterprise City in the Cayman Islands. Carter is a computer scientist with an extensive systems design background gained working in the blockchain space, in optics R&D, and earlier at JPL in Pasadena. The WBM team is made up of cryptographers, developers, operational personnel, and marketing professionals. Early work on the Praxxis chain was conducted at Privategrity Corporation in the Los Angeles area.
How does Praxxis blockchain technology work? Is this blockchain distinct from Elixxir?
The Praxxis blockchain uses a novel consensus mechanism inspired by the Byzantine Fault Tolerance (BFT) family of protocols and optimized to be the first scalable quantum resistant blockchain by achieving linear authenticator complexity in block producing rounds using quantum resistant signatures. The only other consensus protocol to achieve linear authenticator complexity is Libra’s HotStuff protocol, which uses non-quantum-resistant Boneh-Lynn-Shacham (BLS) signature aggregation.
In the xx network, all messages that are processed by Elixxir are committed to on the Praxxis blockchain. Any of those messages which are token or wallet transactions are verified and committed by Praxxis consensus and added to the Praxxis blockchain.
Explain how Praxxis uses unlinkable transaction trees?
Before reaching Praxxis consensus, all transactions are stripped of metadata by Elixxir, unlinking them from any data which might identify the sender or recipient of the transaction. Once received by Praxxis, these unlinked transactions are compressed into a state update data structure by the block producer. The state update is a merkle tree of all the transactions processed in a given round, without signatures. It may be viewed as a list of created and destroyed tokens, and updated balances of wallets. The state update can be executed by any node, in order to update its local version of the ledger. This way, together with the block and its proof of finality, any node in the network that wasn’t part of the endorser set can update the ledger state without needing to see any transactions.
Is Elixxir used for Praxxis transaction and block broadcasting? How else do they work together?
Technology developed by Praxxis and Elixxir may be combined in the xx network to provide unprecedented metadata protection to dApps and peer-to-peer digital payments, with each technology fulfilling complementary but separate roles:
Elixxir
-
Provides anonymous batches of ordered transactions for each round of consensus
-
Provides anonymous channel for transaction receipts
Praxxis
-
Provides rapid, quantum-resistant consensus to execute Elixxir and dApp transactions, maintain blockchain ledgers, and manage governance
-
Provides unmanipulatable randomness for dApps and Elixxir scheduling
By having the xx network combine the two technologies, Elixxir can be seen as a metadata-unlinking communications layer for Praxxis, which allows clients and dApps to submit private transactions to the Praxxis blockchain and receive proof of finality over an anonymous Elixxir return channel.
Elixxir Transaction Batches
Elixxir’s privacy protections rely on batching messages before mixing them, ensuring a large anonymity set to protect against adversaries monitoring the network. In addition, all Elixxir team nodes who process a batch of messages must agree that the batch hasn’t been modified by a team member before they are decrypted and delivered in the group open phase. These ordered batches of messages are an ideal input for a blockchain consensus mechanism. Praxxis consensus can access these batches and process the various message types into the blocks it produces every round.
Payments
Payment transactions directly modify the ledgers stored in the Praxxis blockchain and are verified and committed via Praxxis consensus. These transactions have all been stripped of metadata by Elixxir and utilize the Elixxir return path to provide anonymous proof that a transaction has been finalized on the Praxxis blockchain.
Communications with and between smart contracts and users
Messages between clients (both users and dApps) are generally end-to-end encrypted when a batch is delivered and are not directly processed by Praxxis consensus. They may, however, be committed to on the blockchain by organizing all such messages in a batch into a tree and including the root of the tree on the block. By providing a merkle-proof that the transaction is included in a tree root on the blockchain, the network can prove to clients that a specific message was successfully delivered by Elixxir.
cMix & xx network
Explain how precomputation works? What are the public key operations that are being removed or optimized?
The mechanics behind cMix precomputation are formally described in this paper. As our CEO David Chaum first described here in 1981, traditional mix networks have the sender encrypt their message payload with node public keys in order for the nodes to decrypt them during the mixing process. Because the entire contents of the mix must be secret, all operations must be completed before messages are sent to the next node for operation. As a result, the latency of a single message in a batch is the sum of time it takes for all public key operations for all messages in the batch on all nodes. Given that public key operations are relatively slow, traditional mix networks either have high latencies or low batch sizes which limits anonymity or functionality. Precomputation allows the network to agree on masking keys before messages are received. Along with symmetric keys established between the clients and nodes beforehand, this allows the real-time, latency-critical portion of the operations to be conducted entirely through modular multiplication, which acts very similar from a cryptography and performance perspective to one time pads. This brings individual operations down from tens of milliseconds to just microseconds on node CPUs.
In practice this means that all modular exponentiations are done beforehand in the precomputation and the realtime only contains modular multiplications.
How much does each node know about the operations of other nodes? Do they know each other’s shuffle?
No, each node’s shuffle is hidden and private. This is a critical component required for cMix’s security properties. The specific construction used in the precomputation uses an ElGamal-based partially homomorphic scheme, which is only homomorphic for modular multiplication under the same cyclic group. The same node which generates and multiplies the keys for later use removes the homomorphic encryption used to mask their operation, thereby allowing their specific keys to be included in the template without revealing the nature of their inclusion. Proof of these properties are in the peer-reviewed cMix paper in section 7 starting on page 15.
Isn't homomorphic encryption still fairly immature and non-performant? If so, how does precomputation achieve the performance necessary to make cMix fast enough?
Fully Homomorphic encryption is an encryption scheme under which the contents of many different types of operations can be masked by the encryption. This holy grail of the field has been finally achieved in the past few years, although with staggering performance limitations.
Elixxir does not use fully homomorphic encryption. Elixxir uses partially homomorphic encryption. Specifically, an ElGamal-based construction which allows modular multiplication in a cyclic group to be masked by exponentiations in the same group. This scheme only provides homomorphic properties for modular multiplication and is far more efficient.
What is the decryption work that nodes perform? Are they decrypting original user messages?
The client sends a message under multiple layers of encryption. The encryption removed by nodes is encryption destined for the network. You can think of this as a lock on each message that each node must unlock to process messages. As each node removes the encryption from the client, they add addition encryption from the network. There is a layer of best-in-class end-to-end encryption between sender and recipient which the network cannot break.
What is a node team?
A node team is a group of nodes executing the cMix protocol. A team will execute a precomputation and then when it is their turn, process a batch of messages. A team will consist of 5 to 10 nodes, and will disband to generate new teams based on a pseudorandom function. Since there will be many node teams active at a time, each team will be able to complete their precomputations while other teams handle real-time payload processing. This allows the user to only experience the real-time processing as a component of latency.
Explain the pseudorandom function (PRF) and management of the seed for that PRF?
The PRF we use is part of a family of undetectable one-way functions. We require the PRF to meet three conditions:
-
Preimage resistance (aka one-way-ness), meaning than the preimage cannot be derived from the image.
-
Second preimage resistance, meaning that the image cannot be used to derive a different preimage that would yield the same image.
-
Collision resistance, meaning that no two preimages can generate a hash collision.
A first unmanipulatable random seed will be generated when the xx network is initiated, and every subsequent block of the xx network will generate a new secure and reliable random seed.