Skip to content

ralucanegre/pydids

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

PyDIDS

Issues Unlicense License LinkedIn


Logo

PyDIDS

Python blockchain-based Decentralized Identity Management (DID) system
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. License
  6. Contact
  7. Acknowledgments

About The Project

Product Name Screen Shot

A Blockchain-based Decentralized Identity Management (DID) system enables individuals to own and control their identities without relying on a central authority.

To build a simple implementation of a basic DID system, we can use blockchain technology to store identity-related information, ensuring transparency, security, and privacy.

We'll use hashlib for cryptographic hashing and json for storing identity data and ed25519 elliptic curve signature cryptographic algorithm, which is known for its security, efficiency, and faster operations.

Key Components:

  • Blockchain: A basic blockchain structure that stores identity information in blocks.
  • Identity Management: An identity will be associated with a DID and stored in the blockchain.
  • Public/Private Key: The DID will use asymmetric encryption (public/private key pairs) for managing identity-related actions securely.

Notes:

Security Considerations: This is a simplified implementation for demonstration purposes. In a real-world system, additional features like secure key storage, encryption, and more robust identity verification mechanisms would be required.

Scalability: This example uses a simple blockchain. For production systems, you would want to use a more advanced and scalable solution, such as Ethereum or Hyperledger Indy, which provide specialized DID frameworks.

Signature Generation: The signature verification here is a placeholder, as generating and verifying RSA signatures requires using the private key to sign messages and the public key to verify them.

This implementation provides a foundation for understanding how a decentralized identity management system works using blockchain, but it would need further expansion for use in a real-world scenario.

(back to top)

Built With Python 3.13

This section should list any major frameworks/libraries used to bootstrap your project. Leave any add-ons/plugins for the acknowledgements section. Here are a few examples.

(back to top)

Getting Started

To get a local copy up and running follow these simple example steps.

Prerequisites

This example requires Python 3.10 or higher version.

Install the ed25519 library using pip3 tool.

  • pip or pip3
    pip3 install ed25519

Installation

  1. Clone the repo
    git clone https://github.com/ralucanegre/pydids.git
  2. Install python packages
    pip3 install -r requirements.txt
  3. Change git remote url to avoid accidental pushes to base project
    git remote set-url origin ralucanegre/pydids
    git remote -v # confirm the changes
  4. Run python app
    python did_runner.py

(back to top)

Usage

Use this space to show useful examples of how a project can be used. Additional screenshots, code examples and demos work well in this space. You may also link to more resources.

For more examples, please refer to the Documentation

(back to top)

Roadmap

  • Add Changelog
  • Add back to top links
  • Add Additional Templates w/ Examples
  • Add "components" document to easily copy & paste sections of the readme
  • Multi-language Support
    • Chinese
    • Spanish

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the Unlicense License. See LICENSE.txt for more information.

(back to top)

Acknowledgments

(back to top)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages