ShadeCheck: FAIL

Defined observable behavior tests; passing does not establish anonymity.

Policy: strict · 1 findings

Evidence root: 88d6b5dbbd0f5f6402ef91ff2602e633745e3bacb3aad6024026552584906de9

Tested rules

RuleCoverageCovered
SC-001complete-range-deliveryTrue

Findings

SC-001 · MEDIUM · Block range violates configured sync disclosure policy

Observed behavior: Requested heights 103 through 109 (7 blocks): start height is not aligned to the configured boundary; inclusive request size differs from the configured chunk size.

Possible consequence: The service observes the connection's exact scan boundary and request size. These can depend on local sync state, but wallet history or identity is not proven.

Affected component: lightwalletd block-range synchronization

Investigation: Review fixed-size aligned retrieval, local filtering, and chain-tip handling against the declared policy; evaluate extra bandwidth and other privacy tradeoffs.

Inspect current evidence (8 events)
[
  {
    "elapsed_ns": 6351324,
    "event_hash": "77468ac426cae81a7c99c09821f1af95ec93af598c0a0e763f784dda8db3c149",
    "metadata": {
      "end_height": 109,
      "start_height": 103
    },
    "method": "GetBlockRange",
    "mode": "upstream",
    "phase": "request",
    "previous_hash": "0000000000000000000000000000000000000000000000000000000000000000",
    "schema_version": 1,
    "sequence": 1,
    "session": "4dd05b23392cfec0e80bf5948c2ea32f2fe0e849d6f36af069da1500b32cb3b4",
    "timestamp_ns": 1792833810305236821
  },
  {
    "elapsed_ns": 7812221,
    "event_hash": "aa438914416d206a42c5b8a06fa16962a523586cc3d7c400db2bf1f86400748b",
    "metadata": {
      "block_hash": "f24d6e7666100c5ddb3fe9a42e8dbe150eebdad9b89177cf341086eb26ed0d02",
      "height": 103,
      "request_sequence": 1,
      "serialized_sha256": "6e3f4e63f4bb6a678599c75cbd43e99c70e6d2d8305f782af495e0614af5f948",
      "transaction_ids": []
    },
    "method": "GetBlockRange",
    "mode": "upstream",
    "phase": "response",
    "previous_hash": "77468ac426cae81a7c99c09821f1af95ec93af598c0a0e763f784dda8db3c149",
    "schema_version": 1,
    "sequence": 2,
    "session": "4dd05b23392cfec0e80bf5948c2ea32f2fe0e849d6f36af069da1500b32cb3b4",
    "timestamp_ns": 1792833810306697808
  },
  {
    "elapsed_ns": 8339358,
    "event_hash": "474729b400a2f0e74ad0d3cd65c1ffbe616b308915a95ffe9554d08e3cc154b9",
    "metadata": {
      "block_hash": "9bd1d1e029b32ff597a5fdcd6cf19ab46e23adcfbb1a5ec531787a8a7136bd0b",
      "height": 104,
      "request_sequence": 1,
      "serialized_sha256": "440462894933a096cb461dd2cf651977fffa082985a82a602be9b1305ed4a643",
      "transaction_ids": []
    },
    "method": "GetBlockRange",
    "mode": "upstream",
    "phase": "response",
    "previous_hash": "aa438914416d206a42c5b8a06fa16962a523586cc3d7c400db2bf1f86400748b",
    "schema_version": 1,
    "sequence": 3,
    "session": "4dd05b23392cfec0e80bf5948c2ea32f2fe0e849d6f36af069da1500b32cb3b4",
    "timestamp_ns": 1792833810307225035
  },
  {
    "elapsed_ns": 8715430,
    "event_hash": "5c0d4ebe9a3f479c2e1ed4a43c7aa3d2b87f1f0e9e8d724ae8f6d03e762caf81",
    "metadata": {
      "block_hash": "f1d476273a0bf74a1c073dbe098e94a66a760dd14412629890feaef39b26140b",
      "height": 105,
      "request_sequence": 1,
      "serialized_sha256": "0f591157cf09e74ce9132b11eb1c762c2f28b8314a9ef6f94f698f13413908e3",
      "transaction_ids": []
    },
    "method": "GetBlockRange",
    "mode": "upstream",
    "phase": "response",
    "previous_hash": "474729b400a2f0e74ad0d3cd65c1ffbe616b308915a95ffe9554d08e3cc154b9",
    "schema_version": 1,
    "sequence": 4,
    "session": "4dd05b23392cfec0e80bf5948c2ea32f2fe0e849d6f36af069da1500b32cb3b4",
    "timestamp_ns": 1792833810307601117
  },
  {
    "elapsed_ns": 9048571,
    "event_hash": "a9e0d62b4017e3855a8f1333509e9dd719dc4092ad9689386c05b5c7760fc43a",
    "metadata": {
      "block_hash": "58dbb3169028cbb4726dcef18103bf73a87abf502a360923a3e2196701165a09",
      "height": 106,
      "request_sequence": 1,
      "serialized_sha256": "494f9ac12f5846fe6fbaea3bfe457a7af3b7b53dd7fbf3aec45fa38be55e331f",
      "transaction_ids": []
    },
    "method": "GetBlockRange",
    "mode": "upstream",
    "phase": "response",
    "previous_hash": "5c0d4ebe9a3f479c2e1ed4a43c7aa3d2b87f1f0e9e8d724ae8f6d03e762caf81",
    "schema_version": 1,
    "sequence": 5,
    "session": "4dd05b23392cfec0e80bf5948c2ea32f2fe0e849d6f36af069da1500b32cb3b4",
    "timestamp_ns": 1792833810307934229
  },
  {
    "elapsed_ns": 9327953,
    "event_hash": "c0cc0e52cf1273d33c525b6a9959f29990c253685ace8bd84d2424fcba6eb318",
    "metadata": {
      "block_hash": "5fe7c2063e93327201494226cabe11e30ce924ade4f6396971625675bed9950a",
      "height": 107,
      "request_sequence": 1,
      "serialized_sha256": "55e156b982e1f6ba6f1544ffdbbdbc1d5965bc811d38a20fbcfb8794e5ee4cf6",
      "transaction_ids": []
    },
    "method": "GetBlockRange",
    "mode": "upstream",
    "phase": "response",
    "previous_hash": "a9e0d62b4017e3855a8f1333509e9dd719dc4092ad9689386c05b5c7760fc43a",
    "schema_version": 1,
    "sequence": 6,
    "session": "4dd05b23392cfec0e80bf5948c2ea32f2fe0e849d6f36af069da1500b32cb3b4",
    "timestamp_ns": 1792833810308213660
  },
  {
    "elapsed_ns": 9631840,
    "event_hash": "743f8591f0b4e1938b97fdff2be855173cb65d042f3d8b73e57cb12b2bbbf9ed",
    "metadata": {
      "block_hash": "398b75d9d51f5a2b61e724203daecc96307dc241a0c28a5c3ec58a8f8a91a40b",
      "height": 108,
      "request_sequence": 1,
      "serialized_sha256": "d01d6568d5630f5214e836c5daf764cfb42628b19d76f05d15d73dcc490a006a",
      "transaction_ids": []
    },
    "method": "GetBlockRange",
    "mode": "upstream",
    "phase": "response",
    "previous_hash": "c0cc0e52cf1273d33c525b6a9959f29990c253685ace8bd84d2424fcba6eb318",
    "schema_version": 1,
    "sequence": 7,
    "session": "4dd05b23392cfec0e80bf5948c2ea32f2fe0e849d6f36af069da1500b32cb3b4",
    "timestamp_ns": 1792833810308517528
  },
  {
    "elapsed_ns": 10009936,
    "event_hash": "88d6b5dbbd0f5f6402ef91ff2602e633745e3bacb3aad6024026552584906de9",
    "metadata": {
      "block_hash": "0208b147d29f7beb81945339f5e6e73909faaa54706e410957d676811e1b1108",
      "height": 109,
      "request_sequence": 1,
      "serialized_sha256": "3c13d4ce5041bf800b052d1b6e1f00f36e0249fa35a06e4d9baf53908d7a6cb5",
      "transaction_ids": []
    },
    "method": "GetBlockRange",
    "mode": "upstream",
    "phase": "response",
    "previous_hash": "743f8591f0b4e1938b97fdff2be855173cb65d042f3d8b73e57cb12b2bbbf9ed",
    "schema_version": 1,
    "sequence": 8,
    "session": "4dd05b23392cfec0e80bf5948c2ea32f2fe0e849d6f36af069da1500b32cb3b4",
    "timestamp_ns": 1792833810308895553
  }
]

