All posts in " PoS "

Nothing At Stake Problem – A Forkin’ Mess!

In this post Shawn explains the Nothing At Stake Problem simply. He goes over the nothing at stake definition, and also touches on nothing at stake Casper issue.

Barging into the bosses office and flipping him off may sometimes be too tempting to resist.  But we manage to refrain. Why? Cause we're incentivised against doing so. Usually, there are consequences – like losing your job. Bad behaviour usually has associated costs. Behave badly – lose something.

Sometimes, however, there are situations that allow you to act badly and lose… nothing. If the bad behaviour results in the most fruitful outcome, you’re most likely going to capitalize on it. This usually results from overlooked  incentivization models. In blockchain technology, The Nothing of Stake problem  is an example of an incentivization structure that allows someone misbehave – and get away with it.

 Nothing At Stake definition: –  a situation where someone loses nothing when behaving badly, but stands to gain everything.

Nothing At Stake Problem in PoS

When a fork occurs, the Consensus Method helps the network agree between the two chains. Participants have to choose which chain to follow, and the majority wins. Ideally, you want the Consensus Method to incentivize people to choose only one of the chains.

Kinda like you having your employees choose between this:  “Should I should I slap my boss across the face – or should I keep my job?”

You can’t have both.  You can’t act “badly” and have no costs. (Unless you have another job waiting for you, in which case – power to you!)

Proof Of Stake allows you to slap your boss and keep your job - You have nothing at stake.

Proof Of Stake: The Costs To Validate

In PoS, participants compete in a lottery to win the right to propose the next block. Each participant deposits tokens into a pool from which a “winner” is chosen. This deposit is the primary cost that a participant has to incur. All other costs are negligible.

The winner’s block is either accepted or rejected – and the process continues with the chain being extended on each “accepted” block.

Nothing_At_Stake(1)

Proof Of Stake:  A Fork In Mess 

However, things can get really messy if we run into a “Fork”.  A “fork” in the chain may occur if:

  • There’s a malicious attack  – an attempt to reverse a transaction
  • Two winners are chosen 

In both cases, two new blocks are proposed – and  hence we have a split in the chain:

Nothing_At_Stake(2)

Now, participants have to pick one of the two chains. The problem, however, is each participant can choose to follow both chains. Ideally, one chain will be picked:

Nothing_At_Stake(1)

Remember, the only real cost to a validator was his deposit. Since the chain forked, his deposit exists on both chains. So it costs him nothing more to validate on both chains. This allows him to collect transactions fees and rewards on both chains.

Nothing At Stake Problem: Best To Cheat

In fact, he is incentivised to follow both chains as his optimal strategy.

  • If he picks only one chain, he risks losing the transaction fees on the orphaned chain.
  • However, If he picks both chains, he simply has to wait for one of the chains to be picked as a winner – and he gets his rewards either way. 

When every validator picks the optimal strategy, we will end up with a chain like this: 

Nothing_At_Stake(4)

Why? Because we’d have 100% consensus on both chains. Everyone’s voting for both sides – so the chains extend at the same pace. At first glance, it may not seem like a big deal. But this compromises the security of the network drastically. A malicious actor can intentionally fork the chain, and get away with a double-spend. All he has to do is the following steps:

  1. Keeps validating on both chains as well.
  2. Wait for confirmation of the bad transaction. 
  3. Stop validating on the first chain.

This would tip the balance of the vote onto the other side of the chain – the one with his bad transaction.  Eventually, the second chain would outpace the original chain. The bad transaction will be officially accepted, and first chain will be orphaned.

Opportunity Cost 

The key point to notice is that the validator can follow both chains and have no opportunity cost.
For example, when you decide to quit your job for a new job, there's an opportunity cost. What if your boss was intending on promoting you? However, Proof Of Stake allows you to have two full-time jobs at no cost. If you don't get promoted in the first job – big deal. You have the second job that will promote you. You have Nothing at stake – no opportunity cost.

Being able to validate on both chains with no costs is like having two jobs.​
If the first chain gets orphaned, you still get all transaction fees & rewards from the second chain. In fact, if you pick only one chain you stand to lose your rewards & fees IF your chain gets orphaned. Hence, the optimal strategy is to pick both chains.

Nothing At Stake Problem: PoW vs PoS

Proof Of Work is not vulnerable to a Nothing At Stake problem. Why? Because , unlike PoS,  a participant has to use external costs to build blocks in Proof Of Work. An external cost forces participants to place his "bet" on one chain or the other. The external cost in Proof Of Work is the electricity/hash power used by the miner. 

To understand this better, we can go back to our Farmer's Analogy. Farmer's had to place their sacks of rice in one of the two rows. The more sacks they had, the more votes they got. The rice was their "external cost". They couldn't vote on both rows with all their sacks. They'd either have to split their sacks of rice or pick one row. The external factor of "rice" ensured that the village mayor didn't have to worry about the nothing at stake problem.

Similarly, In order to build blocks on a chain, he needs to place his electricity on the chain he believes in. To build blocks on both chains – he will have to split his electricity in two. He has an opportunity cost here. As he will not be using the full potential of his hash power on either chain. Since he is not building optimally on either chain, he will lose out on potential rewards. Regardless of which chain is eventually picked as a winner, he will have had some opportunity cost.

In Proof Of Stake a participant does not have any external costs to build blocks.

Remember: the only cost was the initial deposit. Because of this, he can place his bets on both chains. He can simply build blocks on both chains – and wait for a winner. Regardless of which chain wins, he comes out ahead – and no opportunity cost. He had nothing at stake.

Nothing At Stake & Casper: Hypothetical?

