From 0540fb7293f21c0025b892f0e61e0bdb499fdaea Mon Sep 17 00:00:00 2001 From: ShahinVI Date: Mon, 12 Dec 2022 14:05:57 +0100 Subject: [PATCH 1/6] correct logos --- docusaurus.config.js | 20 ++++++++------------ i18n/en/docusaurus-theme-classic/footer.json | 4 ---- src/css/custom.css | 2 +- static/img/social/discord.svg | 4 ++-- static/img/social/facebook.svg | 4 ++-- static/img/social/twitter.svg | 4 ++-- static/img/social/youtube.svg | 4 ++-- 7 files changed, 17 insertions(+), 25 deletions(-) diff --git a/docusaurus.config.js b/docusaurus.config.js index 1a61bb5..73194ce 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -145,7 +145,7 @@ module.exports = { { label: ' ', to: 'https://discord.gg/mxcfoundation', - position: 'right', + //position: 'right', className: "header-discord-link", "aria-label": "Discord", @@ -153,35 +153,35 @@ module.exports = { { label: ' ', to: 'https://twitter.com/mxcfoundation', - position: 'right', + //position: 'right', className: "header-twitter-link", "aria-label": "twitter", }, { label: ' ', to: 'https://www.youtube.com/c/MXCFoundation', - position: 'right', + //position: 'right', className: "header-youtube-link", "aria-label": "Youtube", }, { label: ' ', to: 'https://www.facebook.com/MXCfoundation/', - position: 'right', + //position: 'right', className: "header-facebook-link", - "aria-label": " facebook link", + "aria-label": "facebook link", }, { label: ' ', to: 'https://www.linkedin.com/company/mxc-foundation/', - position: 'right', + //position: 'right', className: "header-linkedin-link", "aria-label": "linkedin", }, { to: 'https://github.com/mxc-foundation/developer-documentation', label: ' ', - position: 'right', + //position: 'right', className: "header-github-link", "aria-label": "GitHub repository", }, @@ -198,13 +198,9 @@ module.exports = { label: 'GitHub', href: 'https://github.com/mxc-foundation/', }, - { - label: 'Developer Blog', - to: '/blog', - }, { label: 'User Documentation', - to: 'https://www.mxc.wiki', + to: 'https://www.mxc.org/knowledge-hub', }, { label: 'Imprint', diff --git a/i18n/en/docusaurus-theme-classic/footer.json b/i18n/en/docusaurus-theme-classic/footer.json index f3476fb..040296a 100644 --- a/i18n/en/docusaurus-theme-classic/footer.json +++ b/i18n/en/docusaurus-theme-classic/footer.json @@ -47,10 +47,6 @@ "message": "Twitter", "description": "The label of footer link with label=Twitter linking to https://www.linkedin.com/company/mxc-foundation/" }, - "link.item.label.Developer Blog": { - "message": "Developer Blog", - "description": "The label of footer link with label=Developer Blog linking to /blog" - }, "link.item.label.GitHub": { "message": "MXC Foundation GitHub", "description": "The label of footer link with label=GitHub linking to https://github.com/mxc-foundation/" diff --git a/src/css/custom.css b/src/css/custom.css index 71a9b51..5cab62f 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -66,7 +66,7 @@ html[data-theme='dark'] .docusaurus-highlight-code-line { } .header-github-link:before { - /*background: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E") + /*background: url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.01115 12H8.99316C8.93741 12 3.35931 11.9897 1.95198 11.6257C1.17809 11.4272 0.573728 10.8513 0.365686 10.1142C0.112615 8.75452 -0.00959169 7.37569 0.000587047 5.99486C-0.00595133 4.61177 0.119562 3.23098 0.375577 1.86954C0.589337 1.13175 1.19105 0.553197 1.96367 0.342564C3.33234 0 8.75666 0 8.98687 0H9.00575C9.0624 0 14.6549 0.0102769 16.0478 0.374251C16.8201 0.573802 17.4232 1.14853 17.6323 1.8841C17.8935 3.24882 18.016 4.63432 17.9983 6.02141C18.0046 7.40282 17.8788 8.78191 17.6224 10.1416C17.4117 10.8778 16.807 11.4524 16.0334 11.6514C14.6666 11.9966 9.24136 12 9.01115 12ZM7.21263 3.42992L7.20814 8.56837L11.8951 5.99914L7.21263 3.42992Z'/%3E%3C/svg%3E") */ background: url("../../static/img/social/Github.svg") no-repeat; diff --git a/static/img/social/discord.svg b/static/img/social/discord.svg index 87f70a1..d51d6f8 100644 --- a/static/img/social/discord.svg +++ b/static/img/social/discord.svg @@ -1,3 +1,3 @@ - - + + diff --git a/static/img/social/facebook.svg b/static/img/social/facebook.svg index 0ca17ac..09fb398 100644 --- a/static/img/social/facebook.svg +++ b/static/img/social/facebook.svg @@ -1,3 +1,3 @@ - - + + diff --git a/static/img/social/twitter.svg b/static/img/social/twitter.svg index 09fb398..0ca17ac 100644 --- a/static/img/social/twitter.svg +++ b/static/img/social/twitter.svg @@ -1,3 +1,3 @@ - - + + diff --git a/static/img/social/youtube.svg b/static/img/social/youtube.svg index d51d6f8..87f70a1 100644 --- a/static/img/social/youtube.svg +++ b/static/img/social/youtube.svg @@ -1,3 +1,3 @@ - - + + From f4bf81ef29adb3f865bb4170a1b95bcb87e4b420 Mon Sep 17 00:00:00 2001 From: Aiman Shahin Date: Wed, 4 Jan 2023 17:15:02 +0100 Subject: [PATCH 2/6] Proof of reality 2 --- docs/tutorials/m2-pro/miner-health.mdx | 2 + docs/whitepapers/Proof-of-Location.md | 539 ++++++++++++++++++++++++- 2 files changed, 526 insertions(+), 15 deletions(-) diff --git a/docs/tutorials/m2-pro/miner-health.mdx b/docs/tutorials/m2-pro/miner-health.mdx index bc2aff0..582c660 100644 --- a/docs/tutorials/m2-pro/miner-health.mdx +++ b/docs/tutorials/m2-pro/miner-health.mdx @@ -8,7 +8,9 @@ Miner Health rewards users for placing their miner in a fashion that will provid * Fuel (Live) * Uptime (Live) * GPS Signal +* Orientation * Proximity +* Altitude ## Miner Health Grace Period Each M2 Pro Miner has a 90-day grace period that begins with the initial registration of the miner. During this period of time, health will not affect the mining potential of the M2 Pro. After the grace period is over, the current health of the miner will be applied. diff --git a/docs/whitepapers/Proof-of-Location.md b/docs/whitepapers/Proof-of-Location.md index e8232eb..3075c19 100644 --- a/docs/whitepapers/Proof-of-Location.md +++ b/docs/whitepapers/Proof-of-Location.md @@ -4,9 +4,49 @@ sidebar_position: 3 --- # Proof-of-Reality -## Defention -Proof of Reality is an upgrade of proof of location. In Proof of Reality -we overcome the disadvantage of Proof of location which only determines the location of said object. + +## Table of Contents + +- [Proof of Reality](#Proof-of-Reality) + - [1. Definition](#1-Definition) + - [2. Design Aims](#2-Design-Aims) + - [2.1 location](#21-location) + - [2.2 Physical existence](#22-Physical-existence) + - [3. Existence Proof of Miner](#3-Existence-Proof-of-Miner) + - [4. trustworthy of miner](#4-trustworthy-of-miner) + - [5. GPS validation](#5-gps-validation) + - [6. Miner Peer Listening](#6-Miner-Peer-Listening) + - [7. IP address](#7-ip-address) + - [8. device messages data](#8-device-messages-data) + - [9. Miner health metrics and its corresponding scores](#9-Miner-health-metrics-and-its-corresponding-scores) + - [9.1 Fuel](#91-fuel) + - [9.2 uptime](#92-uptime) + - [9.3 GPS Signal](#93-GPS-Signal) + - [9.4 Orientation](#94-Orientation) + - [9.5 Proximity](#95-Proximity) + - [9.6 Altitude](#96-Altitude) + - [9.7 Summary](#97-Summary) + - [10. penalties](#10-penalties) + - [11. Synchronization of miners in network](#11-Synchronization-of-miners-in-network) + - [12. Localization algorithms](#12-Localization-algorithms) + - [12.1 localization through triangulation](#121-localization-through-triangulation) + - [12.2 localization through Trilateration for m3 lite](#122-localization-through-Trilateration-for-m3-lite) + - [13. third party application](#13-third-party-application) + - [13.1 trustworthy localization](#131-trustworthy-localization) + - [13.2 advantages of LPWAN against peer communications](#132-advantages-of-lpwan-against-peer-communications) + +mxc controller before 10 point +for point 5 we neeed to talk about design of existence of also the tags, need to talk about the penalty if miner or tag is fake +in chapter 1 talk about the problems of synchronization point 8. +chapter 8 talk about the idea with m3 lite. a new layer of trust through the triangulation of m3 lite through m2 pro. +active tag electricity powered tag +point 10 with mxc controller + + +## 1. Definition +Proof of Reality is an upgrade of proof of location. +In Proof of Reality we overcome the disadvantage of Proof of +location which only determines the location of said object. one of these disadvantage for example is the location can be faked by GPS spoofing. on the other hand, Proof of Reality proves the physical existence of the object and also triangulate the location of the object. @@ -14,8 +54,8 @@ so Proof of Reality provides two things: * location of item * physical existence of the item -## Design Aims -### location +## 2. Design Aims +### 2.1 location A location is a rare resource that needs to be calculated by radio signals. Currently, there are three methods to calculate a location. * First is a GPS signal, which only works outdoors, and can easily be tampered with as GPS radios can be emulated by software to fake a location. @@ -40,18 +80,16 @@ In the figure above, we can see how a sensor NFT’s Proof of reality works. All the miners that can provide Proof of Reality will be able to validate more MXC results than the third party miners. -### Physical existence -In order to determine the correct existence of the object concerned. We need to have a very accurate result which has minimum error (delta). +### 2.2 Physical existence +In order to determine the correct existence of the object concerned. The miner has a score according to the miner health. +the miner health is an indication of the validity of the miner. in addition, we need to have a very accurate result +which has minimum error when locating the miner. in order to reach this accuracy we determined that a synchronization of nanosecond timestamp is required. -methods like GPS helps us synchronize the miners using PPS signal (pulse-per-second signal). then the item location -can be quickly located by triangulation - -## Design and Implementation -It is expected that miners need to be equipped with Semtech SX1303 chips or others that have accurate timestamp functions in order to provide the location services. +methods like GPS helps us synchronize the miners. then the item using the network can be quickly located +by triangulation or Trilateration algorithms. -The bias and credibility of the location data feed is also dependent on the Meta-XP and miner health factors of the miner, as the location data is mostly self-reporting and peer verified by the Proof of Reality networks that are built by the community. -## MXC Controller +## . MXC Controller There are lists of services that LPWAN can provide to the sensors/end devices. For example, an over-the-air firmware update should be multi-casted to the sensors and calculate the position, which requires no computation for the resource-limited sensors. Such a service requires resources of both a miner and the Supernode. @@ -62,4 +100,475 @@ MXC Controller is designed to bridge the users and supernode/miners for NFT prov Through the MXC Controller design, it is possible that the sensors/end devices pay 1 USD for lifetime free usage of the network, while choosing the available services to subscribe or pay. The outcome of the design will be as follows: * Some sensors/end devices get the services and the resources that they demand through auction. * Network deployments receive a compensation by offering services and resources to the LPWAN sensors/end devices. -* All the monetary transactions are done automatically in MXC/BTC/DOT without human intervention \ No newline at end of file +* All the monetary transactions are done automatically in MXC/BTC/DOT without human intervention + +## 3. Existence Proof of Miner +As a decentralized network we do not want a trusted 3rd party to proof that our community miners exist, because this +defeats the idea of decentralization. to further explain a GPS location can be faked from a device that emulates the +miner. however this fake device does not contain MXC tokens. +Since the blockchain is secured and can be tracked by the community, We had the brilliant idea that the Miner can hold +Cryptocurrencies AKA Miner Fuel to proof that the miner exist in the network since it exist in the blockchain. + +(add picture ????) +(picture of miner network parallel to it a picture of blockchain network) + +so the proof of stacking in Miner helps in proving the existence of the miner. +the more the miner stack the more trustworthy the miner is. this is one aspect of miner health. + +## 4. trustworthy of miner +We are building this network so 3rd party businesses can utilize it. naturally these businesses would prefer to use +nodes (miners) that are functional and trustworthy. +One of the main reasons we introduced miner health is to proof that the miner physically exist and the more +percentage a miner has the more trustworthy the miner is. +a miner is trustworthy when the following metrics are accurate: +* GPS Location of miner (excluding for m3 lite miners) + * Time Difference of Arrival (TDoA) with another device with known location. + * comparison of Multilateration or triangulation equation output with device known location. +* Miner peer listening + * Miners in surrounding area +* the IP address of the miner + * constant IP address +* Device messages Data + * 3rd party devices connected to your miner +* Miner Health metrics + * Fuel + * Uptime + * GPS Signal + * Orientation + * Proximity + * Altitude + +each of this metrics will have a score: + +| metric | score name | score | score present as | +|----------------------|--------------------|-------|-----------------------| +| GPS validation | anti-spoof score | 1 | Trusted or Fake | +| Miner peer listening | family score | 5 | integer 5 | +| IP address | Relic score | 30 | percentage out of 30 | +| Device messages Data | popularity score | 100% | percentage | +| Miner Health metrics | Reliability score | 200 | percentage out of 200 | + +So as follows proof of stack through blockchain proofs the validity of the above-mentioned metrics. +when these metrics are trustworthy and accurate then the physical existence of the miner is proved and the location +of the miner is validated. thus proof of Reality achieved. + +with the help of the valid information of the location of the miner and its physical existence. we can now +locate items that is utilizing the network. through triangulation algorithms using timestamps and gps location or +through Trilateration algorithms using ip addresses and peer miner listening information. + +since the miner has proof of reality and the item in the network is validated through said miner. +therefore the item itself will be proved to exist by getting its location, and it exists physically because it holds +MXC tokens. +therefore the item itself achieved proof of reality + +## 5. GPS validation +With good programming and hardware skills hackers can spoof GPS location. We can counter that by simply testing the TDoA of each miner to a +device with predefined location. +* each Miner will provide a TDoA to locate a device. +* device will send an encrypted code that will make the Miner send the TDoA. +* Miner will send a package data with TDoA value to the device. +* As the position of the device is known it should calculate the expected TDoA. +* if the TDoA received from the Miner is different from the TDoA calculated, flag this miner that it spoof its location +* also the resulted calculation from the triangulation algorithm will be deviate from expected result. + +another method is to use mobile device connected to the miner through the data dash application +* if the location of the miner and mobile device are close to each other in regard to GPS then Miner location can be valid + +in this regard a score of True (1) or False (0) will be given to the score. +* True as trusted +* False as fake + +## 6. Miner Peer Listening +We have created a system where we have a mapper that divide the space into hexagons. each hexagon can accommodate upto 5 Miners. +more miners can exist in the hexagon but the systems does not require that. +the score is simple: +* we count the number of miners in the hexagon upto 5 this is our score +When the hexagon is full this is an indication that the communication between the miners is reliable and strong creating a family. +therefore named family score. + +## 7. IP address +constant IP address is an indication that the miner does not use VPN or keeps on changing location. +the longer the miner holds onto the same IP address more stoic, rigid, eternal and immutable. +The relic score is calculated by the number of days the IP address of miner did not change: +* if miners has same IP address for 15 days then it has a score of 15 +* if miners has same IP address for 30 days then it has a score of 30 + +additionally we can utilize IP address to verify position of miner using mobile device. +since both miner and mobile device are connected through the data dash application. +if both of them are utilizing the same network and comparing the GPS location of mobile device with registered location +of the Miner then we can consider the location of the miner to be valid + +## 8. device messages data +going back to the hexagon system. it was told that it can hold upto 5 miners. however the number of devices connected +to the miners existing in the hexagon is not limited. it depends on the amount of data and speed of LORAWAN of sender and +receiver. +theoretically the Miner can handle 16 packets of 50 kilobyte of data. some packets can be larger than 50 kilobytes so the +miner handles fewer packets. on the other hand, the opposite can occur therefore the miner can handle more data packets. + +the score will be a graph of average utilization per hour in a 24-hour period. + +the popularity percentage score depends on the data bandwidth consumed will be divided into three categories. +- under utilized between 0% to 33.3% which is not reliable +- optimum between 33.3% to 66.6% with 50% is the most optimum +- crowded between 66.6% to 100% which is bad and crowded + +here is an example + +| 00| 01| 02| 03| 04| 05| 06| 07| 08| 09| 10| 11| 12| 13| 14| 15| 16| 17| 18| 19| 20| 21| 22| 23| 24| +|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| +|10%|05%|02%|00%|00%|00%|05%|10%|20%|40%|50%|70%|80%|85%|75%|60%|75%|80%|83%|77%|60%|40%|30%|20%|10%| + +so the score will be the mean of all previous calculated mean utilization of this hour. + +## 9. Miner health metrics and its corresponding scores +The miner health has a percentage score that influences the daily rate it mines +for cryptocurrency. however this score is not the trustworthy score that +will be used by 3rd party businesses. +the weighted trustworthy score also uses the same metrics in the miner health: +* Fuel (Live) +* Uptime (Live) +* GPS Signal +* Orientation +* Proximity +* Altitude + + +for more information about the definition of these metrics please go [here](../docs/tutorials/m2-pro/miner-health.mdx). +each metric will have a different score. in total the score will be 200. + +### 9.1 Fuel +The Fuel refers to the Cryptocurrency stacked in the tank. +* if the tank has 100 tokens and the tank capacity is 100. then this miner Fuel score is 100% +* if the tank has 0 tokens and the tank capacity is 100. then this miner Fuel score is 0% +* if the tank has 200 tokens and the tank capacity is 100. then this miner Fuel score is still 100% + however the trustworthy score will be more. + +having 0% tokens gives you -10 points trustworthy +having 100% tokens gives you 0 points trustworthy +having 200% tokens gives you +10 points trustworthy + +### 9.2 Uptime +Naturally when a 3rd party is using your services they want that service +to be running 24 hrs every day. if the miner went down it will affect the quality +of the service. + +if the miner was up for the last 7 days it will get a score of +50 trustworthy +if it was up for 5 days it will get 0 trustworthy +if it was down for 7 days it will get -50 trustworthy + +the equation for calculating uptime score is +2.1428571428571 x^2 - 0.71428571428571 x - 50 + +### 9.3 GPS Signal +if the GPS signal of the miner is not strong 3rd parties will not be able to +use the miner. to locate their items using network you need strong signals from +nodes to triangulate the location of the item. therefore the GPS signal score is also 50. + +theory; if the GPS location and the peer miner communication has a huge error +the less score you have. the less the error the more score you have + +delta error is 20 m + +if error is 0 m trustworthy score is + 50 +if error is 2 m trustworthy score is 0 +if error is 20 m trustworthy score is -50 + +the equation for calculating GPS signal score is +1.1111111111111 x^2 - 27.222222222222 |x| + 50 + +### 9.4 Orientation +naturally the service user would prefer that the miner covers the largest area possible so their business +would have an extended range. + +theory; if the Miner is tilted then the area covered is less. + +if the miner is orientation miner health percentage is 7% it will have a score of +50 +if the miner is orientation miner health percentage is 6.2% it will have a score of 0 +if the miner is mounted horizontally or orientation miner health percentage is 0% it will have -50 score + +the equation for calculating the orientation score is +0.048611111111111 x^2 - 5.4861111111111 |x| + 50 + +### 9.5 Proximity +unlike the effect the proximity has on miner health. the more miners are in the +surroundings the more trustworthy score the miner has. due to the validity of peer miner +communication + +if miner proximity metric in miner health is 0 percent the trustworthy score is +20 +if miner proximity metric in miner health is 3.5 percent the trustworthy score is +10 +if miner proximity metric in miner health is 7 percent the trustworthy score is 0 + +the equation for calculating the Proximity score is +- 2.8571428571429 x + 20 + +### 9.6 Altitude +the high altitude of the miner influence its connectivity with other items in the network + +if miner Altitude metric in miner health is 5 percent the trustworthy score is +20 +if miner Altitude metric in miner health is 2.5 percent the trustworthy score is +10 +if miner Altitude metric in miner health is 0 percent the trustworthy score is 0 + +the equation for calculating the Altitude score is +4 x + +### 9.7 Summary +for a total score of 200 the scores are divided as follows. +* 10 p Fuel +* 50 p Uptime +* 50 p GPS Signal +* 50 p Orientation +* 20 p Proximity +* 20 p Altitude + +| metric | best case | neutral case | worst case | +|--------------|----------------------------|----------------------------|-------------------------------------------------| +| Fuel | +10 P 200% capacity | 0 P 100% capacity | -10 P 0% capacity | +| Uptime | +50 P 7 days uptime | 0 p 5 days uptime | -50 P 0 days uptime | +| GPS Signal | +50 p error = 0 m | 0 p error = 2 m | -50 p error >= 20 m | +| Orientation | +50 p 7% Orientation score | 0 p 6.2% Orientation score | -50 p horizontal mount or 0% Orientation score | +| Proximity | +20 p 0% proximity score | +10 p 3.5% proximity score | 0 p 7% proximity score | +| Altitude | +20 p 5% Altitude score | +10 p 2.5% Altitude score | 0 p 0% Altitude score | + +the higher the trustworthy score of the miner the stronger the proof of reality of the miner. +in addition, the more valid are the following metrics: +* GPS Location of miner (excluding for m3 lite miners) +* Timestamp +* authenticity of information gathered from Miner peer listening +* the IP address of the miner +* Device messages +* information package held within miner + +through these metrics we can locate the position of any item in the network and proof its reality too. +we need special algorithms in order to locate these data + +## 10. penalties +The previous scores are either an indication for User about the mining rate of the miner or the reliability and availability of +miner for 3rd party users. +We need to create protection for the system. +a common term for that is slashing. in the following table we will discuss the causes of penalties + +| Cause | action | penalty | slash score | How to avoid | +|------------------------------------------------------------------|----------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------|--------------------------------------------------------------------------------------------------| +| Faking miner location | All Miners owned will be Locked | Lose all Crypto connected to Miner and banned from Blockchain | 100 | do not fake miner location | +| miner is down more than 7 days and is still registered in mapper | notification will be sent to owner profile in application and through mail | no benefits from mining or 3rd party using miner as gateway for the same amount of days the miner was down after 7 days | 5 | always try to keep miner on. if not possible notify the customer support or unregister the miner | +| GPS Signal | +50 p error = 0 m | 0 p error = 2 m | -50 p error >= 20 m | | +| Orientation | +50 p 7% Orientation score | 0 p 6.2% Orientation score | -50 p horizontal mount or 0% Orientation score | +| Proximity | +20 p 0% proximity score | +10 p 3.5% proximity score | 0 p 7% proximity score | +| Altitude | +20 p 5% Altitude score | +10 p 2.5% Altitude score | 0 p 0% Altitude score | + +## 11. Synchronization of miners in network +for miners other than m3 lite we can synchronize the miners using GPS signal from satellite. +generating pps which is quick and reach accuracy in nanosecond. this is possible with GPS. +since we proved the reality of the miner the GPS signal is also valid. +therefore it is a reliable resource. + +on the other hand for the m3 lite we can determine the location of the m3 lite by triangulating it using other miners +using GPS technology. or through the peer to peer communication, IP address or device messages which is slower. + + +## 12. Localization algorithms +1. Trilateration: + This algorithm uses the distances between the LPWAN device and three or more reference points (e.g., base stations) to calculate the device's position. +2. Multilateration: + This algorithm is similar to trilateration, but it uses the time difference of arrival (TDOA) of signals from the LPWAN device to multiple reference points to calculate the device's position. + +3. Trilateration will be used for M3 lite but Multilateration will be used for miners that has GPS support + +### 12.1 localization through Trilateration +Trilateration is a good algorithm to use when you want to find the position of a device using three LPWAN devices (or reference points). Trilateration works by calculating the position of the device based on the distances between the device and the three LPWAN devices. + +To use trilateration, you need to know the positions of the three LPWAN devices and the distance between the device and each of the LPWAN devices. There are various methods for measuring the distance between the device and the LPWAN devices, such as using the time of flight of a signal or the strength of the signal. + +Once you have this information, you can use trilateration to calculate the position of the device by solving a system of three equations, one for each of the LPWAN devices. This can be done using a variety of methods, such as linear least squares or iterative methods. + +Overall, trilateration is a relatively simple and power-efficient method for finding the position of a device using three LPWAN devices, and it is often used in applications where accuracy is important. +```c +#include +#include + +struct Point { + double x; + double y; + double z; +}; + +// Computes the distance between two points +double distance(struct Point a, struct Point b) { + return sqrt((a.x - b.x) * (a.x - b.x) + + (a.y - b.y) * (a.y - b.y) + + (a.z - b.z) * (a.z - b.z)); +} + +// Solves for the location of the object using trilateration +struct Point trilaterate(struct Point referencePoints[3], double distances[3]) { + struct Point objectLocation; + + // Compute position of reference point 0 in spherical coordinates + double x0 = referencePoints[0].x; + double y0 = referencePoints[0].y; + double z0 = referencePoints[0].z; + double r0 = distances[0]; + double phi0 = atan2(y0, x0); + double theta0 = atan2(sqrt(x0 * x0 + y0 * y0), z0); + + // Compute position of reference point 1 in spherical coordinates + double x1 = referencePoints[1].x; + double y1 = referencePoints[1].y; + double z1 = referencePoints[1].z; + double r1 = distances[1]; + double phi1 = atan2(y1, x1); + double theta1 = atan2(sqrt(x1 * x1 + y1 * y1), z1); + + // Compute position of reference point 2 in spherical coordinates + double x2 = referencePoints[2].x; + double y2 = referencePoints[2].y; + double z2 = referencePoints[2].z; + double r2 = distances[2]; + double phi2 = atan2(y2, x2); + double theta2 = atan2(sqrt(x2 * x2 + y2 * y2), z2); + + // Convert spherical coordinates to Cartesian coordinates + struct Point p0 = {r0 * sin(theta0) * cos(phi0), r0 * sin(theta0) * sin(phi0), r0 * cos(theta0)}; + struct Point p1 = {r1 * sin(theta1) * cos(phi1), r1 * sin(theta1) * sin(phi1), r1 * cos(theta1)}; + struct Point p2 = {r2 * sin(theta2) * cos(phi2), r2 * sin(theta2) * sin(phi2), r2 * cos(theta2)}; + + // Compute cross product of p1 - p0 and p2 - p0 + double cx = (p1.y - p0.y) * (p2.z - p0.z) - (p2.y - p0.y) * (p1.z - p0.z); + double cy = (p1.z - p0.z) * (p2.x - p0.x) - (p2.z - p0.z) * (p1.x - p0.x); + double cz = (p1.x - p0.x) * (p2.y - p0.y) - (p2.x - p0.x) * (p1.y - p0.y); + double p01 = sqrt((p1.x - p0.x) * (p1.x - p0.x) + (p1.y - p0.y) * (p1.y - p0.y) + (p1.z - p0.z) * (p1.z - p0.z)); + double p02 = sqrt((p2.x - p0.x) * (p2.x - p0.x) + (p2.y - p0.y) * (p2.y - p0.y) + (p2.z - p0.z) * (p2.z - p0.z)); + double p12 = sqrt((p2.x - p1.x) * (p2.x - p1.x) + (p2.y - p1.y) * (p2.y - p1.y) + (p2.z - p1.z) * (p2.z - p1.z)); + double denom = 2 * ((p1.x - p0.x) * (p2.x - p0.x) + (p1.y - p0.y) * (p2.y - p0.y) + (p1.z - p0.z) * (p2.z - p0.z)) + + // Compute object location using trilateration formula + objectLocation.x = p0.x + ((r0 * r0 - r1 * r1 + p01 * p01) / denom) * (p2.x - p0.x) + ((r0 * r0 - r2 * r2 + p02 * p02) / denom) * (p1.x - p0.x); + objectLocation.y = p0.y + ((r0 * r0 - r1 * r1 + p01 * p01) / denom) * (p2.y - p0.y) + ((r0 * r0 - r2 * r2 + p02 * p02) / denom) * (p1.y - p0.y); + objectLocation.z = p0.z + ((r0 * r0 - r1 * r1 + p01 * p01) / denom) * (p2.z - p0.z) + ((r0 * r0 - r2 * r2 + p02 * p02) / denom) * (p1.z - p0.z); + + // Check if trilateration is valid by verifying that the object is within the sphere defined by each reference point + if (fabs(distance(objectLocation, referencePoints[0]) - r0) > 0.001 || + fabs(distance(objectLocation, referencePoints[1]) - r1) > 0.001 || + fabs(distance(objectLocation, referencePoints[2]) - r2) > 0.001) { + // Trilateration is invalid, set object location to (0, 0, 0) + objectLocation.x = 0; + objectLocation.y = 0; + objectLocation.z = 0; + } + return objectLocation; +} +int main(int argc, char** argv) { + // Set up reference points + struct Point referencePoints[3]; + referencePoints[0] = (struct Point){0, 0, 0}; + referencePoints[1] = (struct Point){10, 0, 0}; + referencePoints[2] = (struct Point){0, 10, 0}; + + // Set up distances to reference points + double distances[3] = {10, 15, 20}; + + // Determine object location using trilateration + struct Point objectLocation = trilaterate(referencePoints, distances); + + printf("Object location: (%.2f, %.2f, %.2f)\n", objectLocation.x, objectLocation.y, objectLocation.z); + + return 0; +} +``` +### 12.2 localization through Multilateration +If each of the LPWAN devices has a GPS time stamp, it may be possible to use the GPS data to more accurately determine the position of the device. One approach would be to use the GPS time stamps to synchronize the clocks of the LPWAN devices, and then use a technique such as multilateration to calculate the position of the device based on the time difference of arrival (TDOA) of signals from the device to the LPWAN devices. + +Multilateration is similar to trilateration, but it uses the TDOA of signals from the device to multiple reference points (in this case, the LPWAN devices) to calculate the device's position. By measuring the TDOA of the signals, it is possible to determine the distance between the device and each of the LPWAN devices more accurately than using techniques such as time of flight or signal strength. + +Overall, using the GPS time stamps in conjunction with a technique such as multilateration can potentially provide more accurate positioning than using trilateration alone, but it may also be more complex and power-intensive. The best approach will depend on the specific requirements and constraints of the application. + +example code for multilateration +```c +#include +#include + +#define NUM_REFERENCE_POINTS 3 + +struct Point { + double x; + double y; + double z; +}; + +struct ReferencePoint { + struct Point location; + double distance; +}; + +// Computes the distance between two points +double distance(struct Point a, struct Point b) { + return sqrt((a.x - b.x) * (a.x - b.x) + + (a.y - b.y) * (a.y - b.y) + + (a.z - b.z) * (a.z - b.z)); +} + +// Solves for the location of the object using multilateration +struct Point multilaterate(struct ReferencePoint referencePoints[]) { + struct Point objectLocation; + + // Initialize matrices + double A[NUM_REFERENCE_POINTS][3]; + double b[NUM_REFERENCE_POINTS]; + + // Set up least squares system + for (int i = 0; i < NUM_REFERENCE_POINTS; i++) { + struct Point rp = referencePoints[i].location; + double d = referencePoints[i].distance; + A[i][0] = 2 * (rp.x - objectLocation.x); + A[i][1] = 2 * (rp.y - objectLocation.y); + A[i][2] = 2 * (rp.z - objectLocation.z); + b[i] = d * d - objectLocation.x * objectLocation.x - objectLocation.y * objectLocation.y - objectLocation.z * objectLocation.z + rp.x * rp.x + rp.y * rp.y + rp.z * rp.z; + } + + // Solve least squares system + gsl_matrix_view m = gsl_matrix_view_array(A, NUM_REFERENCE_POINTS, 3); + gsl_vector_view c = gsl_vector_view_array(b, NUM_REFERENCE_POINTS); + gsl_vector *x = gsl_vector_alloc(3); + int s; + gsl_permutation *p = gsl_permutation_alloc(3); + gsl_linalg_LU_decomp(&m.matrix, p, &s); + gsl_linalg_LU_solve(&m.matrix, p, &c.vector, x); + + // Update object location + objectLocation.x = gsl_vector_get(x, 0); + objectLocation.y = gsl_vector_get(x, 1); + objectLocation.z = gsl_vector_get(x, 2); + + // Clean up + gsl_permutation_free(p); + gsl_vector_free(x); + + return objectLocation; +} + +int main(int argc, char** argv) { + // Set up reference points + struct ReferencePoint referencePoints[NUM_REFERENCE_POINTS]; + referencePoints[0].location = (struct Point){0, 0, 0}; + referencePoints[0].distance = 10; + referencePoints[1].location = (struct Point){10, 0, 0}; + referencePoints[1].distance = 15; + referencePoints[2].location = (struct Point){0, 10, 0}; + referencePoints[2].distance = 20; + + // Determine object location using multilateration + struct Point objectLocation = multilaterate(referencePoints); + + printf("Object location: (%.2f, %.2f, %.2f)\n", objectLocation.x, objectLocation.y, objectLocation.z); + + return 0; +} +``` +This implementation uses the GNU Scientific Library (GSL) to solve a least squares system of equations to determine the location of the object. It sets up the system of equations using the reference points and distances, and then uses GSL's linear algebra functions to solve for the location of the object. + +Note that you will need to include the GSL header files and link against the GSL library in order to use this code. You can find more information on installing and using GSL at the following link: https://www.gnu.org/software/gsl/ + +## 13. third party application +plug and play API +### 13.1 trustworthy localization +### 13.2 advantages of LPWAN against peer communications \ No newline at end of file From bc8a35b7e53c98099bad6c9c8cc9996bdcc92693 Mon Sep 17 00:00:00 2001 From: ShahinVI Date: Fri, 13 Jan 2023 16:27:06 +0100 Subject: [PATCH 3/6] Synchronization chapter 2 3 --- docs/whitepapers/Proof-of-Location.md | 244 +++++++++++++++----------- 1 file changed, 138 insertions(+), 106 deletions(-) diff --git a/docs/whitepapers/Proof-of-Location.md b/docs/whitepapers/Proof-of-Location.md index 3075c19..335bb26 100644 --- a/docs/whitepapers/Proof-of-Location.md +++ b/docs/whitepapers/Proof-of-Location.md @@ -12,31 +12,34 @@ sidebar_position: 3 - [2. Design Aims](#2-Design-Aims) - [2.1 location](#21-location) - [2.2 Physical existence](#22-Physical-existence) + - [2.2.1 Objective Measurement Techniques](#221-objective-measurement-techniques) + - [2.3 Synchronization of miners in network](#23-synchronization-of-miners-in-network) - [3. Existence Proof of Miner](#3-Existence-Proof-of-Miner) - - [4. trustworthy of miner](#4-trustworthy-of-miner) - - [5. GPS validation](#5-gps-validation) - - [6. Miner Peer Listening](#6-Miner-Peer-Listening) - - [7. IP address](#7-ip-address) - - [8. device messages data](#8-device-messages-data) - - [9. Miner health metrics and its corresponding scores](#9-Miner-health-metrics-and-its-corresponding-scores) - - [9.1 Fuel](#91-fuel) - - [9.2 uptime](#92-uptime) - - [9.3 GPS Signal](#93-GPS-Signal) - - [9.4 Orientation](#94-Orientation) - - [9.5 Proximity](#95-Proximity) - - [9.6 Altitude](#96-Altitude) - - [9.7 Summary](#97-Summary) - - [10. penalties](#10-penalties) - - [11. Synchronization of miners in network](#11-Synchronization-of-miners-in-network) - - [12. Localization algorithms](#12-Localization-algorithms) - - [12.1 localization through triangulation](#121-localization-through-triangulation) - - [12.2 localization through Trilateration for m3 lite](#122-localization-through-Trilateration-for-m3-lite) - - [13. third party application](#13-third-party-application) - - [13.1 trustworthy localization](#131-trustworthy-localization) - - [13.2 advantages of LPWAN against peer communications](#132-advantages-of-lpwan-against-peer-communications) - + - [4. Miner trust](#4-Miner-trust) + - [4.1 GPS validation](#41-GPS-validation) + - [4.2 Miner Peer Listening](#42-Miner-Peer-Listening) + - [4.3 IP address](#43-IP-address) + - [4.4 device messages data](#44-device-messages-data) + - [4.5 Miner health metrics and its corresponding scores](#45-Miner-health-metrics-and-its-corresponding-scores) + - [4.5.1 Fuel](#451-Fuel) + - [4.5.2 uptime](#452-uptime) + - [4.5.3 GPS Signal](#453-GPS-Signal) + - [4.5.4 Orientation](#454-Orientation) + - [4.5.5 Proximity](#455-Proximity) + - [4.5.6 Altitude](#456-Altitude) + - [4.5.7 Summary](#457-Summary) + - [5. Localization algorithms](#5-Localization-algorithms) + - [5.1 localization through triangulation](#51-localization-through-triangulation) + - [5.2 localization through Trilateration for m3 lite](#52-localization-through-Trilateration-for-m3-lite) + - [6. penalties](#6-penalties) + - [7. Synchronization of miners in network](#7-Synchronization-of-miners-in-network) + - [8. third party application](#8-third-party-application) + - [8.1 trustworthy localization](#81-trustworthy-localization) + - [8.2 advantages of LPWAN against peer communications](#82-advantages-of-lpwan-against-peer-communications) + +bias score mxc controller before 10 point -for point 5 we neeed to talk about design of existence of also the tags, need to talk about the penalty if miner or tag is fake +for point 5 we need to talk about design of existence of also the tags, need to talk about the penalty if miner or tag is fake in chapter 1 talk about the problems of synchronization point 8. chapter 8 talk about the idea with m3 lite. a new layer of trust through the triangulation of m3 lite through m2 pro. active tag electricity powered tag @@ -55,6 +58,8 @@ so Proof of Reality provides two things: * physical existence of the item ## 2. Design Aims +Our main aim is to achieve Proof of Reality and mix the blockchain with the physical world. +A blockchain that can be parallel to Real World and Meta-verse. ### 2.1 location A location is a rare resource that needs to be calculated by radio signals. Currently, there are three methods to calculate a location. @@ -81,33 +86,54 @@ In the figure above, we can see how a sensor NFT’s Proof of reality works. All the miners that can provide Proof of Reality will be able to validate more MXC results than the third party miners. ### 2.2 Physical existence -In order to determine the correct existence of the object concerned. The miner has a score according to the miner health. -the miner health is an indication of the validity of the miner. in addition, we need to have a very accurate result -which has minimum error when locating the miner. -in order to reach this accuracy we determined that a synchronization of nanosecond timestamp is required. -methods like GPS helps us synchronize the miners. then the item using the network can be quickly located -by triangulation or Trilateration algorithms. +"I think therefore I am", is the first principle of René Descartes's philosophy to prove our existence. well in MXC this +is not enough, to prove the reality of a 3rd party device utilizing our network we need to verify that miners used are unbiased. + +#### 2.2.1 Objective Measurement Techniques +OMT in the case of determining the physical existence of an object covers 4 possibilities: +1. Use multiple sources to verify the existence of the object. This could include using multiple observers to look for the object, or using sensors or other automated systems to detect its presence. + * Like creating a classification machine learning model that verifies and cross-reference that object with its database. +2. Use objective measurement tools and protocols to quantify the characteristics of the object and its location. For example, you could use a tape measure to accurately determine the size and shape of the object, or use GPS technology to precisely locate its position. + * attaching tags on the corners of the object that return its location to the cloud and then the dimension is calculated and then cross-referenced with dimension of model. + * the location of the item and it's tags can be determined by triangulation. +3. Use controlled conditions to eliminate the potential for external factors to influence the measurement. For example, you could conduct the measurement in a controlled environment, or use shielding or other methods to block out any external interference. + * making sure that the measurement devices are part of our system. through peer listening and IP address of miner, in addition miner health metrics. +4. Use statistical analysis to confirm the existence of the object. By analyzing the data from the measurement process, you can use statistical techniques to determine the likelihood that the object exists in the specified location. + * Bandwidth utilized by miner and the amount of data sent or received by the object. validity of the triangulation process. + +In the next chapters, Miner scores affecting Physical existence will be discussed covering +* GPS Location +* Miner peer listening +* IP address +* Bandwidth +* Miner health +* Triangulation +In addition, devices holding MXC tokens + +### 2.3 Synchronization of miners in network +If there is no synchronization between LPWAN devices, +several challenges may arise when trying to determine the location of a device using +localization algorithms. +1. Time of Arrival (ToA) or Time Difference of Arrival (TDoA) based methods rely on accurate timestamps of when the signal was received by each device, so if there is no synchronization between devices, the timestamps may be inaccurate, leading to errors in the calculated distances and ultimately resulting in a less accurate location estimate. +2. Without synchronization, it becomes difficult to determine the time of flight of the signal, resulting in less accurate distance estimates, which ultimately leads to a less accurate location estimate. +3. The error caused by lack of synchronization will be different at different distances, making it harder to estimate the distance and location of the device. +4. An alternative to ToA methods is Received Signal Strength Indicator (RSSI), but it is less precise and more affected by the environment, especially when the devices are far away from the gateways, also it's not recommended to use it alone as it's not a deterministic method. +5. Without synchronization, it becomes difficult to determine the time of flight of the signal, resulting in less accurate distance estimates, which ultimately leads to a less accurate location estimate. +6. Additionally, the lack of synchronization can also make it harder to analyze the data from the devices over time, as it becomes harder to relate the data from different devices to a common time frame. + +To overcome these challenges, it's important to have a good time synchronization between the devices and gateways, using methods such as GPS time, NTP time or PTP time. -## . MXC Controller -There are lists of services that LPWAN can provide to the sensors/end devices. -For example, an over-the-air firmware update should be multi-casted to the sensors and calculate the position, which requires no computation for the resource-limited sensors. -Such a service requires resources of both a miner and the Supernode. -Hence, MXC Controller will specify whether it is willing to pay for the service and its accuracy. -The more gateways that receive the packets, the more accurate the position will be. -In addition to this, data NFTs can also facilitate data transactions and would need a service to provision and provide the NFT to the blockchain. -MXC Controller is designed to bridge the users and supernode/miners for NFT provisioning services. -Through the MXC Controller design, it is possible that the sensors/end devices pay 1 USD for lifetime free usage of the network, while choosing the available services to subscribe or pay. The outcome of the design will be as follows: -* Some sensors/end devices get the services and the resources that they demand through auction. -* Network deployments receive a compensation by offering services and resources to the LPWAN sensors/end devices. -* All the monetary transactions are done automatically in MXC/BTC/DOT without human intervention ## 3. Existence Proof of Miner -As a decentralized network we do not want a trusted 3rd party to proof that our community miners exist, because this -defeats the idea of decentralization. to further explain a GPS location can be faked from a device that emulates the -miner. however this fake device does not contain MXC tokens. -Since the blockchain is secured and can be tracked by the community, We had the brilliant idea that the Miner can hold -Cryptocurrencies AKA Miner Fuel to proof that the miner exist in the network since it exist in the blockchain. +As a decentralized network we do not need a 3rd party to prove that our community's miners exist, because this +defeats the idea of decentralization. +AAlthough determining the location of Miner by secure peer listening or GPS localization. these aspects can be hacked +as an extra protection layer the miners will hold MXC tokens, and we will implement that the item in the network will +hold MXC tokens. + +Since the blockchain is secured and can be tracked by the community, We had the idea that the Miner can hold +Cryptocurrencies AKA Miner Fuel to prove that the miner exist in the network since it exist in the blockchain. (add picture ????) (picture of miner network parallel to it a picture of blockchain network) @@ -115,13 +141,16 @@ Cryptocurrencies AKA Miner Fuel to proof that the miner exist in the network sin so the proof of stacking in Miner helps in proving the existence of the miner. the more the miner stack the more trustworthy the miner is. this is one aspect of miner health. -## 4. trustworthy of miner +## 4. Miner trust We are building this network so 3rd party businesses can utilize it. naturally these businesses would prefer to use nodes (miners) that are functional and trustworthy. -One of the main reasons we introduced miner health is to proof that the miner physically exist and the more -percentage a miner has the more trustworthy the miner is. -a miner is trustworthy when the following metrics are accurate: -* GPS Location of miner (excluding for m3 lite miners) + +This score model will be weighted and score based. The MXC community will have control over the weight of each metric. +the sum score of the model should be 1. +Weighted average model will be used + +The following is the miner metrics score that will later be processed and summed: +* GPS Location of miner (excluding for m3 lite miners) *******************9 * Time Difference of Arrival (TDoA) with another device with known location. * comparison of Multilateration or triangulation equation output with device known location. * Miner peer listening @@ -140,13 +169,13 @@ a miner is trustworthy when the following metrics are accurate: each of this metrics will have a score: -| metric | score name | score | score present as | -|----------------------|--------------------|-------|-----------------------| -| GPS validation | anti-spoof score | 1 | Trusted or Fake | -| Miner peer listening | family score | 5 | integer 5 | -| IP address | Relic score | 30 | percentage out of 30 | -| Device messages Data | popularity score | 100% | percentage | -| Miner Health metrics | Reliability score | 200 | percentage out of 200 | +| metric | score name | score | score present as | +|----------------------|--------------------|-------|-------------------------| +| GPS validation | anti-spoof score | 1 | Trusted (1) or Fake (0) | +| Miner peer listening | family score | 5 | percentage out of 5 | +| IP address | Relic score | 30 | percentage out of 30 | +| Device messages Data | popularity score | 100% | percentage | +| Miner Health metrics | Reliability score | 200 | percentage out of 200 | So as follows proof of stack through blockchain proofs the validity of the above-mentioned metrics. when these metrics are trustworthy and accurate then the physical existence of the miner is proved and the location @@ -161,7 +190,7 @@ therefore the item itself will be proved to exist by getting its location, and i MXC tokens. therefore the item itself achieved proof of reality -## 5. GPS validation +### 4.1 GPS validation With good programming and hardware skills hackers can spoof GPS location. We can counter that by simply testing the TDoA of each miner to a device with predefined location. * each Miner will provide a TDoA to locate a device. @@ -178,7 +207,7 @@ in this regard a score of True (1) or False (0) will be given to the score. * True as trusted * False as fake -## 6. Miner Peer Listening +### 4.2 Miner Peer Listening We have created a system where we have a mapper that divide the space into hexagons. each hexagon can accommodate upto 5 Miners. more miners can exist in the hexagon but the systems does not require that. the score is simple: @@ -186,7 +215,7 @@ the score is simple: When the hexagon is full this is an indication that the communication between the miners is reliable and strong creating a family. therefore named family score. -## 7. IP address +### 4.3 IP address constant IP address is an indication that the miner does not use VPN or keeps on changing location. the longer the miner holds onto the same IP address more stoic, rigid, eternal and immutable. The relic score is calculated by the number of days the IP address of miner did not change: @@ -198,7 +227,7 @@ since both miner and mobile device are connected through the data dash applicati if both of them are utilizing the same network and comparing the GPS location of mobile device with registered location of the Miner then we can consider the location of the miner to be valid -## 8. device messages data +### 4.4 device messages data going back to the hexagon system. it was told that it can hold upto 5 miners. however the number of devices connected to the miners existing in the hexagon is not limited. it depends on the amount of data and speed of LORAWAN of sender and receiver. @@ -220,7 +249,7 @@ here is an example so the score will be the mean of all previous calculated mean utilization of this hour. -## 9. Miner health metrics and its corresponding scores +### 4.5 Miner health metrics and its corresponding scores The miner health has a percentage score that influences the daily rate it mines for cryptocurrency. however this score is not the trustworthy score that will be used by 3rd party businesses. @@ -236,7 +265,7 @@ the weighted trustworthy score also uses the same metrics in the miner health: for more information about the definition of these metrics please go [here](../docs/tutorials/m2-pro/miner-health.mdx). each metric will have a different score. in total the score will be 200. -### 9.1 Fuel +#### 4.5.1 Fuel The Fuel refers to the Cryptocurrency stacked in the tank. * if the tank has 100 tokens and the tank capacity is 100. then this miner Fuel score is 100% * if the tank has 0 tokens and the tank capacity is 100. then this miner Fuel score is 0% @@ -247,7 +276,7 @@ having 0% tokens gives you -10 points trustworthy having 100% tokens gives you 0 points trustworthy having 200% tokens gives you +10 points trustworthy -### 9.2 Uptime +#### 4.5.2 Uptime Naturally when a 3rd party is using your services they want that service to be running 24 hrs every day. if the miner went down it will affect the quality of the service. @@ -259,7 +288,7 @@ if it was down for 7 days it will get -50 trustworthy the equation for calculating uptime score is 2.1428571428571 x^2 - 0.71428571428571 x - 50 -### 9.3 GPS Signal +#### 4.5.3 GPS Signal if the GPS signal of the miner is not strong 3rd parties will not be able to use the miner. to locate their items using network you need strong signals from nodes to triangulate the location of the item. therefore the GPS signal score is also 50. @@ -276,7 +305,7 @@ if error is 20 m trustworthy score is -50 the equation for calculating GPS signal score is 1.1111111111111 x^2 - 27.222222222222 |x| + 50 -### 9.4 Orientation +#### 4.5.4 Orientation naturally the service user would prefer that the miner covers the largest area possible so their business would have an extended range. @@ -289,7 +318,7 @@ if the miner is mounted horizontally or orientation miner health percentage is 0 the equation for calculating the orientation score is 0.048611111111111 x^2 - 5.4861111111111 |x| + 50 -### 9.5 Proximity +#### 4.5.5 Proximity unlike the effect the proximity has on miner health. the more miners are in the surroundings the more trustworthy score the miner has. due to the validity of peer miner communication @@ -301,7 +330,7 @@ if miner proximity metric in miner health is 7 percent the trustworthy score is the equation for calculating the Proximity score is - 2.8571428571429 x + 20 -### 9.6 Altitude +#### 4.5.6 Altitude the high altitude of the miner influence its connectivity with other items in the network if miner Altitude metric in miner health is 5 percent the trustworthy score is +20 @@ -311,7 +340,7 @@ if miner Altitude metric in miner health is 0 percent the trustworthy score is 0 the equation for calculating the Altitude score is 4 x -### 9.7 Summary +#### 4.5.7 Summary for a total score of 200 the scores are divided as follows. * 10 p Fuel * 50 p Uptime @@ -332,49 +361,22 @@ for a total score of 200 the scores are divided as follows. the higher the trustworthy score of the miner the stronger the proof of reality of the miner. in addition, the more valid are the following metrics: * GPS Location of miner (excluding for m3 lite miners) -* Timestamp -* authenticity of information gathered from Miner peer listening +* Miner peer listening * the IP address of the miner -* Device messages -* information package held within miner +* Device messages data through these metrics we can locate the position of any item in the network and proof its reality too. we need special algorithms in order to locate these data -## 10. penalties -The previous scores are either an indication for User about the mining rate of the miner or the reliability and availability of -miner for 3rd party users. -We need to create protection for the system. -a common term for that is slashing. in the following table we will discuss the causes of penalties - -| Cause | action | penalty | slash score | How to avoid | -|------------------------------------------------------------------|----------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------|--------------------------------------------------------------------------------------------------| -| Faking miner location | All Miners owned will be Locked | Lose all Crypto connected to Miner and banned from Blockchain | 100 | do not fake miner location | -| miner is down more than 7 days and is still registered in mapper | notification will be sent to owner profile in application and through mail | no benefits from mining or 3rd party using miner as gateway for the same amount of days the miner was down after 7 days | 5 | always try to keep miner on. if not possible notify the customer support or unregister the miner | -| GPS Signal | +50 p error = 0 m | 0 p error = 2 m | -50 p error >= 20 m | | -| Orientation | +50 p 7% Orientation score | 0 p 6.2% Orientation score | -50 p horizontal mount or 0% Orientation score | -| Proximity | +20 p 0% proximity score | +10 p 3.5% proximity score | 0 p 7% proximity score | -| Altitude | +20 p 5% Altitude score | +10 p 2.5% Altitude score | 0 p 0% Altitude score | - -## 11. Synchronization of miners in network -for miners other than m3 lite we can synchronize the miners using GPS signal from satellite. -generating pps which is quick and reach accuracy in nanosecond. this is possible with GPS. -since we proved the reality of the miner the GPS signal is also valid. -therefore it is a reliable resource. - -on the other hand for the m3 lite we can determine the location of the m3 lite by triangulating it using other miners -using GPS technology. or through the peer to peer communication, IP address or device messages which is slower. - - -## 12. Localization algorithms +## 5. Localization algorithms 1. Trilateration: This algorithm uses the distances between the LPWAN device and three or more reference points (e.g., base stations) to calculate the device's position. 2. Multilateration: This algorithm is similar to trilateration, but it uses the time difference of arrival (TDOA) of signals from the LPWAN device to multiple reference points to calculate the device's position. -3. Trilateration will be used for M3 lite but Multilateration will be used for miners that has GPS support +Trilateration will be used for M3 lite but Multilateration will be used for miners that has GPS support -### 12.1 localization through Trilateration +### 5.1 localization through Trilateration Trilateration is a good algorithm to use when you want to find the position of a device using three LPWAN devices (or reference points). Trilateration works by calculating the position of the device based on the distances between the device and the three LPWAN devices. To use trilateration, you need to know the positions of the three LPWAN devices and the distance between the device and each of the LPWAN devices. There are various methods for measuring the distance between the device and the LPWAN devices, such as using the time of flight of a signal or the strength of the signal. @@ -475,7 +477,7 @@ int main(int argc, char** argv) { return 0; } ``` -### 12.2 localization through Multilateration +### 5.2 localization through Multilateration If each of the LPWAN devices has a GPS time stamp, it may be possible to use the GPS data to more accurately determine the position of the device. One approach would be to use the GPS time stamps to synchronize the clocks of the LPWAN devices, and then use a technique such as multilateration to calculate the position of the device based on the time difference of arrival (TDOA) of signals from the device to the LPWAN devices. Multilateration is similar to trilateration, but it uses the TDOA of signals from the device to multiple reference points (in this case, the LPWAN devices) to calculate the device's position. By measuring the TDOA of the signals, it is possible to determine the distance between the device and each of the LPWAN devices more accurately than using techniques such as time of flight or signal strength. @@ -568,7 +570,37 @@ This implementation uses the GNU Scientific Library (GSL) to solve a least squar Note that you will need to include the GSL header files and link against the GSL library in order to use this code. You can find more information on installing and using GSL at the following link: https://www.gnu.org/software/gsl/ -## 13. third party application + +## 6. penalties +The previous scores are either an indication for User about the mining rate of the miner or the reliability and availability of +miner for 3rd party users. +We need to create protection for the system from abuse. +in the following table we will discuss the causes of penalties + +| Cause | action | penalty | slash score | How to avoid | +|------------------------------------------------------------------|----------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------|--------------------------------------------------------------------------------------------------| +| Faking miner location | All Miners owned will be Locked | Lose all Crypto connected to Miner and banned from Blockchain | 100 | do not fake miner location | +| miner is down more than 7 days and is still registered in mapper | notification will be sent to owner profile in application and through mail | no benefits from mining or 3rd party using miner as gateway for the same amount of days the miner was down after 7 days | 5 | always try to keep miner on. if not possible notify the customer support or unregister the miner | + + + + + + +## 8. third party application plug and play API -### 13.1 trustworthy localization -### 13.2 advantages of LPWAN against peer communications \ No newline at end of file +### 8.1 trustworthy localization +### 8.2 advantages of LPWAN against peer communications + +## . MXC Controller +There are lists of services that LPWAN can provide to the sensors/end devices. +For example, an over-the-air firmware update should be multi-casted to the sensors and calculate the position, which requires no computation for the resource-limited sensors. +Such a service requires resources of both a miner and the Supernode. +Hence, MXC Controller will specify whether it is willing to pay for the service and its accuracy. +The more gateways that receive the packets, the more accurate the position will be. +In addition to this, data NFTs can also facilitate data transactions and would need a service to provision and provide the NFT to the blockchain. +MXC Controller is designed to bridge the users and supernode/miners for NFT provisioning services. +Through the MXC Controller design, it is possible that the sensors/end devices pay 1 USD for lifetime free usage of the network, while choosing the available services to subscribe or pay. The outcome of the design will be as follows: +* Some sensors/end devices get the services and the resources that they demand through auction. +* Network deployments receive a compensation by offering services and resources to the LPWAN sensors/end devices. +* All the monetary transactions are done automatically in MXC/BTC/DOT without human intervention \ No newline at end of file From 35232eaa2910420fbf7995dbafff9faa2f7333b4 Mon Sep 17 00:00:00 2001 From: ShahinVI Date: Wed, 1 Feb 2023 13:38:12 +0100 Subject: [PATCH 4/6] updated table content --- docs/whitepapers/Proof-of-Location.md | 267 ++++++++++++++++++++------ 1 file changed, 209 insertions(+), 58 deletions(-) diff --git a/docs/whitepapers/Proof-of-Location.md b/docs/whitepapers/Proof-of-Location.md index 335bb26..a6087b8 100644 --- a/docs/whitepapers/Proof-of-Location.md +++ b/docs/whitepapers/Proof-of-Location.md @@ -1,38 +1,58 @@ --- -title: Proof-of-Reality +title: Low-Scale-Certification sidebar_position: 3 --- -# Proof-of-Reality +# Low-Scale-Certification ## Table of Contents -- [Proof of Reality](#Proof-of-Reality) - - [1. Definition](#1-Definition) - - [2. Design Aims](#2-Design-Aims) - - [2.1 location](#21-location) - - [2.2 Physical existence](#22-Physical-existence) - - [2.2.1 Objective Measurement Techniques](#221-objective-measurement-techniques) - - [2.3 Synchronization of miners in network](#23-synchronization-of-miners-in-network) - - [3. Existence Proof of Miner](#3-Existence-Proof-of-Miner) - - [4. Miner trust](#4-Miner-trust) - - [4.1 GPS validation](#41-GPS-validation) - - [4.2 Miner Peer Listening](#42-Miner-Peer-Listening) - - [4.3 IP address](#43-IP-address) +- [Low-Scale-Certification](#low-scale-certification) + - [1. Definitions](#1-definitions) + - [1.1 Low Scale Certification](#11-low-scale-certification) + - [1.2 Proof of Reality](#12-proof-of-reality) + - [2. Design Aims](#2-design-aims) + - [2.1 Logic of design](#21-logic-of-design) + - [2.1.1 Problem definition](#211-problem-definition) + - [2.1.2 Current designs](#212-current-designs) + - [2.1.3 Prerequisite](#213-prerequisite) + - [2.2 Location](#22-location) + - [2.2.1 How are objects localized](#221-how-are-objects-localized) + - [2.2.2 Challenges of current localization methods](#222-challenges-of-current-localization-methods) + - [2.2.3 Our localization method goal](#223-our-localization-method-goal) + - [2.3 Physical existence](#23-physical-existence) + - [2.3.1 Current methods to prove object exists](#231-current-methods-to-prove-object-exists) + - [2.3.2 Challenges of current proof of existence methods](#232-challenges-of-current-proof-of-existence-methods) + - [2.3.3 Our proof of physicality and existence methods](#233-our-proof-of-physicality-and-existence-methods) + - [Holding MXC tokens](#holding-mxc-tokens) + - [Objective Measurement Techniques](#objective-measurement-techniques) + - [2.4 Synchronization of miners in network](#24-synchronization-of-miners-in-network) + - [2.3.1 Why do we require synchronization](#241-why-do-we-require-synchronization) + - [2.3.2 Our synchronization method](#242-our-synchronization-method) + - [3. LSC of miner and sensors](#3-lsc-of-miner-and-sensors) + - [3.1 Risks of fake devices](#31-risks-of-fake-devices) + - [3.2 Decentralized solution](#32-decentralized-solution) + - [3.2.1 LSC device provisioning](#321-lsc-device-provisioning) + - [definition](#definition) + - [method](#method) + - [3.2.2 Conventional Solutions](#322-conventional-solution) + - [4. Miner trust](#4-miner-trust) + - [4.1 GPS validation](#41-gps-validation) + - [4.2 Miner Peer Listening](#42-miner-peer-listening) + - [4.3 IP address](#43-ip-address) - [4.4 device messages data](#44-device-messages-data) - - [4.5 Miner health metrics and its corresponding scores](#45-Miner-health-metrics-and-its-corresponding-scores) - - [4.5.1 Fuel](#451-Fuel) - - [4.5.2 uptime](#452-uptime) - - [4.5.3 GPS Signal](#453-GPS-Signal) - - [4.5.4 Orientation](#454-Orientation) - - [4.5.5 Proximity](#455-Proximity) - - [4.5.6 Altitude](#456-Altitude) - - [4.5.7 Summary](#457-Summary) - - [5. Localization algorithms](#5-Localization-algorithms) - - [5.1 localization through triangulation](#51-localization-through-triangulation) - - [5.2 localization through Trilateration for m3 lite](#52-localization-through-Trilateration-for-m3-lite) + - [4.5 Miner health metrics and its corresponding scores](#45-miner-health-metrics-and-its-corresponding-scores) + - [4.5.1 Fuel](#451-fuel) + - [4.5.2 Uptime](#452-uptime) + - [4.5.3 GPS Signal](#453-gps-signal) + - [4.5.4 Orientation](#454-orientation) + - [4.5.5 Proximity](#455-proximity) + - [4.5.6 Altitude](#456-altitude) + - [4.5.7 Summary](#457-summary) + - [5. Localization algorithms](#5-localization-algorithms) + - [5.1 Localization through Trilateration](#51-localization-through-trilateration) + - [5.2 Localization through Multilateration](#52-localization-through-multilateration) - [6. penalties](#6-penalties) - - [7. Synchronization of miners in network](#7-Synchronization-of-miners-in-network) - [8. third party application](#8-third-party-application) - [8.1 trustworthy localization](#81-trustworthy-localization) - [8.2 advantages of LPWAN against peer communications](#82-advantages-of-lpwan-against-peer-communications) @@ -46,31 +66,90 @@ active tag electricity powered tag point 10 with mxc controller -## 1. Definition -Proof of Reality is an upgrade of proof of location. +## 1. Definitions +### 1.1 Low Scale Certification +* Low-scale certification in LPWAN refers to the verification of standards and requirements for LPWAN devices and networks on a smaller scale. +* It is used to validate the performance and reliability of LPWAN devices and networks in a controlled environment. +* The standards and requirements for low-scale certification vary based on the specific technology and certifying body. +* Low-scale certification ensures that LPWAN devices and networks function properly and meet quality and performance standards before widespread deployment. +* The main purpose of low-scale certification in LPWAN is to provide assurance of device and network quality before deployment. + + +### 1.2 Proof of Reality +POR is an upgrade of proof of location. In Proof of Reality we overcome the disadvantage of Proof of location which only determines the location of said object. one of these disadvantage for example is the location can be faked by GPS spoofing. on the other hand, Proof of Reality proves the physical existence of the object and also triangulate the location of the object. + so Proof of Reality provides two things: * location of item * physical existence of the item ## 2. Design Aims -Our main aim is to achieve Proof of Reality and mix the blockchain with the physical world. -A blockchain that can be parallel to Real World and Meta-verse. -### 2.1 location -A location is a rare resource that needs to be calculated by radio signals. +Our main aim is to connect the metaverse with the physical world. +to achieve that we need to authenticate the miners and devices in out network using multiple tools to create a blockchain that will be parallel to the Real World and Meta-verse. + +### 2.1 Logic of design +#### 2.1.1 Problem definition +If the metaverse and the physical world are not connected, it can lead to a number of issues. +First and foremost, it becomes easier for scammers and attackers to create fake devices, items, and identities within either metaverse or real world. +Without a connection to between the two domains, it is more difficult to verify the authenticity of items and devices, making it easier for fraudsters to pass off counterfeit items as the real thing. + +Additionally, the lack of connection between the metaverse and the physical world can also make it more difficult to prevent +and detect fraud and other malicious activity within the metaverse. +For example, if a device or item in the metaverse is supposed to represent a physical asset, +but there is no way to verify that the device or item actually exists in the physical world, +it becomes much easier for attackers to create fake devices or items that are not backed by any real-world assets. + +Furthermore, not connecting the metaverse and the physical world can lead to the creation of virtual items that have no real-world value, +which can lead to a lack of trust in the virtual economy and a decrease in the overall value of virtual assets. + +However, connecting the metaverse and the physical world through a blockchain technology can ensure that all items and +devices within the metaverse are verified and can be traced back to real-world assets. +This can prevent fraud and other malicious activity within the metaverse, +and increase trust in the virtual economy and the overall value of virtual assets. + +#### 2.1.2 Current designs +Currently, the metaverse and the real world are seperated. There are several ways that people in the industry are attempting to connect the metaverse to the real world. +* Using blockchain technology: Some companies are using blockchain technology to create decentralized virtual worlds and marketplaces where users can buy, sell, and trade virtual assets, such as virtual real estate, in-game items, and other digital goods. +* Virtual and Augmented Reality: Developers are using virtual and augmented reality to create immersive experiences that allow users to interact with the metaverse in a more realistic way. +* Tokenization: Tokenization of virtual assets is another way to connect the metaverse to the real world. By giving virtual assets a unique digital identity, they can be bought, sold, traded, and even used as collateral for loans in the real world. +* NFTs (Non-Fungible Tokens): NFTs are digital assets that are unique and cannot be replaced by another asset. They are used to represent ownership of digital assets such as virtual real estate, art, and collectibles in the metaverse and can be bought and sold in the real world. +* Real world assets: Some companies are experimenting with the idea of creating virtual representations of real-world assets and allowing them to be traded in the metaverse. This could include anything from virtual stock options to virtual real estate. +* Gaming: Games and game items are a significant part of the metaverse, allowing players to earn in-game currency and items that can be used in other games or sold for real-world money. + +these solutions however do not affect the physical world. it is true a virtual representation of an object in the real world can be made in the metaverse, however the live state and condition of that said object +is not connected to the metaverse. the item could be damaged, destroyed, repaired or changed. it could be moved from one place to another. however the current solution does not show that. + +#### 2.1.3 Prerequisite +in order to achieve true connection between the Metaverse and the Real world. the state, location and ownership of the object should always be known, updated +and observable. +the tools we will use to achieve that are: +* Low Scale Certification (LSC) +* Proof of Reality (POR) + + +### 2.2 Location +A location is a rare resource that needs to be calculated by radio signals. +#### 2.2.1 How are objects localized Currently, there are three methods to calculate a location. -* First is a GPS signal, which only works outdoors, and can easily be tampered with as GPS radios can be emulated by software to fake a location. -* Secondly, IP address calculations, this is a database technology that relies on the accuracy of the data input about a certain IP address, and often a VPN service can get a new IP for you to fake a location. -* Thirdly, a Bluetooth-based location tracking, companies such as Apple are using it. it is hard or nearly impossible to fake the Bluetooth receiver that is held by the general public, as they pass by the Bluetooth tags and tell the network the exact location of the object in a decentralized approach. -MXProtocol designs the Proof of Reality to solve the problem that Bluetooth often -fails to solve – distance. While Bluetooth only reaches 100-200 meters, MXC miners -can reach 1-40km to determine the location of the object in a decentralized way, as -the miners are held by different users. +* GPS: Global Positioning System (GPS) is a widely used tool for determining the location of an object. It uses a network of satellites to triangulate the position of a device on the ground. +* BLE (Bluetooth Low Energy): Bluetooth Low Energy (BLE) is a wireless technology that can be used to determine the location of an object. It uses a technique called "beaconing" where a device sends out a signal that can be picked up by other devices in the area. +* RTLS (Real-Time Location Systems): Real-Time Location Systems (RTLS) are a set of technologies that can be used to determine the location of an object in real-time. They can use a combination of technologies such as GPS, BLE, Wi-Fi, and RFID to determine the location of an object. + +#### 2.2.2 Challenges of current localization methods + +* GPS: A person can potentially use a GPS spoofing device or software to fake their location. These devices or software programs can mimic the signals of a GPS satellite and trick a GPS receiver into thinking it is in a different location. +* BLE (Bluetooth Low Energy): A person can potentially use a BLE jammer to interfere with the signals being sent by the BLE beacons that are used to determine location. This can cause the system to provide inaccurate location data. +* RTLS (Real-Time Location Systems): A person can potentially use a jammer or a device that generates false location data to interfere with the signals being used by the RTLS system. Additionally, a person can potentially use a device that can mimic or imitate the signal of another device in the same network, tricking the system into believing the fake device is in a different location + + +#### 2.2.3 Our localization method goal + +In our solution we will counter all tampering attempts and provide accurate result by using a combination of technologies and verification method. Proof of Reality has a localization algorithm that utilizes LPWAN uplink data with timestamps to triangulate the location of LPWAN sensors and M2 Pro miners. In order to triangulate the sensors, the algorithms first confirm the location of the miners with the downlinks they sent to the sensors. @@ -85,11 +164,48 @@ In the figure above, we can see how a sensor NFT’s Proof of reality works. All the miners that can provide Proof of Reality will be able to validate more MXC results than the third party miners. -### 2.2 Physical existence +### 2.3 Physical existence "I think therefore I am", is the first principle of René Descartes's philosophy to prove our existence. well in MXC this -is not enough, to prove the reality of a 3rd party device utilizing our network we need to verify that miners used are unbiased. - -#### 2.2.1 Objective Measurement Techniques +is not enough, to prove the reality of a 3rd party device utilizing our network we need to verify that miners used are unbiased and tamper free. +The objects in the blockchain should always be observable and updated by the system, so it can achieve true connection between the metaverse and reality. + +#### 2.3.1 Current methods to prove object exists + +* RFID (Radio-Frequency Identification) tags: Many blockchain companies, use RFID tags to link physical objects to a unique digital identity on the blockchain. These tags can be affixed to the object and can contain information such as the object's location, condition, and other characteristics. This information is recorded on the blockchain, providing a permanent and unchangeable record of the object's existence. +* IoT (Internet of Things) devices: Some blockchain companies, use IoT devices, such as sensors, to collect data on an object's location, condition, and other characteristics. This data is then recorded on the blockchain, providing a permanent and unchangeable record of the object's existence. +* Using smart contract: Some blockchain companies use smart contract to prove the existence of an object, the smart contract is designed to execute automatically when certain conditions are met, for example, when the physical object is delivered to a specific location, the smart contract will automatically update the blockchain with the object’s location and other information. +* QR Codes: Some blockchain companies use QR codes to provide a unique identification for the physical object, the QR code when scanned will lead to a webpage that contains information about the object, location, authenticity, and other information that can prove the object's existence +* Hash of the object's information : Some blockchain companies use the hash of the object's information and store it on the blockchain, this hash can be used later to prove the object's existence. + +#### 2.3.2 Challenges of current proof of existence methods +Do these methods replace the eye? The ultimate proof of an object's existence is through direct observation with the human eye. +That is why whatever method is chosen it will always have a challenge. but we try to minimize it and make it as small as possible. +Therefore, it's important to consider the use of multiple methods to confirm the authenticity of an object. + +* RFID tag cloning: RFID tags can be cloned by using specialized equipment to copy the information stored on the tag. This would allow an attacker to create a counterfeit RFID tag that is identical to the original, making it difficult to detect. +* IoT device spoofing: IoT devices can be spoofed by creating a fake device that mimics the behavior of the real device. This would allow an attacker to send false information to the blockchain, making it difficult to detect. +* Smart contract manipulation: Smart contracts can be manipulated by an attacker to change the conditions required to execute the contract. This would allow an attacker to change the location or condition of an object, making it difficult to detect. +* QR code tampering: QR codes can be tampered with by altering the information that it points to or by creating a fake QR code that points to a fake webpage. +* Hash manipulation: The hash of the object's information can be manipulated by altering the information of the object before calculating the hash and storing it on the blockchain. + +#### 2.3.3 Our proof of physicality and existence methods +Since the ultimate proof of an object's existence is through direct observation with the human eye, +it's important to understand that any method used alone cannot replace the human eye's capabilities entirely. +However, By utilizing a combination of several observation and analysis methods, +we can approach the human eye's capabilities as much as possible. +This can provide a comprehensive and robust proof of an object's physicality, +making it more difficult for counterfeiters to successfully replicate an object. +By using multiple methods, we can gather information on the object's characteristics and detect any inconsistencies, +making it easier to confirm the authenticity of an object. + +##### Holding MXC tokens +Allowing devices in the MXC network to hold MXC tokens is an effective method for providing verification that these +devices are genuine members of the network. The MXC tokens themselves, being a digital asset on the blockchain, +are resistant to counterfeiting due to their immutable and transparent nature. By being signed and verified on the blockchain, +these tokens can be traced back to the device that holds them, making it near impossible for an attacker to counterfeit them. This provides a strong proof of the device's authenticity and its membership in the MXC network. +Furthermore, this approach also allows for a decentralized and trustless verification of the devices within the network, as the blockchain ensures that the tokens are securely and transparently distributed to the devices that are part of the network. This eliminates the need for a centralized authority to verify devices, reducing the risk of fraud and increasing the overall security of the network. Additionally, the ability to trace the history of the tokens ensures that the devices have not been tampered with or compromised. Overall, allowing devices in the MXC network to hold MXC tokens provides a robust and secure method for verifying the authenticity of devices within the network, as well as ensuring the integrity of the network as a whole. + +##### Objective Measurement Techniques OMT in the case of determining the physical existence of an object covers 4 possibilities: 1. Use multiple sources to verify the existence of the object. This could include using multiple observers to look for the object, or using sensors or other automated systems to detect its presence. * Like creating a classification machine learning model that verifies and cross-reference that object with its database. @@ -109,11 +225,12 @@ In the next chapters, Miner scores affecting Physical existence will be discusse * Miner health * Triangulation -In addition, devices holding MXC tokens +### 2.4 Synchronization of miners in network +Our System tracks the devices in Real-time. monitoring and tracking of the devices to observe any changes as they occur in real-time. +In order to achieve that we require good synchronization of miners in the network. -### 2.3 Synchronization of miners in network -If there is no synchronization between LPWAN devices, -several challenges may arise when trying to determine the location of a device using +#### 2.4.1 Why do we require synchronization +If there is no synchronization between LPWAN devices, several challenges may arise when trying to determine the location of a device using localization algorithms. 1. Time of Arrival (ToA) or Time Difference of Arrival (TDoA) based methods rely on accurate timestamps of when the signal was received by each device, so if there is no synchronization between devices, the timestamps may be inaccurate, leading to errors in the calculated distances and ultimately resulting in a less accurate location estimate. 2. Without synchronization, it becomes difficult to determine the time of flight of the signal, resulting in less accurate distance estimates, which ultimately leads to a less accurate location estimate. @@ -122,14 +239,48 @@ localization algorithms. 5. Without synchronization, it becomes difficult to determine the time of flight of the signal, resulting in less accurate distance estimates, which ultimately leads to a less accurate location estimate. 6. Additionally, the lack of synchronization can also make it harder to analyze the data from the devices over time, as it becomes harder to relate the data from different devices to a common time frame. -To overcome these challenges, it's important to have a good time synchronization between the devices and gateways, using methods such as GPS time, NTP time or PTP time. +#### 2.4.2 Our synchronization method +Our System utilizes advanced synchronization techniques to ensure that all devices and gateways in the network are in sync with one another. +This includes the use of GPS time, NTP time, and PTP time to accurately synchronize the devices and gateways. + +By implementing these methods, we are able to overcome the challenges of determining the location of a device using localization algorithms. +This allows us to achieve a high degree of accuracy and precision in our location estimates, +and ensures that our system is able to effectively track and monitor devices in real-time, observing any changes as they occur. + +Additionally, our synchronization methods also make it easier to analyze data from the devices over time, +as all data can be related to a common time frame. This allows us to gain a deeper understanding of the devices and their behaviors, +and make more informed decisions based on the data collected. +Overall, our synchronization techniques are crucial in ensuring the effectiveness and reliability of our real-time tracking and monitoring system. + + +## 3. LSC of Miner and sensors +Proving that a miner is a miner is a challenge because it is difficult to verify the physical existence +and authenticity of the mining equipment and the same goes for sensors. +A fake device could be created that mimics the characteristics of a legitimate miner or device, +and it can be used to gain unauthorized access to the network and potentially compromise the security of the blockchain system. +### 3.1 Risks of fake devices +Proving that a miner is a legitimate miner can be challenging because malicious actors can create fake devices that mimic the characteristics of real miners. +a fake device can: +* disrupt the network by flooding it with fake transactions, slowing down the network and making it difficult for legitimate miners to participate. +* manipulate the network by controlling a large percentage of the mining power, potentially leading to a 51% attack and allowing the attacker to control the network, double spend, and reverse transactions. +* also disrupt the consensus mechanism by falsely reporting the state of the network, leading to forks and causing confusion among the honest nodes. +* also cause damage to the network's security by attempting to steal private keys or personal information from users connected to it. + +### 3.2 Decentralized solution -## 3. Existence Proof of Miner As a decentralized network we do not need a 3rd party to prove that our community's miners exist, because this -defeats the idea of decentralization. -AAlthough determining the location of Miner by secure peer listening or GPS localization. these aspects can be hacked -as an extra protection layer the miners will hold MXC tokens, and we will implement that the item in the network will +defeats the idea of decentralization. +Although determining the location of Miner by secure peer listening or GPS localization. these aspects can be hacked +as an extra protection we will implement certain methods + +#### 3.2.1 LSC device provisioning +##### definition +##### method + +#### 3.2.2 Conventional solutions + +layer the miners will hold MXC tokens, and we will implement that the item in the network will hold MXC tokens. Since the blockchain is secured and can be tracked by the community, We had the idea that the Miner can hold @@ -138,8 +289,8 @@ Cryptocurrencies AKA Miner Fuel to prove that the miner exist in the network sin (add picture ????) (picture of miner network parallel to it a picture of blockchain network) -so the proof of stacking in Miner helps in proving the existence of the miner. -the more the miner stack the more trustworthy the miner is. this is one aspect of miner health. +so the proof of staking in Miner helps in proving the existence of the miner. +the more the miner stake the more trustworthy the miner is. this is one aspect of miner health. ## 4. Miner trust We are building this network so 3rd party businesses can utilize it. naturally these businesses would prefer to use @@ -177,7 +328,7 @@ each of this metrics will have a score: | Device messages Data | popularity score | 100% | percentage | | Miner Health metrics | Reliability score | 200 | percentage out of 200 | -So as follows proof of stack through blockchain proofs the validity of the above-mentioned metrics. +So as follows proof of stake through blockchain proofs the validity of the above-mentioned metrics. when these metrics are trustworthy and accurate then the physical existence of the miner is proved and the location of the miner is validated. thus proof of Reality achieved. @@ -266,7 +417,7 @@ for more information about the definition of these metrics please go [here](../d each metric will have a different score. in total the score will be 200. #### 4.5.1 Fuel -The Fuel refers to the Cryptocurrency stacked in the tank. +The Fuel refers to the Cryptocurrency stored in the tank. * if the tank has 100 tokens and the tank capacity is 100. then this miner Fuel score is 100% * if the tank has 0 tokens and the tank capacity is 100. then this miner Fuel score is 0% * if the tank has 200 tokens and the tank capacity is 100. then this miner Fuel score is still 100% @@ -376,7 +527,7 @@ we need special algorithms in order to locate these data Trilateration will be used for M3 lite but Multilateration will be used for miners that has GPS support -### 5.1 localization through Trilateration +### 5.1 Localization through Trilateration Trilateration is a good algorithm to use when you want to find the position of a device using three LPWAN devices (or reference points). Trilateration works by calculating the position of the device based on the distances between the device and the three LPWAN devices. To use trilateration, you need to know the positions of the three LPWAN devices and the distance between the device and each of the LPWAN devices. There are various methods for measuring the distance between the device and the LPWAN devices, such as using the time of flight of a signal or the strength of the signal. @@ -477,7 +628,7 @@ int main(int argc, char** argv) { return 0; } ``` -### 5.2 localization through Multilateration +### 5.2 Localization through Multilateration If each of the LPWAN devices has a GPS time stamp, it may be possible to use the GPS data to more accurately determine the position of the device. One approach would be to use the GPS time stamps to synchronize the clocks of the LPWAN devices, and then use a technique such as multilateration to calculate the position of the device based on the time difference of arrival (TDOA) of signals from the device to the LPWAN devices. Multilateration is similar to trilateration, but it uses the TDOA of signals from the device to multiple reference points (in this case, the LPWAN devices) to calculate the device's position. By measuring the TDOA of the signals, it is possible to determine the distance between the device and each of the LPWAN devices more accurately than using techniques such as time of flight or signal strength. From ea4b9ff036527c19f06a47e61eb9b7568fdc394f Mon Sep 17 00:00:00 2001 From: ShahinVI Date: Fri, 10 Feb 2023 13:56:41 +0100 Subject: [PATCH 5/6] remove POR --- docs/whitepapers/Proof-of-Location.md | 446 ++++++++++++++++---------- 1 file changed, 271 insertions(+), 175 deletions(-) diff --git a/docs/whitepapers/Proof-of-Location.md b/docs/whitepapers/Proof-of-Location.md index a6087b8..98f418f 100644 --- a/docs/whitepapers/Proof-of-Location.md +++ b/docs/whitepapers/Proof-of-Location.md @@ -10,7 +10,6 @@ sidebar_position: 3 - [Low-Scale-Certification](#low-scale-certification) - [1. Definitions](#1-definitions) - [1.1 Low Scale Certification](#11-low-scale-certification) - - [1.2 Proof of Reality](#12-proof-of-reality) - [2. Design Aims](#2-design-aims) - [2.1 Logic of design](#21-logic-of-design) - [2.1.1 Problem definition](#211-problem-definition) @@ -24,8 +23,6 @@ sidebar_position: 3 - [2.3.1 Current methods to prove object exists](#231-current-methods-to-prove-object-exists) - [2.3.2 Challenges of current proof of existence methods](#232-challenges-of-current-proof-of-existence-methods) - [2.3.3 Our proof of physicality and existence methods](#233-our-proof-of-physicality-and-existence-methods) - - [Holding MXC tokens](#holding-mxc-tokens) - - [Objective Measurement Techniques](#objective-measurement-techniques) - [2.4 Synchronization of miners in network](#24-synchronization-of-miners-in-network) - [2.3.1 Why do we require synchronization](#241-why-do-we-require-synchronization) - [2.3.2 Our synchronization method](#242-our-synchronization-method) @@ -35,100 +32,130 @@ sidebar_position: 3 - [3.2.1 LSC device provisioning](#321-lsc-device-provisioning) - [definition](#definition) - [method](#method) - - [3.2.2 Conventional Solutions](#322-conventional-solution) - - [4. Miner trust](#4-miner-trust) - - [4.1 GPS validation](#41-gps-validation) - - [4.2 Miner Peer Listening](#42-miner-peer-listening) - - [4.3 IP address](#43-ip-address) - - [4.4 device messages data](#44-device-messages-data) - - [4.5 Miner health metrics and its corresponding scores](#45-miner-health-metrics-and-its-corresponding-scores) - - [4.5.1 Fuel](#451-fuel) - - [4.5.2 Uptime](#452-uptime) - - [4.5.3 GPS Signal](#453-gps-signal) - - [4.5.4 Orientation](#454-orientation) - - [4.5.5 Proximity](#455-proximity) - - [4.5.6 Altitude](#456-altitude) - - [4.5.7 Summary](#457-summary) - - [5. Localization algorithms](#5-localization-algorithms) - - [5.1 Localization through Trilateration](#51-localization-through-trilateration) - - [5.2 Localization through Multilateration](#52-localization-through-multilateration) - - [6. penalties](#6-penalties) - - [8. third party application](#8-third-party-application) - - [8.1 trustworthy localization](#81-trustworthy-localization) - - [8.2 advantages of LPWAN against peer communications](#82-advantages-of-lpwan-against-peer-communications) - -bias score -mxc controller before 10 point -for point 5 we need to talk about design of existence of also the tags, need to talk about the penalty if miner or tag is fake -in chapter 1 talk about the problems of synchronization point 8. -chapter 8 talk about the idea with m3 lite. a new layer of trust through the triangulation of m3 lite through m2 pro. -active tag electricity powered tag -point 10 with mxc controller + - [3.2.2 Conventional Solutions](#322-conventional-solutions) + - [Holding MXC tokens](#holding-mxc-tokens) + - [Objective Measurement Techniques](#objective-measurement-techniques) + - [4. LSC of location](#4-lsc-of-location) + - [4.1 Miner score](#41-miner-score) + - [4.1.1 GPS validation](#411-gps-validation) + - [4.1.2 Miner Peer Listening](#412-miner-peer-listening) + - [4.1.3 IP address](#413-ip-address) + - [4.1.4 device messages data](#414-device-messages-data) + - [4.1.5 Miner health metrics and its corresponding scores](#415-miner-health-metrics-and-its-corresponding-scores) + - [Fuel](#fuel) + - [Uptime](#uptime) + - [GPS Signal](#gps-signal) + - [Orientation](#orientation) + - [Proximity](#proximity) + - [Altitude](#altitude) + - [Summary](#summary) + - [4.2 Localization algorithms](#42-localization-algorithms) + - [4.2.1 Localization through Trilateration](#421-localization-through-trilateration) + - [4.2.2 Localization through Multilateration](#422-localization-through-multilateration) + - [4.3 penalties](#43-penalties) + - [5. third party application](#5-third-party-application) + - [5.1 trustworthy localization](#51-trustworthy-localization) + - [5.2 advantages of LPWAN against peer communications](#52-advantages-of-lpwan-against-peer-communications) ## 1. Definitions ### 1.1 Low Scale Certification -* Low-scale certification in LPWAN refers to the verification of standards and requirements for LPWAN devices and networks on a smaller scale. +Low-scale certification in LPWAN refers to the verification of standards and requirements for LPWAN devices and networks on a smaller scale. * It is used to validate the performance and reliability of LPWAN devices and networks in a controlled environment. * The standards and requirements for low-scale certification vary based on the specific technology and certifying body. * Low-scale certification ensures that LPWAN devices and networks function properly and meet quality and performance standards before widespread deployment. -* The main purpose of low-scale certification in LPWAN is to provide assurance of device and network quality before deployment. +The main purpose of low-scale certification in LPWAN is to provide assurance of device and network quality before deployment. + + +LSC refine Proof of Location. +LSC addresses the limitations of Proof of Location, which only confirms the location of an object, +by incorporating measures to prove the physical existence of the object and providing more accurate location information. +One such limitation of Proof of Location is the possibility of location manipulation through GPS spoofing. +LSC overcomes this by providing a more comprehensive and secure method of determining both the physical presence and location of an object. -### 1.2 Proof of Reality -POR is an upgrade of proof of location. -In Proof of Reality we overcome the disadvantage of Proof of -location which only determines the location of said object. -one of these disadvantage for example is the location can be faked by GPS spoofing. -on the other hand, Proof of Reality proves the physical existence of the object -and also triangulate the location of the object. -so Proof of Reality provides two things: -* location of item -* physical existence of the item +LSC provides two key benefits: +* Location of Item: LSC confirms the location of an object, providing accurate and reliable information about its whereabouts. + + +* Physical Existence of Item: LSC verifies the physical existence of an object, ensuring that it is a tangible, +real-world item and not a virtual or simulated representation. This provides added security and confidence in the +authenticity of the object's location information. + +Together, these two aspects of LSC provide a comprehensive and secure method of determining both the physical presence and location of an object. ## 2. Design Aims -Our main aim is to connect the metaverse with the physical world. -to achieve that we need to authenticate the miners and devices in out network using multiple tools to create a blockchain that will be parallel to the Real World and Meta-verse. +Our primary objective is to establish a seamless connection between the metaverse and the physical world. +To accomplish this, we aim to authenticate the miners and devices in our network through the use of multiple tools, +in order to create a blockchain that is parallel to both the real world and the metaverse. +This will allow us to realize our vision of bridging the gap between these two distinct domains, +enabling seamless interaction and collaboration between users in both worlds. ### 2.1 Logic of design #### 2.1.1 Problem definition -If the metaverse and the physical world are not connected, it can lead to a number of issues. -First and foremost, it becomes easier for scammers and attackers to create fake devices, items, and identities within either metaverse or real world. -Without a connection to between the two domains, it is more difficult to verify the authenticity of items and devices, making it easier for fraudsters to pass off counterfeit items as the real thing. +The lack of connection between the metaverse and the physical world poses significant challenges and risks. +Firstly, it facilitates the creation of fake devices, items, and identities, making it easier for scammers and attackers to deceive users. +This creates a trust issue, as the authenticity of items and devices becomes difficult to verify, +thereby increasing the likelihood of counterfeit items being passed off as genuine. + +Moreover, the absence of a connection between the two domains can result in an increased risk of fraud +and other malicious activities within the metaverse. +For instance, if there is no way to confirm the physical existence of a device or item within the metaverse, +attackers can create fake devices or items that are not backed by any real-world assets, +thereby undermining the value and trust in the virtual economy. + +Furthermore, the failure to connect the metaverse and the physical world may result in +the creation of virtual items that have no tangible value, further eroding trust in the virtual economy and diminishing +the overall value of virtual assets. + +However, by leveraging blockchain technology to connect the metaverse and the physical world, +it is possible to ensure that all items and devices within the metaverse are verified and can be traced back to real-world assets. +This can help prevent fraud and other malicious activities within the metaverse, and increase trust and confidence in the virtual economy, +thereby enhancing the value of virtual assets. -Additionally, the lack of connection between the metaverse and the physical world can also make it more difficult to prevent -and detect fraud and other malicious activity within the metaverse. -For example, if a device or item in the metaverse is supposed to represent a physical asset, -but there is no way to verify that the device or item actually exists in the physical world, -it becomes much easier for attackers to create fake devices or items that are not backed by any real-world assets. +#### 2.1.2 Current designs +Currently, the metaverse and the real world are seperated. +There are several ways that people in the industry are attempting to connect the metaverse to the real world. +* Using blockchain technology: Some companies are using blockchain technology to create +decentralized virtual worlds and marketplaces where users can buy, sell, and trade virtual assets, +such as virtual real estate, in-game items, and other digital goods. -Furthermore, not connecting the metaverse and the physical world can lead to the creation of virtual items that have no real-world value, -which can lead to a lack of trust in the virtual economy and a decrease in the overall value of virtual assets. -However, connecting the metaverse and the physical world through a blockchain technology can ensure that all items and -devices within the metaverse are verified and can be traced back to real-world assets. -This can prevent fraud and other malicious activity within the metaverse, -and increase trust in the virtual economy and the overall value of virtual assets. +* Virtual and Augmented Reality: Developers are using virtual and augmented reality to create immersive experiences +that allow users to interact with the metaverse in a more realistic way. -#### 2.1.2 Current designs -Currently, the metaverse and the real world are seperated. There are several ways that people in the industry are attempting to connect the metaverse to the real world. -* Using blockchain technology: Some companies are using blockchain technology to create decentralized virtual worlds and marketplaces where users can buy, sell, and trade virtual assets, such as virtual real estate, in-game items, and other digital goods. -* Virtual and Augmented Reality: Developers are using virtual and augmented reality to create immersive experiences that allow users to interact with the metaverse in a more realistic way. -* Tokenization: Tokenization of virtual assets is another way to connect the metaverse to the real world. By giving virtual assets a unique digital identity, they can be bought, sold, traded, and even used as collateral for loans in the real world. -* NFTs (Non-Fungible Tokens): NFTs are digital assets that are unique and cannot be replaced by another asset. They are used to represent ownership of digital assets such as virtual real estate, art, and collectibles in the metaverse and can be bought and sold in the real world. -* Real world assets: Some companies are experimenting with the idea of creating virtual representations of real-world assets and allowing them to be traded in the metaverse. This could include anything from virtual stock options to virtual real estate. -* Gaming: Games and game items are a significant part of the metaverse, allowing players to earn in-game currency and items that can be used in other games or sold for real-world money. + +* Tokenization: Tokenization of virtual assets is another way to connect the metaverse to the real world. +By giving virtual assets a unique digital identity, they can be bought, sold, traded, and even used as collateral for loans in the real world. + + +* NFTs (Non-Fungible Tokens): NFTs are digital assets that are unique and cannot be replaced by another asset. +They are used to represent ownership of digital assets such as virtual real estate, art, +and collectibles in the metaverse and can be bought and sold in the real world. + +* Real world assets: Some companies are experimenting with the idea of creating virtual representations +of real-world assets and allowing them to be traded in the metaverse. +This could include anything from virtual stock options to virtual real estate. + + +* Gaming: Games and game items are a significant part of the metaverse, +allowing players to earn in-game currency and items that can be used in other games or sold for real-world money. these solutions however do not affect the physical world. it is true a virtual representation of an object in the real world can be made in the metaverse, however the live state and condition of that said object is not connected to the metaverse. the item could be damaged, destroyed, repaired or changed. it could be moved from one place to another. however the current solution does not show that. #### 2.1.3 Prerequisite -in order to achieve true connection between the Metaverse and the Real world. the state, location and ownership of the object should always be known, updated -and observable. -the tools we will use to achieve that are: -* Low Scale Certification (LSC) -* Proof of Reality (POR) +In order to establish a true connection between the metaverse and the real world, it is imperative that the state, location, and ownership of objects are constantly known, updated, and observable. + +To achieve this, we will utilize two key tools: + +- Low-Scale Certification (LSC) Location +- Low-Scale Certification (LSC) Physical existence + +LSC will allow us to track and verify the authenticity of objects within the metaverse, +ensuring that their state, location, and ownership information is up-to-date and accurate. +By using these tools, we aim to bridge the gap between the metaverse and the real world, creating a seamless connection between the two domains. ### 2.2 Location @@ -136,57 +163,93 @@ A location is a rare resource that needs to be calculated by radio signals. #### 2.2.1 How are objects localized Currently, there are three methods to calculate a location. -* GPS: Global Positioning System (GPS) is a widely used tool for determining the location of an object. It uses a network of satellites to triangulate the position of a device on the ground. -* BLE (Bluetooth Low Energy): Bluetooth Low Energy (BLE) is a wireless technology that can be used to determine the location of an object. It uses a technique called "beaconing" where a device sends out a signal that can be picked up by other devices in the area. -* RTLS (Real-Time Location Systems): Real-Time Location Systems (RTLS) are a set of technologies that can be used to determine the location of an object in real-time. They can use a combination of technologies such as GPS, BLE, Wi-Fi, and RFID to determine the location of an object. +* GPS: Global Positioning System (GPS) is a widely used tool for determining the location of an object. +It uses a network of satellites to triangulate the position of a device on the ground. + + +* BLE (Bluetooth Low Energy): Bluetooth Low Energy (BLE) is a wireless technology that can be used to determine the location of an object. +It uses a technique called "beaconing" where a device sends out a signal that can be picked up by other devices in the area. + + +* RTLS (Real-Time Location Systems): Real-Time Location Systems (RTLS) are a set of technologies that can be used +to determine the location of an object in real-time. +They can use a combination of technologies such as GPS, BLE, Wi-Fi, and RFID to determine the location of an object. #### 2.2.2 Challenges of current localization methods -* GPS: A person can potentially use a GPS spoofing device or software to fake their location. These devices or software programs can mimic the signals of a GPS satellite and trick a GPS receiver into thinking it is in a different location. -* BLE (Bluetooth Low Energy): A person can potentially use a BLE jammer to interfere with the signals being sent by the BLE beacons that are used to determine location. This can cause the system to provide inaccurate location data. -* RTLS (Real-Time Location Systems): A person can potentially use a jammer or a device that generates false location data to interfere with the signals being used by the RTLS system. Additionally, a person can potentially use a device that can mimic or imitate the signal of another device in the same network, tricking the system into believing the fake device is in a different location +* GPS: A person can potentially use a GPS spoofing device or software to fake their location. +These devices or software programs can mimic the signals of a GPS satellite and trick a GPS receiver into thinking it is in a different location. -#### 2.2.3 Our localization method goal +* BLE (Bluetooth Low Energy): A person can potentially use a BLE jammer to interfere with the signals being sent by +the BLE beacons that are used to determine location. This can cause the system to provide inaccurate location data. -In our solution we will counter all tampering attempts and provide accurate result by using a combination of technologies and verification method. -Proof of Reality has a localization algorithm that utilizes LPWAN uplink data with timestamps to triangulate the location of LPWAN sensors and M2 Pro miners. -In order to triangulate the sensors, the algorithms first confirm the location of the miners with the downlinks they sent to the sensors. -With regular downlink peer listenings, the algorithm is able to filter out the tampered miner locations as they can’t be heard by peer M2 Pro miners. -Those miner locations are confirmed by the Proof of Reality and then can respond to the uplink request for location services. +* RTLS (Real-Time Location Systems): A person can potentially use a jammer or a device that generates false location +data to interfere with the signals being used by the RTLS system. +Additionally, a person can potentially use a device that can mimic or imitate the signal of another device in the same network, +tricking the system into believing the fake device is in a different location -![Proof of reality design for location](/img/POL/img1.JPG) -In the figure above, we can see how a sensor NFT’s Proof of reality works. -* First of all, the sensor sends data that can be picked up by the miners as usual. Each data packet will be time stamped in the miner with precise time of arrival; this feature is executed by the hardware chip inside the M2 Pro miners. The third party miners won’t be able to provide this service due to the hardware limits. -* Next, the MXC Controller needs to rule out the tampered locations of the miners or inaccurate ones with bias and peer Proof of Reality data, if the miner is not physically located there or always changes locations, the Proof of Reality can easily exclude this kind of data. Time difference of arrival (TDOA) based on location requires at least 3 miners with valid locations to calculate; the more miners present, the more accurate the location data will be. +#### 2.2.3 Our localization method goal + +In our solution we will counter all tampering attempts and provide accurate result by using a combination of technologies and verification method. -All the miners that can provide Proof of Reality will be able to validate more MXC results than the third party miners. ### 2.3 Physical existence "I think therefore I am", is the first principle of René Descartes's philosophy to prove our existence. well in MXC this is not enough, to prove the reality of a 3rd party device utilizing our network we need to verify that miners used are unbiased and tamper free. -The objects in the blockchain should always be observable and updated by the system, so it can achieve true connection between the metaverse and reality. +The objects in the blockchain should always be observable and updated by the system, +so it can achieve true connection between the metaverse and reality. #### 2.3.1 Current methods to prove object exists -* RFID (Radio-Frequency Identification) tags: Many blockchain companies, use RFID tags to link physical objects to a unique digital identity on the blockchain. These tags can be affixed to the object and can contain information such as the object's location, condition, and other characteristics. This information is recorded on the blockchain, providing a permanent and unchangeable record of the object's existence. -* IoT (Internet of Things) devices: Some blockchain companies, use IoT devices, such as sensors, to collect data on an object's location, condition, and other characteristics. This data is then recorded on the blockchain, providing a permanent and unchangeable record of the object's existence. -* Using smart contract: Some blockchain companies use smart contract to prove the existence of an object, the smart contract is designed to execute automatically when certain conditions are met, for example, when the physical object is delivered to a specific location, the smart contract will automatically update the blockchain with the object’s location and other information. -* QR Codes: Some blockchain companies use QR codes to provide a unique identification for the physical object, the QR code when scanned will lead to a webpage that contains information about the object, location, authenticity, and other information that can prove the object's existence -* Hash of the object's information : Some blockchain companies use the hash of the object's information and store it on the blockchain, this hash can be used later to prove the object's existence. +* RFID (Radio-Frequency Identification) tags: Many blockchain companies, use RFID tags to link physical objects +to a unique digital identity on the blockchain. +These tags can be affixed to the object and can contain information such as the object's location, +condition, and other characteristics. This information is recorded on the blockchain, +providing a permanent and unchangeable record of the object's existence. + + +* IoT (Internet of Things) devices: Some blockchain companies, use IoT devices, such as sensors, +to collect data on an object's location, condition, and other characteristics. +This data is then recorded on the blockchain, providing a permanent and unchangeable record of the object's existence. + + +* Using smart contract: Some blockchain companies use smart contract to prove the existence of an object, +the smart contract is designed to execute automatically when certain conditions are met, for example, +when the physical object is delivered to a specific location, the smart contract will automatically update +the blockchain with the object’s location and other information. + +* QR Codes: Some blockchain companies use QR codes to provide a unique identification +for the physical object, the QR code when scanned will lead to a webpage that contains information about +the object, location, authenticity, and other information that can prove the object's existence. + + +* Hash of the object's information : Some blockchain companies use the hash of the object's information +and store it on the blockchain, this hash can be used later to prove the object's existence. #### 2.3.2 Challenges of current proof of existence methods Do these methods replace the eye? The ultimate proof of an object's existence is through direct observation with the human eye. That is why whatever method is chosen it will always have a challenge. but we try to minimize it and make it as small as possible. Therefore, it's important to consider the use of multiple methods to confirm the authenticity of an object. -* RFID tag cloning: RFID tags can be cloned by using specialized equipment to copy the information stored on the tag. This would allow an attacker to create a counterfeit RFID tag that is identical to the original, making it difficult to detect. -* IoT device spoofing: IoT devices can be spoofed by creating a fake device that mimics the behavior of the real device. This would allow an attacker to send false information to the blockchain, making it difficult to detect. -* Smart contract manipulation: Smart contracts can be manipulated by an attacker to change the conditions required to execute the contract. This would allow an attacker to change the location or condition of an object, making it difficult to detect. -* QR code tampering: QR codes can be tampered with by altering the information that it points to or by creating a fake QR code that points to a fake webpage. -* Hash manipulation: The hash of the object's information can be manipulated by altering the information of the object before calculating the hash and storing it on the blockchain. +* RFID tag cloning: RFID tags can be cloned by using specialized equipment to copy the information stored on the tag. +This would allow an attacker to create a counterfeit RFID tag that is identical to the original, making it difficult to detect. + +* IoT device spoofing: IoT devices can be spoofed by creating a fake device that mimics the behavior of the real device. +This would allow an attacker to send false information to the blockchain, making it difficult to detect. + +* Smart contract manipulation: Smart contracts can be manipulated by an attacker to change the conditions required to +execute the contract. This would allow an attacker to change the location or condition of an object, making it difficult to detect. + + +* QR code tampering: QR codes can be tampered with by altering the information that it points to or by creating +a fake QR code that points to a fake webpage. + + +* Hash manipulation: The hash of the object's information can be manipulated by altering the information of +the object before calculating the hash and storing it on the blockchain. #### 2.3.3 Our proof of physicality and existence methods Since the ultimate proof of an object's existence is through direct observation with the human eye, @@ -198,32 +261,6 @@ making it more difficult for counterfeiters to successfully replicate an object. By using multiple methods, we can gather information on the object's characteristics and detect any inconsistencies, making it easier to confirm the authenticity of an object. -##### Holding MXC tokens -Allowing devices in the MXC network to hold MXC tokens is an effective method for providing verification that these -devices are genuine members of the network. The MXC tokens themselves, being a digital asset on the blockchain, -are resistant to counterfeiting due to their immutable and transparent nature. By being signed and verified on the blockchain, -these tokens can be traced back to the device that holds them, making it near impossible for an attacker to counterfeit them. This provides a strong proof of the device's authenticity and its membership in the MXC network. -Furthermore, this approach also allows for a decentralized and trustless verification of the devices within the network, as the blockchain ensures that the tokens are securely and transparently distributed to the devices that are part of the network. This eliminates the need for a centralized authority to verify devices, reducing the risk of fraud and increasing the overall security of the network. Additionally, the ability to trace the history of the tokens ensures that the devices have not been tampered with or compromised. Overall, allowing devices in the MXC network to hold MXC tokens provides a robust and secure method for verifying the authenticity of devices within the network, as well as ensuring the integrity of the network as a whole. - -##### Objective Measurement Techniques -OMT in the case of determining the physical existence of an object covers 4 possibilities: -1. Use multiple sources to verify the existence of the object. This could include using multiple observers to look for the object, or using sensors or other automated systems to detect its presence. - * Like creating a classification machine learning model that verifies and cross-reference that object with its database. -2. Use objective measurement tools and protocols to quantify the characteristics of the object and its location. For example, you could use a tape measure to accurately determine the size and shape of the object, or use GPS technology to precisely locate its position. - * attaching tags on the corners of the object that return its location to the cloud and then the dimension is calculated and then cross-referenced with dimension of model. - * the location of the item and it's tags can be determined by triangulation. -3. Use controlled conditions to eliminate the potential for external factors to influence the measurement. For example, you could conduct the measurement in a controlled environment, or use shielding or other methods to block out any external interference. - * making sure that the measurement devices are part of our system. through peer listening and IP address of miner, in addition miner health metrics. -4. Use statistical analysis to confirm the existence of the object. By analyzing the data from the measurement process, you can use statistical techniques to determine the likelihood that the object exists in the specified location. - * Bandwidth utilized by miner and the amount of data sent or received by the object. validity of the triangulation process. - -In the next chapters, Miner scores affecting Physical existence will be discussed covering -* GPS Location -* Miner peer listening -* IP address -* Bandwidth -* Miner health -* Triangulation ### 2.4 Synchronization of miners in network Our System tracks the devices in Real-time. monitoring and tracking of the devices to observe any changes as they occur in real-time. @@ -280,7 +317,21 @@ as an extra protection we will implement certain methods #### 3.2.2 Conventional solutions -layer the miners will hold MXC tokens, and we will implement that the item in the network will +##### Holding MXC tokens +Allowing devices in the MXC network to hold MXC tokens is an effective method for providing verification that these +devices are genuine members of the network. The MXC tokens themselves, being a digital asset on the blockchain, +are resistant to counterfeiting due to their immutable and transparent nature. By being signed and verified on the blockchain, +these tokens can be traced back to the device that holds them, making it near impossible for an attacker to counterfeit them. +This provides a strong proof of the device's authenticity and its membership in the MXC network. +Furthermore, this approach also allows for a decentralized and trustless verification of the devices within the network, +as the blockchain ensures that the tokens are securely and transparently distributed to the devices that are part of the network. +This eliminates the need for a centralized authority to verify devices, reducing the risk of fraud and increasing +the overall security of the network. Additionally, the ability to trace the history of the tokens ensures that the +devices have not been tampered with or compromised. Overall, allowing devices in the MXC network to hold MXC tokens +provides a robust and secure method for verifying the authenticity of devices within the network, as well as ensuring +the integrity of the network as a whole. + +layer the miners will hold MXC tokens, and we will implement that the item in the network will hold MXC tokens. Since the blockchain is secured and can be tracked by the community, We had the idea that the Miner can hold @@ -292,16 +343,60 @@ Cryptocurrencies AKA Miner Fuel to prove that the miner exist in the network sin so the proof of staking in Miner helps in proving the existence of the miner. the more the miner stake the more trustworthy the miner is. this is one aspect of miner health. -## 4. Miner trust +##### Objective Measurement Techniques +OMT in the case of determining the physical existence of an object covers 4 possibilities: +1. Use multiple sources to verify the existence of the object. This could include using multiple observers to look for the object, or using sensors or other automated systems to detect its presence. + * Like creating a classification machine learning model that verifies and cross-reference that object with its database. +2. Use objective measurement tools and protocols to quantify the characteristics of the object and its location. For example, you could use a tape measure to accurately determine the size and shape of the object, or use GPS technology to precisely locate its position. + * attaching tags on the corners of the object that return its location to the cloud and then the dimension is calculated and then cross-referenced with dimension of model. + * the location of the item and it's tags can be determined by triangulation. +3. Use controlled conditions to eliminate the potential for external factors to influence the measurement. For example, you could conduct the measurement in a controlled environment, or use shielding or other methods to block out any external interference. + * making sure that the measurement devices are part of our system. through peer listening and IP address of miner, in addition miner health metrics. +4. Use statistical analysis to confirm the existence of the object. By analyzing the data from the measurement process, you can use statistical techniques to determine the likelihood that the object exists in the specified location. + * Bandwidth utilized by miner and the amount of data sent or received by the object. validity of the triangulation process. + +In the next chapters, Miner scores affecting Physical existence will be discussed covering +* GPS Location +* Miner peer listening +* IP address +* Bandwidth +* Miner health +* Triangulation + + +## 4. LSC of location We are building this network so 3rd party businesses can utilize it. naturally these businesses would prefer to use -nodes (miners) that are functional and trustworthy. +nodes (miners) that are functional and trustworthy. + +Our solution has a localization algorithm that utilizes LPWAN uplink data with timestamps to triangulate the location of LPWAN sensors and our miners. +In order to triangulate the sensors, the algorithms first confirm the location of the miners with the downlinks they sent to the sensors. +With regular downlink peer listenings, the algorithm is able to filter out the tampered miner locations as they can’t be heard by peer miners. +Those miner locations are confirmed by the LSC and then can respond to the uplink request for location services. + +![LSC design for location](/img/POL/img1.JPG) + +In the figure above, we can see how a sensor NFT’s LSC works. +* First of all, the sensor sends data that can be picked up by the miners as usual. + Each data packet will be time stamped in the miner with precise time of arrival; + this feature is executed by the hardware chip inside the M2 Pro miners. + The third party miners won’t be able to provide this service due to the hardware limits. + + +* Next, the MXC Controller needs to rule out the tampered locations of the miners or inaccurate ones with bias and peer + data, if the miner is not physically located there or always changes locations, the LSC can easily exclude this kind of data. Time difference of arrival (TDOA) based on location requires + at least 3 miners with valid locations to calculate; the more miners present, the more accurate the location data will be. + +All the miners that can provide LSC will be able to validate more MXC results than the third party miners. + +### 4.1 Miner score +We developed a score model to evaluate each miner. This score is influenced by many variables. This score model will be weighted and score based. The MXC community will have control over the weight of each metric. the sum score of the model should be 1. Weighted average model will be used The following is the miner metrics score that will later be processed and summed: -* GPS Location of miner (excluding for m3 lite miners) *******************9 +* GPS Location of miner (excluding m3 lite miners) *********************** * Time Difference of Arrival (TDoA) with another device with known location. * comparison of Multilateration or triangulation equation output with device known location. * Miner peer listening @@ -328,58 +423,59 @@ each of this metrics will have a score: | Device messages Data | popularity score | 100% | percentage | | Miner Health metrics | Reliability score | 200 | percentage out of 200 | -So as follows proof of stake through blockchain proofs the validity of the above-mentioned metrics. -when these metrics are trustworthy and accurate then the physical existence of the miner is proved and the location -of the miner is validated. thus proof of Reality achieved. +Proof of Stake through blockchain technology verifies the validity of the previously mentioned metrics. +When these metrics attain high scores, proof of the location of the miner and its physical existence can be trusted and +considered as LSC. +This validation grants the miner access to the LSC program. -with the help of the valid information of the location of the miner and its physical existence. we can now -locate items that is utilizing the network. through triangulation algorithms using timestamps and gps location or -through Trilateration algorithms using ip addresses and peer miner listening information. +By utilizing accurate information about the miner's location and physical existence, +we can identify items on the network through multilateration or triangulation algorithms that utilize timestamps and +GPS location or that utilize Bluetooth, IP addresses, and information from peer miners. -since the miner has proof of reality and the item in the network is validated through said miner. -therefore the item itself will be proved to exist by getting its location, and it exists physically because it holds -MXC tokens. -therefore the item itself achieved proof of reality +As the miner possesses LSC and the item on the network is validated through the miner, +the item's existence can be confirmed through its location and physical form, demonstrated by its possession of MXC tokens. +As a result, the item itself also achieves LSC. -### 4.1 GPS validation -With good programming and hardware skills hackers can spoof GPS location. We can counter that by simply testing the TDoA of each miner to a + +#### 4.1.1 GPS validation +With good programming and hardware hackers can spoof GPS location. We can counter that by simply testing the TDoA of each miner to a device with predefined location. * each Miner will provide a TDoA to locate a device. * device will send an encrypted code that will make the Miner send the TDoA. * Miner will send a package data with TDoA value to the device. * As the position of the device is known it should calculate the expected TDoA. -* if the TDoA received from the Miner is different from the TDoA calculated, flag this miner that it spoof its location -* also the resulted calculation from the triangulation algorithm will be deviate from expected result. +* if the TDoA received from the Miner is different from the TDoA calculated, flag this miner that has a false location. +* also the resulted calculation from the triangulation algorithm will deviate from expected result. another method is to use mobile device connected to the miner through the data dash application -* if the location of the miner and mobile device are close to each other in regard to GPS then Miner location can be valid +* if the location of the miner and mobile device are close to GPS Miner location. then miner location is valid in this regard a score of True (1) or False (0) will be given to the score. * True as trusted * False as fake -### 4.2 Miner Peer Listening -We have created a system where we have a mapper that divide the space into hexagons. each hexagon can accommodate upto 5 Miners. +#### 4.1.2 Miner Peer Listening +We have created a system where we have a mapper that divide the earth into hexagons. each hexagon can accommodate upto 5 Miners. more miners can exist in the hexagon but the systems does not require that. the score is simple: * we count the number of miners in the hexagon upto 5 this is our score When the hexagon is full this is an indication that the communication between the miners is reliable and strong creating a family. therefore named family score. -### 4.3 IP address +#### 4.1.3 IP address constant IP address is an indication that the miner does not use VPN or keeps on changing location. the longer the miner holds onto the same IP address more stoic, rigid, eternal and immutable. The relic score is calculated by the number of days the IP address of miner did not change: -* if miners has same IP address for 15 days then it has a score of 15 -* if miners has same IP address for 30 days then it has a score of 30 +* if miners has the same IP address for 15 days then it has a score of 15. +* if miners has the same IP address for 30 days then it has a score of 30. additionally we can utilize IP address to verify position of miner using mobile device. since both miner and mobile device are connected through the data dash application. if both of them are utilizing the same network and comparing the GPS location of mobile device with registered location of the Miner then we can consider the location of the miner to be valid -### 4.4 device messages data -going back to the hexagon system. it was told that it can hold upto 5 miners. however the number of devices connected +#### 4.1.4 device messages data +going back to the hexagon system. it was mentioned that each hexagon can hold upto 5 miners. however the number of devices connected to the miners existing in the hexagon is not limited. it depends on the amount of data and speed of LORAWAN of sender and receiver. theoretically the Miner can handle 16 packets of 50 kilobyte of data. some packets can be larger than 50 kilobytes so the @@ -390,7 +486,7 @@ the score will be a graph of average utilization per hour in a 24-hour period. the popularity percentage score depends on the data bandwidth consumed will be divided into three categories. - under utilized between 0% to 33.3% which is not reliable - optimum between 33.3% to 66.6% with 50% is the most optimum -- crowded between 66.6% to 100% which is bad and crowded +- crowded between 66.6% to 100% which is good but crowded here is an example @@ -400,7 +496,7 @@ here is an example so the score will be the mean of all previous calculated mean utilization of this hour. -### 4.5 Miner health metrics and its corresponding scores +#### 4.1.5 Miner health metrics and its corresponding scores The miner health has a percentage score that influences the daily rate it mines for cryptocurrency. however this score is not the trustworthy score that will be used by 3rd party businesses. @@ -416,7 +512,7 @@ the weighted trustworthy score also uses the same metrics in the miner health: for more information about the definition of these metrics please go [here](../docs/tutorials/m2-pro/miner-health.mdx). each metric will have a different score. in total the score will be 200. -#### 4.5.1 Fuel +##### Fuel The Fuel refers to the Cryptocurrency stored in the tank. * if the tank has 100 tokens and the tank capacity is 100. then this miner Fuel score is 100% * if the tank has 0 tokens and the tank capacity is 100. then this miner Fuel score is 0% @@ -427,7 +523,7 @@ having 0% tokens gives you -10 points trustworthy having 100% tokens gives you 0 points trustworthy having 200% tokens gives you +10 points trustworthy -#### 4.5.2 Uptime +##### Uptime Naturally when a 3rd party is using your services they want that service to be running 24 hrs every day. if the miner went down it will affect the quality of the service. @@ -439,14 +535,14 @@ if it was down for 7 days it will get -50 trustworthy the equation for calculating uptime score is 2.1428571428571 x^2 - 0.71428571428571 x - 50 -#### 4.5.3 GPS Signal +##### GPS Signal if the GPS signal of the miner is not strong 3rd parties will not be able to use the miner. to locate their items using network you need strong signals from nodes to triangulate the location of the item. therefore the GPS signal score is also 50. theory; if the GPS location and the peer miner communication has a huge error the less score you have. the less the error the more score you have - +(************) this is wrong delta error is 20 m if error is 0 m trustworthy score is + 50 @@ -456,7 +552,7 @@ if error is 20 m trustworthy score is -50 the equation for calculating GPS signal score is 1.1111111111111 x^2 - 27.222222222222 |x| + 50 -#### 4.5.4 Orientation +##### Orientation naturally the service user would prefer that the miner covers the largest area possible so their business would have an extended range. @@ -469,7 +565,7 @@ if the miner is mounted horizontally or orientation miner health percentage is 0 the equation for calculating the orientation score is 0.048611111111111 x^2 - 5.4861111111111 |x| + 50 -#### 4.5.5 Proximity +##### Proximity unlike the effect the proximity has on miner health. the more miners are in the surroundings the more trustworthy score the miner has. due to the validity of peer miner communication @@ -481,7 +577,7 @@ if miner proximity metric in miner health is 7 percent the trustworthy score is the equation for calculating the Proximity score is - 2.8571428571429 x + 20 -#### 4.5.6 Altitude +##### Altitude the high altitude of the miner influence its connectivity with other items in the network if miner Altitude metric in miner health is 5 percent the trustworthy score is +20 @@ -491,7 +587,7 @@ if miner Altitude metric in miner health is 0 percent the trustworthy score is 0 the equation for calculating the Altitude score is 4 x -#### 4.5.7 Summary +##### Summary for a total score of 200 the scores are divided as follows. * 10 p Fuel * 50 p Uptime @@ -509,7 +605,7 @@ for a total score of 200 the scores are divided as follows. | Proximity | +20 p 0% proximity score | +10 p 3.5% proximity score | 0 p 7% proximity score | | Altitude | +20 p 5% Altitude score | +10 p 2.5% Altitude score | 0 p 0% Altitude score | -the higher the trustworthy score of the miner the stronger the proof of reality of the miner. +the higher the trustworthy score of the miner the stronger the LSC of the miner. in addition, the more valid are the following metrics: * GPS Location of miner (excluding for m3 lite miners) * Miner peer listening @@ -519,7 +615,7 @@ in addition, the more valid are the following metrics: through these metrics we can locate the position of any item in the network and proof its reality too. we need special algorithms in order to locate these data -## 5. Localization algorithms +### 4.2 Localization algorithms 1. Trilateration: This algorithm uses the distances between the LPWAN device and three or more reference points (e.g., base stations) to calculate the device's position. 2. Multilateration: @@ -527,7 +623,7 @@ we need special algorithms in order to locate these data Trilateration will be used for M3 lite but Multilateration will be used for miners that has GPS support -### 5.1 Localization through Trilateration +#### 4.2.1 Localization through Trilateration Trilateration is a good algorithm to use when you want to find the position of a device using three LPWAN devices (or reference points). Trilateration works by calculating the position of the device based on the distances between the device and the three LPWAN devices. To use trilateration, you need to know the positions of the three LPWAN devices and the distance between the device and each of the LPWAN devices. There are various methods for measuring the distance between the device and the LPWAN devices, such as using the time of flight of a signal or the strength of the signal. @@ -628,7 +724,7 @@ int main(int argc, char** argv) { return 0; } ``` -### 5.2 Localization through Multilateration +#### 4.2.2 Localization through Multilateration If each of the LPWAN devices has a GPS time stamp, it may be possible to use the GPS data to more accurately determine the position of the device. One approach would be to use the GPS time stamps to synchronize the clocks of the LPWAN devices, and then use a technique such as multilateration to calculate the position of the device based on the time difference of arrival (TDOA) of signals from the device to the LPWAN devices. Multilateration is similar to trilateration, but it uses the TDOA of signals from the device to multiple reference points (in this case, the LPWAN devices) to calculate the device's position. By measuring the TDOA of the signals, it is possible to determine the distance between the device and each of the LPWAN devices more accurately than using techniques such as time of flight or signal strength. @@ -722,26 +818,26 @@ This implementation uses the GNU Scientific Library (GSL) to solve a least squar Note that you will need to include the GSL header files and link against the GSL library in order to use this code. You can find more information on installing and using GSL at the following link: https://www.gnu.org/software/gsl/ -## 6. penalties +## 4.3 penalties The previous scores are either an indication for User about the mining rate of the miner or the reliability and availability of miner for 3rd party users. We need to create protection for the system from abuse. in the following table we will discuss the causes of penalties -| Cause | action | penalty | slash score | How to avoid | -|------------------------------------------------------------------|----------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------|--------------------------------------------------------------------------------------------------| -| Faking miner location | All Miners owned will be Locked | Lose all Crypto connected to Miner and banned from Blockchain | 100 | do not fake miner location | -| miner is down more than 7 days and is still registered in mapper | notification will be sent to owner profile in application and through mail | no benefits from mining or 3rd party using miner as gateway for the same amount of days the miner was down after 7 days | 5 | always try to keep miner on. if not possible notify the customer support or unregister the miner | +| Cause | action | penalty | slash score | How to avoid | +|------------------------------------------------------------------|-----------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------|--------------------------------------------------------------------------------------------------| +| Faking miner location | All Miners owned will be Locked | Lose all Crypto connected to Miner and banned from Blockchain | 100 | do not fake miner location | +| miner is down more than 7 days and is still registered in mapper | notification will be sent to owner profile in application and through email | no benefits from mining or 3rd party using miner as gateway for the same amount of days the miner was down after 7 days | 5 | always try to keep miner on. if not possible notify the customer support or unregister the miner | -## 8. third party application +## 5. third party application plug and play API -### 8.1 trustworthy localization -### 8.2 advantages of LPWAN against peer communications +### 5.1 trustworthy localization +### 5.2 advantages of LPWAN against peer communications ## . MXC Controller There are lists of services that LPWAN can provide to the sensors/end devices. From 1e397c5e288f4bca080f8c3149084b9b209e4de2 Mon Sep 17 00:00:00 2001 From: ShahinVI Date: Tue, 28 Feb 2023 13:51:01 +0100 Subject: [PATCH 6/6] TOC update --- docs/whitepapers/Proof-of-Location.md | 419 ++++++++++++-------------- 1 file changed, 193 insertions(+), 226 deletions(-) diff --git a/docs/whitepapers/Proof-of-Location.md b/docs/whitepapers/Proof-of-Location.md index 98f418f..9840fa6 100644 --- a/docs/whitepapers/Proof-of-Location.md +++ b/docs/whitepapers/Proof-of-Location.md @@ -24,8 +24,8 @@ sidebar_position: 3 - [2.3.2 Challenges of current proof of existence methods](#232-challenges-of-current-proof-of-existence-methods) - [2.3.3 Our proof of physicality and existence methods](#233-our-proof-of-physicality-and-existence-methods) - [2.4 Synchronization of miners in network](#24-synchronization-of-miners-in-network) - - [2.3.1 Why do we require synchronization](#241-why-do-we-require-synchronization) - - [2.3.2 Our synchronization method](#242-our-synchronization-method) + - [2.4.1 Why do we require synchronization](#241-why-do-we-require-synchronization) + - [2.4.2 Our synchronization method](#242-our-synchronization-method) - [3. LSC of miner and sensors](#3-lsc-of-miner-and-sensors) - [3.1 Risks of fake devices](#31-risks-of-fake-devices) - [3.2 Decentralized solution](#32-decentralized-solution) @@ -52,10 +52,22 @@ sidebar_position: 3 - [4.2 Localization algorithms](#42-localization-algorithms) - [4.2.1 Localization through Trilateration](#421-localization-through-trilateration) - [4.2.2 Localization through Multilateration](#422-localization-through-multilateration) - - [4.3 penalties](#43-penalties) - - [5. third party application](#5-third-party-application) - - [5.1 trustworthy localization](#51-trustworthy-localization) - - [5.2 advantages of LPWAN against peer communications](#52-advantages-of-lpwan-against-peer-communications) + - [5. Consensus Group](#5-consensus-group) + - [5.1 why we need Consensus Groups](#51-why-we-need-consensus-groups) + - [5.2 Consensus Group Ground Rules](#52-consensus-group-ground-rules) + - [5.2.1 Decision-making Process](#521-decision-making-process) + - [5.2.2 Inclusiveness](#522-inclusiveness) + - [5.2.3 Accountability](#523-accountability) + - [5.2.4 Flexibility](#524-flexibility) + - [5.2.5 Shared Control](#525-shared-control) + - [5.2.6 Commitment to implementation](#526-commitment-to-implementation) + - [5.2.7 Validation](#527-validation) + - [5.2.8 Time Synchronization](#528-time-synchronization) + - [5.2.9 Quorum](#529-quorum) + - [5.2.10 Data Aggregation](#5210-data-aggregation) + - [5.2.11 Decision Threshold](#5211-decision-threshold) + - [5.2.12 Penalty Mechanism](#5212-penalty-mechanism) + - [6. MXC Controller](#6-mxc-controller) ## 1. Definitions @@ -85,6 +97,23 @@ authenticity of the object's location information. Together, these two aspects of LSC provide a comprehensive and secure method of determining both the physical presence and location of an object. +### 1.2 Consensus Group +A consensus group in blockchain technology is a group of nodes that participate in the process of validating +and confirming transactions on a blockchain network. +The goal of a consensus group is to achieve agreement or consensus among its members on the state of the blockchain ledger, +ensuring that all transactions are valid and consistent with the rules of the network. + +In blockchain technology, consensus is crucial to the security and integrity of the network. +By ensuring that all nodes agree on the state of the blockchain, +the consensus group prevents any single node from acting maliciously or tampering with the blockchain. +This is achieved through a consensus algorithm, which establishes a set of rules and procedures for validating +and confirming transactions, and for resolving conflicts or discrepancies between nodes. + +Consensus groups in blockchain technology are often decentralized and open, +meaning that anyone can participate in the validation process by running a node on the network. +This helps to ensure that the decision-making process is transparent, fair, and democratic, +and that the network is resilient to attacks or failures. + ## 2. Design Aims Our primary objective is to establish a seamless connection between the metaverse and the physical world. To accomplish this, we aim to authenticate the miners and devices in our network through the use of multiple tools, @@ -150,8 +179,9 @@ In order to establish a true connection between the metaverse and the real world To achieve this, we will utilize two key tools: -- Low-Scale Certification (LSC) Location - Low-Scale Certification (LSC) Physical existence +- Low-Scale Certification (LSC) Location + LSC will allow us to track and verify the authenticity of objects within the metaverse, ensuring that their state, location, and ownership information is up-to-date and accurate. @@ -161,7 +191,7 @@ By using these tools, we aim to bridge the gap between the metaverse and the rea ### 2.2 Location A location is a rare resource that needs to be calculated by radio signals. #### 2.2.1 How are objects localized -Currently, there are three methods to calculate a location. +Examples of methods to calculate a location. * GPS: Global Positioning System (GPS) is a widely used tool for determining the location of an object. It uses a network of satellites to triangulate the position of a device on the ground. @@ -193,7 +223,8 @@ tricking the system into believing the fake device is in a different location #### 2.2.3 Our localization method goal -In our solution we will counter all tampering attempts and provide accurate result by using a combination of technologies and verification method. +In our solution we will counter all tampering attempts and provide accurate result by using +a combination of technologies and verification method. ### 2.3 Physical existence @@ -243,11 +274,9 @@ This would allow an attacker to send false information to the blockchain, making * Smart contract manipulation: Smart contracts can be manipulated by an attacker to change the conditions required to execute the contract. This would allow an attacker to change the location or condition of an object, making it difficult to detect. - * QR code tampering: QR codes can be tampered with by altering the information that it points to or by creating a fake QR code that points to a fake webpage. - * Hash manipulation: The hash of the object's information can be manipulated by altering the information of the object before calculating the hash and storing it on the blockchain. @@ -313,7 +342,43 @@ as an extra protection we will implement certain methods #### 3.2.1 LSC device provisioning ##### definition +LSC is a technology used to prove the existence of a LPWAN device in the real world. +It is important in applications where LPWAN end-devices perform tasks for which require interactions with blockchain. +It is important to create a strategy of detecting and minimizing the risk of malicious actions by actors pretending +to be a real, physical device. + ##### method +Device provisioning of the LPWAN device is a process of establishing a shared secret key between the device +and the cloud server to exchange information in an encrypted and secure way. +The protocol is based on the Key exchange protocol that uses asymmetric cryptography and it's based on PID unique device identifier. +PID is purchased by the device manufacturer from the SuperNode for a fee. +- this PID is valid for 12 months and a new fee is paid to get another 12 months extension. + +###### Step 1 Generate the PID +The PID is created by the Device creator on the Super Node using MXC Controller. +The PID costs some fee. The SN then creates a NFT on the blockchain with +the PID attached a secret, only visible to the owner of the NFT. The NFT is then sent to Creators wallet. + +###### Step 2 PID is programmed into the device. +The creator needs to flash the PID into the sensor device it wants to produce. +Also needs to print a label with the PID so the device can be added to the DD app by scanning it. + +###### Step 3 Device provisioning +PID is just an authenticator of the device, to be able to join the device needs to perform self provisioning after it is manufactured. + +Two types of keys should be created and exchanged during this process - AS128 keys for LPWAN, and ECC keys +for authentication and signing. The AS128 key will be stored on the Device Provisioning server. +The Public ECC key will be stored on blockchain and the Private ECC key will be only known to the device itself. + +The provisioning message sent by the Sensor Device is forwarded to the SuperNode by the Miner, +Miner signs the message with its private Key. The miner has its Public Key stored on the blockchain because +it was provisioned earlier so we know it is real. + +Supernode generates all the keys and sends the AS128 and ECC keys to the Device. +At the same time it signs the received signed message from the Miner with its own private key +and creates a new NFT with this message chain and Device Public key and attaches it to the original NFT with PID on the blockchain. +The NFT can contain more information like the EUI of the device, certificate of the manufacturer and so on. + #### 3.2.2 Conventional solutions @@ -365,7 +430,7 @@ In the next chapters, Miner scores affecting Physical existence will be discusse ## 4. LSC of location -We are building this network so 3rd party businesses can utilize it. naturally these businesses would prefer to use +We are building this network so 3rd party services can utilize it. naturally these businesses would prefer to use nodes (miners) that are functional and trustworthy. Our solution has a localization algorithm that utilizes LPWAN uplink data with timestamps to triangulate the location of LPWAN sensors and our miners. @@ -540,9 +605,9 @@ if the GPS signal of the miner is not strong 3rd parties will not be able to use the miner. to locate their items using network you need strong signals from nodes to triangulate the location of the item. therefore the GPS signal score is also 50. -theory; if the GPS location and the peer miner communication has a huge error +theory; if the GPS location and the TDoA triangulation from other miners has a huge error the less score you have. the less the error the more score you have -(************) this is wrong + delta error is 20 m if error is 0 m trustworthy score is + 50 @@ -624,222 +689,124 @@ we need special algorithms in order to locate these data Trilateration will be used for M3 lite but Multilateration will be used for miners that has GPS support #### 4.2.1 Localization through Trilateration -Trilateration is a good algorithm to use when you want to find the position of a device using three LPWAN devices (or reference points). Trilateration works by calculating the position of the device based on the distances between the device and the three LPWAN devices. - -To use trilateration, you need to know the positions of the three LPWAN devices and the distance between the device and each of the LPWAN devices. There are various methods for measuring the distance between the device and the LPWAN devices, such as using the time of flight of a signal or the strength of the signal. - -Once you have this information, you can use trilateration to calculate the position of the device by solving a system of three equations, one for each of the LPWAN devices. This can be done using a variety of methods, such as linear least squares or iterative methods. - -Overall, trilateration is a relatively simple and power-efficient method for finding the position of a device using three LPWAN devices, and it is often used in applications where accuracy is important. -```c -#include -#include - -struct Point { - double x; - double y; - double z; -}; - -// Computes the distance between two points -double distance(struct Point a, struct Point b) { - return sqrt((a.x - b.x) * (a.x - b.x) + - (a.y - b.y) * (a.y - b.y) + - (a.z - b.z) * (a.z - b.z)); -} - -// Solves for the location of the object using trilateration -struct Point trilaterate(struct Point referencePoints[3], double distances[3]) { - struct Point objectLocation; - - // Compute position of reference point 0 in spherical coordinates - double x0 = referencePoints[0].x; - double y0 = referencePoints[0].y; - double z0 = referencePoints[0].z; - double r0 = distances[0]; - double phi0 = atan2(y0, x0); - double theta0 = atan2(sqrt(x0 * x0 + y0 * y0), z0); - - // Compute position of reference point 1 in spherical coordinates - double x1 = referencePoints[1].x; - double y1 = referencePoints[1].y; - double z1 = referencePoints[1].z; - double r1 = distances[1]; - double phi1 = atan2(y1, x1); - double theta1 = atan2(sqrt(x1 * x1 + y1 * y1), z1); - - // Compute position of reference point 2 in spherical coordinates - double x2 = referencePoints[2].x; - double y2 = referencePoints[2].y; - double z2 = referencePoints[2].z; - double r2 = distances[2]; - double phi2 = atan2(y2, x2); - double theta2 = atan2(sqrt(x2 * x2 + y2 * y2), z2); - - // Convert spherical coordinates to Cartesian coordinates - struct Point p0 = {r0 * sin(theta0) * cos(phi0), r0 * sin(theta0) * sin(phi0), r0 * cos(theta0)}; - struct Point p1 = {r1 * sin(theta1) * cos(phi1), r1 * sin(theta1) * sin(phi1), r1 * cos(theta1)}; - struct Point p2 = {r2 * sin(theta2) * cos(phi2), r2 * sin(theta2) * sin(phi2), r2 * cos(theta2)}; - - // Compute cross product of p1 - p0 and p2 - p0 - double cx = (p1.y - p0.y) * (p2.z - p0.z) - (p2.y - p0.y) * (p1.z - p0.z); - double cy = (p1.z - p0.z) * (p2.x - p0.x) - (p2.z - p0.z) * (p1.x - p0.x); - double cz = (p1.x - p0.x) * (p2.y - p0.y) - (p2.x - p0.x) * (p1.y - p0.y); - double p01 = sqrt((p1.x - p0.x) * (p1.x - p0.x) + (p1.y - p0.y) * (p1.y - p0.y) + (p1.z - p0.z) * (p1.z - p0.z)); - double p02 = sqrt((p2.x - p0.x) * (p2.x - p0.x) + (p2.y - p0.y) * (p2.y - p0.y) + (p2.z - p0.z) * (p2.z - p0.z)); - double p12 = sqrt((p2.x - p1.x) * (p2.x - p1.x) + (p2.y - p1.y) * (p2.y - p1.y) + (p2.z - p1.z) * (p2.z - p1.z)); - double denom = 2 * ((p1.x - p0.x) * (p2.x - p0.x) + (p1.y - p0.y) * (p2.y - p0.y) + (p1.z - p0.z) * (p2.z - p0.z)) - - // Compute object location using trilateration formula - objectLocation.x = p0.x + ((r0 * r0 - r1 * r1 + p01 * p01) / denom) * (p2.x - p0.x) + ((r0 * r0 - r2 * r2 + p02 * p02) / denom) * (p1.x - p0.x); - objectLocation.y = p0.y + ((r0 * r0 - r1 * r1 + p01 * p01) / denom) * (p2.y - p0.y) + ((r0 * r0 - r2 * r2 + p02 * p02) / denom) * (p1.y - p0.y); - objectLocation.z = p0.z + ((r0 * r0 - r1 * r1 + p01 * p01) / denom) * (p2.z - p0.z) + ((r0 * r0 - r2 * r2 + p02 * p02) / denom) * (p1.z - p0.z); - - // Check if trilateration is valid by verifying that the object is within the sphere defined by each reference point - if (fabs(distance(objectLocation, referencePoints[0]) - r0) > 0.001 || - fabs(distance(objectLocation, referencePoints[1]) - r1) > 0.001 || - fabs(distance(objectLocation, referencePoints[2]) - r2) > 0.001) { - // Trilateration is invalid, set object location to (0, 0, 0) - objectLocation.x = 0; - objectLocation.y = 0; - objectLocation.z = 0; - } - return objectLocation; -} -int main(int argc, char** argv) { - // Set up reference points - struct Point referencePoints[3]; - referencePoints[0] = (struct Point){0, 0, 0}; - referencePoints[1] = (struct Point){10, 0, 0}; - referencePoints[2] = (struct Point){0, 10, 0}; - - // Set up distances to reference points - double distances[3] = {10, 15, 20}; - - // Determine object location using trilateration - struct Point objectLocation = trilaterate(referencePoints, distances); - - printf("Object location: (%.2f, %.2f, %.2f)\n", objectLocation.x, objectLocation.y, objectLocation.z); - - return 0; -} -``` -#### 4.2.2 Localization through Multilateration -If each of the LPWAN devices has a GPS time stamp, it may be possible to use the GPS data to more accurately determine the position of the device. One approach would be to use the GPS time stamps to synchronize the clocks of the LPWAN devices, and then use a technique such as multilateration to calculate the position of the device based on the time difference of arrival (TDOA) of signals from the device to the LPWAN devices. - -Multilateration is similar to trilateration, but it uses the TDOA of signals from the device to multiple reference points (in this case, the LPWAN devices) to calculate the device's position. By measuring the TDOA of the signals, it is possible to determine the distance between the device and each of the LPWAN devices more accurately than using techniques such as time of flight or signal strength. - -Overall, using the GPS time stamps in conjunction with a technique such as multilateration can potentially provide more accurate positioning than using trilateration alone, but it may also be more complex and power-intensive. The best approach will depend on the specific requirements and constraints of the application. - -example code for multilateration -```c -#include -#include - -#define NUM_REFERENCE_POINTS 3 +Trilateration is a good algorithm to use when you want to find the position of a device using three LPWAN devices (or reference points). +Trilateration works by calculating the position of the device based on the distances between the device and the three LPWAN devices. -struct Point { - double x; - double y; - double z; -}; +To use trilateration, you need to know the positions of the three LPWAN devices and the distance between the device and +each of the LPWAN devices. There are various methods for measuring the distance between the device and the LPWAN devices, +such as using the time of flight of a signal or the strength of the signal. -struct ReferencePoint { - struct Point location; - double distance; -}; +Once you have this information, you can use trilateration to calculate the position of the device by solving +a system of three equations, one for each of the LPWAN devices. +This can be done using a variety of methods, such as linear least squares or iterative methods. -// Computes the distance between two points -double distance(struct Point a, struct Point b) { - return sqrt((a.x - b.x) * (a.x - b.x) + - (a.y - b.y) * (a.y - b.y) + - (a.z - b.z) * (a.z - b.z)); -} +Overall, trilateration is a relatively simple and power-efficient method for finding the position of a device using +three LPWAN devices, and it is often used in applications where accuracy is important. -// Solves for the location of the object using multilateration -struct Point multilaterate(struct ReferencePoint referencePoints[]) { - struct Point objectLocation; - - // Initialize matrices - double A[NUM_REFERENCE_POINTS][3]; - double b[NUM_REFERENCE_POINTS]; - - // Set up least squares system - for (int i = 0; i < NUM_REFERENCE_POINTS; i++) { - struct Point rp = referencePoints[i].location; - double d = referencePoints[i].distance; - A[i][0] = 2 * (rp.x - objectLocation.x); - A[i][1] = 2 * (rp.y - objectLocation.y); - A[i][2] = 2 * (rp.z - objectLocation.z); - b[i] = d * d - objectLocation.x * objectLocation.x - objectLocation.y * objectLocation.y - objectLocation.z * objectLocation.z + rp.x * rp.x + rp.y * rp.y + rp.z * rp.z; - } - - // Solve least squares system - gsl_matrix_view m = gsl_matrix_view_array(A, NUM_REFERENCE_POINTS, 3); - gsl_vector_view c = gsl_vector_view_array(b, NUM_REFERENCE_POINTS); - gsl_vector *x = gsl_vector_alloc(3); - int s; - gsl_permutation *p = gsl_permutation_alloc(3); - gsl_linalg_LU_decomp(&m.matrix, p, &s); - gsl_linalg_LU_solve(&m.matrix, p, &c.vector, x); - - // Update object location - objectLocation.x = gsl_vector_get(x, 0); - objectLocation.y = gsl_vector_get(x, 1); - objectLocation.z = gsl_vector_get(x, 2); - - // Clean up - gsl_permutation_free(p); - gsl_vector_free(x); - - return objectLocation; -} - -int main(int argc, char** argv) { - // Set up reference points - struct ReferencePoint referencePoints[NUM_REFERENCE_POINTS]; - referencePoints[0].location = (struct Point){0, 0, 0}; - referencePoints[0].distance = 10; - referencePoints[1].location = (struct Point){10, 0, 0}; - referencePoints[1].distance = 15; - referencePoints[2].location = (struct Point){0, 10, 0}; - referencePoints[2].distance = 20; - - // Determine object location using multilateration - struct Point objectLocation = multilaterate(referencePoints); - - printf("Object location: (%.2f, %.2f, %.2f)\n", objectLocation.x, objectLocation.y, objectLocation.z); - - return 0; -} -``` -This implementation uses the GNU Scientific Library (GSL) to solve a least squares system of equations to determine the location of the object. It sets up the system of equations using the reference points and distances, and then uses GSL's linear algebra functions to solve for the location of the object. - -Note that you will need to include the GSL header files and link against the GSL library in order to use this code. You can find more information on installing and using GSL at the following link: https://www.gnu.org/software/gsl/ - - -## 4.3 penalties -The previous scores are either an indication for User about the mining rate of the miner or the reliability and availability of -miner for 3rd party users. -We need to create protection for the system from abuse. -in the following table we will discuss the causes of penalties - -| Cause | action | penalty | slash score | How to avoid | -|------------------------------------------------------------------|-----------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|------------------------------------------------|--------------------------------------------------------------------------------------------------| -| Faking miner location | All Miners owned will be Locked | Lose all Crypto connected to Miner and banned from Blockchain | 100 | do not fake miner location | -| miner is down more than 7 days and is still registered in mapper | notification will be sent to owner profile in application and through email | no benefits from mining or 3rd party using miner as gateway for the same amount of days the miner was down after 7 days | 5 | always try to keep miner on. if not possible notify the customer support or unregister the miner | - - - - - - -## 5. third party application -plug and play API -### 5.1 trustworthy localization -### 5.2 advantages of LPWAN against peer communications - -## . MXC Controller +#### 4.2.2 Localization through Multilateration +If each of the LPWAN devices has a GPS time stamp, it may be possible to use the GPS data to more accurately determine +the position of the device. One approach would be to use the GPS time stamps to synchronize the clocks of the LPWAN devices, +and then use a technique such as multilateration to calculate the position of the device based on the time difference of arrival +(TDOA) of signals from the device to the LPWAN devices. + +Multilateration is similar to trilateration, but it uses the TDOA of signals from the device to multiple +reference points (in this case, the LPWAN devices) to calculate the device's position. By measuring the TDOA of the signals, +it is possible to determine the distance between the device and each of the LPWAN devices more accurately than using techniques +such as time of flight or signal strength. + +Overall, using the GPS time stamps in conjunction with a technique such as multilateration can potentially provide more accurate +positioning than using trilateration alone, but it may also be more complex and power-intensive. +The best approach will depend on the specific requirements and constraints of the application. + + +## 5. Consensus Group +The consensus group in our blockchain network starts with small clusters of nodes located all over the globe. +These small consensus groups use a consensus algorithm to validate and confirm transactions on the network and +maintain the integrity of the blockchain ledger. + +As more nodes join the network and start running the consensus algorithm, +these small clusters begin to merge with one another, gradually growing in size and complexity. +Over time, these small clusters coalesce into a larger, more powerful consensus group that spans the entire network. + +### 5.1 why we need Consensus Groups +This process of merging and growing is crucial to the stability and security of the network, +as it ensures that all nodes are working together to maintain the integrity of the blockchain. +By combining their computational power and expertise, these nodes are able to achieve greater consensus on +the state of the network, and are more resistant to attacks or failures. + +As the consensus group grows and evolves, it may adopt new rules or procedures for validating transactions, +or may incorporate new features or technologies to improve its performance. +However, the core goal of the consensus group remains the same: +to ensure that all transactions on the blockchain are valid, consistent, and secure. + +### 5.2 Consensus Group Ground Rules +Each consensus process is unique and so is our process. in the following the consensus group rules will be listed. +The first small cluster groups will be the first consensus groups which merge together to form a bigger one. +#### 5.2.1 Decision-making Process +The consensus decision-making process will involve two clusters of LPWAN devices agreeing upon +the location of each other miners location and devices covered in their area. +The two clusters will exchange information and use a set of rules to determine the device's location. +If both clusters agree, the location will be considered final. +If the two clusters disagree, a third cluster will be used to test and determine the device's location. +If the third cluster agrees with one of the previous two clusters, the different cluster will be punished. +If the third cluster does not agree, a fourth cluster will be used to test the location. +If no cluster agrees on the location, the device will be flagged and punished. + +#### 5.2.2 Inclusiveness +The consensus group will take into account the amount of crypto staked, +GPS strength, orientation of the device, and the number of devices in the cluster. +These factors will be used to determine the device's location. + +#### 5.2.3 Accountability +The consensus group will use the blockchain to hold the records of LPWAN devices' +locations and devices utilizing the network. The blockchain will also track +which clusters were flagged and which devices were flagged. +Any attempt to fake location or attack the system will result in punishment. + +#### 5.2.4 Flexibility +The cluster group can be changed easily, and it is best if the clusters are not in the same "hexagon tile." +This will help to ensure that the consensus group can adapt to changes in the network. + +#### 5.2.5 Shared Control +All participants will agree to the ground rules for determining the device's location. +They will also commit to working together as a cluster and checking the location of other LPWAN devices. +Each cluster should have at least three LPWAN devices and at least one miner in 3 different hexagon tiles. + +#### 5.2.6 Commitment to implementation +All LPWAN devices and devices utilizing the network will be accounted for. +The consensus group will ensure that all participants follow the set of rules and procedures to reach a consensus on device location. +Miner health metrics will be used to ensure that the miners will match consensus group requirments. + +#### 5.2.7 Validation +Before the consensus group starts the decision-making process, each LPWAN device should validate +its own GPS location and strength. This will ensure that the data provided by each device is accurate. + +#### 5.2.8 Time Synchronization +All LPWAN devices in the consensus group should have their clocks synchronized. +This will help to ensure that the time data used to determine the device's location is accurate. + +#### 5.2.9 Quorum +The consensus group should establish a quorum for making decisions. +The quorum should be based on a percentage of the total number of LPWAN devices in the cluster. +This will help to ensure that the decision-making process is representative of the cluster's consensus. +The more miners in a cluster, also the better their health metrics the heavier their weight. + +#### 5.2.10 Data Aggregation +The consensus group should aggregate the data provided by all LPWAN devices in the cluster. +This will help to ensure that the decision-making process is based on all available data. + +#### 5.2.11 Decision Threshold +The consensus group should establish a decision threshold for determining the device's location. +The decision threshold should be based on a percentage of the total number of LPWAN devices in the cluster. +This will help to ensure that the decision-making process is based on a consensus of the majority. + +#### 5.2.12 Penalty Mechanism +The consensus group should establish a penalty mechanism for LPWAN devices or clusters +that do not follow the rules and procedures. +This will help to ensure that all participants are committed +to the implementation of the consensus group's decision-making process. + +### 6. MXC Controller There are lists of services that LPWAN can provide to the sensors/end devices. For example, an over-the-air firmware update should be multi-casted to the sensors and calculate the position, which requires no computation for the resource-limited sensors. Such a service requires resources of both a miner and the Supernode.