DQPU, the decentralized quantum simulator

During my Quantum Computing journey, I often needed to simulate some quantum circuits; sometimes they are small, but some other times they are bigger enough to be impossible to run on my 8 GB ram computer.

I started trying Quantum cloud providers, both simulators and real quantum computers, like the servces offered by AWS and IBMQ. But after the free-tiers, I come out to an idea: why don’t pay random people to perform my quantum computations, exploiting their quantum computers or classical simulators?

The answer is trivial: we can’t trust them. But after some research on blind quantum computing and related protocols, I came across to the concept of trap qubits. This concept is based on a simple idea: before delegating the execution of the quantum circuit, you can add some sort of hidden computations that you’re able to verify from results, using classical resources; if the delegated user try to cheat, you will be able to detect it.


Using this approach, I created the DQPU.io system (Decentralized Quantum Processing Unit) which addresses the challenge of securely and reliably delegating the execution of quantum computations in a trustless and transparent manner, encouraging competition between independent quantum resource providers. This is achieved by exploiting a decentralized smart contract (currently) running on the Near blockchain.

The operating workflow is really easy:

  1. Client Submits Job: A Client sends a quantum circuit along with a reward to the DQPU smart contract
  2. Verifier Validates Circuit: A Verifier validates the submitted circuit adding trap qubits
  3. Simulation or Hardware Execution: A Sampler executes the job retrieved from the waiting list and submit the result
  4. Verifier Checks Result: The Verifier checks result validity and the rewards are distributed
  5. Client Receives Result: The Client can retrieve the final result from the smart contract.

The whole process requires only few seconds.

The current MVC is already a fully working system, and it also integrate a qiskit backend, so you can use it as any other provider. You can read the Quickstart Tutorial.

from dqpu.backends.qiskit import DQPUBackend

backend = DQPUBackend()

job = backend.run(quantum_circuit, shots=1024)
counts = job.result().get_counts(circ)

Every user can track the realtime flow of jobs inside the smart contract:

DQPU Smart Contract


While the current implementation is already functional and integrates with popular frameworks like Qiskit, the DQPU project holds promise for further development and expansion. As quantum computing continues to evolve, decentralized approaches like DQPU could play a crucial role in democratizing access to these powerful computational resources, enabling a wide range of applications and accelerating the pace of innovation in various fields.

The absence of a centralized pricing structure ensures that the costs of executing quantum computations on DQPU are organically shaped by the interplay of resource availability and computational demand. Providers are incentivized to offer competitive rates to attract clients, while clients can leverage the market dynamics to access the most favorable pricing options.

Follow the project on github, and stay tuned on DQPU updates.



DQPU, the decentralized quantum simulator

2 minute read

During my Quantum Computing journey, I often needed to simulate some quantum circuits; sometimes they are small, but some other times they are bigger enough ...

The Time I Built a Probabilistic Computer

5 minute read

In early 2023, I embarked on a journey to explore the field of probabilistic computing. This endeavor culminated in the construction of a hardware prototype,...

Back to Top ↑


Expanding the Commodore 64 Quantum Emulator

1 minute read

In a recent article I wrote, “Quantum Computing on a Commodore 64 in 200 Lines of BASIC”, published both on Medium and Hackaday.com, shows a two-qubit quantu...

Back to Top ↑


OCaml and Quantum Computing

1 minute read

Qiskit is a python SDK developed by IBM and allows everyone to create quantum circuits, simulate them locally and also run the quantum circuit on a real quan...

Yallo, a new Tezos language

2 minute read

As someone noticed from the previous post, last weeks I started to write a new programming language for Tezos smart contracts. This project was initially int...

King of Tezos: a smart-ponzi on Tezos

2 minute read

While writing a new programming language, it is often useful to write some real use-cases to test the syntax, the language expressiveness and the code cleann...

Favorite dev quote

less than 1 minute read

Documentation is like sex: when it is good, it is very, very good; and when it is bad, it is better than nothing

New blog

less than 1 minute read

This is my new blog, based on jekyll. I’ll soon import old posts from my old blog.

Back to Top ↑


Contractvm: decentralized applications on Bitcoin

less than 1 minute read

Contractvm is a general-purpose decentralized framework based on blockchain. The framework allows to implement arbitrary decentralized applications in an eas...

Back to Top ↑


Dices provably fair - Nonce overflow vulnerability

less than 1 minute read

Most of bitcoin dice software use a system to prove the fair play of the server for each bet. Most of them implement this mechanism using two seed (server se...

Back to Top ↑


Apache2: redirect different domains to subfolder

less than 1 minute read

In the aim to merge two of my server on digitalocean, today I tried to write a mod_rewrite rule to redirect a secondary domain to a subfolder. After one hour...

Back to Top ↑


MineML: F# miner

less than 1 minute read

MineML is a multithread CPU based bitcoin miner written in F#. At the moment it’s a slow implementation, but the class structure offers the possibility to im...

Back to Top ↑