Bird
Raised Fist0
Blockchain / Solidityprogramming~10 mins

Cross-chain bridges in Blockchain / Solidity - Step-by-Step Execution

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Concept Flow - Cross-chain bridges
User initiates transfer on Chain A
Lock tokens on Chain A
Generate proof of lock
Send proof to Chain B
Verify proof on Chain B
Mint or release tokens on Chain B
User receives tokens on Chain B
Process complete
This flow shows how tokens move from one blockchain to another by locking on the first chain and minting or releasing on the second after proof verification.
Execution Sample
Blockchain / Solidity
function bridgeTransfer(amount, fromChain, toChain) {
  lockTokens(fromChain, amount);
  const proof = generateProof(fromChain, amount);
  if (verifyProof(toChain, proof)) {
    mintTokens(toChain, amount);
  }
}
This code simulates locking tokens on one chain, generating a proof, verifying it on another chain, and minting tokens there.
Execution Table
StepActionChainTokensProof GeneratedProof VerifiedTokens Minted/Released
1User initiates transferChain A100 lockedNoNoNo
2Tokens lockedChain A100 lockedNoNoNo
3Proof generatedChain A100 lockedYesNoNo
4Proof sent to Chain BChain B0YesNoNo
5Proof verifiedChain B0YesYesNo
6Tokens mintedChain B100 mintedYesYesYes
7User receives tokensChain B100 mintedYesYesYes
8Process completeBothChain A: 0 locked, Chain B: 100 mintedYesYesYes
💡 Process stops after tokens are minted on Chain B and user receives them.
Variable Tracker
VariableStartAfter Step 2After Step 3After Step 5After Step 6Final
lockedTokens010010010000
proofNoneNoneGeneratedGeneratedGeneratedGenerated
proofVerifiedFalseFalseFalseTrueTrueTrue
mintedTokens0000100100
Key Moments - 3 Insights
Why do tokens get locked on Chain A instead of just sending them?
Tokens are locked on Chain A to ensure they are not spent twice; this is shown in execution_table rows 1 and 2 where tokens become locked before proof generation.
What is the purpose of the proof in the bridge process?
The proof confirms tokens are locked on Chain A and is verified on Chain B before minting tokens, as seen in rows 3 to 5 of the execution_table.
Why are tokens minted on Chain B instead of transferring the original tokens?
Tokens are minted on Chain B to represent the locked tokens on Chain A without moving the original tokens, ensuring security and trust, shown in rows 6 and 7.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, at which step is the proof verified on Chain B?
AStep 5
BStep 3
CStep 2
DStep 6
💡 Hint
Check the 'Proof Verified' column in the execution_table to see when it changes to 'Yes'.
According to variable_tracker, what is the value of mintedTokens after Step 6?
ANone
B0
C100
D50
💡 Hint
Look at the 'mintedTokens' row under 'After Step 6' in variable_tracker.
If tokens were not locked on Chain A, what would likely happen in the process?
AProof would still be generated correctly
BTokens could be spent twice causing security issues
CTokens would be minted twice on Chain B
DProcess would complete faster
💡 Hint
Refer to key_moments about why locking tokens is important to prevent double spending.
Concept Snapshot
Cross-chain bridges move tokens between blockchains by locking tokens on the source chain,
generating a proof of lock, verifying it on the destination chain, and minting tokens there.
This ensures tokens are not duplicated or lost.
Key steps: lock -> proof -> verify -> mint.
This process maintains trust and security across chains.
Full Transcript
Cross-chain bridges allow tokens to move safely between different blockchains. The process starts when a user locks tokens on the first chain. Then, a proof is created to show these tokens are locked. This proof is sent to the second chain, where it is checked carefully. Once verified, the second chain mints new tokens representing the locked ones. The user then receives these tokens on the second chain. This method prevents tokens from being spent twice and keeps the system secure. The key steps are locking tokens, generating and verifying proof, and minting tokens on the new chain.

Practice

(1/5)
1. What is the main purpose of a cross-chain bridge in blockchain technology?
easy
A. To mine new blocks faster on a single blockchain
B. To increase the block size limit on a blockchain
C. To create new cryptocurrencies from scratch
D. To connect different blockchains and allow asset transfers between them

Solution

  1. Step 1: Understand the role of cross-chain bridges

    Cross-chain bridges enable communication and asset transfers between different blockchains.
  2. Step 2: Compare options with this role

    Only To connect different blockchains and allow asset transfers between them describes connecting blockchains and transferring assets, which matches the bridge's purpose.
  3. Final Answer:

    To connect different blockchains and allow asset transfers between them -> Option D
  4. Quick Check:

    Cross-chain bridge = connect blockchains [OK]
