Inspiration

FCA’s pro-competition mandate has been successful in aiding fintech to revolutionise UK banking with the implementation of a regulatory sandbox 1. This was largely due to the UK government's world-leading Open Banking initiative and upon seeing this success they have decided to go even further announcing their intention for the UK as a global hub for crypto-asset technology. The FCA is currently putting in place a regulatory framework 2 to encourage the development of crypto assets to disrupt the financial markets with CryptoSprints in May to adapt its regulatory sandbox 3. The FCA will be pressed to address the issue set out by the Crypto Asset Taskforce report which stated that crypto wallets and exchanges do not have good enough infrastructure to protect customers from cybercrime. With the rise of decentralised transactions, there is an increasing need to reassure customers that they are transferring money to a secure account. The aim of our project is to empower users so that they can confidently transact within the blockchain echo systems. This will be through education and tools we build to increase confidence in secure transactions within the blockchain ecosystem.

What it does

It currently is a web app hosted on Azure that we can use to check the score of cryptocurrency wallet addresses to determine their credibility before processing a transaction.

This score is determined by a custom centrality algorithm that was designed after discovering a correlation between healthy wallet activity on a network and its trustworthiness. After experimenting with several prebuilt solutions such as Eigen Vectors, Harmonic Centrality, and Page Rank amongst others, this correlated relationship is captured by examining the Degree of a specific target wallet within the network (currently Ethereum only but with scope to easily expand this). We use a Wallet Score Query on our TigerGraph cloud instance to get result for the wallet we have inputted.

We also have a command-line functionality to allow for generation of the wallet credibility score, this can be integrated into 3rd party services with ease as an API.

How we built it

Python is used on the backend to create the tool to take a user’s input, query TigerGraph (using pyTigerGraph), and return the result.

The front-end is a Flask application with HTML and CSS where the user can configure how to interact with TigerGraph, and see the results.

The TigerGraph solution holding the core of the project is written in GSQL and was initially generated through the Graph Patterns Beta Tool (Please see TigerGraph Graph Pattern - Project Media) before being exported as a GSQL query.

The package to pull the initial data from the Ethereum blockchain that is then loaded into TigerGraph is ethereum-etl, which has integrations with the Google Cloud Platform.

The final user tool is hosted on Microsoft Azure cloud services based site.

Challenges we ran into

It was really difficult to find a training set of data with wallets that are known to be fraudulent.

Identifying fraudulent wallets to identify and test our scoring method was challenging as it is troublesome to find a list of known unsafe wallets.

Integrating PyTigerGraph with Azure App Services to host the site had multiple challenges.

Additionally, loading in the full size blockchain for Ethereum was not possible with our free TigerGraph account.

Accomplishments that we're proud of

Developing a process of extracting Ethereum Blockchain data and loading into a TigerGraph Schema with the possibility of directly streaming in data using Kafka in the future.

Proof of concept of 3rd party API integration via the command-line interface.

Provide a service to enable users to freely verify wallets via our hosted front-end.

Experimented with a multitude of centrality and community algorithms but found our custom build Graph Pattern based query to out perform them.

What we learned

We have learned that mapping Ethereum transaction data using TigerGraph studio allows us to produce interesting visual analysis of Blockchain data and perform time based analysis of information due to our unique schema design.

We learnt how to develop custom queries inspired by centrality based algorithms.

We have learnt to host our web app on an Azure App Service with Docker integration and usage of PyTigerGraph.

We learnt how powerful TigerGraph is for network based applications and large scale data analysis with significant room for expansion.

What's next for Blockchain Wallet Verification

We intend to expand the Blockchain networks available with our service. We have planned to enable Fantom, Avalanche and Binance Smart Chain in the near future.

We want to develop additional scores to explore various other metrics that can enable a safer environment for users. We would like to apply machine learning on these metrics to provide a more robust offering.

Come up with an ETL process that will regularly load data of new blocks that will be processed. Could take advantage of BitQueries' public Ethereum data set and build an auto loading graph schema with that data. Additionally, we would like to use Kafka to take on data streams from eth-ETL that will have near-live time blocks that we can autoloaded on Graph.

Develop a API endpoint for entering in wallets address for 3rd party access such as MetaMask enabling automatic warnings to be presented to users before transacting.

Share this project:

Updates