Skip to content
This repository has been archived by the owner on Oct 31, 2023. It is now read-only.
/ auth-computa Public archive

A data science framework for authorized aggregated computation

License

Notifications You must be signed in to change notification settings

MVP-Labs/auth-computa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dt-asset

中文版

This project implements a new service schema for defining off-chain assets, including: 1) datatoken helper; 2) asset ddo generator; 3) templated operator; 4) service descriptor; 5) cross-domain workflow; 6) agreement and fulfillment; 7) decentralized storage provider.

Highlights

Our goal is to allow data owners to quickly define data services with trusted on-chain operators (e.g., download, mpc_add, encrypt). The associated metadata is stored in the decentralized storage networks (e.g., Filecoin), which is trusted and immutable. The outputs of each data service can be chained hierarchically, formalizing all related operators as a traceable workflow. When these components are combined, off-chain trusted computation becomes a reality. You can consider the decentralized storage as the tape of Turing machine and the on-chain operators as the instruction set.

We are building more on-chain operators with privacy-preserving capabilities (Compute-to-Data provides an example). Then it becomes trusted private computation. When you define services of sensitive data assets, you don't need to worry about the privacy leakage. This is because the computation will never be triggered by undefined or privacy-leaking operators. Ultimatelly, the data assets can be defined once but sold mutiple times.

Play With It

$ git clone https://github.com/ownership-labs/dt-asset
$ cd dt-asset
$ export PYTHONPATH=$PYTHONPATH:"../dt-asset"
$ pip install -r requirements.txt
$ python tests/test.py

Trusted Workflow

Our system enables hierarchical composable assets, with cross-domain distributed workflows built-in. The high-level asset is required to fulfill service terms and constraints of the lower ones, such as selected operators and parameters. Partial constraint satisfaction is also permitted, which means any middle-level CDT/DDO or leaf DT/DDO do not need to satisfy all constraints. Only the top-level algorithm CDT/DDO should fulfill all requirements, since it triggers the actual computation. With such a design, we hope to attract more traders/scientists to find the optimal parameters based on the historical information of data marketplaces, thus enabling Autonomous Economic Agents (AEAs).

trusted operator and constraint:

add operator:

import json
import argparse

if __name__ == '__main__':
    print('hello world, data token')

    parser = argparse.ArgumentParser()
    parser.add_argument('--config', type=str, required=True)

    args = parser.parse_args()
    op_args = json.load(open(args.config))

    print(op_args['arg1'] + op_args['arg2'])

params.json:

{
    "arg1": {},
    "arg2": {}
}

Trusted operators are published on the blockchain, and then can be used to define services of data assets. In the later work, we will consider tensor-level operators.

example of leaf DDO

A leaf asset can be defined by incorporating the template id of operators.

metadata = {'main': {'type': 'Dataset', 'name': 'leaf data1'}}
service = {
    'index': 'sid_for_leaf1',
    'endpoint': 'ip:port',
    'descriptor': {
        'template': 'dt:ownership:xxx...' # tid for add-op,
        'constraint': {
            'arg1': 1,
            'arg2': {}
        }
    },
    'attributes': {
        'price': 10
    }
}

example of composable DDO

Leaf data assets can be aggregated as a data union. You need to use the workflow structure and satisfy the constraints of leaf assets.

metadata = {'main': {'type': 'Dataset', 'name': 'aggregated dataset'}}
child_dts = [
    'dt:ownership:xxx...dt1',  # for leaf_ddo1.dt
    'dt:ownership:xxx...dt2'   # for leaf_ddo2.dt
]
service = {
    'index': 'sid_for_cdt1',
    'endpoint': 'ip:port',
    'descriptor': {
        'workflow': {
            'dt:ownership:xxx...dt1': {
                'service': 'sid_for_leaf1',
                'constraint': {
                    'arg1': 1,
                    'arg2': {}
                }
            },
            'dt:ownership:xxx...dt2': {
                'service': 'sid1_for_leaf2',
                'constraint': {
                    'arg1': {},
                    'arg2': 2
                }
            }
        }
    },
    'attributes': {
        'price': 30
    }
}

About

A data science framework for authorized aggregated computation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages