Inspiration
Solar energy is mainly available during daylight hours, but electricity demand does not always match its availability. I wanted to explore how people could be encouraged to shift flexible electricity usage to solar-rich hours and receive rewards through a transparent and verifiable process.
This inspired me to build ShiftProof: Verifiable Load-Shift Rewards, a solo project that combines energy-shifting recommendations, predefined reward rules, and smart-contract verification to explore a fairer approach to demand response.
What it does
ShiftProof demonstrates how electricity consumption can be shifted from non-eligible hours to solar-eligible hours and how a reward can be calculated based on that change.
- Solar-aware recommendations: A forecast-based advisory identifies potential hours for shifting flexible electricity usage.
- Historical baseline: Compares consumption against the average for the same weekday and hour over the previous four weeks.
- Reward calculation: Considers reduced consumption during non-eligible hours, increased consumption during eligible hours, an event cap, and a rebound penalty.
- Smart-contract verification: Uses Solidity rules to check submitted data and settlement conditions and help reject invalid or duplicate claims.
- Scenario testing: Tests cases such as inflated baselines, edited histories, fake savings, and cherry-picked readings.
- Interactive dashboard: Visualizes energy consumption, calculated rewards, verification outcomes, and attack scenarios.
The current prototype uses simulated energy readings. It demonstrates the implemented rules rather than processing real electricity data or making actual payments.
How I built it
I built ShiftProof using Solidity and Hardhat for smart-contract development and testing, Python for energy-consumption simulation, and a web dashboard for presenting the results.
I created simulated electricity-consumption profiles and compared them with a historical baseline. The reward rules consider energy reduction outside eligible hours, increased usage during eligible hours, an event cap, and a rebound penalty.
I used cryptographic hashes to anchor reading data so that later modifications to committed data can be detected. The smart contract checks settlement conditions, while the dashboard presents scenario results and verification status.
I also developed automated test scenarios to examine how the implemented rules respond to honest load shifting and different attempts to manipulate reward claims.
Challenges I ran into
Designing a meaningful reward formula: Reducing electricity consumption is not necessarily the same as shifting it to solar-rich hours. I needed a formula that considers reductions during non-eligible hours, increases during eligible hours, reward limits, and rebound consumption.
Handling potential manipulation: I explored scenarios involving inflated baselines, edited histories, duplicate claims, and cherry-picked readings. These helped me test the behaviour of the implemented verification rules.
Understanding blockchain limitations: A smart contract cannot independently prove that real-world meter readings are truthful. Hashes can reveal changes made after data is committed, but they cannot guarantee the accuracy of the original readings. My prototype therefore assumes a trusted meter/oracle.
Presenting technical results clearly: I wanted the dashboard to make the reward calculation and verification process understandable without requiring users to inspect the smart-contract code.
Accomplishments that I'm proud of
- Built an end-to-end prototype connecting simulated energy consumption, reward calculation, smart-contract rules, and a dashboard.
- Implemented baseline-based load-shifting reward logic with an event cap and rebound penalty.
- Created automated contract tests covering important settlement conditions and invalid-claim scenarios.
- Developed scenario-based demonstrations showing how the implemented rules respond to attempted manipulation.
- Brought the calculation and verification outcomes together in one dashboard.
- Identified and documented the limitations of simulated data and trusted oracles.
What I learned
Building ShiftProof helped me understand how smart contracts can enforce predefined rules and how historical baselines can support demand-response reward calculations.
I learned that a reward system must distinguish genuine load shifting from simple reductions in consumption. I also learned how automated tests can help identify weaknesses before a system is used in a real environment.
Most importantly, I learned that blockchain verification is only as reliable as the data and assumptions behind it. Transparent rules, trustworthy inputs, and careful testing are all necessary for a reliable reward system.
What's next for ShiftProof: Verifiable Load-Shift Rewards
My next steps would be to integrate verified smart-meter readings, strengthen oracle validation, evaluate the reward formula using real-world energy data, and deploy the contract to a suitable blockchain test network.
I would also like to explore a token-based reward mechanism and improve the dashboard to support clearer event monitoring and verification.
ShiftProof is currently a prototype using simulated energy data. It demonstrates reward calculations and contract checks under the implemented test scenarios. Real-world validation, live meter integration, and actual reward payments remain future work.
Built With
- blockchain
- contracts
- ethers.js
- hardhat
- javascript
- numpy
- python
- renewable
- scikit-learn
- smart
- solidity
Log in or sign up for Devpost to join the conversation.