APPENDICES

Appendix 1: Glossary

This glossary provides definitions of key terms and concepts used throughout this whitepaper:
  • Hashgraph: A consensus algorithm that combines gossip and virtual voting to achieve fast, fair, and secure distributed consensus.
  • Zero-Knowledge Proofs (ZKPs): Mathematical proofs that allow one party to prove knowledge of certain information without revealing that information to other parties.
  • Interledger Protocol (ILP): A protocol for facilitating interoperability and value transfer between different ledgers and payment systems.
  • Smart Contract: Self-executing contracts with the terms of the agreement directly written into code. They automatically execute and enforce the agreed-upon rules without the need for intermediaries.
  • Consensus: The process by which participants in a distributed network agree on the state of the network and validate transactions.
  • File Storage: The capability to store and retrieve files or data within a distributed ledger system.
  • Tokenization: The process of representing real-world assets, rights, or utilities as digital tokens on a blockchain or distributed ledger.
  • U2U Tokens: The native tokens of the U2U Chain platform, used for various purposes such as governance, transaction fees, and access to platform services.
  • U2U Wallet: A digital wallet that allows users to securely store, manage, and transact U2U tokens and other compatible assets.
  • U2U Virtual Machine (VM): A runtime environment within the U2U Chain platform that executes smart contracts written in the U2U Chain programming language.
  • U2U Software Development Kit (SDK): A set of tools, libraries, and documentation that enables developers to build decentralized applications (dApps) on the U2U Chain platform.

Appendix 2: Directed Acyclic Graph

A directed acyclic graph (DAG) is a conceptual model used to represent a series of activities. The graph visually portrays the activity sequence as a collection of circles, with each circle symbolizing an activity. The circles, also known as "vertices," are interconnected by lines referred to as "edges." These edges depict the flow from one activity to another. In a DAG, each edge has a specific direction, signifying a unidirectional movement between vertices. The term "acyclic" indicates the absence of loops or cycles in the graph. Therefore, if you follow an edge from a vertex to another, there is no path to return to the initial vertex within the graph structure.
Directed Acyclic Graph (DAG) Diagram

Why Are Directed Acyclic Graphs Useful?

Directed acyclic graphs (DAGs) serve as valuable representations for various types of flows, including data processing flows. By utilizing DAGs to conceptualize large-scale processing flows, one can effectively organize the different steps and their respective sequencing within these jobs. In many data processing environments, a sequence of computations is performed on the data to prepare it for one or multiple desired outcomes. This form of data processing flow is commonly known as a data pipeline. For instance, sales transaction data could undergo immediate processing to ensure it is ready for real-time consumer recommendations. Throughout the processing lifecycle, the data may undergo several stages, including cleansing (rectifying incorrect/invalid data), aggregation (calculating summaries), enrichment (identifying connections with other relevant data), and transformation (converting the data into a new format).
One essential aspect of DAGs and the corresponding data processing flows they represent is the existence of multiple paths within the flow. This recognition is crucial as it acknowledges the necessity of processing data in diverse ways to accommodate various outputs and requirements. In the provided example flow, a stream of sensor data undergoes processing. Initially, the data is retrieved from the sensors and then segregated based on the sensor type. The data from Sensor X is subsequently aggregated per second and analyzed in real-time. If any critical status is detected, an alert is promptly dispatched. Additionally, the data is stored for long-term preservation and potential further analysis. Another component of this flow involves data originating from Sensor Y, which is currently summarized per minute and stored in the same long-term repository as the Sensor X data.
A stream of sensor data represented as a directed acyclic graph.
To give an example of how DAGs apply to batch processing pipelines, suppose you have a database of global sales, and you want a report of all sales by region, expressed in U.S. dollars. You might first load all data into a processing engine, separate out data by the different currencies, convert the financial figures to U.S. dollars, summarize the data by country/region, then bring all the data together into a final report. And let’s say that the U.S.-only data will be created into a separate report as well. This data flow could be represented by the DAG shown below.
Global sales data represented by the directed acyclic graph.

Appendix 3: Gossip Algorithms