It's important to note that we are assuming that all participants act “optimally”.  The more likely scenario is that there will be some people who act honestly and reject the “bad chain”. That’s not to say, though, that the Nothing of Stake problem should be ignored. Even if a portion of validators acting selfishly, then attacking the network becomes easier.

But the great news is that the Casper team is not taking the nothing at stake problem lightly – be it a hypothetical problem or not. Ethereum Casper will include punitive measures like “Slashing” that addresses the Nothing At Stake problem. I will discuss and explain that in part 2 of this post!

Get my upcoming eBook for Free!

"The Mango Guide TO Understanding Blockchain"

Offer Valid For FIRST 500 registrations only

No menu items have been found.
No menu items have been found.
Continue reading >
Share

Understanding Longest Chain – A Simple Analogy

One of the most popular Consensus Methods used today is Proof Of Work. As I write this post, Bitcoin and Ethereum both still use the Proof Of Work consensus method.  Ethereum is set to switch to Proof Of Stake in it’s upcoming Casper update. However, the first iteration of this update will be a hybrid of PoW & PoS. Bitcoin will continue to use Proof Of Work for the foreseeable future. 

Regardless of the consensus method used,
Bitcoin & Ethereum are still blockchains. And such, both networks rely on the Longest Chain Rule when coming to consensus.

In this post, I’ll attempt to dive a little bit deeper into The Longest Chain Rule while still keeping things as simple as possible 🙂

 Longest Chain Explained  - A Farmer Analogy

Let’s pretend we’re all farmers living in a small town. Majority of us farm rice as our major source of income. Weharvest the rice and pack them into 1KG gunny sacks and then carry the sacks to the Townhall. The sacks are then placed onto the only carriage the town has and transported to The Main City and sold.

The Town Hall Meeting: One day a Town Hall meeting is called to discuss the size of the gunny sacks...

An angry debate ensues on whether or not they should increase the size of each gunny-sack. Some farmers want the increased gunny-sack size for increased profits. But other farmers are against the idea – and claim it will make it more difficult for the older/younger/weaker farmers to carry the gunnysack to the Townhall.

The Mayor suggests that a vote should be conducted to solve the matter. However, an objection is raised:

“How is that fair? I do more work than these guys. I harvest far more rice. My vote should count more”

The Vote : That’s when a farmer named Satoshi comes up with an idea. He suggested that the next time they come to the town hall – they vote with their gunny-sacks of rice.

Each gunny-sack would represent a vote. That way, if you have more gunny-sacks you can cast more votes.Each sack of rice would be proof of their hard work. Farmers who worked harder, had more rice – and hence got to cast more votes 

The Result : Everyone loved the idea. The next day, two rows were laid out near the Town Hall. The first row represented “Increase Gunny Sack Size” and the second row represented “Don't Increase Gunny Sack Size”

Farmers would carry their gunny sacks to the town hall and place each sack in one of the two rows – thus casting their vote.   The row that had the longer chain of gunny sacks would be picked as the final decision.

At the end of the day, the “Don't Increase Gunny Sack Size” row had the longer chain of gunny sacks – and thus was the winner!


Disagreements within a blockchain are pretty much solved the same way. Each gunnysack represents a “block” in the blockchain.  A row of gunny sacks represents a chain.

Whenever there’s a disagreement, network participants can “fork” off the current chain. Thereby starting a new chain of blocks. Participants who agree with this new chain can now start applying their “blocks” to the new chain as well. Eventually, if the new chain extends the old chain – the Longest Chain Rule will kick in and will be declared the winning chain.

Longest Chain & “Work”

In our analogy, farmers were adding sacks of rice to “vote”. These sacks of rice are tangible and represent work done. The longest row of sacks represents the majority.

Similarly, in the blockchain, miners add a block to the chain to cast their vote. And the longest chain of blocks represent the majority.  

But - How does a “digital” block represent something tangible/work?  

Therein lies the beauty of Proof Of Work – but also a lot of confusion. In a previous post we discussed how Proof of Work uses the Cryptographic Puzzle to determine who represents the majority in the network.

To recap:  Miners on the network compete against each other by attempting to solve the puzzle – in order to win the “right” to add the next block onto the chain.  

A miner consumes a lot of electricity to solve these puzzles. But each time he wins (i.e solve it before someone else does)  – his block gets added to the chain.

In a way, the miner has permanently applied his electricity onto the block he just created. Since he won the solved the cryptographic puzzle, his block (with his ‘electricity’) gets added to the chain. 

So now you could say...

The farmers ‘proof of work’ was his sack of rice – and hence got to vote. After all the farmers place their sacks of rice in each of the two rows, we have our decision because: 

“The longest row of sacks represents where the majority farmers have placed their vote”

The miner’s proof of work is his winning “block” of transactions - since each block represents a miner’s electricity consumed – the entire chain represents the consumed electricity of all the previous winning blocks.

“The longest chain of blocks represents where the majority miners have placed their vote"

Concluding Thoughts - Longest Chain & Immutability

Remember, energy is never destroyed – simply transferred. In the proof of work, you could say that the energy is transferred to secure the blockchain.

Why ‘secure’? Because to change a block, you’ll have to redo the “work” that was needed to create that block.

To undo any of the previous blocks, you’ll have to redo the work for that block and every block that followed it. I’ll explain (in detail) why in another post. But this is what gives Bitcoin it’s strong immutability.  

In essence, an attacker will have to start a new chain and do enough work to also become the longest chain. If and only if  his chain is the longest chain will it be considered the winner and valid. And you may understand now – to achieve this, would require consuming a lot of electricity. This is why The Longest Chain rule is so crucial to understand 🙂

Did this post help you?

Help Us Keep Doing What We Do Best!

Tip Jar 🙂

BTC: 3LrzDr7ZYQ5xWAKnweM1XuUAvU5YEkF7Zb

ETH: 0x87ba0C08910Dbd3b93D74A2A3b61d78A3C2dbDab

Did you enjoy this post?

Help Us Keep Doing What We Do Best!

Tip Jar 🙂​​

BTC: 3LrzDr7ZYQ5xWAKnweM1XuUAvU5YEkF7Zb

ETH: 0x87ba0C08910Dbd3b93D74A2A3b61d78A3C2dbDab

Get my upcoming eBook for Free!

"The Mango Guide TO Understanding Blockchain"

Offer Valid For FIRST 500 registrations only

No menu items have been found.
Continue reading >
Share

Is Proof Of Stake Less Resource Intensive Than PoW?

So, Mike – a Mango reader –  emailed me with this question a few days ago:


 Hey Shawn, I enjoyed your explanation on Sharding. Thank you. But now I’m  trying to understand what makes Proof Of Stake less resource intensive than Proof Of Work? Doesn’t the verification process need to take place the same way?

This is actually a really good question, Mike! It shows that your understanding is growing deeper. Your asking the right questions!

Yes, PoW and PoS conduct the validation/verification of transactions similarly. As such, Proof Of Stake  consumes just as much resources to verifiy transactions as Proof Of Work does.

However, it’s important to note that the “verification of transactions” is not what makes Proof Of Work resource intensive. It is the Cryptographic Puzzle  – required to be solved by all miners –  that consumes a large majority of the resources.

The PoW Puzzle – The Real Resource Hog

Many of us tend to believe that it's the validation of transactions consumes the resources. In truth, the majority of the resources is consumed while solving the Cryptographic Puzzle - which has nothing to do with the validation/verification of transactions.

In fact, Proof Of Work and other consensus methods are more concerned with the ordering of transactions than the "validation" of transactions. The ordering of transactions is resolved by getting miners to solve the Cryptographic Puzzle.

Miners solve the cryptographic puzzle in order to win the “right” to place their block next on the chain. And it’s the solving for the "cryptographic puzzle" that is computationally intensive - not the verifications transactions.  

In fact, Verifying the transactions is trivial compared to solving the cryptographic puzzle. Proof Of Stake eliminates the need for miners to solve the Cryptographic Puzzle – and hence eliminates the intense resource computation required.​

The PoW “Lottery” vs PoS “Lottery”

A couple of weeks ago, I explained Proof Of Work’s Puzzle using the Reverse Lottery Analogy.

In brief, Proof Of Work uses the Cryptographic Puzzle to setup a lottery. The winner of the lottery gets to place the next block in the blockchain – and everyone else agrees on it.  To win the lottery, miners have to churn numbers after numbers repeatedly until they generate the winning number. This process is extremely resource intensive.

The PoW Lottery System: Think of it this way –  the miners in this lottery know the winning number but they can’t forcefully print the number. Numbers on their ticket are printed randomly. So all they can do is keep printing tickets until they print the winning number.  The ‘printer’, however, consumes a lot of electricity – and hence the process can get really resource intensive.

The PoS Lottery System: Ethereum’s Proof Of Stake, however, doesn’t use a Reverse Lottery System. Instead, they use a normal lottery. In this lottery, each Ether token represents a lottery ticket. “Miners” (in Ethereum’s case we call them Validators)  simply place their Ether tokens in the lottery jar. We then simply shake the jar and pick the winner. The more tokens you have in the jar, the higher your chance of getting picked. (This is similar to having more hashpower in Proof Of Work)

And Voila! – we eliminate the intensive resource consumption.

Concluding Thoughts

Keep in mind – this is article is not claiming that Proof of Stake is better than Proof Of Work. Making a claim like that would show disregard for the multitude of use-cases for Blockchain and DLTs.  There are pros and cons for both consensus methods – and there will always be tradeoffs. In fact, the intense resources consumed by PoW can be stated as a positive aspect when pertaining to Immutability.  Here's a simple & well written article on Immutability in PoW that I recommend reading.

At MangoResearch, our community seeks to understand and educate ourselves – and not engage in futile debates.

Did this post help you?

Help Us Keep Doing What We Do Best!

Tip Jar 🙂

BTC: 3LrzDr7ZYQ5xWAKnweM1XuUAvU5YEkF7Zb

ETH: 0x87ba0C08910Dbd3b93D74A2A3b61d78A3C2dbDab

Did you enjoy this post?

Help Us Keep Doing What We Do Best!

Tip Jar 🙂​​

BTC: 3LrzDr7ZYQ5xWAKnweM1XuUAvU5YEkF7Zb

ETH: 0x87ba0C08910Dbd3b93D74A2A3b61d78A3C2dbDab

Get my upcoming eBook for Free!

"The Mango Guide TO Understanding Blockchain"

Offer Valid For FIRST 500 registrations only

No menu items have been found.
No menu items have been found.
Continue reading >
Share

What Is Blockchain Immutability? – A Secure Tamper Proof Database

By Krisha A / May 21, 2018
Krisha breaks down the concept of blockchain immutability. In addition, she also explains the importance of a blockchain being tamper-proof to claim 'Immutability' , and 'why' being immutable is important to many.

It was the devastating effects of the 2008 financial crisis that gave way to the rise of blockchain technology, in particular, the bitcoin blockchain.

The bitcoin blockchain is revolutionary because it enables the world to transact without the need of a middleman. This elimination of the centuries old middleman was partly due to one inherent property of the bitcoin blockchain - Immutability

