Police bodycams are an essential piece of equipment for modern law enforcement. But there is a problem. Videos can be faked. Blockchain technology can aid in the battle against malicious video forgery.
The evidence on a bodycam is often a critical differentiator in the justice process. It can be the difference if someone spends the rest of their life in jail or leaves the courtroom a free man. **Lives are on the line. **The authenticity of bodycam videos must be protected to the highest possible degree.
The importance of the videos is unquestionable, but is the threat of video alteration real? Very.
Researchers have found that bodycam videos are vulnerable to undetectable alteration, and malware has been found on shipped bodycams. Police departments have also been caught editing bodycam videos to skew the narrative in their favor.
This isnβt remote speculation, itβs already a serious problem.
Most people have at least heard about the Bitcoin by now, but blockchain technology can take many forms. A blockchain can be used to ensure that data isnβt changed or deleted. This is the usage we can apply specifically to police bodycams.
Bodycams can cost up to $2,000 per camera, placing a hefty burden on police forces that are already cash strapped. Is it possible to run a blockchain on a low-cost low-power camera device?
Hereβs the equipment we will be working with. Our total cost: < $25.00
This isnβt going to produce a field ready piece of equipment, but that isnβt the purpose. We just need to prove itβs possible.
Using some hot glue, tape, a few extra wires, and some minor soldering, we have a functional device that just barely crams into our project box.
Our (poorly) assembled components in a project box.
Now we install our software:
Raspbian Buster Lite Operating System
FFMPEG Multimedia Framework
RigidBit Blockchain (synced to Ethereum)
After a few hours of installing and configuring, weβre ready for our first video test at a 720p resolution with 30 fps.
Screenshot of our first FFMPEG test.
Uh oh, FFMPEG is maxing out the CPU! π² We need to get that way down or this is a complete failure.
Our power is looking good though. Maxing out at around 0.3A we should be able to get a fair amount of time out of our 3200mAH battery.
Power utilization at full load.
Next, I tried 480p at 10fpsβ¦ Still maxing out the CPU, and weβre not even running the blockchain yet. π’
Then I remembered something. Doesnβt the Raspberry Pi have hardware x264? After some quick googling: Yes, and it works with FFMPEG! π
Now to put it to the test.
Screenshot of our successful FFMPEG test.
Running 720p at 30fps consumes only 5% of CPU we have plenty of room to spare! π
The next step is to get RigidBit running. Compiling is painfully slow, so it was left to run overnight. At 4:25 am the compile finished, and (to my surprise) didnβt require any modification. Thank you, Rust!
Screenshot of RigidBit running on our Raspberry Pi.
Now for the final test. Can our $10 Raspberry Pi handle the task of capturing video and storing it in a blockchain?
Screenshot of RigidBit and FFMPEG running together.
RigidBit hovers around 10% and FFMPEG at around 5%. Success! πΎ
Itβs not pretty, but for $25 we have functional video capture being secured with a blockchain on the device itself.
Photo of our fully operational blockchain bodycam proof of concept.
This proof of concept is not even close to being ready for field deployment. It may be good enough for a home security camera, but anyone who suggests duct-taping this to a police officer should be fired immediately.
There is plenty of room for improvement.
RigidBit requires an internet connection to sync with Ethereum. Since cell phones are widely available, this isnβt a complete deal-breaker, but itβs not ideal. If we incorporate trusted hardware, we may be able to achieve an acceptable level of provability while only needing to sync with Ethereum at the beginning and end of a shift.
RigidBit is already lightweight, but it can be stripped down much further. Most of the features it has are not being used. We might be able to strip it down enough to run on an MCU instead of a Raspberry Pi.
Raspberry Pis are great, but we might be able to get the cost and power utilization even lower by using an SoC like an RTL8170 or an ESP32.
An RTL8170 (left) and an ESP32 (right).
By combining all of the above, we could cut the device costs, reduce power usage, reduce the physical footprint, and eliminate the need for a full OS.
Besides bodycams, there are plenty of other potential applications:
Security cameras.
Vehicle dash cameras.
Vehicle black boxes.
Any place where data integrity is important, blockchain can serve an important role in providing absolute provability in a completely open and transparent way.
Thanks for reading! Please feel free to reply with any comments or questions!
Top comments (3)
A really cool idea. Thanks for the write-up.
I'd be interested in your thoughts on whether it would be an option to run this concept on a cell phone in the first place. Given cell phones have the processing power, battery, charging hardware, and the necessary wireless radios, could they be an option?
I'm think rooted devices so that power hungry features could be controlled (e.g. the screen) without turning off the camera.
Yes, I'm sure all of this could run just fine on a cell phone as well.
I think the main considerations are cost and power consumption. Something like a full-blown Android device still has a lot of overhead in both hardware and software that could be trimmed off.
If a Raspberry Pi was sufficient with only 15% CPU utilization then there is a lot of room to reduce hardware costs and improve battery life.
This is a great project and write-up; just the fact you got this thing processing video and images and transmitting and syncing them with a blockchain is a feat. I think this is ahead of its time and this idea needs to be promoted and worked on. We shouldn't have the Judge Dredd, RoboCop, or Minority Report dystopian models complete our future of autonomous policing. Instead we should be working on exactly this type of distributed trust for when the state interacts with the citizenry.