D'CENT Academy
Official SiteUser GuideBlogTwitter
English
English
  • Welcome to the D'CENT Academy
  • Blockchain Basic
    • What is Blockchain
    • The meaning of decentralization
    • How Bitcoin achieved decentralization
    • What is a smart contract?
    • What is Ethereum?
  • Cryptography basic
    • What is public-key cryptography?
    • What is a digital signature?
    • What is a hash function? (1)
    • What is a hash function? (2)
    • Security of cryptography
  • CRYPTO WALLET
    • Roles and functions of a wallet
    • Types of wallets
    • Why should you use a hardware wallet?
    • Key recovery and mnemonic code
  • Blockchain Network
    • Understanding the blockchain network
    • Understanding the token standard
    • Understanding the transaction fee
    • Possibility of concurrent creation of blocks
  • Terminology
    • Coin Burning
    • What is ERC-20?
    • What is ERC-721?
    • What is DeFi?
    • What is DAO?
Powered by GitBook
On this page

Was this helpful?

  1. Cryptography basic

What is a digital signature?

PreviousWhat is public-key cryptography?NextWhat is a hash function? (1)

Last updated 3 years ago

Was this helpful?

In the last article, we looked at public-key cryptography and its features. In this part, we will look at the digital signature, which is a typical example of using public-key cryptography.

Signing is a common task that everyone experiences in life. When you make a card payment or write a contract, you also write your signature. There are two main effects that can be achieved through signatures. The first is Authenticity, and the second is Non-Repudiation. (Integrity is also an important factor, but not essential for understanding, so I will skip it)

Let's say the school you graduated from issues a graduation certificate and submits it to the company. Graduation certificates include the signature (seal) of the school division. When you submit the certificate to the company, the company can tell by looking at the signature to verify that the certificate is indeed a school-issued certificate. From your point of view, it is used for the purpose of confirming to the company that it is a certificate issued by the school. This characteristic is called Authenticity.

When you make a transaction through internet banking or similar, you sign it. From the bank's perspective, the purpose of the signature here is to ensure that the sender cannot deny the fact that he has approved the transaction, that is, the sender cannot say "I never sent money" afterward. This non-repudiation feature is important to the bank because the bank has verified the details of your transfer and even if you deny it later, the bank would have their justification for adjusting the amount.

What if someone writes and digitally signs a transaction to transfer the asset that they do not actually own? A digital signature contains public key information, from which an address, information can be obtained to identify the user. The signer and sender of the transaction history must match, and if the sender does not have an asset, the digital signature will not be accepted on the network and will not be uploaded to the blockchain. Similarly, while the digital signature is valid, but if the transaction details are invalid, then this transaction will also not be accepted on the network.

Now you know that you need a digital signature to make a transfer in a blockchain environment, and you need a private key to create a digital signature. Through this, in order to transfer assets from the blockchain, the signer's assets stored in the blockchain must exist.

If so, how can the recipient of the transfer, verify the assets they have received? Also, how can the receiver take over the 'authority of use' for the transferred amount? If it is simply a bank, the bank can manage it by decrementing A's balance in the database and increasing B's balance, but in the blockchain, you need to understand the address. In the next article, we will look at the concept of 'address' and the hash function, which is a cryptographic system for creating addresses.