The BGP - Byzantine Generals Problem

BGP is a problem in distributed computing, essentially, it’s a consensus/communication problem. How do you get to a consensus with no central trusted authority (where each participant has an equal voice) over a trustless channel (i.e. a channel that might lose or get information compromised)?

Problem Description

A group of generals wish to attack the king’s computer, they know the password length and they can only crack it if they combine forces and attack at the exact same time. Their combined CPU power is larger than the king’s. The generals need to come to a consensus on the attack time.

Difficulties

  1. They need to get to a consensus with no central authority.

  2. They need to be certain that their combined CPU power is enough to crack the password.

Getting to a consensus

In order to get to a consensus the generals decided on a PoW algorithm:

  • Each general works on a solution to a per-determined riddle that requires CPU work.

  • The first general to find the solution puts it in a block and broadcast it to all other generals together with the suggested attack time and the parent block unique ID.

  • Generals that got the solution check that it’s correct, store it and broadcast it to all the generals.

  • Once getting a valid block - If less than 2 hours passed.

    • Back to A.
  • Else If more than 2 hours passed

    • Check length of chain to determine whether CPU power is enough.

    • Take the time that is in the last message or the time that was most popular or the time that is X blocks back – it doesn’t matter in this case.

In this way you create a sort of backward-linked list, where each message is in a block and it is linked to a single parent all the way back to the first block (Genesis).

The generals can now check whether they can attack (have enough CPU power) and attack at the exact same time.

Bitcoin never solved the BGP, using the blockchain it turned the trustless channel to a trustful channel and using the PoW made it unattractive financially to cheat. As result, critics will say that Bitcoin is not a viable solution, but it’s a probabilistic real-world solution.

I hope it was clear and made sense. I write these to learn and understand blockchain tech better.
I enjoy learning about blockchain tech, even the 'old' stuff.
If you have any more interesting material please share it with me.

Love and kisses :)

Sort:  

Congratulations @jasminekibbutz! You have received a personal award!

1 Year on Steemit
Click on the badge to view your Board of Honor.

Do not miss the last post from @steemitboard!


Participate in the SteemitBoard World Cup Contest!
Collect World Cup badges and win free SBD
Support the Gold Sponsors of the contest: @good-karma and @lukestokes


Do you like SteemitBoard's project? Then Vote for its witness and get one more award!

Congratulations @jasminekibbutz! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!