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
They need to get to a consensus with no central authority.
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 :)
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
Congratulations @jasminekibbutz! You received a personal award!
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!