Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prove name is not on OFAC list #120

Closed
0xturboblitz opened this issue Jun 7, 2024 · 1 comment
Closed

Prove name is not on OFAC list #120

0xturboblitz opened this issue Jun 7, 2024 · 1 comment
Assignees
Labels
help wanted Extra attention is needed medium

Comments

@0xturboblitz
Copy link
Member

0xturboblitz commented Jun 7, 2024

We should be able to check if someone is in the OFAC sanctioned entity list.

How I would do it:

  • Download the list from the OFAC SDN website page.
  • Parse all individuals and ethereum addresses. Disregard other entities. For individual, gather when available: full name, passport number, date of birth. I would use either SDN_ADVANCED.XML or SDN.CSV. There probably exists tools to do so.
  • Find a nice way to format them into a sparses merkle trees.
  • Write a new disclosure circuit that parses the required fields from the MRZ, does non-inclusion checks over the trees just like in Add nationality set inclusion check to circuit #56, and output the result as a boolean.

In totem, we extracted the full name from the MRZ using zk-regex. It might be possible to use a lighter approach as the first name and last name are always separated by <<, and the first and middle names by <.

Here is how I think of matching:

  • The most qualitative level is passport number and ethereum addresses. They are both unambiguous. The ethereum address can be matched with user_identifier in the disclosure circuit, as it corresponds to the user's address in the onchain flow.
  • The next level is names and date of birth. Because of homonyms, it's not reliable to match just names (e.g. Mohamad Khalid is included and common). Fortunately, the list includes more than 7500 birth dates, and most often middle names. So all of them can be matched together.
@ashpect
Copy link
Contributor

ashpect commented Jun 28, 2024

Working on the implementation here

@remicolin remicolin removed the good first issue Good for newcomers label Jul 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed medium
Projects
None yet
Development

No branches or pull requests

3 participants