Ecoer Logo
VOTING POWER100.00%
DOWNVOTE POWER100.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS0.99%
Net Worth
0.007USD
STEEM
0.000STEEM
SBD
0.000SBD
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.000STEEM
STEEM POWER
Own SP
0.126SP
Delegated Out
0.000SP
Delegation In
4.885SP
Effective Power
5.011SP
Reward SP (pending)
0.185SP
SBD
sbd_balance
0.000SBD
sbd_conversions
0.000SBD
sbd_market_balance
0.000SBD
savings_sbd_balance
0.000SBD
reward_sbd_balance
0.000SBD
{
  "balance": "0.000 STEEM",
  "savings_balance": "0.000 STEEM",
  "reward_steem_balance": "0.000 STEEM",
  "vesting_shares": "204.181338 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "7939.478468 VESTS",
  "sbd_balance": "0.000 SBD",
  "savings_sbd_balance": "0.000 SBD",
  "reward_sbd_balance": "0.000 SBD",
  "conversions": []
}

Account Info

namejahyun.dev
id819475
rank423,233
reputation2159912471
created2018-03-12T10:08:24
recovery_accountsteem
proxyNone
post_count3
comment_count0
lifetime_vote_count0
witnesses_voted_for0
last_post2018-03-14T06:06:39
last_root_post2018-03-12T10:18:45
last_vote_time2018-03-14T06:04:51
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.181338 VESTS
delegated_vesting_shares0.000000 VESTS
received_vesting_shares7939.478468 VESTS
reward_vesting_balance377.598176 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_update1970-01-01T00:00:00
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": [
      [
        "STM8BDZg4gpebyWmijw4wEcXuDrww6CyJsd3WRuS3MYLMRTreUvDc",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "balance": "0.000 STEEM",
  "can_vote": true,
  "comment_count": 0,
  "created": "2018-03-12T10:08:24",
  "curation_rewards": 3,
  "delegated_vesting_shares": "0.000000 VESTS",
  "downvote_manabar": {
    "current_mana": 2035914951,
    "last_update_time": 1779068316
  },
  "guest_bloggers": [],
  "id": 819475,
  "json_metadata": "{}",
  "last_account_recovery": "1970-01-01T00:00:00",
  "last_account_update": "1970-01-01T00:00:00",
  "last_owner_update": "1970-01-01T00:00:00",
  "last_post": "2018-03-14T06:06:39",
  "last_root_post": "2018-03-12T10:18:45",
  "last_vote_time": "2018-03-14T06:04:51",
  "lifetime_vote_count": 0,
  "market_history": [],
  "memo_key": "STM6H9KbwAszpHifv2jLL6TQRhaB8REC1HJzchywstajiXVq9XWmL",
  "mined": false,
  "name": "jahyun.dev",
  "next_vesting_withdrawal": "1969-12-31T23:59:59",
  "other_history": [],
  "owner": {
    "account_auths": [],
    "key_auths": [
      [
        "STM6oeTHUbfyQ4VbXYi78XaeSroNBRGUmgkBB8QiiJAZUrL1Q263M",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "pending_claimed_accounts": 0,
  "post_bandwidth": 0,
  "post_count": 3,
  "post_history": [],
  "posting": {
    "account_auths": [],
    "key_auths": [
      [
        "STM5NLgNUagirB513o46xDV3295NwHmwEAQ5RaCajuP8rMFSAkCjG",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "posting_json_metadata": "",
  "posting_rewards": 182,
  "proxied_vsf_votes": [
    0,
    0,
    0,
    0
  ],
  "proxy": "",
  "received_vesting_shares": "7939.478468 VESTS",
  "recovery_account": "steem",
  "reputation": 2159912471,
  "reset_account": "null",
  "reward_sbd_balance": "0.000 SBD",
  "reward_steem_balance": "0.000 STEEM",
  "reward_vesting_balance": "377.598176 VESTS",
  "reward_vesting_steem": "0.185 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.181338 VESTS",
  "vesting_withdraw_rate": "0.000000 VESTS",
  "vote_history": [],
  "voting_manabar": {
    "current_mana": "8143659806",
    "last_update_time": 1779068316
  },
  "voting_power": 0,
  "withdraw_routes": 0,
  "withdrawn": 0,
  "witness_votes": [],
  "witnesses_voted_for": 0,
  "rank": 423233
}

Withdraw Routes

IncomingOutgoing
Empty
Empty
{
  "incoming": [],
  "outgoing": []
}
From Date
To Date
steemdelegated 4.885 SP to @jahyun.dev
2026/05/18 01:38:36
delegateejahyun.dev
delegatorsteem
vesting shares7939.478468 VESTS
Transaction InfoBlock #106145107/Trx f53a4894f39281754cd9aff81966af8c1d420429
View Raw JSON Data
{
  "block": 106145107,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "jahyun.dev",
      "delegator": "steem",
      "vesting_shares": "7939.478468 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2026-05-18T01:38:36",
  "trx_id": "f53a4894f39281754cd9aff81966af8c1d420429",
  "trx_in_block": 2,
  "virtual_op": 0
}
steemdelegated 3.216 SP to @jahyun.dev
2026/05/12 09:30:09
delegateejahyun.dev
delegatorsteem
vesting shares5227.268063 VESTS
Transaction InfoBlock #105982491/Trx edd21261d165bf543131b447defdedaa1cb85d16
View Raw JSON Data
{
  "block": 105982491,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "jahyun.dev",
      "delegator": "steem",
      "vesting_shares": "5227.268063 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2026-05-12T09:30:09",
  "trx_id": "edd21261d165bf543131b447defdedaa1cb85d16",
  "trx_in_block": 1,
  "virtual_op": 0
}
steemdelegated 4.893 SP to @jahyun.dev
2026/04/26 00:57:15
delegateejahyun.dev
delegatorsteem
vesting shares7951.994224 VESTS
Transaction InfoBlock #105512720/Trx 16d3349a1d5936d598a2a4878e3a171f74de0b19
View Raw JSON Data
{
  "block": 105512720,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "jahyun.dev",
      "delegator": "steem",
      "vesting_shares": "7951.994224 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2026-04-26T00:57:15",
  "trx_id": "16d3349a1d5936d598a2a4878e3a171f74de0b19",
  "trx_in_block": 0,
  "virtual_op": 0
}
steemdelegated 3.242 SP to @jahyun.dev
2026/01/23 11:32:42
delegateejahyun.dev
delegatorsteem
vesting shares5268.814882 VESTS
Transaction InfoBlock #102856298/Trx d425d627ad42d96985ce362d043cf16dd955cb7d
View Raw JSON Data
{
  "block": 102856298,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "jahyun.dev",
      "delegator": "steem",
      "vesting_shares": "5268.814882 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2026-01-23T11:32:42",
  "trx_id": "d425d627ad42d96985ce362d043cf16dd955cb7d",
  "trx_in_block": 3,
  "virtual_op": 0
}
steemdelegated 3.343 SP to @jahyun.dev
2024/12/17 06:49:51
delegateejahyun.dev
delegatorsteem
vesting shares5433.034079 VESTS
Transaction InfoBlock #91302657/Trx c2720602c2217d0f02ce51fab3e41755e46a9487
View Raw JSON Data
{
  "block": 91302657,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "jahyun.dev",
      "delegator": "steem",
      "vesting_shares": "5433.034079 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2024-12-17T06:49:51",
  "trx_id": "c2720602c2217d0f02ce51fab3e41755e46a9487",
  "trx_in_block": 3,
  "virtual_op": 0
}
steemdelegated 3.447 SP to @jahyun.dev
2023/11/13 22:32:00
delegateejahyun.dev
delegatorsteem
vesting shares5602.167611 VESTS
Transaction InfoBlock #79856844/Trx 14742075fae7fdbde4072615467bf72377cdfc8e
View Raw JSON Data
{
  "block": 79856844,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "jahyun.dev",
      "delegator": "steem",
      "vesting_shares": "5602.167611 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2023-11-13T22:32:00",
  "trx_id": "14742075fae7fdbde4072615467bf72377cdfc8e",
  "trx_in_block": 4,
  "virtual_op": 0
}
steemdelegated 5.254 SP to @jahyun.dev
2023/09/21 23:28:33
delegateejahyun.dev
delegatorsteem
vesting shares8539.446397 VESTS
Transaction InfoBlock #78349799/Trx be2b60d55c6c2cd640fa0fdd59dc8b2d4680d262
View Raw JSON Data
{
  "block": 78349799,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "jahyun.dev",
      "delegator": "steem",
      "vesting_shares": "8539.446397 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2023-09-21T23:28:33",
  "trx_id": "be2b60d55c6c2cd640fa0fdd59dc8b2d4680d262",
  "trx_in_block": 1,
  "virtual_op": 0
}
steemdelegated 5.391 SP to @jahyun.dev
2022/11/03 13:03:03
delegateejahyun.dev
delegatorsteem
vesting shares8761.127835 VESTS
Transaction InfoBlock #69114870/Trx 007c4be59b0895173cf1377fb9ebe25f2c5b6034
View Raw JSON Data
{
  "block": 69114870,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "jahyun.dev",
      "delegator": "steem",
      "vesting_shares": "8761.127835 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-11-03T13:03:03",
  "trx_id": "007c4be59b0895173cf1377fb9ebe25f2c5b6034",
  "trx_in_block": 5,
  "virtual_op": 0
}
steemdelegated 5.526 SP to @jahyun.dev
2022/01/17 12:12:15
delegateejahyun.dev
delegatorsteem
vesting shares8981.661066 VESTS
Transaction InfoBlock #60810904/Trx b93a7363f529c9333f180fc3a5cc4ff852d79a03
View Raw JSON Data
{
  "block": 60810904,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "jahyun.dev",
      "delegator": "steem",
      "vesting_shares": "8981.661066 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-01-17T12:12:15",
  "trx_id": "b93a7363f529c9333f180fc3a5cc4ff852d79a03",
  "trx_in_block": 14,
  "virtual_op": 0
}
steemdelegated 5.639 SP to @jahyun.dev
2021/06/14 02:04:03
delegateejahyun.dev
delegatorsteem
vesting shares9165.429724 VESTS
Transaction InfoBlock #54609217/Trx 0b20f11300963ee638c92c5fa86f8374804cd03a
View Raw JSON Data
{
  "block": 54609217,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "jahyun.dev",
      "delegator": "steem",
      "vesting_shares": "9165.429724 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2021-06-14T02:04:03",
  "trx_id": "0b20f11300963ee638c92c5fa86f8374804cd03a",
  "trx_in_block": 1,
  "virtual_op": 0
}
steemdelegated 5.755 SP to @jahyun.dev
2020/12/11 12:21:03
delegateejahyun.dev
delegatorsteem
vesting shares9352.851698 VESTS
Transaction InfoBlock #49356623/Trx 4614e9279dcc8757fac332d4e790b792febe8d0a
View Raw JSON Data
{
  "block": 49356623,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "jahyun.dev",
      "delegator": "steem",
      "vesting_shares": "9352.851698 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-12-11T12:21:03",
  "trx_id": "4614e9279dcc8757fac332d4e790b792febe8d0a",
  "trx_in_block": 4,
  "virtual_op": 0
}
steemdelegated 1.177 SP to @jahyun.dev
2020/12/06 05:57:57
delegateejahyun.dev
delegatorsteem
vesting shares1912.543513 VESTS
Transaction InfoBlock #49208181/Trx b29003a8811d83cb85d1115b13e66a22d2f6f40c
View Raw JSON Data
{
  "block": 49208181,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "jahyun.dev",
      "delegator": "steem",
      "vesting_shares": "1912.543513 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-12-06T05:57:57",
  "trx_id": "b29003a8811d83cb85d1115b13e66a22d2f6f40c",
  "trx_in_block": 9,
  "virtual_op": 0
}
steemdelegated 5.759 SP to @jahyun.dev
2020/12/05 15:58:57
delegateejahyun.dev
delegatorsteem
vesting shares9359.059552 VESTS
Transaction InfoBlock #49191717/Trx a48e06f8cac2e7763dafee2f29a3d3f930d05b3c
View Raw JSON Data
{
  "block": 49191717,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "jahyun.dev",
      "delegator": "steem",
      "vesting_shares": "9359.059552 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-12-05T15:58:57",
  "trx_id": "a48e06f8cac2e7763dafee2f29a3d3f930d05b3c",
  "trx_in_block": 1,
  "virtual_op": 0
}
steemdelegated 1.181 SP to @jahyun.dev
2020/11/02 18:11:03
delegateejahyun.dev
delegatorsteem
vesting shares1920.017158 VESTS
Transaction InfoBlock #48260800/Trx f2362da0878c80623bad68834e24c8d120b4f148
View Raw JSON Data
{
  "block": 48260800,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "jahyun.dev",
      "delegator": "steem",
      "vesting_shares": "1920.017158 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-11-02T18:11:03",
  "trx_id": "f2362da0878c80623bad68834e24c8d120b4f148",
  "trx_in_block": 3,
  "virtual_op": 0
}
steemdelegated 5.883 SP to @jahyun.dev
2020/05/09 06:56:33
delegateejahyun.dev
delegatorsteem
vesting shares9561.864911 VESTS
Transaction InfoBlock #43218446/Trx 171852f81806e6d793842e199c151bfcefab02b6
View Raw JSON Data
{
  "block": 43218446,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "jahyun.dev",
      "delegator": "steem",
      "vesting_shares": "9561.864911 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-05-09T06:56:33",
  "trx_id": "171852f81806e6d793842e199c151bfcefab02b6",
  "trx_in_block": 6,
  "virtual_op": 0
}
steemdelegated 1.202 SP to @jahyun.dev
2020/05/08 10:43:39
delegateejahyun.dev
delegatorsteem
vesting shares1953.311140 VESTS
Transaction InfoBlock #43194755/Trx 24da17bc999c326646ad455a55abcb122ec0b091
View Raw JSON Data
{
  "block": 43194755,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "jahyun.dev",
      "delegator": "steem",
      "vesting_shares": "1953.311140 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-05-08T10:43:39",
  "trx_id": "24da17bc999c326646ad455a55abcb122ec0b091",
  "trx_in_block": 14,
  "virtual_op": 0
}
2020/03/12 10:17:03
authorsteemitboard
bodyCongratulations @jahyun.dev! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@jahyun.dev/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/@jahyun.dev) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=jahyun.dev)_</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 authorjahyun.dev
parent permlink1
permlinksteemitboard-notify-jahyundev-20200312t101703000z
title
Transaction InfoBlock #41584282/Trx 920d0eeff21fcfd0d2c6356a3e93427db9c66635
View Raw JSON Data
{
  "block": 41584282,
  "op": [
    "comment",
    {
      "author": "steemitboard",
      "body": "Congratulations @jahyun.dev! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@jahyun.dev/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/@jahyun.dev) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=jahyun.dev)_</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": "jahyun.dev",
      "parent_permlink": "1",
      "permlink": "steemitboard-notify-jahyundev-20200312t101703000z",
      "title": ""
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-03-12T10:17:03",
  "trx_id": "920d0eeff21fcfd0d2c6356a3e93427db9c66635",
  "trx_in_block": 6,
  "virtual_op": 0
}
steemdelegated 6.003 SP to @jahyun.dev
2019/06/06 02:58:03
delegateejahyun.dev
delegatorsteem
vesting shares9756.185794 VESTS
Transaction InfoBlock #33550579/Trx 2bd2e3c876aae01669511e978a4a09dca96fc09e
View Raw JSON Data
{
  "block": 33550579,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "jahyun.dev",
      "delegator": "steem",
      "vesting_shares": "9756.185794 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2019-06-06T02:58:03",
  "trx_id": "2bd2e3c876aae01669511e978a4a09dca96fc09e",
  "trx_in_block": 4,
  "virtual_op": 0
}
2019/03/12 10:38:09
authorsteemitboard
bodyCongratulations @jahyun.dev! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@jahyun.dev/birthday1.png</td><td>Happy Birthday! - You are on the Steem blockchain for 1 year!</td></tr></table> <sub>_[Click here to view your Board](https://steemitboard.com/@jahyun.dev)_</sub> ###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) and get one more award and increased upvotes!
json metadata{"image":["https://steemitboard.com/img/notify.png"]}
parent authorjahyun.dev
parent permlink1
permlinksteemitboard-notify-jahyundev-20190312t103808000z
title
Transaction InfoBlock #31086204/Trx 79de0a84caca2d235a816fca61fa09440d25cd7e
View Raw JSON Data
{
  "block": 31086204,
  "op": [
    "comment",
    {
      "author": "steemitboard",
      "body": "Congratulations @jahyun.dev! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@jahyun.dev/birthday1.png</td><td>Happy Birthday! - You are on the Steem blockchain for 1 year!</td></tr></table>\n\n<sub>_[Click here to view your Board](https://steemitboard.com/@jahyun.dev)_</sub>\n\n\n###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) and get one more award and increased upvotes!",
      "json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}",
      "parent_author": "jahyun.dev",
      "parent_permlink": "1",
      "permlink": "steemitboard-notify-jahyundev-20190312t103808000z",
      "title": ""
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2019-03-12T10:38:09",
  "trx_id": "79de0a84caca2d235a816fca61fa09440d25cd7e",
  "trx_in_block": 10,
  "virtual_op": 0
}
steemdelegated 6.126 SP to @jahyun.dev
2018/06/13 07:34:24
delegateejahyun.dev
delegatorsteem
vesting shares9955.446865 VESTS
Transaction InfoBlock #23279863/Trx bf879b7ae223797695d8fe3c0ea5967e50810e7a
View Raw JSON Data
{
  "block": 23279863,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "jahyun.dev",
      "delegator": "steem",
      "vesting_shares": "9955.446865 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-06-13T07:34:24",
  "trx_id": "bf879b7ae223797695d8fe3c0ea5967e50810e7a",
  "trx_in_block": 11,
  "virtual_op": 0
}
jahyun.devreceived 0.229 SP author reward for @jahyun.dev / 1
2018/03/19 10:18:45
authorjahyun.dev
permlink1
sbd payout0.000 SBD
steem payout0.000 STEEM
vesting payout371.474963 VESTS
Transaction InfoBlock #20809261/Virtual Operation #13
View Raw JSON Data
{
  "block": 20809261,
  "op": [
    "author_reward",
    {
      "author": "jahyun.dev",
      "permlink": "1",
      "sbd_payout": "0.000 SBD",
      "steem_payout": "0.000 STEEM",
      "vesting_payout": "371.474963 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-19T10:18:45",
  "trx_id": "0000000000000000000000000000000000000000",
  "trx_in_block": 4294967295,
  "virtual_op": 13
}
jahyun.devreceived 0.004 SP curation reward for @jahyun.dev / 1
2018/03/19 10:18:45
comment authorjahyun.dev
comment permlink1
curatorjahyun.dev
reward6.123213 VESTS
Transaction InfoBlock #20809261/Virtual Operation #10
View Raw JSON Data
{
  "block": 20809261,
  "op": [
    "curation_reward",
    {
      "comment_author": "jahyun.dev",
      "comment_permlink": "1",
      "curator": "jahyun.dev",
      "reward": "6.123213 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-19T10:18:45",
  "trx_id": "0000000000000000000000000000000000000000",
  "trx_in_block": 4294967295,
  "virtual_op": 10
}
2018/03/18 09:17:03
authorjahyun.dev
permlinkre-gazuah-re-jahyundev-1-20180314t060528371z
voterjjholdings
weight10000 (100.00%)
Transaction InfoBlock #20779231/Trx ba39e57af6a19d7dd93ae26a31f74eee790f9de6
View Raw JSON Data
{
  "block": 20779231,
  "op": [
    "vote",
    {
      "author": "jahyun.dev",
      "permlink": "re-gazuah-re-jahyundev-1-20180314t060528371z",
      "voter": "jjholdings",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-18T09:17:03",
  "trx_id": "ba39e57af6a19d7dd93ae26a31f74eee790f9de6",
  "trx_in_block": 11,
  "virtual_op": 0
}
2018/03/18 09:16:48
authorjjholdings
body감사합니다 꾸준히 올려주세요~
json metadata{"tags":["cryptocurrency"],"app":"steemit/0.1"}
parent authorjahyun.dev
parent permlink1
permlinkre-jahyundev-1-20180318t091648751z
title
Transaction InfoBlock #20779226/Trx 143b2e821bb651b2a745e3663e783645f6d47ca6
View Raw JSON Data
{
  "block": 20779226,
  "op": [
    "comment",
    {
      "author": "jjholdings",
      "body": "감사합니다 꾸준히 올려주세요~",
      "json_metadata": "{\"tags\":[\"cryptocurrency\"],\"app\":\"steemit/0.1\"}",
      "parent_author": "jahyun.dev",
      "parent_permlink": "1",
      "permlink": "re-jahyundev-1-20180318t091648751z",
      "title": ""
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-18T09:16:48",
  "trx_id": "143b2e821bb651b2a745e3663e783645f6d47ca6",
  "trx_in_block": 44,
  "virtual_op": 0
}
2018/03/18 09:16:27
authorjjholdings
body감사합니다 자주 올려주세요~
json metadata{"tags":["cryptocurrency"],"app":"steemit/0.1"}
parent authorjahyun.dev
parent permlink1
permlinkre-jahyundev-1-20180318t091628244z
title
Transaction InfoBlock #20779219/Trx 4e360d502957a202a8b26693e45956fa697a3f86
View Raw JSON Data
{
  "block": 20779219,
  "op": [
    "comment",
    {
      "author": "jjholdings",
      "body": "감사합니다 자주 올려주세요~",
      "json_metadata": "{\"tags\":[\"cryptocurrency\"],\"app\":\"steemit/0.1\"}",
      "parent_author": "jahyun.dev",
      "parent_permlink": "1",
      "permlink": "re-jahyundev-1-20180318t091628244z",
      "title": ""
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-18T09:16:27",
  "trx_id": "4e360d502957a202a8b26693e45956fa697a3f86",
  "trx_in_block": 63,
  "virtual_op": 0
}
jjholdingsupvoted (100.00%) @jahyun.dev / 1
2018/03/18 09:16:06
authorjahyun.dev
permlink1
voterjjholdings
weight10000 (100.00%)
Transaction InfoBlock #20779212/Trx c9d974f1058b08dfba48f94930bce594e6b1d042
View Raw JSON Data
{
  "block": 20779212,
  "op": [
    "vote",
    {
      "author": "jahyun.dev",
      "permlink": "1",
      "voter": "jjholdings",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-18T09:16:06",
  "trx_id": "c9d974f1058b08dfba48f94930bce594e6b1d042",
  "trx_in_block": 25,
  "virtual_op": 0
}
2018/03/14 06:06:39
authorjahyun.dev
body읽어주셔서 감사합니다 :)
json metadata{"tags":["cryptocurrency"],"app":"steemit/0.1"}
parent authoredeny
parent permlinkre-jahyundev-1-20180314t044747324z
permlinkre-edeny-re-jahyundev-1-20180314t060639271z
title
Transaction InfoBlock #20660350/Trx 01a30e38c97b53bb1585ff3b5fec917fe3dc12ef
View Raw JSON Data
{
  "block": 20660350,
  "op": [
    "comment",
    {
      "author": "jahyun.dev",
      "body": "읽어주셔서 감사합니다 :)",
      "json_metadata": "{\"tags\":[\"cryptocurrency\"],\"app\":\"steemit/0.1\"}",
      "parent_author": "edeny",
      "parent_permlink": "re-jahyundev-1-20180314t044747324z",
      "permlink": "re-edeny-re-jahyundev-1-20180314t060639271z",
      "title": ""
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-14T06:06:39",
  "trx_id": "01a30e38c97b53bb1585ff3b5fec917fe3dc12ef",
  "trx_in_block": 31,
  "virtual_op": 0
}
2018/03/14 06:05:27
authorjahyun.dev
body감사합니다 ^^ 올리고 나니 부족한 부분이 많이 보이네요. 다음엔 더 잘 정리해서 올리겠습니다 ^^
json metadata{"tags":["cryptocurrency"],"app":"steemit/0.1"}
parent authorgazuah
parent permlinkre-jahyundev-1-20180313t085348183z
permlinkre-gazuah-re-jahyundev-1-20180314t060528371z
title
Transaction InfoBlock #20660326/Trx f7cba7729bda5fa2c5dada461faf64c5e3eb5de6
View Raw JSON Data
{
  "block": 20660326,
  "op": [
    "comment",
    {
      "author": "jahyun.dev",
      "body": "감사합니다 ^^\n\n올리고 나니 부족한 부분이 많이 보이네요. 다음엔 더 잘 정리해서 올리겠습니다 ^^",
      "json_metadata": "{\"tags\":[\"cryptocurrency\"],\"app\":\"steemit/0.1\"}",
      "parent_author": "gazuah",
      "parent_permlink": "re-jahyundev-1-20180313t085348183z",
      "permlink": "re-gazuah-re-jahyundev-1-20180314t060528371z",
      "title": ""
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-14T06:05:27",
  "trx_id": "f7cba7729bda5fa2c5dada461faf64c5e3eb5de6",
  "trx_in_block": 49,
  "virtual_op": 0
}
2018/03/14 06:04:51
authoredeny
permlinkre-jahyundev-1-20180314t044747324z
voterjahyun.dev
weight10000 (100.00%)
Transaction InfoBlock #20660314/Trx e677f06cdfbedd6df9ec67f7fb2966f512ef52e7
View Raw JSON Data
{
  "block": 20660314,
  "op": [
    "vote",
    {
      "author": "edeny",
      "permlink": "re-jahyundev-1-20180314t044747324z",
      "voter": "jahyun.dev",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-14T06:04:51",
  "trx_id": "e677f06cdfbedd6df9ec67f7fb2966f512ef52e7",
  "trx_in_block": 59,
  "virtual_op": 0
}
2018/03/14 06:04:48
authorgazuah
permlinkre-jahyundev-1-20180313t085348183z
voterjahyun.dev
weight10000 (100.00%)
Transaction InfoBlock #20660313/Trx 6b0ed04efb781618f8b9c50c8abc32df6f7767f7
View Raw JSON Data
{
  "block": 20660313,
  "op": [
    "vote",
    {
      "author": "gazuah",
      "permlink": "re-jahyundev-1-20180313t085348183z",
      "voter": "jahyun.dev",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-14T06:04:48",
  "trx_id": "6b0ed04efb781618f8b9c50c8abc32df6f7767f7",
  "trx_in_block": 25,
  "virtual_op": 0
}
2018/03/14 04:47:48
authoredeny
body감사합니다^^ 팔로우 할게요~
json metadata{"tags":["cryptocurrency"],"app":"steemit/0.1"}
parent authorjahyun.dev
parent permlink1
permlinkre-jahyundev-1-20180314t044747324z
title
Transaction InfoBlock #20658774/Trx 35cb88db5cb49123d16a013a7827f9473c78ed95
View Raw JSON Data
{
  "block": 20658774,
  "op": [
    "comment",
    {
      "author": "edeny",
      "body": "감사합니다^^ 팔로우 할게요~",
      "json_metadata": "{\"tags\":[\"cryptocurrency\"],\"app\":\"steemit/0.1\"}",
      "parent_author": "jahyun.dev",
      "parent_permlink": "1",
      "permlink": "re-jahyundev-1-20180314t044747324z",
      "title": ""
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-14T04:47:48",
  "trx_id": "35cb88db5cb49123d16a013a7827f9473c78ed95",
  "trx_in_block": 32,
  "virtual_op": 0
}
edenyupvoted (100.00%) @jahyun.dev / 1
2018/03/14 04:47:12
authorjahyun.dev
permlink1
voteredeny
weight10000 (100.00%)
Transaction InfoBlock #20658762/Trx 9034b9659a7f8bf389da0f03c068f96f3f555799
View Raw JSON Data
{
  "block": 20658762,
  "op": [
    "vote",
    {
      "author": "jahyun.dev",
      "permlink": "1",
      "voter": "edeny",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-14T04:47:12",
  "trx_id": "9034b9659a7f8bf389da0f03c068f96f3f555799",
  "trx_in_block": 59,
  "virtual_op": 0
}
leejimanupvoted (100.00%) @jahyun.dev / 1
2018/03/13 14:34:18
authorjahyun.dev
permlink1
voterleejiman
weight10000 (100.00%)
Transaction InfoBlock #20641710/Trx 885eed94143afd31f30df51c6e61e3f8f7715a5b
View Raw JSON Data
{
  "block": 20641710,
  "op": [
    "vote",
    {
      "author": "jahyun.dev",
      "permlink": "1",
      "voter": "leejiman",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-13T14:34:18",
  "trx_id": "885eed94143afd31f30df51c6e61e3f8f7715a5b",
  "trx_in_block": 22,
  "virtual_op": 0
}
zero2oneupvoted (100.00%) @jahyun.dev / 1
2018/03/13 12:28:36
authorjahyun.dev
permlink1
voterzero2one
weight10000 (100.00%)
Transaction InfoBlock #20639199/Trx 59e7e5473fc29bf502fa8cc55eb086a8288f2527
View Raw JSON Data
{
  "block": 20639199,
  "op": [
    "vote",
    {
      "author": "jahyun.dev",
      "permlink": "1",
      "voter": "zero2one",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-13T12:28:36",
  "trx_id": "59e7e5473fc29bf502fa8cc55eb086a8288f2527",
  "trx_in_block": 28,
  "virtual_op": 0
}
2018/03/13 08:53:48
authorgazuah
body상세한 설명 감사합니다:)
json metadata{"tags":["cryptocurrency"],"app":"steemit/0.1"}
parent authorjahyun.dev
parent permlink1
permlinkre-jahyundev-1-20180313t085348183z
title
Transaction InfoBlock #20634906/Trx ad0eff3558b7cbd6b124939a65e6c7e4dac85443
View Raw JSON Data
{
  "block": 20634906,
  "op": [
    "comment",
    {
      "author": "gazuah",
      "body": "상세한 설명 감사합니다:)",
      "json_metadata": "{\"tags\":[\"cryptocurrency\"],\"app\":\"steemit/0.1\"}",
      "parent_author": "jahyun.dev",
      "parent_permlink": "1",
      "permlink": "re-jahyundev-1-20180313t085348183z",
      "title": ""
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-13T08:53:48",
  "trx_id": "ad0eff3558b7cbd6b124939a65e6c7e4dac85443",
  "trx_in_block": 41,
  "virtual_op": 0
}
gazuahupvoted (100.00%) @jahyun.dev / 1
2018/03/13 08:53:12
authorjahyun.dev
permlink1
votergazuah
weight10000 (100.00%)
Transaction InfoBlock #20634894/Trx 627e52ecb436ad62ee6cef0ba97993a9a6254c92
View Raw JSON Data
{
  "block": 20634894,
  "op": [
    "vote",
    {
      "author": "jahyun.dev",
      "permlink": "1",
      "voter": "gazuah",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-13T08:53:12",
  "trx_id": "627e52ecb436ad62ee6cef0ba97993a9a6254c92",
  "trx_in_block": 26,
  "virtual_op": 0
}
nullzupvoted (100.00%) @jahyun.dev / 1
2018/03/13 07:13:00
authorjahyun.dev
permlink1
voternullz
weight10000 (100.00%)
Transaction InfoBlock #20632892/Trx eb2db77caf8367278d38e1112fa9cc16007ee280
View Raw JSON Data
{
  "block": 20632892,
  "op": [
    "vote",
    {
      "author": "jahyun.dev",
      "permlink": "1",
      "voter": "nullz",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-13T07:13:00",
  "trx_id": "eb2db77caf8367278d38e1112fa9cc16007ee280",
  "trx_in_block": 10,
  "virtual_op": 0
}
2018/03/13 06:58:54
idfollow
json["follow",{"follower":"jahyun.dev","following":"vanat","what":["blog"]}]
required auths[]
required posting auths["jahyun.dev"]
Transaction InfoBlock #20632610/Trx 88cc930c67d76445463cbbb8d573b9c0f7cdf707
View Raw JSON Data
{
  "block": 20632610,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"jahyun.dev\",\"following\":\"vanat\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "jahyun.dev"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-13T06:58:54",
  "trx_id": "88cc930c67d76445463cbbb8d573b9c0f7cdf707",
  "trx_in_block": 1,
  "virtual_op": 0
}
vanatupvoted (100.00%) @jahyun.dev / 1
2018/03/13 06:43:24
authorjahyun.dev
permlink1
votervanat
weight10000 (100.00%)
Transaction InfoBlock #20632300/Trx daa592e7b6d9f94e773b627f69925c59415fd099
View Raw JSON Data
{
  "block": 20632300,
  "op": [
    "vote",
    {
      "author": "jahyun.dev",
      "permlink": "1",
      "voter": "vanat",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-13T06:43:24",
  "trx_id": "daa592e7b6d9f94e773b627f69925c59415fd099",
  "trx_in_block": 25,
  "virtual_op": 0
}
2018/03/13 06:18:12
idfollow
json["follow",{"follower":"jahyun.dev","following":"moonddo","what":["blog"]}]
required auths[]
required posting auths["jahyun.dev"]
Transaction InfoBlock #20631797/Trx a090e3dea8e5bcddbb2e3ec85430e09031608dae
View Raw JSON Data
{
  "block": 20631797,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"jahyun.dev\",\"following\":\"moonddo\",\"what\":[\"blog\"]}]",
      "required_auths": [],
      "required_posting_auths": [
        "jahyun.dev"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-13T06:18:12",
  "trx_id": "a090e3dea8e5bcddbb2e3ec85430e09031608dae",
  "trx_in_block": 42,
  "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
}
steemdelegated 18.719 SP to @jahyun.dev
2018/03/12 11:33:42
delegateejahyun.dev
delegatorsteem
vesting shares30422.959285 VESTS
Transaction InfoBlock #20609319/Trx 845ddc7ddb047b1bf6ae08c10c0acda7b830fbe7
View Raw JSON Data
{
  "block": 20609319,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "jahyun.dev",
      "delegator": "steem",
      "vesting_shares": "30422.959285 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T11:33:42",
  "trx_id": "845ddc7ddb047b1bf6ae08c10c0acda7b830fbe7",
  "trx_in_block": 8,
  "virtual_op": 0
}
sensationupvoted (100.00%) @jahyun.dev / 1
2018/03/12 10:53:54
authorjahyun.dev
permlink1
votersensation
weight10000 (100.00%)
Transaction InfoBlock #20608523/Trx 335b7269a2823db809208360256bfe1b4208da47
View Raw JSON Data
{
  "block": 20608523,
  "op": [
    "vote",
    {
      "author": "jahyun.dev",
      "permlink": "1",
      "voter": "sensation",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T10:53:54",
  "trx_id": "335b7269a2823db809208360256bfe1b4208da47",
  "trx_in_block": 79,
  "virtual_op": 0
}
hr1upvoted (0.02%) @jahyun.dev / 1
2018/03/12 10:48:57
authorjahyun.dev
permlink1
voterhr1
weight2 (0.02%)
Transaction InfoBlock #20608424/Trx 8a264bd5cb774f596771edadbfdadda546878907
View Raw JSON Data
{
  "block": 20608424,
  "op": [
    "vote",
    {
      "author": "jahyun.dev",
      "permlink": "1",
      "voter": "hr1",
      "weight": 2
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T10:48:57",
  "trx_id": "8a264bd5cb774f596771edadbfdadda546878907",
  "trx_in_block": 62,
  "virtual_op": 0
}
thedelegatorupvoted (1.00%) @jahyun.dev / 1
2018/03/12 10:48:54
authorjahyun.dev
permlink1
voterthedelegator
weight100 (1.00%)
Transaction InfoBlock #20608423/Trx 0e6d9f5a30372d52de78618c06b8b855f6c37ac7
View Raw JSON Data
{
  "block": 20608423,
  "op": [
    "vote",
    {
      "author": "jahyun.dev",
      "permlink": "1",
      "voter": "thedelegator",
      "weight": 100
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T10:48:54",
  "trx_id": "0e6d9f5a30372d52de78618c06b8b855f6c37ac7",
  "trx_in_block": 44,
  "virtual_op": 0
}
steemservicesupvoted (1.00%) @jahyun.dev / 1
2018/03/12 10:48:54
authorjahyun.dev
permlink1
votersteemservices
weight100 (1.00%)
Transaction InfoBlock #20608423/Trx 0e6d9f5a30372d52de78618c06b8b855f6c37ac7
View Raw JSON Data
{
  "block": 20608423,
  "op": [
    "vote",
    {
      "author": "jahyun.dev",
      "permlink": "1",
      "voter": "steemservices",
      "weight": 100
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T10:48:54",
  "trx_id": "0e6d9f5a30372d52de78618c06b8b855f6c37ac7",
  "trx_in_block": 44,
  "virtual_op": 0
}
yougotflaggedupvoted (1.00%) @jahyun.dev / 1
2018/03/12 10:48:54
authorjahyun.dev
permlink1
voteryougotflagged
weight100 (1.00%)
Transaction InfoBlock #20608423/Trx 0e6d9f5a30372d52de78618c06b8b855f6c37ac7
View Raw JSON Data
{
  "block": 20608423,
  "op": [
    "vote",
    {
      "author": "jahyun.dev",
      "permlink": "1",
      "voter": "yougotflagged",
      "weight": 100
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T10:48:54",
  "trx_id": "0e6d9f5a30372d52de78618c06b8b855f6c37ac7",
  "trx_in_block": 44,
  "virtual_op": 0
}
thebotkillerupvoted (1.00%) @jahyun.dev / 1
2018/03/12 10:48:54
authorjahyun.dev
permlink1
voterthebotkiller
weight100 (1.00%)
Transaction InfoBlock #20608423/Trx 0e6d9f5a30372d52de78618c06b8b855f6c37ac7
View Raw JSON Data
{
  "block": 20608423,
  "op": [
    "vote",
    {
      "author": "jahyun.dev",
      "permlink": "1",
      "voter": "thebotkiller",
      "weight": 100
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T10:48:54",
  "trx_id": "0e6d9f5a30372d52de78618c06b8b855f6c37ac7",
  "trx_in_block": 44,
  "virtual_op": 0
}
theyetiupvoted (1.00%) @jahyun.dev / 1
2018/03/12 10:48:54
authorjahyun.dev
permlink1
votertheyeti
weight100 (1.00%)
Transaction InfoBlock #20608423/Trx 0e6d9f5a30372d52de78618c06b8b855f6c37ac7
View Raw JSON Data
{
  "block": 20608423,
  "op": [
    "vote",
    {
      "author": "jahyun.dev",
      "permlink": "1",
      "voter": "theyeti",
      "weight": 100
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T10:48:54",
  "trx_id": "0e6d9f5a30372d52de78618c06b8b855f6c37ac7",
  "trx_in_block": 44,
  "virtual_op": 0
}
thecyclistupvoted (1.00%) @jahyun.dev / 1
2018/03/12 10:48:54
authorjahyun.dev
permlink1
voterthecyclist
weight100 (1.00%)
Transaction InfoBlock #20608423/Trx 0e6d9f5a30372d52de78618c06b8b855f6c37ac7
View Raw JSON Data
{
  "block": 20608423,
  "op": [
    "vote",
    {
      "author": "jahyun.dev",
      "permlink": "1",
      "voter": "thecyclist",
      "weight": 100
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T10:48:54",
  "trx_id": "0e6d9f5a30372d52de78618c06b8b855f6c37ac7",
  "trx_in_block": 44,
  "virtual_op": 0
}
ngcupvoted (1.00%) @jahyun.dev / 1
2018/03/12 10:48:54
authorjahyun.dev
permlink1
voterngc
weight100 (1.00%)
Transaction InfoBlock #20608423/Trx 0e6d9f5a30372d52de78618c06b8b855f6c37ac7
View Raw JSON Data
{
  "block": 20608423,
  "op": [
    "vote",
    {
      "author": "jahyun.dev",
      "permlink": "1",
      "voter": "ngc",
      "weight": 100
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T10:48:54",
  "trx_id": "0e6d9f5a30372d52de78618c06b8b855f6c37ac7",
  "trx_in_block": 44,
  "virtual_op": 0
}
danknugsupvoted (1.00%) @jahyun.dev / 1
2018/03/12 10:48:54
authorjahyun.dev
permlink1
voterdanknugs
weight100 (1.00%)
Transaction InfoBlock #20608423/Trx 0e6d9f5a30372d52de78618c06b8b855f6c37ac7
View Raw JSON Data
{
  "block": 20608423,
  "op": [
    "vote",
    {
      "author": "jahyun.dev",
      "permlink": "1",
      "voter": "danknugs",
      "weight": 100
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T10:48:54",
  "trx_id": "0e6d9f5a30372d52de78618c06b8b855f6c37ac7",
  "trx_in_block": 44,
  "virtual_op": 0
}
2018/03/12 10:48:51
authorberniesanders
bodyWelcome to Steemit, I'm here to give you a vote on your very first post!
json metadata
parent authorjahyun.dev
parent permlink1
permlinkberniesanders-re-jahyun-dev1
title
Transaction InfoBlock #20608422/Trx 825a7a7f81f7511fed780516bd75f4a97270f909
View Raw JSON Data
{
  "block": 20608422,
  "op": [
    "comment",
    {
      "author": "berniesanders",
      "body": "Welcome to Steemit, I'm here to give you a vote on your very first post!",
      "json_metadata": "",
      "parent_author": "jahyun.dev",
      "parent_permlink": "1",
      "permlink": "berniesanders-re-jahyun-dev1",
      "title": ""
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T10:48:51",
  "trx_id": "825a7a7f81f7511fed780516bd75f4a97270f909",
  "trx_in_block": 28,
  "virtual_op": 0
}
berniesandersupvoted (1.00%) @jahyun.dev / 1
2018/03/12 10:48:48
authorjahyun.dev
permlink1
voterberniesanders
weight100 (1.00%)
Transaction InfoBlock #20608421/Trx 566a7e2f30d91714c1ecbf53a13cea171db5a0ac
View Raw JSON Data
{
  "block": 20608421,
  "op": [
    "vote",
    {
      "author": "jahyun.dev",
      "permlink": "1",
      "voter": "berniesanders",
      "weight": 100
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T10:48:48",
  "trx_id": "566a7e2f30d91714c1ecbf53a13cea171db5a0ac",
  "trx_in_block": 56,
  "virtual_op": 0
}
jahyun.devupvoted (100.00%) @jahyun.dev / 1
2018/03/12 10:44:57
authorjahyun.dev
permlink1
voterjahyun.dev
weight10000 (100.00%)
Transaction InfoBlock #20608345/Trx be23d4ed22c4c465bf04addcf9422eccf9a04765
View Raw JSON Data
{
  "block": 20608345,
  "op": [
    "vote",
    {
      "author": "jahyun.dev",
      "permlink": "1",
      "voter": "jahyun.dev",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T10:44:57",
  "trx_id": "be23d4ed22c4c465bf04addcf9422eccf9a04765",
  "trx_in_block": 45,
  "virtual_op": 0
}
jahyun.devcustom json: follow
2018/03/12 10:22:15
idfollow
json["reblog",{"account":"jahyun.dev","author":"brandonscalera","permlink":"the-easiest-way-to-get-paid-consistently-on-steemit"}]
required auths[]
required posting auths["jahyun.dev"]
Transaction InfoBlock #20607891/Trx 65fde05cd41d0192274ffebc46fb14424356083f
View Raw JSON Data
{
  "block": 20607891,
  "op": [
    "custom_json",
    {
      "id": "follow",
      "json": "[\"reblog\",{\"account\":\"jahyun.dev\",\"author\":\"brandonscalera\",\"permlink\":\"the-easiest-way-to-get-paid-consistently-on-steemit\"}]",
      "required_auths": [],
      "required_posting_auths": [
        "jahyun.dev"
      ]
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T10:22:15",
  "trx_id": "65fde05cd41d0192274ffebc46fb14424356083f",
  "trx_in_block": 45,
  "virtual_op": 0
}
2018/03/12 10:19:24
authoripostbtcprice
bodyFor future viewers: price of bitcoin at the moment of posting is 9887.70USD
json metadata
parent authorjahyun.dev
parent permlink1
permlinkre-1-20180312t101912
title
Transaction InfoBlock #20607834/Trx d5ac49272b4f4546338a3ed6a801b93523281cd4
View Raw JSON Data
{
  "block": 20607834,
  "op": [
    "comment",
    {
      "author": "ipostbtcprice",
      "body": "For future viewers: price of bitcoin at the moment of posting is 9887.70USD",
      "json_metadata": "",
      "parent_author": "jahyun.dev",
      "parent_permlink": "1",
      "permlink": "re-1-20180312t101912",
      "title": ""
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T10:19:24",
  "trx_id": "d5ac49272b4f4546338a3ed6a801b93523281cd4",
  "trx_in_block": 15,
  "virtual_op": 0
}
jahyun.devupdated options for 1
2018/03/12 10:18:45
allow curation rewardstrue
allow votestrue
authorjahyun.dev
extensions[]
max accepted payout1000000.000 SBD
percent steem dollars0
permlink1
Transaction InfoBlock #20607821/Trx c07462108119bce3fe29e69890a818a6ce249332
View Raw JSON Data
{
  "block": 20607821,
  "op": [
    "comment_options",
    {
      "allow_curation_rewards": true,
      "allow_votes": true,
      "author": "jahyun.dev",
      "extensions": [],
      "max_accepted_payout": "1000000.000 SBD",
      "percent_steem_dollars": 0,
      "permlink": "1"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T10:18:45",
  "trx_id": "c07462108119bce3fe29e69890a818a6ce249332",
  "trx_in_block": 44,
  "virtual_op": 0
}
jahyun.devpublished a new post: 1
2018/03/12 10:18:45
authorjahyun.dev
bodyCoursera에 올라온 [Bitcoin and Cryptocurrency Technologies](https://www.coursera.org/learn/cryptocurrency/home/welcome) 강의를 들으며 정리한 내용입니다. 첫 번째 글의 주제는 해시 함수입니다. 암호화폐에서 해시 함수는 매우 중요한 역할을 합니다. 인증부터 마이닝까지 암호화폐의 바탕을 이루는 기술들엔 모두 해시 함수가 적용되어 있습니다. 따라서 암호 화폐 이해를 위해선 해시 함수에 대해 꼭 이해하고 넘어가야 합니다. 그럼 해시 함수에 대해 간략히 소개한 후 해시 함수가 갖는 세 가지 장점인 `Collision-free`, `Hiding`, `Puzzle-friendly`가 암호 화폐에서 어떤 역할을 하는지 알아보겠습니다. ## Hash Function [해시 함수](https://ko.wikipedia.org/wiki/%ED%95%B4%EC%8B%9C_%ED%95%A8%EC%88%98)는 임의의 길이를 갖는 데이터를 고정된 길이의 데이터로 사상하는 함수입니다. ![hashfunction-explained.png](https://steemitimages.com/DQmab35ELxd4gbeW9WNKthujCxq4QJ93VM9pzpdhMFfeZZ7/hashfunction-explained.png) 위의 그림은 `A`, `B`, `C`, `D`라는 네 가지 입력값에 대해 해시 함수 H를 적용한 모습입니다. 해시 함수 H는 2bit의 고정된 길이를 가지는 함수입니다. 1bit는 0과 1을 가질 수 있습니다. 따라서 2bit 길이의 해시값은 `2^2 = 4`가지 경우의 수를 가집니다. `A`의 해시값은 `00`, `B`의 해시값은 `00`, `C`의 해시값은 `01`, `D`의 해시값은 `10`입니다. `A`와 `B`의 경우 `00`이라는 같은 해시값을 가집니다. 앞서 해시 함수가 `임의의 길이를 갖는 데이터`를 입력으로 받는다고 했는데요. 입력의 경우의 수가 무한하다는 말입니다. 반면 해시값은 고정된 길이로 유한한 값을 가집니다. 따라서 `A`, `B`와 같이 다른 입력이 같은 해시값을 가지는 경우는 반드시 나옵니다. 이를 [해시 충돌](https://ko.wikipedia.org/wiki/%ED%95%B4%EC%8B%9C_%EC%B6%A9%EB%8F%8C)이라고 합니다. 해시 충돌에 대해선 아래에서 다시 한번 설명하겠습니다. 해시 함수는 암호학과 컴퓨터 공학 등 매우 많은 분야에서 사용되며 그 종류 또한 다양합니다. 크게 [암호학적 해시 함수](https://ko.wikipedia.org/wiki/%EC%95%94%ED%98%B8%ED%99%94_%ED%95%B4%EC%8B%9C_%ED%95%A8%EC%88%98)와 비암호학적 해시 함수로 구분합니다. 해시값으로부터 입력값의 관계를 찾기 어려운 성질을 가지는 경우 암호학적 해시 함수라고 부릅니다. 앞서 암호 화폐에서 해시 함수가 많이 쓰이고 있다고 말했습니다. 암호 화폐는 암호학적 해시 함수를 사용합니다.그중 암호화폐의 대장 격인 비트코인에서 쓰이는 해시 함수가 바로 [SHA256](https://ko.wikipedia.org/wiki/SHA) 함수입니다. SHA256은 미국 국가안보국(NSA)에서 설계하고 미국 표준으로 지정된 해시 함수입니다. 그만큼 안전하게 오랜 기간 검증된 함수입니다. 아직 공격 성공 사례 또한 발견되지 않았습니다. 여기서 공격 성공 사례라는 말이 아리송한 분이 있을겁니다. 해시 함수는 수학 공식일뿐인데 공격이라는건 무슨 말일까요? 앞서 암호학적 해시 함수가 해시값으로부터 입력값의 관계를 찾기 어려운 성질을 만족하는 경우라 말했습니다. 따라서 해시 함수에 대한 공격이란 해시값과 입력값의 관계를 파악하는 것을 말합니다. 예를 들어 해시 충돌 사례가 발견되었다면 그 함수는 안전하지 않은 함수라고 말할 수 있습니다. SHA256 함수는 아직까지 충돌 사례를 단 한 번도 발견하지 못했습니다. 해시값의 길이는 유한하기 때문에 충돌은 무조건 발생할 수밖에 없다고 했습니다. 그런데 충돌 사례를 발견하지 못했다니, 이해가 안갈 수 있습니다. 그건 sha256 함수의 해시값 경우의 수가 매우 크기 때문입니다. 이건 아래에서 실습을 해보며 직접 체험해보겠습니다. 아래 사이트에서 해시 함수를 실험해 볼 수 있습니다. http://www.md5calc.com/sha256 저는 `암호화폐 어려워`라는 데이터에 해시 함수를 적용했습니다. 그럼 해시값은, `04f2d79320c92311ba910d66b589ab88efe30204c9914c9b1cb5554e21958b18` 이 나옵니다. 같은 문자를 적용해보시면 같은 해시값이 나오는 걸 보실 수 있습니다. 위 문자를 다시 한번 보시죠. 길이를 세어보면 총 64자입니다. 정확하겐 0~9와 a~f의 한 자리당 16개의 수가 나올 수 있는 16진수입니다. 16진수 64자리. 256bit입니다. 256bit의 해시값의 경우의 수는 `2^256` 개입니다. 얼마나 큰 수 일까요? 얼핏 보면 그리 크지 않아 보이기도 하고, 감이 잘 오지 않습니다. 그럼 이를 10진수로 표현하면, `115792089237316195423570985008687907853269984665640564039457584007913129639936` 자릿수는 78자리입니다. 현실 세계 사례와 비교하면 조금 더 감이 옵니다. 사실 이 정도 수는 비교할만한 대상을 찾기도 어려운 매우 큰 수입니다. 이와 비슷한 수를 찾자면 (현재 알려진) 우주의 원자 개수가 있습니다. 대략 `10^80`개입니다. 수가 큰 게 무슨 의미인가 싶겠지만, 이는 해시 함수의 안정성이 높음을 뜻합니다. 앞서 해시 충돌 사례가 발견되면 안전하지 않은 함수라고 말했습니다. 그럼 해시 충돌을 발견하려면 어떻게 해야 할까요? 해시값이 입력값에 대해 고르게 분포한다면 방법은 한 가지밖에 없습니다. 최대한 많은 경우의 수를 테스트해보는 겁니다. 이를 [무차별 대입 공격(Brute-Force Attack)](https://ko.wikipedia.org/wiki/%EB%AC%B4%EC%B0%A8%EB%B3%84_%EB%8C%80%EC%9E%85_%EA%B3%B5%EA%B2%A9)이라고 합니다. 될 때까지 무식하게 해보는 것이죠. 256bit 해시 함수의 경우 대략 `2^130`개 정도의 입력을 테스트하면 충돌 사례를 발견할 확률이 대략 99.8%라고 합니다. 현재 비트코인의 초당 해시 함수 계산량(hash rate)은 2018년 3월 8일 기준으로 `26499460 TH/s` 입니다. 1 TH는 초당 `1,000,000,000,000` 의 해시를 계산함을 말합니다. 그럼 `2^130`개의 해시값을 계산하려면? `5.136 * 10^19`초이며, `1.628 * 10^12`년이 걸립니다. 이는 우주 나이의 120배이고, 태양 나이의 360배입니다. 해시 충돌 사례를 찾으려면 비트 코인 채굴에 참여하는 모든 컴퓨터를 동원해도 이만큼 오랜 시간이 걸립니다. 그만큼 해시 충돌 사례를 찾는 건 어렵습니다. 물론 한 가지 가정이 필요합니다. 앞서 언급한 입력값에 대해 고르게 분포해야 한다는 것입니다. 예를 들어 특정 데이터를 조금 바꾼 해시값을 계산하니 해시값 차이가 크게 안난다면? 값을 조금씩 바꿔보면 해시 충돌 찾는 게 쉬워지겠죠. 따라서 데이터가 조금이라도 달라진다면 해시값이 크게 달라져야 합니다. 이를 [쇄도 효과](https://ko.wikipedia.org/wiki/%EC%87%84%EB%8F%84_%ED%9A%A8%EA%B3%BC)라고도 합니다. SHA256 함수는 현재까지 이 조건을 잘 만족하는 것으로 보입니다. 따라서 안전한 해시 함수로 여겨지죠. 나카모토 사토시가 비트코인에 SHA256 함수를 채택한 이유입니다. 하지만 (SHA256 해시 충돌 가능성에 대한) 예외가 하나 있습니다. 바로 양자 컴퓨팅입니다. (이론적으로) 양자 컴퓨팅을 사용하면 계산 성능을 획기적으로 늘리는 게 가능합니다. [양자 컴퓨터가 본격적으로 사용된다면 SHA256 해시 함수를 쓰는 비트코인이 위협을 받을거란 의견](https://bitcointalk.org/index.php?topic=133425.0)도 있습니다. 물론 답변에서 보듯이 양자 컴퓨팅이 정말 한순간에 보편화하지 않는 이상 그럴 가능성은 적으니 걱정하지 않아도 됩니다. 지금까지 알아본 해시 함수에 대해 정리하면, - 해시 함수는 특정 입력을 고정 길이를 가진 임의의 해시값으로 바꿔주는 함수입니다. - 무한한 입력 대비 고정된 출력을 합니다. 따라서 해시 충돌이 발생 가능성이 항상 존재합니다. - 비트코인은 SHA256 해시 함수를 사용합니다. - SHA256 함수의 해시값은 256bit 길이를 가지므로 해시 충돌 가능성이 매우 낮습니다. 이러한 안정성 때문에 비트코인은 SHA256 함수를 사용합니다. 이러한 해시 함수는 기밀 유지, 데이터의 무결성 보증, 인증, 부인 방지 등 암호학의 여러 분야에서 사용되고 있습니다. 암호 화폐에서도 이러한 기술을 모두 쓰고 있죠. 그럼 지금부터 해시 함수의 성질을 활용해 어떤 일을 할 수 있는지, 그리고 그 성질을 암호화폐에서 어떻게 사용하고 있는지 알아보겠습니다. 아직 어리둥절하신 분이 많겠지만 아래 설명을 본다면 해시 함수가 암호 화페에서 어떻게 사용되는지 조금은 감을 잡으실 수 있을 겁니다. 암호화폐는 비트코인을 기준으로 설명하겠습니다. # Hash Function Properties SHA256 함수와 같은 암호학적 해시 함수는 아래 세 가지 유용한 성질을 가집니다. - collision-free : 해시 함수를 적용한 임의의 두 결과값이 같은 해시값을 같을 확률이 무시할 정도로 낮다. - hiding : 해시 함수의 결과값에서 입력값을 추정하기 어렵다. - puzzle-friendly : 해시값이 고정된 길이를 갖고 랜덤하게 해시값이 분포되는 점을 활용해 손쉽게 계산 문제를 만들 수 있다. 위 세 성질과 암호화폐에서의 쓰임새에 대해 알아보겠습니다. #### Collision-free 첫 번째 성질은 `Collision-free` 입니다. 이는 [해시 충돌](https://ko.wikipedia.org/wiki/%ED%95%B4%EC%8B%9C_%EC%B6%A9%EB%8F%8C)이 발생할 확률이 무시 가능할 정도로 낮다는 것을 말합니다. 먼저 해시 함수 개념에 관해 설명할 때 SHA256 함수의 해시 충돌 가능성 얘기가 기억나실 겁니다. 충돌 가능성이 적다면, A라는 임의의 데이터가 유일한 해시값을 가진다고 가정할 수 있습니다. 사람의 지문을 생각하면 됩니다. 신분증 만들 때 지문 등록하시는 것 기억하시나요? 어떤 사람인지 알아보기 위해 모든 데이터가 필요하지 않습니다. 지문이 같은 확률이 매우 적다는 가정하에 지문만 저장해서 사람을 인식하는데 사용할 수 있습니다. 해시 함수도 마찬가지입니다. 데이터가 어떤 데이터인지 알기 위해 모든 데이터를 활용하지 않고 해시 함수를 통해 나온 해시값으로 판단할 수 있습니다. 데이터 지문이라고 보시면 됩니다. 이미 일상생활의 많은 곳에서 이 성질을 활용하고 있습니다. 지문 사례와 같이 데이터가 전과 같은 데이터인지 확인하기 위해 전과 같은 정보를 그대로 저장하는 대신 256bit의 짧은 데이터만 사용해 저장하고 같은지 확인하는 것이죠. 또한, 데이터가 조금이라도 달라져도 해시 함수값도 달라지기 때문에 데이터 전송 도중 도중 손실이나 악의적인 변조가 있었는지 확인하기 위해서도 사용할 수 있습니다. 그럼 암호화폐에서 사용 사례는 어떨까요? 관심 있으신 분이라면 암호화폐에 한 번 기록된 정보는 조작할 수 없다는 얘기를 들어보셨을 겁니다. 데이터에 불과한 거래 장부를 어떻게 조작하지 못하게 막을 수 있을까요? 여기서 해시 함수가 사용됩니다. 비트코인의 블록을 한 번 봅시다. 비트코인은 블록은 10분에 한 번씩 생성됩니다. 한 블록엔 여러 가지 거래 기록(Transactions)이 담겨져 있죠. 비트코인은 이러한 블록을 연결한 겁니다. 그래서 말 그대로 블록체인이라고 불리는 겁니다. 블록체인을 그림으로 간단하게 그려보면 아래와 같습니다. ![bitcoin-blocks.png](https://steemitimages.com/DQmXorPv1SXzshtyZcuvtwB5gwP3hqynYtqFcdFLvRs15Co/bitcoin-blocks.png) N 번째 블록을 봅시다. 4개의 거래 기록(TX0, TX1, TX2, TX3)이 담긴 블록입니다. 각각의 거래 데이터는 해시값으로 변경되어 모든 거래가 합쳐진 하나의 해시값인 루트 해시값이 됩니다. 그리고 블록 헤더는 이전 블록의 해시, 루트 해시, Nonce(마이닝에서 사용되는 값입니다)로 구성됩니다. 이 세 값이 합쳐져 다시 해시값을 계산하고 이게 블록의 해시값이 됩니다. 그럼 만약 A라는 공격자가 블록 트랜잭션 중 하나를 악의적으로 변경하려고 한다면 어떻게 될까요? 예를 들어 100 BTC를 자신의 지갑으로 보내도록 트랜잭션 정보를 조작하는 겁니다. TX0 거래 기록에 조작을 시도합니다. 그럼 TX0의 해시값인 `HASH 0`의 값이 완전히 변경됩니다. `Collision-free` 특성에 따라 임의의 데이터의 해시값은 유일하다고 가정할 수 있기 때문이죠. 연쇄적으로 HASH 0 값을 포함한 해시값들인 `HASH 0|1`, `Root Hash`, `Block Hash`까지 모두 변경이 됩니다. 그럼 A 공격자가 조작한 정보를 받아들여달라고 비트코인 피어(참여자들)에게 전달합니다. 정보를 받은 피어들은 장부가 조작되지 않았는지 확인합니다. 어떻게 확인할까요? 자신들의 노드에 기록된 거래정보에 따라 해시값을 계산해보고 A가 제안한 블록과 해시값을 비교하는 겁니다. 해시값이 다르다면 어딘가 데이터가 1이라도 조작된 것이 분명합니다. 따라서 피어들은 이 블록을 기각하고 유효하지 않다고 생각합니다. 해당 블록에 더 체인을 쌓지 않게 됩니다. 아무도 인정하지 않는 블록이 되는 것이죠. 따라서 공격은 실패하게 됩니다. 블록의 해시값을 계산할 때 이전 해시값을 쓰기 때문에 과거 장부를 조작하는 것도 불가능합니다. 예전 블록의 데이터를 조금이라도 조작하면 해시값이 크게 달라지기 때문입니다. #### Hiding `Hiding`은 `high-min entropy` 분포를 가지는 임의의 값 `r`과 데이터 `x`, 이 둘을 더해 해시 함수를 적용한 `H(r|x) = y`의 값이 있을 때 해시값(`y`)로 `x` 값을 알아내는 것이 매우 어려움을 말합니다. `x`라는 데이터를 임의의 값 `r`과 결합해 숨긴채로 상대방에게 전달하는 겁니다. 어떻게 이용되는지 쉽게 이해가 가는 개념은 아닙니다. 조금 더 자세히 살펴보도록 합시다. 해시 함수 개념에 관해 얘기할 때 충돌을 발견하려면 무작위 공격밖에 방법이 없다는 것과 같은 논리입니다. 어떤 값을 넣어야 `H(x)`가 나오는지는 여러 값을 해시 함수에 넣어보는 수밖에 없습니다. 물론 모든 사례에 적용되는 건 아닙니다. 입력의 경우의 수가 많지 않고 공격자가 이를 알 수 있다면 쉽게 추론할 수 있죠. 동전 던지기를 생각해봅시다. Alice와 Bob이 동전 던지기 게임을 합니다. Alice가 동전을 던지고 그 결과를 Bob에게 전송하고, Bob은 Alice가 어떤 동전을 던졌는지 맞추는 게임입니다. Bob이 결과를 맞추면 Bob이 이깁니다. 문제는 Alice는 한국에, Bob은 미국에 있다는 겁니다. 게임을 시작합니다. Alice가 Bob에게 '앞'이라고 말합니다. Bob은 동전 던지기를 합니다. '앞'이 나오지만 게임에서 이기기 위해 Alice에게 '뒤'가 나왔다고 합니다. 이런 상황에선 서로를 믿을 수 없어 게임 진행이 되지 않습니다. Alice는 데이터를 숨기기 위해 앞/뒤 값을 해싱해서 보냅니다. Bob은 해시 된 값만 보기 때문에 처음 몇 번은 어느 쪽인지 알지 못합니다. 하지만 결과를 보고 나서 해당 값이 동전의 앞 뒤 중 어디를 뜻하는지 알게 됩니다. `x`는 동전을 던졌을 때 나올 수 있는 경우의 수라면, `x = {앞, 뒤}`가 가능합니다. 해시값은 `H('head')`와 `H('tail')` 이 됩니다. 이 해시값의 입력 x는 찾기 쉽습니다. `앞`과 `뒤`의 해시값을 계산하고 값을 비교하면 됩니다. 따라서 해시값을 쓰는 것도 통하지 않습니다. 그럼 어떻게 해야 할까요? 문제는 x의 입력으로 오직 두 가지 경우의 수가 있다는 것입니다. 이를 피하고자 임의의 값 `r`을 하나 뽑아 x값과 결합해 이 값을 해시 함수(`H(r|x)`)로 적용해봅시다. 그럼 `r` 값에 따라서 해시값이 매우 달라집니다. 주의할 점은 임의값 `r`의 분포는 `high min-entorpy`를 가져야 한다는 겁니다. `high min-entropy` 는 값이 일정하게 분포되어 있음을 말합니다. 데이터의 분포가 특정 패턴을 따른다면 탐색 공간이 더 좁아지기 때문에 해시 함수의 패턴을 파악하기가 쉬워집니다. 따라서 최대한 `high min-entorpy` 분포에 가까운 키 값을 선택해야 합니다. 다시 정리하면, `Hiding`이란 `high min-entropy`를 가지는 분포에서 임의의 수 `r`을 뽑아 `H(r|x)`를 `x`의 해시 함수로 쓴다면 그 해시값으로부터 x의 값을 추정하기 매우 어렵다는 말입니다. 데이터를 숨겨서 보낼 수 있죠. 물론 해시값의 입력을 추정하고자 하는 상대가 `r`의 값을 몰라야 합니다. 그럼 `Hiding`을 이해한 Alice가 새로운 게임 방식을 제안합니다. 동전의 앞/뒤 예측값 x와 임의의 비밀키 r을 조합한 해시값을 bob에게 보냅니다. bob은 해시값으로부터 동전의 앞/뒤를 알 수가 없습니다. bob이 동전을 던져 나온 결과를 Alice에게 보냅니다. 그럼 Alice는 비밀키 r과 예측값 x를 보냅니다. Bob은 이 두 값을 조합해 해시 함수를 적용한 후 여기서 나온 해시값이 Alice가 처음에 보낸 해시값과 맞는지 확인합니다. 이 방식이라면 아무리 멀리 떨어져 있어도 조작할 수 없습니다. Alice가 비밀키를 보내주기 전에는 Bob이 해시값에서 동전 앞/뒤를 알 수가 없기 때문이죠. 마찬가지로 Alice도 게임 결과에 영향을 미치지 못합니다. 자신이 x라는 값을 골라 보냈다는 걸 숨길 수 없기 때문입니다. 게임을 다시 할 때는 Alice가 새로운 비밀키를 선정해 게임을 하면 됩니다. 서로 믿고 게임을 진행할 수 있습니다. 이처럼 메시지를 숨긴 채 상대방에게 보내고 후에 메시지를 열어볼 수 있는 키를 보내 확인하는 방식을 [Commitment scheme](https://en.wikipedia.org/wiki/Commitment_scheme)이라고 합니다. 매우 단순화한 프로토콜이지만 이러한 방식을 응용해서 신원확인이나 부인방지, 인증 등에 사용하고 있습니다. 당연히 암호화폐에서 쓰이고 있습니다. 물론 위에 단순화한 사례보다는 훨씬 복잡한 방식이긴 하지만 원리 자체는 같다고 보시면 됩니다. 비트코인 지갑의 개인키/공개키부터 누군가에게 비트코인을 전송할 때 서명을 하는 것까지 매우 다양한 영역에서 사용되고 있습니다. #### Puzzle-Friendly 어떤 해시 함수 H와 `high min-entorpy` 분포를 가지는 임의의 값 k와 데이터 x, 이 둘을 결합한 해시값 z(`H(k|x)`)가 있습니다. 이 때 k와 z가 주어진 경우 x 값을 찾기가 매우 어렵다는 걸 `Puzzle-Friendly`하다고 합니다. 위의 `Hiding` 과 유사해보입니다. k 값을 주느냐 아니냐 차이가 있죠. 정의만 보면 이해하기 쉽지 않습니다. 아래 예시를 보면 이 성질의 유용함을 알 수 있습니다. 여러분이 어떤 퍼즐 문제를 하나 내려고 합니다. `Puzzle-Friendly` 정의와 같이 k와 해시값인 y가 주어졌을 때 x를 찾는 문제입니다. - k는 퍼즐 id로 입니다. `high-min entropy`를 가지는 분포에서 뽑힌 임의의 값입니다. - 8bit 의 해시값을 가지는 해시 함수 H를 사용합니다. 나올 수 있는 경우의 수는 2^8 = 256입니다. 0~255 사이의 값을 가집니다. 그럼 이렇게 계산 문제를 낼 수 있습니다. ``` 해시값 H(k|x)가 y값보다 작은 x값을 찾아라. ``` `y = 2^6`이라고 합시다. 해시 함수 H는 0 ~ 255 사이의 값을 가질 수 있다고 했습니다. 그럼 임의의 값 x가 위 조건을 만족할 확률은 `2^6 / 2^8 = 1 / 2^2 = 1 / 4 = 0.25`, `25%`가 됩니다. 첫 번째 문제를 진행한 뒤에 같은 문제를 내려면 퍼즐 id인 k 값만 바꿔서 진행하면 됩니다. 해시 함수는 쇄도 효과에 의해 일부분만 바뀌어도 해시값 자체가 크게 달라지니 이전 문제의 결과에서 다음 문제 패턴을 알 수 없습니다. 완전 새로운 문제가 되는 것이죠. 근데 문제가 너무 쉽습니다. 그럼 y 값을 바꾸면 됩니다. y를 `2^6`이 아니라 `2^4`로 조정해봅시다. 그럼 확률은 `2^4 / 2^8 = 0.0625`, `6.25%`가 됩니다. 위와 같은 방식으로 임의의 계산 문제를 무한히 만들어 낼 수 있습니다. 암호화폐에서도 `Puzzle-Friendly` 성질을 활용한 계산 문제를 사용하고 있습니다. 암호화폐의 채굴에 대해 들어보신 분이라면 채굴이 문제를 풀고 그걸 가장 빨리 푼 사람에게 보상을 주는 것이라는 말을 들어보셨을 겁니다. 여기서 나오는 문제가 위의 해시값을 찾는 계산 문제입니다. 비트코인 블락을 다시 한 번 봅시다. ![bitcoin-blocks.png](https://steemitimages.com/DQmXorPv1SXzshtyZcuvtwB5gwP3hqynYtqFcdFLvRs15Co/bitcoin-blocks.png) 비트코인은 계산 문제를 푸는 사람이 트랜잭션이 담긴 블록을 블록 체인 위에 추가하게 됩니다. 계산 문제는, ``` 해시값 H(k|x)이 y값보다 작은 x값을 찾아라. ``` 라고 했는데요. 여기서 k는 이전 블록의 해시값과 루트 해시값이 됩니다. 그리고 x는 Nonce가 됩니다. y를 target이라고 합니다. target 값이 문제의 난이도를 조절하는 제약조건이 됩니다. target은 비트코인 마이닝에 참여하는 모든 노드가 공유합니다. Nonce 값을 증가시키면서 target 값보다 작은 값을 찾는 겁니다. target이 작을수록 난이도는 더 올라갑니다. 이러한 방식으로 비트코인 마이닝이 이루어집니다. 참여하는 사람들이 많아져 계산량이 늘어난다면 인플레이션이 발생하니 Target 값을 줄여가며 난이도를 조정합니다. 마이닝이 완료되어 블록을 전파하면 사람들은 해당 마이닝이 올바르게 이루어졌는지 Nonce 값(x)과 해시값(k)을 해싱해서 Target 보다 작은지 확인합니다. 데이터를 통해서 해시값을 만드는 것은 금방 할 수 있기 때문에 해답을 검증하는 것은 쉽고 빠르게 할 수 있습니다. 검증이 완료되면 올바른 블록이라 판단하고 체인 위에 블록을 올립니다. 이러한 과정을 작업 증명(PoW)라고도 합니다. 2018년 3월 11일에 마이닝 된 [513022번 블록](https://blockchain.info/ko/block-height/513022)을 봅시다. ![bitcoin-block-513022.png](https://steemitimages.com/DQmVqrCUFNie8onzNBm2gaLSHTxsm5XFnPse6zZkpwRzqSn/bitcoin-block-513022.png) 해시값이 0으로 시작하는 걸 볼 수 있습니다. 이 0이 많을수록 난이도가 높아집니다. Target 수보다 적어야 하니 앞자리는 0이 올 수밖에 없죠. 해시 난수(Nonce)가 x값이 됩니다. 해당 Nonce 값과 트랜잭션의 해시값들, 이전 해시값을 조합해 현재 블록의 해시값(Target보다 작은)이 만들어집니다. 마이닝의 난이도는 2주에 한 번씩 조정됩니다. 즉 Target이 2주에 한 번씩 바뀌는 겁니다. 난이도는 10분에 한 블록을 마이닝 할 수 있을 정도, 즉 10분에 한 문제를 풀 수 있는 수준으로 조정됩니다. 현재 비트코인 마이닝에 참여하는 사람들이 늘고 있으니 인플레이션을 막기 위해 난이도는 점점 더 높아집니다. ![bitcoin-mining-difficulty.png](https://steemitimages.com/DQmVAjdJ124MrBaxgRxmcL3g8DE5q4pNNTxKCYiAqR4nawd/bitcoin-mining-difficulty.png) 위 [차트](https://bitcoinwisdom.com/bitcoin/difficulty)를 통해 2주에 한 번씩 마이닝 난이도가 높아지는 모습을 확인할 수 있습니다. ## 마치며 해시 함수는 임의의 데이터를 고정 길이의 데이터로 변환하는 함수로, 해시값에서 입력값을 추론하기 어려운 성질을 갖고 있습니다. 본 글에서는 해시 함수의 개념과 `Collision-free`, `Hiding`, `Puzzle-Friendly` 성질과 암호화폐에서의 쓰임세에 대해 간략히 알아보았습니다. 다음 글에서는 이중 지불 문제와 블록 체인의 개념, 그리고 지금까지 배운 내용을 통해 간단한 암호화폐를 만드는 방법에 대해 설명하겠습니다. ## 참고자료 - [Coursera - Bitcoin and Cryptocurrency Technologies](https://www.coursera.org/learn/cryptocurrency/home/welcome) - [Bitcoin Mining Explained Like You’re Five](https://chrispacia.wordpress.com/2013/09/02/bitcoin-mining-explained-like-youre-five-part-1-incentives/)
json metadata{"tags":["cryptocurrency","bitcoin","development","ethereum","blockchain"],"image":["https://steemitimages.com/DQmab35ELxd4gbeW9WNKthujCxq4QJ93VM9pzpdhMFfeZZ7/hashfunction-explained.png","https://steemitimages.com/DQmXorPv1SXzshtyZcuvtwB5gwP3hqynYtqFcdFLvRs15Co/bitcoin-blocks.png","https://steemitimages.com/DQmVqrCUFNie8onzNBm2gaLSHTxsm5XFnPse6zZkpwRzqSn/bitcoin-block-513022.png","https://steemitimages.com/DQmVAjdJ124MrBaxgRxmcL3g8DE5q4pNNTxKCYiAqR4nawd/bitcoin-mining-difficulty.png"],"links":["https://www.coursera.org/learn/cryptocurrency/home/welcome","https://ko.wikipedia.org/wiki/%ED%95%B4%EC%8B%9C_%ED%95%A8%EC%88%98","https://ko.wikipedia.org/wiki/%ED%95%B4%EC%8B%9C_%EC%B6%A9%EB%8F%8C","https://ko.wikipedia.org/wiki/%EC%95%94%ED%98%B8%ED%99%94_%ED%95%B4%EC%8B%9C_%ED%95%A8%EC%88%98","https://ko.wikipedia.org/wiki/SHA","http://www.md5calc.com/sha256","https://ko.wikipedia.org/wiki/%EB%AC%B4%EC%B0%A8%EB%B3%84_%EB%8C%80%EC%9E%85_%EA%B3%B5%EA%B2%A9","https://ko.wikipedia.org/wiki/%EC%87%84%EB%8F%84_%ED%9A%A8%EA%B3%BC","https://bitcointalk.org/index.php?topic=133425.0","https://en.wikipedia.org/wiki/Commitment_scheme","https://blockchain.info/ko/block-height/513022","https://bitcoinwisdom.com/bitcoin/difficulty","https://chrispacia.wordpress.com/2013/09/02/bitcoin-mining-explained-like-youre-five-part-1-incentives/"],"app":"steemit/0.1","format":"markdown"}
parent author
parent permlinkcryptocurrency
permlink1
title암호화폐 스터디 1
Transaction InfoBlock #20607821/Trx c07462108119bce3fe29e69890a818a6ce249332
View Raw JSON Data
{
  "block": 20607821,
  "op": [
    "comment",
    {
      "author": "jahyun.dev",
      "body": "Coursera에 올라온 [Bitcoin and Cryptocurrency Technologies](https://www.coursera.org/learn/cryptocurrency/home/welcome) 강의를 들으며 정리한 내용입니다. \n\n첫 번째 글의 주제는 해시 함수입니다. 암호화폐에서 해시 함수는 매우 중요한 역할을 합니다. 인증부터 마이닝까지 암호화폐의 바탕을 이루는 기술들엔 모두 해시 함수가 적용되어 있습니다. 따라서 암호 화폐 이해를 위해선 해시 함수에 대해 꼭 이해하고 넘어가야 합니다.\n\n그럼 해시 함수에 대해 간략히 소개한 후 해시 함수가 갖는 세 가지 장점인 `Collision-free`, `Hiding`, `Puzzle-friendly`가 암호 화폐에서 어떤 역할을 하는지 알아보겠습니다.\n\n## Hash Function\n\n[해시 함수](https://ko.wikipedia.org/wiki/%ED%95%B4%EC%8B%9C_%ED%95%A8%EC%88%98)는 임의의 길이를 갖는 데이터를 고정된 길이의 데이터로 사상하는 함수입니다.\n\n![hashfunction-explained.png](https://steemitimages.com/DQmab35ELxd4gbeW9WNKthujCxq4QJ93VM9pzpdhMFfeZZ7/hashfunction-explained.png)\n\n위의 그림은 `A`, `B`, `C`, `D`라는 네 가지 입력값에 대해 해시 함수 H를 적용한 모습입니다. \n\n해시 함수 H는 2bit의 고정된 길이를 가지는 함수입니다. 1bit는 0과 1을 가질 수 있습니다. 따라서 2bit 길이의 해시값은 `2^2 = 4`가지 경우의 수를 가집니다.\n\n`A`의 해시값은 `00`, `B`의 해시값은 `00`, `C`의 해시값은 `01`, `D`의 해시값은 `10`입니다. \n\n`A`와 `B`의 경우 `00`이라는 같은 해시값을 가집니다. 앞서 해시 함수가 `임의의 길이를 갖는 데이터`를 입력으로 받는다고 했는데요. 입력의 경우의 수가 무한하다는 말입니다. 반면 해시값은 고정된 길이로 유한한 값을 가집니다. 따라서 `A`, `B`와 같이 다른 입력이 같은 해시값을 가지는 경우는 반드시 나옵니다. 이를 [해시 충돌](https://ko.wikipedia.org/wiki/%ED%95%B4%EC%8B%9C_%EC%B6%A9%EB%8F%8C)이라고 합니다. 해시 충돌에 대해선 아래에서 다시 한번 설명하겠습니다.\n\n해시 함수는 암호학과 컴퓨터 공학 등 매우 많은 분야에서 사용되며 그 종류 또한 다양합니다. 크게 [암호학적 해시 함수](https://ko.wikipedia.org/wiki/%EC%95%94%ED%98%B8%ED%99%94_%ED%95%B4%EC%8B%9C_%ED%95%A8%EC%88%98)와 비암호학적 해시 함수로 구분합니다. 해시값으로부터 입력값의 관계를 찾기 어려운 성질을 가지는 경우 암호학적 해시 함수라고 부릅니다.\n\n앞서 암호 화폐에서 해시 함수가 많이 쓰이고 있다고 말했습니다. 암호 화폐는 암호학적 해시 함수를 사용합니다.그중 암호화폐의 대장 격인 비트코인에서 쓰이는 해시 함수가 바로 [SHA256](https://ko.wikipedia.org/wiki/SHA) 함수입니다.\n\nSHA256은 미국 국가안보국(NSA)에서 설계하고 미국 표준으로 지정된 해시 함수입니다. 그만큼 안전하게 오랜 기간 검증된 함수입니다. 아직 공격 성공 사례 또한 발견되지 않았습니다.\n\n여기서 공격 성공 사례라는 말이 아리송한 분이 있을겁니다. 해시 함수는 수학 공식일뿐인데 공격이라는건 무슨 말일까요?\n\n앞서 암호학적 해시 함수가 해시값으로부터 입력값의 관계를 찾기 어려운 성질을 만족하는 경우라 말했습니다. 따라서 해시 함수에 대한 공격이란 해시값과 입력값의 관계를 파악하는 것을 말합니다. 예를 들어 해시 충돌 사례가 발견되었다면 그 함수는 안전하지 않은 함수라고 말할 수 있습니다.\n\nSHA256 함수는 아직까지 충돌 사례를 단 한 번도 발견하지 못했습니다.\n\n해시값의 길이는 유한하기 때문에 충돌은 무조건 발생할 수밖에 없다고 했습니다. 그런데 충돌 사례를 발견하지 못했다니, 이해가 안갈 수 있습니다. 그건 sha256 함수의 해시값 경우의 수가 매우 크기 때문입니다. 이건 아래에서 실습을 해보며 직접 체험해보겠습니다.\n\n아래 사이트에서 해시 함수를 실험해 볼 수 있습니다.\n\nhttp://www.md5calc.com/sha256\n\n저는 `암호화폐 어려워`라는 데이터에 해시 함수를 적용했습니다. 그럼 해시값은,\n\n`04f2d79320c92311ba910d66b589ab88efe30204c9914c9b1cb5554e21958b18`\n\n이 나옵니다. 같은 문자를 적용해보시면 같은 해시값이 나오는 걸 보실 수 있습니다.\n\n위 문자를 다시 한번 보시죠. 길이를 세어보면 총 64자입니다. 정확하겐 0~9와 a~f의 한 자리당 16개의 수가 나올 수 있는 16진수입니다. 16진수 64자리. 256bit입니다. 256bit의 해시값의 경우의 수는 `2^256` 개입니다. 얼마나 큰 수 일까요? 얼핏 보면 그리 크지 않아 보이기도 하고, 감이 잘 오지 않습니다.\n\n그럼 이를 10진수로 표현하면,\n\n`115792089237316195423570985008687907853269984665640564039457584007913129639936`\n\n자릿수는 78자리입니다. \n\n현실 세계 사례와 비교하면 조금 더 감이 옵니다. 사실 이 정도 수는 비교할만한 대상을 찾기도 어려운 매우 큰 수입니다. 이와 비슷한 수를 찾자면 (현재 알려진) 우주의 원자 개수가 있습니다. 대략 `10^80`개입니다.\n\n수가 큰 게 무슨 의미인가 싶겠지만, 이는 해시 함수의 안정성이 높음을 뜻합니다. \n\n앞서 해시 충돌 사례가 발견되면 안전하지 않은 함수라고 말했습니다. 그럼 해시 충돌을 발견하려면 어떻게 해야 할까요? 해시값이 입력값에 대해 고르게 분포한다면 방법은 한 가지밖에 없습니다. 최대한 많은 경우의 수를 테스트해보는 겁니다.\n\n이를 [무차별 대입 공격(Brute-Force Attack)](https://ko.wikipedia.org/wiki/%EB%AC%B4%EC%B0%A8%EB%B3%84_%EB%8C%80%EC%9E%85_%EA%B3%B5%EA%B2%A9)이라고 합니다. 될 때까지 무식하게 해보는 것이죠.\n\n256bit 해시 함수의 경우 대략 `2^130`개 정도의 입력을 테스트하면 충돌 사례를 발견할 확률이 대략 99.8%라고 합니다.\n\n현재 비트코인의 초당 해시 함수 계산량(hash rate)은 2018년 3월 8일 기준으로 `26499460 TH/s` 입니다. 1 TH는 초당 `1,000,000,000,000` 의 해시를 계산함을 말합니다. \n\n그럼 `2^130`개의 해시값을 계산하려면?\n\n`5.136 * 10^19`초이며, `1.628 * 10^12`년이 걸립니다. 이는 우주 나이의 120배이고, 태양 나이의 360배입니다.\n\n해시 충돌 사례를 찾으려면 비트 코인 채굴에 참여하는 모든 컴퓨터를 동원해도 이만큼 오랜 시간이 걸립니다. 그만큼 해시 충돌 사례를 찾는 건 어렵습니다.\n\n물론 한 가지 가정이 필요합니다. 앞서 언급한 입력값에 대해 고르게 분포해야 한다는 것입니다. 예를 들어 특정 데이터를 조금 바꾼 해시값을 계산하니 해시값 차이가 크게 안난다면? 값을 조금씩 바꿔보면 해시 충돌 찾는 게 쉬워지겠죠. 따라서 데이터가 조금이라도 달라진다면 해시값이 크게 달라져야 합니다. 이를 [쇄도 효과](https://ko.wikipedia.org/wiki/%EC%87%84%EB%8F%84_%ED%9A%A8%EA%B3%BC)라고도 합니다.\n\nSHA256 함수는 현재까지 이 조건을 잘 만족하는 것으로 보입니다. 따라서 안전한 해시 함수로 여겨지죠. 나카모토 사토시가 비트코인에 SHA256 함수를 채택한 이유입니다.\n\n하지만 (SHA256 해시 충돌 가능성에 대한) 예외가 하나 있습니다. 바로 양자 컴퓨팅입니다. (이론적으로) 양자 컴퓨팅을 사용하면 계산 성능을 획기적으로 늘리는 게 가능합니다. \n\n[양자 컴퓨터가 본격적으로 사용된다면 SHA256 해시 함수를 쓰는 비트코인이 위협을 받을거란 의견](https://bitcointalk.org/index.php?topic=133425.0)도 있습니다. 물론 답변에서 보듯이 양자 컴퓨팅이 정말 한순간에 보편화하지 않는 이상 그럴 가능성은 적으니 걱정하지 않아도 됩니다.\n\n지금까지 알아본 해시 함수에 대해 정리하면,\n\n- 해시 함수는 특정 입력을 고정 길이를 가진 임의의 해시값으로 바꿔주는 함수입니다.\n- 무한한 입력 대비 고정된 출력을 합니다. 따라서 해시 충돌이 발생 가능성이 항상 존재합니다.\n- 비트코인은 SHA256 해시 함수를 사용합니다.\n- SHA256 함수의 해시값은 256bit 길이를 가지므로 해시 충돌 가능성이 매우 낮습니다. 이러한 안정성 때문에 비트코인은 SHA256 함수를 사용합니다.\n\n이러한 해시 함수는 기밀 유지, 데이터의 무결성 보증, 인증, 부인 방지 등 암호학의 여러 분야에서 사용되고 있습니다. 암호 화폐에서도 이러한 기술을 모두 쓰고 있죠.\n\n그럼 지금부터 해시 함수의 성질을 활용해 어떤 일을 할 수 있는지, 그리고 그 성질을 암호화폐에서 어떻게 사용하고 있는지 알아보겠습니다. 아직 어리둥절하신 분이 많겠지만 아래 설명을 본다면 해시 함수가 암호 화페에서 어떻게 사용되는지 조금은 감을 잡으실 수 있을 겁니다. 암호화폐는 비트코인을 기준으로 설명하겠습니다.\n\n# Hash Function Properties\n\nSHA256 함수와 같은 암호학적 해시 함수는 아래 세 가지 유용한 성질을 가집니다.\n\n- collision-free : 해시 함수를 적용한 임의의 두 결과값이 같은 해시값을 같을 확률이 무시할 정도로 낮다.\n- hiding : 해시 함수의 결과값에서 입력값을 추정하기 어렵다.\n- puzzle-friendly : 해시값이 고정된 길이를 갖고 랜덤하게 해시값이 분포되는 점을 활용해 손쉽게 계산 문제를 만들 수 있다.\n\n위 세 성질과 암호화폐에서의 쓰임새에 대해 알아보겠습니다.\n\n#### Collision-free\n\n첫 번째 성질은 `Collision-free` 입니다.  이는 [해시 충돌](https://ko.wikipedia.org/wiki/%ED%95%B4%EC%8B%9C_%EC%B6%A9%EB%8F%8C)이 발생할 확률이 무시 가능할 정도로 낮다는 것을 말합니다. 먼저 해시 함수 개념에 관해 설명할 때 SHA256 함수의 해시 충돌 가능성 얘기가 기억나실 겁니다.\n\n충돌 가능성이 적다면, A라는 임의의 데이터가 유일한 해시값을 가진다고 가정할 수 있습니다.\n\n사람의 지문을 생각하면 됩니다. 신분증 만들 때 지문 등록하시는 것 기억하시나요? 어떤 사람인지 알아보기 위해 모든 데이터가 필요하지 않습니다. 지문이 같은 확률이 매우 적다는 가정하에 지문만 저장해서 사람을 인식하는데 사용할 수 있습니다.\n\n해시 함수도 마찬가지입니다. 데이터가 어떤 데이터인지 알기 위해 모든 데이터를 활용하지 않고 해시 함수를 통해 나온 해시값으로 판단할 수 있습니다. 데이터 지문이라고 보시면 됩니다.\n\n이미 일상생활의 많은 곳에서 이 성질을 활용하고 있습니다. 지문 사례와 같이 데이터가 전과 같은 데이터인지 확인하기 위해 전과 같은 정보를 그대로 저장하는 대신 256bit의 짧은 데이터만 사용해 저장하고 같은지 확인하는 것이죠. 또한, 데이터가 조금이라도 달라져도 해시 함수값도 달라지기 때문에 데이터 전송 도중 도중 손실이나 악의적인 변조가 있었는지 확인하기 위해서도 사용할 수 있습니다. \n\n그럼 암호화폐에서 사용 사례는 어떨까요? 관심 있으신 분이라면 암호화폐에 한 번 기록된 정보는 조작할 수 없다는 얘기를 들어보셨을 겁니다. 데이터에 불과한 거래 장부를 어떻게 조작하지 못하게 막을 수 있을까요? 여기서 해시 함수가 사용됩니다.\n\n비트코인의 블록을 한 번 봅시다.\n\n비트코인은 블록은 10분에 한 번씩 생성됩니다. 한 블록엔 여러 가지 거래 기록(Transactions)이 담겨져 있죠. 비트코인은 이러한 블록을 연결한 겁니다. 그래서 말 그대로 블록체인이라고 불리는 겁니다.\n\n블록체인을 그림으로 간단하게 그려보면 아래와 같습니다.\n\n![bitcoin-blocks.png](https://steemitimages.com/DQmXorPv1SXzshtyZcuvtwB5gwP3hqynYtqFcdFLvRs15Co/bitcoin-blocks.png)\n\nN 번째 블록을 봅시다. 4개의 거래 기록(TX0, TX1, TX2, TX3)이 담긴 블록입니다. 각각의 거래 데이터는 해시값으로 변경되어 모든 거래가 합쳐진 하나의 해시값인 루트 해시값이 됩니다. 그리고 블록 헤더는 이전 블록의 해시, 루트 해시, Nonce(마이닝에서 사용되는 값입니다)로 구성됩니다. 이 세 값이 합쳐져 다시 해시값을 계산하고 이게 블록의 해시값이 됩니다.\n\n그럼 만약 A라는 공격자가 블록 트랜잭션 중 하나를 악의적으로 변경하려고 한다면 어떻게 될까요? 예를 들어 100 BTC를 자신의 지갑으로 보내도록 트랜잭션 정보를 조작하는 겁니다. TX0 거래 기록에 조작을 시도합니다. 그럼 TX0의 해시값인 `HASH 0`의 값이 완전히 변경됩니다. `Collision-free` 특성에 따라 임의의 데이터의 해시값은 유일하다고 가정할 수 있기 때문이죠. 연쇄적으로 HASH 0 값을 포함한 해시값들인 `HASH 0|1`, `Root Hash`, `Block Hash`까지 모두 변경이 됩니다.\n\n그럼 A 공격자가 조작한 정보를 받아들여달라고 비트코인 피어(참여자들)에게 전달합니다. 정보를 받은 피어들은 장부가 조작되지 않았는지 확인합니다. 어떻게 확인할까요? 자신들의 노드에 기록된 거래정보에 따라 해시값을 계산해보고 A가 제안한 블록과 해시값을 비교하는 겁니다. 해시값이 다르다면 어딘가 데이터가 1이라도 조작된 것이 분명합니다. 따라서 피어들은 이 블록을 기각하고 유효하지 않다고 생각합니다. 해당 블록에 더 체인을 쌓지 않게 됩니다. 아무도 인정하지 않는 블록이 되는 것이죠. 따라서 공격은 실패하게 됩니다.\n\n블록의 해시값을 계산할 때 이전 해시값을 쓰기 때문에 과거 장부를 조작하는 것도 불가능합니다. 예전 블록의 데이터를 조금이라도 조작하면 해시값이 크게 달라지기 때문입니다.\n\n#### Hiding\n\n`Hiding`은 `high-min entropy` 분포를 가지는 임의의 값 `r`과 데이터 `x`, 이 둘을 더해 해시 함수를 적용한 `H(r|x) = y`의 값이 있을 때 해시값(`y`)로 `x` 값을 알아내는 것이 매우 어려움을 말합니다. `x`라는 데이터를 임의의 값 `r`과 결합해 숨긴채로 상대방에게 전달하는 겁니다.\n\n어떻게 이용되는지 쉽게 이해가 가는 개념은 아닙니다. 조금 더 자세히 살펴보도록 합시다.\n\n해시 함수 개념에 관해 얘기할 때 충돌을 발견하려면 무작위 공격밖에 방법이 없다는 것과 같은 논리입니다. 어떤 값을 넣어야 `H(x)`가 나오는지는 여러 값을 해시 함수에 넣어보는 수밖에 없습니다.\n\n물론 모든 사례에 적용되는 건 아닙니다. 입력의 경우의 수가 많지 않고 공격자가 이를 알 수 있다면 쉽게 추론할 수 있죠.\n\n동전 던지기를 생각해봅시다.\n\nAlice와 Bob이 동전 던지기 게임을 합니다. Alice가 동전을 던지고 그 결과를 Bob에게 전송하고, Bob은 Alice가 어떤 동전을 던졌는지 맞추는 게임입니다. Bob이 결과를 맞추면 Bob이 이깁니다. 문제는 Alice는 한국에, Bob은 미국에 있다는 겁니다.\n\n게임을 시작합니다. Alice가 Bob에게 '앞'이라고 말합니다. Bob은 동전 던지기를 합니다. '앞'이 나오지만 게임에서 이기기 위해 Alice에게 '뒤'가 나왔다고 합니다. 이런 상황에선 서로를 믿을 수 없어 게임 진행이 되지 않습니다.\n\nAlice는 데이터를 숨기기 위해 앞/뒤 값을 해싱해서 보냅니다. Bob은 해시 된 값만 보기 때문에 처음 몇 번은 어느 쪽인지 알지 못합니다. 하지만 결과를 보고 나서 해당 값이 동전의 앞 뒤 중 어디를 뜻하는지 알게 됩니다. \n\n`x`는 동전을 던졌을 때 나올 수 있는 경우의 수라면, `x = {앞, 뒤}`가 가능합니다. 해시값은 `H('head')`와 `H('tail')` 이 됩니다. 이 해시값의 입력 x는 찾기 쉽습니다. `앞`과 `뒤`의 해시값을 계산하고 값을 비교하면 됩니다.\n\n따라서 해시값을 쓰는 것도 통하지 않습니다. 그럼 어떻게 해야 할까요? 문제는 x의 입력으로 오직 두 가지 경우의 수가 있다는 것입니다. \n\n이를 피하고자 임의의 값 `r`을 하나 뽑아 x값과 결합해 이 값을 해시 함수(`H(r|x)`)로 적용해봅시다. 그럼 `r` 값에 따라서 해시값이 매우 달라집니다.\n\n주의할 점은 임의값 `r`의 분포는 `high min-entorpy`를 가져야 한다는 겁니다.\n\n `high min-entropy` 는 값이 일정하게 분포되어 있음을 말합니다. 데이터의 분포가 특정 패턴을 따른다면 탐색 공간이 더 좁아지기 때문에 해시 함수의 패턴을 파악하기가 쉬워집니다. 따라서 최대한 `high min-entorpy` 분포에 가까운 키 값을 선택해야 합니다.\n \n다시 정리하면, `Hiding`이란 `high min-entropy`를 가지는 분포에서 임의의 수 `r`을 뽑아 `H(r|x)`를 `x`의 해시 함수로 쓴다면 그 해시값으로부터 x의 값을 추정하기 매우 어렵다는 말입니다. 데이터를 숨겨서 보낼 수 있죠. 물론 해시값의 입력을 추정하고자 하는 상대가 `r`의 값을 몰라야 합니다. \n\n그럼 `Hiding`을 이해한 Alice가 새로운 게임 방식을 제안합니다. 동전의 앞/뒤 예측값 x와 임의의 비밀키 r을 조합한 해시값을 bob에게 보냅니다. bob은 해시값으로부터 동전의 앞/뒤를 알 수가 없습니다. bob이 동전을 던져 나온 결과를 Alice에게 보냅니다. 그럼 Alice는 비밀키 r과 예측값 x를 보냅니다. Bob은 이 두 값을 조합해 해시 함수를 적용한 후 여기서 나온 해시값이 Alice가 처음에 보낸 해시값과 맞는지 확인합니다.\n\n이 방식이라면 아무리 멀리 떨어져 있어도 조작할 수 없습니다. Alice가 비밀키를 보내주기 전에는 Bob이 해시값에서 동전 앞/뒤를 알 수가 없기 때문이죠. 마찬가지로 Alice도 게임 결과에 영향을 미치지 못합니다. 자신이 x라는 값을 골라 보냈다는 걸 숨길 수 없기 때문입니다.\n\n게임을 다시 할 때는 Alice가 새로운 비밀키를 선정해 게임을 하면 됩니다. 서로 믿고 게임을 진행할 수 있습니다.\n\n이처럼 메시지를 숨긴 채 상대방에게 보내고 후에 메시지를 열어볼 수 있는 키를 보내 확인하는 방식을 [Commitment scheme](https://en.wikipedia.org/wiki/Commitment_scheme)이라고 합니다.\n\n매우 단순화한 프로토콜이지만 이러한 방식을 응용해서 신원확인이나 부인방지, 인증 등에 사용하고 있습니다.\n\n당연히 암호화폐에서 쓰이고 있습니다. 물론 위에 단순화한 사례보다는 훨씬 복잡한 방식이긴 하지만 원리 자체는 같다고 보시면 됩니다. 비트코인 지갑의 개인키/공개키부터 누군가에게 비트코인을 전송할 때 서명을 하는 것까지 매우 다양한 영역에서 사용되고 있습니다.\n\n#### Puzzle-Friendly\n\n어떤 해시 함수 H와 `high min-entorpy` 분포를 가지는 임의의 값 k와 데이터 x, 이 둘을 결합한 해시값 z(`H(k|x)`)가 있습니다. 이 때 k와 z가 주어진 경우 x 값을 찾기가 매우 어렵다는 걸 `Puzzle-Friendly`하다고 합니다. 위의 `Hiding` 과 유사해보입니다. k 값을 주느냐 아니냐 차이가 있죠.\n\n정의만 보면 이해하기 쉽지 않습니다. 아래 예시를 보면 이 성질의 유용함을 알 수 있습니다.\n\n여러분이 어떤 퍼즐 문제를 하나 내려고 합니다. `Puzzle-Friendly` 정의와 같이 k와 해시값인 y가 주어졌을 때 x를 찾는 문제입니다. \n\n- k는 퍼즐 id로 입니다. `high-min entropy`를 가지는 분포에서 뽑힌 임의의 값입니다.\n- 8bit 의 해시값을 가지는 해시 함수 H를 사용합니다. 나올 수 있는 경우의 수는 2^8 = 256입니다. 0~255 사이의 값을 가집니다.\n\n그럼 이렇게 계산 문제를 낼 수 있습니다.\n\n```\n해시값 H(k|x)가 y값보다 작은 x값을 찾아라.\n```\n\n`y = 2^6`이라고 합시다. 해시 함수 H는 0 ~ 255 사이의 값을 가질 수 있다고 했습니다. 그럼 임의의 값 x가 위 조건을 만족할 확률은 `2^6 / 2^8 = 1 / 2^2 = 1 / 4 = 0.25`, `25%`가 됩니다. \n\n첫 번째 문제를 진행한 뒤에 같은 문제를 내려면 퍼즐 id인 k 값만 바꿔서 진행하면 됩니다. 해시 함수는 쇄도 효과에 의해 일부분만 바뀌어도 해시값 자체가 크게 달라지니 이전 문제의 결과에서 다음 문제 패턴을 알 수 없습니다. 완전 새로운 문제가 되는 것이죠.\n\n근데 문제가 너무 쉽습니다. 그럼 y 값을 바꾸면 됩니다. y를 `2^6`이 아니라 `2^4`로 조정해봅시다. 그럼 확률은 `2^4 / 2^8 = 0.0625`, `6.25%`가 됩니다.\n\n위와 같은 방식으로 임의의 계산 문제를 무한히 만들어 낼 수 있습니다. \n\n암호화폐에서도 `Puzzle-Friendly` 성질을 활용한 계산 문제를 사용하고 있습니다. 암호화폐의 채굴에 대해 들어보신 분이라면 채굴이 문제를 풀고 그걸 가장 빨리 푼 사람에게 보상을 주는 것이라는 말을 들어보셨을 겁니다. 여기서 나오는 문제가 위의 해시값을 찾는 계산 문제입니다.\n\n비트코인 블락을 다시 한 번 봅시다.\n\n![bitcoin-blocks.png](https://steemitimages.com/DQmXorPv1SXzshtyZcuvtwB5gwP3hqynYtqFcdFLvRs15Co/bitcoin-blocks.png)\n\n비트코인은 계산 문제를 푸는 사람이 트랜잭션이 담긴 블록을 블록 체인 위에 추가하게 됩니다.\n계산 문제는,\n\n```\n해시값 H(k|x)이 y값보다 작은 x값을 찾아라.\n```\n\n라고 했는데요.\n\n여기서 k는 이전 블록의 해시값과 루트 해시값이 됩니다. 그리고 x는 Nonce가 됩니다. y를 target이라고 합니다. target 값이 문제의 난이도를 조절하는 제약조건이 됩니다. target은 비트코인 마이닝에 참여하는 모든 노드가 공유합니다.\n\nNonce 값을 증가시키면서 target 값보다 작은 값을 찾는 겁니다. target이 작을수록 난이도는 더 올라갑니다.\n\n이러한 방식으로 비트코인 마이닝이 이루어집니다. 참여하는 사람들이 많아져 계산량이 늘어난다면 인플레이션이 발생하니 Target 값을 줄여가며 난이도를 조정합니다.\n\n마이닝이 완료되어 블록을 전파하면 사람들은 해당 마이닝이 올바르게 이루어졌는지 Nonce 값(x)과 해시값(k)을 해싱해서 Target 보다 작은지 확인합니다. 데이터를 통해서 해시값을 만드는 것은 금방 할 수 있기 때문에 해답을 검증하는 것은 쉽고 빠르게 할 수 있습니다. 검증이 완료되면 올바른 블록이라 판단하고 체인 위에 블록을 올립니다.\n\n이러한 과정을 작업 증명(PoW)라고도 합니다.\n\n2018년 3월 11일에 마이닝 된 [513022번 블록](https://blockchain.info/ko/block-height/513022)을 봅시다.\n\n![bitcoin-block-513022.png](https://steemitimages.com/DQmVqrCUFNie8onzNBm2gaLSHTxsm5XFnPse6zZkpwRzqSn/bitcoin-block-513022.png)\n\n해시값이 0으로 시작하는 걸 볼 수 있습니다. 이 0이 많을수록 난이도가 높아집니다. Target 수보다 적어야 하니 앞자리는 0이 올 수밖에 없죠. 해시 난수(Nonce)가 x값이 됩니다. 해당 Nonce 값과 트랜잭션의 해시값들, 이전 해시값을 조합해 현재 블록의 해시값(Target보다 작은)이 만들어집니다.\n\n마이닝의 난이도는 2주에 한 번씩 조정됩니다. 즉 Target이 2주에 한 번씩 바뀌는 겁니다. 난이도는 10분에 한 블록을 마이닝 할 수 있을 정도, 즉 10분에 한 문제를 풀 수 있는 수준으로 조정됩니다. 현재 비트코인 마이닝에 참여하는 사람들이 늘고 있으니 인플레이션을 막기 위해 난이도는 점점 더 높아집니다.\n\n\n![bitcoin-mining-difficulty.png](https://steemitimages.com/DQmVAjdJ124MrBaxgRxmcL3g8DE5q4pNNTxKCYiAqR4nawd/bitcoin-mining-difficulty.png)\n\n위 [차트](https://bitcoinwisdom.com/bitcoin/difficulty)를 통해 2주에 한 번씩 마이닝 난이도가 높아지는 모습을 확인할 수 있습니다. \n\n## 마치며\n\n해시 함수는 임의의 데이터를 고정 길이의 데이터로 변환하는 함수로, 해시값에서 입력값을 추론하기 어려운 성질을 갖고 있습니다. 본 글에서는 해시 함수의 개념과 `Collision-free`, `Hiding`, `Puzzle-Friendly` 성질과 암호화폐에서의 쓰임세에 대해 간략히 알아보았습니다.\n\n다음 글에서는 이중 지불 문제와 블록 체인의 개념, 그리고 지금까지 배운 내용을 통해 간단한 암호화폐를 만드는 방법에 대해 설명하겠습니다.\n\n## 참고자료\n\n- [Coursera - Bitcoin and Cryptocurrency Technologies](https://www.coursera.org/learn/cryptocurrency/home/welcome)\n- [Bitcoin Mining Explained Like You’re Five](https://chrispacia.wordpress.com/2013/09/02/bitcoin-mining-explained-like-youre-five-part-1-incentives/)",
      "json_metadata": "{\"tags\":[\"cryptocurrency\",\"bitcoin\",\"development\",\"ethereum\",\"blockchain\"],\"image\":[\"https://steemitimages.com/DQmab35ELxd4gbeW9WNKthujCxq4QJ93VM9pzpdhMFfeZZ7/hashfunction-explained.png\",\"https://steemitimages.com/DQmXorPv1SXzshtyZcuvtwB5gwP3hqynYtqFcdFLvRs15Co/bitcoin-blocks.png\",\"https://steemitimages.com/DQmVqrCUFNie8onzNBm2gaLSHTxsm5XFnPse6zZkpwRzqSn/bitcoin-block-513022.png\",\"https://steemitimages.com/DQmVAjdJ124MrBaxgRxmcL3g8DE5q4pNNTxKCYiAqR4nawd/bitcoin-mining-difficulty.png\"],\"links\":[\"https://www.coursera.org/learn/cryptocurrency/home/welcome\",\"https://ko.wikipedia.org/wiki/%ED%95%B4%EC%8B%9C_%ED%95%A8%EC%88%98\",\"https://ko.wikipedia.org/wiki/%ED%95%B4%EC%8B%9C_%EC%B6%A9%EB%8F%8C\",\"https://ko.wikipedia.org/wiki/%EC%95%94%ED%98%B8%ED%99%94_%ED%95%B4%EC%8B%9C_%ED%95%A8%EC%88%98\",\"https://ko.wikipedia.org/wiki/SHA\",\"http://www.md5calc.com/sha256\",\"https://ko.wikipedia.org/wiki/%EB%AC%B4%EC%B0%A8%EB%B3%84_%EB%8C%80%EC%9E%85_%EA%B3%B5%EA%B2%A9\",\"https://ko.wikipedia.org/wiki/%EC%87%84%EB%8F%84_%ED%9A%A8%EA%B3%BC\",\"https://bitcointalk.org/index.php?topic=133425.0\",\"https://en.wikipedia.org/wiki/Commitment_scheme\",\"https://blockchain.info/ko/block-height/513022\",\"https://bitcoinwisdom.com/bitcoin/difficulty\",\"https://chrispacia.wordpress.com/2013/09/02/bitcoin-mining-explained-like-youre-five-part-1-incentives/\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
      "parent_author": "",
      "parent_permlink": "cryptocurrency",
      "permlink": "1",
      "title": "암호화폐 스터디 1"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T10:18:45",
  "trx_id": "c07462108119bce3fe29e69890a818a6ce249332",
  "trx_in_block": 44,
  "virtual_op": 0
}
steemcreated a new account: @jahyun.dev
2018/03/12 10:08:24
active{"account_auths":[],"key_auths":[["STM8BDZg4gpebyWmijw4wEcXuDrww6CyJsd3WRuS3MYLMRTreUvDc",1]],"weight_threshold":1}
creatorsteem
delegation30690.000000 VESTS
extensions[]
fee0.100 STEEM
json metadata{}
memo keySTM6H9KbwAszpHifv2jLL6TQRhaB8REC1HJzchywstajiXVq9XWmL
new account namejahyun.dev
owner{"account_auths":[],"key_auths":[["STM6oeTHUbfyQ4VbXYi78XaeSroNBRGUmgkBB8QiiJAZUrL1Q263M",1]],"weight_threshold":1}
posting{"account_auths":[],"key_auths":[["STM5NLgNUagirB513o46xDV3295NwHmwEAQ5RaCajuP8rMFSAkCjG",1]],"weight_threshold":1}
Transaction InfoBlock #20607614/Trx b3dea31fea49817389ff061b2b967b47fb90c2a9
View Raw JSON Data
{
  "block": 20607614,
  "op": [
    "account_create_with_delegation",
    {
      "active": {
        "account_auths": [],
        "key_auths": [
          [
            "STM8BDZg4gpebyWmijw4wEcXuDrww6CyJsd3WRuS3MYLMRTreUvDc",
            1
          ]
        ],
        "weight_threshold": 1
      },
      "creator": "steem",
      "delegation": "30690.000000 VESTS",
      "extensions": [],
      "fee": "0.100 STEEM",
      "json_metadata": "{}",
      "memo_key": "STM6H9KbwAszpHifv2jLL6TQRhaB8REC1HJzchywstajiXVq9XWmL",
      "new_account_name": "jahyun.dev",
      "owner": {
        "account_auths": [],
        "key_auths": [
          [
            "STM6oeTHUbfyQ4VbXYi78XaeSroNBRGUmgkBB8QiiJAZUrL1Q263M",
            1
          ]
        ],
        "weight_threshold": 1
      },
      "posting": {
        "account_auths": [],
        "key_auths": [
          [
            "STM5NLgNUagirB513o46xDV3295NwHmwEAQ5RaCajuP8rMFSAkCjG",
            1
          ]
        ],
        "weight_threshold": 1
      }
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-03-12T10:08:24",
  "trx_id": "b3dea31fea49817389ff061b2b967b47fb90c2a9",
  "trx_in_block": 37,
  "virtual_op": 0
}

Account Metadata

POSTING JSON METADATA
None
JSON METADATA
None
{
  "posting_json_metadata": {},
  "json_metadata": {}
}

Auth Keys

Owner
Single Signature
Public Keys
STM6oeTHUbfyQ4VbXYi78XaeSroNBRGUmgkBB8QiiJAZUrL1Q263M1/1
Active
Single Signature
Public Keys
STM8BDZg4gpebyWmijw4wEcXuDrww6CyJsd3WRuS3MYLMRTreUvDc1/1
Posting
Single Signature
Public Keys
STM5NLgNUagirB513o46xDV3295NwHmwEAQ5RaCajuP8rMFSAkCjG1/1
Memo
STM6H9KbwAszpHifv2jLL6TQRhaB8REC1HJzchywstajiXVq9XWmL
{
  "owner": {
    "account_auths": [],
    "key_auths": [
      [
        "STM6oeTHUbfyQ4VbXYi78XaeSroNBRGUmgkBB8QiiJAZUrL1Q263M",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "active": {
    "account_auths": [],
    "key_auths": [
      [
        "STM8BDZg4gpebyWmijw4wEcXuDrww6CyJsd3WRuS3MYLMRTreUvDc",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "posting": {
    "account_auths": [],
    "key_auths": [
      [
        "STM5NLgNUagirB513o46xDV3295NwHmwEAQ5RaCajuP8rMFSAkCjG",
        1
      ]
    ],
    "weight_threshold": 1
  },
  "memo": "STM6H9KbwAszpHifv2jLL6TQRhaB8REC1HJzchywstajiXVq9XWmL"
}

Witness Votes

0 / 30
No active witness votes.
[]