Author

Topic: Is block-chain 100% secure (Read 343 times)

newbie
Activity: 20
Merit: 0
February 19, 2019, 11:33:39 AM
#17
Long story short no it id not 100% secure. The threat of a 51% attack is very real and can cost very little on someone of the smaller chains. Als9o Quanttum computer could through a huge spanner in the works.
legendary
Activity: 3584
Merit: 5243
https://merel.mobi => buy facemasks with BTC/LTC
February 18, 2019, 02:54:34 AM
#16
@mr3dds: no worries, i never implied anybody in this thread was stupid... It's actually a pretty good question, and i realise it's really hard to understand these numbers, even for a sharp mind.
member
Activity: 173
Merit: 12
February 18, 2019, 02:46:41 AM
#15
Thanks, mocacino. You wrote great words.

Now, I understood a lot how difficult it is to manipulate a blockchain. Thank you, guys. Smiley

About fingerprints, you are absolutely right. I am a veterinarian and studied it too. But, I meant from the perspective of math and algorithm. If we have a big database of DNA and fingerprint, someone might come with a working algorithm to deduct them from each other.

However, real fingerprints might contain some sweat which can be used by forensics to get a DNA. I know this is irrelevant, sorry about it. But, my don't-appear-stupid-syndrome forced me to write it  Smiley

Again thanks a lot my friends.
legendary
Activity: 3584
Merit: 5243
https://merel.mobi => buy facemasks with BTC/LTC
February 18, 2019, 02:07:58 AM
#14
~snip~
About the fingerprint, we can't construct a person from his fingerprint because we still don't know how. If we could figure out someone's DNA from his fingerprint, we theoretically can construct him.
~snip~

I'm sorry to say, but that's not how biology works... AFAIK, your fingerprint is only partially influenced by your genetic markup. There are several genes that form the basic structure of your fingerprint, these genes also include the genes that determine the muscles, tendons, fatty tissue, bones,... of your fingers. The rest of your fingerprint is formed and influenced by in utero conditions (basically, the environment of the uterus while the embryo is growing).

This is also why identical twins don't have identical fingerprints.

In the very far future, one can theoretically assume that studying somebody's fingerprint might give you odds about the sequence of a very, very, very small part of the human genome... But it'll be more like:
There is a 20% chance that 7q14 is AGTAATCACTAATTAACGGTGAGGGTTTTAAGACGGATCTTTGCAAATTC
There is a 20% chance that 7q14 is AGCAAGCACTAATTAACGGTGAGGGTTTTAAGACGGATCTTTGCAAATTC
There is a 15% chance that 7q14 is AGAAAACACTAATTAACGGTGAGGGTTTTAAGACGGATCTTTGCAAATTC
...

But you'd still know nothing about 99,99% of the sequence because this sequence is codes proteins that have no influence on the fingerprint whatsoever

But saying that in the future we might be able to deduct somebody's genome by looking at his fingerprint is like saying we'll be able to construct the building plans of a house by looking at a random brick we found.

Disclaimer: I studied this stuff in college, which was 20 years ago... Things might have changed since then, and exept for random code generator everything else came from memory... It can be a little off.

Now, back on topic, the big problem with this thread is that human minds are not capable of understanding these big numbers... We see something like "the odds of a collision of a certain hash is 1 in 2^255", and we think: "well, with those odds, a collision is bound to happen sooner or later", but we don't realise the sheer size of this number. In reality, i'd say that altough one can calculate the odds of a collision, for all practical use you'd still be able to say the odds are practically 0.

