2.2 Structure of QURAS Blockchain
According to the above diagram, roughly, Full Node, Light Node, and Consensus Node exist
in the blockchain. In order for blockchain to be maintained, Consensus Node needs to
exist. Consensus Node is a node that generates blocks in blockchain. Transaction
verification and smart contractexecution are done in the Consensus Node. The role of Full
Node is to go forward with the verification and broadcasting of transactions that
haveoccurred and act as an engine for the wallet and website. The Full Node is currently
implemented with the zk- SNARKs algorithm. In other words, all types of transactions can
be provided. The Light Node can be seen as a light weight engine to be used for a Light
Wallet for PC. Since Light Node doesnot download all the blocks in blockchain, it
doesn’t require a large storagespace. The Light Node is designed to be used alone, so it
has no unnecessary functions and is implemented with only functions that are necessary
for a wallet.
2.3 Structure of P2P Communication
Blockchain is a system that does not have a specific server and uses the P2Pmethod to
connect all nodes for operation. This means every node within the QURAS blockchain
communicates using the P2P method. All communicationsin the QURAS blockchain are
encapsulated by QurasMessage before proceeding. The mechanism of QurasMessage is
illustrated in the diagram below.
Term |
Description |
Network Type (Magic) |
Magic is a type of network that distinguishes between Mainnet and Testnet
inQURAS blockchain.
|
Command |
Depending on this value, the message’s basic
command will be decided. Detailed information on
the command is described below.
|
Checksum |
This is used to distinguish whether Payload is
correct as Checksum in the Payload item.
|
Body (Payload) |
This can be seen as the message’s basic body by
using the Command.
Details on this item’s structure are described
below along with the Command part.
|
For the structures of specific communication messages exchanged among FullNode, Light Node
and Consensus Node in QURAS blockchain, please refer to the QURAS technical paper.
2.4 Structure of QURAS Wallet
QURAS blockchain offers two types of coins, encryption and transparent
sending/receiving. The transparent Wallet uses ECC encryption to generate
a private and public key that generates an address. The address generation
process is illustrated in the diagram below.
Structure of QURAS Wallet
There are two types of address for an anonymous wallet: 1) an address that uses zk-SNARKs
and 2) an address that uses a ring signature.
2.5 Structure of Transaction
Please refer to the below diagram for the structure of a transaction.
Term |
Description |
Transaction Type |
Depending on this type, a transaction structure and transaction command
changes.
|
Version |
This is designed to process according to the value here when a version is
updated.
|
Transaction Attribute |
As transaction’s additional functions andrelated items, this is applied to a
contract and a specific transaction.
|
Coin Reference |
Coin Reference is used as Tx output reference for coins that are not yet sent as
the same content as Bitcoin’s UTXO information.
|
Transaction Outputs |
This is a Tx output for the recipient when sending/ receiving coins.
|
Script |
The transaction verification and smart contractcontent are included here.
|
Transaction types are as follow:
- Miner Transaction
- Issue Transaction
- Claim Transaction
- Enrollment Transaction
- Register Transaction
- Contract Transaction
- Anonymous Transaction
- Publish Transaction
- Invocation Transaction
For more information on the above transactions, please refer to the technical paper.
2.6 Structure of Blockchain
Blockchain can be seen as an aggregation of connected blocks. The block connection
method in blockchain is described below.
Structure of Blockchain
As shown above, blocks are roughly comprised of the header part and the
body part. The header part contains block information while the body part is
comprised of an aggregation of transactions.
Two types of transactions are recorded in a block – public and anonymous
transaction. The public transaction includes all transaction information such
as sender, recipient, amount, fees, etc.
2.6.1 Transactional Privacy
Quras utilizes the two leading privacy technologies, ring signatures and zero
knowledge proofs, to give network users options in the way that confidentiality
is handled within the transactions. Readers should refer to the Quras technical
whitepaper* for details on the mechanics of implementation.
2.6.2 Transparent Transactions
Transparent addresses work similarly to what is implemented on Bitcoin. The
private key is generated randomly first out of the key pair, and the public key
is then derived using Elliptic
Curve Cryptography (ECC). Quras uses secp256r1 standard for its public key
generation, which is enforced by organizations such as the NSA, in its Suite-b
cryptographic standard.5
Although Bitcoin uses secp256k1 standard for its key pair generation, Quras
uses an alternative as an extra measure of security.
2.6.3 Confidential Transactions
Users can choose between two industry leading private transaction methods,
zk-SNARKs (zero knowledge proofs) and ring signatures. The former is
considered as a more robust method of privacy, however, will consume
more system resources to produce the result. Thus, a second option of Ring
Confidential Transactions is offered to give users an option of fast and light
anonymous transactions.
To accommodate for these transaction types, users can generate the
appropriate keys to construct the transactions – spend, receiving, viewing,
anonymous and stealth keys.
2.6.4 Privacy Protecting Contracts
The Quras blockchain includes a virtual machine layer, which users can use
to deploy smart contracts written in C#, a widely adopted programming
language.7 Developers can utilize two key functions within their contract code
– zero knowledge proof and validation methods. These functions are general
purpose and can be implemented in the contract code for a wide variety of
use cases, further explained in section 5, Applications.
As these privacy methods are merely functions, developers freely choose to
use them in order to create transparent or secret contracts. Whenever a user
calls (interacts) with a smart contract, QURAS GAS (XQG) is consumed – see
section 4 for more details.
Please refer to the diagram on the next page.
Normal Transaction
There are two types of anonymous transactions – complete anonymity and
partial anonymity. Completely Anonymous Transaction means all transaction
information will be hidden
including sender’s address, recipient’s address, remitted amount, etc. Please
refer to the below diagram.
Completely Anonymous Transaction
A Part Anonymous Transaction means a part of transaction information such
as the sender’s address, recipient address or remittance amount is hidden.
Please refer to the below diagram.
Part Anonymous Transaction
A Part Anonymous Transaction uses zk-SNARKs or the ring signature
technology to realize the anonymous effect. Please see below for blocks that
are included.
For more details, please refer to the technical paper.
Block Header
PrevHash, MerkleRoot, Timestamp, BlockHash, TransactionCount
Structure of Smart Contract
Smart Contract is designed for users to be able to directly create a contract
other than a digital contract within the QURAS blockchain. In other words,
all the platform is provided so that users can use the QURAS Smart Contract
language to develop their own unique smart contract to be executed in
the QURAS blockchain. The structure of a smart contract can be seen as a
combination of Opcode being provided by the QURAS Smart Contract VM.
When a user’s smart contract is compiled, it will be converted from Opcode
to Byte code. Our QURAS development team continues to periodically update
Smart Contract VM to offer a more convenient smart contract creation
environment for users.
There are three types of Smart Contracts offered in the QURAS blockchain:
Verification Contract, Application Contract, Function Contract
For specific information on QURAS blockchain’s smart contract execution,
please refer to the technical paper.
2.7 Structure of Level DB
QURAS nodes use LevelDB to manage blockchains. Generally speaking,
LevelDB has an overall superior performance compared to SQLite and
KyotoCabinet Tree DB, but when using large data, the performance
dropped. That means, if the LevelDB value is about 100 bytes, the superior
performance was observed. For more detailed information, please refer to the
technical paper.
2.8 Consensus Algorithm of QURAS Blockchain
Consensus algorithm means consensus building in cryptocurrency
transaction, and in QURAS blockchain, the consensus algorithm called,
TSdBFT (Transaction Sharing Delegated Byzantine Fault Tolerance Consensus
Mechanism) is used to distribute smart contract transactions among nodes
and token mangers. The blockchain system is a distribution system, so all
nodes are connected by P2P method, meaning that there is a possibility of
nodes connected to blockchain being disconnected at voluntary time. There
is also a possibility that nodes disappear due to incorrect documents. To
reach a correct agreement, there is a request in the number of nodes for a
case that not all nodes in P2P net are not trustworthy or there are incorrect
nodes. For example, assuming the number of consensus node is N whereas
the number of incorrect nodes is f, the safety index of blockchain in the
blockchain system are determined by N and f. When f is smaller than (N-
1)/3 in the TSdBFT algorithm, the QURAS blockchain system is considered safe.
This means correct blocks can be generated without delays even if there are
2 nodes that are either incorrect or malicious out of 7 consensus nodes in
QURAS blockchain that executes 7 consensus nodes. Regarding the details
on the token fee- sharing method, as explained below, expenses required for
executing smart contract are paid by XQG and they are properly distributed
based on Common Good which considers projects’ sustainability.
QURAS consensus algorithm is intended to be upgraded in a future. The plan
is to implement a mechanism that distribute all of XQC transaction fees are
distributed to users who retain a certain volume of XQC, which is QURAS
platform’s key currency, depending on their retained volume using the proofof-
importance-based algorithm. As for load capability for transactions, the
current performance is the maximum of approximately 1000TPS, but the plan
is to improve the volume in a future. The goal is to have a distributed platform
that can handle larger use purposes.
2.9 Transaction fee sharing for smart contract
Whenever a user deploys a smart contract (including token issue) in the QURAS blockchain, transaction fees generated from the contract are then distributed. Contract managers who deploy contracts using the QURAS blockchain will receive the fees that their users pay, however, the fees will be divided between contract managers and QURAS consensus nodes. The ratio of the fee distributed between contract managers and QURAS consensus node is designed to be dynamic.
The distribution of smart contract transaction fees is shown below:
Fee(XQG)
Distribution Proportion
Less than 0.1 (includes 0.1)
8:2*
0.1~1 (includes 1)
7.5:2.5
5~10 (includes 10)
6.5:3.5
**8:2 means 80% of the transaction fee is distributed to the QURAS consensus node and 20% of the transaction fee is distributed to the contract manager..
Detailed in that chart below are functions which give contract managers an opportunity to earn smart contract transaction fees within a certain range.. As explained earlier, the above design allows for the return of smart contract transaction fees to contract managers who deploy the contract. In general, a smart contract transaction fee’s refund depends on the fee amount.
Distribution of Token Fee
2.10 Network Currencies
Since Quras is based on the TSdBFT consensus mechanism, the network will include two coins with
different functionalities: XQC and XQG;
QURAS COIN (XQC)
XQC is the main form of value transfer within the Quras ecosystem. Users holding the coin are eligible
to receive XQG through staking, to incentivize network functionality usage. The granting of XQG by
staking XQC is not intended to reward holders of XQC profits. The sole purpose of XQG is for the payment
of transaction fees on the network (note to company: please confirm or update other usage of XQG).
For the avoidance of doubt, under no circumstances would a holder of XQC be entitled to or receive (i)
any form of interests whatsoever in whole or in part (including but not limited to equity interest,
proprietary interest and ownership interest) or share in or claim against the issuer of XQC, (ii) any
voting rights at the board meetings or shareholders meetings of the issuer of XQC, (iii) any management
rights of the issuer of XQC, (iv) any economic right (including any kind of right to payment,
distribution, income, dividend, profit, or other return, or any sums to be paid, or likely to be paid,
out of such return or profit) of or generated by the issuer of XQC, and (v) any interest payments from
the issuer of XQC.
QURAS GAS (XQG)
The network charges XQG, a gas-like token for network operations including transactional fees and smart
contract interactions such as token issuance and function calling. Implementing a gas token is required
to maintain a barrier against network spam and to further incentivize network nodes. The sole purpose of
XQG is for the payment of transaction fees on the network (note to company: please confirm or update
other usage of XQG).