---
description: Reflection of creativity
---

# SIX ECHO

![](https://971208021-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LNwjTTNeERUAgTZzWoU%2F-Lxzqan28hCLOFEn_t1f%2F-LxzrgM7fneSSDdebDCI%2FEcho-1-page.png?alt=media\&token=44f371be-b206-4703-8786-8705c9597cf5)



## The current situation on intellectual property <a href="#the-current-situation-on-intellectual-property" id="the-current-situation-on-intellectual-property"></a>

With the size and growth of market on digital's contents, there is one big problem; its identity and chain of ownership, this is known as provenance

As seen on diagram below which is showing the growth of wealth in the next decade on the market, more assets mean more intellectual property infringement

![](https://blobscdn.gitbook.com/v0/b/gitbook-28427.appspot.com/o/assets%2F-LNwjTTNeERUAgTZzWoU%2F-LmD08oi4kClgQbxj1re%2F-LmD6a8tE6yT3cBrd9nt%2Fimage.png?alt=media\&token=983451d7-92c2-462a-b110-9e57d7b6578e)

Source: Deloitte Luxembourg & ArtTactic Art & Finance Report 2017

As mentioned above, we foresee infinite problems that arise. SIX Network has started the ECHO project in order to help creators of digital assets in various forms. Whether it's photos, articles, novels, musics and videos, able to bring their own digital assets to report/record ownership rights. Including being able to help those who want to publish, reproduce or distribute to verify the rights to assets that the assets acquired that is a legitimate asset without violating the rights of the creators

## Our goals <a href="#our-goals" id="our-goals"></a>

* To give digital content creators to store their works in our SIX digital asset storage chain which would be stored on the blockchain
* With the proof of ownership and proof of existence, such works could be easily tracked from the first hash since the beginning
* With the power of blockchain, all related parties would be collaborate and revenue sharing through agreements on smart contracts
* To facilitate wallet-to-wallet decentralized between the creators and consumers
* We are going to make a better future for the whole digital economy and the digital creative industries

## Our solutions <a href="#our-solutions" id="our-solutions"></a>

* ECHO will store asset's identity and ownership history in a secure digital token/smart contract
  * Semantic metadata
    * Assets' information such as title, author, creator, publisher, photographer, etc.
  * Digital fingerprint
    * The set of binary digits that uniquely identifies an digital asset
* ECHO will not store contents in blockchain but semantic data and digital fingerprint
* ECHO uses unique consensus method to synchronized asset's identity
* ECHO creates index of creative works which will allow creators to explore their rights
* ECHO project is an open source under the term of Apache-2.0
* ECHO uses SIX token as a fee to store and verify creative works

![](https://971208021-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LNwjTTNeERUAgTZzWoU%2F-Lxzqan28hCLOFEn_t1f%2F-Lxzrpd8Lnt6MuV7crKa%2FEcho-overall.png?alt=media\&token=11e4d52e-eb2a-44a6-9e6f-d26da2818cc1)

&#x20;                                                                               ECHO overall

## Our technic <a href="#our-technic" id="our-technic"></a>

* Digital fingerprint
  * Generate contents' digest by mathematical algorithm which its result will be a set of binary arrays
* Validators
  * By checking the duplication of;
    * Semantic metadata
    * Digest hash
* Consensus model
  * Together with our platform's partners, SIX Storage Chain will manage and handle the consensus protocol as governance core chain
* &#x20;Semantic metadata and digital fingerprint will also be published to other public chains but not limited to, such as Klaytn, Ethereum, etc.

## In practice <a href="#in-practice" id="in-practice"></a>

* ECHO provides an SDK for a platform, like OOKBEE, to install on their environment to communicate to our SIX Storage Chain environment
  * SDK functions;
    * Semantic metadata input
    * Digital fingerprint generation
* ECHO does not only limited to novel and article but also all related digital contents creator businesses/industries, such as music industries, production studios, advertisement houses, etc.
* Format of digital contents on ECHO

![](https://blobscdn.gitbook.com/v0/b/gitbook-28427.appspot.com/o/assets%2F-LNwjTTNeERUAgTZzWoU%2F-LmNcxNwghwWA8wCN1ne%2F-LmNv1_gYvPU5WatpGPG%2Fimage.png?alt=media\&token=a0d1c1c6-a00c-409d-8be6-deacef287079)

![](https://971208021-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LNwjTTNeERUAgTZzWoU%2F-Lxzqan28hCLOFEn_t1f%2F-LxzrxTSkutNKoVFYDrF%2FEcho-audio.png?alt=media\&token=a6934a71-eaf4-4dd4-8f01-f16f2dd7fd88)

&#x20;                                                                            Sound/Music

![](https://971208021-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LNwjTTNeERUAgTZzWoU%2F-Lxzqan28hCLOFEn_t1f%2F-Lxzs3NmdwamJxVT_kHD%2FEcho-image%20\(1\).png?alt=media\&token=30cdfd9b-7119-4a76-938f-4b2433c93a3f)

&#x20;                                                                       Image/Photograph

![](https://971208021-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LNwjTTNeERUAgTZzWoU%2F-Lxzqan28hCLOFEn_t1f%2F-Lxzs7g0pFFSFYvewXE2%2FEcho-text.png?alt=media\&token=6e55bc2c-5e22-4b07-ae4e-f33261ee599d)

&#x20;                                                                             Text(Novel)

## ECHO technical process <a href="#echo-technical-process" id="echo-technical-process"></a>

Our technic on how ECHO check and validate the duplication of IP as described here below

### Image digest <a href="#image-digest" id="image-digest"></a>

First, we are going to create four digest formats

* aHash, average hash value of the image digest
  * Reduce the size, by doing this, the high frequencies/detail of the image will be reduced and removed by shrinking the image size together with ANTIALIAS function(to still remain the detail as much as possible). Now the size of the image will be 8x8 which is 64 pixels in total
  * Reduce the colors, from RGB which is 64x64x64 to be in grayscale which will be on 64 colors in total
  * Compute the average of each pixel
    * \[pixels] = numpy.asarray(image)
    * avg = pixels.mean()
    * Now we have the image's mean value in arrays
  * Construct the bits' array
    * Compare each of pixels' array by higher or lower than the average and record them into the pixels' array​
  * Construct the hash
    * By big-endian(left -> right, top -> bottom), we are going to get 64 bit integers

![](https://971208021-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LNwjTTNeERUAgTZzWoU%2F-LwSIRz3gOqwPL53XdHJ%2F-LwSIlHkh654MyM-6E2b%2FECHO_4.jpg?alt=media\&token=4febd277-f91f-4c2c-9f8c-c785424f5b81)

* pHash, perceptive hash value of the image digest
  * Reduce the size, by doing this, the high frequencies/detail of the image will be reduced and removed by shrinking the image size together with ANTIALIAS function(to still remain the detail as much as possible). Now the size of the image will be 8x8 which is 64 pixels in total
  * Reduce the colors, from RGB which is 64x64x64 to be in grayscale which will be on 64 colors in total
  * Compute DCT; Discrete Cosine Transform, by DCT technique, the correction/modification of the color histogram and gamma will not lead the digest to be false-misses. With this technique, even we get the image which changing the gamma and histogram but the average value of the pixels will not be dramatically shifted from the original image
  * Compute the average of each pixel
    * \[pixels] = numpy.asarray(image)
    * avg = pixels.mean()
    * Now we have the image's mean value in arrays​
  * Construct the bits' array
    * Compare each of pixels' array bu higher or lower than the average by putting 1 as above average and 0 as below average in each of pixels' array
    * By 0,1 value on each array, this will also lead to the ignorance of the correction/modification of the histogram and gamma​
  * Construct the hash
    * By big-endian(left -> right, top -> bottom), we are going to get 64 bit integers

![](https://971208021-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LNwjTTNeERUAgTZzWoU%2F-LwSIRz3gOqwPL53XdHJ%2F-LwSIue_vGkvlMzEHn5k%2FECHO_1.jpg?alt=media\&token=2d806b63-37fd-4264-a361-d28278dbe480)

* dHash, gradient difference hash value of the image digest
  * Reduce the size, by doing this, the high frequencies/detail of the image will be reduced and removed by shrinking the image size together with ANTIALIAS function(to still remain the detail as much as possible). Now the size of the image will be 8x8 which is 64 pixels in total
  * Reduce the colors, from RGB which is 64x64x64 to be in grayscale which will be on 64 colors in total
  * Compute the gradient between adjacent pixels and record its array trend
  * Construct the hash
    * By big-endian(left -> right, top -> bottom), we are going to get 64 bit integers

![](https://971208021-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LNwjTTNeERUAgTZzWoU%2F-LwSIRz3gOqwPL53XdHJ%2F-LwSJ2a7CNpZzbWt1MU0%2FECHO_2.jpg?alt=media\&token=42efc623-c736-4327-9ffc-32c1dcf560ea)

* wHash, discrete wavelet transform hash value of the image digest
  * Reduce the size, by doing this, the high frequencies/detail of the image will be reduced and removed by shrinking the image size together with ANTIALIAS function(to still remain the detail as much as possible). Now the size of the image will be 8x8 which is 64 pixels in total
  * Reduce the colors, from RGB which is 64x64x64 to be in grayscale which will be on 64 colors in total
  * Compute DWT; Discrete Wavelet Transform, by DWT technique, the image's pixels are going to be stored in \[-1,1] which will be in -1,0,1 values by this values the image frequencies will be scales and shifted to be in square-shaped form
  * Compute the average of each pixel
    * \[pixels] = numpy.asarray(image)
    * avg = pixels.mean()
    * Now we have the image's mean value in arrays
  * Construct the bits' array
    * Compare each of pixels' array by higher or lower than the average and record them into the pixels' array
  * Construct the hash
    * By big-endian(left -> right, top -> bottom), we are going to get 64 bit integers

![](https://971208021-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LNwjTTNeERUAgTZzWoU%2F-LwSIRz3gOqwPL53XdHJ%2F-LwSJES_7puFscLNcwHn%2FECHO_3.jpg?alt=media\&token=cabb45db-53c4-4a21-9575-1509bfca4ab6)

### Text digest

First, create 3 digest per one text content(part of Natural Language Processing;NLP) then with the Jaccard similarity index to check the duplication&#x20;

* Word tokenization, we are going to divide the text content to be a smaller parts call tokens and each of the token is coming from the comparison with the dictionary(both Thai and English)
* Create three group of tokens by:
  * The array of group 25 tokens to represent 50% of the content
  * The array of group 14 tokens to represent 70% of the content
  * The array of group 9 tokens to represent 80% of the content
* Generate the hash of each group to represent its group of digest
* Those three hash together will be represented the content fingerprint&#x20;

![](https://971208021-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LNwjTTNeERUAgTZzWoU%2F-LwSIAJ12rLLyuw28fUD%2F-LwSIHqnoTVfoCiVigcX%2FECHO_5.jpg?alt=media\&token=c75f4b81-b089-4f4f-8b4e-b93864bd3891)

* To check the duplication of the text content, we are using Jaccard similarity index technique, the formula of the technique is:

![](https://971208021-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LNwjTTNeERUAgTZzWoU%2F-LwMnqPRuAkg-U0_iEPH%2F-LwNOJS-IP5ync-j8bs_%2FJaccard.png?alt=media\&token=01c90777-485c-4c9c-8c33-dd15bfb26529)

* By above formula, in our case will be:
  * Count the numbers of group 25 tokens which are shared between each content
  * Count the total numbers of both contents
  * Divide the number of shared by the total number of both contents
  * Multiply by 100 will be the percentage of how similar of these two contents
    * If it is less than 50%, then we will consider that it is not the same content
    * If it is more than 50% then we will have a further check
      * Now we are going to check with the 14 tokens group
      * If it is less than 70% then we will consider that it is not the same content
      * If it is more than 70% then we will check with the last group of tokens which is group of 9 tokens
        * If the check result is less than 80% then we will consider that it is good to go
        * If the check result is more than 80% then we will reject the content as a duplication check failure

![](https://971208021-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LNwjTTNeERUAgTZzWoU%2F-LwSIAJ12rLLyuw28fUD%2F-LwSIP21oocbdrDvEuHq%2FECHO_6.jpg?alt=media\&token=5575b44b-d913-4900-a891-76490a79a740)

## SIX Storage Chain <a href="#six-storage-chain" id="six-storage-chain"></a>

Now with digest information, we are going to prepare them in our SSC's smartcontract format and submit them into SSC

Once, we get the new image from ECHO's SDK which is going to record its IP into our SSC then:-

* Verify the duplication by submit its digest information into SSC
  * SSC, SIX Storage Chain, thanks to the EOS which is allowing us to construct not from scratch our SIX Storage Chain, with the pros of the chain, we could easily build our Delegated Proof-of-Stake and also with the operations or services can be done without any associated costs but the CPUs and Rams.
  * By the SSC validator's nodes, they will check the duplication of the digest information by comparing the existing digest information on the chain by 4 hash(aHash, pHash, dHash and wHash) of the image or 3 hash for the text
  * Once the digest is good to submit, then the chosen verifier node will submit into the SSC
    * The remaining nodes will verify its correctness

## ECHO on public chain <a href="#echo-on-public-chain" id="echo-on-public-chain"></a>

### ECHO transaction ID and block number <a href="#echo-transaction-id-and-block-number" id="echo-transaction-id-and-block-number"></a>

With the information of our ECHO transaction and block number of the asset, we are now going to publish its information into the public chains but not limited to, such as Klaytn and Ethereum

By these two data on the public chain, we could check all of the digital asset information in our [ECHO.WORK](https://echo.work) which is now in the selected user test, it will be public release soon(Q1, 2020)

​