In order to make such an attack work, you'd have to:
  • Find a certain blockheight you want to manipulate
  • Change the transactions in the block
  • Generate a new block header, keep everything the same but different merkle root and nonce
  • Start iterating trough the nonces and periodically chance some transaction data to create a new merkle root
  • For each iteration, create the sha256d hash of this new header untill you find a combination whose hash is EXACTLY the same as the hash of the existing block (finding a hash that's simply under the target at that time wouldn't suffice, since the next block header included the hash of the block you're manipulating, so if the hash isn't exactly the same, the next block would simply be invalid in your chain

This is much harder than just standard brute-forcing.

And EVEN if you found a new header that, by some magic devine intervention had exactly the same hash as the existing block, how would you succeed in getting other nodes to accept your new block? You would be the only node with an alternative version, and your version would alter the utxo set... If you wanted this to work, your best chance would probably be to "change" one of the first of satoshi's blocks that did only contain the coinbase transaction AND where the output of the coinbase transaction was never spent (that way only one entry in the node's utxo set would dissapear, and a new one would pop up). If you "hacked" a block containing actual p2p transactions, you'd effectively destroy unspent outputs that were later used in other blocks, voiding a large part of the blockchain, which wouldn't work because of the checkpoints...
member
Activity: 173
Merit: 12
February 17, 2019, 07:09:14 AM
#13
I want to add one final point. If I say the probability of some it 10^-60, this doesn't mean that probability is the last one to happen. If I have a 10% chance to win something, this doesn't mean I will win in the tenth trial. So this 10^-60 or more probability doesn't mean that collision in the 10^60 block. It might happen earlier.


While that is true, here is one way to think about it. The probability of you and everyone you care about dying this year is many times higher than the probability of a collision. So, which is the more important problem?


One more question, is it possible to reconstruct a block-chain from the last block only? If I used the last block hash code and did a reverse hashing, this is supposed to give me the data of the previous block. Then I use the previous block code to reverse hash an earlier block data, and so on.

No. A hash is like a fingerprint. You cannot construct a person from a fingerprint. With a hash, you can identify a block and validate it's authenticity, but you cannot reconstruct it. That is a basic feature of a hash -- it's a "one-way" function.


I liked your reply a lot.

My death with my loved ones is not a major incidence and it is more likely than the collision. However, a collision in Ethereum which is almost impossible would be devastating. The world now is moving toward block-chain in my opinion. And the increase of its uses and numbers will make this almost impossible almost probable.

Right now, there are some things that need improvement, like block-chain disk space, decentralization, transactions per second.

I read that Tron can handle 2000 transactions per second which are more than Visa. So, transactions will be solved soon.

Disk space will be a big problem. So, a lot of thoughts about sharding is being born now which will affect the decentralization.

These issues made me think about block-chain true value and usability. As it is now is not scalable at all and will end like any other centralized organization.

About the fingerprint, we can't construct a person from his fingerprint because we still don't know how. If we could figure out someone's DNA from his fingerprint, we theoretically can construct him. But, digitally, if we could make block-chain two ways, it would make the blockchain really decentralized, because we won't need to store all the blocks.

Thanks, odolvlobo
hero member
Activity: 896
Merit: 520
February 16, 2019, 01:51:15 AM
#12
Let me start by stating that there is hardly anything in the world that is 100percent secured.
And about the hash code there can't be two similar hash code

Indeed this is most secured than anything if you handle it in right way. Blockchain have  blockchain transaction logs or list. Since they are not found halfway, blockchain squares don't have a solitary purpose of disappointment and can not be changed from one PC. These are decentralized and divided registers between distributed systems that are persistently refreshed and kept up in a state of harmony.

SHA256 algorithms is the secured and oldest one but the recent day you can find many secured algorithms and fast transaction blockchain also in the various cryptos.
member
Activity: 672
Merit: 29
February 16, 2019, 01:38:19 AM
#11
Let me start by stating that there is hardly anything in the world that is 100percent secured.
And about the hash code there can't be two similar hash code
legendary
Activity: 4466
Merit: 3391
February 15, 2019, 08:55:05 PM
#10
I want to add one final point. If I say the probability of some it 10^-60, this doesn't mean that probability is the last one to happen. If I have a 10% chance to win something, this doesn't mean I will win in the tenth trial. So this 10^-60 or more probability doesn't mean that collision in the 10^60 block. It might happen earlier.


While that is true, here is one way to think about it. The probability of you and everyone you care about dying this year is many times higher than the probability of a collision. So, which is the more important problem?


