public async Task <bool> Verify(Block block)
        {
            if (!_consensusMethod.VerifyConsensus(block))
            {
                return(false);
            }

            var seed = block.Header.CombineHashableElementsWithNonce(block.Header.Nonce);
            var hash = _hasher.ComputeHash(seed);

            if (!hash.SequenceEqual(block.Header.BlockId))
            {
                return(false);
            }

            var merkleRoot = await _merkleTreeBuilder.BuildTree(block.Transactions.Select(x => x.TransactionId).ToList());

            if (!merkleRoot.Value.SequenceEqual(block.Header.MerkelRoot))
            {
                return(false);
            }

            return(true);
        }