Lets breakdown the term: Immutable

  • Immutable in the dictionary is - “Unchanging over time or unable to be changed

  • Immutable in blockchain is - "The inability of a block to be deleted or modified once it is in the blockchain" - An immutable ledger

​​​​You’re probably wondering: 
" Why is blockchain immutability so important in knocking off the middleman anyways? "

It is the property of  immutability  in the Bitcoin blockchain that gives users the assurance that their wealth and information cannot be tampered with. Such an “assurance” is normally given to us by middlemen - like banks. And we often take them up on that assurance, and bestow our trust upon them. We trust  that our banks will protect our money & information. 

Unlike middlemen, you don’t have to trust the bitcoin blockchain to be sure your wealth and information will be protected - It is a trustless system. And an Immutable blockchain allows for that. In fact, it is one of the key pillar stones of the Bitcoin blockchain.

Immutable Blockchain: Tamper Proof vs Tamper Evident

Blockchain Immutability is often misunderstood – even among industry enthusiasts. To truly understand the essence of blockchain immutability, we need to clear out the confusion between Tamper Evident & Tamper Proof.

  • Tamper Evident - An object cannot be tampered with, without it going unnoticed

  • Tamper Proof - An object cannot be tampered with

To be truly Immutable, you need to be Tamper PROOF. Being Tamper Evident is not enough. Several Blockchains falsely claim immutability when they are merely Tamper Evident.

If you were tasked to come up with a list of things that cannot be changed, and is indeed Tamper Proof, you probably wouldn’t get very far (Go ahead! Give it a shot). Almost everything is susceptible to change, and things that are susceptible to change cannot be Tamper Proof.

Blockchain Immutability Is Relative

To put into perspective, lets go over a few rudimentary things we deal with on an everyday basis:

Toothpaste
Try squeezing out all the toothpaste from a tube, and putting it back in. It’d be difficult, tedious, and evident that it has been tampered with - It would be Tamper Evident

Emails
Emails that have been sent out cannot be “un-sent”. Although, through an individual perspective, emails can be quite “immutable”. However, you can always persuade the recipient of the email, or the person running the mail server to delete it. Once again, difficult, and not without risk of detection - This too, is Tamper Evident


Notice how even the most immutable things on an individual perspective can be changed someway or the other. The only difference is that somethings are harder to change than others - Immutability is relative.

Everything can be changed. To say something can never be changed, is us discounting the progress of technology.

How Is A Blockchain Immutable? - The Maximum Degree Of Difficulty

At this point you’re probably wondering, “Alright, if everything CAN be changed, how exactly is the bitcoin blockchain immutable (aka tamper-proof)?"

Since almost everything can be changed, we define "Immutability" in practical terms:
" The maximum degree of difficulty to change something "

  • Essentially, How difficult is it to edit the bitcoin blockchain? 

  • Hard?
  • Super Hard?
  • The hardest thing to change in the world?

The Bitcoin Blockchain lies at that maximum degree of difficulty - It is, currently, one of the most difficult things to change in the world. Making it the highest standard of security achieved thus far.

Most people, when asked, cite “the blockchain” as the reason behind Bitcoin's Immutable nature. However, it isn’t the "blockchain" that makes bitcoin immutable, but its Proof of Work consensus method. 

The Proof Of Work that backs the Bitcoin Network is what makes it’s blockchain “the hardest thing to change in the world”. The "Work", aka electricity/hashpower, earned bitcoin its badge of Maximum Immutability. (So to speak - will discuss this more in a separate post).

  • For now, it’s important to note that Blockchains are inherently Tamper Evident due to the underlying data structure, but not all blockchains are Tamper Proof.​​ Only a tamper-proof blockchain can be immutable.


Bitcoin Blockchain - The Immutable, Tamper Proof Ledger

Immutability is relative depending on how difficult it is to change something. The scale of immutability can be measured from  "0" -- to -- “The most difficult thing to change in the world”.

As it stands, the most difficult thing to change in the world is the Bitcoin blockchain. It is the highest standard of security that has been achieved thus far. Remember, the Proof of Work is what makes the bitcoin blockchain tamper proof - it is what makes the blockchain immutable.

If another, superior technology, were to break the scale of immutability - the scale would reset, and a new standard of immutability will be defined.

Get my upcoming eBook for Free!

"The Mango Guide TO Understanding Blockchain"

Offer Valid For FIRST 500 registrations only

Continue reading >
Share

What Exactly Is Ethereum Gas?

By Shawn Dexter / April 12, 2018

What Exactly Is Gas

There seems to be a lot confusion & questions around Ethereum & Gas – and rightfully so. Blockchain veterans & enthusiasts alike can be thrown off by the terminology. Moreover, people often wonder “why” Ethereum chose this route. Why not keep it simple – like Bitcoin?

There are good answers to these questions. But before we dive into the why & how”  of Gas – let’s briefly go over “what” Gas is.

Contrary to popular belief  – Gas is not a sub currency of Ether.  Gas is more so an “internal” token within the EVM (Ethereum Virtual Machine).  It is used by Ethereum to place a relative cost on each operation within a Smart Contract.

For example, a contract can have the following types of operations and associated costs

  • Single Execution Step:  1 Gas
  • Store A Value:  100 Gas 
  • Call Another Contract : 20 Gas

This allows Ethereum to “charge” more for contracts that are more complex. This is fair – since a Smart Contract with more/demanding operations will be using more network resources.

When you send a transaction to a Smart Contract, you are required to enter the following:

Gas Price
​The “Gas Price” is the amount of Ether you are willing to pay for each unit of Gas.