What is Gossip?
In a gossip algorithm, each node in the network periodically exchanges information with a subset of nodes.
This subset is usually the set of neighbors of each node. Every node only has a local view of the network
Objective: each node receives some desired global information, through a certain number of periodically update of the nodes.
Background
Technological: Gossip algorithms are widely used in communication networks which, more and more, are likely to exhibit a social dimension. This knowledge might be exploited for more efficient communication protocols.
Application: analysis of community structure/computer virus, help us to build better networks.
Sociological: Gossip is a basic, simple form of a contagion dynamics. By studying it we hope to gain some insight into more complex diffusion phenomena.
Application: analysis of spread of virus/fake news in an election.
Rumor spreading
Problem: Design an algorithm so that all the nodes receive the rumor as fast as possible.
Solution 1 Initial node sends the rumor to one of its neighbours, and every informed node forwards it to all its neighbours.
• Downside 1: every node needs to interact with all its neighbours.
• Downside 2: every node receives its degree copies of the rumor.
Solution 2 Construct a spanning tree, and transfer the rumor only along the edges of the tree.
•Downside: Failure of links in the tree breaks rumor spreading process.
We need a simple, local, distributed, fast, and robust algorithm for information spreading.
Push protocol of rumor spreading
Protocol (Synchronous model):
• There is a rumor initially located at a node of a network;
• The protocol proceeds by rounds, in which each node only contacts one of its neighbours.
PUSH
Nodes with rumor sends it to a random neighbour.
Properties:
• Nodes only contact with their neighbours; network’s global structure is unknown to each node.
• Robust: Failure of transmission among a few nodes won’t affect the algorithm’s performance.
• The algorithm efficiently sends a rumor to all nodes in the network.
Push-Pull Protocol
Analysis of the Push protocol
Question: How many rounds are needed before every node gets the rumor w.h.p.?
Properties:
Ω(Diam (G)) rounds are needed before every node gets the rumor.
Ω(log n) rounds are needed before every node gets the rumor. Since the number of informed vertices at most doubles after each round.
Theorem: Let G be a complete graph with n nodes. Then, with high probability, every nodes gets the rumor after log n + ln n + o(log n) rounds.
Proof sketch
Analysis on complete graphs
Solution for push gossip analysis:
Integrate:

When t 0 , x n so:

Appendix 4: Understanding Hashgraph Consensus

A hashgraph is a data structure and algorithm that allows for fast, efficient, and secure consensus in distributed systems. A hashgraph network reaches consensus in a unique way that is distinct from how a blockchain does it. The Hashgraph consensus algorithm was invented by Dr. Leemon Baird in 2015. It utilizes a Directed Acyclic Graph (DAG) structure for working of Hashgraph consensus mechanism in distributed systems. The consensus algorithm uses a unique “virtual voting” and “gossip about gossip” protocol to provide fast and secure consensus without needing a centralized authority or high computational power.

Understanding Directed Acyclic Graph

A directed acyclic graph is a data structure consisting of nodes and directed edges between them. A key feature of a DAG is that the edges have a direction, and the graph doesn’t contain any cycles. You can’t follow the edges and arrive back at the starting point.
In DLTs, DAGs represent the history of transactions or events in a network. Each vertex in the DAG represents a transaction or event, and the edges represent the dependencies between them. DAGs are used to represent the state of the network and the order of the transactions.

Understanding Gossip Protocol and Virtual Voting

  • In gossip protocol, when a node receives a message, it signs it and then sends it to a randomly chosen set of nodes in the network. These nodes then repeat the process, forwarding the transaction to a new set of randomly chosen nodes. This continues until the transaction has been broadcast to all the nodes in the network.
  • Nodes can also share information about the votes received from other nodes. Each node maintains a copy of the directed acyclic graph that represents the current state of the network, and each vote is represented as a new vertex (or “event”) in the DAG.
  • The virtual voting process continues in rounds until a consensus is reached on the order of the transactions. Once a consensus is reached, the transactions are considered “committed” and added to the DAG.
  • The above mechanisms allow the nodes to reach a consensus on the order of the transactions by verifying the votes of other nodes with the DAG. This way, the nodes can build a complete picture of the network’s state and ensure everyone is on the same page.