Hint: Bridges connect blockchains to move tokens or data [OK]
Common Mistakes:
  • Confusing bridges with mining or block creation
  • Thinking bridges create new cryptocurrencies
  • Assuming bridges only increase block size
2. Which of the following is the correct basic step in a cross-chain bridge operation?
easy
A. Lock tokens on the source chain and mint equivalent tokens on the destination chain
B. Mint tokens on the source chain and burn on the destination chain
C. Burn tokens on the source chain and mine new tokens on the same chain
D. Transfer tokens directly without locking or minting

Solution

  1. Step 1: Recall how cross-chain bridges work

    They lock tokens on the source chain to prevent double spending and mint equivalent tokens on the destination chain.
  2. Step 2: Match this with the options

    Lock tokens on the source chain and mint equivalent tokens on the destination chain correctly describes locking on source and minting on destination, which is the standard process.
  3. Final Answer:

    Lock tokens on the source chain and mint equivalent tokens on the destination chain -> Option A
  4. Quick Check:

    Lock then mint = bridge step [OK]
Hint: Tokens are locked first, then minted on another chain [OK]
Common Mistakes:
  • Mixing up minting and burning order
  • Thinking tokens transfer directly without locking
  • Assuming minting happens on source chain
3. Consider this simplified pseudocode for a cross-chain bridge function:
function bridgeTransfer(amount, sourceChain, destChain) {
  lockTokens(sourceChain, amount);
  mintTokens(destChain, amount);
  return 'Transfer complete';
}
What will be the output when calling bridgeTransfer(100, 'ChainA', 'ChainB')?
medium
A. 'Transfer complete'
B. Error: lockTokens undefined
C. 'Tokens locked on ChainA'
D. 100

Solution

  1. Step 1: Analyze the function steps

    The function calls lockTokens and mintTokens, then returns the string 'Transfer complete'.
  2. Step 2: Determine the output of the function call

    Assuming lockTokens and mintTokens work correctly, the function returns 'Transfer complete'.
  3. Final Answer:

    'Transfer complete' -> Option A
  4. Quick Check:

    Function returns 'Transfer complete' [OK]
Hint: Look at the return statement for output [OK]
Common Mistakes:
  • Confusing function calls with return value
  • Assuming intermediate functions print output
  • Ignoring the return statement
4. The following code snippet is intended to lock tokens on the source chain and mint on the destination chain, but it has a bug:
function bridgeTransfer(amount, sourceChain, destChain) {
  lockTokens(destChain, amount);
  mintTokens(sourceChain, amount);
  return 'Transfer complete';
}
What is the bug in this code?
medium
A. The function uses incorrect function names
B. The lockTokens and mintTokens calls have swapped chain arguments
C. The function does not return any value
D. The amount parameter is missing

Solution

  1. Step 1: Check the order of locking and minting

    Tokens should be locked on the source chain and minted on the destination chain.
  2. Step 2: Identify the argument mismatch

    The code locks tokens on destChain and mints on sourceChain, which is reversed.
  3. Final Answer:

    The lockTokens and mintTokens calls have swapped chain arguments -> Option B
  4. Quick Check:

    Lock on source, mint on destination [OK]
Hint: Lock on source chain, mint on destination chain [OK]
Common Mistakes:
  • Swapping source and destination chains
  • Forgetting to return a value
  • Using wrong function names
5. You want to design a cross-chain bridge that prevents double spending by ensuring tokens are locked before minting on the destination chain. Which approach best achieves this in a smart contract environment?
hard
A. Allow users to mint tokens on destination chain without locking on source chain
B. Mint tokens on destination chain first, then lock tokens on source chain
C. Use an event listener to confirm tokens are locked on source chain before minting on destination chain
D. Transfer tokens directly between chains without any locking or minting

Solution

  1. Step 1: Understand double spending prevention

    Tokens must be locked on the source chain before minting on the destination chain to avoid duplicates.
  2. Step 2: Evaluate approaches for enforcing this

    Using an event listener to confirm locking before minting ensures the correct order and security.
  3. Final Answer:

    Use an event listener to confirm tokens are locked on source chain before minting on destination chain -> Option C
  4. Quick Check:

    Confirm lock event before minting [OK]
Hint: Confirm lock event before minting tokens [OK]
Common Mistakes:
  • Minting before locking causes double spending
  • Allowing mint without lock breaks security
  • Skipping locking or minting steps