Limitations

Complete JSON result
{
  "correlation_window_seconds": 30,
  "evidence_modes": [
    "upstream"
  ],
  "evidence_root": "88d6b5dbbd0f5f6402ef91ff2602e633745e3bacb3aad6024026552584906de9",
  "findings": [
    {
      "affected_component": "lightwalletd block-range synchronization",
      "complete_range_delivered": true,
      "evidence": [
        {
          "elapsed_ns": 6351324,
          "event_hash": "77468ac426cae81a7c99c09821f1af95ec93af598c0a0e763f784dda8db3c149",
          "metadata": {
            "end_height": 109,
            "start_height": 103
          },
          "method": "GetBlockRange",
          "mode": "upstream",
          "phase": "request",
          "previous_hash": "0000000000000000000000000000000000000000000000000000000000000000",
          "schema_version": 1,
          "sequence": 1,
          "session": "4dd05b23392cfec0e80bf5948c2ea32f2fe0e849d6f36af069da1500b32cb3b4",
          "timestamp_ns": 1792833810305236821
        },
        {
          "elapsed_ns": 7812221,
          "event_hash": "aa438914416d206a42c5b8a06fa16962a523586cc3d7c400db2bf1f86400748b",
          "metadata": {
            "block_hash": "f24d6e7666100c5ddb3fe9a42e8dbe150eebdad9b89177cf341086eb26ed0d02",
            "height": 103,
            "request_sequence": 1,
            "serialized_sha256": "6e3f4e63f4bb6a678599c75cbd43e99c70e6d2d8305f782af495e0614af5f948",
            "transaction_ids": []
          },
          "method": "GetBlockRange",
          "mode": "upstream",
          "phase": "response",
          "previous_hash": "77468ac426cae81a7c99c09821f1af95ec93af598c0a0e763f784dda8db3c149",
          "schema_version": 1,
          "sequence": 2,
          "session": "4dd05b23392cfec0e80bf5948c2ea32f2fe0e849d6f36af069da1500b32cb3b4",
          "timestamp_ns": 1792833810306697808
        },
        {
          "elapsed_ns": 8339358,
          "event_hash": "474729b400a2f0e74ad0d3cd65c1ffbe616b308915a95ffe9554d08e3cc154b9",
          "metadata": {
            "block_hash": "9bd1d1e029b32ff597a5fdcd6cf19ab46e23adcfbb1a5ec531787a8a7136bd0b",
            "height": 104,
            "request_sequence": 1,
            "serialized_sha256": "440462894933a096cb461dd2cf651977fffa082985a82a602be9b1305ed4a643",
            "transaction_ids": []
          },
          "method": "GetBlockRange",
          "mode": "upstream",
          "phase": "response",
          "previous_hash": "aa438914416d206a42c5b8a06fa16962a523586cc3d7c400db2bf1f86400748b",
          "schema_version": 1,
          "sequence": 3,
          "session": "4dd05b23392cfec0e80bf5948c2ea32f2fe0e849d6f36af069da1500b32cb3b4",
          "timestamp_ns": 1792833810307225035
        },
        {
          "elapsed_ns": 8715430,
          "event_hash": "5c0d4ebe9a3f479c2e1ed4a43c7aa3d2b87f1f0e9e8d724ae8f6d03e762caf81",
          "metadata": {
            "block_hash": "f1d476273a0bf74a1c073dbe098e94a66a760dd14412629890feaef39b26140b",
            "height": 105,
            "request_sequence": 1,
            "serialized_sha256": "0f591157cf09e74ce9132b11eb1c762c2f28b8314a9ef6f94f698f13413908e3",
            "transaction_ids": []
          },
          "method": "GetBlockRange",
          "mode": "upstream",
          "phase": "response",
          "previous_hash": "474729b400a2f0e74ad0d3cd65c1ffbe616b308915a95ffe9554d08e3cc154b9",
          "schema_version": 1,
          "sequence": 4,
          "session": "4dd05b23392cfec0e80bf5948c2ea32f2fe0e849d6f36af069da1500b32cb3b4",
          "timestamp_ns": 1792833810307601117
        },
        {
          "elapsed_ns": 9048571,
          "event_hash": "a9e0d62b4017e3855a8f1333509e9dd719dc4092ad9689386c05b5c7760fc43a",
          "metadata": {
            "block_hash": "58dbb3169028cbb4726dcef18103bf73a87abf502a360923a3e2196701165a09",
            "height": 106,
            "request_sequence": 1,
            "serialized_sha256": "494f9ac12f5846fe6fbaea3bfe457a7af3b7b53dd7fbf3aec45fa38be55e331f",
            "transaction_ids": []
          },
          "method": "GetBlockRange",
          "mode": "upstream",
          "phase": "response",
          "previous_hash": "5c0d4ebe9a3f479c2e1ed4a43c7aa3d2b87f1f0e9e8d724ae8f6d03e762caf81",
          "schema_version": 1,
          "sequence": 5,
          "session": "4dd05b23392cfec0e80bf5948c2ea32f2fe0e849d6f36af069da1500b32cb3b4",
          "timestamp_ns": 1792833810307934229
        },
        {
          "elapsed_ns": 9327953,
          "event_hash": "c0cc0e52cf1273d33c525b6a9959f29990c253685ace8bd84d2424fcba6eb318",
          "metadata": {
            "block_hash": "5fe7c2063e93327201494226cabe11e30ce924ade4f6396971625675bed9950a",
            "height": 107,
            "request_sequence": 1,
            "serialized_sha256": "55e156b982e1f6ba6f1544ffdbbdbc1d5965bc811d38a20fbcfb8794e5ee4cf6",
            "transaction_ids": []
          },
          "method": "GetBlockRange",
          "mode": "upstream",
          "phase": "response",
          "previous_hash": "a9e0d62b4017e3855a8f1333509e9dd719dc4092ad9689386c05b5c7760fc43a",
          "schema_version": 1,
          "sequence": 6,
          "session": "4dd05b23392cfec0e80bf5948c2ea32f2fe0e849d6f36af069da1500b32cb3b4",
          "timestamp_ns": 1792833810308213660
        },
        {
          "elapsed_ns": 9631840,
          "event_hash": "743f8591f0b4e1938b97fdff2be855173cb65d042f3d8b73e57cb12b2bbbf9ed",
          "metadata": {
            "block_hash": "398b75d9d51f5a2b61e724203daecc96307dc241a0c28a5c3ec58a8f8a91a40b",
            "height": 108,
            "request_sequence": 1,
            "serialized_sha256": "d01d6568d5630f5214e836c5daf764cfb42628b19d76f05d15d73dcc490a006a",
            "transaction_ids": []
          },
          "method": "GetBlockRange",
          "mode": "upstream",
          "phase": "response",
          "previous_hash": "c0cc0e52cf1273d33c525b6a9959f29990c253685ace8bd84d2424fcba6eb318",
          "schema_version": 1,
          "sequence": 7,
          "session": "4dd05b23392cfec0e80bf5948c2ea32f2fe0e849d6f36af069da1500b32cb3b4",
          "timestamp_ns": 1792833810308517528
        },
        {
          "elapsed_ns": 10009936,
          "event_hash": "88d6b5dbbd0f5f6402ef91ff2602e633745e3bacb3aad6024026552584906de9",
          "metadata": {
            "block_hash": "0208b147d29f7beb81945339f5e6e73909faaa54706e410957d676811e1b1108",
            "height": 109,
            "request_sequence": 1,
            "serialized_sha256": "3c13d4ce5041bf800b052d1b6e1f00f36e0249fa35a06e4d9baf53908d7a6cb5",
            "transaction_ids": []
          },
          "method": "GetBlockRange",
          "mode": "upstream",
          "phase": "response",
          "previous_hash": "743f8591f0b4e1938b97fdff2be855173cb65d042f3d8b73e57cb12b2bbbf9ed",
          "schema_version": 1,
          "sequence": 8,
          "session": "4dd05b23392cfec0e80bf5948c2ea32f2fe0e849d6f36af069da1500b32cb3b4",
          "timestamp_ns": 1792833810308895553
        }
      ],
      "observed_behavior": "Requested heights 103 through 109 (7 blocks): start height is not aligned to the configured boundary; inclusive request size differs from the configured chunk size.",
      "possible_privacy_consequence": "The service observes the connection's exact scan boundary and request size. These can depend on local sync state, but wallet history or identity is not proven.",
      "request_size": 7,
      "rule_id": "SC-001",
      "severity": "MEDIUM",
      "suggested_investigation": "Review fixed-size aligned retrieval, local filtering, and chain-tip handling against the declared policy; evaluate extra bandwidth and other privacy tradeoffs.",
      "sync_policy": {
        "alignment_height": 0,
        "chunk_size": 20
      },
      "title": "Block range violates configured sync disclosure policy",
      "violations": [
        "start height is not aligned to the configured boundary",
        "inclusive request size differs from the configured chunk size"
      ]
    }
  ],
  "limitations": [
    "Defined tests cover SC-001 through SC-004; SC-005 requires a compatible saved baseline.",
    "A transport peer identifies a connection, not a person or wallet.",
    "Local fixture replay is not consensus validation or network acceptance.",
    "Transaction SHA-256 fingerprints are not Zcash transaction IDs.",
    "No violation observed does not establish anonymity."
  ],
  "payment_policy": null,
  "policy": "strict",
  "rules": [
    {
      "coverage": "complete-range-delivery",
      "covered": true,
      "executed": true,
      "rule_id": "SC-001"
    }
  ],
  "schema_version": 1,
  "status": "FAIL",
  "sync_policy": {
    "alignment_height": 0,
    "chunk_size": 20
  }
}