Ecoer Logo
thomasoss

@thomasoss

25

Computer Scientist, software architect, Java programmer, mainframe specialist, project manager

hive.blog/@thomasoss
VOTING POWER100.00%
DOWNVOTE POWER100.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS0.00%
Net Worth
21.131USD
HIVE
0.633HIVE
HBD
0.001HBD
Own HP
52.192HP

Detailed Balance

HIVE
balance
0.633HIVE
market_balance
0.000HIVE
savings_balance
0.000HIVE
reward_hive_balance
0.000HIVE
HIVE POWER
Own HP
52.192HP
Delegated Out
0.000HP
Delegation In
0.000HP
Effective Power
52.192HP
Reward HP (pending)
0.000HP
HBD
hbd_balance
0.001HBD
hbd_conversions
0.000HBD
hbd_market_balance
0.000HBD
savings_hbd_balance
0.000HBD
reward_hbd_balance
0.000HBD
{
  "balance": "0.633 HIVE",
  "savings_balance": "0.000 HIVE",
  "reward_hive_balance": "0.000 HIVE",
  "vesting_shares": "84723.693953 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "0.000000 VESTS",
  "hbd_balance": "0.001 HBD",
  "savings_hbd_balance": "0.000 HBD",
  "reward_hbd_balance": "0.000 HBD"
}

Account Info

namethomasoss
id126674
rank0
reputation0
created2017-01-15T16:57:42
recovery_accountsteem
proxyNone
invited_bynull
post_count13
comment_count0
lifetime_vote_count0
witnesses_voted_for0
last_post2020-03-07T07:35:51
last_root_post2020-03-07T07:35:51
last_vote_time2019-09-03T16:36:48
proxied_vsf_votes0, 0, 0, 0
can_vote1
voting_power0
delayed_votesNone
governance_vote_expiration_ts1969-12-31T23:59:59
balance0.633 HIVE
savings_balance0.000 HIVE
hbd_balance0.001 HBD
savings_hbd_balance0.000 HBD
vesting_shares84723.693953 VESTS
delegated_vesting_shares0.000000 VESTS
received_vesting_shares0.000000 VESTS
reward_vesting_balance0.000000 VESTS
vesting_balance0.000 HIVE
vesting_withdraw_rate0.000000 VESTS
next_vesting_withdrawal1969-12-31T23:59:59
withdrawn0
to_withdraw0
withdraw_routes0
savings_withdraw_requests0
last_account_recovery1970-01-01T00:00:00
reset_accountnull
last_owner_update1970-01-01T00:00:00
last_account_update2019-08-03T14:23:48
minedNo
hbd_seconds0
hbd_last_interest_payment1970-01-01T00:00:00
savings_hbd_last_interest_payment1970-01-01T00:00:00
{
  "id": 126674,
  "name": "thomasoss",
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM5szVtUx4nfZq9pjwqTxsPHMpGyFLSsKoNE2zNjAyefF2tWpszb",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM63WeGsis3XyiHWozNZc8khRLBV4MjUujdn58gienX8mEdSJztv",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM7N4TaktJpumgXobB2t2ofthdpG1umy35KAi35rv7SPHz73R1cr",
        1
      ]
    ]
  },
  "memo_key": "STM84nXo7phwufo1t7T6KepGrJvRWWMDHcxtSemMD62V1HGEkmRN1",
  "json_metadata": "{\"profile\":{\"name\":\"Thomas\",\"about\":\"Computer Scientist, software architect, Java programmer, mainframe specialist, project manager\",\"location\":\"Munich, Germany\",\"cover_image\":\"https://steemitimages.com/0x0/http://i.imgur.com/wHMAhxy.jpg\",\"profile_image\":\"https://cdn.steemitimages.com/DQmYcL4i2C3q5yqGH6avREovheJvHzkjF2ibkaELQyqPDAR/P1080321.JPG\"}}",
  "posting_json_metadata": "{\"profile\":{\"name\":\"Thomas\",\"about\":\"Computer Scientist, software architect, Java programmer, mainframe specialist, project manager\",\"location\":\"Munich, Germany\",\"cover_image\":\"https://steemitimages.com/0x0/http://i.imgur.com/wHMAhxy.jpg\",\"profile_image\":\"https://cdn.steemitimages.com/DQmYcL4i2C3q5yqGH6avREovheJvHzkjF2ibkaELQyqPDAR/P1080321.JPG\"}}",
  "proxy": "",
  "previous_owner_update": "1970-01-01T00:00:00",
  "last_owner_update": "1970-01-01T00:00:00",
  "last_account_update": "2019-08-03T14:23:48",
  "created": "2017-01-15T16:57:42",
  "mined": false,
  "recovery_account": "steem",
  "last_account_recovery": "1970-01-01T00:00:00",
  "reset_account": "null",
  "comment_count": 0,
  "lifetime_vote_count": 0,
  "post_count": 13,
  "can_vote": true,
  "voting_manabar": {
    "current_mana": 84723693953,
    "last_update_time": 1583566992
  },
  "downvote_manabar": {
    "current_mana": 21180923488,
    "last_update_time": 1583566992
  },
  "voting_power": 0,
  "balance": "0.633 HIVE",
  "savings_balance": "0.000 HIVE",
  "hbd_balance": "0.001 HBD",
  "hbd_seconds": "0",
  "hbd_seconds_last_update": "2020-03-07T07:43:12",
  "hbd_last_interest_payment": "1970-01-01T00:00:00",
  "savings_hbd_balance": "0.000 HBD",
  "savings_hbd_seconds": "0",
  "savings_hbd_seconds_last_update": "1970-01-01T00:00:00",
  "savings_hbd_last_interest_payment": "1970-01-01T00:00:00",
  "savings_withdraw_requests": 0,
  "reward_hbd_balance": "0.000 HBD",
  "reward_hive_balance": "0.000 HIVE",
  "reward_vesting_balance": "0.000000 VESTS",
  "reward_vesting_hive": "0.000 HIVE",
  "vesting_shares": "84723.693953 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "0.000000 VESTS",
  "vesting_withdraw_rate": "0.000000 VESTS",
  "post_voting_power": "84723.693953 VESTS",
  "next_vesting_withdrawal": "1969-12-31T23:59:59",
  "withdrawn": 0,
  "to_withdraw": 0,
  "withdraw_routes": 0,
  "pending_transfers": 0,
  "curation_rewards": 3,
  "posting_rewards": 1273,
  "proxied_vsf_votes": [
    0,
    0,
    0,
    0
  ],
  "witnesses_voted_for": 0,
  "last_post": "2020-03-07T07:35:51",
  "last_root_post": "2020-03-07T07:35:51",
  "last_vote_time": "2019-09-03T16:36:48",
  "post_bandwidth": 0,
  "pending_claimed_accounts": 0,
  "governance_vote_expiration_ts": "1969-12-31T23:59:59",
  "delayed_votes": [],
  "open_recurrent_transfers": 0,
  "vesting_balance": "0.000 HIVE",
  "reputation": 0,
  "transfer_history": [],
  "market_history": [],
  "post_history": [],
  "vote_history": [],
  "other_history": [],
  "witness_votes": [],
  "tags_usage": [],
  "guest_bloggers": [],
  "rank": 0
}

Withdraw Routes

IncomingOutgoing
Empty
Empty
{
  "incoming": [],
  "outgoing": []
}
From Date
To Date
2020/03/14 07:35:51
authorthomasoss
permlinkblockchain-foundations-part-7-seed-random-seed-and-hd-wallet
Transaction InfoBlock #41638565/Virtual Operation 4294967295:8
View Raw JSON Data
{
  "op": [
    "comment_payout_update",
    {
      "author": "thomasoss",
      "permlink": "blockchain-foundations-part-7-seed-random-seed-and-hd-wallet"
    }
  ],
  "block": 41638565,
  "trx_id": "0000000000000000000000000000000000000000",
  "op_in_trx": 8,
  "timestamp": "2020-03-14T07:35:51",
  "virtual_op": true,
  "trx_in_block": 4294967295
}
2020/03/08 08:49:00
voterthomasoss
authorprofitgenerator
weight10000 (100.00%)
permlinkwhat-is-the-rewards
Transaction InfoBlock #41467552/Trx e09d63eae054dfe55e0ad8e1267d87c22b1a6a9e
View Raw JSON Data
{
  "op": [
    "vote",
    {
      "voter": "thomasoss",
      "author": "profitgenerator",
      "weight": 10000,
      "permlink": "what-is-the-rewards"
    }
  ],
  "block": 41467552,
  "trx_id": "e09d63eae054dfe55e0ad8e1267d87c22b1a6a9e",
  "op_in_trx": 0,
  "timestamp": "2020-03-08T08:49:00",
  "virtual_op": false,
  "trx_in_block": 3
}
2020/03/07 08:04:00
voterthomasoss
authorsteemitboard
weight10000 (100.00%)
permlinksteemitboard-notify-thomasoss-20200115t175951000z
Transaction InfoBlock #41437922/Trx 1af864679c62c2967842fede258cbed711599255
View Raw JSON Data
{
  "op": [
    "vote",
    {
      "voter": "thomasoss",
      "author": "steemitboard",
      "weight": 10000,
      "permlink": "steemitboard-notify-thomasoss-20200115t175951000z"
    }
  ],
  "block": 41437922,
  "trx_id": "1af864679c62c2967842fede258cbed711599255",
  "op_in_trx": 0,
  "timestamp": "2020-03-07T08:04:00",
  "virtual_op": false,
  "trx_in_block": 0
}
thomasossclaimed reward balance: 0.630 HIVE, 0.001 HBD, 0.782 HP
2020/03/07 07:43:15
accountthomasoss
reward hbd0.001 HBD
reward hive0.630 HIVE
reward vests1268.827968 VESTS
Transaction InfoBlock #41437509/Trx a0106da9415eee5af33d93f3622815a59b8b0521
View Raw JSON Data
{
  "op": [
    "claim_reward_balance",
    {
      "account": "thomasoss",
      "reward_hbd": "0.001 HBD",
      "reward_hive": "0.630 HIVE",
      "reward_vests": "1268.827968 VESTS"
    }
  ],
  "block": 41437509,
  "trx_id": "a0106da9415eee5af33d93f3622815a59b8b0521",
  "op_in_trx": 0,
  "timestamp": "2020-03-07T07:43:15",
  "virtual_op": false,
  "trx_in_block": 19
}
2020/03/07 07:39:27
voteranomaly
authorthomasoss
weight100 (1.00%)
permlinkblockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture
Transaction InfoBlock #41437433/Trx c3d24992d6b37faddc5950847d9cb4880954acfa
View Raw JSON Data
{
  "op": [
    "vote",
    {
      "voter": "anomaly",
      "author": "thomasoss",
      "weight": 100,
      "permlink": "blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture"
    }
  ],
  "block": 41437433,
  "trx_id": "c3d24992d6b37faddc5950847d9cb4880954acfa",
  "op_in_trx": 0,
  "timestamp": "2020-03-07T07:39:27",
  "virtual_op": false,
  "trx_in_block": 19
}
2020/03/07 07:38:36
body@@ -1446,16 +1446,159 @@ gnature) +%0A- %5BPart 8: Seed (Random Seed) and HD Wallet%5D(https://steemit.com/seed/@thomasoss/blockchain-foundations-part-7-seed-random-seed-and-hd-wallet) %0A%0AThe ne
titleBlockchain Foundations Part 1: Distributed, Decentralized and Centralized Computer Architecture
authorthomasoss
permlinkblockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture
json metadata{"tags":["centralized","decentralized","distributed","architecture"],"image":["https://cdn.steemitimages.com/DQmekyCqN6aKDZTeZF1f8LeWdd8U7jXNUn4KbRgnfCHHzat/image.png","https://cdn.steemitimages.com/DQmZyts7uG8WFYFrFosC6igcPkNtUK4Rphv7jktj1WhKk4x/image.png","https://cdn.steemitimages.com/DQmWs3aueu5cwZECx7hugNQRgur1ctXWjbHJsMXeFvyGkt3/image.png"],"app":"steemit/0.2","format":"markdown","links":["https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-2-peer-to-peer-architecture-and-hybrid-computer-system-architecture","https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-5-1-5-how-the-architecture-affects-the-internet-user","https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-4-hash-function","https://steemit.com/merkle/@thomasoss/blockchain-foundations-part-5-merkle-tree-and-merkle-root","https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-6-radix-tree-patricia-trie","https://steemit.com/ecdsa/@thomasoss/blockchain-foundations-part-7-encryption-and-digital-signature","https://steemit.com/seed/@thomasoss/blockchain-foundations-part-7-seed-random-seed-and-hd-wallet"]}
parent author
parent permlinkblockchain
Transaction InfoBlock #41437416/Trx 82fb786fed66901a52077538dc8bac7278b089b9
View Raw JSON Data
{
  "op": [
    "comment",
    {
      "body": "@@ -1446,16 +1446,159 @@\n gnature)\n+%0A- %5BPart 8: Seed (Random Seed) and HD Wallet%5D(https://steemit.com/seed/@thomasoss/blockchain-foundations-part-7-seed-random-seed-and-hd-wallet)\n %0A%0AThe ne\n",
      "title": "Blockchain Foundations Part 1: Distributed, Decentralized and Centralized Computer Architecture",
      "author": "thomasoss",
      "permlink": "blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture",
      "json_metadata": "{\"tags\":[\"centralized\",\"decentralized\",\"distributed\",\"architecture\"],\"image\":[\"https://cdn.steemitimages.com/DQmekyCqN6aKDZTeZF1f8LeWdd8U7jXNUn4KbRgnfCHHzat/image.png\",\"https://cdn.steemitimages.com/DQmZyts7uG8WFYFrFosC6igcPkNtUK4Rphv7jktj1WhKk4x/image.png\",\"https://cdn.steemitimages.com/DQmWs3aueu5cwZECx7hugNQRgur1ctXWjbHJsMXeFvyGkt3/image.png\"],\"app\":\"steemit/0.2\",\"format\":\"markdown\",\"links\":[\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-2-peer-to-peer-architecture-and-hybrid-computer-system-architecture\",\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-5-1-5-how-the-architecture-affects-the-internet-user\",\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-4-hash-function\",\"https://steemit.com/merkle/@thomasoss/blockchain-foundations-part-5-merkle-tree-and-merkle-root\",\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-6-radix-tree-patricia-trie\",\"https://steemit.com/ecdsa/@thomasoss/blockchain-foundations-part-7-encryption-and-digital-signature\",\"https://steemit.com/seed/@thomasoss/blockchain-foundations-part-7-seed-random-seed-and-hd-wallet\"]}",
      "parent_author": "",
      "parent_permlink": "blockchain"
    }
  ],
  "block": 41437416,
  "trx_id": "82fb786fed66901a52077538dc8bac7278b089b9",
  "op_in_trx": 0,
  "timestamp": "2020-03-07T07:38:36",
  "virtual_op": false,
  "trx_in_block": 15
}
2020/03/07 07:37:12
voterlaissez-faire
authorthomasoss
weight35 (0.35%)
rshares269777663
permlinkblockchain-foundations-part-7-seed-random-seed-and-hd-wallet
pending payout0.000 HBD
total vote weight195
Transaction InfoBlock #41437388/Trx c7183a6d35cc2be144da0d18e4f410397d3ec9ee
View Raw JSON Data
{
  "op": [
    "effective_comment_vote",
    {
      "voter": "laissez-faire",
      "author": "thomasoss",
      "weight": 35,
      "rshares": 269777663,
      "permlink": "blockchain-foundations-part-7-seed-random-seed-and-hd-wallet",
      "pending_payout": "0.000 HBD",
      "total_vote_weight": 195
    }
  ],
  "block": 41437388,
  "trx_id": "c7183a6d35cc2be144da0d18e4f410397d3ec9ee",
  "op_in_trx": 1,
  "timestamp": "2020-03-07T07:37:12",
  "virtual_op": true,
  "trx_in_block": 1
}
2020/03/07 07:37:12
voterlaissez-faire
authorthomasoss
weight10000 (100.00%)
permlinkblockchain-foundations-part-7-seed-random-seed-and-hd-wallet
Transaction InfoBlock #41437388/Trx c7183a6d35cc2be144da0d18e4f410397d3ec9ee
View Raw JSON Data
{
  "op": [
    "vote",
    {
      "voter": "laissez-faire",
      "author": "thomasoss",
      "weight": 10000,
      "permlink": "blockchain-foundations-part-7-seed-random-seed-and-hd-wallet"
    }
  ],
  "block": 41437388,
  "trx_id": "c7183a6d35cc2be144da0d18e4f410397d3ec9ee",
  "op_in_trx": 0,
  "timestamp": "2020-03-07T07:37:12",
  "virtual_op": false,
  "trx_in_block": 1
}
2020/03/07 07:37:06
voteranomaly
authorthomasoss
weight14 (0.14%)
rshares120714082
permlinkblockchain-foundations-part-7-seed-random-seed-and-hd-wallet
pending payout0.000 HBD
total vote weight60
Transaction InfoBlock #41437386/Trx 060e441f7bf65b2a45d11b48c9c3334c0107f25c
View Raw JSON Data
{
  "op": [
    "effective_comment_vote",
    {
      "voter": "anomaly",
      "author": "thomasoss",
      "weight": 14,
      "rshares": 120714082,
      "permlink": "blockchain-foundations-part-7-seed-random-seed-and-hd-wallet",
      "pending_payout": "0.000 HBD",
      "total_vote_weight": 60
    }
  ],
  "block": 41437386,
  "trx_id": "060e441f7bf65b2a45d11b48c9c3334c0107f25c",
  "op_in_trx": 1,
  "timestamp": "2020-03-07T07:37:06",
  "virtual_op": true,
  "trx_in_block": 6
}
2020/03/07 07:37:06
voteranomaly
authorthomasoss
weight100 (1.00%)
permlinkblockchain-foundations-part-7-seed-random-seed-and-hd-wallet
Transaction InfoBlock #41437386/Trx 060e441f7bf65b2a45d11b48c9c3334c0107f25c
View Raw JSON Data
{
  "op": [
    "vote",
    {
      "voter": "anomaly",
      "author": "thomasoss",
      "weight": 100,
      "permlink": "blockchain-foundations-part-7-seed-random-seed-and-hd-wallet"
    }
  ],
  "block": 41437386,
  "trx_id": "060e441f7bf65b2a45d11b48c9c3334c0107f25c",
  "op_in_trx": 0,
  "timestamp": "2020-03-07T07:37:06",
  "virtual_op": false,
  "trx_in_block": 6
}
beemenginesent 0.001 HIVE to @thomasoss- "💎 Awesome Community Offer: auto booster with 10x extra votes, passive curation earnings and more. Checkout https://www.steembeem.com 🤙 or try it for one month with ONLY 1 STEEM 🤯 to @beemengine wit..."
2020/03/07 07:37:06
tothomasoss
frombeemengine
memo💎 Awesome Community Offer: auto booster with 10x extra votes, passive curation earnings and more. Checkout https://www.steembeem.com 🤙 or try it for one month with ONLY 1 STEEM 🤯 to @beemengine with memo: subscribe
amount0.001 HIVE
Transaction InfoBlock #41437386/Trx ceeeff4b0cb4b217fb1a8ffc4ca5e4d3885fe893
View Raw JSON Data
{
  "op": [
    "transfer",
    {
      "to": "thomasoss",
      "from": "beemengine",
      "memo": "💎 Awesome Community Offer: auto booster with 10x extra votes, passive curation earnings and more. Checkout https://www.steembeem.com 🤙 or try it for one month with ONLY 1 STEEM 🤯 to @beemengine with memo: subscribe",
      "amount": "0.001 HIVE"
    }
  ],
  "block": 41437386,
  "trx_id": "ceeeff4b0cb4b217fb1a8ffc4ca5e4d3885fe893",
  "op_in_trx": 0,
  "timestamp": "2020-03-07T07:37:06",
  "virtual_op": false,
  "trx_in_block": 1
}
2020/03/07 07:36:24
bodyThis article is about seeds. A seed can help you organizing the great number of public/privat key pairs you may need. The article is part of a series starting with this article: [Blockchain Foundations Part 1: Distributed, Decentralized and Centralized Computer Architecture](https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture) The articles are drawn from my book "Blockchain and Crypto Currencies Easy to Understand for Everyone, Thomas Bauer". Please refer to the [part 1 article](https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture) for a introduction to the blockchain foundations series. # Seed When using crypto currencies, then we quickly need to deal with a growing number of public/private key pairs. With a seed (random seed) we can avoid remembering all the used key pairs. A seed is a character string, for example: "a90dcxvuw34df74cxl246o345qweratwemzesdfseszdfw332843sfmsacx" Nobody can keep in mind such a character string. Hence we use a mnemonic like: "dog cat elephant first ape third Jim horse salamander ninth mouse rat" From such a mnemonic we derive a seed. For example, by calculating a hash value from this character string. Now we have a seed. We use this seed and an additional number, let's take "1", as base number when creating a key pair. Another key pair we create bases on the seed and the number "2". And so on. This way we could, for example, create 100 key pairs. We do not need to remember the created key pairs. Neither the public nor the private keys. Both we can recreate from the seed and the numbers 1 to 100. And the seed we can derive from the mnemonic. We only need to remember the mnemonic. Instead of simply incrementing a number in practice some more complicate algorithm are used. For example, we could derive some number or string from the aimed intended use of the key pair. This result and the seed and maybe again incrementing numbers lead to our key pairs. Sometime this procedure is called a derivation path. The application of a seed is described in the next chapter. # HD Wallet A HD wallet (hierarchical deterministic wallet) is not really a wallet but a technique to be used together with one of the different forms of wallets. With a HD wallet we can create key pairs based on a seed phrase. These key pairs we then use to receive cryptocurrency. Example: If we want to receive Bitcoins using the Bitcoin Core wallet we must create a new pair of public address and private key each time. The public address we tell the sender of the Bitcoins. We should make a backup of the private key instantly. We also could generate 100 pairs of public addresses and private keys at once. These we could use sequentially. Then we only need to make a backup of the keys after generating the 100 keys. But we still have to backup every used key. With a HD wallet this is easier. A HD wallet generates the keys for us. And we do not need to memorize or note all private keys. We only need to memorize a seed phrase. From this seed phrase the HD wallet generates the private keys. The needed private keys we can import in our wallet. A HD wallet usually is a hardware wallet.
titleBlockchain Foundations Part 8: Seed (Random Seed) and HD Wallet
authorthomasoss
permlinkblockchain-foundations-part-7-seed-random-seed-and-hd-wallet
json metadata{"tags":["hd","wallet","privat","key","blockchain"],"links":["https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture"],"app":"steemit/0.2","format":"markdown"}
parent author
parent permlinkseed
Transaction InfoBlock #41437372/Trx 77fcac309d47cd9d8ff26160926e08760548e63f
View Raw JSON Data
{
  "op": [
    "comment",
    {
      "body": "This article is about seeds. A seed can help you organizing the great number of public/privat key pairs you may need.\n\nThe article is part of a series starting with this article: [Blockchain Foundations Part 1: Distributed, Decentralized and Centralized Computer Architecture](https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture)\n\nThe articles are drawn from my book \"Blockchain and Crypto Currencies Easy to Understand for Everyone, Thomas Bauer\". Please refer to the [part 1 article](https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture) for a introduction to the blockchain foundations series.\n\n# Seed\n\nWhen using crypto currencies, then we quickly need to deal with a growing number of public/private key pairs. With a seed (random seed) we can avoid remembering all the used key pairs. \n\nA seed is a character string, for example:\n\"a90dcxvuw34df74cxl246o345qweratwemzesdfseszdfw332843sfmsacx\"\n\nNobody can keep in mind such a character string. Hence we use a mnemonic like:\n\"dog cat elephant first ape third Jim horse salamander ninth mouse rat\"\n\nFrom such a mnemonic we derive a seed. For example, by calculating a hash value from this character string. \n\nNow we have a seed. We use this seed and an additional number, let's take \"1\", as base number when creating a key pair. Another key pair we create bases on the seed and the number \"2\". And so on. This way we could, for example, create 100 key pairs. We do not need to remember the created key pairs. Neither the public nor the private keys. Both we can recreate from the seed and the numbers 1 to 100. And the seed we can derive from the mnemonic. We only need to remember the mnemonic.\n\nInstead of simply incrementing a number in practice some more complicate algorithm are used. For example, we could derive some number or string from the aimed intended use of the key pair. This result and the seed and maybe again incrementing numbers lead to our key pairs. Sometime this procedure is called a derivation path.\n\nThe application of a seed is described in the next chapter.\n\n# HD Wallet\n\nA HD wallet (hierarchical deterministic wallet) is not really a wallet but a technique to be used together with one of the different forms of wallets. With a HD wallet we can create key pairs based on a seed phrase. These key pairs we then use to receive cryptocurrency. \n\nExample: If we want to receive Bitcoins using the Bitcoin Core wallet we must create a new pair of public address and private key each time. The public address we tell the sender of the Bitcoins. We should make a backup of the private key instantly. We also could generate 100 pairs of public addresses and private keys at once. These we could use sequentially. Then we only need to make a backup of the keys after generating the 100 keys. But we still have to backup every used key. \n\nWith a HD wallet this is easier. A HD wallet generates the keys for us. And we do not need to memorize or note all private keys. We only need to memorize a seed phrase. From this seed phrase the HD wallet generates the private keys. The needed private keys we can import in our wallet. \n\nA HD wallet usually is a hardware wallet.",
      "title": "Blockchain Foundations Part 8: Seed (Random Seed) and HD Wallet",
      "author": "thomasoss",
      "permlink": "blockchain-foundations-part-7-seed-random-seed-and-hd-wallet",
      "json_metadata": "{\"tags\":[\"hd\",\"wallet\",\"privat\",\"key\",\"blockchain\"],\"links\":[\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture\"],\"app\":\"steemit/0.2\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "seed"
    }
  ],
  "block": 41437372,
  "trx_id": "77fcac309d47cd9d8ff26160926e08760548e63f",
  "op_in_trx": 0,
  "timestamp": "2020-03-07T07:36:24",
  "virtual_op": false,
  "trx_in_block": 10
}
2020/03/07 07:35:54
bodyThis article is about seeds. A seed can help you organizing the great number of public/privat key pairs you may need. The article is part of a series starting with this article: [Blockchain Foundations Part 1: Distributed, Decentralized and Centralized Computer Architecture](https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture) The articles are drawn from my book "Blockchain and Crypto Currencies Easy to Understand for Everyone, Thomas Bauer". Please refer to the [part 1 article](https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture) for a introduction to the blockchain foundations series. # Seed When using crypto currencies, then we quickly need to deal with a growing number of public/private key pairs. With a seed (random seed) we can avoid remembering all the used key pairs. A seed is a character string, for example: "a90dcxvuw34df74cxl246o345qweratwemzesdfseszdfw332843sfmsacx" Nobody can keep in mind such a character string. Hence we use a mnemonic like: "dog cat elephant first ape third Jim horse salamander ninth mouse rat" From such a mnemonic we derive a seed. For example, by calculating a hash value from this character string. Now we have a seed. We use this seed and an additional number, let's take "1", as base number when creating a key pair. Another key pair we create bases on the seed and the number "2". And so on. This way we could, for example, create 100 key pairs. We do not need to remember the created key pairs. Neither the public nor the private keys. Both we can recreate from the seed and the numbers 1 to 100. And the seed we can derive from the mnemonic. We only need to remember the mnemonic. Instead of simply incrementing a number in practice some more complicate algorithm are used. For example, we could derive some number or string from the aimed intended use of the key pair. This result and the seed and maybe again incrementing numbers lead to our key pairs. Sometime this procedure is called a derivation path. The application of a seed is described in the next chapter. # HD Wallet A HD wallet (hierarchical deterministic wallet) is not really a wallet but a technique to be used together with one of the different forms of wallets. With a HD wallet we can create key pairs based on a seed phrase. These key pairs we then use to receive cryptocurrency. Example: If we want to receive Bitcoins using the Bitcoin Core wallet we must create a new pair of public address and private key each time. The public address we tell the sender of the Bitcoins. We should make a backup of the private key instantly. We also could generate 100 pairs of public addresses and private keys at once. These we could use sequentially. Then we only need to make a backup of the keys after generating the 100 keys. But we still have to backup every used key. With a HD wallet this is easier. A HD wallet generates the keys for us. And we do not need to memorize or note all private keys. We only need to memorize a seed phrase. From this seed phrase the HD wallet generates the private keys. The needed private keys we can import in our wallet. A HD wallet usually is a hardware wallet.
titleBlockchain Foundations Part 7: Seed (Random Seed) and HD Wallet
authorthomasoss
permlinkblockchain-foundations-part-7-seed-random-seed-and-hd-wallet
json metadata{"tags":["seed","hd","wallet","privat","key","blockchain"],"links":["https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture"],"app":"steemit/0.2","format":"markdown"}
parent author
parent permlinkseed
Transaction InfoBlock #41437362/Trx 33040a14974b6f151422d1dc0574fd374ebdacb8
View Raw JSON Data
{
  "op": [
    "comment",
    {
      "body": "This article is about seeds. A seed can help you organizing the great number of public/privat key pairs you may need.\n\nThe article is part of a series starting with this article: [Blockchain Foundations Part 1: Distributed, Decentralized and Centralized Computer Architecture](https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture)\n\nThe articles are drawn from my book \"Blockchain and Crypto Currencies Easy to Understand for Everyone, Thomas Bauer\". Please refer to the [part 1 article](https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture) for a introduction to the blockchain foundations series.\n\n# Seed\n\nWhen using crypto currencies, then we quickly need to deal with a growing number of public/private key pairs. With a seed (random seed) we can avoid remembering all the used key pairs. \n\nA seed is a character string, for example:\n\"a90dcxvuw34df74cxl246o345qweratwemzesdfseszdfw332843sfmsacx\"\n\nNobody can keep in mind such a character string. Hence we use a mnemonic like:\n\"dog cat elephant first ape third Jim horse salamander ninth mouse rat\"\n\nFrom such a mnemonic we derive a seed. For example, by calculating a hash value from this character string. \n\nNow we have a seed. We use this seed and an additional number, let's take \"1\", as base number when creating a key pair. Another key pair we create bases on the seed and the number \"2\". And so on. This way we could, for example, create 100 key pairs. We do not need to remember the created key pairs. Neither the public nor the private keys. Both we can recreate from the seed and the numbers 1 to 100. And the seed we can derive from the mnemonic. We only need to remember the mnemonic.\n\nInstead of simply incrementing a number in practice some more complicate algorithm are used. For example, we could derive some number or string from the aimed intended use of the key pair. This result and the seed and maybe again incrementing numbers lead to our key pairs. Sometime this procedure is called a derivation path.\n\nThe application of a seed is described in the next chapter.\n\n# HD Wallet\n\nA HD wallet (hierarchical deterministic wallet) is not really a wallet but a technique to be used together with one of the different forms of wallets. With a HD wallet we can create key pairs based on a seed phrase. These key pairs we then use to receive cryptocurrency. \n\nExample: If we want to receive Bitcoins using the Bitcoin Core wallet we must create a new pair of public address and private key each time. The public address we tell the sender of the Bitcoins. We should make a backup of the private key instantly. We also could generate 100 pairs of public addresses and private keys at once. These we could use sequentially. Then we only need to make a backup of the keys after generating the 100 keys. But we still have to backup every used key. \n\nWith a HD wallet this is easier. A HD wallet generates the keys for us. And we do not need to memorize or note all private keys. We only need to memorize a seed phrase. From this seed phrase the HD wallet generates the private keys. The needed private keys we can import in our wallet. \n\nA HD wallet usually is a hardware wallet.",
      "title": "Blockchain Foundations Part 7: Seed (Random Seed) and HD Wallet",
      "author": "thomasoss",
      "permlink": "blockchain-foundations-part-7-seed-random-seed-and-hd-wallet",
      "json_metadata": "{\"tags\":[\"seed\",\"hd\",\"wallet\",\"privat\",\"key\",\"blockchain\"],\"links\":[\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture\"],\"app\":\"steemit/0.2\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "seed"
    }
  ],
  "block": 41437362,
  "trx_id": "33040a14974b6f151422d1dc0574fd374ebdacb8",
  "op_in_trx": 0,
  "timestamp": "2020-03-07T07:35:54",
  "virtual_op": false,
  "trx_in_block": 11
}
2020/01/15 17:59:54
bodyCongratulations @thomasoss! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@thomasoss/birthday3.png</td><td>Happy Birthday! - You are on the Steem blockchain for 3 years!</td></tr></table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@thomasoss) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=thomasoss)_</sub> ###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!
title
authorsteemitboard
permlinksteemitboard-notify-thomasoss-20200115t175951000z
json metadata{"image":["https://steemitboard.com/img/notify.png"]}
parent authorthomasoss
parent permlinkblockchain-foundations-part-7-encryption-and-digital-signature
Transaction InfoBlock #39956310/Trx 611a1322a6f6a546b22b1474b9baabaff72e0bd4
View Raw JSON Data
{
  "op": [
    "comment",
    {
      "body": "Congratulations @thomasoss! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@thomasoss/birthday3.png</td><td>Happy Birthday! - You are on the Steem blockchain for 3 years!</td></tr></table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@thomasoss) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=thomasoss)_</sub>\n\n\n###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!",
      "title": "",
      "author": "steemitboard",
      "permlink": "steemitboard-notify-thomasoss-20200115t175951000z",
      "json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}",
      "parent_author": "thomasoss",
      "parent_permlink": "blockchain-foundations-part-7-encryption-and-digital-signature"
    }
  ],
  "block": 39956310,
  "trx_id": "611a1322a6f6a546b22b1474b9baabaff72e0bd4",
  "op_in_trx": 0,
  "timestamp": "2020-01-15T17:59:54",
  "virtual_op": false,
  "trx_in_block": 6
}
2019/12/14 07:01:45
authorthomasoss
permlinkblockchain-foundations-part-7-encryption-and-digital-signature
Transaction InfoBlock #39023289/Virtual Operation 4294967295:3
View Raw JSON Data
{
  "op": [
    "comment_payout_update",
    {
      "author": "thomasoss",
      "permlink": "blockchain-foundations-part-7-encryption-and-digital-signature"
    }
  ],
  "block": 39023289,
  "trx_id": "0000000000000000000000000000000000000000",
  "op_in_trx": 3,
  "timestamp": "2019-12-14T07:01:45",
  "virtual_op": true,
  "trx_in_block": 4294967295
}
2019/12/07 07:05:18
body@@ -1478,27 +1478,11 @@ ing -weekly or more ofte +soo n) w
titleBlockchain Foundations Part 1: Distributed, Decentralized and Centralized Computer Architecture
authorthomasoss
permlinkblockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture
json metadata{"tags":["centralized","decentralized","distributed","architecture"],"image":["https://cdn.steemitimages.com/DQmekyCqN6aKDZTeZF1f8LeWdd8U7jXNUn4KbRgnfCHHzat/image.png","https://cdn.steemitimages.com/DQmZyts7uG8WFYFrFosC6igcPkNtUK4Rphv7jktj1WhKk4x/image.png","https://cdn.steemitimages.com/DQmWs3aueu5cwZECx7hugNQRgur1ctXWjbHJsMXeFvyGkt3/image.png"],"app":"steemit/0.1","format":"markdown","links":["https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-2-peer-to-peer-architecture-and-hybrid-computer-system-architecture","https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-5-1-5-how-the-architecture-affects-the-internet-user","https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-4-hash-function","https://steemit.com/merkle/@thomasoss/blockchain-foundations-part-5-merkle-tree-and-merkle-root","https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-6-radix-tree-patricia-trie","https://steemit.com/ecdsa/@thomasoss/blockchain-foundations-part-7-encryption-and-digital-signature"]}
parent author
parent permlinkblockchain
Transaction InfoBlock #38822128/Trx 7a51b4ddc074881686dd196a14502afeffa9c92c
View Raw JSON Data
{
  "op": [
    "comment",
    {
      "body": "@@ -1478,27 +1478,11 @@\n ing \n-weekly or more ofte\n+soo\n n) w\n",
      "title": "Blockchain Foundations Part 1: Distributed, Decentralized and Centralized Computer Architecture",
      "author": "thomasoss",
      "permlink": "blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture",
      "json_metadata": "{\"tags\":[\"centralized\",\"decentralized\",\"distributed\",\"architecture\"],\"image\":[\"https://cdn.steemitimages.com/DQmekyCqN6aKDZTeZF1f8LeWdd8U7jXNUn4KbRgnfCHHzat/image.png\",\"https://cdn.steemitimages.com/DQmZyts7uG8WFYFrFosC6igcPkNtUK4Rphv7jktj1WhKk4x/image.png\",\"https://cdn.steemitimages.com/DQmWs3aueu5cwZECx7hugNQRgur1ctXWjbHJsMXeFvyGkt3/image.png\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\",\"links\":[\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-2-peer-to-peer-architecture-and-hybrid-computer-system-architecture\",\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-5-1-5-how-the-architecture-affects-the-internet-user\",\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-4-hash-function\",\"https://steemit.com/merkle/@thomasoss/blockchain-foundations-part-5-merkle-tree-and-merkle-root\",\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-6-radix-tree-patricia-trie\",\"https://steemit.com/ecdsa/@thomasoss/blockchain-foundations-part-7-encryption-and-digital-signature\"]}",
      "parent_author": "",
      "parent_permlink": "blockchain"
    }
  ],
  "block": 38822128,
  "trx_id": "7a51b4ddc074881686dd196a14502afeffa9c92c",
  "op_in_trx": 0,
  "timestamp": "2019-12-07T07:05:18",
  "virtual_op": false,
  "trx_in_block": 18
}
2019/12/07 07:05:15
voteranomaly
authorthomasoss
weight100 (1.00%)
permlinkblockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture
Transaction InfoBlock #38822127/Trx c495bf0f3e289349db9bbe5c853d202e68bb2736
View Raw JSON Data
{
  "op": [
    "vote",
    {
      "voter": "anomaly",
      "author": "thomasoss",
      "weight": 100,
      "permlink": "blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture"
    }
  ],
  "block": 38822127,
  "trx_id": "c495bf0f3e289349db9bbe5c853d202e68bb2736",
  "op_in_trx": 0,
  "timestamp": "2019-12-07T07:05:15",
  "virtual_op": false,
  "trx_in_block": 5
}
2019/12/07 07:04:21
body@@ -1300,16 +1300,162 @@ ia-trie) +%0A- %5BPart 7: Encryption and Digital Signature%5D(https://steemit.com/ecdsa/@thomasoss/blockchain-foundations-part-7-encryption-and-digital-signature) %0A%0AThe ne @@ -1514,33 +1514,8 @@ out%0A -- Signature%0A- Encryption%0A - Bl
titleBlockchain Foundations Part 1: Distributed, Decentralized and Centralized Computer Architecture
authorthomasoss
permlinkblockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture
json metadata{"tags":["centralized","decentralized","distributed","architecture"],"image":["https://cdn.steemitimages.com/DQmekyCqN6aKDZTeZF1f8LeWdd8U7jXNUn4KbRgnfCHHzat/image.png","https://cdn.steemitimages.com/DQmZyts7uG8WFYFrFosC6igcPkNtUK4Rphv7jktj1WhKk4x/image.png","https://cdn.steemitimages.com/DQmWs3aueu5cwZECx7hugNQRgur1ctXWjbHJsMXeFvyGkt3/image.png"],"app":"steemit/0.1","format":"markdown","links":["https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-2-peer-to-peer-architecture-and-hybrid-computer-system-architecture","https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-5-1-5-how-the-architecture-affects-the-internet-user","https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-4-hash-function","https://steemit.com/merkle/@thomasoss/blockchain-foundations-part-5-merkle-tree-and-merkle-root","https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-6-radix-tree-patricia-trie","https://steemit.com/ecdsa/@thomasoss/blockchain-foundations-part-7-encryption-and-digital-signature"]}
parent author
parent permlinkblockchain
Transaction InfoBlock #38822109/Trx 6c96a0702146466fae91b7250f6de36adcd74291
View Raw JSON Data
{
  "op": [
    "comment",
    {
      "body": "@@ -1300,16 +1300,162 @@\n ia-trie)\n+%0A- %5BPart 7: Encryption and Digital Signature%5D(https://steemit.com/ecdsa/@thomasoss/blockchain-foundations-part-7-encryption-and-digital-signature)\n %0A%0AThe ne\n@@ -1514,33 +1514,8 @@\n out%0A\n-- Signature%0A- Encryption%0A\n - Bl\n",
      "title": "Blockchain Foundations Part 1: Distributed, Decentralized and Centralized Computer Architecture",
      "author": "thomasoss",
      "permlink": "blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture",
      "json_metadata": "{\"tags\":[\"centralized\",\"decentralized\",\"distributed\",\"architecture\"],\"image\":[\"https://cdn.steemitimages.com/DQmekyCqN6aKDZTeZF1f8LeWdd8U7jXNUn4KbRgnfCHHzat/image.png\",\"https://cdn.steemitimages.com/DQmZyts7uG8WFYFrFosC6igcPkNtUK4Rphv7jktj1WhKk4x/image.png\",\"https://cdn.steemitimages.com/DQmWs3aueu5cwZECx7hugNQRgur1ctXWjbHJsMXeFvyGkt3/image.png\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\",\"links\":[\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-2-peer-to-peer-architecture-and-hybrid-computer-system-architecture\",\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-5-1-5-how-the-architecture-affects-the-internet-user\",\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-4-hash-function\",\"https://steemit.com/merkle/@thomasoss/blockchain-foundations-part-5-merkle-tree-and-merkle-root\",\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-6-radix-tree-patricia-trie\",\"https://steemit.com/ecdsa/@thomasoss/blockchain-foundations-part-7-encryption-and-digital-signature\"]}",
      "parent_author": "",
      "parent_permlink": "blockchain"
    }
  ],
  "block": 38822109,
  "trx_id": "6c96a0702146466fae91b7250f6de36adcd74291",
  "op_in_trx": 0,
  "timestamp": "2019-12-07T07:04:21",
  "virtual_op": false,
  "trx_in_block": 5
}
2019/12/07 07:03:00
voterlaissez-faire
authorthomasoss
weight10 (0.10%)
rshares83584479
permlinkblockchain-foundations-part-7-encryption-and-digital-signature
pending payout0.000 HBD
total vote weight113
Transaction InfoBlock #38822082/Trx 60a06671e6d5b0f304a4ff5c26cfb0bbffbd6dbd
View Raw JSON Data
{
  "op": [
    "effective_comment_vote",
    {
      "voter": "laissez-faire",
      "author": "thomasoss",
      "weight": 10,
      "rshares": 83584479,
      "permlink": "blockchain-foundations-part-7-encryption-and-digital-signature",
      "pending_payout": "0.000 HBD",
      "total_vote_weight": 113
    }
  ],
  "block": 38822082,
  "trx_id": "60a06671e6d5b0f304a4ff5c26cfb0bbffbd6dbd",
  "op_in_trx": 1,
  "timestamp": "2019-12-07T07:03:00",
  "virtual_op": true,
  "trx_in_block": 11
}
2019/12/07 07:03:00
voterlaissez-faire
authorthomasoss
weight10000 (100.00%)
permlinkblockchain-foundations-part-7-encryption-and-digital-signature
Transaction InfoBlock #38822082/Trx 60a06671e6d5b0f304a4ff5c26cfb0bbffbd6dbd
View Raw JSON Data
{
  "op": [
    "vote",
    {
      "voter": "laissez-faire",
      "author": "thomasoss",
      "weight": 10000,
      "permlink": "blockchain-foundations-part-7-encryption-and-digital-signature"
    }
  ],
  "block": 38822082,
  "trx_id": "60a06671e6d5b0f304a4ff5c26cfb0bbffbd6dbd",
  "op_in_trx": 0,
  "timestamp": "2019-12-07T07:03:00",
  "virtual_op": false,
  "trx_in_block": 11
}
2019/12/07 07:02:54
voteranomaly
authorthomasoss
weight15 (0.15%)
rshares143065581
permlinkblockchain-foundations-part-7-encryption-and-digital-signature
pending payout0.000 HBD
total vote weight71
Transaction InfoBlock #38822080/Trx ef19439e875a8e45c36c12a2a41087beed0e228f
View Raw JSON Data
{
  "op": [
    "effective_comment_vote",
    {
      "voter": "anomaly",
      "author": "thomasoss",
      "weight": 15,
      "rshares": 143065581,
      "permlink": "blockchain-foundations-part-7-encryption-and-digital-signature",
      "pending_payout": "0.000 HBD",
      "total_vote_weight": 71
    }
  ],
  "block": 38822080,
  "trx_id": "ef19439e875a8e45c36c12a2a41087beed0e228f",
  "op_in_trx": 1,
  "timestamp": "2019-12-07T07:02:54",
  "virtual_op": true,
  "trx_in_block": 14
}
2019/12/07 07:02:54
voteranomaly
authorthomasoss
weight100 (1.00%)
permlinkblockchain-foundations-part-7-encryption-and-digital-signature
Transaction InfoBlock #38822080/Trx ef19439e875a8e45c36c12a2a41087beed0e228f
View Raw JSON Data
{
  "op": [
    "vote",
    {
      "voter": "anomaly",
      "author": "thomasoss",
      "weight": 100,
      "permlink": "blockchain-foundations-part-7-encryption-and-digital-signature"
    }
  ],
  "block": 38822080,
  "trx_id": "ef19439e875a8e45c36c12a2a41087beed0e228f",
  "op_in_trx": 0,
  "timestamp": "2019-12-07T07:02:54",
  "virtual_op": false,
  "trx_in_block": 14
}
2019/12/07 07:01:48
bodyEncryption and digital signature are important foundations of the blockchain concept. This article explains the asymetric encryption and the digital signature used with blockchains. The article is part of a series starting with this article: [Blockchain Foundations Part 1: Distributed, Decentralized and Centralized Computer Architecture](https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture) The articles are drawn from my book "Blockchain and Crypto Currencies Easy to Understand for Everyone, Thomas Bauer". Please refer to the [part 1 article](https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture) for a introduction to the blockchain foundations series. # Encryption and Digital Signature Blockchain uses asymmetric encryption. There are different terms like asymmetric cryptography, public key cryptography or public/private key cryptography. These all address the approach explained now: * Hans wants to send a message to Katja. He wants to ensure only Katja to read the message. * First, they need to agree on an encryption method. This encryption method must be able to encrypt a message using the public key and to allow only the holder of the private key to decrypt the message. And the method must be able to generate the needed key pairs consisting of a public and a private key. * Usually the encryption method is given by the used application. * Katja generates a key pair and publishes her public key. The private key she keeps a secret. For the key generation a random private key is created first. The public key will be derived from the private key by a one-way function. To derive the private key from the public key is practically impossible. * Hans uses Katja's public key to encrypt the message and sends the encrypted message to Katja. * Katja receives the encrypted message and uses her private key to decrypt the message. We can encrypt a message using the public key of someone else and only the holder of the matching private key is able to decrypt this message. Vice versa we can sign a message using our private key and anyone else can check the message for being unchanged by using our public key. Blockchain uses asymmetric encryption for example for crypto currencies. This time Hans wants to send 0,25 Bitcoin to Katja instead of the text message. * The encryption technique used for Bitcoin is Elliptic Curve Digital Signature Algorithm (ECDSA). It is not important to understand the algorithm itself. Hence the algorithm is not explained in this book. For us is important that it is a cryptographic one-way algorithm. It derives a public key from a private key and it is not possible to derive the private key from the public key. * Katja generates a key pair. This way she gets a public Bitcoin address and the corresponding private key. This public Bitcoin address is not derived directly from the private key. It is an address resulting from the public key derived from the private key and further processing. * Her public Bitcoin address she sends to Hans. * Hans now sends the Bitcoins to this public Bitcoin address. * Hans sends a message to Katja to tell her that he transferred the Bitcoin amount to the Bitcoin address she told him. Or Katja checks her Bitcoin address to find out if the Bitcoin amount already has been booked on this address. * The only one who can use the Bitcoin amount available on this public Bitcoin address is the holder of the corresponding private key. In this case this is Katja. To transfer these Bitcoins to someone else she needs to sign the transaction with her private key. With this signature and the corresponding public key, for the blockchain software it is possible to check if it is the holder of the private key who tries to use the Bitcoins. This way nobody else can use the Bitcoins tied to this Bitcoin address. This was a simplified explanation. Effectively Hans creates a Bitcoin transaction sending the Bitcoins to an address. This information then is available in the blockchain and everyone can see it. But Katja is the only one being able to use the Bitcoins bound to this address. She owns the necessary private key for doing this. This private key she may not really see but it is stored in a wallet and the wallet uses the private key to sign the transaction that uses the Bitcoins. It is important to know that we send our crypto coins to a public address and only the owner of the corresponding private key can use the Bitcoin bound to this address. Check digits at the end of the address help to avoid typing errors when sending crypto coins to an address. In detail each crypto currency has an own procedure and differently structured address. If we are going to deal with a cryptocurrency then we should find out how the encryption and addressing is designed for this currency.
titleBlockchain Foundations Part 7: Encryption and Digital Signature
authorthomasoss
permlinkblockchain-foundations-part-7-encryption-and-digital-signature
json metadata{"tags":["ecdsa","encryption","public","private","key","signature"],"links":["https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture"],"app":"steemit/0.1","format":"markdown"}
parent author
parent permlinkecdsa
Transaction InfoBlock #38822058/Trx ff371f2663c48be3e59ba26bb701074933923046
View Raw JSON Data
{
  "op": [
    "comment",
    {
      "body": "Encryption and digital signature are important foundations of the blockchain concept. This article explains the asymetric encryption and the digital signature used with blockchains.\n\nThe article is part of a series starting with this article: [Blockchain Foundations Part 1: Distributed, Decentralized and Centralized Computer Architecture](https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture)\n\nThe articles are drawn from my book \"Blockchain and Crypto Currencies Easy to Understand for Everyone, Thomas Bauer\". Please refer to the [part 1 article](https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture) for a introduction to the blockchain foundations series.\n\n# Encryption and Digital Signature\n\nBlockchain uses asymmetric encryption. There are different terms like asymmetric cryptography, public key cryptography or public/private key cryptography. These all address the approach explained now:\n* Hans wants to send a message to Katja. He wants to ensure only Katja to read the message.\n* First, they need to agree on an encryption method. This encryption method must be able to encrypt a message using the public key and to allow only the holder of the private key to decrypt the message. And the method must be able to generate the needed key pairs consisting of a public and a private key.\n* Usually the encryption method is given by the used application.\n* Katja generates a key pair and publishes her public key. The private key she keeps a secret. For the key generation a random private key is created first. The public key will be derived from the private key by a one-way function. To derive the private key from the public key is practically impossible.\n* Hans uses Katja's public key to encrypt the message and sends the encrypted message to Katja.\n* Katja receives the encrypted message and uses her private key to decrypt the message. \n\nWe can encrypt a message using the public key of someone else and only the holder of the matching private key is able to decrypt this message. Vice versa we can sign a message using our private key and anyone else can check the message for being unchanged by using our public key.\n\nBlockchain uses asymmetric encryption for example for crypto currencies.\n\nThis time Hans wants to send 0,25 Bitcoin to Katja instead of the text message. \n* The encryption technique used for Bitcoin is Elliptic Curve Digital Signature Algorithm (ECDSA). It is not important to understand the algorithm itself. Hence the algorithm is not explained in this book. For us is important that it is a cryptographic one-way algorithm. It derives a public key from a private key and it is not possible to derive the private key from the public key. \n* Katja generates a key pair. This way she gets a public Bitcoin address and the corresponding private key. This public Bitcoin address is not derived directly from the private key. It is an address resulting from the public key derived from the private key and further processing. \n* Her public Bitcoin address she sends to Hans. \n* Hans now sends the Bitcoins to this public Bitcoin address.\n* Hans sends a message to Katja to tell her that he transferred the Bitcoin amount to the Bitcoin address she told him. Or Katja checks her Bitcoin address to find out if the Bitcoin amount already has been booked on this address.\n* The only one who can use the Bitcoin amount available on this public Bitcoin address is the holder of the corresponding private key. In this case this is Katja. To transfer these Bitcoins to someone else she needs to sign the transaction with her private key. With this signature and the corresponding public key, for the blockchain software it is possible to check if it is the holder of the private key who tries to use the Bitcoins. This way nobody else can use the Bitcoins tied to this Bitcoin address. \n\nThis was a simplified explanation. Effectively Hans creates a Bitcoin transaction sending the Bitcoins to an address. This information then is available in the blockchain and everyone can see it. But Katja is the only one being able to use the Bitcoins bound to this address. She owns the necessary private key for doing this. This private key she may not really see but it is stored in a wallet and the wallet uses the private key to sign the transaction that uses the Bitcoins. \n\nIt is important to know that we send our crypto coins to a public address and only the owner of the corresponding private key can use the Bitcoin bound to this address. Check digits at the end of the address help to avoid typing errors when sending crypto coins to an address. \n\nIn detail each crypto currency has an own procedure and differently structured address. If we are going to deal with a cryptocurrency then we should find out how the encryption and addressing is designed for this currency.",
      "title": "Blockchain Foundations Part 7: Encryption and Digital Signature",
      "author": "thomasoss",
      "permlink": "blockchain-foundations-part-7-encryption-and-digital-signature",
      "json_metadata": "{\"tags\":[\"ecdsa\",\"encryption\",\"public\",\"private\",\"key\",\"signature\"],\"links\":[\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "ecdsa"
    }
  ],
  "block": 38822058,
  "trx_id": "ff371f2663c48be3e59ba26bb701074933923046",
  "op_in_trx": 0,
  "timestamp": "2019-12-07T07:01:48",
  "virtual_op": false,
  "trx_in_block": 11
}
dtubesent 0.001 HIVE to @thomasoss- "DTube Coin Round #1 is live! Visit https://token.d.tube for more information"
2019/09/20 20:54:48
tothomasoss
fromdtube
memoDTube Coin Round #1 is live! Visit https://token.d.tube for more information
amount0.001 HIVE
Transaction InfoBlock #36596712/Trx 0124a0eadc57c620c982387a75e1677cfb384bfe
View Raw JSON Data
{
  "op": [
    "transfer",
    {
      "to": "thomasoss",
      "from": "dtube",
      "memo": "DTube Coin Round #1 is live! Visit https://token.d.tube for more information",
      "amount": "0.001 HIVE"
    }
  ],
  "block": 36596712,
  "trx_id": "0124a0eadc57c620c982387a75e1677cfb384bfe",
  "op_in_trx": 10,
  "timestamp": "2019-09-20T20:54:48",
  "virtual_op": false,
  "trx_in_block": 28
}
2019/09/10 16:20:21
authorthomasoss
permlinkblockchain-foundations-part-6-radix-tree-patricia-trie
Transaction InfoBlock #36303947/Virtual Operation 4294967295:4
View Raw JSON Data
{
  "op": [
    "comment_payout_update",
    {
      "author": "thomasoss",
      "permlink": "blockchain-foundations-part-6-radix-tree-patricia-trie"
    }
  ],
  "block": 36303947,
  "trx_id": "0000000000000000000000000000000000000000",
  "op_in_trx": 4,
  "timestamp": "2019-09-10T16:20:21",
  "virtual_op": true,
  "trx_in_block": 4294967295
}
2019/09/03 18:59:24
bodyCongratulations @thomasoss! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) : <table><tr><td><img src="https://steemitimages.com/60x60/http://steemitboard.com/img/notifications/firstpayout.png"></td><td>You got your First payout</td></tr> </table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@thomasoss) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=thomasoss)_</sub> <sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub> ###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!
title
authorsteemitboard
permlinksteemitboard-notify-thomasoss-20190903t185923000z
json metadata{"image":["https://steemitboard.com/img/notify.png"]}
parent authorthomasoss
parent permlinkblockchain-foundations-part-6-radix-tree-patricia-trie
Transaction InfoBlock #36106478/Trx f53278f82039c547a912941c087c1cbcf389e8d9
View Raw JSON Data
{
  "op": [
    "comment",
    {
      "body": "Congratulations @thomasoss! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :\n\n<table><tr><td><img src=\"https://steemitimages.com/60x60/http://steemitboard.com/img/notifications/firstpayout.png\"></td><td>You got your First payout</td></tr>\n</table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@thomasoss) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=thomasoss)_</sub>\n<sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub>\n\n\n\n###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!",
      "title": "",
      "author": "steemitboard",
      "permlink": "steemitboard-notify-thomasoss-20190903t185923000z",
      "json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}",
      "parent_author": "thomasoss",
      "parent_permlink": "blockchain-foundations-part-6-radix-tree-patricia-trie"
    }
  ],
  "block": 36106478,
  "trx_id": "f53278f82039c547a912941c087c1cbcf389e8d9",
  "op_in_trx": 0,
  "timestamp": "2019-09-03T18:59:24",
  "virtual_op": false,
  "trx_in_block": 39
}
dtubesent 0.001 HIVE to @thomasoss- "Final call to claim your DTube account! It takes only 5 minutes. Go now to https://d.tube"
2019/09/03 18:10:51
tothomasoss
fromdtube
memoFinal call to claim your DTube account! It takes only 5 minutes. Go now to https://d.tube
amount0.001 HIVE
Transaction InfoBlock #36105514/Trx 56160ec3f3d54b76bf12bb2a0026e89ffab1b4bc
View Raw JSON Data
{
  "op": [
    "transfer",
    {
      "to": "thomasoss",
      "from": "dtube",
      "memo": "Final call to claim your DTube account! It takes only 5 minutes. Go now to https://d.tube",
      "amount": "0.001 HIVE"
    }
  ],
  "block": 36105514,
  "trx_id": "56160ec3f3d54b76bf12bb2a0026e89ffab1b4bc",
  "op_in_trx": 29,
  "timestamp": "2019-09-03T18:10:51",
  "virtual_op": false,
  "trx_in_block": 6
}
2019/09/03 16:36:51
voterthomasoss
authorxawi
weight228 (2.28%)
rshares1619097320
permlinkoi-chat-connect-users-across-blockchains
pending payout4.622 HBD
total vote weight3344518
Transaction InfoBlock #36103652/Trx dcb4f09853cf4f80616586e12efdf70b2659afda
View Raw JSON Data
{
  "op": [
    "effective_comment_vote",
    {
      "voter": "thomasoss",
      "author": "xawi",
      "weight": 228,
      "rshares": 1619097320,
      "permlink": "oi-chat-connect-users-across-blockchains",
      "pending_payout": "4.622 HBD",
      "total_vote_weight": 3344518
    }
  ],
  "block": 36103652,
  "trx_id": "dcb4f09853cf4f80616586e12efdf70b2659afda",
  "op_in_trx": 1,
  "timestamp": "2019-09-03T16:36:51",
  "virtual_op": true,
  "trx_in_block": 4
}
2019/09/03 16:36:51
voterthomasoss
authorxawi
weight10000 (100.00%)
permlinkoi-chat-connect-users-across-blockchains
Transaction InfoBlock #36103652/Trx dcb4f09853cf4f80616586e12efdf70b2659afda
View Raw JSON Data
{
  "op": [
    "vote",
    {
      "voter": "thomasoss",
      "author": "xawi",
      "weight": 10000,
      "permlink": "oi-chat-connect-users-across-blockchains"
    }
  ],
  "block": 36103652,
  "trx_id": "dcb4f09853cf4f80616586e12efdf70b2659afda",
  "op_in_trx": 0,
  "timestamp": "2019-09-03T16:36:51",
  "virtual_op": false,
  "trx_in_block": 4
}
2019/09/03 16:24:12
voteranomaly
authorthomasoss
weight100 (1.00%)
permlinkblockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture
Transaction InfoBlock #36103404/Trx 5481795e177a906ec33ed2e3349788935d29665b
View Raw JSON Data
{
  "op": [
    "vote",
    {
      "voter": "anomaly",
      "author": "thomasoss",
      "weight": 100,
      "permlink": "blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture"
    }
  ],
  "block": 36103404,
  "trx_id": "5481795e177a906ec33ed2e3349788935d29665b",
  "op_in_trx": 0,
  "timestamp": "2019-09-03T16:24:12",
  "virtual_op": false,
  "trx_in_block": 35
}
2019/09/03 16:23:12
body@@ -1163,16 +1163,153 @@ le-root) +%0A- %5BPart 6: Radix tree (PATRICIA trie)%5D(https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-6-radix-tree-patricia-trie) %0A%0AThe ne
titleBlockchain Foundations Part 1: Distributed, Decentralized and Centralized Computer Architecture
authorthomasoss
permlinkblockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture
json metadata{"tags":["blockchain","centralized","decentralized","distributed","architecture"],"image":["https://cdn.steemitimages.com/DQmekyCqN6aKDZTeZF1f8LeWdd8U7jXNUn4KbRgnfCHHzat/image.png","https://cdn.steemitimages.com/DQmZyts7uG8WFYFrFosC6igcPkNtUK4Rphv7jktj1WhKk4x/image.png","https://cdn.steemitimages.com/DQmWs3aueu5cwZECx7hugNQRgur1ctXWjbHJsMXeFvyGkt3/image.png"],"app":"steemit/0.1","format":"markdown","links":["https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-2-peer-to-peer-architecture-and-hybrid-computer-system-architecture","https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-5-1-5-how-the-architecture-affects-the-internet-user","https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-4-hash-function","https://steemit.com/merkle/@thomasoss/blockchain-foundations-part-5-merkle-tree-and-merkle-root","https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-6-radix-tree-patricia-trie"]}
parent author
parent permlinkblockchain
Transaction InfoBlock #36103384/Trx 8ece15cc27dfa4a28a7c24a7b48690a7213fce07
View Raw JSON Data
{
  "op": [
    "comment",
    {
      "body": "@@ -1163,16 +1163,153 @@\n le-root)\n+%0A- %5BPart 6: Radix tree (PATRICIA trie)%5D(https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-6-radix-tree-patricia-trie)\n %0A%0AThe ne\n",
      "title": "Blockchain Foundations Part 1: Distributed, Decentralized and Centralized Computer Architecture",
      "author": "thomasoss",
      "permlink": "blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture",
      "json_metadata": "{\"tags\":[\"blockchain\",\"centralized\",\"decentralized\",\"distributed\",\"architecture\"],\"image\":[\"https://cdn.steemitimages.com/DQmekyCqN6aKDZTeZF1f8LeWdd8U7jXNUn4KbRgnfCHHzat/image.png\",\"https://cdn.steemitimages.com/DQmZyts7uG8WFYFrFosC6igcPkNtUK4Rphv7jktj1WhKk4x/image.png\",\"https://cdn.steemitimages.com/DQmWs3aueu5cwZECx7hugNQRgur1ctXWjbHJsMXeFvyGkt3/image.png\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\",\"links\":[\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-2-peer-to-peer-architecture-and-hybrid-computer-system-architecture\",\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-5-1-5-how-the-architecture-affects-the-internet-user\",\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-4-hash-function\",\"https://steemit.com/merkle/@thomasoss/blockchain-foundations-part-5-merkle-tree-and-merkle-root\",\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-6-radix-tree-patricia-trie\"]}",
      "parent_author": "",
      "parent_permlink": "blockchain"
    }
  ],
  "block": 36103384,
  "trx_id": "8ece15cc27dfa4a28a7c24a7b48690a7213fce07",
  "op_in_trx": 0,
  "timestamp": "2019-09-03T16:23:12",
  "virtual_op": false,
  "trx_in_block": 3
}
2019/09/03 16:20:24
bodyThis article focuses the radix tree (radix trie, PATRICIA trie). The concept is used for example in Ethereum to store the state. The article is part of a series starting with this article: [Blockchain Foundations Part 1: Distributed, Decentralized and Centralized Computer Architecture](https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture) The articles are drawn from my book "Blockchain and Crypto Currencies Easy to Understand for Everyone, Thomas Bauer". Please refer to the [part 1 article](https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture) for a introduction to the blockchain foundations series. # Radix Tree (PATRICIA trie) A radix tree (radix trie, prefix tree, PATRICIA trie) is a search tree and an ordered data structure. Common prefixes are stored only once. Hence data stored in a radix tree is compressed. The subsequent figure shows edges and nodes. Each edge represents a character. Starting at root strings are stored this way. Characters of strings starting with the same characters are stored only once. ![](https://cdn.steemitimages.com/DQmaKYiGD8o81MNrcTLcHL1iAHWa4Gvupiq7MptEgJRJ9FF/image.png) Figure 8: Trie (prefix tree) A radix tree is a more compact form of this search tree. We can see it in the subsequent figure. The number of edges is reduced distinctly. ![](https://cdn.steemitimages.com/DQmPYNKNiFA8XzvSdtSbLPkGvcR7tC2XySPEudSWDddzTFF/image.png) Figure 9: Radix tree (PATRICIA trie) The term trie is derived from information retrieval. Often tree is used instead of trie. PATRICIA is an acronym for Practical Algorithm to Retrieve Information Coded in Alphanumeric. Ethereum uses the radix tree to store the state. This is explained later in this article series.
titleBlockchain Foundations Part 6: Radix Tree (PATRICIA Trie)
authorthomasoss
permlinkblockchain-foundations-part-6-radix-tree-patricia-trie
json metadata{"tags":["blockchain","radix","patricia","ethereum","foundations"],"image":["https://cdn.steemitimages.com/DQmaKYiGD8o81MNrcTLcHL1iAHWa4Gvupiq7MptEgJRJ9FF/image.png","https://cdn.steemitimages.com/DQmPYNKNiFA8XzvSdtSbLPkGvcR7tC2XySPEudSWDddzTFF/image.png"],"links":["https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture"],"app":"steemit/0.1","format":"markdown"}
parent author
parent permlinkblockchain
Transaction InfoBlock #36103329/Trx 42eb0d9b5c4db68a747a7127687051e2f7ebfe51
View Raw JSON Data
{
  "op": [
    "comment",
    {
      "body": "This article focuses the radix tree (radix trie, PATRICIA trie). The concept is used for example in Ethereum to store the state.\n\nThe article is part of a series starting with this article: [Blockchain Foundations Part 1: Distributed, Decentralized and Centralized Computer Architecture](https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture)\n\nThe articles are drawn from my book \"Blockchain and Crypto Currencies Easy to Understand for Everyone, Thomas Bauer\". Please refer to the [part 1 article](https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture) for a introduction to the blockchain foundations series.\n\n# Radix Tree (PATRICIA trie)\n\nA radix tree (radix trie, prefix tree, PATRICIA trie) is a search tree and an ordered data structure. Common prefixes are stored only once. Hence data stored in a radix tree is compressed. \n\nThe subsequent figure shows edges and nodes. Each edge represents a character. Starting at root strings are stored this way. Characters of strings starting with the same characters are stored only once.\n\n![](https://cdn.steemitimages.com/DQmaKYiGD8o81MNrcTLcHL1iAHWa4Gvupiq7MptEgJRJ9FF/image.png)\nFigure 8: Trie (prefix tree)\n\nA radix tree is a more compact form of this search tree. We can see it in the subsequent figure. The number of edges is reduced distinctly.\n\n![](https://cdn.steemitimages.com/DQmPYNKNiFA8XzvSdtSbLPkGvcR7tC2XySPEudSWDddzTFF/image.png)\nFigure 9: Radix tree (PATRICIA trie)\n\nThe term trie is derived from information retrieval. Often tree is used instead of trie. PATRICIA is an acronym for Practical Algorithm to Retrieve Information Coded in Alphanumeric.\n\nEthereum uses the radix tree to store the state. This is explained later in this article series.",
      "title": "Blockchain Foundations Part 6: Radix Tree (PATRICIA Trie)",
      "author": "thomasoss",
      "permlink": "blockchain-foundations-part-6-radix-tree-patricia-trie",
      "json_metadata": "{\"tags\":[\"blockchain\",\"radix\",\"patricia\",\"ethereum\",\"foundations\"],\"image\":[\"https://cdn.steemitimages.com/DQmaKYiGD8o81MNrcTLcHL1iAHWa4Gvupiq7MptEgJRJ9FF/image.png\",\"https://cdn.steemitimages.com/DQmPYNKNiFA8XzvSdtSbLPkGvcR7tC2XySPEudSWDddzTFF/image.png\"],\"links\":[\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "blockchain"
    }
  ],
  "block": 36103329,
  "trx_id": "42eb0d9b5c4db68a747a7127687051e2f7ebfe51",
  "op_in_trx": 0,
  "timestamp": "2019-09-03T16:20:24",
  "virtual_op": false,
  "trx_in_block": 39
}
2019/08/31 05:56:27
authorthomasoss
permlinkblockchain-foundations-part-5-merkle-tree-and-merkle-root
Transaction InfoBlock #36020692/Virtual Operation 4294967295:2
View Raw JSON Data
{
  "op": [
    "comment_payout_update",
    {
      "author": "thomasoss",
      "permlink": "blockchain-foundations-part-5-merkle-tree-and-merkle-root"
    }
  ],
  "block": 36020692,
  "trx_id": "0000000000000000000000000000000000000000",
  "op_in_trx": 2,
  "timestamp": "2019-08-31T05:56:27",
  "virtual_op": true,
  "trx_in_block": 4294967295
}
2019/08/28 17:36:39
authorthomasoss
permlinkblockchain-foundations-part-4-hash-function
Transaction InfoBlock #35948874/Virtual Operation 4294967295:3
View Raw JSON Data
{
  "op": [
    "comment_payout_update",
    {
      "author": "thomasoss",
      "permlink": "blockchain-foundations-part-4-hash-function"
    }
  ],
  "block": 35948874,
  "trx_id": "0000000000000000000000000000000000000000",
  "op_in_trx": 3,
  "timestamp": "2019-08-28T17:36:39",
  "virtual_op": true,
  "trx_in_block": 4294967295
}
thomasossreceived 0.004 HP curation reward for @boosta / pwgjdl
2019/08/26 00:15:21
authorboosta
reward5.947524 VESTS
curatorthomasoss
permlinkpwgjdl
payout must be claimedtrue
Transaction InfoBlock #35875370/Virtual Operation 4294967295:7
View Raw JSON Data
{
  "op": [
    "curation_reward",
    {
      "author": "boosta",
      "reward": "5.947524 VESTS",
      "curator": "thomasoss",
      "permlink": "pwgjdl",
      "payout_must_be_claimed": true
    }
  ],
  "block": 35875370,
  "trx_id": "0000000000000000000000000000000000000000",
  "op_in_trx": 7,
  "timestamp": "2019-08-26T00:15:21",
  "virtual_op": true,
  "trx_in_block": 4294967295
}
thomasossupdated payout for pwfztk
2019/08/25 17:12:57
authorthomasoss
permlinkpwfztk
Transaction InfoBlock #35866935/Virtual Operation 4294967295:5
View Raw JSON Data
{
  "op": [
    "comment_payout_update",
    {
      "author": "thomasoss",
      "permlink": "pwfztk"
    }
  ],
  "block": 35866935,
  "trx_id": "0000000000000000000000000000000000000000",
  "op_in_trx": 5,
  "timestamp": "2019-08-25T17:12:57",
  "virtual_op": true,
  "trx_in_block": 4294967295
}
thomasossreceived 0.361 HBD reward share for pwfztk
2019/08/25 17:12:57
authorthomasoss
payout0.361 HBD
permlinkpwfztk
author rewards1273
total payout value0.270 HBD
curator payout value0.090 HBD
beneficiary payout value0.000 HBD
Transaction InfoBlock #35866935/Virtual Operation 4294967295:4
View Raw JSON Data
{
  "op": [
    "comment_reward",
    {
      "author": "thomasoss",
      "payout": "0.361 HBD",
      "permlink": "pwfztk",
      "author_rewards": 1273,
      "total_payout_value": "0.270 HBD",
      "curator_payout_value": "0.090 HBD",
      "beneficiary_payout_value": "0.000 HBD"
    }
  ],
  "block": 35866935,
  "trx_id": "0000000000000000000000000000000000000000",
  "op_in_trx": 4,
  "timestamp": "2019-08-25T17:12:57",
  "virtual_op": true,
  "trx_in_block": 4294967295
}
thomasossreceived 0.630 HIVE, 0.001 HBD, 0.778 HP author reward for @thomasoss / pwfztk
2019/08/25 17:12:57
authorthomasoss
permlinkpwfztk
hbd payout0.001 HBD
hive payout0.630 HIVE
vesting payout1262.880444 VESTS
payout must be claimedtrue
curators vesting payout840.598600 VESTS
Transaction InfoBlock #35866935/Virtual Operation 4294967295:3
View Raw JSON Data
{
  "op": [
    "author_reward",
    {
      "author": "thomasoss",
      "permlink": "pwfztk",
      "hbd_payout": "0.001 HBD",
      "hive_payout": "0.630 HIVE",
      "vesting_payout": "1262.880444 VESTS",
      "payout_must_be_claimed": true,
      "curators_vesting_payout": "840.598600 VESTS"
    }
  ],
  "block": 35866935,
  "trx_id": "0000000000000000000000000000000000000000",
  "op_in_trx": 3,
  "timestamp": "2019-08-25T17:12:57",
  "virtual_op": true,
  "trx_in_block": 4294967295
}
2019/08/24 06:04:39
idfollow
json["follow",{"follower":"thomasoss","following":"steeminfobot","what":["blog"]}]
required auths[]
required posting auths["thomasoss"]
Transaction InfoBlock #35824833/Trx 32dbeb84a8ffef6c987eb9b2caaaf19fec559978
View Raw JSON Data
{
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"thomasoss\",\"following\":\"steeminfobot\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "thomasoss"
      ]
    }
  ],
  "block": 35824833,
  "trx_id": "32dbeb84a8ffef6c987eb9b2caaaf19fec559978",
  "op_in_trx": 0,
  "timestamp": "2019-08-24T06:04:39",
  "virtual_op": false,
  "trx_in_block": 18
}
2019/08/24 06:04:24
voterthomasoss
authorsteeminfobot
weight48 (0.48%)
rshares1619097320
permlinktitle-how-to-powerup-your-blog-action-4-powerup-other-channels-slideshare
pending payout87.014 HBD
total vote weight16037537
Transaction InfoBlock #35824828/Trx 24ea42ab672d6765256cb7aa10afaef576642728
View Raw JSON Data
{
  "op": [
    "effective_comment_vote",
    {
      "voter": "thomasoss",
      "author": "steeminfobot",
      "weight": 48,
      "rshares": 1619097320,
      "permlink": "title-how-to-powerup-your-blog-action-4-powerup-other-channels-slideshare",
      "pending_payout": "87.014 HBD",
      "total_vote_weight": 16037537
    }
  ],
  "block": 35824828,
  "trx_id": "24ea42ab672d6765256cb7aa10afaef576642728",
  "op_in_trx": 1,
  "timestamp": "2019-08-24T06:04:24",
  "virtual_op": true,
  "trx_in_block": 0
}
2019/08/24 06:04:24
voterthomasoss
authorsteeminfobot
weight10000 (100.00%)
permlinktitle-how-to-powerup-your-blog-action-4-powerup-other-channels-slideshare
Transaction InfoBlock #35824828/Trx 24ea42ab672d6765256cb7aa10afaef576642728
View Raw JSON Data
{
  "op": [
    "vote",
    {
      "voter": "thomasoss",
      "author": "steeminfobot",
      "weight": 10000,
      "permlink": "title-how-to-powerup-your-blog-action-4-powerup-other-channels-slideshare"
    }
  ],
  "block": 35824828,
  "trx_id": "24ea42ab672d6765256cb7aa10afaef576642728",
  "op_in_trx": 0,
  "timestamp": "2019-08-24T06:04:24",
  "virtual_op": false,
  "trx_in_block": 0
}
2019/08/24 06:01:09
idfollow
json["follow",{"follower":"thomasoss","following":"nin4i","what":["blog"]}]
required auths[]
required posting auths["thomasoss"]
Transaction InfoBlock #35824763/Trx 35e7c0a219f5435411723b980fc15126687d15fd
View Raw JSON Data
{
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"thomasoss\",\"following\":\"nin4i\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "thomasoss"
      ]
    }
  ],
  "block": 35824763,
  "trx_id": "35e7c0a219f5435411723b980fc15126687d15fd",
  "op_in_trx": 0,
  "timestamp": "2019-08-24T06:01:09",
  "virtual_op": false,
  "trx_in_block": 24
}
2019/08/24 06:00:57
voterthomasoss
authornin4i
weight10000 (100.00%)
permlinkactifit-nin4i-20190811t200528501z
Transaction InfoBlock #35824759/Trx 35cfa591bb6d8b2f3ccf0993e2e2aaa9bacb1aa4
View Raw JSON Data
{
  "op": [
    "vote",
    {
      "voter": "thomasoss",
      "author": "nin4i",
      "weight": 10000,
      "permlink": "actifit-nin4i-20190811t200528501z"
    }
  ],
  "block": 35824759,
  "trx_id": "35cfa591bb6d8b2f3ccf0993e2e2aaa9bacb1aa4",
  "op_in_trx": 0,
  "timestamp": "2019-08-24T06:00:57",
  "virtual_op": false,
  "trx_in_block": 21
}
2019/08/24 05:59:51
body@@ -1027,16 +1027,152 @@ unction) +%0A- %5BPart 5: Merkle Tree an Merkle Root%5D(https://steemit.com/merkle/@thomasoss/blockchain-foundations-part-5-merkle-tree-and-merkle-root) %0A%0AThe ne
titleBlockchain Foundations Part 1: Distributed, Decentralized and Centralized Computer Architecture
authorthomasoss
permlinkblockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture
json metadata{"tags":["blockchain","centralized","decentralized","distributed","architecture"],"image":["https://cdn.steemitimages.com/DQmekyCqN6aKDZTeZF1f8LeWdd8U7jXNUn4KbRgnfCHHzat/image.png","https://cdn.steemitimages.com/DQmZyts7uG8WFYFrFosC6igcPkNtUK4Rphv7jktj1WhKk4x/image.png","https://cdn.steemitimages.com/DQmWs3aueu5cwZECx7hugNQRgur1ctXWjbHJsMXeFvyGkt3/image.png"],"app":"steemit/0.1","format":"markdown","links":["https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-2-peer-to-peer-architecture-and-hybrid-computer-system-architecture","https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-5-1-5-how-the-architecture-affects-the-internet-user","https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-4-hash-function","https://steemit.com/merkle/@thomasoss/blockchain-foundations-part-5-merkle-tree-and-merkle-root"]}
parent author
parent permlinkblockchain
Transaction InfoBlock #35824737/Trx 048d002cf45c2484448af668beed9cdc98fde0e8
View Raw JSON Data
{
  "op": [
    "comment",
    {
      "body": "@@ -1027,16 +1027,152 @@\n unction)\n+%0A- %5BPart 5: Merkle Tree an Merkle Root%5D(https://steemit.com/merkle/@thomasoss/blockchain-foundations-part-5-merkle-tree-and-merkle-root)\n %0A%0AThe ne\n",
      "title": "Blockchain Foundations Part 1: Distributed, Decentralized and Centralized Computer Architecture",
      "author": "thomasoss",
      "permlink": "blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture",
      "json_metadata": "{\"tags\":[\"blockchain\",\"centralized\",\"decentralized\",\"distributed\",\"architecture\"],\"image\":[\"https://cdn.steemitimages.com/DQmekyCqN6aKDZTeZF1f8LeWdd8U7jXNUn4KbRgnfCHHzat/image.png\",\"https://cdn.steemitimages.com/DQmZyts7uG8WFYFrFosC6igcPkNtUK4Rphv7jktj1WhKk4x/image.png\",\"https://cdn.steemitimages.com/DQmWs3aueu5cwZECx7hugNQRgur1ctXWjbHJsMXeFvyGkt3/image.png\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\",\"links\":[\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-2-peer-to-peer-architecture-and-hybrid-computer-system-architecture\",\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-5-1-5-how-the-architecture-affects-the-internet-user\",\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-4-hash-function\",\"https://steemit.com/merkle/@thomasoss/blockchain-foundations-part-5-merkle-tree-and-merkle-root\"]}",
      "parent_author": "",
      "parent_permlink": "blockchain"
    }
  ],
  "block": 35824737,
  "trx_id": "048d002cf45c2484448af668beed9cdc98fde0e8",
  "op_in_trx": 0,
  "timestamp": "2019-08-24T05:59:51",
  "virtual_op": false,
  "trx_in_block": 21
}
2019/08/24 05:59:27
voternin4i
authorthomasoss
weight4525 (45.25%)
rshares711499519
permlinkblockchain-foundations-part-5-merkle-tree-and-merkle-root
pending payout0.000 HBD
total vote weight27552
Transaction InfoBlock #35824729/Trx c1366ffda7ae105ab1ecc4c9774215ce5390de63
View Raw JSON Data
{
  "op": [
    "effective_comment_vote",
    {
      "voter": "nin4i",
      "author": "thomasoss",
      "weight": 4525,
      "rshares": 711499519,
      "permlink": "blockchain-foundations-part-5-merkle-tree-and-merkle-root",
      "pending_payout": "0.000 HBD",
      "total_vote_weight": 27552
    }
  ],
  "block": 35824729,
  "trx_id": "c1366ffda7ae105ab1ecc4c9774215ce5390de63",
  "op_in_trx": 1,
  "timestamp": "2019-08-24T05:59:27",
  "virtual_op": true,
  "trx_in_block": 18
}
2019/08/24 05:59:27
voternin4i
authorthomasoss
weight10000 (100.00%)
permlinkblockchain-foundations-part-5-merkle-tree-and-merkle-root
Transaction InfoBlock #35824729/Trx c1366ffda7ae105ab1ecc4c9774215ce5390de63
View Raw JSON Data
{
  "op": [
    "vote",
    {
      "voter": "nin4i",
      "author": "thomasoss",
      "weight": 10000,
      "permlink": "blockchain-foundations-part-5-merkle-tree-and-merkle-root"
    }
  ],
  "block": 35824729,
  "trx_id": "c1366ffda7ae105ab1ecc4c9774215ce5390de63",
  "op_in_trx": 0,
  "timestamp": "2019-08-24T05:59:27",
  "virtual_op": false,
  "trx_in_block": 18
}
2019/08/24 05:56:42
bodyHi! I am a robot. I just upvoted you! I found similar content that readers might be interested in: http://www.omnisecu.com/tcpip/what-are-hash-values-important-hash-value-algorithms.php
title
authorcheetah
permlinkcheetah-re-thomasossblockchain-foundations-part-5-merkle-tree-and-merkle-root
json metadata
parent authorthomasoss
parent permlinkblockchain-foundations-part-5-merkle-tree-and-merkle-root
Transaction InfoBlock #35824674/Trx 414496d6f670fe893e03578ef97c17c9c194d399
View Raw JSON Data
{
  "op": [
    "comment",
    {
      "body": "Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:\nhttp://www.omnisecu.com/tcpip/what-are-hash-values-important-hash-value-algorithms.php",
      "title": "",
      "author": "cheetah",
      "permlink": "cheetah-re-thomasossblockchain-foundations-part-5-merkle-tree-and-merkle-root",
      "json_metadata": "",
      "parent_author": "thomasoss",
      "parent_permlink": "blockchain-foundations-part-5-merkle-tree-and-merkle-root"
    }
  ],
  "block": 35824674,
  "trx_id": "414496d6f670fe893e03578ef97c17c9c194d399",
  "op_in_trx": 0,
  "timestamp": "2019-08-24T05:56:42",
  "virtual_op": false,
  "trx_in_block": 13
}
2019/08/24 05:56:39
votercheetah
authorthomasoss
weight45 (0.45%)
rshares20422231
permlinkblockchain-foundations-part-5-merkle-tree-and-merkle-root
pending payout0.000 HBD
total vote weight4540
Transaction InfoBlock #35824673/Trx a68fc4c38cad632f14283405a267802c79389cd5
View Raw JSON Data
{
  "op": [
    "effective_comment_vote",
    {
      "voter": "cheetah",
      "author": "thomasoss",
      "weight": 45,
      "rshares": 20422231,
      "permlink": "blockchain-foundations-part-5-merkle-tree-and-merkle-root",
      "pending_payout": "0.000 HBD",
      "total_vote_weight": 4540
    }
  ],
  "block": 35824673,
  "trx_id": "a68fc4c38cad632f14283405a267802c79389cd5",
  "op_in_trx": 1,
  "timestamp": "2019-08-24T05:56:39",
  "virtual_op": true,
  "trx_in_block": 10
}
2019/08/24 05:56:39
votercheetah
authorthomasoss
weight8 (0.08%)
permlinkblockchain-foundations-part-5-merkle-tree-and-merkle-root
Transaction InfoBlock #35824673/Trx a68fc4c38cad632f14283405a267802c79389cd5
View Raw JSON Data
{
  "op": [
    "vote",
    {
      "voter": "cheetah",
      "author": "thomasoss",
      "weight": 8,
      "permlink": "blockchain-foundations-part-5-merkle-tree-and-merkle-root"
    }
  ],
  "block": 35824673,
  "trx_id": "a68fc4c38cad632f14283405a267802c79389cd5",
  "op_in_trx": 0,
  "timestamp": "2019-08-24T05:56:39",
  "virtual_op": false,
  "trx_in_block": 10
}
2019/08/24 05:56:30
bodyThis article talks about Merkle Tree and Merkle Root. The concept is used in many blockchains, for example in the Ethereum or Bitcoin blockchain. Merkle tree is often mentioned when talking about blockchain, Bitcoin or similar topics. Hence it is useful to know what a Merkle tree is The article is part of a series starting with this article: [Blockchain Foundations Part 1: Distributed, Decentralized and Centralized Computer Architecture](https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture) The articles are drawn from my book "Blockchain and Crypto Currencies Easy to Understand for Everyone, Thomas Bauer". Please refer to the [part 1 article](https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture) for a introduction to the blockchain foundations series. # Merkle Tree and Merkle Root The Merkle tree is a hash tree. Ralph Merkle specified it in 1979. It is a tree consisting of hash values. - All leaves of the tree represent the hash values of data blocks - All intersections of the tree represent the hash value derived from 2 to n subjacent hash values. In a binary hash tree an intersection hash value always is derived from exactly 2 subjacent hash values For building the Merkle tree in the subsequent example in the first step of all strings (like "A sends 0,01 BTC to C") on the lowest level the SHA-256 hash value was derived. To build the nodes the hash value for each node was derived from the concatenated two hash values below the node. ![](https://cdn.steemitimages.com/DQmRGq22MGCByLJaaRiL95FrhWtrU5deGUo8TnfJftoBU5P/image.png) Figure 5: Merkle tree What to do if there are not exactly 4, 8, 16, … transactions? There are different methods. One method for a node with only one leave is to duplicate the existing leave. That is the way Bitcoin does it. ![](https://cdn.steemitimages.com/DQmf7TiaWQSGfxJzSFCHGkJVQx1hjPt7ZgnS6fUTeWzm4Cu/image.png) Figure 6: Merkle tree with an uneven number of leaves We use the Merkle tree to check data blocks being unchanged since they have been stored. For this we only need to store the root hash value. A new calculation of the Merkle tree bases on the stored data blocks will lead to the same root hash value, if the data blocks are unchanged. With a Merkle tree we can check data blocks with little costs. Assume we want to check data block 4 shown in the figure above for being unchanged. Then we need for the check beside data block 4 and its corresponding hash value only the hash value of data block 3, the hash value 12 and the hash value 5555. The hash values 34, 1234 and 12345555 we calculate from these inputs to check for data block 4 being unchanged. If we add a new data block to a Merkle tree, we do not need to recalculate the whole tree. We only need to recalculate the hash value of the new data block and the hash values of the nodes above the new data block. Then our Merkle tree is consistent once again. ![](https://cdn.steemitimages.com/DQmTkJyGacUqjhocGQZGUxUg1ZENQhBAdyBV5uMJm2rRifw/image.png) Figure 7: Do a change to a Merkle tree In the figure the light blue elements (data block 6 and hash value data block 6) where added and calculated. The yellow elements (hash values 56, 5656 and 12345656) we need to recalculate. All the other elements with the white background remain unchanged. Blockchain uses Merkle tree for example for: - For storing the transactions within a block as Merkle tree - Bitcoin calculates a hash value for each block. Because the transactions are stored in a Merkle tree the Merkle root hash value represents all transactions in the block. Hence for the calculation of the block hash value it is not necessary to derive a hash value from all the data contained in the block. It is enough to derive the block hash value from the block header containing the root hash value of the Merkle Tree Merkle tree is often mentioned when talking about blockchain, Bitcoin or similar topics. Hence it is useful to know what a Merkle tree is. On the other hand, Merkle tree is located deep in the details of implementation. You will understand blockchain without knowing details about the Merkle tree or even knowing how to build one. It is enough to know that a Merkle root hash can unambiguously represent the complete data structure it stands for.
titleBlockchain Foundations Part 5: Merkle Tree and Merkle Root
authorthomasoss
permlinkblockchain-foundations-part-5-merkle-tree-and-merkle-root
json metadata{"tags":["merkle","ethereum","bitcoin","hash","blockchain"],"image":["https://cdn.steemitimages.com/DQmRGq22MGCByLJaaRiL95FrhWtrU5deGUo8TnfJftoBU5P/image.png","https://cdn.steemitimages.com/DQmf7TiaWQSGfxJzSFCHGkJVQx1hjPt7ZgnS6fUTeWzm4Cu/image.png","https://cdn.steemitimages.com/DQmTkJyGacUqjhocGQZGUxUg1ZENQhBAdyBV5uMJm2rRifw/image.png"],"links":["https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture"],"app":"steemit/0.1","format":"markdown"}
parent author
parent permlinkmerkle
Transaction InfoBlock #35824670/Trx 464be6fe53ed8e6647042a8afc0d66e7ff29618c
View Raw JSON Data
{
  "op": [
    "comment",
    {
      "body": "This article talks about Merkle Tree and Merkle Root. The concept is used in many blockchains, for example in the Ethereum or Bitcoin blockchain. Merkle tree is often mentioned when talking about blockchain, Bitcoin or similar topics. Hence it is useful to know what a Merkle tree is\n\nThe article is part of a series starting with this article: [Blockchain Foundations Part 1: Distributed, Decentralized and Centralized Computer Architecture](https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture)\n\nThe articles are drawn from my book \"Blockchain and Crypto Currencies Easy to Understand for Everyone, Thomas Bauer\". Please refer to the [part 1 article](https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture) for a introduction to the blockchain foundations series.\n\n# Merkle Tree and Merkle Root\n\nThe Merkle tree is a hash tree. Ralph Merkle specified it in 1979. It is a tree consisting of hash values. \n- All leaves of the tree represent the hash values of data blocks\n- All intersections of the tree represent the hash value derived from 2 to n subjacent hash values. In a binary hash tree an intersection hash value always is derived from exactly 2 subjacent hash values\n\nFor building the Merkle tree in the subsequent example in the first step of all strings (like \"A sends 0,01 BTC to C\") on the lowest level the SHA-256 hash value was derived. To build the nodes the hash value for each node was derived from the concatenated two hash values below the node.\n\n![](https://cdn.steemitimages.com/DQmRGq22MGCByLJaaRiL95FrhWtrU5deGUo8TnfJftoBU5P/image.png)\nFigure 5: Merkle tree\n\nWhat to do if there are not exactly 4, 8, 16, … transactions? There are different methods. One method for a node with only one leave is to duplicate the existing leave. That is the way Bitcoin does it. \n\n![](https://cdn.steemitimages.com/DQmf7TiaWQSGfxJzSFCHGkJVQx1hjPt7ZgnS6fUTeWzm4Cu/image.png)\nFigure 6: Merkle tree with an uneven number of leaves\n\nWe use the Merkle tree to check data blocks being unchanged since they have been stored. For this we only need to store the root hash value. A new calculation of the Merkle tree bases on the stored data blocks will lead to the same root hash value, if the data blocks are unchanged. \n\nWith a Merkle tree we can check data blocks with little costs. Assume we want to check data block 4 shown in the figure above for being unchanged. Then we need for the check beside data block 4 and its corresponding hash value only the hash value of data block 3, the hash value 12 and the hash value 5555. The hash values 34, 1234 and 12345555 we calculate from these inputs to check for data block 4 being unchanged.\n\nIf we add a new data block to a Merkle tree, we do not need to recalculate the whole tree. We only need to recalculate the hash value of the new data block and the hash values of the nodes above the new data block. Then our Merkle tree is consistent once again.\n\n![](https://cdn.steemitimages.com/DQmTkJyGacUqjhocGQZGUxUg1ZENQhBAdyBV5uMJm2rRifw/image.png)\nFigure 7: Do a change to a Merkle tree\n\nIn the figure the light blue elements (data block 6 and hash value data block 6) where added and calculated. The yellow elements (hash values 56, 5656 and 12345656) we need to recalculate. All the other elements with the white background remain unchanged.\n\nBlockchain uses Merkle tree for example for:\n- For storing the transactions within a block as Merkle tree\n- Bitcoin calculates a hash value for each block. Because the transactions are stored in a Merkle tree the Merkle root hash value represents all transactions in the block. Hence for the calculation of the block hash value it is not necessary to derive a hash value from all the data contained in the block. It is enough to derive the block hash value from the block header containing the root hash value of the Merkle Tree\n\nMerkle tree is often mentioned when talking about blockchain, Bitcoin or similar topics. Hence it is useful to know what a Merkle tree is. On the other hand, Merkle tree is located deep in the details of implementation. You will understand blockchain without knowing details about the Merkle tree or even knowing how to build one. It is enough to know that a Merkle root hash can unambiguously represent the complete data structure it stands for.",
      "title": "Blockchain Foundations Part 5: Merkle Tree and Merkle Root",
      "author": "thomasoss",
      "permlink": "blockchain-foundations-part-5-merkle-tree-and-merkle-root",
      "json_metadata": "{\"tags\":[\"merkle\",\"ethereum\",\"bitcoin\",\"hash\",\"blockchain\"],\"image\":[\"https://cdn.steemitimages.com/DQmRGq22MGCByLJaaRiL95FrhWtrU5deGUo8TnfJftoBU5P/image.png\",\"https://cdn.steemitimages.com/DQmf7TiaWQSGfxJzSFCHGkJVQx1hjPt7ZgnS6fUTeWzm4Cu/image.png\",\"https://cdn.steemitimages.com/DQmTkJyGacUqjhocGQZGUxUg1ZENQhBAdyBV5uMJm2rRifw/image.png\"],\"links\":[\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "merkle"
    }
  ],
  "block": 35824670,
  "trx_id": "464be6fe53ed8e6647042a8afc0d66e7ff29618c",
  "op_in_trx": 0,
  "timestamp": "2019-08-24T05:56:30",
  "virtual_op": false,
  "trx_in_block": 6
}
2019/08/22 07:45:03
authorthomasoss
permlinkblockchain-foundations-part-1-5-1-5-how-the-architecture-affects-the-internet-user
Transaction InfoBlock #35769326/Virtual Operation 4294967295:3
View Raw JSON Data
{
  "op": [
    "comment_payout_update",
    {
      "author": "thomasoss",
      "permlink": "blockchain-foundations-part-1-5-1-5-how-the-architecture-affects-the-internet-user"
    }
  ],
  "block": 35769326,
  "trx_id": "0000000000000000000000000000000000000000",
  "op_in_trx": 3,
  "timestamp": "2019-08-22T07:45:03",
  "virtual_op": true,
  "trx_in_block": 4294967295
}
2019/08/22 06:11:42
body@@ -20,16 +20,17 @@ ns basic +s about h @@ -41,16 +41,17 @@ function +s .%0A%0AThe a
titleBlockchain Foundations Part 4: Hash Function
authorthomasoss
permlinkblockchain-foundations-part-4-hash-function
json metadata{"tags":["blockchain","hash","foundations","encryption"],"links":["https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture"],"app":"steemit/0.1","format":"markdown"}
parent author
parent permlinkblockchain
Transaction InfoBlock #35767464/Trx 30d1064886e52561861ce0e0e24e8aa71dea7c76
View Raw JSON Data
{
  "op": [
    "comment",
    {
      "body": "@@ -20,16 +20,17 @@\n ns basic\n+s\n  about h\n@@ -41,16 +41,17 @@\n function\n+s\n .%0A%0AThe a\n",
      "title": "Blockchain Foundations Part 4: Hash Function",
      "author": "thomasoss",
      "permlink": "blockchain-foundations-part-4-hash-function",
      "json_metadata": "{\"tags\":[\"blockchain\",\"hash\",\"foundations\",\"encryption\"],\"links\":[\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "blockchain"
    }
  ],
  "block": 35767464,
  "trx_id": "30d1064886e52561861ce0e0e24e8aa71dea7c76",
  "op_in_trx": 0,
  "timestamp": "2019-08-22T06:11:42",
  "virtual_op": false,
  "trx_in_block": 13
}
2019/08/21 18:00:30
idfollow
json["follow",{"follower":"thomasoss","following":"ethsensei","what":["blog"]}]
required auths[]
required posting auths["thomasoss"]
Transaction InfoBlock #35752860/Trx 292e8d08bef5d5861131b279258c1f4199a3c24f
View Raw JSON Data
{
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"thomasoss\",\"following\":\"ethsensei\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "thomasoss"
      ]
    }
  ],
  "block": 35752860,
  "trx_id": "292e8d08bef5d5861131b279258c1f4199a3c24f",
  "op_in_trx": 0,
  "timestamp": "2019-08-21T18:00:30",
  "virtual_op": false,
  "trx_in_block": 18
}
2019/08/21 18:00:00
voterthomasoss
authorethsensei
weight10000 (100.00%)
permlinkwhy-ethereum-will-never-reach-another-ath
Transaction InfoBlock #35752850/Trx ade2ad5815e135bd0856f037001ccf2fd71c249f
View Raw JSON Data
{
  "op": [
    "vote",
    {
      "voter": "thomasoss",
      "author": "ethsensei",
      "weight": 10000,
      "permlink": "why-ethereum-will-never-reach-another-ath"
    }
  ],
  "block": 35752850,
  "trx_id": "ade2ad5815e135bd0856f037001ccf2fd71c249f",
  "op_in_trx": 0,
  "timestamp": "2019-08-21T18:00:00",
  "virtual_op": false,
  "trx_in_block": 4
}
2019/08/21 17:54:18
voterthomasoss
authorlunaticpandora
weight47 (0.47%)
rshares1586573104
permlinkplaying-boardgames-on-the-saito-blockchain
pending payout144.140 HBD
total vote weight21006022
Transaction InfoBlock #35752737/Trx 8c4c6d4348c99b5fd735e12e56a6ef139aecc3f7
View Raw JSON Data
{
  "op": [
    "effective_comment_vote",
    {
      "voter": "thomasoss",
      "author": "lunaticpandora",
      "weight": 47,
      "rshares": 1586573104,
      "permlink": "playing-boardgames-on-the-saito-blockchain",
      "pending_payout": "144.140 HBD",
      "total_vote_weight": 21006022
    }
  ],
  "block": 35752737,
  "trx_id": "8c4c6d4348c99b5fd735e12e56a6ef139aecc3f7",
  "op_in_trx": 1,
  "timestamp": "2019-08-21T17:54:18",
  "virtual_op": true,
  "trx_in_block": 34
}
2019/08/21 17:54:18
voterthomasoss
authorlunaticpandora
weight10000 (100.00%)
permlinkplaying-boardgames-on-the-saito-blockchain
Transaction InfoBlock #35752737/Trx 8c4c6d4348c99b5fd735e12e56a6ef139aecc3f7
View Raw JSON Data
{
  "op": [
    "vote",
    {
      "voter": "thomasoss",
      "author": "lunaticpandora",
      "weight": 10000,
      "permlink": "playing-boardgames-on-the-saito-blockchain"
    }
  ],
  "block": 35752737,
  "trx_id": "8c4c6d4348c99b5fd735e12e56a6ef139aecc3f7",
  "op_in_trx": 0,
  "timestamp": "2019-08-21T17:54:18",
  "virtual_op": false,
  "trx_in_block": 34
}
2019/08/21 17:52:51
voterlaissez-faire
authorthomasoss
weight1614 (16.14%)
rshares52870523
permlinkblockchain-foundations-part-4-hash-function
pending payout0.000 HBD
total vote weight14551
Transaction InfoBlock #35752708/Trx fbcc71d3c341e50d06ab85c13a23ad193a944f26
View Raw JSON Data
{
  "op": [
    "effective_comment_vote",
    {
      "voter": "laissez-faire",
      "author": "thomasoss",
      "weight": 1614,
      "rshares": 52870523,
      "permlink": "blockchain-foundations-part-4-hash-function",
      "pending_payout": "0.000 HBD",
      "total_vote_weight": 14551
    }
  ],
  "block": 35752708,
  "trx_id": "fbcc71d3c341e50d06ab85c13a23ad193a944f26",
  "op_in_trx": 1,
  "timestamp": "2019-08-21T17:52:51",
  "virtual_op": true,
  "trx_in_block": 21
}
2019/08/21 17:52:51
voterlaissez-faire
authorthomasoss
weight10000 (100.00%)
permlinkblockchain-foundations-part-4-hash-function
Transaction InfoBlock #35752708/Trx fbcc71d3c341e50d06ab85c13a23ad193a944f26
View Raw JSON Data
{
  "op": [
    "vote",
    {
      "voter": "laissez-faire",
      "author": "thomasoss",
      "weight": 10000,
      "permlink": "blockchain-foundations-part-4-hash-function"
    }
  ],
  "block": 35752708,
  "trx_id": "fbcc71d3c341e50d06ab85c13a23ad193a944f26",
  "op_in_trx": 0,
  "timestamp": "2019-08-21T17:52:51",
  "virtual_op": false,
  "trx_in_block": 21
}
2019/08/21 17:50:36
voterthomasoss
authorhatu
weight49 (0.49%)
rshares1619097320
permlinka-programmable-internet-faster-content-consumption-at-lower-costs
pending payout134.051 HBD
total vote weight20128478
Transaction InfoBlock #35752663/Trx 8c82249bd6918c9c51755e45845af068d3f0f3b1
View Raw JSON Data
{
  "op": [
    "effective_comment_vote",
    {
      "voter": "thomasoss",
      "author": "hatu",
      "weight": 49,
      "rshares": 1619097320,
      "permlink": "a-programmable-internet-faster-content-consumption-at-lower-costs",
      "pending_payout": "134.051 HBD",
      "total_vote_weight": 20128478
    }
  ],
  "block": 35752663,
  "trx_id": "8c82249bd6918c9c51755e45845af068d3f0f3b1",
  "op_in_trx": 1,
  "timestamp": "2019-08-21T17:50:36",
  "virtual_op": true,
  "trx_in_block": 14
}
2019/08/21 17:50:36
voterthomasoss
authorhatu
weight10000 (100.00%)
permlinka-programmable-internet-faster-content-consumption-at-lower-costs
Transaction InfoBlock #35752663/Trx 8c82249bd6918c9c51755e45845af068d3f0f3b1
View Raw JSON Data
{
  "op": [
    "vote",
    {
      "voter": "thomasoss",
      "author": "hatu",
      "weight": 10000,
      "permlink": "a-programmable-internet-faster-content-consumption-at-lower-costs"
    }
  ],
  "block": 35752663,
  "trx_id": "8c82249bd6918c9c51755e45845af068d3f0f3b1",
  "op_in_trx": 0,
  "timestamp": "2019-08-21T17:50:36",
  "virtual_op": false,
  "trx_in_block": 14
}
2019/08/21 17:42:12
body@@ -1924,16 +1924,511 @@ b8816e%0A%0A +The hash values shown in the table (for the case they are not shown in full length in the table column)%0A6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b%0Ad4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35%0Acf7e66b7c62562fb697576c1592a0787dffa4e542b770e28d330ca623f26c381%0A151471b8dcd8d9e7f93282172c3fdab0d356cc6d32944253d062a8df31a5c59e%0Acdb72b05832ff97ffe86f6cf716d45dcd50fbb3b5c4999b6dbd182a8c3ffd0e9%0A3b54c614f29d96ef8a3250fb56d581d96f19568659f9ee20ff0f660e21b8816e%0A%0A We see t
titleBlockchain Foundations Part 4: Hash Function
authorthomasoss
permlinkblockchain-foundations-part-4-hash-function
json metadata{"tags":["blockchain","hash","foundations","encryption"],"links":["https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture"],"app":"steemit/0.1","format":"markdown"}
parent author
parent permlinkblockchain
Transaction InfoBlock #35752495/Trx 1fa28b49352ec4bea0ee11125300fddb225b48c3
View Raw JSON Data
{
  "op": [
    "comment",
    {
      "body": "@@ -1924,16 +1924,511 @@\n b8816e%0A%0A\n+The hash values shown in the table (for the case they are not shown in full length in the table column)%0A6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b%0Ad4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35%0Acf7e66b7c62562fb697576c1592a0787dffa4e542b770e28d330ca623f26c381%0A151471b8dcd8d9e7f93282172c3fdab0d356cc6d32944253d062a8df31a5c59e%0Acdb72b05832ff97ffe86f6cf716d45dcd50fbb3b5c4999b6dbd182a8c3ffd0e9%0A3b54c614f29d96ef8a3250fb56d581d96f19568659f9ee20ff0f660e21b8816e%0A%0A\n We see t\n",
      "title": "Blockchain Foundations Part 4: Hash Function",
      "author": "thomasoss",
      "permlink": "blockchain-foundations-part-4-hash-function",
      "json_metadata": "{\"tags\":[\"blockchain\",\"hash\",\"foundations\",\"encryption\"],\"links\":[\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "blockchain"
    }
  ],
  "block": 35752495,
  "trx_id": "1fa28b49352ec4bea0ee11125300fddb225b48c3",
  "op_in_trx": 0,
  "timestamp": "2019-08-21T17:42:12",
  "virtual_op": false,
  "trx_in_block": 28
}
2019/08/21 17:38:42
body@@ -307,16 +307,176 @@ shed are +%0A%0A**Distributed, Decentralized and Centralized Computer Architecture**%0A- Part 1: Distributed, Decentralized and Centralized Computer Architecture (this article) %0A- %5BPart @@ -871,16 +871,174 @@ -user)%0A%0A +**Signature, Encryption and Hash Function**%0A- %5BPart 4: Hash Function%5D(https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-4-hash-function)%0A%0A The next @@ -1094,33 +1094,34 @@ bout%0A- Signature -, +%0A- Encryption and @@ -1115,34 +1115,16 @@ cryption - and Hash Function %0A- Block
titleBlockchain Foundations Part 1: Distributed, Decentralized and Centralized Computer Architecture
authorthomasoss
permlinkblockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture
json metadata{"tags":["blockchain","centralized","decentralized","distributed","architecture"],"image":["https://cdn.steemitimages.com/DQmekyCqN6aKDZTeZF1f8LeWdd8U7jXNUn4KbRgnfCHHzat/image.png","https://cdn.steemitimages.com/DQmZyts7uG8WFYFrFosC6igcPkNtUK4Rphv7jktj1WhKk4x/image.png","https://cdn.steemitimages.com/DQmWs3aueu5cwZECx7hugNQRgur1ctXWjbHJsMXeFvyGkt3/image.png"],"app":"steemit/0.1","format":"markdown","links":["https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-2-peer-to-peer-architecture-and-hybrid-computer-system-architecture","https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-5-1-5-how-the-architecture-affects-the-internet-user","https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-4-hash-function"]}
parent author
parent permlinkblockchain
Transaction InfoBlock #35752425/Trx c9eca5f754e07b680650bd91bb93eb9a94f7f4d0
View Raw JSON Data
{
  "op": [
    "comment",
    {
      "body": "@@ -307,16 +307,176 @@\n shed are\n+%0A%0A**Distributed, Decentralized and Centralized Computer Architecture**%0A- Part 1: Distributed, Decentralized and Centralized Computer Architecture (this article)\n %0A- %5BPart\n@@ -871,16 +871,174 @@\n -user)%0A%0A\n+**Signature, Encryption and Hash Function**%0A- %5BPart 4: Hash Function%5D(https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-4-hash-function)%0A%0A\n The next\n@@ -1094,33 +1094,34 @@\n bout%0A- Signature\n-,\n+%0A-\n  Encryption and \n@@ -1115,34 +1115,16 @@\n cryption\n- and Hash Function\n %0A- Block\n",
      "title": "Blockchain Foundations Part 1: Distributed, Decentralized and Centralized Computer Architecture",
      "author": "thomasoss",
      "permlink": "blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture",
      "json_metadata": "{\"tags\":[\"blockchain\",\"centralized\",\"decentralized\",\"distributed\",\"architecture\"],\"image\":[\"https://cdn.steemitimages.com/DQmekyCqN6aKDZTeZF1f8LeWdd8U7jXNUn4KbRgnfCHHzat/image.png\",\"https://cdn.steemitimages.com/DQmZyts7uG8WFYFrFosC6igcPkNtUK4Rphv7jktj1WhKk4x/image.png\",\"https://cdn.steemitimages.com/DQmWs3aueu5cwZECx7hugNQRgur1ctXWjbHJsMXeFvyGkt3/image.png\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\",\"links\":[\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-2-peer-to-peer-architecture-and-hybrid-computer-system-architecture\",\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-5-1-5-how-the-architecture-affects-the-internet-user\",\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-4-hash-function\"]}",
      "parent_author": "",
      "parent_permlink": "blockchain"
    }
  ],
  "block": 35752425,
  "trx_id": "c9eca5f754e07b680650bd91bb93eb9a94f7f4d0",
  "op_in_trx": 0,
  "timestamp": "2019-08-21T17:38:42",
  "virtual_op": false,
  "trx_in_block": 3
}
2019/08/21 17:37:45
voteranomaly
authorthomasoss
weight905 (9.05%)
rshares155506576
permlinkblockchain-foundations-part-4-hash-function
pending payout0.000 HBD
total vote weight12937
Transaction InfoBlock #35752406/Trx 8562c622c6b0c70a683bdbea0d65fde53b2ae258
View Raw JSON Data
{
  "op": [
    "effective_comment_vote",
    {
      "voter": "anomaly",
      "author": "thomasoss",
      "weight": 905,
      "rshares": 155506576,
      "permlink": "blockchain-foundations-part-4-hash-function",
      "pending_payout": "0.000 HBD",
      "total_vote_weight": 12937
    }
  ],
  "block": 35752406,
  "trx_id": "8562c622c6b0c70a683bdbea0d65fde53b2ae258",
  "op_in_trx": 1,
  "timestamp": "2019-08-21T17:37:45",
  "virtual_op": true,
  "trx_in_block": 14
}
2019/08/21 17:37:45
voteranomaly
authorthomasoss
weight100 (1.00%)
permlinkblockchain-foundations-part-4-hash-function
Transaction InfoBlock #35752406/Trx 8562c622c6b0c70a683bdbea0d65fde53b2ae258
View Raw JSON Data
{
  "op": [
    "vote",
    {
      "voter": "anomaly",
      "author": "thomasoss",
      "weight": 100,
      "permlink": "blockchain-foundations-part-4-hash-function"
    }
  ],
  "block": 35752406,
  "trx_id": "8562c622c6b0c70a683bdbea0d65fde53b2ae258",
  "op_in_trx": 0,
  "timestamp": "2019-08-21T17:37:45",
  "virtual_op": false,
  "trx_in_block": 14
}
2019/08/21 17:36:42
bodyThis article contains basic about hash function. The article is part of a series starting with this article: [Blockchain Foundations Part 1: Distributed, Decentralized and Centralized Computer Architecture](https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture) The articles are drawn from my book "Blockchain and Crypto Currencies Easy to Understand for Everyone, Thomas Bauer". Please refer to the [part 1 article](https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture) for a introduction to the blockchain foundations series. # Hash Function From the point of view of its user a hash function is something very simple. We take any algorithm being able to calculate the so-called hash value from an arbitrary row of bits. This algorithm is free of any random. A certain row of bits always leads to the same hash value, as long we use the same hash algorithm. If the input is not an already existing file but readable text we have to watch for the encoding (UTF-8, ASCII, …) of the input. If we change only one bit of the bit row the algorithm will lead to a completely different hash value. For example, the Bitcoin blockchain uses the SHA-256 (SHA = secure hash algorithm). input value (UTF-8 encoded) | SHA 256 hash value (hexadecimal) ------------ | ------------- 1 | 6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b 2 | d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35 I am an example | cf7e66b7c62562fb697576c1592a0787dffa4e542b770e28d330ca623f26c381 I am an exampl | 151471b8dcd8d9e7f93282172c3fdab0d356cc6d32944253d062a8df31a5c59e 3000000000000000000000000 | cdb72b05832ff97ffe86f6cf716d45dcd50fbb3b5c4999b6dbd182a8c3ffd0e9 3000000000000000000000001 | 3b54c614f29d96ef8a3250fb56d581d96f19568659f9ee20ff0f660e21b8816e We see that nearly similar input values lead to totally different hash values. The resulting hash value always has the same length independent of the input value length. SHA-256 always delivers a 256 bits hash value. A SHA-256 hash value of the complete Oxford English Dictionary has the same length as the SHA-256 hash value of the number 1. It is important to know that the same input always leads to the same hash value. The hash algorithm is very sensible to every difference of the input value. But it will be deterministic if the input value is the unchanged. A hash value we can derive from everything which can be represented by bit row of any length consisting of 0-values and 1-values: pure text, encrypted text, pictures, file with tax information, pdf file, word file and much more. If we derive a hash value from a content and store the hash value we later can use the hash value to check the content to unchanged. To do the check we again derive the hash value from the value and with an unchanged content we get the same hash value. A hash function is a one-way function. It is not possible to calculate the input value from the hash value. We may find the input value by trial and error. If we knew the input value being a number between 1 and 9, then we could derive the hash value for each of the numbers until we get one identically to the hash value we are searching the input value for. Practically impossible is it to derive the input value from the hash value for example if the input value is a picture. Assumptions about the content are not possible. We even do not know the length of the picture file. There is a chance to find the input value to a hash value if the input is a short row of bits or if we know some details about the input value reducing the possible range of input values considerably. If we do know little about the input value, it is practically impossible to find the input value to a hash value by try and error. A hash value may be derived from a single digit or from the complete Oxford English Dictionary. Of course, small input values may be hacked faster. If the input value for the hash function is three bytes long and a hacker tries out every possible bit combination starting with 0, 1, 00, 01, 11, 000 … then at the latest with reaching 111111111111111111111111 (24 times 1) the hacker will have found the input value. These 24 times 1's equal to decimal 16.777.215. Hence the hacker needs at most about 16,8 million tries for 3 bytes input value. But with a 6 bytes input value we have already about 281 trillion (281.474.976.710.655) possible input values. Another feature of hash functions is important for the blockchain. We cannot predict how a change to an existing bit row will affect the resulting hash value. As described in a later article of this series the Bitcoin mining "puzzle" is nothing else than finding a hash value derived from a block starting with a given number of zeros. The hash value must be the hash of the block content (the transactions enclosed and additional stuff) and an additional field. To this additional field we add a binary 1 until the resulting hash value meets the requirements. The rest of the block remains unchanged. Because there is no way to calculate which value of the additional number leads to a hash value with the required number of leading zeros, we need to add a binary 1 to this additional number until we find a matching hash value. Less important for understanding blockchain is how the hash value is calculated. Hence this is not described in this article series. We only need to know which algorithm is used in each environment. For example, Bitcoin uses among others the SHA-256 hash algorithm. We need to know with which hash algorithm a hash value was calculated in the past if we want to use the hash value to check a content being unchanged.
titleBlockchain Foundations Part 4: Hash Function
authorthomasoss
permlinkblockchain-foundations-part-4-hash-function
json metadata{"tags":["blockchain","hash","foundations","encryption"],"links":["https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture"],"app":"steemit/0.1","format":"markdown"}
parent author
parent permlinkblockchain
Transaction InfoBlock #35752385/Trx 74c7bad627a9c6bd292ea3280e19cfb47b44891b
View Raw JSON Data
{
  "op": [
    "comment",
    {
      "body": "This article contains basic about hash function.\n\nThe article is part of a series starting with this article: [Blockchain Foundations Part 1: Distributed, Decentralized and Centralized Computer Architecture](https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture)\n\nThe articles are drawn from my book \"Blockchain and Crypto Currencies Easy to Understand for Everyone, Thomas Bauer\". Please refer to the [part 1 article](https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture) for a introduction to the blockchain foundations series.\n\n# Hash Function\nFrom the point of view of its user a hash function is something very simple. We take any algorithm being able to calculate the so-called hash value from an arbitrary row of bits. This algorithm is free of any random. A certain row of bits always leads to the same hash value, as long we use the same hash algorithm. If the input is not an already existing file but readable text we have to watch for the encoding (UTF-8, ASCII, …) of the input. \n\nIf we change only one bit of the bit row the algorithm will lead to a completely different hash value. \n\nFor example, the Bitcoin blockchain uses the SHA-256 (SHA = secure hash algorithm).\n\ninput value (UTF-8 encoded) | SHA 256 hash value (hexadecimal)\n------------ | -------------\n1 | 6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b\n2 | d4735e3a265e16eee03f59718b9b5d03019c07d8b6c51f90da3a666eec13ab35\nI am an example | cf7e66b7c62562fb697576c1592a0787dffa4e542b770e28d330ca623f26c381\nI am an exampl | 151471b8dcd8d9e7f93282172c3fdab0d356cc6d32944253d062a8df31a5c59e\n3000000000000000000000000 | cdb72b05832ff97ffe86f6cf716d45dcd50fbb3b5c4999b6dbd182a8c3ffd0e9\n3000000000000000000000001 | 3b54c614f29d96ef8a3250fb56d581d96f19568659f9ee20ff0f660e21b8816e\n\nWe see that nearly similar input values lead to totally different hash values. The resulting hash value always has the same length independent of the input value length. SHA-256 always delivers a 256 bits hash value. A SHA-256 hash value of the complete Oxford English Dictionary has the same length as the SHA-256 hash value of the number 1.\n\nIt is important to know that the same input always leads to the same hash value. The hash algorithm is very sensible to every difference of the input value. But it will be deterministic if the input value is the unchanged. \n\nA hash value we can derive from everything which can be represented by bit row of any length consisting of 0-values and 1-values: pure text, encrypted text, pictures, file with tax information, pdf file, word file and much more.\n\nIf we derive a hash value from a content and store the hash value we later can use the hash value to check the content to unchanged. To do the check we again derive the hash value from the value and with an unchanged content we get the same hash value. \n\nA hash function is a one-way function. It is not possible to calculate the input value from the hash value. We may find the input value by trial and error. If we knew the input value being a number between 1 and 9, then we could derive the hash value for each of the numbers until we get one identically to the hash value we are searching the input value for.  \n\nPractically impossible is it to derive the input value from the hash value for example if the input value is a picture. Assumptions about the content are not possible. We even do not know the length of the picture file. \n\nThere is a chance to find the input value to a hash value if the input is a short row of bits or if we know some details about the input value reducing the possible range of input values considerably.\n\nIf we do know little about the input value, it is practically impossible to find the input value to a hash value by try and error. A hash value may be derived from a single digit or from the complete Oxford English Dictionary. \n\nOf course, small input values may be hacked faster. If the input value for the hash function is three bytes long and a hacker tries out every possible bit combination starting with 0, 1, 00, 01, 11, 000 … then at the latest with reaching 111111111111111111111111 (24 times 1) the hacker will have found the input value. These 24 times 1's equal to decimal 16.777.215. Hence the hacker needs at most about 16,8 million tries for 3 bytes input value. But with a 6 bytes input value we have already about 281 trillion (281.474.976.710.655) possible input values. \n\nAnother feature of hash functions is important for the blockchain. We cannot predict how a change to an existing bit row will affect the resulting hash value. As described in a later article of this series the Bitcoin mining \"puzzle\" is nothing else than finding a hash value derived from a block starting with a given number of zeros. The hash value must be the hash of the block content (the transactions enclosed and additional stuff) and an additional field. To this additional field we add a binary 1 until the resulting hash value meets the requirements. The rest of the block remains unchanged. Because there is no way to calculate which value of the additional number leads to a hash value with the required number of leading zeros, we need to add a binary 1 to this additional number until we find a matching hash value.\n\nLess important for understanding blockchain is how the hash value is calculated. Hence this is not described in this article series. We only need to know which algorithm is used in each environment. For example, Bitcoin uses among others the SHA-256 hash algorithm. \n\nWe need to know with which hash algorithm a hash value was calculated in the past if we want to use the hash value to check a content being unchanged.",
      "title": "Blockchain Foundations Part 4: Hash Function",
      "author": "thomasoss",
      "permlink": "blockchain-foundations-part-4-hash-function",
      "json_metadata": "{\"tags\":[\"blockchain\",\"hash\",\"foundations\",\"encryption\"],\"links\":[\"https://steemit.com/blockchain/@thomasoss/blockchain-foundations-part-1-distributed-decentralized-and-centralized-computer-architecture\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "blockchain"
    }
  ],
  "block": 35752385,
  "trx_id": "74c7bad627a9c6bd292ea3280e19cfb47b44891b",
  "op_in_trx": 0,
  "timestamp": "2019-08-21T17:36:42",
  "virtual_op": false,
  "trx_in_block": 9
}
thomasossupdated payout for pw4fud
2019/08/19 11:27:51
authorthomasoss
permlinkpw4fud
Transaction InfoBlock #35687511/Virtual Operation 4294967295:3
View Raw JSON Data
{
  "op": [
    "comment_payout_update",
    {
      "author": "thomasoss",
      "permlink": "pw4fud"
    }
  ],
  "block": 35687511,
  "trx_id": "0000000000000000000000000000000000000000",
  "op_in_trx": 3,
  "timestamp": "2019-08-19T11:27:51",
  "virtual_op": true,
  "trx_in_block": 4294967295
}
2019/08/19 06:17:57
authorthomasoss
permlinkblockchain-foundations-part-2-peer-to-peer-architecture-and-hybrid-computer-system-architecture
Transaction InfoBlock #35681322/Virtual Operation 4294967295:2
View Raw JSON Data
{
  "op": [
    "comment_payout_update",
    {
      "author": "thomasoss",
      "permlink": "blockchain-foundations-part-2-peer-to-peer-architecture-and-hybrid-computer-system-architecture"
    }
  ],
  "block": 35681322,
  "trx_id": "0000000000000000000000000000000000000000",
  "op_in_trx": 2,
  "timestamp": "2019-08-19T06:17:57",
  "virtual_op": true,
  "trx_in_block": 4294967295
}
thomasosseffective vote applied for @boosta / pwgjdl
2019/08/19 05:07:24
voterthomasoss
authorboosta
weight1544 (15.44%)
rshares1619097320
permlinkpwgjdl
pending payout0.098 HBD
total vote weight536581
Transaction InfoBlock #35679913/Trx 0e46e5479eb6464f66552e90ae9cda6828ef4050
View Raw JSON Data
{
  "op": [
    "effective_comment_vote",
    {
      "voter": "thomasoss",
      "author": "boosta",
      "weight": 1544,
      "rshares": 1619097320,
      "permlink": "pwgjdl",
      "pending_payout": "0.098 HBD",
      "total_vote_weight": 536581
    }
  ],
  "block": 35679913,
  "trx_id": "0e46e5479eb6464f66552e90ae9cda6828ef4050",
  "op_in_trx": 1,
  "timestamp": "2019-08-19T05:07:24",
  "virtual_op": true,
  "trx_in_block": 0
}
thomasossupvoted (100.00%) @boosta / pwgjdl
2019/08/19 05:07:24
voterthomasoss
authorboosta
weight10000 (100.00%)
permlinkpwgjdl
Transaction InfoBlock #35679913/Trx 0e46e5479eb6464f66552e90ae9cda6828ef4050
View Raw JSON Data
{
  "op": [
    "vote",
    {
      "voter": "thomasoss",
      "author": "boosta",
      "weight": 10000,
      "permlink": "pwgjdl"
    }
  ],
  "block": 35679913,
  "trx_id": "0e46e5479eb6464f66552e90ae9cda6828ef4050",
  "op_in_trx": 0,
  "timestamp": "2019-08-19T05:07:24",
  "virtual_op": false,
  "trx_in_block": 0
}
2019/08/19 00:15:24
bodyIs that your thinking? I agree with everything you said.
title
authorboosta
permlinkpwgjdl
json metadata{"tags":["blockchain"],"app":"steemit/0.1"}
parent authorthomasoss
parent permlinkpwfztk
Transaction InfoBlock #35674084/Trx 68e8122a286956834949332455e4aa9932570c40
View Raw JSON Data
{
  "op": [
    "comment",
    {
      "body": "Is that your thinking? I agree with everything you said.",
      "title": "",
      "author": "boosta",
      "permlink": "pwgjdl",
      "json_metadata": "{\"tags\":[\"blockchain\"],\"app\":\"steemit/0.1\"}",
      "parent_author": "thomasoss",
      "parent_permlink": "pwfztk"
    }
  ],
  "block": 35674084,
  "trx_id": "68e8122a286956834949332455e4aa9932570c40",
  "op_in_trx": 0,
  "timestamp": "2019-08-19T00:15:24",
  "virtual_op": false,
  "trx_in_block": 13
}
2019/08/18 20:52:42
bodyCongratulations @thomasoss! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) : <table><tr><td><img src="https://steemitimages.com/60x70/http://steemitboard.com/@thomasoss/voted.png?201908182009"></td><td>You received more than 10 upvotes. Your next target is to reach 50 upvotes.</td></tr> </table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@thomasoss) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=thomasoss)_</sub> <sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub> ###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!
title
authorsteemitboard
permlinksteemitboard-notify-thomasoss-20190818t205241000z
json metadata{"image":["https://steemitboard.com/img/notify.png"]}
parent authorthomasoss
parent permlinkblockchain-foundations-part-1-5-1-5-how-the-architecture-affects-the-internet-user
Transaction InfoBlock #35670036/Trx a4adfea121ca1a4a28c325457fd2be1a43af9296
View Raw JSON Data
{
  "op": [
    "comment",
    {
      "body": "Congratulations @thomasoss! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :\n\n<table><tr><td><img src=\"https://steemitimages.com/60x70/http://steemitboard.com/@thomasoss/voted.png?201908182009\"></td><td>You received more than 10 upvotes. Your next target is to reach 50 upvotes.</td></tr>\n</table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@thomasoss) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=thomasoss)_</sub>\n<sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub>\n\n\n\n###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!",
      "title": "",
      "author": "steemitboard",
      "permlink": "steemitboard-notify-thomasoss-20190818t205241000z",
      "json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}",
      "parent_author": "thomasoss",
      "parent_permlink": "blockchain-foundations-part-1-5-1-5-how-the-architecture-affects-the-internet-user"
    }
  ],
  "block": 35670036,
  "trx_id": "a4adfea121ca1a4a28c325457fd2be1a43af9296",
  "op_in_trx": 0,
  "timestamp": "2019-08-18T20:52:42",
  "virtual_op": false,
  "trx_in_block": 23
}
boostaeffective vote applied for @thomasoss / pwfztk
2019/08/18 18:47:51
voterboosta
authorthomasoss
weight1030266
rshares1061114838439
permlinkpwfztk
pending payout0.362 HBD
total vote weight1030266
Transaction InfoBlock #35667546/Trx b094ed18a9838cf175ed414ce3da827651961c6d
View Raw JSON Data
{
  "op": [
    "effective_comment_vote",
    {
      "voter": "boosta",
      "author": "thomasoss",
      "weight": 1030266,
      "rshares": 1061114838439,
      "permlink": "pwfztk",
      "pending_payout": "0.362 HBD",
      "total_vote_weight": 1030266
    }
  ],
  "block": 35667546,
  "trx_id": "b094ed18a9838cf175ed414ce3da827651961c6d",
  "op_in_trx": 1,
  "timestamp": "2019-08-18T18:47:51",
  "virtual_op": true,
  "trx_in_block": 29
}
boostaupvoted (5.00%) @thomasoss / pwfztk
2019/08/18 18:47:51
voterboosta
authorthomasoss
weight500 (5.00%)
permlinkpwfztk
Transaction InfoBlock #35667546/Trx b094ed18a9838cf175ed414ce3da827651961c6d
View Raw JSON Data
{
  "op": [
    "vote",
    {
      "voter": "boosta",
      "author": "thomasoss",
      "weight": 500,
      "permlink": "pwfztk"
    }
  ],
  "block": 35667546,
  "trx_id": "b094ed18a9838cf175ed414ce3da827651961c6d",
  "op_in_trx": 0,
  "timestamp": "2019-08-18T18:47:51",
  "virtual_op": false,
  "trx_in_block": 29
}
2019/08/18 17:38:30
voterthomasoss
authorfleetinuance
weight10000 (100.00%)
permlinkdoes-up-voting-something-cost-you-money
Transaction InfoBlock #35666164/Trx fe9befb697d1466ac3c3df82929b472e487ac52c
View Raw JSON Data
{
  "op": [
    "vote",
    {
      "voter": "thomasoss",
      "author": "fleetinuance",
      "weight": 10000,
      "permlink": "does-up-voting-something-cost-you-money"
    }
  ],
  "block": 35666164,
  "trx_id": "fe9befb697d1466ac3c3df82929b472e487ac52c",
  "op_in_trx": 0,
  "timestamp": "2019-08-18T17:38:30",
  "virtual_op": false,
  "trx_in_block": 7
}

