Merkle Tree Proof-of-Work for DoS Mitigation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems face challenges in mitigating denial-of-service (DoS) and distributed denial-of-service (DDoS) attacks by ensuring consistent computational resource expenses for service access, leading to variance in performance assurances.

Innovation Solution

Implementing Merkle trees as a proof-of-work mechanism, where clients must solve a computationally challenging problem to generate a valid Merkle tree and provide a proof-of-work solution to access computing resources, particularly during high network traffic or suspected attacks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If computational expenses are imposed on clients to mitigate DoS attacks, then the system's resistance to attacks improves, but the variance in computational expenses increases

Engineering Contradiction:
Improveattack mitigationVSAvoidexpense consistency
Core Design Contradiction:
ReliabilityVSStability of the object's composition

Solution Approach 1:

The system pre-generates Merkle trees and stores them in a pool before they are needed for proof-of-work challenges. This preliminary preparation ensures that when challenges are issued during high traffic or attack conditions, the computational work is predetermined and structured, providing consistent expense requirements while maintaining reliable attack mitigation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically adjusts parameters such as the depth of Merkle trees and the selection of authentication paths based on network conditions. By changing these parameters, the system can maintain consistent computational expense profiles while adapting to varying traffic loads and attack intensities, thus resolving the contradiction between reliable protection and stable expense composition.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If proof-of-work challenges are required for all requests, then DoS attack resistance improves, but the computational overhead for legitimate users increases

Engineering Contradiction:
Improveattack resistanceVSAvoidcomputational overhead
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

Instead of requiring full Merkle tree generation for every request, the system uses pre-generated trees and only requires clients to find authentication paths and verify proofs. This partial action approach maintains strong attack resistance while significantly reducing the computational overhead for legitimate users, as the most intensive generation work has already been performed in advance.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system performs the computationally intensive Merkle tree generation in advance and stores these trees for later use. When processing requests, only lighter operations such as path verification and proof validation are needed, thus maintaining high attack resistance while minimizing real-time computational overhead for legitimate users.

Inventive Principle:
Principle #10Preliminary action

3Speed

If Merkle trees are pre-generated and stored, then proof verification speed improves, but the storage requirements increase

Engineering Contradiction:
Improveverification speedVSAvoidstorage capacity
Core Design Contradiction:
SpeedVSVolume of stationary object

Solution Approach 1:

The system extracts and stores only the essential components of Merkle trees (the tree structures themselves) while generating authentication paths and proofs on-demand or in advance. This selective extraction reduces storage requirements compared to storing complete tree structures with all authentication paths, while still enabling fast verification when needed.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system pre-generates and stores Merkle trees in advance, but only retains the core tree structure rather than all possible authentication paths. When verification is needed, authentication paths are derived from the stored trees, balancing storage efficiency with verification speed by performing minimal additional computation at verification time.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10728041B2Protecting computer systems using merkle trees as proof of-work
Publication Date: 2020.07.28 AMAZON TECH INC
  • US10728041B2 patent drawing
  • US10728041B2 patent drawing
  • US10728041B2 patent drawing

AI summary

A proof-of-work system where a first party (e.g., a client computer system) may request access to a computing resource. A second party (e.g., a service provider) may determine a challenge that may be provided to the first party. A valid solution to the challenge may be generated and provided for the request to be fulfilled. The challenge may include a message and a seed, such that the seed may be used at least in part to cryptographically derive information that may be used to generate a solution to the challenge. A hash tree may be generated as of generating the solution.