5.1 Rule-Based Classification

Who set the rules?

The responsibility of defining a category may be assigned to either an individual entity or a collaboration of entities such as:

  • The ASP enttity
  • The protocol entity
  • The network governance entity
  • The regulatory entity
## 5.1.1 Overview

The classification process evaluates records with a set of rules to determine it’s categories.

The ASP considers that an object categorized as is therefore compliant and must have satisfied all the rules of , i.e.:

  • A transaction is categorised as AML compliant because it has satisfied AML rules such as Sender is not in the OFAC list.
  • A person is categorised as KYC compliant because it has satisfied KYC rules such as Person has provided a valid ID.
  • A vote is categorised as Valid Vote because it has satisfied voting rules such as Vote is casted within the voting period.
  • A document is categorised as Approved Document because it has satisfied document rules such as Document is signed & reviewed by an auditor.

1. The Compliance Domain:

Given a compliance predicate and it’s propositional function:

  • Where is a set of atomic rules:

is considered a Compliance Domain only if the following holds true:

Where:

  • is compliant with if and only if satisfies all the rules in .
  • is not compliant with if and only if does not satisfy all the rules in .
  • is a set of transactions that are compliant with .
  • is a set of transactions that are not compliant with .
  • and are subsets of the universal set .

Example:

If the statements are true:

  • A set of transactions () exists such that each transaction () is AML () compliant.
  • A set of transactions () exists such that each transaction () is not AML () compliant.
  • and belong to a super set of transactions .

Then Compliance Domain () exists as a set of rules for which holds true for all transactions in and false for all transactions in .

2. Defining Compliance Rules:

By identifiying () and set & it is then possible to derive the compliance rules which governs :

  • I.e., The rules for AML compliance could be:

    • Sender & receiver is not in the OFAC list
    • Sender & receiver is not in the FATF list
    • Transaction amount is less than 1000 USD.
  • These rules are verified against a set of:

    • AML compliant transactions ()
    • non-AML compliant transactions ().

Tip

Rules should be represented as atomic & independent and therefore avoid any:

  • Representations indicating hierarchical structure of rulesi.e.:

    • Transaction is not from a sanctioned entity
      • Sender is not in the OFAC list
  • Representations indicating dependencies between rules i.e.:

    • Transaction is not from a sanctioned entity
      • Sender is not in the OFAC list
      • Sender is not in the FATF list
### 2. Deriving Categories:

A category is a translation of wherefeatures & thresholds represents the atomic rules of :

  • AML
    • Category: AML_COMPLIANT
  • Sender & receiver is not in the OFAC list
    • Feature: OFAC_LIST_MEMBERSHIP
    • Threshold: false
    • OFAC_LIST_MEMBERSHIP is false for a record.
  • Sender & receiver is not in the FATF list
    • Feature: FATF_LIST_MEMBERSHIP
    • Threshold: false
    • FATF_LIST_MEMBERSHIP is false for a record.
  • Transaction amount is less than 1000 USD.
    • Feature: TRANSACTION_AMOUNT
    • Threshold: 1000
    • TRANSACTION_AMOUNT is less than 1000 for a record.

This translation (see 4.2 Feature Types and Formats) results in a JSON Schema document such as:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "tag:0xbow.io,2024:categories:AML_COMPLIANT",
  "title": "Record is AML Compliant",
  "type": "object",
  "properties": {
    "features": {
      "type": "object",
      "properties": {
        "OFAC_LIST_MEMBERSHIP": {
          "$id": "tag:0xbow.io,2024:categories:AML_COMPLIANT:features:OFAC_LIST_MEMBERSHIP",
          "type": "boolean",
          "default": "true"
        },
        "FATF_LIST_MEMBERSHIP": {
          "$id": "tag:0xbow.io,2024:categories:AML_COMPLIANT:features:FATF_LIST_MEMBERSHIP",
          "type": "boolean",
          "default": "true"
        },
        "TRANSACTION_AMOUNT": {
          "$id": "tag:0xbow.io,2024:categories:AML_COMPLIANT:features:TRANSACTION_AMOUNT",
          "type": "integer",
          "default": "1000"
        }
      },
      "required": [
        "OFAC_LIST_MEMBERSHIP",
        "FATF_LIST_MEMBERSHIP",
        "TRANSACTION_AMOUNT"
      ]
    }
  },
  "required": ["features"]
}

Note

Features can be considered as the properties or attributes of a record which is later evaluated against the compliance rules.

i.e. The rule Sender & receiver is not in the OFAC list evaluates the value of 'OFAC_LIST_MEMBERSHIP' which is of a boolean type.

There are no constraints on the type of features that can be used in the schema. It could be a string, integer, boolean, array, object etc.

However it should not include or point/reer to another feature nor be a function of another feature.

### 3. Classifying a record :

Note that default values are set to invalidate the category for the record.

The default document is a document which satisfy the Schema but where all features have values set to its default value.

{
  "features": {
    "OFAC_LIST_MEMBERSHIP": true,
    "FATF_LIST_MEMBERSHIP": true,
    "TRANSACTION_AMOUNT": 1000
  }
}

As outlined in section 4.3, the Feature Extractor delivers the values of these features in the form of JSON patch operations.

"patch": [
  {
    "op": 2,
    "root": "0x010010",
    "$id": "tag:0xbow.io,2024:categories:AML_COMPLIANT:features:OFAC_LIST_MEMBERSHIP",
    "value": "false",
    "merkle-proof": {}
  },
  {
    "op": 2,
    "root": "0x010010",
    "$d": "tag:0xbow.io,2024:categories:AML_COMPLIANT:features:FATF_LIST_MEMBERSHIP",
    "value": "false",
    "merkle-proof": {}
  },
  {
    "op": 2,
    "root": "0x010010",
    "$d": "tag:0xbow.io,2024:categories:AML_COMPLIANT:features:TRANSACTION_AMOUNT",
    "value": "100",
    "merkle-proof": {}
  }
]

If when applying these patches to the default document, the document still satisfies the schema and the features are consistent with the rules, then the record is classified as AML_COMPLIANT.

{
  "features": {
    "OFAC_LIST_MEMBERSHIP": false,
    "FATF_LIST_MEMBERSHIP": false,
    "TRANSACTION_AMOUNT": 100
  }
}