# DappRank: Measuring Censorship Resistance in Web3 Applications DappRank is a dashboard which evaluates and ranks decentralized applications (dApps) based on their resistance to censorship. It analyzes the technical implementation of each application to determine how well it would continue to function in environments where centralized services might be blocked or compromised. # Censorship Resistance Scoring Algorithm ## Overview The censorship resistance score evaluates how resistant a web application is to censorship by measuring its reliance on external dependencies and its use of decentralized web3 technologies. The score ranges from 0 to 100, with higher scores indicating better censorship resistance. ## Baseline - All applications start with a baseline score of 70 points ## Scoring Factors ### Distribution Purity Issues (Negative Factor) External resources that could be censored reduce the score: - Each external script: -5 points (max -25) - Each external media resource: -1 point (max -5) - Maximum penalty from distribution issues: -30 points ### Networking and Web3 Factors Network connections and web3 integrations affect the score: - Each auxiliary network connection: -5 points (max -25) - Having RPC connections: +3 points - Having bundler connections: +3 points - Having Ethereum interactions: +5 points ### DappSpec Bonuses Applications with a DappSpec manifest can earn additional points: - Each unique RPC or bundler URL: +3 points - Each matching auxiliary endpoint with documentation: +4 points - Each enabled fallback mechanism: +7 points ## Score Categories - High (70-100): Excellent censorship resistance - Medium (40-69): Moderate censorship resistance - Low (0-39): Poor censorship resistance ## Implementation Details 1. The algorithm starts with a baseline score of 70 2. It applies distribution purity penalties for external scripts and media 3. It evaluates networking patterns, penalizing auxiliary connections while rewarding RPC and bundler usage 4. It adds bonuses for Ethereum integration 5. If a DappSpec manifest is present, it adds bonuses for: - Documented RPC and bundler endpoints - Well-documented auxiliary connections - Implemented fallback mechanisms 6. The final score is capped between 0 and 100 ## Example Calculation For an application with: - 2 external scripts - 1 external media resource - 1 auxiliary network connection - RPC and bundler connections - Ethereum integration - DappSpec with 2 fallbacks The calculation would be: - Start with baseline: 70 points - Distribution penalty: (2 × -5) + (1 × -1) = -11 points - Auxiliary penalty: (1 × -5) = -5 points - RPC and bundler bonus: +6 points - Ethereum bonus: +5 points - Fallback bonus: (2 × 7) = +14 points - Final score: 70 - 11 - 5 + 6 + 5 + 14 = 79 points (High category) ## Rationale This scoring system rewards applications that minimize centralized dependencies while implementing robust decentralized features and fallback mechanisms. The scoring particularly favors applications that: 1. Minimize external resource dependencies 2. Implement proper blockchain integrations 3. Provide comprehensive documentation via DappSpec 4. Include fallback mechanisms for resilience