2.5.1. Ethereum Keystore
Ethereum Keystore is a means of authenticating oneself for a specific Ethereum address, and it is a file that encrypts Private Key with Passphrase [
16,
17]. To obtain a Private Key, one must know both the Keystore file and the Passphrase, and for usability purposes, the Private Key is not directly exposed and instead, the Keystore and Passphrase combination is used to create a secure standard for transactions [
18].
The Ethereum platform generates a Private Key and a Public Key using the ECDSA (Elliptic Curve Digital Signature Algorithm). The passphrase is encrypted using a one-way cryptographic algorithm called “Scrypt” to generate a Derived Key, as shown in
Figure 1 [
19].
For the decryption of the Private Key, it is encrypted using the AES algorithm as shown in
Figure 2 and then it needs the generation of Cipher Text.
The MAC for verifying whether the user-input Passphrase matches is stored in the keystore by concatenating the last 16 bytes of the Derived Key (32 Bytes) with the Cipher Text, and hashing the result using the SHA3-256 hash function, as shown in
Figure 3.
The resulting keystore file created in this way is shown in
Figure 4.
To decrypt the keystore, you must first verify that the entered passphrase is correct. Based on the entered passphrase, a new Derived Key and MAC are generated and checked for a match with the MAC within the keystore. If a match is confirmed, the new Derived Key, Cipher text, and cipher parameters information within the keystore are input into the AES decryption algorithm to decrypt the ciphertext into the private key, as shown in
Figure 4 [
20].
Figure 5.
Decrypt Cipher.
Figure 5.
Decrypt Cipher.
2.5.2. Symverse
Symverse is a blockchain platform with near 1-second finality based on a self-sovereign distributed ID system. It uses a unique 10-byte ID system with an ID document which contains 20-byte Public Key Hash used as an address and a 10-byte ID system consisting of a network identifier (SymID, 2 bytes), CitizenID (6 bytes), and account identifier (2 bytes). Symverse is a collaborative blockchain service that can be extended to independent blockchain platforms based on the Symverse platform. Its block creation method is an enhanced BFT (Byzantine Fault Tolerant) appling strategic voting theory and PoS (Proof of Stake) to achieve fast block finality [
21].
SCT (Symverse Contract Template) is a template protocol designed to make it easy to create and operate smart contracts within the Symverse blockchain. In Ethereum, the ERC-20 protocol involves writing smart contracts in Solidity and registering them on the blockchain, allowing them to be operated by the EVM. However, in Symverse, SCT-20 provides standard input and output, as shown in
Table 1, and allows for the creation of token smart contracts via an RPC protocol in JSON format, making it simple to use. To create and use an SCT contract, SYM coins, which are used as gas, are required, and calling SCT functions consumes SYM coins as shown in
Table 2.
A transaction is an act of recording ledger within a block on the blockchain, and once a transaction is recorded, it cannot be modified or deleted. In Symverse, there are three types of transactions: general transaction, SCT transaction, and deposit transaction [24]. The required data in a transaction is as shown in
Table 3.
The gas consumed in a transaction is calculated by the following formula:
Figure 6.
Calculate consume gas.
Figure 6.
Calculate consume gas.
Transactions can be processed in the order shown in
Figure 7, allowing for the execution of one transaction.
The transaction Raw DATA is sent to nodes through a signature procedure,
Figure 8.
Transaction signing process.
Figure 8.
Transaction signing process.
The executed transaction returns a Transaction Receipt, which can be used to verify the information from blockchain data in the node.
The next section will introduce the details and architecture of the proposed system in this paper, as well as various modules that solve the problems discussed in this section. In addition, we will provide an evaluation of the system’s performance, security, and usability, demonstrating the potential to provide a comprehensive solution for non-face-to-face financial transactions.