{"id":22485,"date":"2022-03-16T21:36:15","date_gmt":"2022-03-16T20:36:15","guid":{"rendered":"https:\/\/blog.mi.hdm-stuttgart.de\/?p=22485"},"modified":"2023-06-18T17:36:37","modified_gmt":"2023-06-18T15:36:37","slug":"optimizing-practical-byzantine-fault-tolerance-in-wireless-iot-blockchain-networks","status":"publish","type":"post","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/16\/optimizing-practical-byzantine-fault-tolerance-in-wireless-iot-blockchain-networks\/","title":{"rendered":"Optimizing Practical Byzantine Fault Tolerance in Wireless IoT Blockchain Networks"},"content":{"rendered":"\n<p>Don&#8217;t we all appreciate a little help in our everyday lives? <em>&#8220;Alexa, turn on the lights in the living room.&#8221;<\/em><br>Voice assistants, smart lights and other smart home devices are all part of the Internet of Things (IoT). Those and other possible applications of IoT devices increase continuously and with it the overall number of connected devices. According to IoT Analytics Research, there are already over 12.3 billion connected IoT devices around the world, whereas most of them are wireless.<\/p>\n\n\n\n<p>But how can we guarantee security, trust and liveliness in such networks?<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Global-IoT-market-forecast-in-billion-connected-iot-devices-min.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"22551\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/16\/optimizing-practical-byzantine-fault-tolerance-in-wireless-iot-blockchain-networks\/global-iot-market-forecast-in-billion-connected-iot-devices-min\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Global-IoT-market-forecast-in-billion-connected-iot-devices-min.png\" data-orig-size=\"4722,2476\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Global-IoT-market-forecast-in-billion-connected-iot-devices-min\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Global-IoT-market-forecast-in-billion-connected-iot-devices-min-1024x537.png\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Global-IoT-market-forecast-in-billion-connected-iot-devices-min-1024x537.png\" alt=\"\" class=\"wp-image-22551\" width=\"839\" height=\"440\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Global-IoT-market-forecast-in-billion-connected-iot-devices-min-1024x537.png 1024w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Global-IoT-market-forecast-in-billion-connected-iot-devices-min-300x157.png 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Global-IoT-market-forecast-in-billion-connected-iot-devices-min-768x403.png 768w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Global-IoT-market-forecast-in-billion-connected-iot-devices-min-1536x805.png 1536w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/Global-IoT-market-forecast-in-billion-connected-iot-devices-min-2048x1074.png 2048w\" sizes=\"auto, (max-width: 839px) 100vw, 839px\" \/><\/a><figcaption>Global IoT Market Forecast From IoT Analytics Research (<a href=\"https:\/\/iot-analytics.com\/product\/state-of-iot-summer-2021\/\">https:\/\/iot-analytics.com\/product\/state-of-iot-summer-2021\/<\/a> \/ <a href=\"https:\/\/iot-analytics.com\/number-connected-iot-devices\/\">https:\/\/iot-analytics.com\/number-connected-iot-devices\/<\/a>)<\/figcaption><\/figure>\n\n\n\n<p>Today, we will gain an insight into how byzantine fault tolerance can be achieved in wireless IoT networks. In particular, we will look at an analytical modeling framework by Onreti et al. for applying the Practical Byzantine Fault Tolerance (PBFT) algorithm to such networks. Furthermore, we will see which restrictions apply and how the viable area for these networks can be obtained. For more details, take a look at the original paper &#8220;On the Viable Area of Wireless Practical Byzantine Fault Tolerance (PBFT) Blockchain Networks&#8221; by Onreti et al. [2].<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">IoT and Blockchain<\/h3>\n\n\n\n<p>All devices (or nodes) in a fully autonomous IoT network communicate in a distributed way. However, this communication style is not an easy task as nodes need to agree on the validity of communicated data. The approach, for achieving the necessary level of security and trust, is to apply an appropriate consensus method. As the principle of agreeing on new data is the same as in blockchain, its consensus methods can also be applied to IoT networks. However, commonly used methods such as proof of work and proof of stake rely on computational power &#8211; a limited resource for most IoT devices. This is where wireless PBFT protocol comes in handy.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Practical Byzantine Fault Tolerance (PBFT)<\/h2>\n\n\n\n<p>Here, (wireless) PBFT refers to a blockchain consensus method with low computational complexity and power suited for asynchronous IoT environments.<\/p>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n<p>The protocol consists of the following three phases<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>pre-prepare<\/li><li>prepare<\/li><li>commit<\/li><\/ul>\n\n\n\n<p>during which nodes communicate via <strong>wireless<\/strong> channels. Phase one is triggered as soon as a client node&#8217;s IoT request is received. The node receiving said request is referred to as header node, whereas all other nodes in the network are called replica nodes. In other words, a PBFT network is composed of several replicas and one leader, whereby the leader is reselected when it turns faulty or breaks down.<br>The protocol guarantees liveliness and safety as long as no more than <em>(n-1)\/3<\/em> of <em>n <\/em>replica nodes are faulty: <em>f \u2264 (n-1)\/3<\/em>.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n<h3 class=\"wp-block-heading\">The Protocol<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_1.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"482\" data-attachment-id=\"22602\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/16\/optimizing-practical-byzantine-fault-tolerance-in-wireless-iot-blockchain-networks\/pbft_fig_1\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_1.jpg\" data-orig-size=\"1551,730\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"PBFT_fig_1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_1-1024x482.jpg\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_1-1024x482.jpg\" alt=\"\" class=\"wp-image-22602\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_1-1024x482.jpg 1024w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_1-300x141.jpg 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_1-768x361.jpg 768w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_1-1536x723.jpg 1536w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_1.jpg 1551w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Diagram: communication procedure for a client&#8217;s transaction or exchange of information [1],[2]<\/figcaption><\/figure>\n\n\n\n<p>The following steps describe the procedure from a request to a new block on the blockchain:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li><strong>request:<\/strong> A client device sends a request to the header node of the network.<\/li><li><strong>pre-prepare phase: <\/strong>The header node receives said request and broadcasts a <em>pre-prepare message<\/em> to the replica nodes.<\/li><li><strong>prepare phase: <\/strong>&nbsp;When a replica accepts a <em>pre-prepare messag<\/em>e, it enters the prepare stage. In this stage the replica broadcasts a<em> prepare message<\/em> to the network (including itself).<br>Before entering the next phase, a node needs to receive <em>2f<\/em> <em>prepare messages<\/em> from different (but not necessarily other) nodes. In addition, those messages need to match the previous <em>pre-prepare message<\/em>.<\/li><li><strong>commit phase:<\/strong> After receiving the necessary messages, a node will furthermore broadcast a <em>commit message<\/em> (including to itself). <br>Before leaving the commit phase, a node needs to receive <em>2f+1<\/em> matching <em>commit messages<\/em> from different nodes. Those <em>2f+1<\/em> messages usually contain a message from itself and the header. <\/li><li><strong>reply:<\/strong> As soon as a node meets the previously mentioned condition, it will send a reply to the client.<\/li><li><strong>consensus &amp;<\/strong> <strong>record:<\/strong> The client receives replies from the other nodes and proceeds as soon as the network reaches consensus in the form of <em>f+1<\/em> matching <em>reply messages<\/em>. Lastly, the client records the transaction on the blockchain.<\/li><\/ol>\n\n\n\n<p>For more details of the original algorithm from 1999, take a look at &#8220;Practical byzantine fault tolerance&#8221; by M. Castro and B. Liskov [1].<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Wireless PBFT: Assumptions &amp; Restrictions<\/h2>\n\n\n\n<p>Onreti et al. [2] make the following assumptions about the PBFT network:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Replica nodes are <strong>evenly distributed<\/strong> inside a circular area with radius <em>R<\/em>. Henceforth, <em>\u03bb<\/em> denotes the density of <em>n<\/em> replicas inside this network area.<\/li><li>The wireless network is <strong>noise limited<\/strong>: all replica nodes have equal receiver sensitivity, denoted by <em>\u03b2<sub>1<\/sub><\/em>.&nbsp;<\/li><\/ul>\n\n\n\n<p>Based on the those assumptions, a header or replica node\u2019s coverage radius <em>R<sub>i<\/sub><\/em> is defined by:<\/p>\n\n\n\n<p class=\"has-text-align-center\"><em><strong>R<sub>i <\/sub>= d<sub>0<\/sub> [P<sub>i<\/sub>K\/\u03b2<sub>1<\/sub>]<sup>1\/\u03b3<\/sup><\/strong><\/em> ,<\/p>\n\n\n\n<p>with: <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><em>d<sub>o<\/sub><\/em>: reference distance for antenna far field<\/li><li><em>P<sub>i<\/sub><\/em>: node\u2019s transmit power<\/li><li><em>\u03b2<sub>1<\/sub><\/em>: receiver sensitivity<\/li><li><em>K<\/em>: unit-less constant, dependent on antenna characteristics<\/li><li><em>\u03b3<\/em>: pathloss exponent.<\/li><\/ul>\n\n\n\n<p>This formula highlights the main restrictions of the network&#8217;s nodes. Besides that, most IoT devices are further restricted by limited bandwidth and battery power. For this reason, the nodes&#8217; workload should be kept as small as possible. <\/p>\n\n\n\n<p>Based on the PBFT algorithm, there are further restrictions:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>The header node\u2019s coverage area <em>A<sub>1<\/sub><\/em> needs to contain at least <em>3f+1<\/em> replicas: <br><em><strong>A<sub>1<\/sub>\u03bb \u2265 3f + 1<\/strong><\/em><\/li><li>For a non-faulty replica node, the coverage area <em>A<sub>2<\/sub><\/em> needs to overlap with the header node&#8217;s area <em>A<sub>1<\/sub><\/em>. This intersection must contain at least <em>2f-1<\/em> other replica nodes:<br><em><strong>A<sub>2<\/sub>\u03bb \u2265 2f \u2212 1<\/strong><\/em><\/li><li>Furthermore, a client&#8217;s coverage area <em>A<\/em><sub><em>3<\/em><\/sub> (while overlapping with <em>A<sub>1<\/sub><\/em>), needs to contain at least <em>f+1<\/em> replicas:<br><em><strong>A<sub>3<\/sub>\u03bb \u2265 f + 1<\/strong><\/em><\/li><\/ol>\n\n\n\n<p>The third constraint guarantees a successful reply to the client.<br>Constraints 1 and 2 guarantee the security and liveliness of the protocol and its three phases. Those constraints define the needed minimum of nodes for wireless PBFT. For a fixed number of faulty replicas <em>f<\/em>, additional nodes decrease the performance, as there are more messages (to be processed) as the protocol needs.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Viable Area<\/h2>\n\n\n\n<p>The viable area describes that (sub-)area of the network that fulfills all the constraints of wireless PBFT. This means, the number of nodes (and their placement in the area) need to be given such that:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>the header node can reach a minimum of <em>3f+1<\/em> replica nodes; where <em>f<\/em> denotes the number of faulty nodes<\/li><li>a minimum number of matching messages (sent by different nodes) in the prepare (<em>2f<\/em>) and commit phase (<em>2f+1<\/em>) is achievable. This leads to:<br>Every single replica needs to be reachable by a minimum of <em>2f-1<\/em> other replicas.<\/li><li>a client node (located in- or outside of the network) can receive a minimum of <em>f+1<\/em> matching replies<\/li><\/ol>\n\n\n\n<p>Furthermore, the concept of viable area is defined for a given view, which is determined by its specific header node. In other words, the view changes as soon as another node takes the turn in leading the network. A change of view happens at the latest when the current header fails or breaks down. Thereby the choice of header is well-defined by the view number <em>v<\/em> and the number of nodes <em>n<\/em> by<em> i =<\/em> <em>v (mod n)<\/em>, where <em>i<\/em> denotes the index of the node in the network.<\/p>\n\n\n\n<p>By determining the viable area, we can minimize the activation of nodes in the network. The smaller the nodes&#8217; broadcast radius, the less nodes are activated. Thus, by minimizing the nodes&#8217; coverage radius, we save energy and improve the performance.<br><br>All things considered, the viable area is dependent on:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>the number of replicas nodes<em> n <\/em>in the network<\/li><li>the number of faulty replicas nodes <em>f<\/em> in the network<\/li><li>the transmit power of header\/replica nodes<\/li><li>nodes&#8217; receiver sensitivity<\/li><li>pathloss components<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">(Mathematical) Approach for Determining the Viable Area<\/h3>\n\n\n\n<p>In order to find a minimum, the mathematical approach is to solve an objective function. <br>In this case, we are searching for the minimal coverage radius of the header and replica nodes. As the pathloss exponent <em>\u03b3<\/em> and receiver sensitivity <em>\u03b2<sub>1<\/sub><\/em> can be considered fixed, this is the same as minimizing the nodes&#8217; transmit powers <em>P<sub>i<\/sub><\/em>. Thus, the objective function is: <\/p>\n\n\n\n<p class=\"has-text-align-center\"><em><strong>minimize P<sub>1<\/sub> + P<sub>2<\/sub><\/strong><\/em><\/p>\n\n\n\n<p>whereby <em>P<sub>1<\/sub><\/em> is the header&#8217;s transmit power and <em>P<sub>2<\/sub><\/em> is the transmit power of a typical replica node, that is at the very edge of the area. <br>Based on the header&#8217;s placement, and therefore the shape of the areas <em>A<sub>1<\/sub><\/em> and <em>A<sub>2<\/sub><\/em>, the terms describing the protocol&#8217;s first two constraints differ. There are two different cases as depicted below:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_2_smallSized-1.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"411\" height=\"380\" data-attachment-id=\"22941\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/16\/optimizing-practical-byzantine-fault-tolerance-in-wireless-iot-blockchain-networks\/pbft_fig_2_smallsized-1\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_2_smallSized-1.jpg\" data-orig-size=\"411,380\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"PBFT_fig_2_smallSized-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_2_smallSized-1.jpg\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_2_smallSized-1.jpg\" alt=\"\" class=\"wp-image-22941\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_2_smallSized-1.jpg 411w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_2_smallSized-1-300x277.jpg 300w\" sizes=\"auto, (max-width: 411px) 100vw, 411px\" \/><\/a><figcaption>Case 1: Viable area of PBFT network with the header located at the origin. [2] <\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_4_smallSized.jpg\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"22942\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/16\/optimizing-practical-byzantine-fault-tolerance-in-wireless-iot-blockchain-networks\/pbft_fig_4_smallsized-2\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_4_smallSized.jpg\" data-orig-size=\"462,431\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"PBFT_fig_4_smallSized\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_4_smallSized.jpg\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_4_smallSized.jpg\" alt=\"\" class=\"wp-image-22942\" width=\"445\" height=\"415\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_4_smallSized.jpg 462w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_4_smallSized-300x280.jpg 300w\" sizes=\"auto, (max-width: 445px) 100vw, 445px\" \/><\/a><figcaption>Case 2: Viable area of PBFT network with randomly located header node. [2]<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p> <img loading=\"lazy\" decoding=\"async\" width=\"19\" height=\"20\" data-attachment-id=\"22947\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/16\/optimizing-practical-byzantine-fault-tolerance-in-wireless-iot-blockchain-networks\/red_node\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/red_node.jpg\" data-orig-size=\"19,20\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"red_node\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/red_node.jpg\" class=\"wp-image-22947\" style=\"width: 19px\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/red_node.jpg\" alt=\"\">,<img loading=\"lazy\" decoding=\"async\" width=\"20\" height=\"20\" data-attachment-id=\"22948\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/16\/optimizing-practical-byzantine-fault-tolerance-in-wireless-iot-blockchain-networks\/blue_node\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/blue_node.jpg\" data-orig-size=\"20,20\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"blue_node\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/blue_node.jpg\" class=\"wp-image-22948\" style=\"width: 20px\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/blue_node.jpg\" alt=\"\">,<img loading=\"lazy\" decoding=\"async\" width=\"20\" height=\"20\" data-attachment-id=\"22946\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/16\/optimizing-practical-byzantine-fault-tolerance-in-wireless-iot-blockchain-networks\/green_node\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/green_node.jpg\" data-orig-size=\"20,20\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"green_node\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/green_node.jpg\" class=\"wp-image-22946\" style=\"width: 20px\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/green_node.jpg\" alt=\"\">: all nodes of the network (area)<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><img loading=\"lazy\" decoding=\"async\" width=\"20\" height=\"20\" data-attachment-id=\"22948\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/16\/optimizing-practical-byzantine-fault-tolerance-in-wireless-iot-blockchain-networks\/blue_node\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/blue_node.jpg\" data-orig-size=\"20,20\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"blue_node\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/blue_node.jpg\" class=\"wp-image-22948\" style=\"width: 20px\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/blue_node.jpg\" alt=\"\">,<img loading=\"lazy\" decoding=\"async\" width=\"20\" height=\"20\" data-attachment-id=\"22946\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/16\/optimizing-practical-byzantine-fault-tolerance-in-wireless-iot-blockchain-networks\/green_node\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/green_node.jpg\" data-orig-size=\"20,20\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"green_node\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/green_node.jpg\" class=\"wp-image-22946\" style=\"width: 20px\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/green_node.jpg\" alt=\"\">: nodes inside header node&#8217;s coverage area<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><img loading=\"lazy\" decoding=\"async\" width=\"20\" height=\"20\" data-attachment-id=\"22946\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/16\/optimizing-practical-byzantine-fault-tolerance-in-wireless-iot-blockchain-networks\/green_node\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/green_node.jpg\" data-orig-size=\"20,20\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"green_node\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/green_node.jpg\" class=\"wp-image-22946\" style=\"width: 20px\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/green_node.jpg\" alt=\"\">: nodes inside replica node&#8217;s coverage area<\/p>\n<\/div>\n<\/div>\n\n\n\n<p>In case 1, the header is located at (or near) the origin and has a <span style=\"text-decoration: underline\">circular<\/span> coverage area <em>A<sub>1<\/sub><\/em> dependent on its coverage radius. In the second case, <em>A<sub>1<\/sub><\/em> is no longer circular but rather an intersection of two circular areas; i.e. <em>A<sub>1<\/sub><\/em> is additionally dependent on the header&#8217;s distance to the origin and the radius <em>R<\/em> of the network. In this case, the reference &#8220;replica on the edge&#8221; for the second constraint is located at an intersection point (<em>h<sub>1<\/sub><\/em> or <em>h<sub>2<\/sub><\/em>), which represents the minimal possible <em>A<sub>2<\/sub><\/em>.<br>In both cases, we adjust the coverage radiuses <em>R<sub>i<\/sub><\/em> (respectively the transmit power <em>P<sub>i<\/sub><\/em>) such that the areas<em> <\/em>fulfill the first two constraints of the protocol.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Solving for <em>P<sub>i<\/sub><\/em><\/h4>\n\n\n\n<p>So far, we have an objective function with two constraints. In order to find reasonable results, we  furthermore restrict the searched parameters:<\/p>\n\n\n\n<p>In this case this means that the transmit powers <em>P<sub>i<\/sub><\/em> need to be limited. We set the header node maximum transmit power <em>P<sub>1<\/sub><\/em><sup>max<\/sup>, such that the header can still reach every node in the network, if needed. Furthermore, we set the maximum of <em>P<sub>2<\/sub><\/em> such that <em>P<sub>2<\/sub><sup>max<\/sup> = \u03b1P<sub>1<\/sub><sup>max<\/sup><\/em> <em>, <\/em>with <em>\u03b1 &gt; 1<\/em>, i.e. <em>P<sub>2<\/sub><sup>max<\/sup> <\/em>is greater than <em>P<sub>1<\/sub><sup>max<\/sup><\/em>.<br>As a consequence, we restrict <em>P<sub>1<\/sub><\/em> and <em>P<sub>2<\/sub><\/em> by:<br><em>0 \u2264 P<sub>1<\/sub> \u2264 P<sub>1<\/sub><sup>max<\/sup><br>0 \u2264 P<sub>2 <\/sub>\u2264 P<sub>2<\/sub><sup>max<\/sup><\/em><\/p>\n\n\n\n<p>With this additional constraint, we can solve the objective function using a classic method and denote its result as <em>P<sub>1<\/sub>*<\/em> and<em> P<sub>2<\/sub>*<\/em>.<\/p>\n\n\n\n<p>Up to this point, the third constraint for wireless PBFT has been ignored. This constraint focuses on the last step in the protocol: the reply to the client. Thus, we need a coverage area <em>A<sub>3<\/sub><\/em> (dependent on the given <em>P<sub>1<\/sub>*<\/em>), such that at least <em>f+1<\/em> replicas can reach the client. Based on the client&#8217;s receiver sensitivity <em>\u03b2<sub>2<\/sub><\/em> and its distance to the header node, we can use a linear search method for determining the transmit power <em>P<sub>c<\/sub><\/em> of a replica needed for replying to the client.<br><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_3_smallSized.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"454\" height=\"445\" data-attachment-id=\"23063\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/16\/optimizing-practical-byzantine-fault-tolerance-in-wireless-iot-blockchain-networks\/pbft_fig_3_smallsized\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_3_smallSized.jpg\" data-orig-size=\"454,445\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"PBFT_fig_3_smallSized\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_3_smallSized.jpg\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_3_smallSized.jpg\" alt=\"\" class=\"wp-image-23063\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_3_smallSized.jpg 454w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_3_smallSized-300x294.jpg 300w\" sizes=\"auto, (max-width: 454px) 100vw, 454px\" \/><\/a><figcaption>Illustration of the minimum broadcast transmit power required<br>by the replicas when responding to the client (IoT device). [2]<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Numerical Results<\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_5_smallSized.jpg\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"23080\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/16\/optimizing-practical-byzantine-fault-tolerance-in-wireless-iot-blockchain-networks\/pbft_fig_5_smallsized\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_5_smallSized.jpg\" data-orig-size=\"693,541\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"PBFT_fig_5_smallSized\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_5_smallSized.jpg\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_5_smallSized.jpg\" alt=\"\" class=\"wp-image-23080\" width=\"397\" height=\"310\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_5_smallSized.jpg 693w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_5_smallSized-300x234.jpg 300w\" sizes=\"auto, (max-width: 397px) 100vw, 397px\" \/><\/a><figcaption>Effect of the number of faulty nodes on the header and replica nodes transmit power, <br><em>\u03bb = 1\/(\u03c01000) nodes\/m<sup>2<\/sup><\/em>. [2]<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_6_smallSized.jpg\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"23081\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/16\/optimizing-practical-byzantine-fault-tolerance-in-wireless-iot-blockchain-networks\/pbft_fig_6_smallsized\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_6_smallSized.jpg\" data-orig-size=\"676,515\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"PBFT_fig_6_smallSized\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_6_smallSized.jpg\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_6_smallSized.jpg\" alt=\"\" class=\"wp-image-23081\" width=\"404\" height=\"308\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_6_smallSized.jpg 676w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_6_smallSized-300x229.jpg 300w\" sizes=\"auto, (max-width: 404px) 100vw, 404px\" \/><\/a><figcaption>Effect of the number of faulty nodes on the header and replica nodes transmit power, <br><em>\u03bb = N\/(\u03c01000<sup>2<\/sup>) nodes\/m<sup>2<\/sup><\/em>, <em>N = 811, 1000<\/em>. [2]<\/figcaption><\/figure>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<p>The previous diagrams show the transmit powers of header and replica nodes in relation to the number of faulty nodes. The values have been determined for a view with the header at the origin. Further system parameters for these results can be found in [2]. <\/p>\n\n\n\n<p>Both diagrams show that the transmit power of header and replica nodes increases with the number of faulty nodes. That is because their coverage areas need to include more nodes.<br>Furthermore, the right diagram shows two more important points. First, a higher node density reduces the needed transmit power. Second, we can see the restrictions of the transmit power: it is not only restricted by (<em>n-1)\/3<\/em>, but also by the maximal transmit power <em>P<sub>1<\/sub><sup>max<\/sup><\/em> resp. <em>P<sub>2<\/sub><sup>max<\/sup><\/em>.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_7.jpg\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"23090\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/16\/optimizing-practical-byzantine-fault-tolerance-in-wireless-iot-blockchain-networks\/pbft_fig_7\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_7.jpg\" data-orig-size=\"1115,761\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"PBFT_fig_7\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_7-1024x699.jpg\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_7-1024x699.jpg\" alt=\"\" class=\"wp-image-23090\" width=\"475\" height=\"324\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_7-1024x699.jpg 1024w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_7-300x205.jpg 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_7-768x524.jpg 768w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/PBFT_fig_7.jpg 1115w\" sizes=\"auto, (max-width: 475px) 100vw, 475px\" \/><\/a><figcaption>Effect of the number of faulty nodes on the replica transmit<br>power during the reply phase, <em>\u03bb = 1\/(\u03c01000) nodes\/m<sup>2<\/sup><\/em>. [2]<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<p>Last but not least, the diagram to the left shows the increase of transmit powers with increasing number of faulty nodes<em> f<\/em>. As expected, the needed replica&#8217;s transmit power <em>P<sub>c<\/sub><\/em> increases with the distance <em>d<sub>1<\/sub><\/em> of the client to the header; but in particular, we can also see that it really ramps up with an increase in faulty nodes <em>f<\/em>.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Critique: Advantages and Drawbacks of Wireless PBFT<\/h2>\n\n\n\n<p class=\"has-text-align-left\">Applying PBFT to IoT blockchain networks has clearly benefits over other methods, as it needs less resources. But how applicable is this approach to an existing network? It seems rather questionable, whether an existing network can fulfill the required assumptions. When the nodes are not evenly distributed, this approach for determining the viable area can not be applied. Furthermore, the needed noise limitation might not be given. However, when the assumptions are met, the constraints for <em>A<sub>1<\/sub><\/em> and <em>A<sub>2<\/sub><\/em> of the viable area can also be used to check whether a transaction is indeed successful [2]. <\/p>\n\n\n\n<p class=\"has-text-align-left\">The last point seems rather important. If anything in the network changes, it probably has an impact on the viable area and thus on the needed transmit powers. The PBFT algorithm has some mechanism in place to change the view, if needed &#8211; but Onreti et al. do not address what exactly happens when nodes crash or have exhausted their battery. <\/p>\n\n\n\n<p>Besides verifying successful transactions, constraints 1 and 2 of the viable area can be used in the design for a new network &#8211; in particular for determining the radius <em>R<\/em>. [2] We might say we have a trade-off between energy savings (per node) and the overall number of nodes for a network. When we add additional nodes &#8211; to an otherwise similar network &#8211; we increase the node density. If the number of faulty nodes stays the same, this leads to energy savings. However, there is no guarantee that the rate of faulty nodes does not increase with the number of overall devices; and even though a higher node density decreases the needed transmit power, additional nodes bring other costs with them (e.g. maintaining the network).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Open Questions<\/h3>\n\n\n\n<p class=\"has-text-align-left\">Some questions persist: Who keeps track of the number of nodes <em>n<\/em>? Can the number of nodes change? When nodes turn off due to an exhausted battery, do we just consider them faulty or remove them (i.e. <em>n<\/em> reduces and node&#8217;s indices change)? Removing nodes from the network, would at least mess with the assumed node distribution. For that reason, it seems likely that we just consider exhausted nodes faulty. That brings us to the next question: Who keeps track of the number of faulty nodes? How big is the resource consumption for determining the number of faulty nodes? Who calculates the minimal transmit powers and how often are they recalculated? And what happens if the noise increases?<\/p>\n\n\n\n<p class=\"has-text-align-left\">I would like to see a direct comparison of the power consumption of a test PBFT network, with the same network using another consensus method. Furthermore, numerical results for the case of a header at the edge of the network (worst case of case 2) would be interesting; as well as some sort of ratio of possible views in a network in relation to the header placement (i.e. case 1: case 2).<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n<h3 class=\"wp-block-heading\">Last words<\/h3>\n\n\n\n<p>Actually, researchers have done a fair amount of work surrounding pBFT\/PBFT in the past 2 years, further optimizing the original consensus method. Some of the work, namely SHBFT [3] and G-PBFT [4], (even though not specifically focusing on wireless) also address blockchain IoT networks explicitly. Even though PBFT has already been elaborately examined in 1999, the current research further emphasizes that byzantine fault tolerance is still not that easy to achieve.<\/p>\n\n\n\n<p>On a final note I would like to say: Consensus methods often have such easy rules &#8211; in theory &#8211; as long as you don&#8217;t have to implement them.<\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator\" \/>\n\n\n\n<div class=\"wp-block-group is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Sources<\/h2>\n\n\n\n<p><strong>[1]<\/strong> M. Castro and B. Liskov, \u201cPractical byzantine fault tolerance\u201d, Third Symposium on Operating Systems Design and Implementation, New Orleans, USA, Feb. 1999<br><strong>[2]<\/strong> <a href=\"https:\/\/ieeexplore.ieee.org\/abstract\/document\/9013778\">https:\/\/ieeexplore.ieee.org\/abstract\/document\/9013778<\/a><br>O. Onireti, L. Zhang and M. A. Imran, &#8220;On the Viable Area of Wireless Practical Byzantine Fault Tolerance (PBFT) Blockchain Networks,&#8221;\u00a0<em>2019 IEEE Global Communications Conference (GLOBECOM)<\/em>, pp. 1-6, doi: 10.1109\/GLOBECOM38437.2019.9013778, 2019<br><strong>[3]<\/strong> <a href=\"https:\/\/doi.org\/10.1007\/s12083-021-01103-8\">https:\/\/doi.org\/10.1007\/s12083-021-01103-8<\/a><br>Li, Y., Qiao, L. &amp; Lv, Z. &#8220;An Optimized Byzantine Fault Tolerance Algorithm for Consortium Blockchain&#8221;,\u00a0<em>Peer-to-Peer Netw. Appl.<\/em>\u00a014,\u00a02826\u20132839, 2021 https:\/\/doi.org\/10.1007\/s12083-021-01103-8<br><strong>[4]<\/strong> Lao L, Dai X, Xiao B, Guo S,&#8221; G-PBFT: a location-based and scalable consensus protocol for IOT-Blockchain applications&#8221;, 2020 IEEE International parallel and distributed processing symposium (IPDPS). IEEE, pp 664\u2013673, 2020<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Don&#8217;t we all appreciate a little help in our everyday lives? &#8220;Alexa, turn on the lights in the living room.&#8221;Voice assistants, smart lights and other smart home devices are all part of the Internet of Things (IoT). Those and other possible applications of IoT devices increase continuously and with it the overall number of connected [&hellip;]<\/p>\n","protected":false},"author":1087,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[654,650,223],"tags":[],"ppma_author":[872],"class_list":["post-22485","post","type-post","status-publish","format-standard","hentry","category-internet-of-things","category-scalable-systems","category-ultra-large-scale-systems"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":3978,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2018\/08\/16\/security-in-smart-cities\/","url_meta":{"origin":22485,"position":0},"title":"Security in Smart Cities","author":"Johannes Kaeppler","date":"16. August 2018","format":false,"excerpt":"Today cities are growing bigger and faster than ever before. This results in various negative aspects for the citizens such as increased traffic, pollution, crime and cost of living, just to name a few. Governments and city administrations and authorities are in need to find solutions in order to alleviate\u2026","rel":"","context":"In &quot;Secure Systems&quot;","block_context":{"text":"Secure Systems","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/system-designs\/secure-systems\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10555,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2020\/08\/19\/iot-security-the-current-situation-best-practices-and-how-these-should-be-applied\/","url_meta":{"origin":22485,"position":1},"title":"IoT security \u2013 The current situation, \u201cbest practices\u201d and how these should be applied","author":"lh133","date":"19. August 2020","format":false,"excerpt":"Smart thermostats, lamps, sockets, and many other devices are no longer part of any futuristic movies. These items can be found in most households, at least in parts, whether in Europe, America, or Asia. A trend that affects the entire globe and is currently gaining ground, especially in industrialized countries.\u2026","rel":"","context":"In &quot;Internet of Things&quot;","block_context":{"text":"Internet of Things","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/scalable-systems\/internet-of-things\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2020\/08\/PaperClasses.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2020\/08\/PaperClasses.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2020\/08\/PaperClasses.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2020\/08\/PaperClasses.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":20957,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2021\/09\/09\/why-its-so-easy-to-hack-your-smart-home\/","url_meta":{"origin":22485,"position":2},"title":"Why It\u2019s So Easy to Hack Your Smart Home","author":"Martin Bock","date":"9. September 2021","format":false,"excerpt":"Every day, new smart home accessories go online for the first time to join the Internet of Things. Many of them enjoy the unwarranted trust of their owners.","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2021\/09\/patrick-campanale-Apoe84m_CHQ-unsplash-scaled.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2021\/09\/patrick-campanale-Apoe84m_CHQ-unsplash-scaled.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2021\/09\/patrick-campanale-Apoe84m_CHQ-unsplash-scaled.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2021\/09\/patrick-campanale-Apoe84m_CHQ-unsplash-scaled.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2021\/09\/patrick-campanale-Apoe84m_CHQ-unsplash-scaled.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2021\/09\/patrick-campanale-Apoe84m_CHQ-unsplash-scaled.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":24051,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2023\/02\/27\/fog-computing-solving-the-limitations-of-cloud-and-edge-computing\/","url_meta":{"origin":22485,"position":3},"title":"Fog Computing: Solving the limitations of Cloud and Edge Computing","author":"Andreas Nicklaus","date":"27. February 2023","format":false,"excerpt":"Fog computing offers a compromise between cloud and edge computing for real-time, scalable data analysis. Ideal for regional applications and IoT. However, authentication and privacy issues must be addressed.","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/edge-computing-diagram-1024x512.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/edge-computing-diagram-1024x512.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/edge-computing-diagram-1024x512.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/edge-computing-diagram-1024x512.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":3283,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2017\/10\/25\/vulnerable-vehicles\/","url_meta":{"origin":22485,"position":4},"title":"Vulnerable Vehicles &#8211; Connected cars and their security issues","author":"Christian Trendli","date":"25. October 2017","format":false,"excerpt":"In times of the continuing Internet-of-things- and connectivity-hype, a connected variant of \u201cthe German\u2019s favourite toy\u201d cannot be absent. Modern cars, SUVs and lightweight trucks come with all kinds of connected features, from smartphone interface integration up to social media in the navigation system. But what about the security of\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/10\/titkle.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/10\/titkle.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/10\/titkle.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/10\/titkle.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":11460,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2020\/09\/29\/get-car-location-using-raspberrypi-and-google-cloud-iot-core\/","url_meta":{"origin":22485,"position":5},"title":"Get car location using Raspberry Pi and Google Cloud IoT Core","author":"Simon L\u00f6bert","date":"29. September 2020","format":false,"excerpt":"Project idea Have you ever been in the situation, that you parked your car somewhere in the city and some hours later, you couldn't remember where you parked it? You may wish to have an application on your smartphone, which is able to locate your car. From this consideration, the\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2020\/09\/grafik.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"jetpack_sharing_enabled":true,"authors":[{"term_id":872,"user_id":1087,"is_guest":0,"slug":"jp111","display_name":"Judith Pfannenschmidt","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/6beff1d0b1ac8c0cdf0413ee9ed8e55a40863567a9d034b1929da9624ad742e2?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/22485","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/users\/1087"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/comments?post=22485"}],"version-history":[{"count":136,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/22485\/revisions"}],"predecessor-version":[{"id":23112,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/22485\/revisions\/23112"}],"wp:attachment":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/media?parent=22485"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/categories?post=22485"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/tags?post=22485"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/ppma_author?post=22485"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}