Homework 1: Signature Verification Discovery
← Back to Cryptography I: Blockchain Security and Cryptographic Foundations
Objective
This homework deepens your understanding of how Rippled verifies transaction signatures. You will explore the codebase to trace the signature verification pipeline and analyze cryptographic operations step by step.
Format: Written report (PDF or Markdown) including diagrams, code snippets, and explanations.
Task
Perform a hands-on exploration of Rippled’s transaction processing code and trace how a transaction’s signature is verified from submission to final cryptographic validation.
Requirements
Setup
Optionally run Rippled in standalone mode for testing
Select a transaction to analyze (e.g., Payment, OfferCreate)
Trace the transaction through the signature verification process in the codebase
Code Exploration
Identify the entry point:
Transactor::apply()Document the call to
preflight()and its parametersFollow the verification chain to
checkSign()functionsDistinguish between
Transactor::checkSign()andSTTx::checkSign()Identify which function performs actual cryptographic verification
Explore
STTx::checkSign()and trace the call toverify()Determine how the signature algorithm (secp256k1 or ed25519) is detected
Document differences in the verification flow for each algorithm
Documentation
Create a call chain diagram from
Transactor::apply()to the finalverify()functionPrepare a function analysis table including:
Function name
File location
Purpose
Key parameters
Return values
Explain error handling for failed signature verification
Include relevant code snippets (5–10 lines) for:
Signature verification calls
Algorithm detection logic
Final cryptographic verification
Deliverable
A written report containing:
Call chain diagram
Function analysis table
Explanation of algorithm handling (secp256k1 vs ed25519)
Error handling details
Code snippets illustrating the verification process
Tips
Use
grepor your IDE to locate function definitionsFollow
#includestatements to understand dependenciesCheck return types to understand success/failure patterns
Use
git logto examine history of cryptographic changes
Learning Goals
By completing this homework, you should be able to:
Navigate Rippled’s transaction processing code
Understand the signature verification pipeline
Identify where cryptographic operations occur
Explain the difference between permission checks and signature verification
Last updated