Working of Hashgraph consensus

Gossip about Gossip is a popular concept in networking, where information is spread from one node to another. In the hashgraph, every piece of information, or “gossip,” contains the hashes of the last two people it was shared with. In this way, every node in a Hashgraph network spreads new information and transactions to randomly selected neighboring nodes. These neighboring nodes combine the new information with what they have already received, creating a new event. This process continues until all nodes in the Hashgraph network have the same information.
Gossip about Gossip Protocol in Hashgraph
To understand this concept more clearly, let’s consider an example. Imagine four people named Alice (A), Bob (B), Charlie (C), and David (D), as shown in stage 1 in the diagram above. Bob decides to gossip with David randomly(stage 2). This means that Bob shares all the events that David must be aware of. David acknowledges this and creates a new event at the peak of the previous event (stage 3).
Now, suppose David decides to gossip with Bob again. Bob has now received three events, of which the first two are of Bob and David, while the third is one that David created. (Stage 4). In the diagram above, stage 4 is the state in which the nodes in the network start gossiping, and in time, the nodes start gossiping about the gossip. The end result is – by analyzing the time stamps of the gossip messages acknowledged by the nodes in the system, the system automatically comes to a conclusion about the order of the occurrence of the transactions.
Working of Hashgraph consensus – Virtual Voting
Virtual voting is a way for nodes in a network to decide if a transaction is valid or not. If 2/3rds of the nodes in the network are witnesses for a transaction, it is considered valid. This process happens in multiple rounds.
Virtual Voting in hashgraph
For example, there are four rounds of voting in a Hashgraph network. When a new event occurs, it is associated with one of these rounds. In this example, we will focus on Charlie’s events in each round, labeled as C1, C2, and C3. Charlie doesn’t have any events in the fourth round yet, but he will in the future (stages 1 and 2).
Charlie’s first events are also known as witnesses. To determine if a witness is “famous,” the witnesses in the next rounds need to vote. For example, to determine if B2 is a famous witness, the witnesses in the next round, A3, B3, C3, and D3, need to evaluate whether they are descendants of B2. If they can trace their link back to B2, they will vote “YES” (stage 3).
In the second part of the voting process, the next round of witnesses, B4, will collect votes from the different witnesses but will only count if they meet the “strongly seeing” condition. This means that there must be more than one path for B4 to reach the witness node, and a supermajority, or more than 2/3rds of the population, must be passed. In this case, since the population is 4, the supermajority is 3. The diagram shows that B4 can strongly see A3 and the other nodes till D3. Therefore, B2 is declared as a famous witness. This is how virtual voting works in a Hashgraph network (stage 4).

The philosophy of consensus

Hashgraph’s stroke of genius was looking at one of the fastest and most resilient ways human communication has traveled -which is through gossip. Gossip spreads like wildfire in no time! Using gossip as a blueprint, Dr. Braid created the gossip about gossip protocol behind the Hashgraph algorithm.
Imagine a world where rumors could travel faster than the speed of light – where secrets and gossip spread like wildfire, reaching every corner of the globe in seconds. That’s the world of the U2U Hashgraph network technology. When a node receives a message, it creates an event and records the details in a unique hash. These nodes are like gossipy friends, sharing the information they received and documenting the source. But unlike a group of chatty humans, the U2U Hashgraph network can process an astounding 250,000 transactions per second. That’s faster than the blink of an eye and far faster than most blockchains, which struggle to keep up with a measly 10,000 transactions per second. So the next time you hear a juicy piece of information, just remember – it’s got nothing on the speed of the U2U Hashgraph network.

Benefits of Hashgraph Consensus mechanism