Account Metadata

POSTING JSON METADATA
profile{"name":"Thomas","about":"Computer Scientist, software architect, Java programmer, mainframe specialist, project manager","location":"Munich, Germany","cover_image":"https://steemitimages.com/0x0/http://i.imgur.com/wHMAhxy.jpg","profile_image":"https://cdn.steemitimages.com/DQmYcL4i2C3q5yqGH6avREovheJvHzkjF2ibkaELQyqPDAR/P1080321.JPG"}
JSON METADATA
profile{"name":"Thomas","about":"Computer Scientist, software architect, Java programmer, mainframe specialist, project manager","location":"Munich, Germany","cover_image":"https://steemitimages.com/0x0/http://i.imgur.com/wHMAhxy.jpg","profile_image":"https://cdn.steemitimages.com/DQmYcL4i2C3q5yqGH6avREovheJvHzkjF2ibkaELQyqPDAR/P1080321.JPG"}
{
  "posting_json_metadata": {
    "profile": {
      "name": "Thomas",
      "about": "Computer Scientist, software architect, Java programmer, mainframe specialist, project manager",
      "location": "Munich, Germany",
      "cover_image": "https://steemitimages.com/0x0/http://i.imgur.com/wHMAhxy.jpg",
      "profile_image": "https://cdn.steemitimages.com/DQmYcL4i2C3q5yqGH6avREovheJvHzkjF2ibkaELQyqPDAR/P1080321.JPG"
    }
  },
  "json_metadata": {
    "profile": {
      "name": "Thomas",
      "about": "Computer Scientist, software architect, Java programmer, mainframe specialist, project manager",
      "location": "Munich, Germany",
      "cover_image": "https://steemitimages.com/0x0/http://i.imgur.com/wHMAhxy.jpg",
      "profile_image": "https://cdn.steemitimages.com/DQmYcL4i2C3q5yqGH6avREovheJvHzkjF2ibkaELQyqPDAR/P1080321.JPG"
    }
  }
}

Auth Keys

Owner
Single Signature
Public Keys
STM5szVtUx4nfZq9pjwqTxsPHMpGyFLSsKoNE2zNjAyefF2tWpszb1/1
Active
Single Signature
Public Keys
STM63WeGsis3XyiHWozNZc8khRLBV4MjUujdn58gienX8mEdSJztv1/1
Posting
Single Signature
Public Keys
STM7N4TaktJpumgXobB2t2ofthdpG1umy35KAi35rv7SPHz73R1cr1/1
Memo
STM84nXo7phwufo1t7T6KepGrJvRWWMDHcxtSemMD62V1HGEkmRN1
{
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM5szVtUx4nfZq9pjwqTxsPHMpGyFLSsKoNE2zNjAyefF2tWpszb",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM63WeGsis3XyiHWozNZc8khRLBV4MjUujdn58gienX8mEdSJztv",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM7N4TaktJpumgXobB2t2ofthdpG1umy35KAi35rv7SPHz73R1cr",
        1
      ]
    ]
  },
  "memo": "STM84nXo7phwufo1t7T6KepGrJvRWWMDHcxtSemMD62V1HGEkmRN1"
}

Witness Votes

0 / 30
No active witness votes.
[]