Ecoer Logo
VOTING POWER100.00%
DOWNVOTE POWER100.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS0.00%
Net Worth
0.024USD
STEEM
0.001STEEM
SBD
0.035SBD
Effective Power
5.011SP
├── Own SP
0.126SP
└── Incoming Deleg
+4.885SP

Detailed Balance

STEEM
balance
0.000STEEM
market_balance
0.000STEEM
savings_balance
0.000STEEM
reward_steem_balance
0.001STEEM
STEEM POWER
Own SP
0.126SP
Delegated Out
0.000SP
Delegation In
4.885SP
Effective Power
5.011SP
Reward SP (pending)
0.021SP
SBD
sbd_balance
0.000SBD
sbd_conversions
0.000SBD
sbd_market_balance
0.000SBD
savings_sbd_balance
0.000SBD
reward_sbd_balance
0.035SBD
{
  "balance": "0.000 STEEM",
  "savings_balance": "0.000 STEEM",
  "reward_steem_balance": "0.001 STEEM",
  "vesting_shares": "204.179286 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "7939.480520 VESTS",
  "sbd_balance": "0.000 SBD",
  "savings_sbd_balance": "0.000 SBD",
  "reward_sbd_balance": "0.035 SBD",
  "conversions": []
}

Account Info

namemoonddo
id824786
rank500,067
reputation528497690
created2018-03-12T14:43:06
recovery_accountsteem
proxyNone
post_count2
comment_count0
lifetime_vote_count0
witnesses_voted_for0
last_post2018-03-12T16:19:45
last_root_post2018-03-12T16:19:45
last_vote_time2018-03-13T06:16:54
proxied_vsf_votes0, 0, 0, 0
can_vote1
voting_power0
delayed_votes0
balance0.000 STEEM
savings_balance0.000 STEEM
sbd_balance0.000 SBD
savings_sbd_balance0.000 SBD
vesting_shares204.179286 VESTS
delegated_vesting_shares0.000000 VESTS
received_vesting_shares7939.480520 VESTS
reward_vesting_balance42.861928 VESTS
vesting_balance0.000 STEEM
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_update2018-03-12T15:02:18
minedNo
sbd_seconds0
sbd_last_interest_payment1970-01-01T00:00:00
savings_sbd_last_interest_payment1970-01-01T00:00:00
{
  "active": {
    "account_auths": [],
    "key_auths": [
      [
        "STM8E34wkzFsBVfkMUGPNpgPADKRD77WCihd8HDbFo6T8ym5afCTL",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "balance": "0.000 STEEM",
  "can_vote": true,
  "comment_count": 0,
  "created": "2018-03-12T14:43:06",
  "curation_rewards": 0,
  "delegated_vesting_shares": "0.000000 VESTS",
  "downvote_manabar": {
    "current_mana": 2035914951,
    "last_update_time": 1779076830
  },
  "guest_bloggers": [],
  "id": 824786,
  "json_metadata": "{\"profile\":{\"profile_image\":\"https://user-images.githubusercontent.com/35455787/37291251-9b651e7a-2651-11e8-8665-dfaa321de906.png\",\"name\":\"문또\"}}",
  "last_account_recovery": "1970-01-01T00:00:00",
  "last_account_update": "2018-03-12T15:02:18",
  "last_owner_update": "1970-01-01T00:00:00",
  "last_post": "2018-03-12T16:19:45",
  "last_root_post": "2018-03-12T16:19:45",
  "last_vote_time": "2018-03-13T06:16:54",
  "lifetime_vote_count": 0,
  "market_history": [],
  "memo_key": "STM8hjkWoijfFTEqDCTgtA8L5H6FEUNwf5RXjFmgdmkDB57pRXsmG",
  "mined": false,
  "name": "moonddo",
  "next_vesting_withdrawal": "1969-12-31T23:59:59",
  "other_history": [],
  "owner": {
    "account_auths": [],
    "key_auths": [
      [
        "STM7vjH7CtPpM3sGCu4URWACjUm6ME49YyidDukDAkX5RmeuDoPyX",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "pending_claimed_accounts": 0,
  "post_bandwidth": 0,
  "post_count": 2,
  "post_history": [],
  "posting": {
    "account_auths": [],
    "key_auths": [
      [
        "STM5h6P2VbssrgSvA23te7oLDuGHoLozu5eL2bVqkZsd5hrtV8uRv",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "posting_json_metadata": "{\"profile\":{\"profile_image\":\"https://user-images.githubusercontent.com/35455787/37291251-9b651e7a-2651-11e8-8665-dfaa321de906.png\",\"name\":\"문또\"}}",
  "posting_rewards": 41,
  "proxied_vsf_votes": [
    0,
    0,
    0,
    0
  ],
  "proxy": "",
  "received_vesting_shares": "7939.480520 VESTS",
  "recovery_account": "steem",
  "reputation": 528497690,
  "reset_account": "null",
  "reward_sbd_balance": "0.035 SBD",
  "reward_steem_balance": "0.001 STEEM",
  "reward_vesting_balance": "42.861928 VESTS",
  "reward_vesting_steem": "0.021 STEEM",
  "savings_balance": "0.000 STEEM",
  "savings_sbd_balance": "0.000 SBD",
  "savings_sbd_last_interest_payment": "1970-01-01T00:00:00",
  "savings_sbd_seconds": "0",
  "savings_sbd_seconds_last_update": "1970-01-01T00:00:00",
  "savings_withdraw_requests": 0,
  "sbd_balance": "0.000 SBD",
  "sbd_last_interest_payment": "1970-01-01T00:00:00",
  "sbd_seconds": "0",
  "sbd_seconds_last_update": "1970-01-01T00:00:00",
  "tags_usage": [],
  "to_withdraw": 0,
  "transfer_history": [],
  "vesting_balance": "0.000 STEEM",
  "vesting_shares": "204.179286 VESTS",
  "vesting_withdraw_rate": "0.000000 VESTS",
  "vote_history": [],
  "voting_manabar": {
    "current_mana": "8143659806",
    "last_update_time": 1779076830
  },
  "voting_power": 0,
  "withdraw_routes": 0,
  "withdrawn": 0,
  "witness_votes": [],
  "witnesses_voted_for": 0,
  "rank": 500067
}

Withdraw Routes

IncomingOutgoing
Empty
Empty
{
  "incoming": [],
  "outgoing": []
}
From Date
To Date
steemdelegated 4.885 SP to @moonddo
2026/05/18 04:00:30
delegateemoonddo
delegatorsteem
vesting shares7939.480520 VESTS
Transaction InfoBlock #106147932/Trx d7e362ef8f88361cd77bac5baa10c5bc5adcea5a
View Raw JSON Data
{
  "block": 106147932,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "moonddo",
      "delegator": "steem",
      "vesting_shares": "7939.480520 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2026-05-18T04:00:30",
  "trx_id": "d7e362ef8f88361cd77bac5baa10c5bc5adcea5a",
  "trx_in_block": 0,
  "virtual_op": 0
}
steemdelegated 3.216 SP to @moonddo
2026/05/12 19:03:51
delegateemoonddo
delegatorsteem
vesting shares5227.270115 VESTS
Transaction InfoBlock #105993939/Trx 816b90e3b2cd02dd1ea87016a79afb530df1f3fa
View Raw JSON Data
{
  "block": 105993939,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "moonddo",
      "delegator": "steem",
      "vesting_shares": "5227.270115 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2026-05-12T19:03:51",
  "trx_id": "816b90e3b2cd02dd1ea87016a79afb530df1f3fa",
  "trx_in_block": 0,
  "virtual_op": 0
}
steemdelegated 4.893 SP to @moonddo
2026/04/26 03:15:24
delegateemoonddo
delegatorsteem
vesting shares7951.996276 VESTS
Transaction InfoBlock #105515476/Trx 5f23b28b494faae630c2c80cce07543e394feb91
View Raw JSON Data
{
  "block": 105515476,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "moonddo",
      "delegator": "steem",
      "vesting_shares": "7951.996276 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2026-04-26T03:15:24",
  "trx_id": "5f23b28b494faae630c2c80cce07543e394feb91",
  "trx_in_block": 4,
  "virtual_op": 0
}
steemdelegated 3.242 SP to @moonddo
2026/01/23 17:52:42
delegateemoonddo
delegatorsteem
vesting shares5268.816934 VESTS
Transaction InfoBlock #102863885/Trx 9607b9335b2e0eb56484272e29b841751ab34d74
View Raw JSON Data
{
  "block": 102863885,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "moonddo",
      "delegator": "steem",
      "vesting_shares": "5268.816934 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2026-01-23T17:52:42",
  "trx_id": "9607b9335b2e0eb56484272e29b841751ab34d74",
  "trx_in_block": 2,
  "virtual_op": 0
}
steemdelegated 3.343 SP to @moonddo
2024/12/17 13:05:06
delegateemoonddo
delegatorsteem
vesting shares5433.036131 VESTS
Transaction InfoBlock #91310145/Trx 6eefe7727387c07042c3fd8b34b15ebb9ad123fb
View Raw JSON Data
{
  "block": 91310145,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "moonddo",
      "delegator": "steem",
      "vesting_shares": "5433.036131 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2024-12-17T13:05:06",
  "trx_id": "6eefe7727387c07042c3fd8b34b15ebb9ad123fb",
  "trx_in_block": 4,
  "virtual_op": 0
}
steemdelegated 3.447 SP to @moonddo
2023/11/14 04:46:45
delegateemoonddo
delegatorsteem
vesting shares5602.169663 VESTS
Transaction InfoBlock #79864314/Trx 2f6004c1a6efaa2387734011b055820dfb95ec15
View Raw JSON Data
{
  "block": 79864314,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "moonddo",
      "delegator": "steem",
      "vesting_shares": "5602.169663 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2023-11-14T04:46:45",
  "trx_id": "2f6004c1a6efaa2387734011b055820dfb95ec15",
  "trx_in_block": 10,
  "virtual_op": 0
}
steemdelegated 5.254 SP to @moonddo
2023/09/22 07:41:09
delegateemoonddo
delegatorsteem
vesting shares8539.078449 VESTS
Transaction InfoBlock #78359629/Trx c7f27557b8bc102326e7775281305825421158a0
View Raw JSON Data
{
  "block": 78359629,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "moonddo",
      "delegator": "steem",
      "vesting_shares": "8539.078449 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2023-09-22T07:41:09",
  "trx_id": "c7f27557b8bc102326e7775281305825421158a0",
  "trx_in_block": 1,
  "virtual_op": 0
}
steemdelegated 5.391 SP to @moonddo
2022/11/03 15:30:06
delegateemoonddo
delegatorsteem
vesting shares8761.129887 VESTS
Transaction InfoBlock #69117796/Trx e432b2c53055efb38b03d6f43a99f2ecf3f8803a
View Raw JSON Data
{
  "block": 69117796,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "moonddo",
      "delegator": "steem",
      "vesting_shares": "8761.129887 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-11-03T15:30:06",
  "trx_id": "e432b2c53055efb38b03d6f43a99f2ecf3f8803a",
  "trx_in_block": 0,
  "virtual_op": 0
}
steemdelegated 5.526 SP to @moonddo
2022/01/17 20:55:03
delegateemoonddo
delegatorsteem
vesting shares8981.237488 VESTS
Transaction InfoBlock #60821306/Trx 6533b9d0d7584ac9b893c7a80eff0b1f2bf2be3d
View Raw JSON Data
{
  "block": 60821306,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "moonddo",
      "delegator": "steem",
      "vesting_shares": "8981.237488 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-01-17T20:55:03",
  "trx_id": "6533b9d0d7584ac9b893c7a80eff0b1f2bf2be3d",
  "trx_in_block": 9,
  "virtual_op": 0
}
steemdelegated 5.640 SP to @moonddo
2021/06/14 04:12:06
delegateemoonddo
delegatorsteem
vesting shares9165.431776 VESTS
Transaction InfoBlock #54611761/Trx f9796277d570458946999e60c67dcb46e5ec0990
View Raw JSON Data
{
  "block": 54611761,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "moonddo",
      "delegator": "steem",
      "vesting_shares": "9165.431776 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2021-06-14T04:12:06",
  "trx_id": "f9796277d570458946999e60c67dcb46e5ec0990",
  "trx_in_block": 12,
  "virtual_op": 0
}
steemdelegated 5.755 SP to @moonddo
2020/12/11 14:26:36
delegateemoonddo
delegatorsteem
vesting shares9352.853750 VESTS
Transaction InfoBlock #49359091/Trx 1140ae9a1dd923824f278e105e723592b7b271b7
View Raw JSON Data
{
  "block": 49359091,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "moonddo",
      "delegator": "steem",
      "vesting_shares": "9352.853750 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-12-11T14:26:36",
  "trx_id": "1140ae9a1dd923824f278e105e723592b7b271b7",
  "trx_in_block": 6,
  "virtual_op": 0
}
steemdelegated 1.177 SP to @moonddo
2020/12/06 08:02:45
delegateemoonddo
delegatorsteem
vesting shares1912.543513 VESTS
Transaction InfoBlock #49210627/Trx bb588243b5e6e03ef11734ff55486fc593d43da6
View Raw JSON Data
{
  "block": 49210627,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "moonddo",
      "delegator": "steem",
      "vesting_shares": "1912.543513 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-12-06T08:02:45",
  "trx_id": "bb588243b5e6e03ef11734ff55486fc593d43da6",
  "trx_in_block": 3,
  "virtual_op": 0
}
steemdelegated 5.759 SP to @moonddo
2020/12/05 18:04:18
delegateemoonddo
delegatorsteem
vesting shares9359.061604 VESTS
Transaction InfoBlock #49194174/Trx 330bcea02c5bd3ef6b6a93a9877f3423f5c1d9ba
View Raw JSON Data
{
  "block": 49194174,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "moonddo",
      "delegator": "steem",
      "vesting_shares": "9359.061604 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-12-05T18:04:18",
  "trx_id": "330bcea02c5bd3ef6b6a93a9877f3423f5c1d9ba",
  "trx_in_block": 1,
  "virtual_op": 0
}
steemdelegated 1.181 SP to @moonddo
2020/11/02 22:30:15
delegateemoonddo
delegatorsteem
vesting shares1920.017158 VESTS
Transaction InfoBlock #48265889/Trx 0200f5b27dffe7c1cddda8152d3a03ddabcb3b5f
View Raw JSON Data
{
  "block": 48265889,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "moonddo",
      "delegator": "steem",
      "vesting_shares": "1920.017158 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-11-02T22:30:15",
  "trx_id": "0200f5b27dffe7c1cddda8152d3a03ddabcb3b5f",
  "trx_in_block": 1,
  "virtual_op": 0
}
steemdelegated 5.884 SP to @moonddo
2020/05/09 09:03:39
delegateemoonddo
delegatorsteem
vesting shares9561.866963 VESTS
Transaction InfoBlock #43220925/Trx 5bbbe6a28b68a079b633b0e2195fb25a036a8c30
View Raw JSON Data
{
  "block": 43220925,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "moonddo",
      "delegator": "steem",
      "vesting_shares": "9561.866963 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-05-09T09:03:39",
  "trx_id": "5bbbe6a28b68a079b633b0e2195fb25a036a8c30",
  "trx_in_block": 20,
  "virtual_op": 0
}
steemdelegated 1.202 SP to @moonddo
2020/05/08 13:10:03
delegateemoonddo
delegatorsteem
vesting shares1953.311140 VESTS
Transaction InfoBlock #43197617/Trx 58ae0d2575c34dd22536136f8a9c0ddc7761a6cf
View Raw JSON Data
{
  "block": 43197617,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "moonddo",
      "delegator": "steem",
      "vesting_shares": "1953.311140 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-05-08T13:10:03",
  "trx_id": "58ae0d2575c34dd22536136f8a9c0ddc7761a6cf",
  "trx_in_block": 12,
  "virtual_op": 0
}
2020/03/12 15:25:36
authorsteemitboard
bodyCongratulations @moonddo! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@moonddo/birthday2.png</td><td>Happy Steem Birthday! - You are on the Steem blockchain for 2 years!</td></tr></table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@moonddo) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=moonddo)_</sub> **Do not miss the last post from @steemitboard:** <table><tr><td><a href="https://steemit.com/steemitboard/@steemitboard/downvote-challenge-add-up-to-3-funny-badges-to-your-board"><img src="https://steemitimages.com/64x128/https://steemitimages.com/0x0/![](https://cdn.steemitimages.com/DQmUuJkZdnSpHVWssxF82ntymqXg4Pvk6K6bYvckUYVRsnj/image.png)"></a></td><td><a href="https://steemit.com/steemitboard/@steemitboard/downvote-challenge-add-up-to-3-funny-badges-to-your-board">Downvote challenge - Add up to 3 funny badges to your board</a></td></tr></table> ###### [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!
json metadata{"image":["https://steemitboard.com/img/notify.png"]}
parent authormoonddo
parent permlinkbranch-of-block-chain-orphan-blocks
permlinksteemitboard-notify-moonddo-20200312t152536000z
title
Transaction InfoBlock #41590443/Trx 50f90910b20236c7423002e625a34ae08b054d70
View Raw JSON Data
{
  "block": 41590443,
  "op": [
    "comment",
    {
      "author": "steemitboard",
      "body": "Congratulations @moonddo! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@moonddo/birthday2.png</td><td>Happy Steem Birthday! - You are on the Steem blockchain for 2 years!</td></tr></table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@moonddo) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=moonddo)_</sub>\n\n\n**Do not miss the last post from @steemitboard:**\n<table><tr><td><a href=\"https://steemit.com/steemitboard/@steemitboard/downvote-challenge-add-up-to-3-funny-badges-to-your-board\"><img src=\"https://steemitimages.com/64x128/https://steemitimages.com/0x0/![](https://cdn.steemitimages.com/DQmUuJkZdnSpHVWssxF82ntymqXg4Pvk6K6bYvckUYVRsnj/image.png)\"></a></td><td><a href=\"https://steemit.com/steemitboard/@steemitboard/downvote-challenge-add-up-to-3-funny-badges-to-your-board\">Downvote challenge - Add up to 3 funny badges to your board</a></td></tr></table>\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!",
      "json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}",
      "parent_author": "moonddo",
      "parent_permlink": "branch-of-block-chain-orphan-blocks",
      "permlink": "steemitboard-notify-moonddo-20200312t152536000z",
      "title": ""
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-03-12T15:25:36",
  "trx_id": "50f90910b20236c7423002e625a34ae08b054d70",
  "trx_in_block": 5,
  "virtual_op": 0
}
steemdelegated 6.000 SP to @moonddo
2019/06/14 05:09:57
delegateemoonddo
delegatorsteem
vesting shares9751.503577 VESTS
Transaction InfoBlock #33783294/Trx df8c3a5d90bfba38704eeb970c1a52a15e9be714
View Raw JSON Data
{
  "block": 33783294,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "moonddo",
      "delegator": "steem",
      "vesting_shares": "9751.503577 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2019-06-14T05:09:57",
  "trx_id": "df8c3a5d90bfba38704eeb970c1a52a15e9be714",
  "trx_in_block": 3,
  "virtual_op": 0
}
2019/03/12 21:22:21
authorsteemitboard
bodyCongratulations @moonddo! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@moonddo/birthday1.png</td><td>Happy Birthday! - You are on the Steem blockchain for 1 year!</td></tr></table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@moonddo) and compare to others on the [Steem Ranking](http://steemitboard.com/ranking/index.php?name=moonddo)_</sub> **Do not miss the last post from @steemitboard:** <table><tr><td><a href="https://steemit.com/drugwars/@steemitboard/drugwars-early-adopter"><img src="https://steemitimages.com/64x128/https://cdn.steemitimages.com/DQmYGN7R653u4hDFyq1hM7iuhr2bdAP1v2ApACDNtecJAZ5/image.png"></a></td><td><a href="https://steemit.com/drugwars/@steemitboard/drugwars-early-adopter">Are you a DrugWars early adopter? Benvenuto in famiglia!</a></td></tr></table> ###### [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!
json metadata{"image":["https://steemitboard.com/img/notify.png"]}
parent authormoonddo
parent permlinkbranch-of-block-chain-orphan-blocks
permlinksteemitboard-notify-moonddo-20190312t212220000z
title
Transaction InfoBlock #31099079/Trx 44110d1f83d492f22610b9fbed97ff387f944e0a
View Raw JSON Data
{
  "block": 31099079,
  "op": [
    "comment",
    {
      "author": "steemitboard",
      "body": "Congratulations @moonddo! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@moonddo/birthday1.png</td><td>Happy Birthday! - You are on the Steem blockchain for 1 year!</td></tr></table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@moonddo) and compare to others on the [Steem Ranking](http://steemitboard.com/ranking/index.php?name=moonddo)_</sub>\n\n\n**Do not miss the last post from @steemitboard:**\n<table><tr><td><a href=\"https://steemit.com/drugwars/@steemitboard/drugwars-early-adopter\"><img src=\"https://steemitimages.com/64x128/https://cdn.steemitimages.com/DQmYGN7R653u4hDFyq1hM7iuhr2bdAP1v2ApACDNtecJAZ5/image.png\"></a></td><td><a href=\"https://steemit.com/drugwars/@steemitboard/drugwars-early-adopter\">Are you a DrugWars early adopter? Benvenuto in famiglia!</a></td></tr></table>\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!",
      "json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}",
      "parent_author": "moonddo",
      "parent_permlink": "branch-of-block-chain-orphan-blocks",
      "permlink": "steemitboard-notify-moonddo-20190312t212220000z",
      "title": ""
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2019-03-12T21:22:21",
  "trx_id": "44110d1f83d492f22610b9fbed97ff387f944e0a",
  "trx_in_block": 15,
  "virtual_op": 0
}
steemdelegated 6.123 SP to @moonddo
2018/06/22 06:46:30
delegateemoonddo
delegatorsteem
vesting shares9950.657325 VESTS
Transaction InfoBlock #23538027/Trx 098da52018a7c92910af26b3971c9712d09cdcec
View Raw JSON Data
{
  "block": 23538027,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "moonddo",
      "delegator": "steem",
      "vesting_shares": "9950.657325 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-06-22T06:46:30",
  "trx_id": "098da52018a7c92910af26b3971c9712d09cdcec",
  "trx_in_block": 43,
  "virtual_op": 0
}
2018/03/23 05:00:15
idfollow
json["follow",{"follower":"moonddo","following":"mechuriya","what":["blog"]}]
required auths[]
required posting auths["moonddo"]
Transaction InfoBlock #20917283/Trx f052457c126ad13a082b4d655bd2959f69fd1cc2
View Raw JSON Data
{
  "block": 20917283,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"moonddo\",\"following\":\"mechuriya\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "moonddo"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-23T05:00:15",
  "trx_id": "f052457c126ad13a082b4d655bd2959f69fd1cc2",
  "trx_in_block": 17,
  "virtual_op": 0
}
moonddoreceived 0.001 STEEM, 0.035 SBD, 0.026 SP author reward for @moonddo / branch-of-block-chain-orphan-blocks
2018/03/19 16:19:45
authormoonddo
permlinkbranch-of-block-chain-orphan-blocks
sbd payout0.035 SBD
steem payout0.001 STEEM
vesting payout42.861928 VESTS
Transaction InfoBlock #20816481/Virtual Operation #7
View Raw JSON Data
{
  "block": 20816481,
  "op": [
    "author_reward",
    {
      "author": "moonddo",
      "permlink": "branch-of-block-chain-orphan-blocks",
      "sbd_payout": "0.035 SBD",
      "steem_payout": "0.001 STEEM",
      "vesting_payout": "42.861928 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-19T16:19:45",
  "trx_id": "0000000000000000000000000000000000000000",
  "trx_in_block": 4294967295,
  "virtual_op": 7
}
moonddofollowed @vanat
2018/03/13 06:42:27
idfollow
json["follow",{"follower":"moonddo","following":"vanat","what":["blog"]}]
required auths[]
required posting auths["moonddo"]
Transaction InfoBlock #20632281/Trx aacc3de43b0934c5fb159ad567d2c7d0289111c4
View Raw JSON Data
{
  "block": 20632281,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"moonddo\",\"following\":\"vanat\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "moonddo"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-13T06:42:27",
  "trx_id": "aacc3de43b0934c5fb159ad567d2c7d0289111c4",
  "trx_in_block": 44,
  "virtual_op": 0
}
moonddopublished a new post: pow-proof-of-work
2018/03/13 06:39:48
authormoonddo
body@@ -2187,8 +2187,53 @@ %ED%95%98%EB%8F%84%EB%A1%9D %ED%95%98%EA%B2%A0%EB%8B%A4. +%0A%0A%3E %EC%B0%B8%EC%A1%B0: %EB%B9%84%ED%8A%B8%EC%BD%94%EC%9D%B8, %EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8%EA%B3%BC %EA%B8%88%EC%9C%B5%EC%9D%98 %ED%98%81%EC%8B%A0 - %EC%95%88%EB%93%9C%EB%A0%88%EC%95%84%EC%8A%A4 M. %EC%95%88%ED%86%A0%EB%85%B8%ED%92%80%EB%A1%9C%EC%8A%A4
json metadata{"tags":["blockchain","pow","cryptocurrency","bitcoin","kr"],"image":["https://steemitimages.com/DQmW2xy2Z53mpAnNz2zJHizfKfjsQ8wJj9XAGqAbVt1WQKj/image.png"],"links":["https://blockchain.info"],"app":"steemit/0.1","format":"markdown"}
parent author
parent permlinkpow
permlinkpow-proof-of-work
title작업증명 채굴방식 (PoW: Proof of Work Mining)
Transaction InfoBlock #20632228/Trx e10294f05f558df73f596d1c969e36a7a4f401c8
View Raw JSON Data
{
  "block": 20632228,
  "op": [
    "comment",
    {
      "author": "moonddo",
      "body": "@@ -2187,8 +2187,53 @@\n %ED%95%98%EB%8F%84%EB%A1%9D %ED%95%98%EA%B2%A0%EB%8B%A4.\n+%0A%0A%3E  %EC%B0%B8%EC%A1%B0: %EB%B9%84%ED%8A%B8%EC%BD%94%EC%9D%B8, %EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8%EA%B3%BC %EA%B8%88%EC%9C%B5%EC%9D%98 %ED%98%81%EC%8B%A0 - %EC%95%88%EB%93%9C%EB%A0%88%EC%95%84%EC%8A%A4 M. %EC%95%88%ED%86%A0%EB%85%B8%ED%92%80%EB%A1%9C%EC%8A%A4\n",
      "json_metadata": "{\"tags\":[\"blockchain\",\"pow\",\"cryptocurrency\",\"bitcoin\",\"kr\"],\"image\":[\"https://steemitimages.com/DQmW2xy2Z53mpAnNz2zJHizfKfjsQ8wJj9XAGqAbVt1WQKj/image.png\"],\"links\":[\"https://blockchain.info\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "pow",
      "permlink": "pow-proof-of-work",
      "title": "작업증명 채굴방식 (PoW: Proof of Work Mining)"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-13T06:39:48",
  "trx_id": "e10294f05f558df73f596d1c969e36a7a4f401c8",
  "trx_in_block": 30,
  "virtual_op": 0
}
2018/03/13 06:38:18
authormoonddo
permlinkbranch-of-block-chain-orphan-blocks
voternullz
weight10000 (100.00%)
Transaction InfoBlock #20632199/Trx 1c7361ccd627425183a6d0b6b2eb4853ff05d7a4
View Raw JSON Data
{
  "block": 20632199,
  "op": [
    "vote",
    {
      "author": "moonddo",
      "permlink": "branch-of-block-chain-orphan-blocks",
      "voter": "nullz",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-13T06:38:18",
  "trx_id": "1c7361ccd627425183a6d0b6b2eb4853ff05d7a4",
  "trx_in_block": 31,
  "virtual_op": 0
}
nullzupvoted (100.00%) @moonddo / pow-proof-of-work
2018/03/13 06:37:54
authormoonddo
permlinkpow-proof-of-work
voternullz
weight10000 (100.00%)
Transaction InfoBlock #20632191/Trx 6d17cedb1aa65d7223a44be4bc0d59822872060c
View Raw JSON Data
{
  "block": 20632191,
  "op": [
    "vote",
    {
      "author": "moonddo",
      "permlink": "pow-proof-of-work",
      "voter": "nullz",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-13T06:37:54",
  "trx_id": "6d17cedb1aa65d7223a44be4bc0d59822872060c",
  "trx_in_block": 42,
  "virtual_op": 0
}
moonddopublished a new post: pow-proof-of-work
2018/03/13 06:37:09
authormoonddo
body@@ -220,24 +220,28 @@ %ED%95%9C%EB%8B%A4. %0A%EC%9D%B4 %EB%AA%A9%ED%91%9C%EA%B0%92%EB%B3%B4%EB%8B%A4 + %EA%B0%99%EA%B1%B0%EB%82%98 %EC%9E%91%EC%9D%80 block%EC%9D%98 h @@ -322,16 +322,20 @@ %EA%B0%92%EC%9D%84 %EB%AA%A9%ED%91%9C%EA%B0%92%EB%B3%B4%EB%8B%A4 + %EA%B0%99%EA%B1%B0%EB%82%98 %EC%9E%91%EC%9D%80 %EA%B0%92%EC%9C%BC%EB%A1%9C @@ -1028,17 +1028,21 @@ %EB%93%A0 %EB%AA%A9%ED%91%9C%EA%B0%92%EB%B3%B4%EB%8B%A4 -%EB%82%AE +%EA%B0%99%EA%B1%B0%EB%82%98 %EC%9E%91 %EC%9D%80 %ED%95%B4%EC%8B%9C%EA%B0%92.
json metadata{"tags":["pow","cryptocurrency","bitcoin","blockchain","kr"],"image":["https://steemitimages.com/DQmW2xy2Z53mpAnNz2zJHizfKfjsQ8wJj9XAGqAbVt1WQKj/image.png"],"links":["https://blockchain.info"],"app":"steemit/0.1","format":"markdown"}
parent author
parent permlinkpow
permlinkpow-proof-of-work
title작업증명 채굴방식 (PoW: Proof of Work Mining)
Transaction InfoBlock #20632176/Trx daa91921cd472a6400837b5cbb06000ade5542dd
View Raw JSON Data
{
  "block": 20632176,
  "op": [
    "comment",
    {
      "author": "moonddo",
      "body": "@@ -220,24 +220,28 @@\n %ED%95%9C%EB%8B%A4. %0A%EC%9D%B4 %EB%AA%A9%ED%91%9C%EA%B0%92%EB%B3%B4%EB%8B%A4\n+ %EA%B0%99%EA%B1%B0%EB%82%98\n  %EC%9E%91%EC%9D%80 block%EC%9D%98 h\n@@ -322,16 +322,20 @@\n %EA%B0%92%EC%9D%84 %EB%AA%A9%ED%91%9C%EA%B0%92%EB%B3%B4%EB%8B%A4\n+ %EA%B0%99%EA%B1%B0%EB%82%98\n  %EC%9E%91%EC%9D%80 %EA%B0%92%EC%9C%BC%EB%A1%9C \n@@ -1028,17 +1028,21 @@\n %EB%93%A0 %EB%AA%A9%ED%91%9C%EA%B0%92%EB%B3%B4%EB%8B%A4 \n-%EB%82%AE\n+%EA%B0%99%EA%B1%B0%EB%82%98 %EC%9E%91\n %EC%9D%80 %ED%95%B4%EC%8B%9C%EA%B0%92.  \n",
      "json_metadata": "{\"tags\":[\"pow\",\"cryptocurrency\",\"bitcoin\",\"blockchain\",\"kr\"],\"image\":[\"https://steemitimages.com/DQmW2xy2Z53mpAnNz2zJHizfKfjsQ8wJj9XAGqAbVt1WQKj/image.png\"],\"links\":[\"https://blockchain.info\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "pow",
      "permlink": "pow-proof-of-work",
      "title": "작업증명 채굴방식 (PoW: Proof of Work Mining)"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-13T06:37:09",
  "trx_id": "daa91921cd472a6400837b5cbb06000ade5542dd",
  "trx_in_block": 67,
  "virtual_op": 0
}
vanatupvoted (100.00%) @moonddo / pow-proof-of-work
2018/03/13 06:35:06
authormoonddo
permlinkpow-proof-of-work
votervanat
weight10000 (100.00%)
Transaction InfoBlock #20632135/Trx 705506e9090d69405c00114d07cb766da7b9e160
View Raw JSON Data
{
  "block": 20632135,
  "op": [
    "vote",
    {
      "author": "moonddo",
      "permlink": "pow-proof-of-work",
      "voter": "vanat",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-13T06:35:06",
  "trx_id": "705506e9090d69405c00114d07cb766da7b9e160",
  "trx_in_block": 20,
  "virtual_op": 0
}
moonddofollowed @nullz
2018/03/13 06:29:09
idfollow
json["follow",{"follower":"moonddo","following":"nullz","what":["blog"]}]
required auths[]
required posting auths["moonddo"]
Transaction InfoBlock #20632016/Trx 0274861efa9bebc8d2cb038bbff236a3707c27e8
View Raw JSON Data
{
  "block": 20632016,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"moonddo\",\"following\":\"nullz\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "moonddo"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-13T06:29:09",
  "trx_id": "0274861efa9bebc8d2cb038bbff236a3707c27e8",
  "trx_in_block": 10,
  "virtual_op": 0
}
moonddopublished a new post: pow-proof-of-work
2018/03/13 06:21:57
authormoonddo
body블록체인의 기반인 블록을 채굴(Mining)하는 방법 중 PoW 방식에 대해 알아보자. ## PoW (Proof of Work: 작업증명) 말그대로 엄청난 작업을 해서 그 작업을 증명함으로 인해 블록을 채굴하는 방식이다. 그럼여기서 말하는 작업(work)이란 무엇일까? 바로, `Nonce` 를 찾는 일이다. PoW 방식에는 난이도 목표값(target value)이라는 것이 존재한다. 이 목표값보다 작은 block의 hash를 만족시키는 `Nonce` 를 찾는것이 채굴이다. 해서 채굴자들은 Nonce 를 계속 변경해 가며 block의 hash 값을 목표값보다 작은 값으로 만들어주는 Nonce를 찾는다. 그 Nonce 값을 찾은 채굴자는 채굴보상과 함께 해당 블록에 기록된 거래수수료(transaction fees) 를 보상받게된다. 실제 PoW 방식을 채택하고있는 비트코인을 예로 들어 설명해보겠다. https://blockchain.info 라는 사이트에 들어가보면 지금까지 생성된 모든 블록의 정보를 볼 수 있다. 거기서 현재시점에서 가장 최근 블록인 **#512706** 번째 블록으로 예를 들어보겠다. ![](https://steemitimages.com/DQmW2xy2Z53mpAnNz2zJHizfKfjsQ8wJj9XAGqAbVt1WQKj/image.png) 위 그림을 보면 Difficulty, Bits, Nonce, Hash 4가지의 값을 볼 수 있을것이다. - Difficulty는 실제 **#512706** 블록을 채굴하는데 걸린 난이도 값이고, - Bits는 난이도 비트(difficulty bits) 값 즉, 목표값을 지수(exponent)와 계수(coefficient)로 나눠서 적어둔 수이다. - Nonce는 블록 헤더정보의 해시값을 목표값 보다 작은값으로 만들어주는 변경할 수 있는 데이터다. (엄밀이 말하면 header에 포함된 머클루트도 변경의 여지는 있다. 이는 차후에 설명..) - Hash는 블록 헤더정보(6가지)를 통해 만든 목표값보다 낮은 해시값. ``` 블록의 헤더 - ver (소프트웨어 버전정보) - prev_block (부모 블록의 해시) - merkle_root (트랜잭션의 머클트리 탑해시값) - timestamp (블록의 timestamp) - bits - nonce 위 6가지 순서로 byte로 이어준후에 HEX 디코딩 -> SHA256 + digest() 더블해시 -> HEX 인코딩 처리해주면 block의 hash값 구할 수 있다. ``` --- 그럼 위 내용을 가지고, **#512706** 블록을 검증해보겠다. 일단, 우리가 만족시켜야하는 목표값을 알아야하는데 목표값은 Bits 값을 통해 구할 수 있다. ``` target = coefficient * 2**(8 * (exponent -. 3)) ** 는 거듭제곱을 의미 ``` ``` 1. 10진수로 표시된 Bits 값을 16진수로 변환 391481763 -> 0x175589A3 2. 앞에 두자리인 0x17은 지수, 0x5589A3 은 계수 3. 위 공식에 대입 target = 0x5589A3 * 2**(0x08 * (0x17 - 0x03)) target = 0x5589A3 * 2**(0x08 * 0x14) target = 0x5589A3 * 2**(0xA0) 4. 10진법으로 변환 target = 5605795 * 2**160 target ≒ 8.192878571041389E54 5. 16진수로 다시 변환 target ≒ 0x0000000000000000005589A30000000000000000000000000000000000000000 ``` --- 계산법에 따라 타겟 목표값이 위와 같이 나온다. 보면, **#512706** block의 hash 값이 해당 목표값보다 낮음을 알 수 있다. 위 방법을 통해서 PoW 방식은 Nonce를 찾아 채굴을 하고, 채굴한 순간 해당 블록을 네트워크를 통해 전파시킨다. 전달받은 다른 노드들은, 일련의 검증절차에 따라 블록을 검증하고 유효하면 자신의 체인에 연결하게 된다. 그럼 기존에 채굴하고 있던 것은 멈추고 새로 MEMPOOL (트랜잭션이 모여있는 풀) 에서 데이터를 가져와 새로 채굴을 시작한다. 그럼 동시에 채굴 됐을 때는 어떻게 처리 되는가? 이는 다음 포스팅에서 정리하도록 하겠다.
json metadata{"tags":["pow","cryptocurrency","bitcoin","blockchain","kr"],"image":["https://steemitimages.com/DQmW2xy2Z53mpAnNz2zJHizfKfjsQ8wJj9XAGqAbVt1WQKj/image.png"],"links":["https://blockchain.info"],"app":"steemit/0.1","format":"markdown"}
parent author
parent permlinkpow
permlinkpow-proof-of-work
title작업증명 채굴방식 (PoW: Proof of Work Mining)
Transaction InfoBlock #20631872/Trx b6ea36a517f99ea032711d7bc50aeffa9ecc7f87
View Raw JSON Data
{
  "block": 20631872,
  "op": [
    "comment",
    {
      "author": "moonddo",
      "body": "블록체인의 기반인 블록을 채굴(Mining)하는 방법 중 PoW 방식에 대해 알아보자.\n\n## PoW (Proof of Work: 작업증명)\n말그대로 엄청난 작업을 해서 그 작업을 증명함으로 인해 블록을 채굴하는 방식이다.  \n그럼여기서 말하는 작업(work)이란 무엇일까?  \n바로, `Nonce` 를 찾는 일이다.  \nPoW 방식에는 난이도 목표값(target value)이라는 것이 존재한다. \n이 목표값보다 작은 block의 hash를 만족시키는 `Nonce` 를 찾는것이 채굴이다.  \n\n해서 채굴자들은 Nonce 를 계속 변경해 가며 block의 hash 값을 목표값보다 작은 값으로 만들어주는 Nonce를 찾는다.\n그 Nonce 값을 찾은 채굴자는 채굴보상과 함께 해당 블록에 기록된 거래수수료(transaction fees) 를 보상받게된다.  \n\n실제 PoW 방식을 채택하고있는 비트코인을 예로 들어 설명해보겠다.  \nhttps://blockchain.info 라는 사이트에 들어가보면 지금까지 생성된 모든 블록의 정보를 볼 수 있다.  \n거기서 현재시점에서 가장 최근 블록인 **#512706** 번째 블록으로 예를 들어보겠다.  \n  \n![](https://steemitimages.com/DQmW2xy2Z53mpAnNz2zJHizfKfjsQ8wJj9XAGqAbVt1WQKj/image.png)\n\n위 그림을 보면 Difficulty, Bits, Nonce, Hash 4가지의 값을 볼 수 있을것이다.  \n- Difficulty는 실제 **#512706** 블록을 채굴하는데 걸린 난이도 값이고,  \n- Bits는 난이도 비트(difficulty bits) 값 즉, 목표값을 지수(exponent)와 계수(coefficient)로 나눠서 적어둔 수이다.  \n- Nonce는 블록 헤더정보의 해시값을 목표값 보다 작은값으로 만들어주는 변경할 수 있는 데이터다.  \n(엄밀이 말하면 header에 포함된 머클루트도 변경의 여지는 있다. 이는 차후에 설명..)\n- Hash는 블록 헤더정보(6가지)를 통해 만든 목표값보다 낮은 해시값.  \n```\n블록의 헤더\n- ver (소프트웨어 버전정보)\n- prev_block (부모 블록의 해시)\n- merkle_root (트랜잭션의 머클트리 탑해시값)\n- timestamp (블록의 timestamp)\n- bits\n- nonce\n\n위 6가지 순서로 byte로 이어준후에\nHEX 디코딩 -> SHA256 + digest() 더블해시 -> HEX 인코딩 처리해주면\nblock의 hash값 구할 수 있다.\n```\n---\n  \n그럼 위 내용을 가지고, **#512706** 블록을 검증해보겠다.  \n일단, 우리가 만족시켜야하는 목표값을 알아야하는데 목표값은 Bits 값을 통해 구할 수 있다.  \n\n```\ntarget = coefficient * 2**(8 * (exponent -. 3))\n** 는 거듭제곱을 의미\n```\n\n```\n1. 10진수로 표시된 Bits 값을 16진수로 변환 \n  391481763 -> 0x175589A3\n2. 앞에 두자리인 0x17은 지수, 0x5589A3 은 계수\n3. 위 공식에 대입 \n  target = 0x5589A3 * 2**(0x08 * (0x17 - 0x03))\n  target = 0x5589A3 * 2**(0x08 * 0x14)\n  target = 0x5589A3 * 2**(0xA0)\n4. 10진법으로 변환\n  target = 5605795 * 2**160\n  target ≒ 8.192878571041389E54\n5. 16진수로 다시 변환\n  target ≒ 0x0000000000000000005589A30000000000000000000000000000000000000000\n```\n\n---\n계산법에 따라 타겟 목표값이 위와 같이 나온다.  \n보면, **#512706** block의 hash 값이 해당 목표값보다 낮음을 알 수 있다.  \n\n위 방법을 통해서 PoW 방식은 Nonce를 찾아 채굴을 하고, 채굴한 순간 해당 블록을 네트워크를 통해 전파시킨다.  \n전달받은 다른 노드들은, 일련의 검증절차에 따라 블록을 검증하고 유효하면 자신의 체인에 연결하게 된다.  \n그럼 기존에 채굴하고 있던 것은 멈추고 새로 MEMPOOL (트랜잭션이 모여있는 풀) 에서 데이터를 가져와 새로 채굴을 시작한다.  \n\n그럼 동시에 채굴 됐을 때는 어떻게 처리 되는가? 이는 다음 포스팅에서 정리하도록 하겠다.",
      "json_metadata": "{\"tags\":[\"pow\",\"cryptocurrency\",\"bitcoin\",\"blockchain\",\"kr\"],\"image\":[\"https://steemitimages.com/DQmW2xy2Z53mpAnNz2zJHizfKfjsQ8wJj9XAGqAbVt1WQKj/image.png\"],\"links\":[\"https://blockchain.info\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "pow",
      "permlink": "pow-proof-of-work",
      "title": "작업증명 채굴방식 (PoW: Proof of Work Mining)"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-13T06:21:57",
  "trx_id": "b6ea36a517f99ea032711d7bc50aeffa9ecc7f87",
  "trx_in_block": 32,
  "virtual_op": 0
}
moonddopublished a new post: pow-proof-of-work
2018/03/13 06:21:06
authormoonddo
body@@ -1260,16 +1260,19 @@ %EC%9E%88%EB%8B%A4.%0A%60%60%60%0A +--- %0A %0A%EA%B7%B8%EB%9F%BC %EC%9C%84 @@ -1833,16 +1833,20 @@ 00%0A%60%60%60%0A%0A +---%0A %EA%B3%84%EC%82%B0%EB%B2%95%EC%97%90 %EB%94%B0%EB%9D%BC
json metadata{"tags":["pow","mining","bitcoin","blockchain","kr"],"image":["https://steemitimages.com/DQmW2xy2Z53mpAnNz2zJHizfKfjsQ8wJj9XAGqAbVt1WQKj/image.png"],"links":["https://blockchain.info"],"app":"steemit/0.1","format":"markdown"}
parent author
parent permlinkpow
permlinkpow-proof-of-work
title작업증명 채굴방식 (PoW: Proof of Work Mining)
Transaction InfoBlock #20631855/Trx f78561797915b1d7bdf3520e979bfeabcd61a3c8
View Raw JSON Data
{
  "block": 20631855,
  "op": [
    "comment",
    {
      "author": "moonddo",
      "body": "@@ -1260,16 +1260,19 @@\n %EC%9E%88%EB%8B%A4.%0A%60%60%60%0A\n+---\n %0A  %0A%EA%B7%B8%EB%9F%BC %EC%9C%84\n@@ -1833,16 +1833,20 @@\n 00%0A%60%60%60%0A%0A\n+---%0A\n %EA%B3%84%EC%82%B0%EB%B2%95%EC%97%90 %EB%94%B0%EB%9D%BC \n",
      "json_metadata": "{\"tags\":[\"pow\",\"mining\",\"bitcoin\",\"blockchain\",\"kr\"],\"image\":[\"https://steemitimages.com/DQmW2xy2Z53mpAnNz2zJHizfKfjsQ8wJj9XAGqAbVt1WQKj/image.png\"],\"links\":[\"https://blockchain.info\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "pow",
      "permlink": "pow-proof-of-work",
      "title": "작업증명 채굴방식 (PoW: Proof of Work Mining)"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-13T06:21:06",
  "trx_id": "f78561797915b1d7bdf3520e979bfeabcd61a3c8",
  "trx_in_block": 38,
  "virtual_op": 0
}
2018/03/13 06:17:45
authormoonddo
permlinkbranch-of-block-chain-orphan-blocks
voterjahyun.dev
weight10000 (100.00%)
Transaction InfoBlock #20631788/Trx 3d7b6d1b42d1275974f375bc7ab61895a1ce1803
View Raw JSON Data
{
  "block": 20631788,
  "op": [
    "vote",
    {
      "author": "moonddo",
      "permlink": "branch-of-block-chain-orphan-blocks",
      "voter": "jahyun.dev",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-13T06:17:45",
  "trx_id": "3d7b6d1b42d1275974f375bc7ab61895a1ce1803",
  "trx_in_block": 47,
  "virtual_op": 0
}
2018/03/13 06:17:33
authormoonddo
permlinkpow-proof-of-work
voterjahyun.dev
weight10000 (100.00%)
Transaction InfoBlock #20631784/Trx 99bb70584520a1959a616a95d79c7dc7b717f327
View Raw JSON Data
{
  "block": 20631784,
  "op": [
    "vote",
    {
      "author": "moonddo",
      "permlink": "pow-proof-of-work",
      "voter": "jahyun.dev",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-13T06:17:33",
  "trx_id": "99bb70584520a1959a616a95d79c7dc7b717f327",
  "trx_in_block": 54,
  "virtual_op": 0
}
moonddoupvoted (100.00%) @jahyun.dev / 1
2018/03/13 06:16:54
authorjahyun.dev
permlink1
votermoonddo
weight10000 (100.00%)
Transaction InfoBlock #20631771/Trx 6f0ea2bc6569f4428f7b8233553fbefab95f138c
View Raw JSON Data
{
  "block": 20631771,
  "op": [
    "vote",
    {
      "author": "jahyun.dev",
      "permlink": "1",
      "voter": "moonddo",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-13T06:16:54",
  "trx_id": "6f0ea2bc6569f4428f7b8233553fbefab95f138c",
  "trx_in_block": 59,
  "virtual_op": 0
}
2018/03/13 06:16:21
idfollow
json["follow",{"follower":"moonddo","following":"jahyun.dev","what":["blog"]}]
required auths[]
required posting auths["moonddo"]
Transaction InfoBlock #20631760/Trx efe223243e6d589cd021446f913353a9fed20439
View Raw JSON Data
{
  "block": 20631760,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"moonddo\",\"following\":\"jahyun.dev\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "moonddo"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-13T06:16:21",
  "trx_id": "efe223243e6d589cd021446f913353a9fed20439",
  "trx_in_block": 14,
  "virtual_op": 0
}
2018/03/12 17:58:36
authormoonddo
permlinkbranch-of-block-chain-orphan-blocks
votery-o-u-t-h-m-e
weight3400 (34.00%)
Transaction InfoBlock #20617008/Trx 8168cb422816e82151fc81577731ba234c0eb4ef
View Raw JSON Data
{
  "block": 20617008,
  "op": [
    "vote",
    {
      "author": "moonddo",
      "permlink": "branch-of-block-chain-orphan-blocks",
      "voter": "y-o-u-t-h-m-e",
      "weight": 3400
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T17:58:36",
  "trx_id": "8168cb422816e82151fc81577731ba234c0eb4ef",
  "trx_in_block": 6,
  "virtual_op": 0
}
2018/03/12 16:30:21
authormoonddo
permlinkbranch-of-block-chain-orphan-blocks
voterniipoong
weight10000 (100.00%)
Transaction InfoBlock #20615244/Trx 3d3c7de2d8ba4499ab5331466c20539e4fead918
View Raw JSON Data
{
  "block": 20615244,
  "op": [
    "vote",
    {
      "author": "moonddo",
      "permlink": "branch-of-block-chain-orphan-blocks",
      "voter": "niipoong",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T16:30:21",
  "trx_id": "3d3c7de2d8ba4499ab5331466c20539e4fead918",
  "trx_in_block": 29,
  "virtual_op": 0
}
moonddocustom json: follow
2018/03/12 16:30:18
idfollow
json["reblog",{"account":"moonddo","author":"niipoong","permlink":"scriptsig-scriptpubkey"}]
required auths[]
required posting auths["moonddo"]
Transaction InfoBlock #20615243/Trx 9bc5a22cfedaa190b610e220b920f805a1147ede
View Raw JSON Data
{
  "block": 20615243,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"reblog\",{\"account\":\"moonddo\",\"author\":\"niipoong\",\"permlink\":\"scriptsig-scriptpubkey\"}]",
      "required_auths": [],
      "required_posting_auths": [
        "moonddo"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T16:30:18",
  "trx_id": "9bc5a22cfedaa190b610e220b920f805a1147ede",
  "trx_in_block": 44,
  "virtual_op": 0
}
2018/03/12 16:29:27
authormoonddo
body@@ -2578,17 +2578,17 @@ %EC%9E%88%EB%8B%A4. %0A%0A%0A -- +%3E %EC%B0%B8%EC%A1%B0: %EB%B9%84%ED%8A%B8%EC%BD%94
json metadata{"tags":["blockchain","orphanblock","bitcoin","kr","branch"],"image":["https://steemitimages.com/DQmWauwXeDYPR71SVuqbDv9cgZN2ktU4CYrnC57CHmegF1a/image.png","https://steemitimages.com/DQmZbQWAqhaHZfcWTJCiFHcwJrEiJnnZxQwo8hbHrvXqRVg/image.png"],"links":["https://steemit.com/pow/@moonddo/pow-proof-of-work","https://bitnodes.earn.com/","https://blockchain.info/orphaned-blocks"],"app":"steemit/0.1","format":"markdown"}
parent author
parent permlinkblockchain
permlinkbranch-of-block-chain-orphan-blocks
title블록체인의 분기: 고아블록 (Branch of block chain: Orphan Blocks)
Transaction InfoBlock #20615226/Trx ac6b833fd289c652cadcf099c3fcebca558247f7
View Raw JSON Data
{
  "block": 20615226,
  "op": [
    "comment",
    {
      "author": "moonddo",
      "body": "@@ -2578,17 +2578,17 @@\n %EC%9E%88%EB%8B%A4.  %0A%0A%0A\n--\n+%3E\n  %EC%B0%B8%EC%A1%B0: %EB%B9%84%ED%8A%B8%EC%BD%94\n",
      "json_metadata": "{\"tags\":[\"blockchain\",\"orphanblock\",\"bitcoin\",\"kr\",\"branch\"],\"image\":[\"https://steemitimages.com/DQmWauwXeDYPR71SVuqbDv9cgZN2ktU4CYrnC57CHmegF1a/image.png\",\"https://steemitimages.com/DQmZbQWAqhaHZfcWTJCiFHcwJrEiJnnZxQwo8hbHrvXqRVg/image.png\"],\"links\":[\"https://steemit.com/pow/@moonddo/pow-proof-of-work\",\"https://bitnodes.earn.com/\",\"https://blockchain.info/orphaned-blocks\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "blockchain",
      "permlink": "branch-of-block-chain-orphan-blocks",
      "title": "블록체인의 분기: 고아블록 (Branch of block chain: Orphan Blocks)"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T16:29:27",
  "trx_id": "ac6b833fd289c652cadcf099c3fcebca558247f7",
  "trx_in_block": 12,
  "virtual_op": 0
}
2018/03/12 16:25:21
authorniipoong
permlinkbitcoin-tx-and-block-store-process
votermoonddo
weight10000 (100.00%)
Transaction InfoBlock #20615144/Trx 59046c646b26c2de7749ad45dc9aa9c378450bd0
View Raw JSON Data
{
  "block": 20615144,
  "op": [
    "vote",
    {
      "author": "niipoong",
      "permlink": "bitcoin-tx-and-block-store-process",
      "voter": "moonddo",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T16:25:21",
  "trx_id": "59046c646b26c2de7749ad45dc9aa9c378450bd0",
  "trx_in_block": 10,
  "virtual_op": 0
}
moonddocustom json: follow
2018/03/12 16:24:45
idfollow
json["reblog",{"account":"moonddo","author":"niipoong","permlink":"bitcoin-tx-and-block-store-process"}]
required auths[]
required posting auths["moonddo"]
Transaction InfoBlock #20615132/Trx a1c20c362999f9725d6ba51c215b22e1ab09c8c6
View Raw JSON Data
{
  "block": 20615132,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"reblog\",{\"account\":\"moonddo\",\"author\":\"niipoong\",\"permlink\":\"bitcoin-tx-and-block-store-process\"}]",
      "required_auths": [],
      "required_posting_auths": [
        "moonddo"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T16:24:45",
  "trx_id": "a1c20c362999f9725d6ba51c215b22e1ab09c8c6",
  "trx_in_block": 13,
  "virtual_op": 0
}
2018/03/12 16:22:39
authorniipoong
permlinkblock-chain-bitcoin-block-chain-structure
votermoonddo
weight10000 (100.00%)
Transaction InfoBlock #20615090/Trx 6b1d67f1fcf5cbd5a57d1c7449f8efed45ef705e
View Raw JSON Data
{
  "block": 20615090,
  "op": [
    "vote",
    {
      "author": "niipoong",
      "permlink": "block-chain-bitcoin-block-chain-structure",
      "voter": "moonddo",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T16:22:39",
  "trx_id": "6b1d67f1fcf5cbd5a57d1c7449f8efed45ef705e",
  "trx_in_block": 11,
  "virtual_op": 0
}
moonddopublished a new post: pow-proof-of-work
2018/03/12 16:21:18
authormoonddo
body블록체인의 기반인 블록을 채굴(Mining)하는 방법 중 PoW 방식에 대해 알아보자. ## PoW (Proof of Work: 작업증명) 말그대로 엄청난 작업을 해서 그 작업을 증명함으로 인해 블록을 채굴하는 방식이다. 그럼여기서 말하는 작업(work)이란 무엇일까? 바로, `Nonce` 를 찾는 일이다. PoW 방식에는 난이도 목표값(target value)이라는 것이 존재한다. 이 목표값보다 작은 block의 hash를 만족시키는 `Nonce` 를 찾는것이 채굴이다. 해서 채굴자들은 Nonce 를 계속 변경해 가며 block의 hash 값을 목표값보다 작은 값으로 만들어주는 Nonce를 찾는다. 그 Nonce 값을 찾은 채굴자는 채굴보상과 함께 해당 블록에 기록된 거래수수료(transaction fees) 를 보상받게된다. 실제 PoW 방식을 채택하고있는 비트코인을 예로 들어 설명해보겠다. https://blockchain.info 라는 사이트에 들어가보면 지금까지 생성된 모든 블록의 정보를 볼 수 있다. 거기서 현재시점에서 가장 최근 블록인 **#512706** 번째 블록으로 예를 들어보겠다. ![](https://steemitimages.com/DQmW2xy2Z53mpAnNz2zJHizfKfjsQ8wJj9XAGqAbVt1WQKj/image.png) 위 그림을 보면 Difficulty, Bits, Nonce, Hash 4가지의 값을 볼 수 있을것이다. - Difficulty는 실제 **#512706** 블록을 채굴하는데 걸린 난이도 값이고, - Bits는 난이도 비트(difficulty bits) 값 즉, 목표값을 지수(exponent)와 계수(coefficient)로 나눠서 적어둔 수이다. - Nonce는 블록 헤더정보의 해시값을 목표값 보다 작은값으로 만들어주는 변경할 수 있는 데이터다. (엄밀이 말하면 header에 포함된 머클루트도 변경의 여지는 있다. 이는 차후에 설명..) - Hash는 블록 헤더정보(6가지)를 통해 만든 목표값보다 낮은 해시값. ``` 블록의 헤더 - ver (소프트웨어 버전정보) - prev_block (부모 블록의 해시) - merkle_root (트랜잭션의 머클트리 탑해시값) - timestamp (블록의 timestamp) - bits - nonce 위 6가지 순서로 byte로 이어준후에 HEX 디코딩 -> SHA256 + digest() 더블해시 -> HEX 인코딩 처리해주면 block의 hash값 구할 수 있다. ``` 그럼 위 내용을 가지고, **#512706** 블록을 검증해보겠다. 일단, 우리가 만족시켜야하는 목표값을 알아야하는데 목표값은 Bits 값을 통해 구할 수 있다. ``` target = coefficient * 2**(8 * (exponent -. 3)) ** 는 거듭제곱을 의미 ``` ``` 1. 10진수로 표시된 Bits 값을 16진수로 변환 391481763 -> 0x175589A3 2. 앞에 두자리인 0x17은 지수, 0x5589A3 은 계수 3. 위 공식에 대입 target = 0x5589A3 * 2**(0x08 * (0x17 - 0x03)) target = 0x5589A3 * 2**(0x08 * 0x14) target = 0x5589A3 * 2**(0xA0) 4. 10진법으로 변환 target = 5605795 * 2**160 target ≒ 8.192878571041389E54 5. 16진수로 다시 변환 target ≒ 0x0000000000000000005589A30000000000000000000000000000000000000000 ``` 계산법에 따라 타겟 목표값이 위와 같이 나온다. 보면, **#512706** block의 hash 값이 해당 목표값보다 낮음을 알 수 있다. 위 방법을 통해서 PoW 방식은 Nonce를 찾아 채굴을 하고, 채굴한 순간 해당 블록을 네트워크를 통해 전파시킨다. 전달받은 다른 노드들은, 일련의 검증절차에 따라 블록을 검증하고 유효하면 자신의 체인에 연결하게 된다. 그럼 기존에 채굴하고 있던 것은 멈추고 새로 MEMPOOL (트랜잭션이 모여있는 풀) 에서 데이터를 가져와 새로 채굴을 시작한다. 그럼 동시에 채굴 됐을 때는 어떻게 처리 되는가? 이는 다음 포스팅에서 정리하도록 하겠다.
json metadata{"tags":["pow","mining","bitcoin","blockchain","kr"],"image":["https://steemitimages.com/DQmW2xy2Z53mpAnNz2zJHizfKfjsQ8wJj9XAGqAbVt1WQKj/image.png"],"links":["https://blockchain.info"],"app":"steemit/0.1","format":"markdown"}
parent author
parent permlinkpow
permlinkpow-proof-of-work
title작업증명 채굴방식 (PoW: Proof of Work Mining)
Transaction InfoBlock #20615063/Trx 6fc0530c15c82393b5030fec81ee66a79e6532a6
View Raw JSON Data
{
  "block": 20615063,
  "op": [
    "comment",
    {
      "author": "moonddo",
      "body": "블록체인의 기반인 블록을 채굴(Mining)하는 방법 중 PoW 방식에 대해 알아보자.\n\n## PoW (Proof of Work: 작업증명)\n말그대로 엄청난 작업을 해서 그 작업을 증명함으로 인해 블록을 채굴하는 방식이다.  \n그럼여기서 말하는 작업(work)이란 무엇일까?  \n바로, `Nonce` 를 찾는 일이다.  \nPoW 방식에는 난이도 목표값(target value)이라는 것이 존재한다. \n이 목표값보다 작은 block의 hash를 만족시키는 `Nonce` 를 찾는것이 채굴이다.  \n\n해서 채굴자들은 Nonce 를 계속 변경해 가며 block의 hash 값을 목표값보다 작은 값으로 만들어주는 Nonce를 찾는다.\n그 Nonce 값을 찾은 채굴자는 채굴보상과 함께 해당 블록에 기록된 거래수수료(transaction fees) 를 보상받게된다.  \n\n실제 PoW 방식을 채택하고있는 비트코인을 예로 들어 설명해보겠다.  \nhttps://blockchain.info 라는 사이트에 들어가보면 지금까지 생성된 모든 블록의 정보를 볼 수 있다.  \n거기서 현재시점에서 가장 최근 블록인 **#512706** 번째 블록으로 예를 들어보겠다.  \n  \n![](https://steemitimages.com/DQmW2xy2Z53mpAnNz2zJHizfKfjsQ8wJj9XAGqAbVt1WQKj/image.png)\n\n위 그림을 보면 Difficulty, Bits, Nonce, Hash 4가지의 값을 볼 수 있을것이다.  \n- Difficulty는 실제 **#512706** 블록을 채굴하는데 걸린 난이도 값이고,  \n- Bits는 난이도 비트(difficulty bits) 값 즉, 목표값을 지수(exponent)와 계수(coefficient)로 나눠서 적어둔 수이다.  \n- Nonce는 블록 헤더정보의 해시값을 목표값 보다 작은값으로 만들어주는 변경할 수 있는 데이터다.  \n(엄밀이 말하면 header에 포함된 머클루트도 변경의 여지는 있다. 이는 차후에 설명..)\n- Hash는 블록 헤더정보(6가지)를 통해 만든 목표값보다 낮은 해시값.  \n```\n블록의 헤더\n- ver (소프트웨어 버전정보)\n- prev_block (부모 블록의 해시)\n- merkle_root (트랜잭션의 머클트리 탑해시값)\n- timestamp (블록의 timestamp)\n- bits\n- nonce\n\n위 6가지 순서로 byte로 이어준후에\nHEX 디코딩 -> SHA256 + digest() 더블해시 -> HEX 인코딩 처리해주면\nblock의 hash값 구할 수 있다.\n```\n\n  \n그럼 위 내용을 가지고, **#512706** 블록을 검증해보겠다.  \n일단, 우리가 만족시켜야하는 목표값을 알아야하는데 목표값은 Bits 값을 통해 구할 수 있다.  \n\n```\ntarget = coefficient * 2**(8 * (exponent -. 3))\n** 는 거듭제곱을 의미\n```\n\n```\n1. 10진수로 표시된 Bits 값을 16진수로 변환 \n  391481763 -> 0x175589A3\n2. 앞에 두자리인 0x17은 지수, 0x5589A3 은 계수\n3. 위 공식에 대입 \n  target = 0x5589A3 * 2**(0x08 * (0x17 - 0x03))\n  target = 0x5589A3 * 2**(0x08 * 0x14)\n  target = 0x5589A3 * 2**(0xA0)\n4. 10진법으로 변환\n  target = 5605795 * 2**160\n  target ≒ 8.192878571041389E54\n5. 16진수로 다시 변환\n  target ≒ 0x0000000000000000005589A30000000000000000000000000000000000000000\n```\n\n계산법에 따라 타겟 목표값이 위와 같이 나온다.  \n보면, **#512706** block의 hash 값이 해당 목표값보다 낮음을 알 수 있다.  \n\n위 방법을 통해서 PoW 방식은 Nonce를 찾아 채굴을 하고, 채굴한 순간 해당 블록을 네트워크를 통해 전파시킨다.  \n전달받은 다른 노드들은, 일련의 검증절차에 따라 블록을 검증하고 유효하면 자신의 체인에 연결하게 된다.  \n그럼 기존에 채굴하고 있던 것은 멈추고 새로 MEMPOOL (트랜잭션이 모여있는 풀) 에서 데이터를 가져와 새로 채굴을 시작한다.  \n\n그럼 동시에 채굴 됐을 때는 어떻게 처리 되는가? 이는 다음 포스팅에서 정리하도록 하겠다.",
      "json_metadata": "{\"tags\":[\"pow\",\"mining\",\"bitcoin\",\"blockchain\",\"kr\"],\"image\":[\"https://steemitimages.com/DQmW2xy2Z53mpAnNz2zJHizfKfjsQ8wJj9XAGqAbVt1WQKj/image.png\"],\"links\":[\"https://blockchain.info\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "pow",
      "permlink": "pow-proof-of-work",
      "title": "작업증명 채굴방식 (PoW: Proof of Work Mining)"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T16:21:18",
  "trx_id": "6fc0530c15c82393b5030fec81ee66a79e6532a6",
  "trx_in_block": 7,
  "virtual_op": 0
}
2018/03/12 16:19:45
authormoonddo
permlinkbranch-of-block-chain-orphan-blocks
votermoonddo
weight10000 (100.00%)
Transaction InfoBlock #20615032/Trx 951c458e9c07cbc5ebbcc665f9b7dccca2afa774
View Raw JSON Data
{
  "block": 20615032,
  "op": [
    "vote",
    {
      "author": "moonddo",
      "permlink": "branch-of-block-chain-orphan-blocks",
      "voter": "moonddo",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T16:19:45",
  "trx_id": "951c458e9c07cbc5ebbcc665f9b7dccca2afa774",
  "trx_in_block": 40,
  "virtual_op": 0
}
2018/03/12 16:19:45
authormoonddo
body[PoW 방식 포스팅](https://steemit.com/pow/@moonddo/pow-proof-of-work)에도 설명했듯이, 해당 포스팅에서는 블록체인의 분기의 상황에 대해서 설명해보겠다. 아시다시피 비트코인의 블록 채굴작업은 컴퓨팅파워만 된다면 누구든 참여할 수 있다. [비트노드](https://bitnodes.earn.com/) 사이트에 가보면, 현재 몇 개의 풀노드들이 어떻게 분포되어 유지가 되고 있는지 볼 수 있다. 이 포스팅을 쓰는 시점에서는 현재 12128개의 노드들이 유지되고 있다. 이렇다 보니 비트코인이 최대한 동시 채굴이 안되도록 난이도 설계를 했다고 하지만, 결국 분산화된 데이터 구조이기 때문에 비슷한 시간대에 네트워크로 전파되기 전 동시 채굴은 언제든지 발생될 수 있다. 그럴 경우 어떻게 처리 되는지 살펴보도록 하겠다. 먼저 블록체인에는 `메인체인` 과, 메인 블록체인에서 나와 브랜치를 형성하는 `2차체인` 이 존재한다. 누적 난이도가 가장 큰 값을 가진 블록들은 언제든지 메인체인이 될 수 있다. 또, 2차체인도 메인체인과 비교하여 누적 난이도가 높다면 2차체인으로 수렴되어 이를 메인체인으로 선택하게 된다. 이해하기 쉽게 예를 들어보자, ![](https://steemitimages.com/DQmWauwXeDYPR71SVuqbDv9cgZN2ktU4CYrnC57CHmegF1a/image.png) 위와 같이 파란색 블록을 마지막으로 비슷한 시기에 한쪽은 빨간색, 한쪽은 초록색 블록을 채굴하여 체인이 2개로 분기가 됐다고 가정해보자. 이 상태에서 각각의 노드는 peer network로 블록을 전파할 것이고 (그림에선 지리학적으로 가까운 곳부터 전파되는 것처럼 보이지만, 실제로는 토폴리지 구성상 가까운 곳부터 이다.) 주변의 노드들은 먼저 전파 받은 체인을 각각 유지하는 형태가 될 것이다. 이 상태에서 초록색 블록까지 동기화한 곳에서 새로 분홍색 블록이 채굴됐다면, 전파 받는 곳에선 빨간색 블록을 받아도 이는 무시되고, 분홍색 블록이 담긴 체인을 메인체인으로 유지할 것이다. 그렇다면 기존에 빨간색 블록을 메인체인으로 유지하고 있던 노드는 어떻게 될 것인가? 분홍색 체인을 받는 순간 누적 난이도가 더 높은 분홍색 체인을 메인체인으로 채택하고, 기존 빨간 블록체인은 2차체인으로 변경할 것이다. 이렇게 더 이상 이후로 쌓이지 않는 이러한 빨간색 블록을 고아블록(Orphan Blocks) 이라고 부른다. 그럼 빨간색 블록 즉, 고아블록에 생성된 트랜잭션 또한 어떻게 처리될지 궁금할 것이다. 일단 MEMPOOL 또한 동기화가 되기 때문에, 결국 해당 트랜잭션이 유실되는 일은 발생하지 않는다. 즉, 누적 난이도가 더 높은 분홍체인(더 길에 유지되고 있는 체인)에 빨간 블록의 트랜잭션이 이미 포함되어 있을 가능성이 매우 높고, 그렇지 않다고 하더라도 MEMPOOL 에 들어있기 때문에 블록에 기록되는 우선순위가 늦어지는 것일 뿐 언젠가는 블록에 포함된다. 그러니 유효한 트랜잭션이 맞다면, 유실될 걱정은 하지 않아도 된다. 이처럼 블록체인은 작업 증명을 가장 많이 시행한 블록체인을 선택해서 유지하려고 한다. 이러한 체인을 Main Chain 또는 Longest Chain 또는 Greatest cumulative difficulty chain 이라고 부른다. 모든 노드들이 최장 누적 난이도 체인을 선택한다면, 결국 비트코인 네트워크는 일관된 상태로 수렴하게 된다. 또, 이런 분기는 대개 한 블록 내에서 해결이 된다. 노드는 채굴하고, 빠르게 전파하지 않으면 결국 본인이 생성한 체인이 채택이 안될 수도 있기 때문에 채굴뿐만 아니라 전파도 게을리하지 않는다. 해서 분기는 거의 한 블록 내에서 끝나게 된다. 위 설명한 고아블록(Orphaned Blocks)은 이라고 하는데, 고아블록은 [블록체인](https://blockchain.info/orphaned-blocks) 사이트에 들어가면 모두 확인해 볼 수 있다. 그 중 하나를 설명해 보겠다. ![](https://steemitimages.com/DQmZbQWAqhaHZfcWTJCiFHcwJrEiJnnZxQwo8hbHrvXqRVg/image.png) 현재 포스팅 시점에서 가장 최근에 생성된 고아블록이다. 현재는 **#513142** 블록까지 생성되어있고 그중 가장 최근에 블록 분기가 일어난 시점이 **#503949** 블록에서 발생하였다. 해당 시점에 비슷한 시점에 2개의 블록이 채굴되었고, 그중 **GBMiners** 가 채굴한 블록이 포함된 체인이 메인체인으로 유지가 되고 있다. 이렇게 되면, **SlushPool**이 채굴한 블록은 고아블록이 되고, **SlushPool** 는 아무런 보상을 받지 못한다. 초기에 보상을 받는 것처럼! 되어있지만, 실제로 완벽히 승인이 되는건 메인블록에 포함되고 나서라고 보면 되겠다. 해서 실제 거래에서도 트랜잭션이 발생하면 실제 블록에 포함되기까지 약 최소 10분정도 (블록이 생성되는 시간) 후에 거래가 승인된 것 처럼 보이지만, 실제는 메인체인에 포함되는 최소 약 2-30분 후에나 완벽한 승인이 이루어진 것으로 볼 수 있다. - 참조: 비트코인, 블록체인과 금융의 혁신 - 안드레아스 M. 안토노풀로스
json metadata{"tags":["blockchain","orphanblock","bitcoin","kr","branch"],"image":["https://steemitimages.com/DQmWauwXeDYPR71SVuqbDv9cgZN2ktU4CYrnC57CHmegF1a/image.png","https://steemitimages.com/DQmZbQWAqhaHZfcWTJCiFHcwJrEiJnnZxQwo8hbHrvXqRVg/image.png"],"links":["https://steemit.com/pow/@moonddo/pow-proof-of-work","https://bitnodes.earn.com/","https://blockchain.info/orphaned-blocks"],"app":"steemit/0.1","format":"markdown"}
parent author
parent permlinkblockchain
permlinkbranch-of-block-chain-orphan-blocks
title블록체인의 분기: 고아블록 (Branch of block chain: Orphan Blocks)
Transaction InfoBlock #20615032/Trx 951c458e9c07cbc5ebbcc665f9b7dccca2afa774
View Raw JSON Data
{
  "block": 20615032,
  "op": [
    "comment",
    {
      "author": "moonddo",
      "body": "[PoW 방식 포스팅](https://steemit.com/pow/@moonddo/pow-proof-of-work)에도 설명했듯이, 해당 포스팅에서는 블록체인의 분기의 상황에 대해서 설명해보겠다.  \n\n아시다시피 비트코인의 블록 채굴작업은 컴퓨팅파워만 된다면 누구든 참여할 수 있다.  \n[비트노드](https://bitnodes.earn.com/) 사이트에 가보면, 현재 몇 개의 풀노드들이 어떻게 분포되어 유지가 되고 있는지 볼 수 있다.  \n이 포스팅을 쓰는 시점에서는 현재 12128개의 노드들이 유지되고 있다.  \n이렇다 보니 비트코인이 최대한 동시 채굴이 안되도록 난이도 설계를 했다고 하지만, 결국 분산화된 데이터 구조이기 때문에 비슷한 시간대에 네트워크로 전파되기 전 동시 채굴은 언제든지 발생될 수 있다.  \n그럴 경우 어떻게 처리 되는지 살펴보도록 하겠다.  \n\n먼저 블록체인에는 `메인체인` 과, 메인 블록체인에서 나와 브랜치를 형성하는 `2차체인` 이 존재한다.  \n누적 난이도가 가장 큰 값을 가진 블록들은 언제든지 메인체인이 될 수 있다.  \n또, 2차체인도 메인체인과 비교하여 누적 난이도가 높다면 2차체인으로 수렴되어 이를 메인체인으로 선택하게 된다.  \n\n이해하기 쉽게 예를 들어보자,  \n\n![](https://steemitimages.com/DQmWauwXeDYPR71SVuqbDv9cgZN2ktU4CYrnC57CHmegF1a/image.png)\n\n위와 같이 파란색 블록을 마지막으로 비슷한 시기에 한쪽은 빨간색, 한쪽은 초록색 블록을 채굴하여 체인이 2개로 분기가 됐다고 가정해보자.  \n이 상태에서 각각의 노드는 peer network로 블록을 전파할 것이고 (그림에선 지리학적으로 가까운 곳부터 전파되는 것처럼 보이지만, 실제로는 토폴리지 구성상 가까운 곳부터 이다.)  \n주변의 노드들은 먼저 전파 받은 체인을 각각 유지하는 형태가 될 것이다.\n이 상태에서 초록색 블록까지 동기화한 곳에서 새로 분홍색 블록이 채굴됐다면,  \n전파 받는 곳에선 빨간색 블록을 받아도 이는 무시되고, 분홍색 블록이 담긴 체인을 메인체인으로 유지할 것이다.  \n\n그렇다면 기존에 빨간색 블록을 메인체인으로 유지하고 있던 노드는 어떻게 될 것인가? \n분홍색 체인을 받는 순간 누적 난이도가 더 높은 분홍색 체인을 메인체인으로 채택하고, 기존 빨간 블록체인은 2차체인으로 변경할 것이다. \n이렇게 더 이상 이후로 쌓이지 않는 이러한 빨간색 블록을 고아블록(Orphan Blocks) 이라고 부른다.\n그럼 빨간색 블록 즉, 고아블록에 생성된 트랜잭션 또한 어떻게 처리될지 궁금할 것이다.\n\n일단 MEMPOOL 또한 동기화가 되기 때문에, 결국 해당 트랜잭션이 유실되는 일은 발생하지 않는다.\n즉, 누적 난이도가 더 높은 분홍체인(더 길에 유지되고 있는 체인)에 빨간 블록의 트랜잭션이 이미 포함되어 있을 가능성이 매우 높고,\n그렇지 않다고 하더라도 MEMPOOL 에 들어있기 때문에 블록에 기록되는 우선순위가 늦어지는 것일 뿐 언젠가는 블록에 포함된다.\n그러니 유효한 트랜잭션이 맞다면, 유실될 걱정은 하지 않아도 된다.\n\n이처럼 블록체인은 작업 증명을 가장 많이 시행한 블록체인을 선택해서 유지하려고 한다.  \n이러한 체인을 Main Chain 또는 Longest Chain 또는 Greatest cumulative difficulty chain 이라고 부른다.  \n모든 노드들이 최장 누적 난이도 체인을 선택한다면, 결국 비트코인 네트워크는 일관된 상태로 수렴하게 된다.  \n또, 이런 분기는 대개 한 블록 내에서 해결이 된다.  \n노드는 채굴하고, 빠르게 전파하지 않으면 결국 본인이 생성한 체인이 채택이 안될 수도 있기 때문에 채굴뿐만 아니라 전파도 게을리하지 않는다.\n해서 분기는 거의 한 블록 내에서 끝나게 된다.  \n\n위 설명한 고아블록(Orphaned Blocks)은 이라고 하는데,  고아블록은 [블록체인](https://blockchain.info/orphaned-blocks) 사이트에 들어가면 모두 확인해 볼 수 있다.  \n그 중 하나를 설명해 보겠다.  \n\n![](https://steemitimages.com/DQmZbQWAqhaHZfcWTJCiFHcwJrEiJnnZxQwo8hbHrvXqRVg/image.png)\n\n현재 포스팅 시점에서 가장 최근에 생성된 고아블록이다.   \n현재는 **#513142** 블록까지 생성되어있고 그중 가장 최근에 블록 분기가 일어난 시점이 **#503949** 블록에서 발생하였다.\n해당 시점에 비슷한 시점에 2개의 블록이 채굴되었고, 그중 **GBMiners** 가 채굴한 블록이 포함된 체인이 메인체인으로 유지가 되고 있다.  \n\n이렇게 되면, **SlushPool**이 채굴한 블록은 고아블록이 되고, **SlushPool** 는 아무런 보상을 받지 못한다.  \n초기에 보상을 받는 것처럼! 되어있지만, 실제로 완벽히 승인이 되는건 메인블록에 포함되고 나서라고 보면 되겠다.  \n\n해서 실제 거래에서도 트랜잭션이 발생하면 실제 블록에 포함되기까지 약 최소 10분정도 (블록이 생성되는 시간) 후에 거래가 승인된 것 처럼 보이지만,  \n실제는 메인체인에 포함되는 최소 약 2-30분 후에나 완벽한 승인이 이루어진 것으로 볼 수 있다.  \n\n\n- 참조: 비트코인, 블록체인과 금융의 혁신 - 안드레아스 M. 안토노풀로스",
      "json_metadata": "{\"tags\":[\"blockchain\",\"orphanblock\",\"bitcoin\",\"kr\",\"branch\"],\"image\":[\"https://steemitimages.com/DQmWauwXeDYPR71SVuqbDv9cgZN2ktU4CYrnC57CHmegF1a/image.png\",\"https://steemitimages.com/DQmZbQWAqhaHZfcWTJCiFHcwJrEiJnnZxQwo8hbHrvXqRVg/image.png\"],\"links\":[\"https://steemit.com/pow/@moonddo/pow-proof-of-work\",\"https://bitnodes.earn.com/\",\"https://blockchain.info/orphaned-blocks\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "blockchain",
      "permlink": "branch-of-block-chain-orphan-blocks",
      "title": "블록체인의 분기: 고아블록 (Branch of block chain: Orphan Blocks)"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T16:19:45",
  "trx_id": "951c458e9c07cbc5ebbcc665f9b7dccca2afa774",
  "trx_in_block": 40,
  "virtual_op": 0
}
2018/03/12 15:42:09
authormoonddo
permlinkpow-proof-of-work
voterniipoong
weight10000 (100.00%)
Transaction InfoBlock #20614281/Trx 3dffed1ad735609d1732022283fd629d5690f4e2
View Raw JSON Data
{
  "block": 20614281,
  "op": [
    "vote",
    {
      "author": "moonddo",
      "permlink": "pow-proof-of-work",
      "voter": "niipoong",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T15:42:09",
  "trx_id": "3dffed1ad735609d1732022283fd629d5690f4e2",
  "trx_in_block": 20,
  "virtual_op": 0
}
imamulupvoted (100.00%) @moonddo / pow-proof-of-work
2018/03/12 15:26:12
authormoonddo
permlinkpow-proof-of-work
voterimamul
weight10000 (100.00%)
Transaction InfoBlock #20613962/Trx 690871b7fbf58554708b8f4de47177fa585af700
View Raw JSON Data
{
  "block": 20613962,
  "op": [
    "vote",
    {
      "author": "moonddo",
      "permlink": "pow-proof-of-work",
      "voter": "imamul",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T15:26:12",
  "trx_id": "690871b7fbf58554708b8f4de47177fa585af700",
  "trx_in_block": 47,
  "virtual_op": 0
}
2018/03/12 15:25:45
authormoonddo
permlinkpow-proof-of-work
votermoonddo
weight10000 (100.00%)
Transaction InfoBlock #20613953/Trx e5e59fc8f341386ff6495d4f74c53e0afeca2bce
View Raw JSON Data
{
  "block": 20613953,
  "op": [
    "vote",
    {
      "author": "moonddo",
      "permlink": "pow-proof-of-work",
      "voter": "moonddo",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T15:25:45",
  "trx_id": "e5e59fc8f341386ff6495d4f74c53e0afeca2bce",
  "trx_in_block": 29,
  "virtual_op": 0
}
moonddopublished a new post: pow-proof-of-work
2018/03/12 15:25:45
authormoonddo
body블록체인의 기반인 블록을 채굴(Mining)하는 방법 중 PoW 방식에 대해 알아보자. ## PoW (Proof of Work: 작업증명) 말그대로 엄청난 작업을 해서 그 작업을 증명함으로 인해 블록을 채굴하는 방식이다. 그럼여기서 말하는 작업(work)이란 무엇일까? 바로, `Nonce` 를 찾는 일이다. PoW 방식에는 난이도 목표값(target value)이라는 것이 존재한다. 이 목표값보다 작은 block의 hash를 만족시키는 `Nonce` 를 찾는것이 채굴이다. 해서 채굴자들은 Nonce 를 계속 변경해 가며 block의 hash 값을 목표값보다 작은 값으로 만들어주는 Nonce를 찾는다. 그 Nonce 값을 찾은 채굴자는 채굴보상과 함께 해당 블록에 기록된 거래수수료(transaction fees) 를 보상받게된다. 실제 PoW 방식을 채택하고있는 비트코인을 예로 들어 설명해보겠다. https://blockchain.info 라는 사이트에 들어가보면 지금까지 생성된 모든 블록의 정보를 볼 수 있다. 거기서 현재시점에서 가장 최근 블록인 **#512706** 번째 블록으로 예를 들어보겠다. ![](https://steemitimages.com/DQmW2xy2Z53mpAnNz2zJHizfKfjsQ8wJj9XAGqAbVt1WQKj/image.png) 위 그림을 보면 Difficulty, Bits, Nonce, Hash 4가지의 값을 볼 수 있을것이다. - Difficulty는 실제 **#512706** 블록을 채굴하는데 걸린 난이도 값이고, - Bits는 난이도 비트(difficulty bits) 값 즉, 목표값을 지수(exponent)와 계수(coefficient)로 나눠서 적어둔 수이다. - Nonce는 블록 헤더정보의 해시값을 목표값 보다 작은값으로 만들어주는 변경할 수 있는 데이터다. (엄밀이 말하면 header에 포함된 머클루트도 변경의 여지는 있다. 이는 차후에 설명..) - Hash는 블록 헤더정보(6가지)를 통해 만든 목표값보다 낮은 해시값. ``` 블록의 헤더 - ver (소프트웨어 버전정보) - prev_block (부모 블록의 해시) - merkle_root (트랜잭션의 머클트리 탑해시값) - timestamp (블록의 timestamp) - bits - nonce 위 6가지 순서로 byte로 이어준후에 HEX 디코딩 -> SHA256 + digest() 더블해시 -> HEX 인코딩 처리해주면 block의 hash값 구할 수 있다. ``` 그럼 위 내용을 가지고, **#512706** 블록을 검증해보겠다. 일단, 우리가 만족시켜야하는 목표값을 알아야하는데 목표값은 Bits 값을 통해 구할 수 있다. ``` target = coefficient * 2**(8 * (exponent -. 3)) ** 는 거듭제곱을 의미 ``` ``` 1. 10진수로 표시된 Bits 값을 16진수로 변환 391481763 -> 0x175589A3 2. 앞에 두자리인 0x17은 지수, 0x5589A3 은 계수 3. 위 공식에 대입 target = 0x5589A3 * 2**(0x08 * (0x17 - 0x03)) target = 0x5589A3 * 2**(0x08 * 0x14) target = 0x5589A3 * 2**(0xA0) 4. 10진법으로 변환 target = 5605795 * 2**160 target ≒ 8.192878571041389E54 5. 16진수로 다시 변환 target ≒ 0x0000000000000000005589A30000000000000000000000000000000000000000 ``` 계산법에 따라 타겟 목표값이 위와 같이 나온다. 보면, **#512706** block의 hash 값이 해당 목표값보다 낮음을 알 수 있다. 위 방법을 통해서 PoW 방식은 Nonce를 찾아 채굴을 하고, 채굴한 순간 해당 블록을 네트워크를 통해 전파시킨다. 전달받은 다른 노드들은, 일련의 검증절차에 따라 블록을 검증하고 유효하면 자신의 체인에 연결하게 된다. 그럼 기존에 채굴하고 있던 것은 멈추고 새로 MEMPOOL (트랜잭션이 모여있는 풀) 에서 데이터를 가져와 새로 채굴을 시작한다. 그럼 동시에 채굴 됐을 때는 어떻게 처리 되는가? 이는 다음 포스팅에서 정리하도록 하겠다.
json metadata{"tags":["pow","mining","bitcoin","blockchain","kr"],"image":["https://steemitimages.com/DQmW2xy2Z53mpAnNz2zJHizfKfjsQ8wJj9XAGqAbVt1WQKj/image.png"],"links":["https://blockchain.info"],"app":"steemit/0.1","format":"markdown"}
parent author
parent permlinkpow
permlinkpow-proof-of-work
titlePoW: Proof of Work 작업증명 채굴방식
Transaction InfoBlock #20613953/Trx e5e59fc8f341386ff6495d4f74c53e0afeca2bce
View Raw JSON Data
{
  "block": 20613953,
  "op": [
    "comment",
    {
      "author": "moonddo",
      "body": "블록체인의 기반인 블록을 채굴(Mining)하는 방법 중 PoW 방식에 대해 알아보자.\n\n## PoW (Proof of Work: 작업증명)\n말그대로 엄청난 작업을 해서 그 작업을 증명함으로 인해 블록을 채굴하는 방식이다.  \n그럼여기서 말하는 작업(work)이란 무엇일까?  \n바로, `Nonce` 를 찾는 일이다.  \nPoW 방식에는 난이도 목표값(target value)이라는 것이 존재한다. \n이 목표값보다 작은 block의 hash를 만족시키는 `Nonce` 를 찾는것이 채굴이다.  \n\n해서 채굴자들은 Nonce 를 계속 변경해 가며 block의 hash 값을 목표값보다 작은 값으로 만들어주는 Nonce를 찾는다.\n그 Nonce 값을 찾은 채굴자는 채굴보상과 함께 해당 블록에 기록된 거래수수료(transaction fees) 를 보상받게된다.  \n\n실제 PoW 방식을 채택하고있는 비트코인을 예로 들어 설명해보겠다.  \nhttps://blockchain.info 라는 사이트에 들어가보면 지금까지 생성된 모든 블록의 정보를 볼 수 있다.  \n거기서 현재시점에서 가장 최근 블록인 **#512706** 번째 블록으로 예를 들어보겠다.  \n  \n![](https://steemitimages.com/DQmW2xy2Z53mpAnNz2zJHizfKfjsQ8wJj9XAGqAbVt1WQKj/image.png)\n\n위 그림을 보면 Difficulty, Bits, Nonce, Hash 4가지의 값을 볼 수 있을것이다.  \n- Difficulty는 실제 **#512706** 블록을 채굴하는데 걸린 난이도 값이고,  \n- Bits는 난이도 비트(difficulty bits) 값 즉, 목표값을 지수(exponent)와 계수(coefficient)로 나눠서 적어둔 수이다.  \n- Nonce는 블록 헤더정보의 해시값을 목표값 보다 작은값으로 만들어주는 변경할 수 있는 데이터다.  \n(엄밀이 말하면 header에 포함된 머클루트도 변경의 여지는 있다. 이는 차후에 설명..)\n- Hash는 블록 헤더정보(6가지)를 통해 만든 목표값보다 낮은 해시값.  \n```\n블록의 헤더\n- ver (소프트웨어 버전정보)\n- prev_block (부모 블록의 해시)\n- merkle_root (트랜잭션의 머클트리 탑해시값)\n- timestamp (블록의 timestamp)\n- bits\n- nonce\n\n위 6가지 순서로 byte로 이어준후에\nHEX 디코딩 -> SHA256 + digest() 더블해시 -> HEX 인코딩 처리해주면\nblock의 hash값 구할 수 있다.\n```\n\n  \n그럼 위 내용을 가지고, **#512706** 블록을 검증해보겠다.  \n일단, 우리가 만족시켜야하는 목표값을 알아야하는데 목표값은 Bits 값을 통해 구할 수 있다.  \n\n```\ntarget = coefficient * 2**(8 * (exponent -. 3))\n** 는 거듭제곱을 의미\n```\n\n```\n1. 10진수로 표시된 Bits 값을 16진수로 변환 \n  391481763 -> 0x175589A3\n2. 앞에 두자리인 0x17은 지수, 0x5589A3 은 계수\n3. 위 공식에 대입 \n  target = 0x5589A3 * 2**(0x08 * (0x17 - 0x03))\n  target = 0x5589A3 * 2**(0x08 * 0x14)\n  target = 0x5589A3 * 2**(0xA0)\n4. 10진법으로 변환\n  target = 5605795 * 2**160\n  target ≒ 8.192878571041389E54\n5. 16진수로 다시 변환\n  target ≒ 0x0000000000000000005589A30000000000000000000000000000000000000000\n```\n\n계산법에 따라 타겟 목표값이 위와 같이 나온다.  \n보면, **#512706** block의 hash 값이 해당 목표값보다 낮음을 알 수 있다.  \n\n위 방법을 통해서 PoW 방식은 Nonce를 찾아 채굴을 하고, 채굴한 순간 해당 블록을 네트워크를 통해 전파시킨다.  \n전달받은 다른 노드들은, 일련의 검증절차에 따라 블록을 검증하고 유효하면 자신의 체인에 연결하게 된다.  \n그럼 기존에 채굴하고 있던 것은 멈추고 새로 MEMPOOL (트랜잭션이 모여있는 풀) 에서 데이터를 가져와 새로 채굴을 시작한다.  \n\n그럼 동시에 채굴 됐을 때는 어떻게 처리 되는가? 이는 다음 포스팅에서 정리하도록 하겠다.",
      "json_metadata": "{\"tags\":[\"pow\",\"mining\",\"bitcoin\",\"blockchain\",\"kr\"],\"image\":[\"https://steemitimages.com/DQmW2xy2Z53mpAnNz2zJHizfKfjsQ8wJj9XAGqAbVt1WQKj/image.png\"],\"links\":[\"https://blockchain.info\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "pow",
      "permlink": "pow-proof-of-work",
      "title": "PoW: Proof of Work 작업증명 채굴방식"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T15:25:45",
  "trx_id": "e5e59fc8f341386ff6495d4f74c53e0afeca2bce",
  "trx_in_block": 29,
  "virtual_op": 0
}
steemdelegated 18.720 SP to @moonddo
2018/03/12 15:11:51
delegateemoonddo
delegatorsteem
vesting shares30422.738976 VESTS
Transaction InfoBlock #20613675/Trx 090f0c16a7b5940a9935a85235b6cf94d67c18d2
View Raw JSON Data
{
  "block": 20613675,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "moonddo",
      "delegator": "steem",
      "vesting_shares": "30422.738976 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T15:11:51",
  "trx_id": "090f0c16a7b5940a9935a85235b6cf94d67c18d2",
  "trx_in_block": 37,
  "virtual_op": 0
}
moonddoupvoted (100.00%) @niipoong / 4okvgp
2018/03/12 15:10:51
authorniipoong
permlink4okvgp
votermoonddo
weight10000 (100.00%)
Transaction InfoBlock #20613655/Trx f415428cfaab94143ce017d8650d7ad913099f16
View Raw JSON Data
{
  "block": 20613655,
  "op": [
    "vote",
    {
      "author": "niipoong",
      "permlink": "4okvgp",
      "voter": "moonddo",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T15:10:51",
  "trx_id": "f415428cfaab94143ce017d8650d7ad913099f16",
  "trx_in_block": 49,
  "virtual_op": 0
}
2018/03/12 15:10:33
authorniipoong
permlinkscriptsig-scriptpubkey
votermoonddo
weight10000 (100.00%)
Transaction InfoBlock #20613649/Trx 99736285d3fa6b24184baa12690e00d021e006d1
View Raw JSON Data
{
  "block": 20613649,
  "op": [
    "vote",
    {
      "author": "niipoong",
      "permlink": "scriptsig-scriptpubkey",
      "voter": "moonddo",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T15:10:33",
  "trx_id": "99736285d3fa6b24184baa12690e00d021e006d1",
  "trx_in_block": 13,
  "virtual_op": 0
}
2018/03/12 15:03:54
authorniipoong
permlinkbitcoin-blockchain-branch
votermoonddo
weight10000 (100.00%)
Transaction InfoBlock #20613516/Trx 0176dee33674615480d23a31572c88777e4d20b9
View Raw JSON Data
{
  "block": 20613516,
  "op": [
    "vote",
    {
      "author": "niipoong",
      "permlink": "bitcoin-blockchain-branch",
      "voter": "moonddo",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T15:03:54",
  "trx_id": "0176dee33674615480d23a31572c88777e4d20b9",
  "trx_in_block": 33,
  "virtual_op": 0
}
2018/03/12 15:03:09
idfollow
json["follow",{"follower":"moonddo","following":"niipoong","what":["blog"]}]
required auths[]
required posting auths["moonddo"]
Transaction InfoBlock #20613502/Trx e0a70d2ee724ce6c4e0fca776272e2948c1d12b3
View Raw JSON Data
{
  "block": 20613502,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"moonddo\",\"following\":\"niipoong\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "moonddo"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T15:03:09",
  "trx_id": "e0a70d2ee724ce6c4e0fca776272e2948c1d12b3",
  "trx_in_block": 30,
  "virtual_op": 0
}
moonddoupdated their account properties
2018/03/12 15:02:18
accountmoonddo
json metadata{"profile":{"profile_image":"https://user-images.githubusercontent.com/35455787/37291251-9b651e7a-2651-11e8-8665-dfaa321de906.png","name":"문또"}}
memo keySTM8hjkWoijfFTEqDCTgtA8L5H6FEUNwf5RXjFmgdmkDB57pRXsmG
Transaction InfoBlock #20613485/Trx 5f080dc8462262ed097489a26239e71087a43180
View Raw JSON Data
{
  "block": 20613485,
  "op": [
    "account_update",
    {
      "account": "moonddo",
      "json_metadata": "{\"profile\":{\"profile_image\":\"https://user-images.githubusercontent.com/35455787/37291251-9b651e7a-2651-11e8-8665-dfaa321de906.png\",\"name\":\"문또\"}}",
      "memo_key": "STM8hjkWoijfFTEqDCTgtA8L5H6FEUNwf5RXjFmgdmkDB57pRXsmG"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T15:02:18",
  "trx_id": "5f080dc8462262ed097489a26239e71087a43180",
  "trx_in_block": 39,
  "virtual_op": 0
}
moonddoupdated their account properties
2018/03/12 15:01:39
accountmoonddo
json metadata{"profile":{"profile_image":"https://user-images.githubusercontent.com/35455787/37291251-9b651e7a-2651-11e8-8665-dfaa321de906.png","name":"문또","cover_image":"https://scontent-sea1-1.cdninstagram.com/t51.2885-15/s480x480/e35/12070727_567619943415626_893875291_n.jpg?ig_cache_key=MTE4ODg2NDY0OTc2MzE4MTk0Nw%3D%3D.2"}}
memo keySTM8hjkWoijfFTEqDCTgtA8L5H6FEUNwf5RXjFmgdmkDB57pRXsmG
Transaction InfoBlock #20613472/Trx b2457b916249d29d7a69c3c10a2be0b2ffa254fb
View Raw JSON Data
{
  "block": 20613472,
  "op": [
    "account_update",
    {
      "account": "moonddo",
      "json_metadata": "{\"profile\":{\"profile_image\":\"https://user-images.githubusercontent.com/35455787/37291251-9b651e7a-2651-11e8-8665-dfaa321de906.png\",\"name\":\"문또\",\"cover_image\":\"https://scontent-sea1-1.cdninstagram.com/t51.2885-15/s480x480/e35/12070727_567619943415626_893875291_n.jpg?ig_cache_key=MTE4ODg2NDY0OTc2MzE4MTk0Nw%3D%3D.2\"}}",
      "memo_key": "STM8hjkWoijfFTEqDCTgtA8L5H6FEUNwf5RXjFmgdmkDB57pRXsmG"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T15:01:39",
  "trx_id": "b2457b916249d29d7a69c3c10a2be0b2ffa254fb",
  "trx_in_block": 29,
  "virtual_op": 0
}
moonddoupdated their account properties
2018/03/12 14:51:15
accountmoonddo
json metadata{"profile":{"profile_image":"https://scontent-icn1-1.xx.fbcdn.net/v/t1.0-9/21616029_147438722528756_1343489911553957922_n.jpg?oh=9cd78e783127168bb0552e4cd9e7638a&oe=5B088EAE","name":"문또","about":"나는 그냥 나다."}}
memo keySTM8hjkWoijfFTEqDCTgtA8L5H6FEUNwf5RXjFmgdmkDB57pRXsmG
Transaction InfoBlock #20613265/Trx 95d7f4b28112187714b8111a3f96398c95b6fdc5
View Raw JSON Data
{
  "block": 20613265,
  "op": [
    "account_update",
    {
      "account": "moonddo",
      "json_metadata": "{\"profile\":{\"profile_image\":\"https://scontent-icn1-1.xx.fbcdn.net/v/t1.0-9/21616029_147438722528756_1343489911553957922_n.jpg?oh=9cd78e783127168bb0552e4cd9e7638a&oe=5B088EAE\",\"name\":\"문또\",\"about\":\"나는 그냥 나다.\"}}",
      "memo_key": "STM8hjkWoijfFTEqDCTgtA8L5H6FEUNwf5RXjFmgdmkDB57pRXsmG"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T14:51:15",
  "trx_id": "95d7f4b28112187714b8111a3f96398c95b6fdc5",
  "trx_in_block": 8,
  "virtual_op": 0
}
steemcreated a new account: @moonddo
2018/03/12 14:43:06
active{"account_auths":[],"key_auths":[["STM8E34wkzFsBVfkMUGPNpgPADKRD77WCihd8HDbFo6T8ym5afCTL",1]],"weight_threshold":1}
creatorsteem
delegation30690.000000 VESTS
extensions[]
fee0.100 STEEM
json metadata{}
memo keySTM8hjkWoijfFTEqDCTgtA8L5H6FEUNwf5RXjFmgdmkDB57pRXsmG
new account namemoonddo
owner{"account_auths":[],"key_auths":[["STM7vjH7CtPpM3sGCu4URWACjUm6ME49YyidDukDAkX5RmeuDoPyX",1]],"weight_threshold":1}
posting{"account_auths":[],"key_auths":[["STM5h6P2VbssrgSvA23te7oLDuGHoLozu5eL2bVqkZsd5hrtV8uRv",1]],"weight_threshold":1}
Transaction InfoBlock #20613102/Trx 6f7d1e1d9c2e99f8bed9a54a9ccb3926c616e06f
View Raw JSON Data
{
  "block": 20613102,
  "op": [
    "account_create_with_delegation",
    {
      "active": {
        "account_auths": [],
        "key_auths": [
          [
            "STM8E34wkzFsBVfkMUGPNpgPADKRD77WCihd8HDbFo6T8ym5afCTL",
            1
          ]
        ],
        "weight_threshold": 1
      },
      "creator": "steem",
      "delegation": "30690.000000 VESTS",
      "extensions": [],
      "fee": "0.100 STEEM",
      "json_metadata": "{}",
      "memo_key": "STM8hjkWoijfFTEqDCTgtA8L5H6FEUNwf5RXjFmgdmkDB57pRXsmG",
      "new_account_name": "moonddo",
      "owner": {
        "account_auths": [],
        "key_auths": [
          [
            "STM7vjH7CtPpM3sGCu4URWACjUm6ME49YyidDukDAkX5RmeuDoPyX",
            1
          ]
        ],
        "weight_threshold": 1
      },
      "posting": {
        "account_auths": [],
        "key_auths": [
          [
            "STM5h6P2VbssrgSvA23te7oLDuGHoLozu5eL2bVqkZsd5hrtV8uRv",
            1
          ]
        ],
        "weight_threshold": 1
      }
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T14:43:06",
  "trx_id": "6f7d1e1d9c2e99f8bed9a54a9ccb3926c616e06f",
  "trx_in_block": 42,
  "virtual_op": 0
}

Account Metadata

POSTING JSON METADATA
profile{"profile_image":"https://user-images.githubusercontent.com/35455787/37291251-9b651e7a-2651-11e8-8665-dfaa321de906.png","name":"문또"}
JSON METADATA
profile{"profile_image":"https://user-images.githubusercontent.com/35455787/37291251-9b651e7a-2651-11e8-8665-dfaa321de906.png","name":"문또"}
{
  "posting_json_metadata": {
    "profile": {
      "profile_image": "https://user-images.githubusercontent.com/35455787/37291251-9b651e7a-2651-11e8-8665-dfaa321de906.png",
      "name": "문또"
    }
  },
  "json_metadata": {
    "profile": {
      "profile_image": "https://user-images.githubusercontent.com/35455787/37291251-9b651e7a-2651-11e8-8665-dfaa321de906.png",
      "name": "문또"
    }
  }
}

Auth Keys

Owner
Single Signature
Public Keys
STM7vjH7CtPpM3sGCu4URWACjUm6ME49YyidDukDAkX5RmeuDoPyX1/1
Active
Single Signature
Public Keys
STM8E34wkzFsBVfkMUGPNpgPADKRD77WCihd8HDbFo6T8ym5afCTL1/1
Posting
Single Signature
Public Keys
STM5h6P2VbssrgSvA23te7oLDuGHoLozu5eL2bVqkZsd5hrtV8uRv1/1
Memo
STM8hjkWoijfFTEqDCTgtA8L5H6FEUNwf5RXjFmgdmkDB57pRXsmG
{
  "owner": {
    "account_auths": [],
    "key_auths": [
      [
        "STM7vjH7CtPpM3sGCu4URWACjUm6ME49YyidDukDAkX5RmeuDoPyX",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "active": {
    "account_auths": [],
    "key_auths": [
      [
        "STM8E34wkzFsBVfkMUGPNpgPADKRD77WCihd8HDbFo6T8ym5afCTL",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "posting": {
    "account_auths": [],
    "key_auths": [
      [
        "STM5h6P2VbssrgSvA23te7oLDuGHoLozu5eL2bVqkZsd5hrtV8uRv",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "memo": "STM8hjkWoijfFTEqDCTgtA8L5H6FEUNwf5RXjFmgdmkDB57pRXsmG"
}

Witness Votes

0 / 30
No active witness votes.
[]