WHAT IS A NODE?
A node is a device on a blockchain network, that is in essence the foundation of the technology, allowing it to function and survive. Nodes are distributed across a widespread network and carry out a variety of tasks. In this website we will examine the qualities of an example of a node on a blockchain network.
A node can be any active electronic device, including a computer, phone or even a printer, as long as it is connected to the internet and as such has an IP address. The role of a node is to support the network by maintaining a copy of a blockchain and, in some cases, to process transactions. Nodes are often arranged in the structure of trees, known as binary trees. Each cryptocurrency has its own nodes, maintaining the transaction records of that particular token.
Nodes are the individual parts of the larger data structure that is a blockchain. As the owners of nodes willingly contribute their computing resources to store and validate transactions they have the chance to collect the transaction fees and earn a reward in the underlying cryptocurrency for doing so. This is known as mining or forging. However in our DPoS DDK Blockchain the forging fees have been omitted.
WHAT IS HASHING?
The reliability and integrity of blockchain is rooted in there being no chance of any fraudulent data or transactions, such as a double spend, being accepted or recorded. A cornerstone of the technology as a whole and the key components in maintaining this reliability is hashing.
Hashing is the process of taking an input of any length and turning it into a cryptographic fixed output through a mathematical algorithm (Bitcoin uses SHA-256, for example). Examples of such inputs can include a short piece of information such as a message or a huge cache of varying pieces of information such as a block of transactions or even all of the information contained on the internet.
SECURING DATA WITH HASHING
Hashing drastically increases the security of the data. Anyone who may be trying to decrypt the data by looking at the hash will not be able to work out the length of the encrypted information based on the hash. A cryptographic hash function needs to have several crucial qualities to be considered useful, these include:
- Impossible to produce the same hash value for differing inputs:
This is important because if it were not the case it would be impossible to keep track of the authenticity of inputs.
- The same message will always produce the same hash value:
The importance of this is similar to the prior point.
- Quick to produce a hash for any given message:
The system would not be efficient or provide value otherwise.
- Impossible to determine input based on hash value:
This is one of the foremost aspects and qualities of hashing and securing data.
- Even the slightest change to an input completely alters the hash:
This is also a matter of a security. If a slight change only made a slight difference it would be considerably easier to work out what the input was. The better and more complex the hashing algorithm, the larger the impact of changing an input will be on what the output is.
Hashing secures data by providing certainty that it hasn’t been tampered with before being seen by the intended recipient. So, as an example, if you downloaded a file containing sensitive information, you could run it through a hashing algorithm, calculate the hash of that data and compare it to the one shown by whoever sent you the data. If the hashes don’t match, you can be certain that the file was altered before you received it.
In blockchain, hashes are used to represent the current state of the world, or to be more precise, the state of a blockchain. As such, the input represents everything that has happened on a blockchain, so every single transaction up to that point, combined with the new data that is being added. What this means is that the output is based on, and therefore shaped by, all previous transactions that have occurred on a blockchain.
As mentioned, the slightest change to any part of the input results in a huge change to the output; in this lies the irrefutable security of blockchain technology. Changing any record that has previously happened on a blockchain would change all the hashes, making them false and obsolete. This becomes impossible when the transparent nature of blockchain is taken into account, as these changes would need to be done in plain sight of the whole network.
The first block of a blockchain, known as a genesis block, contains its transactions that, when combined and validated, produce a unique hash. This hash and all the new transactions that are being processed are then used as input to create a brand new hash that is used in the next block in the chain. This means that each block links back to its previous block through its hash, forming a chain back to the genesis block, hence the name blockchain. In this way, transactions can be added securely as long as the nodes on the network are in consensus on what the hash should be.
Blockchain Consensus Protocols For Illustration Only!
Consensus protocols are one of the most important and revolutionary aspects of blockchain technology.
These protocols create an irrefutable system of agreement between various devices across a distributed network, whilst preventing exploitation of the system. Here we will explore how these systems work and how various protocols differ from one another.
Blockchain consensus protocols are what keep all the nodes on a network synchronized with each other, while providing an answer to the question: how do we all make sure that we agree on what the truth is?
After all, anyone can submit information to be stored onto a blockchain and therefore it is important that there is review and confirmation, in the form of a consensus about whether to add that information.
A set of rules describing how the communication and transmitting of data between electronic devices, such as nodes, should work. These rules need to be defined before any data is sent, detailing how the information will be structured and how each device will send or receive it.
As a term, ‘consensus’ means that the nodes on the network agree on the same state of a blockchain, in a sense making it a self-auditing ecosystem. This is an absolutely crucial aspect of the technology, carrying out two key functions. Firstly, consensus protocols allow a blockchain to be updated, while ensuring that every block in the chain is true as well as keeping participants incentivized. Secondly, it prevents any single entity from controlling or derailing the whole blockchain system. The aim of consensus rules is to guarantee a single chain is used and followed.
CONSENSUS PROTOCOL RULES
Consensus rules are a specific set of rules that nodes on the network will ensure a block follows when validating that block and the transactions within it. The key requirement to achieve a consensus is a unanimous acceptance between nodes on the network for a single data value, even in the event of some of the nodes failing or being unreliable in any way.
Every cryptocurrency must have a way of securing its blockchain against attacks. For example, an attacker may attempt to spend some money and then reverse the transaction by broadcasting their own version of that blockchain, not including the transaction. This is known as a double spend. As blockchain technology does not rely on a central authority for security, users have no prior knowledge which version of the record is valid.
In this page those illustrations are from Lisk DPoS Protocols. In DDK platform although we are following the same protocols after it had been hard fork from LISK, there are few exceptions that DDK have omitted and shall not be applied in DDK DPoS platform. Hence, the above shall deemed to be used for illustration purposes only.