One more question, is it possible to reconstruct a block-chain from the last block only? If I used the last block hash code and did a reverse hashing, this is supposed to give me the data of the previous block. Then I use the previous block code to reverse hash an earlier block data, and so on.

No. A hash is like a fingerprint. You cannot construct a person from a fingerprint. With a hash, you can identify a block and validate it's authenticity, but you cannot reconstruct it. That is a basic feature of a hash -- it's a "one-way" function.
legendary
Activity: 2030
Merit: 1569
CLEAN non GPL infringing code made in Rust lang
February 15, 2019, 08:53:52 PM
#9
I am sorry for the font. I find it a little difficult to read the default font. But since most of you dislike it I won't enlarge it again.
Almost all browsers allow you to "zoom in", maybe press ctrl + or press control and move the mouse wheel. This would enlarge all the fonts on the site you are visiting, without affecting what others see.

is it possible to reconstruct a block-chain from the last block only? If I used the last block hash code and did a reverse hashing, this is supposed to give me the data of the previous block.
No, you cannot reconstruct the blockchain from the last block, it goes in one direction only.
member
Activity: 173
Merit: 12
February 15, 2019, 06:19:47 PM
#8
I am sorry for the font. I find it a little difficult to read the default font. But since most of you dislike it I won't enlarge it again.

Thanks for your responses.

I want to add one final point. If I say the probability of some it 10^-60, this doesn't mean that probability is the last one to happen. If I have a 10% chance to win something, this doesn't mean I will win in the tenth trial. So this 10^-60 or more probability doesn't mean that collision in the 10^60 block. It might happen earlier.

Now, I understand it is almost impossible. But for the sake of argument. If "biggest if" a collision happened in any block-chain, would it wreck it?

One more question, is it possible to reconstruct a block-chain from the last block only? If I used the last block hash code and did a reverse hashing, this is supposed to give me the data of the previous block. Then I use the previous block code to reverse hash an earlier block data, and so on.

and if I can do that, why do we need to store the whole block-chain with its immense disk space. Isn't the last block enough to reconstruct the whole block-chain. "talking specifically about block-chains without smart contracts, payment only block-chain"

I think smart contracts block-chains' blocks must be online all the time for Dapps to work. But, if this blockchain is for payment only, would storing the last block only be enough?
legendary
Activity: 1638
Merit: 1042
February 15, 2019, 04:54:57 AM
#7
Just a quick suggestion on your posting style, stop using a big font size. It makes your post harder to read and I'd personally skip or ignore you if you keep doing that. Just write it as usual, like when you report your social media bounty reports.

without going into the details on the topic. since there is never 100% certainty (except for death) i would say no to the title. there is no 100% security.
and with the font size I agree. please leave with the standard Wink
legendary
Activity: 3472
Merit: 10611
February 14, 2019, 11:36:37 PM
#6
it depends on two things.
1. what you hash.
2. what hash function you use.

blockchain isn't secure on its own. depending on how it is implemented it can be secure or it can contain exploits. the bitcoin you see today is "battle hardened" but it was not always like this. what you are saying here reminds me of BIP30 where you could exploit things and create a duplicate coinbase and duplicate transactions. it was back in 2011 if i am not mistaken. now we are including the block height and that simply prevents the problem.
and SHA256 as it was mentioned is a good hash function with virtually no chance of collision.

ps. use 'Ctrl' and '+' keys on your keyboard to zoom in instead of increasing the font size!
legendary
Activity: 2170
Merit: 1789
February 14, 2019, 11:32:27 PM
#5
Just a quick suggestion on your posting style, stop using a big font size. It makes your post harder to read and I'd personally skip or ignore you if you keep doing that. Just write it as usual, like when you report your social media bounty reports.
legendary
Activity: 2352
Merit: 6089
bitcoindata.science
February 14, 2019, 12:29:50 PM
#4
Well, it might be a very little chance. But, this "almost" is a problem. Block-chains are getting bigger and after years this "almost impossible" might be "almost probable"

