How can you verify that a blockchain/DLT has not been tampered with?












0















I understand how a distributed ledger ensures integrity using a chained linked-list data model whereby each block is chained to all its previous ones.


I also understand how in a PoW/PoS/PoET/(insert any trustless consensus mechanism here) context, the verification process makes it difficult for a malicious (or a group of) individual to tamper with a block because they would not have the necessary resources to broadcast an instance of the ledger to all network members so that they update their version to a wrong one.


My question is, if let's say some one does manage to change a block, does an integrity checking process ever happen? Is it an actual part of the verification mechanism and if so, how far in history does it go?
Is it ever necessary to verify the integrity of i.e. block number 500 out of a total of 10000 and if so, how do I do that? Do I need to start from block 10000 and verify all blocks from there until block 500?










share|improve this question





























    0















    I understand how a distributed ledger ensures integrity using a chained linked-list data model whereby each block is chained to all its previous ones.


    I also understand how in a PoW/PoS/PoET/(insert any trustless consensus mechanism here) context, the verification process makes it difficult for a malicious (or a group of) individual to tamper with a block because they would not have the necessary resources to broadcast an instance of the ledger to all network members so that they update their version to a wrong one.


    My question is, if let's say some one does manage to change a block, does an integrity checking process ever happen? Is it an actual part of the verification mechanism and if so, how far in history does it go?
    Is it ever necessary to verify the integrity of i.e. block number 500 out of a total of 10000 and if so, how do I do that? Do I need to start from block 10000 and verify all blocks from there until block 500?










    share|improve this question



























      0












      0








      0








      I understand how a distributed ledger ensures integrity using a chained linked-list data model whereby each block is chained to all its previous ones.


      I also understand how in a PoW/PoS/PoET/(insert any trustless consensus mechanism here) context, the verification process makes it difficult for a malicious (or a group of) individual to tamper with a block because they would not have the necessary resources to broadcast an instance of the ledger to all network members so that they update their version to a wrong one.


      My question is, if let's say some one does manage to change a block, does an integrity checking process ever happen? Is it an actual part of the verification mechanism and if so, how far in history does it go?
      Is it ever necessary to verify the integrity of i.e. block number 500 out of a total of 10000 and if so, how do I do that? Do I need to start from block 10000 and verify all blocks from there until block 500?










      share|improve this question
















      I understand how a distributed ledger ensures integrity using a chained linked-list data model whereby each block is chained to all its previous ones.


      I also understand how in a PoW/PoS/PoET/(insert any trustless consensus mechanism here) context, the verification process makes it difficult for a malicious (or a group of) individual to tamper with a block because they would not have the necessary resources to broadcast an instance of the ledger to all network members so that they update their version to a wrong one.


      My question is, if let's say some one does manage to change a block, does an integrity checking process ever happen? Is it an actual part of the verification mechanism and if so, how far in history does it go?
      Is it ever necessary to verify the integrity of i.e. block number 500 out of a total of 10000 and if so, how do I do that? Do I need to start from block 10000 and verify all blocks from there until block 500?







      hyperledger blockchain ethereum bitcoin






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 14 '18 at 18:57







      jonna_983

















      asked Nov 14 '18 at 17:58









      jonna_983jonna_983

      183




      183
























          3 Answers
          3






          active

          oldest

          votes


















          0















          My question is, if let's say some one does manage to change a block, does an integrity checking process ever happen?




          Change the block where? If you mean change my copy of the block in my computer, how would they do that? By breaking into my computer? And how would that affect anyone else?




          Is it an actual part of the verification mechanism and if so, how far in history does it go? Is it ever necessary to verify the integrity of i.e. block number 500 out of a total of 10000 and if so, how do I do that? Do I need to start from block 10000 and verify all blocks from there until block 500?




          The usual rule for most blockchains is that every full node checks every single block it ever receives to ensure that it follows every single system rule for validity.



          While you could re-check every block you already checked to ensure that your particular copy hasn't been tampered with, this generally serves no purpose. Someone who could tamper with your local block storage could also tamper with your local checking code. So this kind of check doesn't usually provide any additional security.






          share|improve this answer
























          • So basically, if there is a very small number of full nodes in a blockchain network (for example, 2-3 validator nodes in a Ripple network) the only case where the integrity could be compromised is if all of those nodes were hacked, the hacker changed a portion of the blockchain that they wanted and then re-computed the hashes for the subsequent blocks until the end of the chain. I am trying to scope a case where integrity could, in theory, be compromised.

            – jonna_983
            Nov 15 '18 at 14:57













          • @jonna_983 In a system based on distributed agreement like the XRP Ledger, honest nodes could still detect this. If the attacker does not produce duplicate validations, then he cannot convince honest nodes that his history is correct. If he does produce duplicate validations, any honest node can show other nodes the old validations and demonstrate that the validator has been hacked. He cannot change the validations for past ledgers that the validators have already sent without the conflict being easily detected.

            – David Schwartz
            Nov 15 '18 at 16:18











          • @jonna_983 One of the biggest advantages of distributed agreement algorithms over proof of work is that it's not particularly difficult to defend against these kinds of attacks. Once a validator signs and transmits a validation, it cannot prevent any honest node from passing that validation to any other honest node, proving its past commitment. Distributed agreement algorithms have gotten stronger and stronger while PoW has stagnated, remaining expensive and vulnerable to majority attacks.

            – David Schwartz
            Nov 15 '18 at 16:20













          • "any honest node can show other nodes the old validations and demonstrate that the validator has been hacked" so this requires that honest nodes do check whether a validation has been issued in the past, otherwise they wouldn't be able to detect a duplicate validation.

            – jonna_983
            Nov 16 '18 at 8:55













          • @jonna_983 Sort of. It requires the honest nodes to have the capability to check past validations should they encounter a situation where that seems necessary. For example, directly-connected nodes can share their current tip hash. If they conflict, they could exchange information to see who is "wrong" and, in the process, might discover treachery. But they don't have to be actively searching for this type of treachery in the absence of evidence. As I said, there's huge innovation going on in this space. It's not stagnant.

            – David Schwartz
            Nov 17 '18 at 19:17



















          0














          To begin with, tampering with a block is not made almost-impossible because of resource shortage for broadcasting the wrong ledger to all nodes. Broadcasting is not necessarily resource intensive. It is a chain-reaction which you only have to trigger. The challenge with tampering a block-chained block arises from the difficulty of recomputing the valid hashes (meeting the block difficulty level) of all the successive blocks (the blocks that come after the one being tampered). Because altering a block alters its hash, which in turn changes the previous hash attribute of the next block, hence invalidating its previously correct hash, and so on till the latest block. If say the latest block index is 1000. And if you tamper the 990th block. This implies that you would have to re-mine (recalculate a valid hash by randomly changing the nonce value) blocks from 990 - 1000. That in itself is very difficult to do. But say somehow you manged to do that, but by the time you broadcast your updated blockchain, there would have been other blocks (of index say 1001, 1002) mined by other miners. So yours won't be the longest valid blockchain,and therefore would be rejected.






          share|improve this answer
























          • Alright, apologies for the confusion caused by my wording. I understand the difficulty of maliciously tampering with a block in history. So, with regards to the integrity checking, do you mean that it is practically unnecessary to run an integrity check of the blockchain? What if it is a private blockchain where there is no global consensus and there are only a few or just one validator?

            – jonna_983
            Nov 15 '18 at 10:08













          • @jonna_983 If there is no central authority you are willing to rely on to ensure the integrity of the blockchain, you have to verify it yourself. Most systems give you both options and refer to nodes that perform all the verifications as "full nodes".

            – David Schwartz
            Nov 15 '18 at 19:40



















          0














          According to this article, when a new block is broadcasted to the network, the integrity of its transaction is validated and verified against the history of transactions. The trouble with integrity check arises only if a malicious longer block-chain is broadcasted to the network. In this case, the protocol forces the nodes to accept this longest chain. Note that, this longest chain maintains its own integrity and is verified of its own. But it is verified against its own version of truth. Mind you though, this can only be possible if the attacker has a hashing power that is at least 51% of the network's hashing power. And this kind of power is assumed practically impossible. https://medium.com/coinmonks/what-is-a-51-attack-or-double-spend-attack-aa108db63474






          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53306224%2fhow-can-you-verify-that-a-blockchain-dlt-has-not-been-tampered-with%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            3 Answers
            3






            active

            oldest

            votes








            3 Answers
            3






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0















            My question is, if let's say some one does manage to change a block, does an integrity checking process ever happen?




            Change the block where? If you mean change my copy of the block in my computer, how would they do that? By breaking into my computer? And how would that affect anyone else?




            Is it an actual part of the verification mechanism and if so, how far in history does it go? Is it ever necessary to verify the integrity of i.e. block number 500 out of a total of 10000 and if so, how do I do that? Do I need to start from block 10000 and verify all blocks from there until block 500?




            The usual rule for most blockchains is that every full node checks every single block it ever receives to ensure that it follows every single system rule for validity.



            While you could re-check every block you already checked to ensure that your particular copy hasn't been tampered with, this generally serves no purpose. Someone who could tamper with your local block storage could also tamper with your local checking code. So this kind of check doesn't usually provide any additional security.






            share|improve this answer
























            • So basically, if there is a very small number of full nodes in a blockchain network (for example, 2-3 validator nodes in a Ripple network) the only case where the integrity could be compromised is if all of those nodes were hacked, the hacker changed a portion of the blockchain that they wanted and then re-computed the hashes for the subsequent blocks until the end of the chain. I am trying to scope a case where integrity could, in theory, be compromised.

              – jonna_983
              Nov 15 '18 at 14:57













            • @jonna_983 In a system based on distributed agreement like the XRP Ledger, honest nodes could still detect this. If the attacker does not produce duplicate validations, then he cannot convince honest nodes that his history is correct. If he does produce duplicate validations, any honest node can show other nodes the old validations and demonstrate that the validator has been hacked. He cannot change the validations for past ledgers that the validators have already sent without the conflict being easily detected.

              – David Schwartz
              Nov 15 '18 at 16:18











            • @jonna_983 One of the biggest advantages of distributed agreement algorithms over proof of work is that it's not particularly difficult to defend against these kinds of attacks. Once a validator signs and transmits a validation, it cannot prevent any honest node from passing that validation to any other honest node, proving its past commitment. Distributed agreement algorithms have gotten stronger and stronger while PoW has stagnated, remaining expensive and vulnerable to majority attacks.

              – David Schwartz
              Nov 15 '18 at 16:20













            • "any honest node can show other nodes the old validations and demonstrate that the validator has been hacked" so this requires that honest nodes do check whether a validation has been issued in the past, otherwise they wouldn't be able to detect a duplicate validation.

              – jonna_983
              Nov 16 '18 at 8:55













            • @jonna_983 Sort of. It requires the honest nodes to have the capability to check past validations should they encounter a situation where that seems necessary. For example, directly-connected nodes can share their current tip hash. If they conflict, they could exchange information to see who is "wrong" and, in the process, might discover treachery. But they don't have to be actively searching for this type of treachery in the absence of evidence. As I said, there's huge innovation going on in this space. It's not stagnant.

              – David Schwartz
              Nov 17 '18 at 19:17
















            0















            My question is, if let's say some one does manage to change a block, does an integrity checking process ever happen?




            Change the block where? If you mean change my copy of the block in my computer, how would they do that? By breaking into my computer? And how would that affect anyone else?




            Is it an actual part of the verification mechanism and if so, how far in history does it go? Is it ever necessary to verify the integrity of i.e. block number 500 out of a total of 10000 and if so, how do I do that? Do I need to start from block 10000 and verify all blocks from there until block 500?




            The usual rule for most blockchains is that every full node checks every single block it ever receives to ensure that it follows every single system rule for validity.



            While you could re-check every block you already checked to ensure that your particular copy hasn't been tampered with, this generally serves no purpose. Someone who could tamper with your local block storage could also tamper with your local checking code. So this kind of check doesn't usually provide any additional security.






            share|improve this answer
























            • So basically, if there is a very small number of full nodes in a blockchain network (for example, 2-3 validator nodes in a Ripple network) the only case where the integrity could be compromised is if all of those nodes were hacked, the hacker changed a portion of the blockchain that they wanted and then re-computed the hashes for the subsequent blocks until the end of the chain. I am trying to scope a case where integrity could, in theory, be compromised.

              – jonna_983
              Nov 15 '18 at 14:57













            • @jonna_983 In a system based on distributed agreement like the XRP Ledger, honest nodes could still detect this. If the attacker does not produce duplicate validations, then he cannot convince honest nodes that his history is correct. If he does produce duplicate validations, any honest node can show other nodes the old validations and demonstrate that the validator has been hacked. He cannot change the validations for past ledgers that the validators have already sent without the conflict being easily detected.

              – David Schwartz
              Nov 15 '18 at 16:18











            • @jonna_983 One of the biggest advantages of distributed agreement algorithms over proof of work is that it's not particularly difficult to defend against these kinds of attacks. Once a validator signs and transmits a validation, it cannot prevent any honest node from passing that validation to any other honest node, proving its past commitment. Distributed agreement algorithms have gotten stronger and stronger while PoW has stagnated, remaining expensive and vulnerable to majority attacks.

              – David Schwartz
              Nov 15 '18 at 16:20













            • "any honest node can show other nodes the old validations and demonstrate that the validator has been hacked" so this requires that honest nodes do check whether a validation has been issued in the past, otherwise they wouldn't be able to detect a duplicate validation.

              – jonna_983
              Nov 16 '18 at 8:55













            • @jonna_983 Sort of. It requires the honest nodes to have the capability to check past validations should they encounter a situation where that seems necessary. For example, directly-connected nodes can share their current tip hash. If they conflict, they could exchange information to see who is "wrong" and, in the process, might discover treachery. But they don't have to be actively searching for this type of treachery in the absence of evidence. As I said, there's huge innovation going on in this space. It's not stagnant.

              – David Schwartz
              Nov 17 '18 at 19:17














            0












            0








            0








            My question is, if let's say some one does manage to change a block, does an integrity checking process ever happen?




            Change the block where? If you mean change my copy of the block in my computer, how would they do that? By breaking into my computer? And how would that affect anyone else?




            Is it an actual part of the verification mechanism and if so, how far in history does it go? Is it ever necessary to verify the integrity of i.e. block number 500 out of a total of 10000 and if so, how do I do that? Do I need to start from block 10000 and verify all blocks from there until block 500?




            The usual rule for most blockchains is that every full node checks every single block it ever receives to ensure that it follows every single system rule for validity.



            While you could re-check every block you already checked to ensure that your particular copy hasn't been tampered with, this generally serves no purpose. Someone who could tamper with your local block storage could also tamper with your local checking code. So this kind of check doesn't usually provide any additional security.






            share|improve this answer














            My question is, if let's say some one does manage to change a block, does an integrity checking process ever happen?




            Change the block where? If you mean change my copy of the block in my computer, how would they do that? By breaking into my computer? And how would that affect anyone else?




            Is it an actual part of the verification mechanism and if so, how far in history does it go? Is it ever necessary to verify the integrity of i.e. block number 500 out of a total of 10000 and if so, how do I do that? Do I need to start from block 10000 and verify all blocks from there until block 500?




            The usual rule for most blockchains is that every full node checks every single block it ever receives to ensure that it follows every single system rule for validity.



            While you could re-check every block you already checked to ensure that your particular copy hasn't been tampered with, this generally serves no purpose. Someone who could tamper with your local block storage could also tamper with your local checking code. So this kind of check doesn't usually provide any additional security.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Nov 15 '18 at 14:08









            David SchwartzDavid Schwartz

            137k14144226




            137k14144226













            • So basically, if there is a very small number of full nodes in a blockchain network (for example, 2-3 validator nodes in a Ripple network) the only case where the integrity could be compromised is if all of those nodes were hacked, the hacker changed a portion of the blockchain that they wanted and then re-computed the hashes for the subsequent blocks until the end of the chain. I am trying to scope a case where integrity could, in theory, be compromised.

              – jonna_983
              Nov 15 '18 at 14:57













            • @jonna_983 In a system based on distributed agreement like the XRP Ledger, honest nodes could still detect this. If the attacker does not produce duplicate validations, then he cannot convince honest nodes that his history is correct. If he does produce duplicate validations, any honest node can show other nodes the old validations and demonstrate that the validator has been hacked. He cannot change the validations for past ledgers that the validators have already sent without the conflict being easily detected.

              – David Schwartz
              Nov 15 '18 at 16:18











            • @jonna_983 One of the biggest advantages of distributed agreement algorithms over proof of work is that it's not particularly difficult to defend against these kinds of attacks. Once a validator signs and transmits a validation, it cannot prevent any honest node from passing that validation to any other honest node, proving its past commitment. Distributed agreement algorithms have gotten stronger and stronger while PoW has stagnated, remaining expensive and vulnerable to majority attacks.

              – David Schwartz
              Nov 15 '18 at 16:20













            • "any honest node can show other nodes the old validations and demonstrate that the validator has been hacked" so this requires that honest nodes do check whether a validation has been issued in the past, otherwise they wouldn't be able to detect a duplicate validation.

              – jonna_983
              Nov 16 '18 at 8:55













            • @jonna_983 Sort of. It requires the honest nodes to have the capability to check past validations should they encounter a situation where that seems necessary. For example, directly-connected nodes can share their current tip hash. If they conflict, they could exchange information to see who is "wrong" and, in the process, might discover treachery. But they don't have to be actively searching for this type of treachery in the absence of evidence. As I said, there's huge innovation going on in this space. It's not stagnant.

              – David Schwartz
              Nov 17 '18 at 19:17



















            • So basically, if there is a very small number of full nodes in a blockchain network (for example, 2-3 validator nodes in a Ripple network) the only case where the integrity could be compromised is if all of those nodes were hacked, the hacker changed a portion of the blockchain that they wanted and then re-computed the hashes for the subsequent blocks until the end of the chain. I am trying to scope a case where integrity could, in theory, be compromised.

              – jonna_983
              Nov 15 '18 at 14:57













            • @jonna_983 In a system based on distributed agreement like the XRP Ledger, honest nodes could still detect this. If the attacker does not produce duplicate validations, then he cannot convince honest nodes that his history is correct. If he does produce duplicate validations, any honest node can show other nodes the old validations and demonstrate that the validator has been hacked. He cannot change the validations for past ledgers that the validators have already sent without the conflict being easily detected.

              – David Schwartz
              Nov 15 '18 at 16:18











            • @jonna_983 One of the biggest advantages of distributed agreement algorithms over proof of work is that it's not particularly difficult to defend against these kinds of attacks. Once a validator signs and transmits a validation, it cannot prevent any honest node from passing that validation to any other honest node, proving its past commitment. Distributed agreement algorithms have gotten stronger and stronger while PoW has stagnated, remaining expensive and vulnerable to majority attacks.

              – David Schwartz
              Nov 15 '18 at 16:20













            • "any honest node can show other nodes the old validations and demonstrate that the validator has been hacked" so this requires that honest nodes do check whether a validation has been issued in the past, otherwise they wouldn't be able to detect a duplicate validation.

              – jonna_983
              Nov 16 '18 at 8:55













            • @jonna_983 Sort of. It requires the honest nodes to have the capability to check past validations should they encounter a situation where that seems necessary. For example, directly-connected nodes can share their current tip hash. If they conflict, they could exchange information to see who is "wrong" and, in the process, might discover treachery. But they don't have to be actively searching for this type of treachery in the absence of evidence. As I said, there's huge innovation going on in this space. It's not stagnant.

              – David Schwartz
              Nov 17 '18 at 19:17

















            So basically, if there is a very small number of full nodes in a blockchain network (for example, 2-3 validator nodes in a Ripple network) the only case where the integrity could be compromised is if all of those nodes were hacked, the hacker changed a portion of the blockchain that they wanted and then re-computed the hashes for the subsequent blocks until the end of the chain. I am trying to scope a case where integrity could, in theory, be compromised.

            – jonna_983
            Nov 15 '18 at 14:57







            So basically, if there is a very small number of full nodes in a blockchain network (for example, 2-3 validator nodes in a Ripple network) the only case where the integrity could be compromised is if all of those nodes were hacked, the hacker changed a portion of the blockchain that they wanted and then re-computed the hashes for the subsequent blocks until the end of the chain. I am trying to scope a case where integrity could, in theory, be compromised.

            – jonna_983
            Nov 15 '18 at 14:57















            @jonna_983 In a system based on distributed agreement like the XRP Ledger, honest nodes could still detect this. If the attacker does not produce duplicate validations, then he cannot convince honest nodes that his history is correct. If he does produce duplicate validations, any honest node can show other nodes the old validations and demonstrate that the validator has been hacked. He cannot change the validations for past ledgers that the validators have already sent without the conflict being easily detected.

            – David Schwartz
            Nov 15 '18 at 16:18





            @jonna_983 In a system based on distributed agreement like the XRP Ledger, honest nodes could still detect this. If the attacker does not produce duplicate validations, then he cannot convince honest nodes that his history is correct. If he does produce duplicate validations, any honest node can show other nodes the old validations and demonstrate that the validator has been hacked. He cannot change the validations for past ledgers that the validators have already sent without the conflict being easily detected.

            – David Schwartz
            Nov 15 '18 at 16:18













            @jonna_983 One of the biggest advantages of distributed agreement algorithms over proof of work is that it's not particularly difficult to defend against these kinds of attacks. Once a validator signs and transmits a validation, it cannot prevent any honest node from passing that validation to any other honest node, proving its past commitment. Distributed agreement algorithms have gotten stronger and stronger while PoW has stagnated, remaining expensive and vulnerable to majority attacks.

            – David Schwartz
            Nov 15 '18 at 16:20







            @jonna_983 One of the biggest advantages of distributed agreement algorithms over proof of work is that it's not particularly difficult to defend against these kinds of attacks. Once a validator signs and transmits a validation, it cannot prevent any honest node from passing that validation to any other honest node, proving its past commitment. Distributed agreement algorithms have gotten stronger and stronger while PoW has stagnated, remaining expensive and vulnerable to majority attacks.

            – David Schwartz
            Nov 15 '18 at 16:20















            "any honest node can show other nodes the old validations and demonstrate that the validator has been hacked" so this requires that honest nodes do check whether a validation has been issued in the past, otherwise they wouldn't be able to detect a duplicate validation.

            – jonna_983
            Nov 16 '18 at 8:55







            "any honest node can show other nodes the old validations and demonstrate that the validator has been hacked" so this requires that honest nodes do check whether a validation has been issued in the past, otherwise they wouldn't be able to detect a duplicate validation.

            – jonna_983
            Nov 16 '18 at 8:55















            @jonna_983 Sort of. It requires the honest nodes to have the capability to check past validations should they encounter a situation where that seems necessary. For example, directly-connected nodes can share their current tip hash. If they conflict, they could exchange information to see who is "wrong" and, in the process, might discover treachery. But they don't have to be actively searching for this type of treachery in the absence of evidence. As I said, there's huge innovation going on in this space. It's not stagnant.

            – David Schwartz
            Nov 17 '18 at 19:17





            @jonna_983 Sort of. It requires the honest nodes to have the capability to check past validations should they encounter a situation where that seems necessary. For example, directly-connected nodes can share their current tip hash. If they conflict, they could exchange information to see who is "wrong" and, in the process, might discover treachery. But they don't have to be actively searching for this type of treachery in the absence of evidence. As I said, there's huge innovation going on in this space. It's not stagnant.

            – David Schwartz
            Nov 17 '18 at 19:17













            0














            To begin with, tampering with a block is not made almost-impossible because of resource shortage for broadcasting the wrong ledger to all nodes. Broadcasting is not necessarily resource intensive. It is a chain-reaction which you only have to trigger. The challenge with tampering a block-chained block arises from the difficulty of recomputing the valid hashes (meeting the block difficulty level) of all the successive blocks (the blocks that come after the one being tampered). Because altering a block alters its hash, which in turn changes the previous hash attribute of the next block, hence invalidating its previously correct hash, and so on till the latest block. If say the latest block index is 1000. And if you tamper the 990th block. This implies that you would have to re-mine (recalculate a valid hash by randomly changing the nonce value) blocks from 990 - 1000. That in itself is very difficult to do. But say somehow you manged to do that, but by the time you broadcast your updated blockchain, there would have been other blocks (of index say 1001, 1002) mined by other miners. So yours won't be the longest valid blockchain,and therefore would be rejected.






            share|improve this answer
























            • Alright, apologies for the confusion caused by my wording. I understand the difficulty of maliciously tampering with a block in history. So, with regards to the integrity checking, do you mean that it is practically unnecessary to run an integrity check of the blockchain? What if it is a private blockchain where there is no global consensus and there are only a few or just one validator?

              – jonna_983
              Nov 15 '18 at 10:08













            • @jonna_983 If there is no central authority you are willing to rely on to ensure the integrity of the blockchain, you have to verify it yourself. Most systems give you both options and refer to nodes that perform all the verifications as "full nodes".

              – David Schwartz
              Nov 15 '18 at 19:40
















            0














            To begin with, tampering with a block is not made almost-impossible because of resource shortage for broadcasting the wrong ledger to all nodes. Broadcasting is not necessarily resource intensive. It is a chain-reaction which you only have to trigger. The challenge with tampering a block-chained block arises from the difficulty of recomputing the valid hashes (meeting the block difficulty level) of all the successive blocks (the blocks that come after the one being tampered). Because altering a block alters its hash, which in turn changes the previous hash attribute of the next block, hence invalidating its previously correct hash, and so on till the latest block. If say the latest block index is 1000. And if you tamper the 990th block. This implies that you would have to re-mine (recalculate a valid hash by randomly changing the nonce value) blocks from 990 - 1000. That in itself is very difficult to do. But say somehow you manged to do that, but by the time you broadcast your updated blockchain, there would have been other blocks (of index say 1001, 1002) mined by other miners. So yours won't be the longest valid blockchain,and therefore would be rejected.






            share|improve this answer
























            • Alright, apologies for the confusion caused by my wording. I understand the difficulty of maliciously tampering with a block in history. So, with regards to the integrity checking, do you mean that it is practically unnecessary to run an integrity check of the blockchain? What if it is a private blockchain where there is no global consensus and there are only a few or just one validator?

              – jonna_983
              Nov 15 '18 at 10:08













            • @jonna_983 If there is no central authority you are willing to rely on to ensure the integrity of the blockchain, you have to verify it yourself. Most systems give you both options and refer to nodes that perform all the verifications as "full nodes".

              – David Schwartz
              Nov 15 '18 at 19:40














            0












            0








            0







            To begin with, tampering with a block is not made almost-impossible because of resource shortage for broadcasting the wrong ledger to all nodes. Broadcasting is not necessarily resource intensive. It is a chain-reaction which you only have to trigger. The challenge with tampering a block-chained block arises from the difficulty of recomputing the valid hashes (meeting the block difficulty level) of all the successive blocks (the blocks that come after the one being tampered). Because altering a block alters its hash, which in turn changes the previous hash attribute of the next block, hence invalidating its previously correct hash, and so on till the latest block. If say the latest block index is 1000. And if you tamper the 990th block. This implies that you would have to re-mine (recalculate a valid hash by randomly changing the nonce value) blocks from 990 - 1000. That in itself is very difficult to do. But say somehow you manged to do that, but by the time you broadcast your updated blockchain, there would have been other blocks (of index say 1001, 1002) mined by other miners. So yours won't be the longest valid blockchain,and therefore would be rejected.






            share|improve this answer













            To begin with, tampering with a block is not made almost-impossible because of resource shortage for broadcasting the wrong ledger to all nodes. Broadcasting is not necessarily resource intensive. It is a chain-reaction which you only have to trigger. The challenge with tampering a block-chained block arises from the difficulty of recomputing the valid hashes (meeting the block difficulty level) of all the successive blocks (the blocks that come after the one being tampered). Because altering a block alters its hash, which in turn changes the previous hash attribute of the next block, hence invalidating its previously correct hash, and so on till the latest block. If say the latest block index is 1000. And if you tamper the 990th block. This implies that you would have to re-mine (recalculate a valid hash by randomly changing the nonce value) blocks from 990 - 1000. That in itself is very difficult to do. But say somehow you manged to do that, but by the time you broadcast your updated blockchain, there would have been other blocks (of index say 1001, 1002) mined by other miners. So yours won't be the longest valid blockchain,and therefore would be rejected.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Nov 15 '18 at 9:11









            faint-hearted-foolfaint-hearted-fool

            63




            63













            • Alright, apologies for the confusion caused by my wording. I understand the difficulty of maliciously tampering with a block in history. So, with regards to the integrity checking, do you mean that it is practically unnecessary to run an integrity check of the blockchain? What if it is a private blockchain where there is no global consensus and there are only a few or just one validator?

              – jonna_983
              Nov 15 '18 at 10:08













            • @jonna_983 If there is no central authority you are willing to rely on to ensure the integrity of the blockchain, you have to verify it yourself. Most systems give you both options and refer to nodes that perform all the verifications as "full nodes".

              – David Schwartz
              Nov 15 '18 at 19:40



















            • Alright, apologies for the confusion caused by my wording. I understand the difficulty of maliciously tampering with a block in history. So, with regards to the integrity checking, do you mean that it is practically unnecessary to run an integrity check of the blockchain? What if it is a private blockchain where there is no global consensus and there are only a few or just one validator?

              – jonna_983
              Nov 15 '18 at 10:08













            • @jonna_983 If there is no central authority you are willing to rely on to ensure the integrity of the blockchain, you have to verify it yourself. Most systems give you both options and refer to nodes that perform all the verifications as "full nodes".

              – David Schwartz
              Nov 15 '18 at 19:40

















            Alright, apologies for the confusion caused by my wording. I understand the difficulty of maliciously tampering with a block in history. So, with regards to the integrity checking, do you mean that it is practically unnecessary to run an integrity check of the blockchain? What if it is a private blockchain where there is no global consensus and there are only a few or just one validator?

            – jonna_983
            Nov 15 '18 at 10:08







            Alright, apologies for the confusion caused by my wording. I understand the difficulty of maliciously tampering with a block in history. So, with regards to the integrity checking, do you mean that it is practically unnecessary to run an integrity check of the blockchain? What if it is a private blockchain where there is no global consensus and there are only a few or just one validator?

            – jonna_983
            Nov 15 '18 at 10:08















            @jonna_983 If there is no central authority you are willing to rely on to ensure the integrity of the blockchain, you have to verify it yourself. Most systems give you both options and refer to nodes that perform all the verifications as "full nodes".

            – David Schwartz
            Nov 15 '18 at 19:40





            @jonna_983 If there is no central authority you are willing to rely on to ensure the integrity of the blockchain, you have to verify it yourself. Most systems give you both options and refer to nodes that perform all the verifications as "full nodes".

            – David Schwartz
            Nov 15 '18 at 19:40











            0














            According to this article, when a new block is broadcasted to the network, the integrity of its transaction is validated and verified against the history of transactions. The trouble with integrity check arises only if a malicious longer block-chain is broadcasted to the network. In this case, the protocol forces the nodes to accept this longest chain. Note that, this longest chain maintains its own integrity and is verified of its own. But it is verified against its own version of truth. Mind you though, this can only be possible if the attacker has a hashing power that is at least 51% of the network's hashing power. And this kind of power is assumed practically impossible. https://medium.com/coinmonks/what-is-a-51-attack-or-double-spend-attack-aa108db63474






            share|improve this answer




























              0














              According to this article, when a new block is broadcasted to the network, the integrity of its transaction is validated and verified against the history of transactions. The trouble with integrity check arises only if a malicious longer block-chain is broadcasted to the network. In this case, the protocol forces the nodes to accept this longest chain. Note that, this longest chain maintains its own integrity and is verified of its own. But it is verified against its own version of truth. Mind you though, this can only be possible if the attacker has a hashing power that is at least 51% of the network's hashing power. And this kind of power is assumed practically impossible. https://medium.com/coinmonks/what-is-a-51-attack-or-double-spend-attack-aa108db63474






              share|improve this answer


























                0












                0








                0







                According to this article, when a new block is broadcasted to the network, the integrity of its transaction is validated and verified against the history of transactions. The trouble with integrity check arises only if a malicious longer block-chain is broadcasted to the network. In this case, the protocol forces the nodes to accept this longest chain. Note that, this longest chain maintains its own integrity and is verified of its own. But it is verified against its own version of truth. Mind you though, this can only be possible if the attacker has a hashing power that is at least 51% of the network's hashing power. And this kind of power is assumed practically impossible. https://medium.com/coinmonks/what-is-a-51-attack-or-double-spend-attack-aa108db63474






                share|improve this answer













                According to this article, when a new block is broadcasted to the network, the integrity of its transaction is validated and verified against the history of transactions. The trouble with integrity check arises only if a malicious longer block-chain is broadcasted to the network. In this case, the protocol forces the nodes to accept this longest chain. Note that, this longest chain maintains its own integrity and is verified of its own. But it is verified against its own version of truth. Mind you though, this can only be possible if the attacker has a hashing power that is at least 51% of the network's hashing power. And this kind of power is assumed practically impossible. https://medium.com/coinmonks/what-is-a-51-attack-or-double-spend-attack-aa108db63474







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 15 '18 at 14:01









                faint-hearted-foolfaint-hearted-fool

                63




                63






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53306224%2fhow-can-you-verify-that-a-blockchain-dlt-has-not-been-tampered-with%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Florida Star v. B. J. F.

                    Error while running script in elastic search , gateway timeout

                    Adding quotations to stringified JSON object values