3.5.3 Transaction and block signing
DGT employs a robust transaction and block validation process to ensure the integrity and consistency of data within the network. The following describes the transaction and block validation mechanism in DGT:
Transactions in DGT are received from clients as a batch list. A batch can contain one or more transactions that are processed as a single atomic unit. To prevent unauthorized modification of transaction payload data, the client computes the SHA-512 digest and includes it in the transaction header. This digest acts as a cryptographic checksum, ensuring the integrity of the payload data. Each transaction header also contains a unique nonce value generated by the client, preventing the reproduction of the transaction.
The client signs the transaction header and includes the public signing key in the header. Additionally, each package within the transaction is signed, and the public key of the package signer is included in the package header. The signer of the batch service and the signer of the transaction may or may not be the same person. Including the package signer's public key in the transaction, header prevents the transaction from being repackaged into another package. The transaction signing key and batch signature public key in the transaction and batch headers, respectively, allow users to identify signers and verify signatures.
The DGT validator node takes the received transactions and creates proposed blocks. These proposed blocks are signed by the validator node using the ECDSA secp256k1 curve, the same algorithm used for signing transactions and packages. The validator node then transmits these blocks to peers within the DGT network.
Peers in the DGT network, specifically the validator peers, verify the candidate blocks proposed by the validator node. This verification process includes validating the signatures of the block, packets, and transactions. The presence of digests and signatures ensures the immutability of payload data and prevents unauthorized deletion, reordering, or duplication of transactions within a block or on the blockchain.
Step | Description |
Key Generation | Generate a private key and corresponding public key for cryptographic operations. |
Calculate Address | Calculate a unique address for each transaction family based on relevant parameters. |
Creating a Transaction |
|
Creating a Transaction Batch |
|
Sending the Batch | Send the prepared batch, including the batch header, signatures, and transactions, via the REST API. |
Form Block Proposal |
|
Sign Block Proposal |
|
By employing these transaction and block validation mechanisms, as well as the block-based and DAG-based storage approaches, DGT ensures the integrity, consistency, and efficiency of its data processing and storage within the network.
Last updated