Gas Limit
The “Gas Limit” is the total amount of Gas you’re willing to buy for the execution of this transaction.

I get it – it's still confusing. Understanding how "Gas Price" and "Gas Limit" relate to each other can be a task. So let's use an analogy to clear things out.

The Maid Service Analogy

Suppose you join a new Maid Service Agency. But they decide to give their Maids more freedom & flexibility in how they conduct their business. They wanted the Maids to be allowed to earn more if the “market” deems it worthy.

 So, instead of charging you in USD$, they charge you in MaidTokens.  MaidTokens can be redeemed for cleaning activities (operations) as such:

  • Clean a Bedroom:  1 MaidToken
  • Clean a Living Room:  3 MaidTokens
  • Clean a Bathroom:  10 MaidTokens

These prices are set by the Maid Service Agency – and don’t change. So no matter what – the Maid Service Agency will get a fixed number of MaidTokens for each job (based on the rooms being cleaned).

Flexibility & Freedom 

We mentioned that the MaidTokens are being used for more freedom. But how is this freedom achieved?

The flexibility comes from the fact that the Maids can negotiate how much you (the customer) pay for each MaidToken. Here’s an example:

  •  A Maid can say, “I’m charging $25 per MaidToken” 
    •  You can reply with, “Well, I’m willing to pay only $15 per MaidToken” 

    The Maid (Miner) can then either take you up on your offer, and clean your rooms (validate your transaction) – OR look for other customers that will pay more.

    This is exactly what you're doing when you set your "Gas Price"

    •  You’re saying: “I’m willing to pay only 0.00002 Ether per Gas” 

    Similarly, a Miner can choose to take your offer or not.

    (To automate things – Miners set up a minimum a minimum Gas Price they are willing to acceptThey have the freedom to include your Transaction in their block or not. But just like the Maid, they are always looking to maximise profits.)

    Okay, awesome.. Using the “MaidToken Price” we have a better understanding of “Gas Price”. Now let’s tackle “Gas Limit”what in the world is it really?!

      MaidToken Limit

      Now let’s suppose you rent a cottage and host a huge party. You wake up the next day to a gigantic mess and a colossal headache. You call the Maid Service Agency, and they send over a Maid. You guys negotiate and agree on a MaidToken Price of  $20. 

      • MaidToken Price:  $20
      •  She asks, "how many rooms does the house have?"  
      • You reply: “Uh… I don’t know...”
      •  “Well, how do you expect me to quote you a price then?”, she replies.
      • You think about it (and your finances), and say: “How about this… I’ll pay for up to 100        MaidTokens. If the house needs more, just stop cleaning. If it needs less. I’ll pay you only    the MaidTokens it needs.”

      She agrees, and you’ve now agreed to the following:
      MaidToken Price:   $20 per MaidToken
      MaidToken Limit:  100 MaidTokens

      This is essentially the same type of agreement you get into when you send a transaction with the following:
      Gas Price:  20 Gwei (per Gas)   
      Gas Limit:  10,000 Gas

      **Note:  Gwei is a subunit of Ether.  1 Ether = 1,000,000,000 Gwei

      •  Over here, you’re telling the miner: I’ll pay for up to 10,000 Gas. If the Smart Contract needs more, just stop. If it   needs less. I’ll pay for the Gas you used”

      Hitting The Gas Limit  & Losing ETH

      Hopefully, 10,000 Gas is enough to complete execution of your Smart Contract. If the operations within the Smart Contract was costlier than you anticipated – then the execution will not complete. And the transaction fails.

      Similarly, if your 100 MaidTokens aren’t enough to clean your rooms (the cottage may have had more bathrooms than you thought) – then the Maid will stop cleaning/executing.

      The difference in our analogy is that when you hit your “MaidToken Limit” you get to keep the clean rooms.  Your house will be partially clean and the maid will leave. 

      However, we can’t have “partial execution” of a Smart Contract. So if you hit your “Gas Limit” before the contract is completely executed – the contract will roll back. It will be as though the transaction never occurred. And you’ll get an “Out Of Gas” error.

      The unfortunate part is that you will have “used up” the Ether (Gwei) you set. Afterall, the contract DID execute – just not entirely.

      Tip:  If you’re trying to save on transaction fees, set a LOW Gas Price and a higher Gas Limit.  Too often people do the opposite.

      Wrapping Up

      Gas is used within the EVM to place a cost on various operations. So when you’re conducting a transaction, think of “Gas Price” as the price you’re “offering” to the miner for each unit of Gas.  The "Gas Limit" is the total amount of Gas you’re willing to buy for this particular transaction.

      That’s pretty much it. In the next post, we’ll discuss why Ethereum has chosen to go this route as opposed to the way BTC does it.

      Did this post help you?

      Help Us Keep Doing What We Do Best!

      Tip Jar 🙂

      BTC: 3LrzDr7ZYQ5xWAKnweM1XuUAvU5YEkF7Zb

      ETH: 0x87ba0C08910Dbd3b93D74A2A3b61d78A3C2dbDab

      Did you enjoy this post?

      Help Us Keep Doing What We Do Best!

      Tip Jar 🙂​​

      BTC: 3LrzDr7ZYQ5xWAKnweM1XuUAvU5YEkF7Zb

      ETH: 0x87ba0C08910Dbd3b93D74A2A3b61d78A3C2dbDab

      Get my upcoming eBook for Free!

      "The Mango Guide TO Understanding Blockchain"

      Offer Valid For FIRST 500 registrations only

      No menu items have been found.
      Continue reading >
      Share

      Cryptographic Puzzle – Understanding Proof of Work

      In the previous post of this Proof Of Work series, we discussed how PoW is used to determine representation of the majority. Determining the majority is one of the keys in being able to come to consensus (or agreement) on decisions. But in order to determine the majority, Proof Of Work uses Cryptographic Puzzles (or Proof of Work Puzzles)  – making them just as important.

      But how does this Proof Of Work puzzle work? What kind of puzzle is this? I get these questions a lot. Usually in different forms. 

      But the general gist of the question is this:
      “What exactly is the Proof Of Work Puzzle? What’s the point?”

      In this post, I’ll attempt to explain the proof of work puzzle simply. We’ll also discuss its significant importance in Proof Of Work as a Consensus Method.

      The PoW Puzzle - The ‘Reverse’ Lottery Analogy

      To avoid the nitty-gritty technicals, let’s use an analogy. 

      Suppose you enter yourself into a lottery.. But this is a special kind of lottery. We’ll call it a “Reverse Lottery".
      In this lottery everybody knows the winning numbers. Sounds like an easy lottery to win, right? Not exactly.

      You can’t simply “pick” your numbers when buying your ticket. You can only buy a ticket with numbers randomly generated on it. So, the only way for you to win the lottery is to keep buying ticket after ticket after ticket…. Until you buy one that matches the winning numbers you have.

      This is precisely what is involved in the Proof Of Work cryptographic puzzle. People use their computers to randomly generate numbers at a rapid pace. (These people are called miners, btw.)  If they generate the “winning” number, they win the lottery.

      The Reverse Lottery & PoW : Breaking It Down

      Let’s say you know the winning ticket number of a Reverse Lottery to be:  1111111111.

      Now it’d be nice if you could go up to the counter and ask for a ticket with those numbers. But you can’t. All you can do is pay for a ticket and hope it generates: 1111111111. If not – tough luck. Buy another ticket and try again.

      The good news is that you can try as many times as you can. The bad news is that you have to pay for each new ticket.

      Our “Reverse Lottery” is essentially what the cryptographic puzzle is.

      • Player in the Lottery  = Miner in the Network
      • Buying tickets with random numbers = Using Computational Power To ‘Solve’ Algorithms (Hashing)

      In the Reverse Lottery, each player is hoping that he generates the winning ticket number before someone else does.  Similarly, each Miner is hoping that he can generate (by ‘hashing’) the winning numbers before other miners do.

      • In the lottery, players are paying for each ticket with money.
      • Miners are using computational power to “hash” their numbers – which translates to electricity costs.

      The good news is the miners are using hardware that generate millions of hashes per second.

      The miner who finds the winning hash gets to add his “block” to the blockchain. In return he gets a reward. He also gets to collect transaction fees for all transactions listed in the block.

      On average, a winning number (or winning hash) is found every 10 minutes. This average can be adjusted but we’ll talk about that later. And the miners move on to compete for the next winning hash. It’s kinda like a new Reverse Lottery every 10 minutes.

      The process of trying to find the winning hash is called “Mining”.  The term actually originates from the traditional “mining” of gold. But instead of using a pick-axe to dig for Gold, Miners are using their computers to dig for the winning hash.

      That’s pretty much it. You pretty much understand how the process works now.  But I may have left out one aspect. The Nonce.

      The Cryptographic Puzzle: Nonce?

      Let’s go back to our Reverse Lottery.  Suppose the creators of this lottery decide to spice things up. They realize that they need to make lottery players feel more “involved”.

      To achieve this, they add a new element into the Reverse Lottery. Now, instead of simply randomly generating a number they ask the player for the following information first:

      • His Name  (For example :  Bob )
      • His Favourite Color  (For example : Green )
      • A “random number” of his choice  (For example : 7)

      The Reverse Lottery will take all three answers –  Bob, Green, 7 – and put it into a special “mixer”.  You can think of Bob, Green and 7 are the “ingredients”.  The mixer will spit out a Lottery Ticket for Bob based on the ingredients he gave it.

      (Btw this is precisely what “hashing” is. A function/algorithm that takes “ingredients” and produces an output based the input.)

      If the ticket matches the winning number – great! He wins! If not, he will have to try again – but this time with a different “random number”.  This will give him a new lottery ticket number.

      Essentially, his name “Bob” and favorite color “Green” will remain fixed as ingredients. His ‘random number’ keep changing until he gets the winning lottery ticket.

      In Mining, this “random number” is what we call the nonce. The other “fixed” ingredients are the transaction data, block data, timestamp etc.

      The nonce is incremented after each failed attempt. (Fyi, the other ingredients are relatively fixed. They change when necessary – but that’s nitty-gritty stuff we don’t care about at them moment)

      Wrapping Up - PoW Cryptographic Puzzle

      To sum it all: In Proof Of Work people (miners) are essentially racing against each other to generate the winning numbers for the Reverse Lottery.

      Instead of repeatedly buying tickets at a counter, they expend electricity by rapidly running an algorithm on their computer over and over again. When and If they generate the winning number (winning hash) they get to add their “block” of transactions to the blockchain.  In return, they claim a reward and the transaction fees for all the transactions in the added block.

      There’s more I’d like to discuss – like Verifiability. I’ll leave that for the next post though. 

      For now, I’ll let you ponder over this question:
      “How do the other miners verify that he really did find the winning hash?”

      We’ll talk about this and more in the next post 🙂

      Did you enjoy this post?

      Help Us Keep Doing What We Do Best!

      Tip Jar 🙂

      BTC: 3LrzDr7ZYQ5xWAKnweM1XuUAvU5YEkF7Zb

      ETH: 0x87ba0C08910Dbd3b93D74A2A3b61d78A3C2dbDab

      Get my upcoming eBook for Free!

      "The Mango Guide TO Understanding Blockchain"

      Offer Valid For FIRST 500 registrations only

      No menu items have been found.
      Continue reading >
      Share

      Proof Of Work: Determining Majority “Power”

      As discussed in a previous post, one of the primary goals for a Consensus Method is to facilitate “agreement” on the network. To come to agreement we need a majority of votes. However, determining this majority may not be as easy as you may think.

      The difficulty in achieving Consensus in a networked system is actually a fundamental problem in Computer Science. There are various technical reasons for this. But we’re going to keep it simple in this post. 

      We will tackle one particular difficulty that may seem easy on first glance:
      "How Do We Determine Who Represents The Majority?"

      Let’s take a step back for a moment. Let’s think about how majority decision making is done in the “real” world.

      Consensus In A Boardroom Office

      Agreement is usually settled by the “rule of the majority”, right? We’d sit in a big boardroom office, and everyone (who matters) would vote by either a ballot-system or raising their hands.

      It’s pretty hard to cheat. (You could try to raise two hands, I suppose. But you’ll probably be found out)

      But this boardroom clearly represents a centralized system. How do we achieve this in a decentralized system - like a blockchain? Such a system has the following features:

      • People Distributed Around The World
      • People Are Pseudo-Anonymous – Using Their Computers To “Vote”

      In the office boardroom, the majority is represented by people raising their hands. We need a way to determine the majority in a networked & decentralized system. Essentially, we need a way for people to vote in such a system – and to do so fairly.

      Consensus Online:  IP Addresses?

      The first idea that comes to mind is : IP Addresses.  Each IP address could represents one vote. Not bad – but it won’t work.  It’s far too easy for someone create millions of Virtual IPs. A single person could spin-up several IPs around the world and cast a million votes to further his own agenda. 

      Proof of Work - a simplified example

      Suppose we have a network of 1000 participants. Each of them are allowed one vote per IP Address. The participants have to come to a decision between Decision A and Decision B.

      999 participants vote for Decision A.  But John – a network participant – wants Decision B for his own agenda. He decides to create 1000 Virtual IPs and casts votes for Decision B from each one of them. The network now thinks it has a total of 2000 participants.

      • Decision A gets 999 votes.  Decision B gets 1001 votes. (1000 fake votes + John’s real vote

      • Decision B goes through. John wins, everybody else loses.

      Consensus Online: CPU Power

      The “One-IP-One-Vote” solution was simply not going to cut it. It was far too easy for people to manipulate the votes  – and also face no consequence for doing so. Even failed attempts could be brushed off. We needed the following:

      1. Add a difficulty to casting vote
      2. Make it costly for attempting manipulation

      That’s where Proof Of Work stepped in as a Consensus Method - Proof Of Work uses CPU Power to determine the majority decision.

      In order to show their support, participants have to expend electricity. (They do so using by solving Cryptographic puzzles – which we will discuss in the this post. For now, all you need to know is that they have to expend energy in order to show who they support)

      Therefore, the only way someone could manipulate the “votes” is by  having a A LOT of CPU Power. Achieving this will cost them A LOT in:

      1. Initial hardware costs 
      2. Ongoing electricity costs.

      Longest Chain: Determining Majority Support

      Note: I explain the Longest Chain using a simple analogy in a post here: The Longest Chain - A Simple Farmer's Analogy

      This gives us another interesting (and important) feature. Each time a “block” is added to the blockchain, CPU Power/energy is  consumed. Thus, every block preceding it also involved consumption of energy. These are essentially a “chain of blocks” (hence ‘blockchain’). These “chain of blocks” are representative of the TOTAL energy used for that chain.  

      • Remember, energy consumption is a form of indicating “support” by network participants.  So the longer the chain, the more support the chain has by the network participants.

      With this, if there is ever a conflict of decision – we can simply look at the Longest Chain to determine which decision has majority support. Why? Because the longest chain has the most energy invested in it. And hence the most support.

      Wrapping Up - Proof of Work

      Just like any other system, decision conflict needs to be resolved by a majority vote. However, determining that majority can be difficult when dealing with a networked system. Proof Of Work adds a extrinsic cost to each vote (hardware and electricity).  And thus making it increasingly difficult to manipulate the votes.

      Energy is expended to show support on each “block” of data added to the ledger. As the ledger (blockchain) increases in size, more energy is expended. The longest chain serves as representation of the majority support.

      In future posts I’ll go into a little bit more detail on the Cryptographic Puzzle and The Longest Chain. For now, I hope this post helps.

      If you have any questions, don’t hesitate to shoot me an email or PM 🙂

      Further Readings:

      Did you enjoy this post?

      Help Us Keep Doing What We Do Best!

      Tip Jar 🙂​​

      BTC: 3LrzDr7ZYQ5xWAKnweM1XuUAvU5YEkF7Zb

      ETH: 0x87ba0C08910Dbd3b93D74A2A3b61d78A3C2dbDab

      Get my upcoming eBook for Free!

      "The Mango Guide TO Understanding Blockchain"

      Offer Valid For FIRST 500 registrations only

      Continue reading >
      Share

      How Are Blockchain Transactions Validated? Consensus VS Validation

      By Shawn Dexter / March 22, 2018

      In this post Shawn answers the question: How Are Blockchain Transactions Validated?  He also explains what is Blockchain Validator – and the key difference between Consensus and Blockchain Validation.

      How Are Blockchain Transactions Validated?

      After my last post on Ethereum Proof Of Stake & Sharding, I received several follow up questions. Many of them could be summarised to one simple question: How Are Blockchain Transactions Validated? Is it done via the Consensus Method? Or does a Blockchain Validator Do It?

      As discussed in previous posts, “consensus” is a key aspect in blockchain. It’s imperative that all participants in the network come to an agreement on the state of the ledger.

      But what exactly are we trying to achieve consensus on? Are we simply trying to agree that each transaction is “valid”? Or is it more than that?  I believe that this is where a lot of people steer the wrong way.

      Blockchain Validators

      A Blockchain Validator is someone who is responsible for verifying transactions within a blockchain. In the Bitcoin Blockchain, any participant can be a blockchain validator by running a full-node.  However,  the  primary incentive to run a full node is that it increases security. Unfortunately, since this is an intangible incentive, it is not enough to prompt someone to run a full node.  As such, Blockchain Validators comprise primarily of miners and mining pools that run full nodes.

      Blockchain Validation Explained

      Blockchain Validation vs Blockchain Consensus

      It’s important to note that “validation” and “consensus” aren’t the same thing. A Blockchain Validator performs validation by verifying that  transactions are legal (not malicious, double spends etc).

      However, Consensus involves determining the ordering of events in the blockchain – and coming to agreement on that order. 

      Essentially, Consensus involves agreeing on the ordering of of validated transactions. 

      The validation precedes the Consensus. We may very well have something that is “valid” that the network does not “agree” upon. How? Let’s go over an example.

      Validation Without Consensus

      How Are Blockchain Transactions Validated?

      • Each time a transaction is made, it’s broadcasted to the entire network. Upon hearing the broadcasts, miners take a bunch of transactions, validate that they are “legitimate” – and put them into a block. (More on how in another post)
      • But miners “hear” about different transactions at different times (due to latency issues etc). Furthermore, they may simply choose different transactions to include in their block based on transaction fees. So essentially, each miner is building his own block. His block may be completely different from the rest of the miners in the network.

      At this point, you’re probably thinking:
      “What the hell? Everyone is building different blocks? Then how will we agree upon a single common ledger!?”

      • And that’s one of the beautiful things about the protocol.  Miners don’t need to build the same global block. They can each build their own block – consisting of entirely different transactions. And the participants will come to “consensus” on which block is included next.
      • A miner may have a block consisting of completely valid transactions, but his block may still fail to achieve consensus by the network. If someone else is picked, he will simply create a new block and try again.

      Let’s run through a simplified example of two miners with different blocks.

      A Simple Bitcoin Transaction Example

      Miner Bob &  Miner Joe

      Let’s say Bob and Joe are two miners on our network. Neither of them are up to any mischief. They are listening to the network and creating blocks with only valid transactions that have not already been spent.

      • Miner Bob creates a block consisting of “Transaction A , Transaction B, Transaction C”
      • Miner Joe creates a block consisting of “Transaction Z, Transaction Y, Transaction B”

      Both of these blocks consist of valid transactions. Great. But we still need to come to “consensus” on who’s block to include onto the chain. Remember, a reward is given out to whoever gets to add their block to the chain. So should Bob get it? Or should Joe? How about both of them?

      Adding both of them would be ideal, right? They both get rewards. And all the transactions get included onto the chain. Everybody wins! - But wait...Note that they both contain “Transaction B” in their blocks.

      • Let’s suppose that Transaction B is - “Alice pays 10 bitcoin to Jennifer” 

      If we let Joe and Bob both include their blocks, Alice will end up paying Jennifer 20 bitcoins (two transactions of 10 btc each) when she intended to pay her only 10!  Furthermore, Alice may only have 10 bitcoin - so the second payment would be invalid.

      As you can see, we can add only one of the blocks. And we need to agree upon which one. But how do we do that? 
      This is where consensus methods like “Proof Of Work” or “Proof Of Stake” comes into play - Enter Consensus Methods

      Using Proof of Work (PoW) for Picking Blocks

      Miner Bob and Miner Joe both want their blocks included in the chain – they both want the reward. But only one of them can be picked. To “win” the right to include their block, they go through a consensus process – usually either “Proof Of Work” or “Proof Of Stake”

      • In Proof Of Work, Miner Bob and Miner Joe compete against each other to solve a cryptographic puzzle. Whoever solves it first, gets to add their block to the chain.

      Food for thought: What if they solve it at the same time - or around the same time? That’s how a ‘fork’ can occur. And the bitcoin protocol resolves these occurrences as well. More on that later

      Using Proof Of Stake (PoS) for Picking Blocks

      Proof Of Stake involves Bob and Joe putting up their coins into a “jar”.  A coin is randomly picked from the jar. If it belongs to Bob, Bob gets to add his block. If it belongs to Joe, Joe gets to add his block instead.

      Once the block is added, the process repeats. Both miners will listen to the network for pending transactions and create a new block. The competition goes on and on.

      (Don’t worry, miners aren’t trying to solve the PoW puzzles themselves. Their computers are doing most of the work) 😉

      Wrapping Up - Blockchain Validators vs Miners

      As you can see, Consensus methods are primarily concerned with coming to an agreement on the ordering of events/transactions (and who gets to add them). Validation of the transactions is initially handled by the miner before they are added to the block.  And then once more by the rest of the Blockchain Validators when a block winner is picked. The miners add the block, and the Blockchain Validators verify that the block is valid. If Consensus is reached, then the network successfully moves on to the next block. (More on that in future posts)

      Get my upcoming eBook for Free!

      "The Mango Guide TO Understanding Blockchain"

      Offer Valid For FIRST 500 registrations only

      No menu items have been found.
      Continue reading >
      Share
      >