Coder Social home page Coder Social logo

0alic / dart Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lucaceschi/dart

0.0 1.0 1.0 32 KB

DART: An implementation of the RT framework on Ethereum

License: GNU General Public License v3.0

Solidity 49.60% JavaScript 50.40%
ethereum smart-contracts trust-management

dart's Introduction

๐ŸŽฏ DART: DecentrAlized Role-based Trust management

DART is an Ethereum implementation of the Role-based Trust management (RT) framework. In particular, the implementation is restricted to the sub-language RT0 of the RT family.

Being Alice, Bob principals, x, y role names, Alice.x, Bob.y roles, the RT0 credentials are:

  • Simple member: Alice.x โ† Bob
  • Simple inclusion: Alice.x โ† Bob.y
  • Linked inclusion: Alice.x โ† Bob.y.z
  • Intersection inclusion: Alice.x โ† Bob.x โˆฉ Charlie.z

DART allows a user to create policies composed by RT0 credentials, plus adding a weight w โˆˆ (0, 100] that reflects the trust a user puts into a particular role. In this way, policies can either used for both hard-security purposes (yes/no answer), and soft-security purposes (answer with a degree of acceptance).

In DART, policies are stored on a public blockchain, meaning they are secured by the blockchain consensus, they are transparent, and they cannot be arbitrally altered by any third party.

Finally, DART supports the execution of the backward search discovery algorithm, which processes the credentials and answers to the following query: "Given a role A.r, find its set of members along with their trust values".

The implementation is in Ethereum for prototyping and evaluation purposes, but the approach can be translated into other blockchain networks.

Structure of the repository

This is a Truffle project. The DART smart contract is in contracts/RT.sol. The test/ folder contains the scripts to test the correctness of the smart contract. The exec/ folder contains the scripts to evaluate the cost in gas of DART.

Contributors

The project has been developed by lucaceschi, with the support of andreadesalve and 0Alic.

This work is part of a research on blockchain technology and trust management systems. The rest of the contributors can be found in the paper related to this project: DART: Towards a role-based trust management system on blockchain (https://ieeexplore.ieee.org/abstract/document/9680566).

Cite

Please cite the paper if you work with this project (bibtex generated by IEEE Xplore):

@INPROCEEDINGS {9680566,
    author = {L. Franceschi and A. Lisi and A. De Salve and P. Mori and L. Ricci},
    booktitle = {2021 IEEE 30th International Conference on Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE)},
    title = {DART: Towards a role-based trust management system on blockchain},
    year = {2021},
    volume = {},
    issn = {},
    pages = {75-80},
    keywords = {authorization;cloud computing;social networking (online);conferences;smart contracts;prototypes;collaboration},
    doi = {10.1109/WETICE53228.2021.00025},
    url = {https://doi.ieeecomputersociety.org/10.1109/WETICE53228.2021.00025},
    publisher = {IEEE Computer Society},
    address = {Los Alamitos, CA, USA},
    month = {oct}
}

References

RT framework papers: Design of a role-based trust-management framework Ninghui Li et al.; RT: a Role-based Trust-management framework Ninghui Li et al.

Chain discovery algorithms: Distributed credential chain discovery in trust management Ninghui Li et al.

dart's People

Contributors

0alic avatar lucaceschi avatar

Watchers

 avatar

Forkers

dashbaord202401

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.