One of the key advantages of U2U Hashgraph’s consensus algorithm is that it uses asynchronous Byzantine Fault Tolerant (aBFT), meaning that no single node or group of nodes can disrupt or manipulate the working of hashgraph consensus process. This makes the network more secure and resistant to interference.
Additionally, U2U’s approach to timestamping transactions is designed to be fairer than traditional blockchains. Rather than relying on a single miner or node to determine the timestamp, U2U uses automated voting to arrive at a consensus among all nodes. This ensures that the timestamps are determined more equitably; therefore, the resulting order of transactions is also considered fair. These features of U2U’s hashgraph technology make it a strong contender in the DLT space.
Wrapping up We’ve covered the principles of the working of Hashgraph consensus mechanism. To sum up, U2U Hashgraph is a powerful technology that has the potential to develop highly scalable applications that can perform well even under heavy loads. Its unique characteristics, including speed, efficiency, and high security, make it an ideal choice for building applications that require these features. As a next-generation blockchain technology, U2U Hashgraph could play a vital role in developing applications that demand the best performance and security.

Appendix 5: Zero-Knowledge Proof

What is Zero Knowledge Proof?

Zero-knowledge Proof is an encryption scheme proposed by MIT researchers Silvio Micali, Shafi Goldwasser, and Charles Rackoff in the 1980s. In this method, one party (Prover) can prove that a specific statement is true to the other party (Verifier) without disclosing any additional information.
Zero Knowledge Encryption makes sure that no one, except you (not even the service provider or blockchain app development agency) can access your secured data.

Example: Kids and Candy Bars

Suppose, two children – Bob and Alice, have received some candy bars from a party. Bob wants to know if Alice has got the same number of candy bars or not. But, at the same time, none of them is ready to reveal the exact number.
So, what they do is that Bob brings four lockable boxes in a room, assuming that the number of candy bars received will be 10, 20, 30, and 40. He labels each box with a value corresponding to the number of candy bars.
Then, Bob keeps the key to the box that defines the number of candy bars he received in his pocket (let’s say he got 30 candy bars) and throws away the keys of all other boxes. And he leaves the room.
Now, Alice enters the room with 4 small pieces of paper and writes ‘+’ on one of them while ‘-’ on every other. Here, ‘+’ denotes the number of candy bars she got, while ‘-’ represents every other value.
She slips the paper piece with ‘+’ sign in one box (let’s say in the one representing 20 candy bars) and ‘-’ in the rest of the boxes. And she leaves.
Now, Bob enters the room again and opens the box whose key is in his pocket. Then, he checks if the box has a piece of paper with ‘+’ sign or ‘-’ sign. If it’s a ‘+’ sign, he realizes that Alice has an equal number of candy bars. While, in the other case, she doesn’t.
As we know that Alice has 20 candy bars and Bob has 30 candy bars, it is clear that Bob will find a ‘-’ sign in the lockable box whose key he has. This will make him clear that they both do not have the same number of candy bars.
At the same moment, Alice will re-enter the room and find a ‘-’ sign in Bob’s hand and she will also come to know that they have a different number of candy bars.
Note: By this method, Bob will learn that they do not have an equal number of candy bars. But, he will still have no clue if Alice has more or less candy bars than him, and vice versa.
Thus, the zero knowledge proof ethereum maintains the privacy of users’ sensitive information, while making a transaction (in this case, the transaction is finding if they have the same number of candy bars or not).

Benefits of Zero Knowledge Proofs (ZKPs)

  1. 1.
    Simple – One of the prime advantages of zero knowledge cryptography is that it does not involve any complex encryption method.
  2. 2.
    Secure – It does not require anyone to reveal any sort of information.
  3. 3.
    Transactions ─ Another assuring benefit associated with ZKPs refers to the shortening of transactions on blockchain. As a result, users would not have to worry about information storage for including compatibility and identity with different types of assets.
While these are the pros of Zero-knowledge proof, the concept has some disadvantages as well. A few of which are:-
  1. 1.
    Lengthy – In the zero knowledge technology, there are around 2k computations, with each requiring a certain amount of time to process. This is the foremost con of going with zero-knowledge proof.
  2. 2.
    Imperfect – The messages delivered to verifier/prover might be destroyed or modified.
  3. 3.
    Limited – The zero-knowledge protocol demands the secret to be a numerical value. In other cases, a translation is required.
With this covered, let’s dig deeper into the technicalities before we evaluate when and how Zero-knowledge protocols can be introduced into the Blockchain ecosystem.
Starting with what are the core characteristics of a zero-knowledge proof.

Properties of Zero-Knowledge Proofs

Zero-Knowledge Proofs Properties

1. Completeness

If the statement is true and both users follow the rules religiously, then the verifier would be convinced without any external help.

2. Soundness

If the statement is false, the verifier won’t be convinced in any scenario (even if the prover says that the statement is true for some small probability).

3. Zero-Knowledge

In both cases, verifier won’t be able to know any information beyond that the statement is true or false.
While the principles of ZKP are covered, let’s talk about the different types of ZKPs a business enthusiast can invest in.

Types of Zero Knowledge Proofs

1. Interactive Zero-Knowledge Proof

In an interactive zero-knowledge proof, a prover performs a series of actions under the mechanism of mathematical probability to convince the verifier of a particular fact.

2. Non-Interactive Zero-Knowledge Proof (NIZKP)

As depicted from the name, Non-interactive zero knowledge proof does not require an interactive process. Meaning, the prover can generate all the challenges at once and verifier(s) can later respond. This restricts the possibility of collusion. However, it requires additional machines and software to find out the sequence of experiments.
Note: It is possible to make a transition from non- interactive to interactive ZKP.
Improving Privacy on a Blockchain

Where to Implement Zero-Knowledge Proof in Blockchain System?

1. Messaging

In messaging, end-to-end encryption is imperative so that no one can read your private message besides the one you are communicating with. To ensure security, messaging platforms ask users to verify their identity to the server and vice-versa.
But, with the advent of ZKP, they will be able to build an end-to-end trust in the messaging world without leaking any extra information. This is one of the prime applications of zero-knowledge proof in the blockchain world.

2. Authentication

Zero-knowledge proof can also facilitate transmitting sensitive information like authentication information with better security. It can build a secure channel for the users to employ their information without revealing it. And this way, avoid data leakage in the worst scenarios.

3. Storage Protection

Another possible use case of zero-knowledge proofs (ZKPs) is in the field of storage utility.
Zero-knowledge proof comes with a protocol that not only safeguards the storage unit, but also the information within it. Needless to say, the access channels are also protected to give a seamless and secure experience.

4. Sending Private Blockchain Transactions

When talking about sending private blockchain transactions, it is utterly important to keep it out of the reach of the third parties. Now, while the traditional methods are somewhat protective, they have some loopholes.
This is yet another area where ZKP comes into play. The concept, when integrated wisely, helps in making it nearly impossible to hack or intercept the private blockchain transactions.

5. Complex Documentation

Since zero-knowledge proof has the potential to encrypt data in chunks, it enables one to control certain blocks to provide access to a particular user, while restricting access for others. This way, the concept protects the complex documentation from those not authorized to see them.

6. File System Control

Another place where you can see an effective zero-knowledge proof implementation is the file system.
The concept adds different layers of security to the files, users, and even logins that makes it quite difficult for one to hack or manipulate the stored data.

7. Transmitting Private Blockchain Transactions

Transmission of private blockchain exchanges is one of the conspicuous notices among various eminent executions of ZKP in blockchain. Private Blockchain transactions should be protected from any third party while sending them.
The main worry in sending private blockchain transactions alludes to the different loopholes apparent in the regular strategies. The powerful integration of ZKP with private blockchain transactions can make them versatile towards any type of hacking or interference.

8. Democratizing Vote Verification

The most obvious example of applying ZKP with blockchain alludes to their democratic role in checking votes. ZKPs can give reliable answers for auditable voting by recording the votes on a public blockchain (such as ethereum).
Subsequently, voting processes would not need any third party confirmation alongside excluding the requirement for restriction. ZKPs can permit voters to demonstrate their eligibility for casting a vote, along these lines preventing exposure of their sensitive personal data. Likewise, voters can request immutable evidence for consideration of their vote in final vote count.

9. Security for Sensitive Information

Last but not least, Zero-knowledge proof also refines the way blockchain technology is revamping transactions.
ZKP adds a high-end security level to every block containing sensitive banking information like your credit card details and history, such that banks need to manipulate only required blocks when a user requests for information. Other blocks remain untouched and thus, protected.
Last modified 3mo ago