2.1 Protocol Overview

QURAS technology aims to protect user privacy. To protect user privacy, two main anonymous technologies are adopted – zero-knowledge proof and ring signature. These anonymous technologies protect user privacy during remittance and while using a smart contract. QURAS platform’sfunction library is a superior package library in that developers can develop anonymous applications/functions regarding QURAS without having the knowledge of encryption technology.

2.2 Structure of QURAS Blockchain

Refer to the following figure for an intuitive representation of QURAS Blockchain.

QURAS Blockchain System
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
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
1~5 (includes 5)
7:3
5~10 (includes 10)
6.5:3.5
Greater than 10
6:4

**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).