Private and public keys have the same size — 32 bytes. The bytes of the keys are converted to a Base58 character string; in this form, the keys are displayed in the interfaces of programs.
Example of a public key in Base58:
Example of a private key in Base58:
An account owner is an owner of both account keys at the same time: both public and private.
All transactions have a single sender; the only exception is genesis transactions — they do not have a sender.
A transaction contains the sender's public key. Before sending the transaction, the sender signs it with his private key. The account that signed the transaction is called the transaction sender. The signature that results from signing the transaction is called the transaction digital signature. If account Y is the sender of the transaction, it is said that the transaction was sent from account Y.
The transaction is sent to the blockchain network along with its digital signature. The digital signature and the sender's public key are used to verify the authenticity of the transaction data.
Each account has a single address.
Example of address in Base58:
There are two types of scripts that can be attached to an account: an account script and a dApp script. The account to which an account script is attached is called a smart account. An account with dApp script attached to it is called a dApp.
Each account has an account data storage that stores data records in key-value format.
The account data storage serves as a database for the information that is associated with the account.