How to use SYGNAL's signal & track-record auditing tools

SYGNAL uses blockchain technology to provide an immutable track record of all signal models and individual trading signals on the platform.

In a nutshell, as trade signals arrive, we hash the data and publish daily a hash of all signal hashes onto the Ethereum blockchain. Posting this information onto a blockchain means that it cannot be modified, not even by us. Users can compare the data on-chain with that on our platform, thus guaranteeing that the signals have not been curve-fitted or manipulated.

SYGNAL's auditing tools grant users quick access to both the clear-data from the platform and blockchain data to verify accuracy independently and examine the Javascript code used to generate the hashes.

How it works

A hash is a number generated from a string of text. The hash is both unique and substantially smaller than the text itself. Using the same formula to hash the same set of data will produce an exact matched hash value, making it possible to confirm that the data is the same, although stored in different locations.

The Signal Hash & Signal Rehash

SYGNAL hashes every trading signal as they land on the platform. This hash is called the Signal Hash. The Signal Hash is stored locally in our database. An end-user can recreate any Signal Hash using the raw signal data by employing an SHA-256 hashing algorithm. The SYGNAL website does this work for you by reapplying the SHA-256 algorithm in JavaScript to the raw signal data and then displaying the Signal Rehash next to the stored Signal Hash for easy comparison. Technically inclined users can directly review the working JavaScript code on the website.

By comparing the Signal Hash with the Signal Rehash, an end-user can verify if someone altered the data on a specific signal. Should such be the case, the audit will read "FAILED." Otherwise, the two hash values match, and the audit will read "VERIFIED".

Here is an example for an Apple Inc (APPL:US) signal, generated by a long-term, trend-following model:

Blockchain signal audit | SYGNAL

Click here to view the entire audit.

The Daily Hash & Blockchain Hash

On a 24 basis, SYGNAL hashes all Signal Hashes created during the day. This hash, called the Daily Hash, records all signals collected in our database over a 24-hour period. An end-user can recreate the Daily Hash by rehashing ALL Signal Hashes from a given day, using the SHA-256 hashing algorithm. Savvy users can download a .csv file of all Signal Hashes from the same day to independently recreate the Daily Hash.

We quotidianly publish the Daily Hash onto the Ethereum blockchain. This is called the Blockchain Hash, and is publically available on the Ethereum network. Once published, the Daily Hash becomes immutable, and we can no longer alter it. We pull the Blockchain Hash using the etherscan.io API and display it next to the locally stored Daily Hash in our auditing tools.

By comparing the Daily Hash with the Blockchain Hash, an end-user can determine if someone altered data for the given period. If an actor has changed data, the Daily Hash and Blockchain Hash will not match, and the audit will read "FAILED." Otherwise the audit will read "VERIFIED".

For example, here is the blockchain audit for a Long-term Trend-following signal applied to Tencent Holdings Ltd. (700:HK):

Blockchain signal audit | SYGNAL

Click here to view the entire audit.

Verifying a model's track record

We create an audited track record by applying the above-described methodology to all signals generated by a specific signal model as applied to a particular instrument.

The track-record audit displays each signal by date of signal generation, from the most recent to the oldest.

If the Blockchain Hash plus Daily Hash values AND the Signal Hash plus Signal Rehash values match, the audit will read "VERIFIED," and the end-user can sleep easily knowing that a signal's data is correct.

By hashing data every day for every signal from a given model, the process allows us to establish an immutable track-record.

For example, here is the track-record for a Short-term, Trend-following model applied to Ethereum (ETHUSD):

Blockchain signal audit | SYGNAL

Click here to view the entire track record.

By hashing data every day for every signal from a given model, the process allows us to establish an immutable track-record.

How to find the audit trail for a signal model

Users will find the audit trail for each signal model on the respective model's report page. Look for the Blockchain Verified symbol on the top right corner of the page. Click on it to be redirected to the model's track record.

Blockchain signal audit | SYGNAL

How to review the underlying data for a specific signal

To review the underlying data for a specific signal, once on the model's track record, use the link on the table's right to navigate to the detailed audit page.

Blockchain signal audit | SYGNAL

How to manually verify a signal's accuracy

Although SYGNAL's auditing tools provide accurate data verification, it is still possible to manually reconstruct both the Signal Hash and Daily Hash yourself.

How to reconstruct a Signal Hash

Step 1:

The first step to hashing the signal is to organize the data in a .csv file. Users can access the data on the audit page for the specific signal they wish to verify.

Signal Hashes are .csv files containing the raw signal data and metadata. To recreate an identical hash, the signal data must be formatted in the same order, format, and using the same data as the original. There cannot be a single additional space, comma, or diverging character. Otherwise, the hashes will not match.

One must include the following data in this exact order within the .csv file to recreate the hash:

Input data Description Example
Signal UUID Signal's unique ID 97e453ab-18ef-4109-a82f-b27d3b64d2b2
Signal Value Signal's value or strength 1.00
Signal For Date to which the signal applies 2021-01-02T12:22:32Z
Received On Date signal arrived on the platform 2021-01-02T12:22:32.859Z
Published On Date signal was published 2021-01-02T12:22:32.859Z
Market Symbol Market symbol of underlying instrument AAPL:US
Model UUID Unique ID of model used to generate the signal 76af23c0-04e1-4452-b664-52042ba5fd5b
Manager UUID Unique ID of the quant manager who provided the signal 53fbe3e7-e607-463c-2271-4f3a4661a915
Previous Hash Hash of the previous signal provided for the same instrument using the same model 8cf14853a38cbc2de24bb2de89d66fe50359174dcdace89daa40c19fe3368030

Here is an example of a .csv file created from the example data in the above table:

97e453ab-18ef-4109-a82f-b27d3b64d2b2,1,2021-01-02T12:22:32Z,2021-01-02T12:22:32.859Z,2021-01-02T12:22:32.859Z,AAPL:US,76af23c0-04e1-4452-b664-52042ba5fd5b,53fbe3e7-e607-463c-2271-4f3a4661a915,8cf14853a38cbc2de24bb2de89d66fe50359174dcdace89daa40c19fe3368030

Rather than reconstruct the .csv file manually, SYGNAL allows you to download the correctly formated data file directly from the signal audit page.

Step 2:

Once you have saved the data in a .csv file, the next step is to hash it using the SHA-256 algorithm. You can perform the hash on a third-party website or using a coding language such as python or javascript.

Rehashing the .csv file from the above example, creates a hash value of:

e7d8f4a93cd8e433bcc349045ad00a64fadc497b034f4beafc8750a577a2f88f

which matches the Signal Hash stored on the platform's database.

How to verify that the Blockchain Hash truly exists on the blockchain

You can check that the Blockchain Hash does exist on the blockchain by clicking "VIEW CHAIN" button on the signal audit page on the website. So doing will take you to etherscan.io, a Blockchain explorer that aims to provide equitable access to blockchain data.

Blockchain signal audit | SYGNAL

This link will take you to the transaction under which the Blockchain Hash has been stored.

To view the Hash on chain, scroll down and click on "Click to see More" to expand the inerface.

Veryify Hash on blockchain | SYGNAL

Next, click the "View Input As" button, and select UTF-8.

Veryify Hash on blockchain | SYGNAL

If the Hash stored on chain matches the Hash on sygnal.ai, you know that the data has not been manipulated.