Grassland is an open-source, permissionless, peer-to-peer network of incentivised and anonymous computer vision software that turns video feeds from fixed-perspective cameras around the world into a (politically) stateless, indelible public record of the lives of people and the movement of objects as a simulated, real-time, 3D, bird's-eye-view similar to the games SimCity® or Civilization®, but with the ability to rewind time and view events in the past.
Each Grassland node contains a data visualisation GUI that can easily render several million data points. Rewind the hands of the GUI's 'clock' to view the entire history of someone, some thing or some place. Above: data from the NYC Taxi and Limousine Commission (taxi/limo geojson data is included in the node 'gui' directory for demo purposes).
The extensible and customizable Grassland GUI contains a 3D map of the entire world. And can also display data about people, objects and events as charts and graphs. Above: individual who happened to be sauntering down a node captured road the night I was making this screen capture.
More links to source code and info below under "Beta Version"
More links to source code and info below under "Beta Version"
- Economically Self-Interested Nodes
- Each software instance (node) operates under the assumption all other nodes are acting in their own economic self-interest, weighing their own opportunity costs of expending computational resources.
- The network ensures all data must have passed through the hidden layers of the current AI/object-detection model (see diagram below), a non-trivial computation, the additional benefit of which is that the only strategy for a rational, self-interested node is to contribute to the network and makes the production of passable fake data prohibitively expensive.
- This proof-of-work algorithm also generates a reward for the node performing the detections in the form of the network's own cryptographic currency backed by statistical proof easily verifiable by other nodes that economically scarce computational resources were expended to process each frame correctly, effectively "trading" whatever currency their compute costs are denominated in into Grassland's fungible coin, thereby rewarding continued operation and node territorial expansion.
- Camera frames aren't stored in the database, just information digitally signed by the node about the objects gathered from the output of the neural network and a cryptographic hash of that same information (see diagram below). The frames themselves are only needed for a little while after for random confirmations (where selected frames are distributed peer-to-peer over IPFS) and then they can be discarded.
- Since each database entry is also a proof-of-work, storage costs never exceed the value the market has placed on the data. Not to mention its intrinsic value
- Prevents any party, inside or outside the network, forming an asymmetry (one-sided data gathering of human behaviour) as long as there remain Grassland nodes acting in their own self-interest.
- 2D To 3D
- Uses an algebraic equation called homography to project from 2D to 3D.
- Each instance of the software acts as a contributing node in the network. By giving a node access to any fixed perspective, 2-D camera feed (webcam, security camera, IP camera, video stream, etc.), it projects objects into a 3-D, searchable, simulated, re-creation of events in the part of the world it's viewing overlaid on OpenStreetMap 3D with building extrusion.
- Once the node's real-world frame of reference is set using the map it will continue to operate autonomously.
- The map renders objects as simple low-poly blocks (think Minecraft). Extremely lifelike visual rendering on the map is not necessary, at least at this time.
- Steadily Increasing Detail And Difficulty
- Current computational requirements are low as the network's model only detects people and cars now but that will increase over time. (At the current level, a node can operate 24/7 using Grassland's pared down implementation of Tensorflow on Serverless AWS Lambda and that node's costs would be no more than $50 per month)
- As the sum total of the network's computational throughput changes, the computational requirements for each node changes as well; e.g. if the average throughput increases, demand has increased therefore nodes must increase their individual FPS. This has the added benefit of making the opportunity costs of fabricating data an increasingly non-viable endeavour.
- Every few months ("eons"), nodes download an improved version of the network's deep learning model. Which will recognize more objects and activities with greater certainty. So over time the network becomes an increasingly accurate and harder to fabricate representation of the real world.
- With each new model version, there should be a marginal decrease in the network's uncertainty of the probable object paths within the "foggy" areas of the map beyond the node's field of view.
- Since nodes are effectively "buying" grassland tokens with whatever currency their computational costs are denominated in but the number of coins rewarded for each frame inference remains the same, as detail and computational requirements increase, the coins are essentially being bought for a higher price, steadily increasing the value of coins already in possession and the intrinsic value of the data. This rewards those who took earlier and therefore more "computational investment risk" and those who "lighten" more "dark" areas of the map.
- Unrewriteable History And Reasonable Storage Requirements
- Several times a day, the last output digests from each node, the tip of each of their rolling hashes (see diagram below), are hashed into a Merkle Tree. The tree's leaves are paired based on node geospatial proximity along longitudinal bands.
- The Merkle Tree is distributed to all nodes. Most nodes don't need to keep the entire database just their branch of the Merkle Tree
- Storage of the entire database is only truly a problem when storage costs exceed the market value of what's being stored, however, as stated earlier, since each database entry is also a proof-of-work, storage costs never exceed the value the market has placed on the data.
- Each new Merkle root determines which frames from each node's pre-published digest tuples are required for evaluation.
- Since flipping a single bit of a frame captured by one node would give it a completely different set of rolling hashes which upon entering the global Merkle Tree would have produced an entirely different root hash, once it's set and distributed (upon which it starts being hashed into the upcoming Merkle Tree), it would take exponentially more processing power than is available on the planet to successfully create an alternative version of Grassland's history of events.
- The process of producing the next Merkle Tree is a competition any node can compete in. A person who cultivates real trees is an Arborist so we'll use that term. Our "arborists" will also need to perform inference on the frames that were randomly selected for evaluation based on the last Merkle root, and will need to publish each frame's digest tuple and the "reserved digest" (see diagram). If the original node holding the reserved digest signs the arborist's digest, it generates that node's reward coins and a percentage goes to the arborist. But that will only propogate if that arborist's tree is also accepted by a majority of the network. Therefore, as long as (1) there is always active competition to compute the Merkle Tree by statistically verifying the work of all other nodes and (2) over 50% of every active node prevents inflation of the money supply by rejecting trees that don't pass their proof-of-work, then all rational (self-interested) nodes will have to be honest.
- Beta Version
- Link To Github Repos
- Software is currently a beta version. There are still some multi-processing bugs to work out in Node Lite. But the instructions in the README files should be enough to get you up and running
- If anything's unclear, don't hesitate to open a Github 'issue' on the repo
- Here is the current list of features that need to be completed
- Please submit software questions/problems/discussions in the Issues section of the Github repos. Send a pull request if you have improvements to make
- For inquiries not directly related to the software, you can email me at david[at]grassland[dot]network
You can download the latest Grassland eon's object detection model using the following URL's. The node software can be downloaded here on Github
|0 (current)||Tensorflow 1.7.0||https://downloads.grassland.network/models/eon_0.pb||frozen_inference_graph.pb of faster_rcnn_inception_v2_coco_2018_01_28|
|2||T.B.D.||(https://downloads.grassland.network/models/eon_2.pb)||License Plate Recognition|
|3||T.B.D.||(https://downloads.grassland.network/models/eon_3.pb)||Walking Gait Recognition|