VOTING POWER100.00%
DOWNVOTE POWER100.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS0.00%
Net Worth
0.037USD
STEEM
0.000STEEM
SBD
0.000SBD
Effective Power
5.007SP
├── Own SP
0.629SP
└── Incoming DelegationsDeleg
+4.378SP
Detailed Balance
| STEEM | ||
| balance | 0.000STEEM | STEEM |
| market_balance | 0.000STEEM | STEEM |
| savings_balance | 0.000STEEM | STEEM |
| reward_steem_balance | 0.000STEEM | STEEM |
| STEEM POWER | ||
| Own SP | 0.629SP | SP |
| Delegated Out | 0.000SP | SP |
| Delegation In | 4.378SP | SP |
| Effective Power | 5.007SP | SP |
| Reward SP (pending) | 0.000SP | SP |
| SBD | ||
| sbd_balance | 0.000SBD | SBD |
| sbd_conversions | 0.000SBD | SBD |
| sbd_market_balance | 0.000SBD | SBD |
| savings_sbd_balance | 0.000SBD | SBD |
| reward_sbd_balance | 0.000SBD | SBD |
{
"balance": "0.000 STEEM",
"savings_balance": "0.000 STEEM",
"reward_steem_balance": "0.000 STEEM",
"vesting_shares": "1023.640840 VESTS",
"delegated_vesting_shares": "0.000000 VESTS",
"received_vesting_shares": "7120.018966 VESTS",
"sbd_balance": "0.000 SBD",
"savings_sbd_balance": "0.000 SBD",
"reward_sbd_balance": "0.000 SBD",
"conversions": []
}Account Info
| name | garylai |
| id | 626066 |
| rank | 312,050 |
| reputation | 32520414 |
| created | 2018-01-19T19:59:18 |
| recovery_account | steem |
| proxy | None |
| post_count | 1 |
| comment_count | 0 |
| lifetime_vote_count | 0 |
| witnesses_voted_for | 0 |
| last_post | 2018-01-19T20:06:54 |
| last_root_post | 2018-01-19T20:06:54 |
| last_vote_time | 2018-01-19T20:20:42 |
| proxied_vsf_votes | 0, 0, 0, 0 |
| can_vote | 1 |
| voting_power | 0 |
| delayed_votes | 0 |
| balance | 0.000 STEEM |
| savings_balance | 0.000 STEEM |
| sbd_balance | 0.000 SBD |
| savings_sbd_balance | 0.000 SBD |
| vesting_shares | 1023.640840 VESTS |
| delegated_vesting_shares | 0.000000 VESTS |
| received_vesting_shares | 7120.018966 VESTS |
| reward_vesting_balance | 0.000000 VESTS |
| vesting_balance | 0.000 STEEM |
| vesting_withdraw_rate | 0.000000 VESTS |
| next_vesting_withdrawal | 1969-12-31T23:59:59 |
| withdrawn | 0 |
| to_withdraw | 0 |
| withdraw_routes | 0 |
| savings_withdraw_requests | 0 |
| last_account_recovery | 1970-01-01T00:00:00 |
| reset_account | null |
| last_owner_update | 1970-01-01T00:00:00 |
| last_account_update | 1970-01-01T00:00:00 |
| mined | No |
| sbd_seconds | 0 |
| sbd_last_interest_payment | 1970-01-01T00:00:00 |
| savings_sbd_last_interest_payment | 1970-01-01T00:00:00 |
{
"id": 626066,
"name": "garylai",
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM59HkyMqSRhTxnHut5roNRJCcb6k74S2DhugZQUTtRPuRPXU2gw",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM8MDLhS587pgo5NQ3hW9kX2Ag6fc7GLJLTaExtaHNWCSvVqcf8W",
1
]
]
},
"posting": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM5Lprc9kpvF9C61YXgLy87nXw2bna82nFb49v3YJdbmkeohd5qQ",
1
]
]
},
"memo_key": "STM7oKbZQg97i9wFNtU45pxfFhR4SafRGNUQQEni9YLEiCqj7YrNb",
"json_metadata": "",
"posting_json_metadata": "",
"proxy": "",
"last_owner_update": "1970-01-01T00:00:00",
"last_account_update": "1970-01-01T00:00:00",
"created": "2018-01-19T19:59:18",
"mined": false,
"recovery_account": "steem",
"last_account_recovery": "1970-01-01T00:00:00",
"reset_account": "null",
"comment_count": 0,
"lifetime_vote_count": 0,
"post_count": 1,
"can_vote": true,
"voting_manabar": {
"current_mana": "8143659806",
"last_update_time": 1779064458
},
"downvote_manabar": {
"current_mana": 2035914951,
"last_update_time": 1779064458
},
"voting_power": 0,
"balance": "0.000 STEEM",
"savings_balance": "0.000 STEEM",
"sbd_balance": "0.000 SBD",
"sbd_seconds": "0",
"sbd_seconds_last_update": "1970-01-01T00:00:00",
"sbd_last_interest_payment": "1970-01-01T00:00:00",
"savings_sbd_balance": "0.000 SBD",
"savings_sbd_seconds": "0",
"savings_sbd_seconds_last_update": "1970-01-01T00:00:00",
"savings_sbd_last_interest_payment": "1970-01-01T00:00:00",
"savings_withdraw_requests": 0,
"reward_sbd_balance": "0.000 SBD",
"reward_steem_balance": "0.000 STEEM",
"reward_vesting_balance": "0.000000 VESTS",
"reward_vesting_steem": "0.000 STEEM",
"vesting_shares": "1023.640840 VESTS",
"delegated_vesting_shares": "0.000000 VESTS",
"received_vesting_shares": "7120.018966 VESTS",
"vesting_withdraw_rate": "0.000000 VESTS",
"next_vesting_withdrawal": "1969-12-31T23:59:59",
"withdrawn": 0,
"to_withdraw": 0,
"withdraw_routes": 0,
"curation_rewards": 0,
"posting_rewards": 0,
"proxied_vsf_votes": [
0,
0,
0,
0
],
"witnesses_voted_for": 0,
"last_post": "2018-01-19T20:06:54",
"last_root_post": "2018-01-19T20:06:54",
"last_vote_time": "2018-01-19T20:20:42",
"post_bandwidth": 0,
"pending_claimed_accounts": 0,
"vesting_balance": "0.000 STEEM",
"reputation": 32520414,
"transfer_history": [],
"market_history": [],
"post_history": [],
"vote_history": [],
"other_history": [],
"witness_votes": [],
"tags_usage": [],
"guest_bloggers": [],
"rank": 312050
}Withdraw Routes
| Incoming | Outgoing |
|---|---|
Empty | Empty |
{
"incoming": [],
"outgoing": []
}From Date
To Date
2026/05/18 00:34:18
2026/05/18 00:34:18
| delegator | steem |
| delegatee | garylai |
| vesting shares | 7120.018966 VESTS |
| Transaction Info | Block #106143829/Trx 940b29811efc7b46da5b09079005b5be548f3081 |
View Raw JSON Data
{
"trx_id": "940b29811efc7b46da5b09079005b5be548f3081",
"block": 106143829,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2026-05-18T00:34:18",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "garylai",
"vesting_shares": "7120.018966 VESTS"
}
]
}2026/05/12 05:08:24
2026/05/12 05:08:24
| delegator | steem |
| delegatee | garylai |
| vesting shares | 4407.808561 VESTS |
| Transaction Info | Block #105977267/Trx ce2f69f63ca06d14f3d6a78aa54f59a28602b7c2 |
View Raw JSON Data
{
"trx_id": "ce2f69f63ca06d14f3d6a78aa54f59a28602b7c2",
"block": 105977267,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2026-05-12T05:08:24",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "garylai",
"vesting_shares": "4407.808561 VESTS"
}
]
}2026/04/25 23:54:45
2026/04/25 23:54:45
| delegator | steem |
| delegatee | garylai |
| vesting shares | 7132.534722 VESTS |
| Transaction Info | Block #105511473/Trx fa3f57bad6ecd87be19a6c7dbf1a65d3b784690a |
View Raw JSON Data
{
"trx_id": "fa3f57bad6ecd87be19a6c7dbf1a65d3b784690a",
"block": 105511473,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2026-04-25T23:54:45",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "garylai",
"vesting_shares": "7132.534722 VESTS"
}
]
}2026/01/23 08:39:18
2026/01/23 08:39:18
| delegator | steem |
| delegatee | garylai |
| vesting shares | 4449.355380 VESTS |
| Transaction Info | Block #102852833/Trx e0107d33b6e9847be8104bba778d4632077d68c1 |
View Raw JSON Data
{
"trx_id": "e0107d33b6e9847be8104bba778d4632077d68c1",
"block": 102852833,
"trx_in_block": 6,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2026-01-23T08:39:18",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "garylai",
"vesting_shares": "4449.355380 VESTS"
}
]
}2024/12/17 03:57:57
2024/12/17 03:57:57
| delegator | steem |
| delegatee | garylai |
| vesting shares | 4613.574577 VESTS |
| Transaction Info | Block #91299230/Trx 331c932c01089fac662617d1c1d202e0acc7b614 |
View Raw JSON Data
{
"trx_id": "331c932c01089fac662617d1c1d202e0acc7b614",
"block": 91299230,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2024-12-17T03:57:57",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "garylai",
"vesting_shares": "4613.574577 VESTS"
}
]
}2023/11/13 19:40:57
2023/11/13 19:40:57
| delegator | steem |
| delegatee | garylai |
| vesting shares | 4782.708109 VESTS |
| Transaction Info | Block #79853432/Trx a6eabedf8e65cf6f8e5b73a250d848ffc47d8f5e |
View Raw JSON Data
{
"trx_id": "a6eabedf8e65cf6f8e5b73a250d848ffc47d8f5e",
"block": 79853432,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2023-11-13T19:40:57",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "garylai",
"vesting_shares": "4782.708109 VESTS"
}
]
}2023/09/21 22:12:09
2023/09/21 22:12:09
| delegator | steem |
| delegatee | garylai |
| vesting shares | 7719.986895 VESTS |
| Transaction Info | Block #78348273/Trx 0909f91fd0d682aafcf55b25cf44edba48034b02 |
View Raw JSON Data
{
"trx_id": "0909f91fd0d682aafcf55b25cf44edba48034b02",
"block": 78348273,
"trx_in_block": 3,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2023-09-21T22:12:09",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "garylai",
"vesting_shares": "7719.986895 VESTS"
}
]
}2022/11/03 11:57:00
2022/11/03 11:57:00
| delegator | steem |
| delegatee | garylai |
| vesting shares | 7941.668333 VESTS |
| Transaction Info | Block #69113556/Trx 7df8b025b999784209a9c5b286844261060baaad |
View Raw JSON Data
{
"trx_id": "7df8b025b999784209a9c5b286844261060baaad",
"block": 69113556,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2022-11-03T11:57:00",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "garylai",
"vesting_shares": "7941.668333 VESTS"
}
]
}2022/01/17 11:11:51
2022/01/17 11:11:51
| delegator | steem |
| delegatee | garylai |
| vesting shares | 8162.201564 VESTS |
| Transaction Info | Block #60809701/Trx 5a84450b184480cd5952d64831f62e459cf5cbf5 |
View Raw JSON Data
{
"trx_id": "5a84450b184480cd5952d64831f62e459cf5cbf5",
"block": 60809701,
"trx_in_block": 4,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2022-01-17T11:11:51",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "garylai",
"vesting_shares": "8162.201564 VESTS"
}
]
}2021/06/14 01:06:27
2021/06/14 01:06:27
| delegator | steem |
| delegatee | garylai |
| vesting shares | 8345.970222 VESTS |
| Transaction Info | Block #54608076/Trx af18025f872fcc0f7a3fc89099fd0ac18e694b29 |
View Raw JSON Data
{
"trx_id": "af18025f872fcc0f7a3fc89099fd0ac18e694b29",
"block": 54608076,
"trx_in_block": 3,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2021-06-14T01:06:27",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "garylai",
"vesting_shares": "8345.970222 VESTS"
}
]
}2020/12/11 11:24:39
2020/12/11 11:24:39
| delegator | steem |
| delegatee | garylai |
| vesting shares | 8533.392196 VESTS |
| Transaction Info | Block #49355519/Trx c22d60479e0045bd4b13bf285e33b135b4c82c2d |
View Raw JSON Data
{
"trx_id": "c22d60479e0045bd4b13bf285e33b135b4c82c2d",
"block": 49355519,
"trx_in_block": 4,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-12-11T11:24:39",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "garylai",
"vesting_shares": "8533.392196 VESTS"
}
]
}2020/12/06 05:01:51
2020/12/06 05:01:51
| delegator | steem |
| delegatee | garylai |
| vesting shares | 1912.543513 VESTS |
| Transaction Info | Block #49207080/Trx f100e539cde7c2a0706285e1280ec27b129dc07d |
View Raw JSON Data
{
"trx_id": "f100e539cde7c2a0706285e1280ec27b129dc07d",
"block": 49207080,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-12-06T05:01:51",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "garylai",
"vesting_shares": "1912.543513 VESTS"
}
]
}2020/12/05 15:02:51
2020/12/05 15:02:51
| delegator | steem |
| delegatee | garylai |
| vesting shares | 8539.600050 VESTS |
| Transaction Info | Block #49190614/Trx 86af7c32f2aea74014599a07fab3e1f1a07157a1 |
View Raw JSON Data
{
"trx_id": "86af7c32f2aea74014599a07fab3e1f1a07157a1",
"block": 49190614,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-12-05T15:02:51",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "garylai",
"vesting_shares": "8539.600050 VESTS"
}
]
}2020/11/02 16:14:39
2020/11/02 16:14:39
| delegator | steem |
| delegatee | garylai |
| vesting shares | 1920.017158 VESTS |
| Transaction Info | Block #48258513/Trx d92c1d42f1e59302573010f692d5b9a3d2d1ba46 |
View Raw JSON Data
{
"trx_id": "d92c1d42f1e59302573010f692d5b9a3d2d1ba46",
"block": 48258513,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-11-02T16:14:39",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "garylai",
"vesting_shares": "1920.017158 VESTS"
}
]
}2020/05/09 05:59:30
2020/05/09 05:59:30
| delegator | steem |
| delegatee | garylai |
| vesting shares | 8742.405409 VESTS |
| Transaction Info | Block #43217331/Trx d76f212dd80a0759aa5fc78c8c2490bc22d878a9 |
View Raw JSON Data
{
"trx_id": "d76f212dd80a0759aa5fc78c8c2490bc22d878a9",
"block": 43217331,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-05-09T05:59:30",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "garylai",
"vesting_shares": "8742.405409 VESTS"
}
]
}2020/05/08 09:38:30
2020/05/08 09:38:30
| delegator | steem |
| delegatee | garylai |
| vesting shares | 1953.311140 VESTS |
| Transaction Info | Block #43193485/Trx fda27d597e13db709784260f2a9a9254a5264617 |
View Raw JSON Data
{
"trx_id": "fda27d597e13db709784260f2a9a9254a5264617",
"block": 43193485,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-05-08T09:38:30",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "garylai",
"vesting_shares": "1953.311140 VESTS"
}
]
}2020/04/15 21:46:51
2020/04/15 21:46:51
| delegator | steem |
| delegatee | garylai |
| vesting shares | 8755.382828 VESTS |
| Transaction Info | Block #42562754/Trx 64180bde561ae0277b4ecc62ae89ce275787a2f4 |
View Raw JSON Data
{
"trx_id": "64180bde561ae0277b4ecc62ae89ce275787a2f4",
"block": 42562754,
"trx_in_block": 3,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-04-15T21:46:51",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "garylai",
"vesting_shares": "8755.382828 VESTS"
}
]
}2020/01/19 21:21:12
2020/01/19 21:21:12
| parent author | garylai |
| parent permlink | introduction-to-blockchain-security |
| author | steemitboard |
| permlink | steemitboard-notify-garylai-20200119t212112000z |
| title | |
| body | Congratulations @garylai! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@garylai/birthday2.png</td><td>Happy 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/@garylai) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=garylai)_</sub> ###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes! |
| json metadata | {"image":["https://steemitboard.com/img/notify.png"]} |
| Transaction Info | Block #40075307/Trx f51aaa82741b810df7f66eb74aca8433f391f8fb |
View Raw JSON Data
{
"trx_id": "f51aaa82741b810df7f66eb74aca8433f391f8fb",
"block": 40075307,
"trx_in_block": 7,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-01-19T21:21:12",
"op": [
"comment",
{
"parent_author": "garylai",
"parent_permlink": "introduction-to-blockchain-security",
"author": "steemitboard",
"permlink": "steemitboard-notify-garylai-20200119t212112000z",
"title": "",
"body": "Congratulations @garylai! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@garylai/birthday2.png</td><td>Happy 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/@garylai) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=garylai)_</sub>\n\n\n###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!",
"json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}"
}
]
}2019/05/12 15:01:42
2019/05/12 15:01:42
| delegator | steem |
| delegatee | garylai |
| vesting shares | 8951.005633 VESTS |
| Transaction Info | Block #32845637/Trx 6241ca0fc671040be2b5a6828472c26a96e19bea |
View Raw JSON Data
{
"trx_id": "6241ca0fc671040be2b5a6828472c26a96e19bea",
"block": 32845637,
"trx_in_block": 40,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-12T15:01:42",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "garylai",
"vesting_shares": "8951.005633 VESTS"
}
]
}2019/01/19 22:06:24
2019/01/19 22:06:24
| parent author | garylai |
| parent permlink | introduction-to-blockchain-security |
| author | steemitboard |
| permlink | steemitboard-notify-garylai-20190119t220623000z |
| title | |
| body | Congratulations @garylai! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@garylai/birthday1.png</td><td><p>Happy Birthday! - You are on the Steem blockchain for 1 year!<p></td></tr></table> <sub>_[Click here to view your Board](https://steemitboard.com/@garylai)_</sub> > Support [SteemitBoard's project](https://steemit.com/@steemitboard)! **[Vote for its witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1)** and **get one more award**! |
| json metadata | {"image":["https://steemitboard.com/img/notify.png"]} |
| Transaction Info | Block #29603581/Trx 49eb7d62d24553478ebbb228ac5edcee5e2b1bf1 |
View Raw JSON Data
{
"trx_id": "49eb7d62d24553478ebbb228ac5edcee5e2b1bf1",
"block": 29603581,
"trx_in_block": 5,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-01-19T22:06:24",
"op": [
"comment",
{
"parent_author": "garylai",
"parent_permlink": "introduction-to-blockchain-security",
"author": "steemitboard",
"permlink": "steemitboard-notify-garylai-20190119t220623000z",
"title": "",
"body": "Congratulations @garylai! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@garylai/birthday1.png</td><td><p>Happy Birthday! - You are on the Steem blockchain for 1 year!<p></td></tr></table>\n\n<sub>_[Click here to view your Board](https://steemitboard.com/@garylai)_</sub>\n\n\n> Support [SteemitBoard's project](https://steemit.com/@steemitboard)! **[Vote for its witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1)** and **get one more award**!",
"json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}"
}
]
}2018/05/16 20:18:21
2018/05/16 20:18:21
| delegator | steem |
| delegatee | garylai |
| vesting shares | 9150.558068 VESTS |
| Transaction Info | Block #22489868/Trx 3ec041fa30d18c423a83028851c1ae9985ecf344 |
View Raw JSON Data
{
"trx_id": "3ec041fa30d18c423a83028851c1ae9985ecf344",
"block": 22489868,
"trx_in_block": 12,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-05-16T20:18:21",
"op": [
"delegate_vesting_shares",
{
"delegator": "steem",
"delegatee": "garylai",
"vesting_shares": "9150.558068 VESTS"
}
]
}2018/01/22 11:49:45
2018/01/22 11:49:45
| parent author | garylai |
| parent permlink | introduction-to-blockchain-security |
| author | steemitboard |
| permlink | steemitboard-notify-garylai-20180122t114947000z |
| title | |
| body | Congratulations @garylai! You have completed some achievement on Steemit and have been rewarded with new badge(s) : [](http://steemitboard.com/@garylai) You got a First Vote Click on any badge to view your own Board of Honor on SteemitBoard. For more information about SteemitBoard, click [here](https://steemit.com/@steemitboard) If you no longer want to receive notifications, reply to this comment with the word `STOP` > By upvoting this notification, you can help all Steemit users. Learn how [here](https://steemit.com/steemitboard/@steemitboard/http-i-cubeupload-com-7ciqeo-png)! |
| json metadata | {"image":["https://steemitboard.com/img/notifications.png"]} |
| Transaction Info | Block #19199948/Trx 1a2e2a738a7dc51dba5e8a2731a3d38ea56c7148 |
View Raw JSON Data
{
"trx_id": "1a2e2a738a7dc51dba5e8a2731a3d38ea56c7148",
"block": 19199948,
"trx_in_block": 52,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-01-22T11:49:45",
"op": [
"comment",
{
"parent_author": "garylai",
"parent_permlink": "introduction-to-blockchain-security",
"author": "steemitboard",
"permlink": "steemitboard-notify-garylai-20180122t114947000z",
"title": "",
"body": "Congratulations @garylai! You have completed some achievement on Steemit and have been rewarded with new badge(s) :\n\n[](http://steemitboard.com/@garylai) You got a First Vote\n\nClick on any badge to view your own Board of Honor on SteemitBoard.\nFor more information about SteemitBoard, click [here](https://steemit.com/@steemitboard)\n\nIf you no longer want to receive notifications, reply to this comment with the word `STOP`\n\n> By upvoting this notification, you can help all Steemit users. Learn how [here](https://steemit.com/steemitboard/@steemitboard/http-i-cubeupload-com-7ciqeo-png)!",
"json_metadata": "{\"image\":[\"https://steemitboard.com/img/notifications.png\"]}"
}
]
}chuquiupvoted (100.00%) @garylai / introduction-to-blockchain-security2018/01/21 13:44:48
chuquiupvoted (100.00%) @garylai / introduction-to-blockchain-security
2018/01/21 13:44:48
| voter | chuqui |
| author | garylai |
| permlink | introduction-to-blockchain-security |
| weight | 10000 (100.00%) |
| Transaction Info | Block #19173456/Trx 3e822197acc5ac217acdc09e3a9d16940e4b3377 |
View Raw JSON Data
{
"trx_id": "3e822197acc5ac217acdc09e3a9d16940e4b3377",
"block": 19173456,
"trx_in_block": 42,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-01-21T13:44:48",
"op": [
"vote",
{
"voter": "chuqui",
"author": "garylai",
"permlink": "introduction-to-blockchain-security",
"weight": 10000
}
]
}2018/01/21 13:44:39
2018/01/21 13:44:39
| parent author | garylai |
| parent permlink | introduction-to-blockchain-security |
| author | chuqui |
| permlink | re-garylai-introduction-to-blockchain-security-20180121t134438768z |
| title | |
| body | Excelent post! thanks! |
| json metadata | {"tags":["security"],"app":"steemit/0.1"} |
| Transaction Info | Block #19173453/Trx 159db01b69957f496befdad6895e0025b3eee8d5 |
View Raw JSON Data
{
"trx_id": "159db01b69957f496befdad6895e0025b3eee8d5",
"block": 19173453,
"trx_in_block": 33,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-01-21T13:44:39",
"op": [
"comment",
{
"parent_author": "garylai",
"parent_permlink": "introduction-to-blockchain-security",
"author": "chuqui",
"permlink": "re-garylai-introduction-to-blockchain-security-20180121t134438768z",
"title": "",
"body": "Excelent post! thanks!",
"json_metadata": "{\"tags\":[\"security\"],\"app\":\"steemit/0.1\"}"
}
]
}ubgupvoted (1.00%) @garylai / introduction-to-blockchain-security2018/01/19 20:32:57
ubgupvoted (1.00%) @garylai / introduction-to-blockchain-security
2018/01/19 20:32:57
| voter | ubg |
| author | garylai |
| permlink | introduction-to-blockchain-security |
| weight | 100 (1.00%) |
| Transaction Info | Block #19124055/Trx ff1eb84dc0fc5962a132605691cf48f9b24ea43e |
View Raw JSON Data
{
"trx_id": "ff1eb84dc0fc5962a132605691cf48f9b24ea43e",
"block": 19124055,
"trx_in_block": 30,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-01-19T20:32:57",
"op": [
"vote",
{
"voter": "ubg",
"author": "garylai",
"permlink": "introduction-to-blockchain-security",
"weight": 100
}
]
}garylaiupvoted (100.00%) @garylai / introduction-to-blockchain-security2018/01/19 20:20:42
garylaiupvoted (100.00%) @garylai / introduction-to-blockchain-security
2018/01/19 20:20:42
| voter | garylai |
| author | garylai |
| permlink | introduction-to-blockchain-security |
| weight | 10000 (100.00%) |
| Transaction Info | Block #19123810/Trx 6162deb380e61fd1efe7201957f7ad71459e6b45 |
View Raw JSON Data
{
"trx_id": "6162deb380e61fd1efe7201957f7ad71459e6b45",
"block": 19123810,
"trx_in_block": 5,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-01-19T20:20:42",
"op": [
"vote",
{
"voter": "garylai",
"author": "garylai",
"permlink": "introduction-to-blockchain-security",
"weight": 10000
}
]
}garylaipublished a new post: introduction-to-blockchain-security2018/01/19 20:19:06
garylaipublished a new post: introduction-to-blockchain-security
2018/01/19 20:19:06
| parent author | |
| parent permlink | security |
| author | garylai |
| permlink | introduction-to-blockchain-security |
| title | Introduction to Blockchain Security |
| body | @@ -3552,24 +3552,26 @@ er car. %0A%0A%0A%0A +%0A%0A **Type 2: Th @@ -4534,24 +4534,26 @@ kchain. %0A%0A%0A%0A +%0A%0A **Type 3: Th @@ -6710,16 +6710,18 @@ tem.%0A%0A%0A%0A +%0A%0A **Conclu |
| json metadata | {"tags":["security","bitcoin","blockchain","double-spending","attack"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #19123778/Trx 08d3ea9119d51be7c8dc446b603beafb8990307d |
View Raw JSON Data
{
"trx_id": "08d3ea9119d51be7c8dc446b603beafb8990307d",
"block": 19123778,
"trx_in_block": 4,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-01-19T20:19:06",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "security",
"author": "garylai",
"permlink": "introduction-to-blockchain-security",
"title": "Introduction to Blockchain Security",
"body": "@@ -3552,24 +3552,26 @@\n er car. %0A%0A%0A%0A\n+%0A%0A\n **Type 2: Th\n@@ -4534,24 +4534,26 @@\n kchain. %0A%0A%0A%0A\n+%0A%0A\n **Type 3: Th\n@@ -6710,16 +6710,18 @@\n tem.%0A%0A%0A%0A\n+%0A%0A\n **Conclu\n",
"json_metadata": "{\"tags\":[\"security\",\"bitcoin\",\"blockchain\",\"double-spending\",\"attack\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}garylaipublished a new post: introduction-to-blockchain-security2018/01/19 20:18:27
garylaipublished a new post: introduction-to-blockchain-security
2018/01/19 20:18:27
| parent author | |
| parent permlink | security |
| author | garylai |
| permlink | introduction-to-blockchain-security |
| title | Introduction to Blockchain Security |
| body | @@ -3290,17 +3290,16 @@ tion:**%0A -%0A To preve @@ -3551,24 +3551,25 @@ her car. %0A%0A%0A +%0A **Type 2: Th @@ -4446,17 +4446,16 @@ tion:**%0A -%0A Same as @@ -4531,24 +4531,25 @@ ckchain. %0A%0A%0A +%0A **Type 3: Th @@ -6443,17 +6443,16 @@ tion:**%0A -%0A In the c |
| json metadata | {"tags":["security","bitcoin","blockchain","double-spending","attack"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #19123765/Trx 2fe8f2b2d810d9c8027e8a3c9ab56759b3f459bd |
View Raw JSON Data
{
"trx_id": "2fe8f2b2d810d9c8027e8a3c9ab56759b3f459bd",
"block": 19123765,
"trx_in_block": 30,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-01-19T20:18:27",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "security",
"author": "garylai",
"permlink": "introduction-to-blockchain-security",
"title": "Introduction to Blockchain Security",
"body": "@@ -3290,17 +3290,16 @@\n tion:**%0A\n-%0A\n To preve\n@@ -3551,24 +3551,25 @@\n her car. %0A%0A%0A\n+%0A\n **Type 2: Th\n@@ -4446,17 +4446,16 @@\n tion:**%0A\n-%0A\n Same as \n@@ -4531,24 +4531,25 @@\n ckchain. %0A%0A%0A\n+%0A\n **Type 3: Th\n@@ -6443,17 +6443,16 @@\n tion:**%0A\n-%0A\n In the c\n",
"json_metadata": "{\"tags\":[\"security\",\"bitcoin\",\"blockchain\",\"double-spending\",\"attack\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}garylaipublished a new post: introduction-to-blockchain-security2018/01/19 20:17:30
garylaipublished a new post: introduction-to-blockchain-security
2018/01/19 20:17:30
| parent author | |
| parent permlink | security |
| author | garylai |
| permlink | introduction-to-blockchain-security |
| title | Introduction to Blockchain Security |
| body | @@ -1559,18 +1559,17 @@ blem. %0A%0A -# +%0A **Type 1 @@ -3552,25 +3552,24 @@ her car. %0A%0A%0A -# **Type 2: Th @@ -3584,16 +3584,16 @@ ttack**%0A + %0ARace @@ -4536,17 +4536,16 @@ ain. %0A%0A%0A -# **Type 3 @@ -4585,16 +4585,16 @@ tack)**%0A + %0AThis is @@ -6711,10 +6711,8 @@ %0A%0A%0A%0A -# **Co |
| json metadata | {"tags":["security","bitcoin","blockchain","double-spending","attack"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #19123746/Trx 356bbab70d8b4440d220efea31a3b469a4764996 |
View Raw JSON Data
{
"trx_id": "356bbab70d8b4440d220efea31a3b469a4764996",
"block": 19123746,
"trx_in_block": 8,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-01-19T20:17:30",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "security",
"author": "garylai",
"permlink": "introduction-to-blockchain-security",
"title": "Introduction to Blockchain Security",
"body": "@@ -1559,18 +1559,17 @@\n blem. %0A%0A\n-# \n+%0A\n **Type 1\n@@ -3552,25 +3552,24 @@\n her car. %0A%0A%0A\n-#\n **Type 2: Th\n@@ -3584,16 +3584,16 @@\n ttack**%0A\n+\n %0ARace \n@@ -4536,17 +4536,16 @@\n ain. %0A%0A%0A\n-#\n **Type 3\n@@ -4585,16 +4585,16 @@\n tack)**%0A\n+\n %0AThis is\n@@ -6711,10 +6711,8 @@\n %0A%0A%0A%0A\n-# \n **Co\n",
"json_metadata": "{\"tags\":[\"security\",\"bitcoin\",\"blockchain\",\"double-spending\",\"attack\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}garylaipublished a new post: introduction-to-blockchain-security2018/01/19 20:16:33
garylaipublished a new post: introduction-to-blockchain-security
2018/01/19 20:16:33
| parent author | |
| parent permlink | security |
| author | garylai |
| permlink | introduction-to-blockchain-security |
| title | Introduction to Blockchain Security |
| body | @@ -343,16 +343,18 @@ called +** %E2%80%9Cthe dou @@ -375,16 +375,18 @@ roblem.%22 +** %0A%0AThere @@ -677,16 +677,18 @@ down to +** altering @@ -742,16 +742,18 @@ ockchain +** :%0A %0AT @@ -1559,16 +1559,20 @@ blem. %0A%0A +# ** Type 1: @@ -1588,16 +1588,18 @@ y Attack +** %0A%0AThe Fi @@ -3273,24 +3273,26 @@ network. %0A%0A +** Solution:%0A%0AT @@ -3288,16 +3288,18 @@ olution: +** %0A%0ATo pre @@ -3553,24 +3553,27 @@ her car. %0A%0A%0A +#** Type 2: The @@ -3583,16 +3583,18 @@ e Attack +** %0A %0ARace @@ -4434,24 +4434,29 @@ irst. %0A%0A +** Solution +:** %0A%0ASame a @@ -4538,16 +4538,19 @@ ain. %0A%0A%0A +#** Type 3: @@ -4585,16 +4585,18 @@ Attack) +** %0A%0AThis i @@ -6432,24 +6432,29 @@ 0.1%25. %0A%0A +** Solution +:** %0A%0AIn the @@ -6710,16 +6710,20 @@ tem.%0A%0A%0A%0A +# ** Conclusi @@ -6724,16 +6724,18 @@ nclusion +** %0A%0AThe fa |
| json metadata | {"tags":["security","bitcoin","blockchain","double-spending","attack"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #19123727/Trx 50b37139a9880f13ca7f2b795059b685ac7f45c8 |
View Raw JSON Data
{
"trx_id": "50b37139a9880f13ca7f2b795059b685ac7f45c8",
"block": 19123727,
"trx_in_block": 3,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-01-19T20:16:33",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "security",
"author": "garylai",
"permlink": "introduction-to-blockchain-security",
"title": "Introduction to Blockchain Security",
"body": "@@ -343,16 +343,18 @@\n called \n+**\n %E2%80%9Cthe dou\n@@ -375,16 +375,18 @@\n roblem.%22\n+**\n %0A%0AThere \n@@ -677,16 +677,18 @@\n down to \n+**\n altering\n@@ -742,16 +742,18 @@\n ockchain\n+**\n :%0A %0AT\n@@ -1559,16 +1559,20 @@\n blem. %0A%0A\n+# **\n Type 1: \n@@ -1588,16 +1588,18 @@\n y Attack\n+**\n %0A%0AThe Fi\n@@ -3273,24 +3273,26 @@\n network. %0A%0A\n+**\n Solution:%0A%0AT\n@@ -3288,16 +3288,18 @@\n olution:\n+**\n %0A%0ATo pre\n@@ -3553,24 +3553,27 @@\n her car. %0A%0A%0A\n+#**\n Type 2: The \n@@ -3583,16 +3583,18 @@\n e Attack\n+**\n %0A %0ARace\n@@ -4434,24 +4434,29 @@\n irst. %0A%0A\n+**\n Solution\n+:**\n %0A%0ASame a\n@@ -4538,16 +4538,19 @@\n ain. %0A%0A%0A\n+#**\n Type 3: \n@@ -4585,16 +4585,18 @@\n Attack)\n+**\n %0A%0AThis i\n@@ -6432,24 +6432,29 @@\n 0.1%25. %0A%0A\n+**\n Solution\n+:**\n %0A%0AIn the\n@@ -6710,16 +6710,20 @@\n tem.%0A%0A%0A%0A\n+# **\n Conclusi\n@@ -6724,16 +6724,18 @@\n nclusion\n+**\n %0A%0AThe fa\n",
"json_metadata": "{\"tags\":[\"security\",\"bitcoin\",\"blockchain\",\"double-spending\",\"attack\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}garylaipublished a new post: introduction-to-blockchain-security2018/01/19 20:13:39
garylaipublished a new post: introduction-to-blockchain-security
2018/01/19 20:13:39
| parent author | |
| parent permlink | security |
| author | garylai |
| permlink | introduction-to-blockchain-security |
| title | Introduction to Blockchain Security |
| body | @@ -375,20 +375,16 @@ blem.%22%0A%0A - There is @@ -740,19 +740,15 @@ hain -. +: %0A %0A - The @@ -1343,21 +1343,16 @@ oduct.%0A%0A - Above is @@ -1578,20 +1578,16 @@ Attack%0A%0A - The Finn @@ -1791,20 +1791,16 @@ mean?%0A%0A - Let%E2%80%99s sa @@ -1846,20 +1846,16 @@ allet.%0A%0A - For exam @@ -2873,20 +2873,16 @@ ine. %0A%0A - So, on t @@ -3263,25 +3263,25 @@ work. %0A%0A -%0A Solution +: %0A%0ATo pre @@ -3566,20 +3566,16 @@ tack%0A %0A - Race att @@ -3765,20 +3765,16 @@ mple. %0A%0A - Joe make @@ -4556,20 +4556,16 @@ ttack)%0A%0A - This is @@ -4896,13 +4896,8 @@ n.%0A%0A - Let%E2%80%99 @@ -5130,20 +5130,16 @@ ocks. %0A%0A - Meanwhil @@ -5900,20 +5900,16 @@ ople. %0A%0A - Now, one |
| json metadata | {"tags":["security","bitcoin","blockchain","double-spending","attack"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #19123669/Trx acca824221273d5c1f39973cd6420d09d30604f7 |
View Raw JSON Data
{
"trx_id": "acca824221273d5c1f39973cd6420d09d30604f7",
"block": 19123669,
"trx_in_block": 3,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-01-19T20:13:39",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "security",
"author": "garylai",
"permlink": "introduction-to-blockchain-security",
"title": "Introduction to Blockchain Security",
"body": "@@ -375,20 +375,16 @@\n blem.%22%0A%0A\n- \n There is\n@@ -740,19 +740,15 @@\n hain\n-.\n+:\n %0A %0A\n- \n The \n@@ -1343,21 +1343,16 @@\n oduct.%0A%0A\n- \n Above is\n@@ -1578,20 +1578,16 @@\n Attack%0A%0A\n- \n The Finn\n@@ -1791,20 +1791,16 @@\n mean?%0A%0A\n- \n Let%E2%80%99s sa\n@@ -1846,20 +1846,16 @@\n allet.%0A%0A\n- \n For exam\n@@ -2873,20 +2873,16 @@\n ine. %0A%0A\n- \n So, on t\n@@ -3263,25 +3263,25 @@\n work. %0A%0A\n-%0A\n Solution\n+:\n %0A%0ATo pre\n@@ -3566,20 +3566,16 @@\n tack%0A %0A\n- \n Race att\n@@ -3765,20 +3765,16 @@\n mple. %0A%0A\n- \n Joe make\n@@ -4556,20 +4556,16 @@\n ttack)%0A%0A\n- \n This is \n@@ -4896,13 +4896,8 @@\n n.%0A%0A\n- \n Let%E2%80%99\n@@ -5130,20 +5130,16 @@\n ocks. %0A%0A\n- \n Meanwhil\n@@ -5900,20 +5900,16 @@\n ople. %0A%0A\n- \n Now, one\n",
"json_metadata": "{\"tags\":[\"security\",\"bitcoin\",\"blockchain\",\"double-spending\",\"attack\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}garylaipublished a new post: introduction-to-blockchain-security2018/01/19 20:08:57
garylaipublished a new post: introduction-to-blockchain-security
2018/01/19 20:08:57
| parent author | |
| parent permlink | security |
| author | garylai |
| permlink | introduction-to-blockchain-security |
| title | Introduction to Blockchain Security |
| body | @@ -740,17 +740,17 @@ ockchain -: +. %0A %0A @@ -3301,17 +3301,16 @@ Solution -: %0A%0ATo pre @@ -4456,18 +4456,16 @@ Solution -: %0A%0ASame a @@ -6457,17 +6457,16 @@ . %0A%0A + Solution -: %0A%0AIn |
| json metadata | {"tags":["security","bitcoin","blockchain","double-spending","attack"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #19123575/Trx 1226a6e62e480b9916941df2878f00acba047210 |
View Raw JSON Data
{
"trx_id": "1226a6e62e480b9916941df2878f00acba047210",
"block": 19123575,
"trx_in_block": 31,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-01-19T20:08:57",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "security",
"author": "garylai",
"permlink": "introduction-to-blockchain-security",
"title": "Introduction to Blockchain Security",
"body": "@@ -740,17 +740,17 @@\n ockchain\n-:\n+.\n %0A %0A \n@@ -3301,17 +3301,16 @@\n Solution\n-:\n %0A%0ATo pre\n@@ -4456,18 +4456,16 @@\n Solution\n-: \n %0A%0ASame a\n@@ -6457,17 +6457,16 @@\n . %0A%0A\n+\n Solution\n-:\n %0A%0AIn\n",
"json_metadata": "{\"tags\":[\"security\",\"bitcoin\",\"blockchain\",\"double-spending\",\"attack\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}garylaipublished a new post: introduction-to-blockchain-security2018/01/19 20:06:54
garylaipublished a new post: introduction-to-blockchain-security
2018/01/19 20:06:54
| parent author | |
| parent permlink | security |
| author | garylai |
| permlink | introduction-to-blockchain-security |
| title | Introduction to Blockchain Security |
| body | When it comes to cryptocurrency, trust is everything. If people don’t believe that a cryptocurrency is secure and trustworthy, that cryptocurrency will never have much value. Before investing in any cryptocurrency, one always wants to know whether it is secure. The key to understanding blockchain security is to understand a group of problem called “the double-spending problem." There is a lot of confusion around the double-spending problems regarding what it is, how it is carried out and how to address them. The main reason for this confusion is that there are more than one type of double-spending problems. But essentially, all the double-spending problems boils down to altering the history of transactions recorded on the blockchain: The attacker buys something from a vendor in a transaction with some bitcoins, while creating an alternative transaction sending the same bitcoins back to himself. Then the attacker manages to get the second transaction onto the blockchain before the first transaction. Since the blockchain only allows bitcoins to be spent once, only the second transaction will be recorded on the blockchain, and the first transaction will be rejected. Hence, the vendor will ship his product to the attacker, without having this transaction recorded on the blockchain, thus not receiving any pay for his product. Above is the gist to the class of double-spending problems. If you didn’t fully understand it, don’t panic, I will now go into a few examples explaining different variations of the double-spending problem. Type 1: The Finney Attack The Finney attack involves adding to the blockchain a transaction that credits oneself while spending the double-spending the same credits in another transaction, which will later be invalidated. What do I mean? Let’s say attacker Joe has 50 bitcoins in his wallet. For example, Joe first create a block on his local computer, and in this block, he includes a transaction that sends himself 20 coins, let’s call this transaction A. Now remember, in order to get this block added to the blockchain on the network, he has to include a proof-of-work. So he starts mining for the proof-of-work right away. As soon as he has the block ready to add to broadcast to the network, he buys a house from Joanna using the same 20 coins as before, let’s call this transaction B. Now this is the key part: While the unsuspecting Joanna transfers the ownership of her house to Joe immediately, this transaction B will not be recorded on the blockchain network. What actually happens is that the blockchain will first add Joe’s block which only includes transaction A, in which Joe sends himself 20 coins, then in the next few blocks or so, the blockchain see transaction B, which tries to transfer the same 20 coins to Joanna, the blockchain will reject transaction B because it is later on the timeline. So, on the one hand, Joe will end up with the same amount of money he started with, 50 coins, because he took 20 coins out of his wallet to pay himself 20 coins, except now he is the legal owner of Joanna’s car. On the other hand, Joanna is no longer the legal owner of her car and she never gets the 20 coins as compensation because transaction B was rejected by the blockchain network. Solution: To prevent this tragedy, Joanna should wait until the transaction B is confirmed by the blockchain network before transferring the ownership of her car; if transaction B is invalidated by the blockchain network, she should not transfer the ownership of her car. Type 2: The Race Attack Race attack is similar, but it involves sending two versions of transaction in rapid succession in the network rather than mining one’s own block. Let’s continuing with the Joe and Joanna example. Joe makes sure that Joanna sees only transaction B (in which Joanna gets paid). He accomplishes this mainly by surrounding Joanna’s node with his colluding nodes. If Joanna is not careful, she will transfer the ownership of her car right away. Meanwhile, Joe sends to the rest of the network transaction A (in which he sends coins to himself). When the blockchain peers receive the two transactions that conflict with each other, they will only validate the one that reaches them first. Therefore, if transaction A manages to reach the majority of the network first, it is much more likely to be included in the blockchain and confirmed first. Solution: Same as above. Joanna should wait until transaction B is validated by the blockchain. Type 3: The Majority Attack (AKA 51% Attack) This is perhaps the most famous and powerful form of attack on blockchain because it has a 100% success rate. If a miner possesses more than 51% of the total computational power in the blockchain network, he is able to mine faster than everyone else and he can create an alternative chain of blocks to be accepted into the blockchain. Let’s say at the beginning of Joe’s attack, the blockchain is at block #5000. Joe gets to work and starts to mine block #5001, block #5002, block #5003 in which he pays himself a certain amount of coins without publishing these blocks. Meanwhile, he buys all sorts of things from other people with the same coins. He buys a private jet, a Catamaran, a car, and all these transactions are recorded on the public block #5001, #5002, #5003. (of course he actually need the coins to be able to complete this step, but at the end he will not lose any of his coins) This doesn’t matter to Joe. He keeps mining until his chain is longer than the current public chain. So if currently the public blockchain is at #5005, and Joe finally got a chain that’s from #5001 to #5006 (6 blocks long), he can release this chain onto the blockchain network. The blockchain network will replace the original #5001 to #5005 and add #5006. Now in this new version of the blockchain, Joe has not paid anything to other people. Now, one doesn’t necessarily need 51% of computational power in the network to carry out a similar attack. In fact, 51% attack is a special case of the more general “alternative history attack” class operating on the same principles. The success rate of carrying out the alternative history attack decreases when you have less computational power. If the attacker only controls 10% of the power and the vendor waits 6 confirmations before shipping the product, his success rate is on around 0.1%. Solution: In the case of 51% attack, there’s pretty much nothing one can do on the individual level. However, such an attack is unlikely because if someone controls that much computational power, he can profit more from actually mining rather than attacking the system. Conclusion The farther into the blockchain, the harder it gets for someone carry out a alternative history attack. Given that the attacker has to race against the other miners to create a longer chain of blocks, if he has less than 51% of computational power in the network, the more blocks are added to the public blockchain after the initial transaction, the lower the probability of successfully creating a longer chain of blocks privately. Many blocks later, the probability of creating an alternative history of blockchain approaches zero. Therefore, if you are a merchant, wait a few blocks before shipping out your goods! |
| json metadata | {"tags":["security","bitcoin","blockchain","double-spending","attack"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #19123534/Trx 31fafcab0630aa759a1495b52c80dedf3fa17ec7 |
View Raw JSON Data
{
"trx_id": "31fafcab0630aa759a1495b52c80dedf3fa17ec7",
"block": 19123534,
"trx_in_block": 3,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-01-19T20:06:54",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "security",
"author": "garylai",
"permlink": "introduction-to-blockchain-security",
"title": "Introduction to Blockchain Security",
"body": "When it comes to cryptocurrency, trust is everything. If people don’t believe that a cryptocurrency is secure and trustworthy, that cryptocurrency will never have much value. Before investing in any cryptocurrency, one always wants to know whether it is secure. The key to understanding blockchain security is to understand a group of problem called “the double-spending problem.\"\n\n There is a lot of confusion around the double-spending problems regarding what it is, how it is carried out and how to address them. The main reason for this confusion is that there are more than one type of double-spending problems. But essentially, all the double-spending problems boils down to altering the history of transactions recorded on the blockchain:\n \n The attacker buys something from a vendor in a transaction with some bitcoins, while creating an alternative transaction sending the same bitcoins back to himself. Then the attacker manages to get the second transaction onto the blockchain before the first transaction. Since the blockchain only allows bitcoins to be spent once, only the second transaction will be recorded on the blockchain, and the first transaction will be rejected. Hence, the vendor will ship his product to the attacker, without having this transaction recorded on the blockchain, thus not receiving any pay for his product.\n\n Above is the gist to the class of double-spending problems. If you didn’t fully understand it, don’t panic, I will now go into a few examples explaining different variations of the double-spending problem. \n\nType 1: The Finney Attack\n\n The Finney attack involves adding to the blockchain a transaction that credits oneself while spending the double-spending the same credits in another transaction, which will later be invalidated. What do I mean?\n\n Let’s say attacker Joe has 50 bitcoins in his wallet.\n\n For example, Joe first create a block on his local computer, and in this block, he includes a transaction that sends himself 20 coins, let’s call this transaction A. Now remember, in order to get this block added to the blockchain on the network, he has to include a proof-of-work. So he starts mining for the proof-of-work right away. As soon as he has the block ready to add to broadcast to the network, he buys a house from Joanna using the same 20 coins as before, let’s call this transaction B. Now this is the key part: While the unsuspecting Joanna transfers the ownership of her house to Joe immediately, this transaction B will not be recorded on the blockchain network. What actually happens is that the blockchain will first add Joe’s block which only includes transaction A, in which Joe sends himself 20 coins, then in the next few blocks or so, the blockchain see transaction B, which tries to transfer the same 20 coins to Joanna, the blockchain will reject transaction B because it is later on the timeline. \n\n So, on the one hand, Joe will end up with the same amount of money he started with, 50 coins, because he took 20 coins out of his wallet to pay himself 20 coins, except now he is the legal owner of Joanna’s car. On the other hand, Joanna is no longer the legal owner of her car and she never gets the 20 coins as compensation because transaction B was rejected by the blockchain network. \n\n\nSolution:\n\nTo prevent this tragedy, Joanna should wait until the transaction B is confirmed by the blockchain network before transferring the ownership of her car; if transaction B is invalidated by the blockchain network, she should not transfer the ownership of her car. \n\n\nType 2: The Race Attack\n \n Race attack is similar, but it involves sending two versions of transaction in rapid succession in the network rather than mining one’s own block. Let’s continuing with the Joe and Joanna example. \n\n Joe makes sure that Joanna sees only transaction B (in which Joanna gets paid). He accomplishes this mainly by surrounding Joanna’s node with his colluding nodes. If Joanna is not careful, she will transfer the ownership of her car right away. Meanwhile, Joe sends to the rest of the network transaction A (in which he sends coins to himself). When the blockchain peers receive the two transactions that conflict with each other, they will only validate the one that reaches them first. Therefore, if transaction A manages to reach the majority of the network first, it is much more likely to be included in the blockchain and confirmed first. \n\nSolution: \n\nSame as above. Joanna should wait until transaction B is validated by the blockchain. \n\n\nType 3: The Majority Attack (AKA 51% Attack)\n\n This is perhaps the most famous and powerful form of attack on blockchain because it has a 100% success rate. If a miner possesses more than 51% of the total computational power in the blockchain network, he is able to mine faster than everyone else and he can create an alternative chain of blocks to be accepted into the blockchain.\n\n Let’s say at the beginning of Joe’s attack, the blockchain is at block #5000. Joe gets to work and starts to mine block #5001, block #5002, block #5003 in which he pays himself a certain amount of coins without publishing these blocks. \n\n Meanwhile, he buys all sorts of things from other people with the same coins. He buys a private jet, a Catamaran, a car, and all these transactions are recorded on the public block #5001, #5002, #5003. (of course he actually need the coins to be able to complete this step, but at the end he will not lose any of his coins) This doesn’t matter to Joe. He keeps mining until his chain is longer than the current public chain. So if currently the public blockchain is at #5005, and Joe finally got a chain that’s from #5001 to #5006 (6 blocks long), he can release this chain onto the blockchain network. The blockchain network will replace the original #5001 to #5005 and add #5006. Now in this new version of the blockchain, Joe has not paid anything to other people. \n\n Now, one doesn’t necessarily need 51% of computational power in the network to carry out a similar attack. In fact, 51% attack is a special case of the more general “alternative history attack” class operating on the same principles. The success rate of carrying out the alternative history attack decreases when you have less computational power. If the attacker only controls 10% of the power and the vendor waits 6 confirmations before shipping the product, his success rate is on around 0.1%. \n\nSolution:\n\nIn the case of 51% attack, there’s pretty much nothing one can do on the individual level. However, such an attack is unlikely because if someone controls that much computational power, he can profit more from actually mining rather than attacking the system.\n\n\n\nConclusion\n\nThe farther into the blockchain, the harder it gets for someone carry out a alternative history attack. Given that the attacker has to race against the other miners to create a longer chain of blocks, if he has less than 51% of computational power in the network, the more blocks are added to the public blockchain after the initial transaction, the lower the probability of successfully creating a longer chain of blocks privately. Many blocks later, the probability of creating an alternative history of blockchain approaches zero. Therefore, if you are a merchant, wait a few blocks before shipping out your goods!",
"json_metadata": "{\"tags\":[\"security\",\"bitcoin\",\"blockchain\",\"double-spending\",\"attack\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}2018/01/19 19:59:18
2018/01/19 19:59:18
| fee | 0.500 STEEM |
| delegation | 29700.000000 VESTS |
| creator | steem |
| new account name | garylai |
| owner | {"weight_threshold":1,"account_auths":[],"key_auths":[["STM59HkyMqSRhTxnHut5roNRJCcb6k74S2DhugZQUTtRPuRPXU2gw",1]]} |
| active | {"weight_threshold":1,"account_auths":[],"key_auths":[["STM8MDLhS587pgo5NQ3hW9kX2Ag6fc7GLJLTaExtaHNWCSvVqcf8W",1]]} |
| posting | {"weight_threshold":1,"account_auths":[],"key_auths":[["STM5Lprc9kpvF9C61YXgLy87nXw2bna82nFb49v3YJdbmkeohd5qQ",1]]} |
| memo key | STM7oKbZQg97i9wFNtU45pxfFhR4SafRGNUQQEni9YLEiCqj7YrNb |
| json metadata | |
| extensions | [] |
| Transaction Info | Block #19123382/Trx 090c52d892805dea5a38eedda325bfd97203f28a |
View Raw JSON Data
{
"trx_id": "090c52d892805dea5a38eedda325bfd97203f28a",
"block": 19123382,
"trx_in_block": 23,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2018-01-19T19:59:18",
"op": [
"account_create_with_delegation",
{
"fee": "0.500 STEEM",
"delegation": "29700.000000 VESTS",
"creator": "steem",
"new_account_name": "garylai",
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM59HkyMqSRhTxnHut5roNRJCcb6k74S2DhugZQUTtRPuRPXU2gw",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM8MDLhS587pgo5NQ3hW9kX2Ag6fc7GLJLTaExtaHNWCSvVqcf8W",
1
]
]
},
"posting": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM5Lprc9kpvF9C61YXgLy87nXw2bna82nFb49v3YJdbmkeohd5qQ",
1
]
]
},
"memo_key": "STM7oKbZQg97i9wFNtU45pxfFhR4SafRGNUQQEni9YLEiCqj7YrNb",
"json_metadata": "",
"extensions": []
}
]
}Manabar
Voting Power100.00%
Downvote Power100.00%
Resource Credits100.00%
Reputation Progress0.00%
{
"voting_manabar": {
"current_mana": "8143659806",
"last_update_time": 1779064458
},
"downvote_manabar": {
"current_mana": 2035914951,
"last_update_time": 1779064458
},
"rc_account": {
"account": "garylai",
"rc_manabar": {
"current_mana": "10164408779",
"last_update_time": 1779064458
},
"max_rc_creation_adjustment": {
"amount": "2020748973",
"precision": 6,
"nai": "@@000000037"
},
"max_rc": "10164408779"
}
}Account Metadata
| POSTING JSON METADATA | |
| None | |
| JSON METADATA | |
| None |
{
"posting_json_metadata": {},
"json_metadata": {}
}Auth Keys
Owner
Single Signature
Public Keys
STM59HkyMqSRhTxnHut5roNRJCcb6k74S2DhugZQUTtRPuRPXU2gw1/1
Active
Single Signature
Public Keys
STM8MDLhS587pgo5NQ3hW9kX2Ag6fc7GLJLTaExtaHNWCSvVqcf8W1/1
Posting
Single Signature
Public Keys
STM5Lprc9kpvF9C61YXgLy87nXw2bna82nFb49v3YJdbmkeohd5qQ1/1
Memo
STM7oKbZQg97i9wFNtU45pxfFhR4SafRGNUQQEni9YLEiCqj7YrNb
{
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM59HkyMqSRhTxnHut5roNRJCcb6k74S2DhugZQUTtRPuRPXU2gw",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM8MDLhS587pgo5NQ3hW9kX2Ag6fc7GLJLTaExtaHNWCSvVqcf8W",
1
]
]
},
"posting": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM5Lprc9kpvF9C61YXgLy87nXw2bna82nFb49v3YJdbmkeohd5qQ",
1
]
]
},
"memo": "STM7oKbZQg97i9wFNtU45pxfFhR4SafRGNUQQEni9YLEiCqj7YrNb"
}Witness Votes
0 / 30
No active witness votes.
[]