Skip to content

📊 Generate Visual Reports for Workshop Publication #12

@apierr

Description

@apierr

🎯 Objective

Create publication-ready visualizations comparing ECDSA, DILITHIUM3, and HYBRID cryptographic modes under different load profiles for blockchain workshop submission.


📈 Required Visualizations (Priority Order)

1️⃣ Latency vs Throughput Comparison ⭐ CRITICAL

Type: Scatter plot with error bars
Purpose: Show performance trade-offs across crypto modes

Specifications:

  • X-axis: Throughput (transactions/sec)
  • Y-axis: P95 Latency (ms)
  • Series:
    • 🔵 ECDSA (baseline)
    • 🟢 DILITHIUM3 (PQC)
    • 🟡 HYBRID (ECDSA + PQC)
  • Error bars: 95% confidence intervals from 3+ runs
  • Annotations: Mark sweet spots (optimal throughput/latency balance)

Key Insights to Highlight:

  • Where each crypto mode starts degrading
  • HYBRID positioning between ECDSA and PQC-only
  • Acceptable operating ranges for production

2️⃣ Cryptographic Overhead Breakdown ⭐ CRITICAL

Type: Grouped bar chart
Purpose: Quantify signature generation/verification overhead

Specifications:

  • Groups: sig_gen_time, sig_verify_time (microseconds)
  • Bars per group: ECDSA, DILITHIUM3, HYBRID
  • Include:
    • Mean values with std deviation error bars
    • Percentage increase labels (e.g., "DILITHIUM3: +285% verify time")

Color Scheme:

  • 🟦 Generation time (lighter shade)
  • 🟥 Verification time (darker shade)

Expected Result:

DILITHIUM3 verification ≈ 3-5x slower than ECDSA
DILITHIUM3 generation ≈ 2-3x slower than ECDSA
HYBRID overhead ≈ sum of both operations

3️⃣ Resource Utilization Under Load ⭐ CRITICAL

Type: Multi-line chart with dual Y-axes
Purpose: Demonstrate system stability and resource consumption

Specifications:

  • X-axis: Time (seconds)
  • Y-axis (left): CPU Utilization (%)
  • Y-axis (right): Memory Utilization (%)
  • Scenario: HIGHLOAD profile comparison
  • Lines:
    • ECDSA CPU/Memory
    • DILITHIUM3 CPU/Memory
    • HYBRID CPU/Memory

Optional Enhancement: Add shaded regions for load profile phases


4️⃣ Throughput Degradation Analysis 🔸 IMPORTANT

Type: Box plot
Purpose: Show variance and worst-case performance

Specifications:

  • X-axis: Crypto modes (ECDSA, DILITHIUM3, HYBRID)
  • Y-axis: Achieved throughput (TPS)
  • Box grouping: By load profile (LOWLOAD, MEDIUMLOAD, HIGHLOAD)
  • Show: Median, quartiles, outliers

Insight Focus:

  • Consistency of throughput under load
  • Variance between runs
  • Failure modes (throughput collapse)

5️⃣ Block Commit Time Distribution 🔸 IMPORTANT

Type: CDF (Cumulative Distribution Function)
Purpose: Visualize blockchain finality latency

Specifications:

  • X-axis: Block commit time (ms)
  • Y-axis: Cumulative probability (0-1)
  • Lines: One per crypto mode
  • Annotations: Mark P50, P95, P99 percentiles

Use Case: SLA discussions - "99% of blocks committed within X ms"


6️⃣ Hybrid Mode Deep Dive 🔹 OPTIONAL

Type: Stacked bar or area chart
Purpose: Justify HYBRID complexity vs benefits

Specifications:

  • X-axis: Load profiles
  • Y-axis: Total transaction latency (ms)
  • Stacks:
    • Network overhead
    • Signature generation
    • Signature verification
    • Consensus/commit time

Comparison: Side-by-side for ECDSA, DILITHIUM3, HYBRID


🛠️ Implementation Checklist

Data Preparation

  • Load all CSV files from data/fixtures/monte_carlo/reproducible/
  • Parse with Papaparse, handle missing values
  • Calculate statistics across 3 runs:
    • Mean
    • Standard deviation
    • 95% confidence intervals
  • Aggregate by crypto_mode and load_profile

Visualization Library

Recommended: Recharts (already available in React artifacts)

Alternative: Plotly for more complex charts (CDF, heatmaps)

Styling Guidelines

  • Color palette:
    • ECDSA: #3b82f6 (blue)
    • DILITHIUM3: #10b981 (green)
    • HYBRID: #f59e0b (amber)
  • Font: Sans-serif, 12pt for labels
  • Grid: Light gray, dashed
  • Legend: Top-right corner, clear labels

Export Requirements

  • High-resolution PNG (300 DPI minimum)
  • Vector format (SVG/PDF) for LaTeX papers
  • Consistent dimensions: 6" width × 4" height (standard column width)

📊 Statistical Analysis Requirements

Before creating visualizations, compute:

  1. Descriptive Statistics:

    mean, std, median, Q1, Q3, min, max
  2. Inferential Statistics:

    • ANOVA test: Compare crypto modes under same load
    • T-tests: Pairwise comparisons (ECDSA vs DILITHIUM3, etc.)
    • Report p-values for significance claims
  3. Effect Size:

    • Calculate percentage differences
    • Cohen's d for meaningful impact assessment

🎨 Example Code Structure

import pandas as pd
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
import seaborn as sns

# Load and aggregate data
def load_experiment_data(crypto_mode, load_profile):
    runs = []
    for run_id in [1, 2, 3]:
        df = pd.read_csv(f"data/fixtures/{crypto_mode}_{load_profile}_RUN{run_id}.csv")
        runs.append(df)
    return pd.concat(runs)

# Statistical comparison
def compare_crypto_modes(metric='latency_p95'):
    ecdsa = load_experiment_data('ECDSA', 'HIGHLOAD')[metric]
    dilithium = load_experiment_data('DILITHIUM3', 'HIGHLOAD')[metric]
    
    t_stat, p_value = stats.ttest_ind(ecdsa, dilithium)
    print(f"T-test: t={t_stat:.3f}, p={p_value:.4f}")
    
    return p_value < 0.05  # Significant difference?

# Generate Plot 1: Latency vs Throughput
def plot_latency_throughput():
    # Implementation here
    pass

📝 Deliverables

  1. Python script: tools/analysis/generate_workshop_plots.py
  2. Output directory: results/workshop_figures/
  3. README: Document how to regenerate plots
  4. Statistics report: results/statistical_analysis.md

⏱️ Timeline

  • Week 1: Data aggregation + statistical analysis
  • Week 2: Implement plots 1-3 (critical)
  • Week 3: Implement plots 4-6 (important/optional)
  • Week 4: Review, refinement, export for paper

🔗 Related Issues

  • #XXX: Generate additional experimental data (MEDIUMLOAD, SUSTAINED)
  • #XXX: Paper structure and content
  • #XXX: Literature review for related work section

💡 Success Criteria

✅ All critical plots (1-3) publication-ready
✅ Statistical significance demonstrated
✅ Reproducible analysis pipeline
✅ Figures comply with workshop formatting guidelines
✅ Clear visual narrative supporting paper claims

Metadata

Metadata

Assignees

No one assigned

    Labels

    Status: To DoThis issue is ready to be picked up by a team member.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions