Bird
Raised Fist0
Blockchain / Solidityprogramming~5 mins

Why handling value is core to blockchain

Choose your learning style10 modes available
Introduction

Blockchains are special because they let people send and receive value safely without needing a middleman. Handling value means moving money or assets in a way everyone trusts.

When you want to send money directly to a friend without a bank.
When you want to track ownership of digital art or collectibles.
When you want to make sure payments are secure and can't be changed.
When you want to build apps that use tokens or cryptocurrencies.
When you want to create a system where people can trade assets fairly.
Syntax
Blockchain / Solidity
transaction {
  sender: address,
  receiver: address,
  amount: number,
  signature: string
}

A transaction is a record of value moving from one place to another.

Each transaction must be signed to prove it is valid and authorized.

Examples
Alice sends 10 tokens to Bob with her signature to confirm.
Blockchain / Solidity
transaction {
  sender: 'Alice',
  receiver: 'Bob',
  amount: 10,
  signature: 'AliceSignature'
}
Carol sends 50 tokens to Dave securely.
Blockchain / Solidity
transaction {
  sender: 'Carol',
  receiver: 'Dave',
  amount: 50,
  signature: 'CarolSignature'
}
Sample Program

This simple blockchain tracks balances and transactions. Alice starts with 100 tokens, Bob with 50. Alice sends 30 to Bob successfully. Bob tries to send 90 to Alice but fails because he only has 80 after receiving 30.

Blockchain / Solidity
class Blockchain:
    def __init__(self):
        self.chain = []
        self.balances = {}

    def add_transaction(self, sender, receiver, amount):
        if self.balances.get(sender, 0) >= amount:
            self.balances[sender] -= amount
            self.balances[receiver] = self.balances.get(receiver, 0) + amount
            self.chain.append({'sender': sender, 'receiver': receiver, 'amount': amount})
            print(f"Transaction: {sender} sent {amount} tokens to {receiver}")
        else:
            print(f"Transaction failed: {sender} has insufficient balance")

blockchain = Blockchain()
blockchain.balances['Alice'] = 100
blockchain.balances['Bob'] = 50

blockchain.add_transaction('Alice', 'Bob', 30)
blockchain.add_transaction('Bob', 'Alice', 90)
OutputSuccess
Important Notes

Handling value means keeping track of who owns what and making sure transfers are real and safe.

Without value handling, blockchain would just be a list of data with no real use.

Security and trust come from making sure only the owner can send their value.

Summary

Blockchains handle value to let people send money or assets safely.

Transactions move value and must be authorized by the sender.

Tracking balances and transactions keeps the system fair and trusted.

Practice

(1/5)
1. Why is handling value considered core to blockchain technology?
easy
A. Because blockchains enable secure transfer of money or assets between people.
B. Because blockchains only store text data without any value.
C. Because blockchains are used only for social media applications.
D. Because blockchains do not require any authorization for transactions.

Solution

  1. Step 1: Understand blockchain purpose

    Blockchains are designed to let people send money or assets safely.
  2. Step 2: Identify role of value handling

    Handling value is essential because it allows secure and trusted transfer of assets.
  3. Final Answer:

    Because blockchains enable secure transfer of money or assets between people. -> Option A
  4. Quick Check:

    Value handling = secure asset transfer [OK]
Hint: Value handling means secure asset transfer on blockchain [OK]
Common Mistakes:
  • Thinking blockchain only stores text data
  • Assuming no authorization is needed
  • Confusing blockchain with social media
2. Which of the following is the correct way to represent a transaction value in a blockchain smart contract?
easy
A. let value = 100; // as a number
B. let value = null; // as null
C. let value = true; // as a boolean
D. let value = '100'; // as a string

Solution

  1. Step 1: Identify correct data type for value

    Transaction values represent amounts, so they should be numbers, not strings or booleans.
  2. Step 2: Check each option

    let value = 100; // as a number uses a number type which is correct for value representation.
  3. Final Answer:

    let value = 100; // as a number -> Option A
  4. Quick Check:

    Value must be a number [OK]
Hint: Transaction value must be a number, not string or boolean [OK]
Common Mistakes:
  • Using strings to represent numeric values
  • Using booleans or null for amounts
  • Confusing data types in smart contracts
3. Consider this simplified blockchain transaction code snippet:
let senderBalance = 500;
let transferAmount = 200;
if (senderBalance >= transferAmount) {
  senderBalance -= transferAmount;
  receiverBalance += transferAmount;
}
console.log(senderBalance);

What will be the output?
medium
A. 700
B. 300
C. 500
D. 200

Solution

  1. Step 1: Check condition and initial values

    senderBalance is 500, transferAmount is 200, condition senderBalance >= transferAmount is true.
  2. Step 2: Calculate new senderBalance

    senderBalance is reduced by 200, so 500 - 200 = 300.
  3. Final Answer:

    300 -> Option B
  4. Quick Check:

    500 - 200 = 300 [OK]
Hint: Subtract transfer amount from sender balance if enough funds [OK]
Common Mistakes:
  • Adding instead of subtracting transfer amount
  • Ignoring the condition check
  • Confusing sender and receiver balances
4. The following code tries to update balances after a transaction but has a bug:
let senderBalance = 300;
let receiverBalance = 100;
let transferAmount = 400;
if (senderBalance > transferAmount) {
  senderBalance -= transferAmount;
  receiverBalance += transferAmount;
}
console.log(senderBalance);

What is the bug and how to fix it?
medium
A. The senderBalance should be increased, not decreased.
B. The transferAmount should be less than senderBalance, so no fix needed.
C. The receiverBalance update is missing a semicolon.
D. The condition should be senderBalance >= transferAmount to allow exact balance transfer.

Solution

  1. Step 1: Analyze the condition

    The condition uses > which excludes the case when senderBalance equals transferAmount.
  2. Step 2: Correct the condition

    Change > to >= so sender can transfer all their balance exactly.
  3. Final Answer:

    The condition should be senderBalance >= transferAmount to allow exact balance transfer. -> Option D
  4. Quick Check:

    Use >= to allow full balance transfer [OK]
Hint: Use >= to allow transfer of full sender balance [OK]
Common Mistakes:
  • Using > excludes exact balance transfers
  • Ignoring condition logic
  • Misunderstanding balance updates
5. You want to create a function that safely transfers value between two accounts on a blockchain. Which approach best ensures the transaction is valid and balances update correctly?
hard
A. Add amount to receiver first, then subtract from sender without checks.
B. Subtract amount from sender without checking balance, then add to receiver.
C. Check sender balance >= amount, subtract amount from sender, add to receiver, then record transaction.
D. Record transaction first, then update balances without validation.

Solution

  1. Step 1: Validate sender has enough balance

    Checking sender balance >= amount prevents overspending and errors.
  2. Step 2: Update balances and record transaction

    Subtract from sender, add to receiver, then record transaction to keep system consistent.
  3. Final Answer:

    Check sender balance >= amount, subtract amount from sender, add to receiver, then record transaction. -> Option C
  4. Quick Check:

    Validate then update balances then record [OK]
Hint: Validate balance before transfer, then update and record [OK]
Common Mistakes:
  • Updating balances without validation
  • Recording transaction before balance update
  • Adding to receiver before subtracting from sender
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard