1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

XTRABYTES.TODAY The Obscure Forest Path to PoSign

Discussion in 'Blog Posts' started by XTRABYTES, Jan 7, 2018.


    XTRABYTES Well-Known Member

    Likes Received:
    Trophy Points:
    We know that XtraBytes is running on a PoSign (Proof-of-Signature) consensus method, while processing a new type of crypto-algorithm, called Zolt. But how did we get here, and why? And what does this even mean?​

    HOW WE GOT HERE: what the heck IS a blockchain?

    Before we can even begin talking about consensus methods and fancy algorithms, we need to understand what we’re trying to do. Let’s try to make this easy by breaking down the blockchain into its 2 components; the block and chain (which sounds much better than a ball and chain).​

    Imagine that a single building block sitting on a table somewhere. It’s the only block in existence, and it’s eagerly waiting to be part of something bigger. This “something bigger” is the chain part. It’s going to start small, but it’s going to get much bigger VERY fast.​

    That building block – let’s drill a hole through it and stick a string through it. This string is going to let us make the chain – and hold all the blocks together. Much like making a bead bracelet/necklace, we’re going to keep adding more of these blocks to the string.​

    So we have a block on a string. We’re ready to start making our block chain. But we need more blocks. We don’t have any more blocks. So… what do we do?​

    Bitcoin started with a Proof-of-Work (or PoW) consensus method. This proof of work method basically means that the Bitcoin people took a virtual digital tree (out of their virtual private digital forest – which, of course, everyone has already), put it online, and said, “We need a BLOCK with a hole that will fit on our string! Help us, online community! You’re our only hope!”​

    And eventually, people began to respond. “Hey! I can cut down that digital tree and turn it into virtual blocks with my graphics card (hint: it’s how fast the cooling fans spin. They’ll slice right through a virtual tree)!” So they became (geeky) digital lumberjacks, working away at clearing the virtual forest. And they stopped playing video games, so their computers would make them money. More or less.​

    Anyway – in proof of work, the first person to cut the tree into the correctly sized block – with the right sized hole – with rings that matches perfectly to the previous block’s rings – gets to slide their shiny new block onto the string. This then becomes a permanent part of the block chain. This string is unbreakable – once placed on the string, that block can NEVER come off. Ok, it CAN be taken off, but we’ll get into that later. Pretend for now that it can’t be.​

    We’ve successfully set out on our quest to make a blockchain. So far, so good. We have digital lumberjacks all over the world hacking away at the virtual forest we started with, and we have a (near) endless supply of blocks coming on to our string. Soon, it’ll be long enough to put on and wear to a rave. If we really want to do that with our blockchain kandy…​

    What we need to figure out is a good way to decide who gets to put their block on our string. This is where we start to delve into alternate consensus methods, because a bunch of nerdy lumberjacks isn’t the best way to make block beads.​

    Trusting the Lumberjacks: The tree rings of consensus

    At first, the blocks were smooth and easy to match up (they had hardly any rings/transactions in them). As we’ve progressed down the chain, more and more people are hacking away at this poor virtual forest, and competition has caused gouges and marks in the blocks (too many miners in the forest – they’re all pushing and shoving, trying to get their block on the string). Since we don’t want new blocks that don’t line up with the previous block, it’s gotten MUCH harder to make a block from a tree. The last tree ring (cryptographic key) in the old block must match the first ring of the new block. If it doesn’t, it will get rejected (kicked off the string).​


    We’ve begun our great digital deforestation. Besides getting harder to make the correct block shape, it’s also getting harder to find trees to cut down. Eventually, we’ll run out of trees in the virtual forest, and we’ll have to plant new ones… But that’s a problem we won’t run in to for some time. So we’ll ignore it for now, just like we ignore deforestation in the real world.​

    On top of cutting down of the tree and whittling it down to a block, some jerk put a bunch of cryptographic junk inside the trees. Imagine these cryptographic puzzle pieces as hard objects that break your saw blades and ruin your expensive luberjacking (mining) equipment by making it overheat and die.​

    Wow. This analogy is turning out to be pretty apt [​IMG][​IMG]

    But back to the deforestation; proof of work is environmentally expensive. Each bitcoin transaction currently uses more electricity than 10 average housholds. This energy cost is due to the high energy requirements of the lumberjacking equipment.​

    So what keeps these digital lumberjacks chopping away at the virtual (and real) environment? The promise of a payout if they find the perfect block/bead. If you make the bead we accept, we’ll let you carve your initials into that block (take credit for it), and give you a few virtual coins. These coins are pre-allocated; they’re on the string. When you put your block on the string, it will displace so many of the coins – and whoever initials the block gets the coins it displaces. We’ll also give you any “tips” – transaction fees – that people trading the virtual coins added on to their transactions that made it into your block. These mining payouts are the only real incentive you have to increase your utility bills and abuse your computer hardware. And unless you’re 100% solar/wind powered, participate in the active destruction of our physical world as well.​

    There is a LOT of wasted wood (due to imperfections – bad “beads” or “guesses” at what the bead should look like). Since the first person to make each perfect bead gets the reward, the more “bad” beads you can make faster, the more likely one of them will fit. How quickly you can produce “beads” is your hashrate. These are often in the thousands per second. This means that there are LOT of wasted beads and wood lying about. It’s getting messy in here. Luckily, we’re not creating round beads, or there would be a real risk of falling. The point is that this process is incredibly wasteful, and if it were being done to a real forest, the hippies would have shut down our blockchain operations long ago.​

    Long term, we’ll face another problem; we only had enough coins to put on the string to get one bead from each tree. Bitcoin will eventually return an empty string (haha… sorry). Once we go through all the trees, we won’t have any more coins to give out. Then, finding people to continue making blocks for us is going to get more difficult. They’ll still get the transaction fees, but that’s it. This is a problem for much, much later though.​

    If we want to keep this blockchain thing going, we should consider something else. What’s been working for the banks for ages? A promise of an interest rate? Ok. Great. Let’s look at Proof of Stake (PoS) as an alternative.​

    Deforestation sucks: Block buying old-school

    Proof of Stake has only been implemented by a few coins. Ethereum wants to make the move, but hasn’t yet, because PoS hasn’t been fully secured yet.​

    Basically, instead of requiring the “hard work” of finding the block inside the tree, we have a storehouse of ready-made blocks that we just need painted. To get a handful of blocks, you must stake some coins. This is the same thing as putting them into a CD (Certificate of Deposit) at a bank. You put them in expecting to get some interest (i.e. transaction fees for the blocks that you paint) before getting your money back. Nothing like moving backwards to something like a CD in order to move forwards…​

    The hard work of getting the blocks the correct size and shape isn’t needed here. These are virtual blocks anyway – there’s no reason we can’t just change an object(tree) into an object(block). Making them is easy. Proof of Work makes it unnecessarily difficult on purpose, not because it’s necessary. The difficulty in PoW is what makes it trustworthy; to create acceptable blocks, you need to solve the cryptographic puzzle and stamp your signature on it. It costs too much to make a block with false transactions – and even if you do, it’s REALLY hard to make more fake blocks. Since each successive block validates the previous block, if you manage to make a fake block, get it accepted onto the chain, and fail to produce more blocks faster than the rest of the lumberjacks, the chain will get rolled back, and your blocks will be removed. See? I told it it could be done. This is part of the reason why transaction times take so long for PoW – a block isn’t immediately trusted. It must be followed by a few more blocks that match. If that doesn’t happen, the last few blocks will be ignored and the false transactions will never be confirmed/completed.​

    In Proof of Stake, you’re literally buying the right to put your block on the chain. The problem is, anyone that wants to put a block on the chain (and get the transaction fees added to that block), can bid to do this. The more you bid, the more likely your block will be chosen.​

    Here, consensus isn’t really guaranteed. Someone can make a “bad block” with false transactions. If they have enough coins staked, their false transactions will be recorded as the truth. This problem really hasn’t been resolved, and is part of the reason for the delay in Ethereum moving to Proof of Stake. Ultimately, if someone controls 51% of all Ethereum, and they want to introduce false transactions into the blockchain, nothing would be able to stop them. Granted, it would likely devalue Ethereum, and if they had 51% of all the Ethereum available they wouldn’t want to sabotage the blockchain. But we’ve gone from “trustless” PoW – where all work is verified by everyone else at great cost – to “trusted” PoS. And when it comes to money, there really can’t be trust.​

    Since the entire concept of a BlockChain is that we have an untrusted distributed network, PoS eventually breaks down. There are people working on these problems (changing the rules for how blocks get added in PoS, and calling them by different names – such as “minting” or “forging”), but for now, PoS remains a vulnerable method of consensus. While it’s less work than doing that actual tree whittling, we’re still playing with wooden blocks and having everyone with staked coins painting every block, just in case their block is picked – essentially by lottery. Obviously, this isn’t the solution to PoW we were looking for. So what comes next?​

    PoSign: Moving into the digital age

    We’ve noted major issues with both PoW and PoS. So what are the alternatives? For XtraBytes, there’s a new consensus type being called “Proof of Signature” or PoSign. Rather than allowing anyone to stake coins, PoSign requires registration of a STaTiC (Services Transactions and Trusted in Control) Node. This means that someone has a lot of vested interest in XtraBytes retaining or increasing in value. The buy-in to stake is pretty high.​

    Now, we need to get a little more technical. Instead of playing with the blocks like we have before, we need to upgrade our infrastructure. We’re not carving initials into wood with stone tools any more. We’ve moved beyond that. We’re getting away from the wooden analogy entirely, skipping the age of paper, and are jumping straight to digital. There are really 3 aspects that make up PoSign; Pulse (“Ping Unified Ledger Synchronization Equalizer” – an instant messenger service that notifies the Nodes of an important email/block that needs signed), the STaTiC Nodes themselves (with the node having an email account, and the ability to read it and respond), and the VITALS network (a VPN which allows the Nodes to talk to each other securely and instantly).​

    Under PoSign, every registered static node gets added to a mailing list. Every node gets the same email at the same time, and they see every transaction listed in a nicely formatted excel sheet attachment. They also get a PULSE signal on their smart watch, letting them know they need to check their email. Once they’ve compared the excel sheet to their existing ledger, they’ll either accept or deny the transactions. If they accept the transactions, they’ll create a checksum or hash of the excel file. This checksum counts as the node’s “signature” for that block. Being orderly and timely, the node will then send this checksum signature back to the node network over a proprietary secure network – VITALS – to a virtual folder with the name of the block. Here, the signature files from every node will be collected and compared. If they match the other signature files (i.e. a checksum or hash match has occurred), then the block will be accepted.​

    On the other hand, if a block comes through that can’t be verified (it has a double entry, or causes a wallet to go into the negative), the block will be rejected by each node. Any node attempting to sign this block, and pass it off as legitimate will be “grey” listed. It will be told to “try to sign/reject” the block again. If the node keeps sending an invalid signature, the node will eventually be blacklisted. The same holds true for legitimate blocks that are signed incorrectly (the checksum doesn’t match what the other nodes agree to be correct). In effect, each node will retain and validate its own copy of the blockchain ledger, much like a normal wallet for any other cryptocurrency. The difference is that it will constantly self-validate its ledger with the rest of the network.​

    PoSign does a few things. It eliminates the random signer issue that both PoW and PoS have. Instead of having a random entity signing the block, there are a multitude of entities all signing every block that is added to the chain. This is as decentralized as it gets.​

    It saves trees. Not only does it require far less energy than PoW (the estimated minimum hardware requirement for a STaTIC node is a raspberry pi, with an average power consumption of $5USD/year… meaning that with every STaTIC node running on one power meter would run up a smaller bill than a single PoW mining rig uses in a month), it also doesn’t require cutting down an entire virtual forest to make blocks. Since all the transactions and ledgers are digital, no trees are going into paper bins either.​

    It also prevents the 51% attack problem. Attaining a majority of nodes is nearly impossible, but what happens if the nodes DO get compromised? This is where the trinity of Pulse, STaTiC Nodes, and the Vitals network really come into play. Every time a transaction takes place on the blockchain, a Pulse transmission with that time stamp, amount, sending, and receiving wallet information is sent to EVERY node in the network. Since each node believes itself first, each legitimate node will sign, and correctly report that signature to the Vitals network. When the bad nodes report their signatures, the bad nodes will be grey listed, until they come back into consensus with the other nodes. Since the signatures don’t all match, each node would re-check its work, re-sign the block, re-submit their signatures, and move on to the next block. The signatures broadcast on the Vitals network are visible to all the other nodes. Along with being a communication backbone, and reference place for the node’s signatures, the Vitals network also contains virtual nodes – which are also capable of independently creating a block signature to validate the signatures provided by the STaTiC nodes. Because of this, if there is a mismatch between the signatures provided by the nodes – even a great majority – and the correct validation signature, provided by even a single STaTiC node – even one that had been offline for a while that caught up with its email backlog of blocks, those nodes with the incorrect signature would all be able to be blacklisted. Not only do the nodes signing each block need to be in consensus, the virtual nodes in the Vitals network, and the Pulse signals sent to every node (static and virtual) all need to be in consensus. Essentially, this means that nothing short of a 100% attack would be able to completely compromise the network. Seeing as how the STaTiC nodes only make up 1/3 of the total validation system, even a 100% attack on the STaTiC nodes is still only a 33% attack on the entire network.​

    This is all made possible by the Zolt (named after the developer) algorithm – and why this is being called the ZoltChain – instead of a block chain. This is a super efficient algorithm that doesn’t require a lot of computational power. Again, the goal is to be able to run a node with a raspberry pi, and have the entire network electrical load be lower than a single household. This is far different than a single transaction requiring more electricity than 10 homes.​

    This jump from competitive tree carving to a cooperative tri-level self-validating digital ledger really puts the differences in perspective. PoSign alone is such a significant jump from PoW that the difference between wood carvings for communication and email really are just about accurate.​

    Cooperative consensus is better than competitive consensus in the same way that agreeing with your neighbors is better than being in constant conflict with them.​

    And we can’t forget the environment. Continuing to support a blockchain that relies on Proof of Work is not only financially irresponsible, it is environmentally irresponsible as well. Think of all the digital forest that have been lost already, and how many real forests are endangered by the endless electrical thirst required by all the digital lumberjacks out there doing their best to rid the world of every last tree.​

    The post The Obscure Forest Path to PoSign appeared first on XTRABYTES.Today.

    Continue reading...

Share This Page