Am I wrong in this assumption?

Thanks for the link.

It's impossible in practical terms. There are billions/trillions of possibilities and a chance of collision is very small.

Take a look at this graphic where you will understand how big are the possibilities

member
Activity: 173
Merit: 12
February 14, 2019, 07:18:25 AM
#3
Here's the part where you mess up/get confused
~snip~
There is a big chance of getting the same output from different inputs.
~snip~

The output of a sha256 hash function is 256 bits. The odds of a sha256 hash collusion are astronomically small. You'd have to find a merkle root hash (so a complete merkle tree), timestamp, and nonce for which the sha256d hash is equal to the sha256d hash of the original block... That's allmost impossible.


Well, it might be a very little chance. But, this "almost" is a problem. Block-chains are getting bigger and after years this "almost impossible" might be "almost probable"

Am I wrong in this assumption?

Thanks for the link. 
legendary
Activity: 3584
Merit: 5243
https://merel.mobi => buy facemasks with BTC/LTC
February 14, 2019, 07:10:57 AM
#2
Here's the part where you mess up/get confused
~snip~
There is a big chance of getting the same output from different inputs.
~snip~

The output of a sha256 hash function is 256 bits. The odds of a sha256 hash collusion are astronomically small. You'd have to find a merkle root hash (so a complete merkle tree), timestamp, and nonce for which the sha256d hash is equal to the sha256d hash of the original block... That's allmost impossible.

I've googled around, and found this example:


source: https://stackoverflow.com/questions/4014090/is-it-safe-to-ignore-the-possibility-of-sha-collisions-in-practice
Quote
For instance, with SHA-256 (n=256) and one billion messages (p=109) then the probability is about 4.3*10-60.

A mass-murderer space rock happens about once every 30 million years on average. This leads to a probability of such an event occurring in the next second to about 10-15. That's 45 orders of magnitude more probable than the SHA-256 collision. Briefly stated, if you find SHA-256 collisions scary then your priorities are wrong.
source: https://stackoverflow.com/questions/4014090/is-it-safe-to-ignore-the-possibility-of-sha-collisions-in-practice
member
Activity: 173
Merit: 12
February 14, 2019, 07:04:15 AM
#1
Since the beginning of this crypto-story, I always have something that I can't understand. So, I searched a lot and tried my best to understand how it is working. However, I still have a lot of things that I can't understand.

SO, let's start with what -I think- I understand.

The chain starts with the genesis block which will give a start hash code for the second block. Then we interact with the block-chain and these interactions are stored in this block as data. Then the block gives another hash code as an output for the data in the block as an input according to the hashing algorithm used.

So, each block has the code of the previous block and a new one as its signature. So, if anyone wanted to change an early block, he has to change all blocks after this early block and that is impossible. But, if he could control more than half of the block-chain he can make these changes.

Now, my problem.

For all of this to work and be 100% secure. The hashing output must be unique. If two blocks gave the same hash code as an output, that would be a big problem and that could make the chain hackable.

Now, is it possible that two blocks give the same hashing output? Well, if I am entering a 1000 letters as an input and the output is fixed 64 or 256 letters, then there is no way for the output to be unique. There is a big chance of getting the same output from different inputs.

We can avoid this by numbering the blocks. I mean adding the #1 for the first block and #2 for the second and so on. Would that solve the issue? Is that what's happening in block-chain.

That's not all. If numbering solves the issue. Is it possible to figure out inputs that will give the same output? let's say I will take an output of a block and try to find its possible inputs. Is this possible? If it is possible, then destroying a block-chain is very easy.

I tried to search for this issue. I found that it depends on the hashing algorithm and engineers are always making new better algorithms. And that stuff is far from my IQ. But to be 100% secure, you must use a collision-free algorithm which I didn't find. "collision is getting the same output from different inputs"

So, my question. Are the algorithms used block-chain collision free? If it isn't, can someone do a reverse hashing for output and get possible inputs and inject this different input instead of the original input deceive the block-chain?

Thanks, and sorry for my English

Jump to: