Ecoer Logo
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 Deleg
+4.378SP

Detailed Balance

STEEM
balance
0.000STEEM
market_balance
0.000STEEM
savings_balance
0.000STEEM
reward_steem_balance
0.000STEEM
STEEM POWER
Own SP
0.629SP
Delegated Out
0.000SP
Delegation In
4.378SP
Effective Power
5.007SP
Reward SP (pending)
0.000SP
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": "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

namegarylai
id626066
rank312,050
reputation32520414
created2018-01-19T19:59:18
recovery_accountsteem
proxyNone
post_count1
comment_count0
lifetime_vote_count0
witnesses_voted_for0
last_post2018-01-19T20:06:54
last_root_post2018-01-19T20:06:54
last_vote_time2018-01-19T20:20:42
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_shares1023.640840 VESTS
delegated_vesting_shares0.000000 VESTS
received_vesting_shares7120.018966 VESTS
reward_vesting_balance0.000000 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
{
  "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

IncomingOutgoing
Empty
Empty
{
  "incoming": [],
  "outgoing": []
}
From Date
To Date
steemdelegated 4.378 SP to @garylai
2026/05/18 00:34:18
delegateegarylai
delegatorsteem
vesting shares7120.018966 VESTS
Transaction InfoBlock #106143829/Trx 940b29811efc7b46da5b09079005b5be548f3081
View Raw JSON Data
{
  "block": 106143829,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "garylai",
      "delegator": "steem",
      "vesting_shares": "7120.018966 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2026-05-18T00:34:18",
  "trx_id": "940b29811efc7b46da5b09079005b5be548f3081",
  "trx_in_block": 1,
  "virtual_op": 0
}
steemdelegated 2.710 SP to @garylai
2026/05/12 05:08:24
delegateegarylai
delegatorsteem
vesting shares4407.808561 VESTS
Transaction InfoBlock #105977267/Trx ce2f69f63ca06d14f3d6a78aa54f59a28602b7c2
View Raw JSON Data
{
  "block": 105977267,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "garylai",
      "delegator": "steem",
      "vesting_shares": "4407.808561 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2026-05-12T05:08:24",
  "trx_id": "ce2f69f63ca06d14f3d6a78aa54f59a28602b7c2",
  "trx_in_block": 0,
  "virtual_op": 0
}
steemdelegated 4.386 SP to @garylai
2026/04/25 23:54:45
delegateegarylai
delegatorsteem
vesting shares7132.534722 VESTS
Transaction InfoBlock #105511473/Trx fa3f57bad6ecd87be19a6c7dbf1a65d3b784690a
View Raw JSON Data
{
  "block": 105511473,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "garylai",
      "delegator": "steem",
      "vesting_shares": "7132.534722 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2026-04-25T23:54:45",
  "trx_id": "fa3f57bad6ecd87be19a6c7dbf1a65d3b784690a",
  "trx_in_block": 1,
  "virtual_op": 0
}
steemdelegated 2.736 SP to @garylai
2026/01/23 08:39:18
delegateegarylai
delegatorsteem
vesting shares4449.355380 VESTS
Transaction InfoBlock #102852833/Trx e0107d33b6e9847be8104bba778d4632077d68c1
View Raw JSON Data
{
  "block": 102852833,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "garylai",
      "delegator": "steem",
      "vesting_shares": "4449.355380 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2026-01-23T08:39:18",
  "trx_id": "e0107d33b6e9847be8104bba778d4632077d68c1",
  "trx_in_block": 6,
  "virtual_op": 0
}
steemdelegated 2.837 SP to @garylai
2024/12/17 03:57:57
delegateegarylai
delegatorsteem
vesting shares4613.574577 VESTS
Transaction InfoBlock #91299230/Trx 331c932c01089fac662617d1c1d202e0acc7b614
View Raw JSON Data
{
  "block": 91299230,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "garylai",
      "delegator": "steem",
      "vesting_shares": "4613.574577 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2024-12-17T03:57:57",
  "trx_id": "331c932c01089fac662617d1c1d202e0acc7b614",
  "trx_in_block": 1,
  "virtual_op": 0
}
steemdelegated 2.941 SP to @garylai
2023/11/13 19:40:57
delegateegarylai
delegatorsteem
vesting shares4782.708109 VESTS
Transaction InfoBlock #79853432/Trx a6eabedf8e65cf6f8e5b73a250d848ffc47d8f5e
View Raw JSON Data
{
  "block": 79853432,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "garylai",
      "delegator": "steem",
      "vesting_shares": "4782.708109 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2023-11-13T19:40:57",
  "trx_id": "a6eabedf8e65cf6f8e5b73a250d848ffc47d8f5e",
  "trx_in_block": 2,
  "virtual_op": 0
}
steemdelegated 4.747 SP to @garylai
2023/09/21 22:12:09
delegateegarylai
delegatorsteem
vesting shares7719.986895 VESTS
Transaction InfoBlock #78348273/Trx 0909f91fd0d682aafcf55b25cf44edba48034b02
View Raw JSON Data
{
  "block": 78348273,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "garylai",
      "delegator": "steem",
      "vesting_shares": "7719.986895 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2023-09-21T22:12:09",
  "trx_id": "0909f91fd0d682aafcf55b25cf44edba48034b02",
  "trx_in_block": 3,
  "virtual_op": 0
}
steemdelegated 4.883 SP to @garylai
2022/11/03 11:57:00
delegateegarylai
delegatorsteem
vesting shares7941.668333 VESTS
Transaction InfoBlock #69113556/Trx 7df8b025b999784209a9c5b286844261060baaad
View Raw JSON Data
{
  "block": 69113556,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "garylai",
      "delegator": "steem",
      "vesting_shares": "7941.668333 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-11-03T11:57:00",
  "trx_id": "7df8b025b999784209a9c5b286844261060baaad",
  "trx_in_block": 1,
  "virtual_op": 0
}
steemdelegated 5.019 SP to @garylai
2022/01/17 11:11:51
delegateegarylai
delegatorsteem
vesting shares8162.201564 VESTS
Transaction InfoBlock #60809701/Trx 5a84450b184480cd5952d64831f62e459cf5cbf5
View Raw JSON Data
{
  "block": 60809701,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "garylai",
      "delegator": "steem",
      "vesting_shares": "8162.201564 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2022-01-17T11:11:51",
  "trx_id": "5a84450b184480cd5952d64831f62e459cf5cbf5",
  "trx_in_block": 4,
  "virtual_op": 0
}
steemdelegated 5.132 SP to @garylai
2021/06/14 01:06:27
delegateegarylai
delegatorsteem
vesting shares8345.970222 VESTS
Transaction InfoBlock #54608076/Trx af18025f872fcc0f7a3fc89099fd0ac18e694b29
View Raw JSON Data
{
  "block": 54608076,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "garylai",
      "delegator": "steem",
      "vesting_shares": "8345.970222 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2021-06-14T01:06:27",
  "trx_id": "af18025f872fcc0f7a3fc89099fd0ac18e694b29",
  "trx_in_block": 3,
  "virtual_op": 0
}
steemdelegated 5.247 SP to @garylai
2020/12/11 11:24:39
delegateegarylai
delegatorsteem
vesting shares8533.392196 VESTS
Transaction InfoBlock #49355519/Trx c22d60479e0045bd4b13bf285e33b135b4c82c2d
View Raw JSON Data
{
  "block": 49355519,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "garylai",
      "delegator": "steem",
      "vesting_shares": "8533.392196 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-12-11T11:24:39",
  "trx_id": "c22d60479e0045bd4b13bf285e33b135b4c82c2d",
  "trx_in_block": 4,
  "virtual_op": 0
}
steemdelegated 1.176 SP to @garylai
2020/12/06 05:01:51
delegateegarylai
delegatorsteem
vesting shares1912.543513 VESTS
Transaction InfoBlock #49207080/Trx f100e539cde7c2a0706285e1280ec27b129dc07d
View Raw JSON Data
{
  "block": 49207080,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "garylai",
      "delegator": "steem",
      "vesting_shares": "1912.543513 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-12-06T05:01:51",
  "trx_id": "f100e539cde7c2a0706285e1280ec27b129dc07d",
  "trx_in_block": 0,
  "virtual_op": 0
}
steemdelegated 5.251 SP to @garylai
2020/12/05 15:02:51
delegateegarylai
delegatorsteem
vesting shares8539.600050 VESTS
Transaction InfoBlock #49190614/Trx 86af7c32f2aea74014599a07fab3e1f1a07157a1
View Raw JSON Data
{
  "block": 49190614,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "garylai",
      "delegator": "steem",
      "vesting_shares": "8539.600050 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-12-05T15:02:51",
  "trx_id": "86af7c32f2aea74014599a07fab3e1f1a07157a1",
  "trx_in_block": 2,
  "virtual_op": 0
}
steemdelegated 1.181 SP to @garylai
2020/11/02 16:14:39
delegateegarylai
delegatorsteem
vesting shares1920.017158 VESTS
Transaction InfoBlock #48258513/Trx d92c1d42f1e59302573010f692d5b9a3d2d1ba46
View Raw JSON Data
{
  "block": 48258513,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "garylai",
      "delegator": "steem",
      "vesting_shares": "1920.017158 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-11-02T16:14:39",
  "trx_id": "d92c1d42f1e59302573010f692d5b9a3d2d1ba46",
  "trx_in_block": 1,
  "virtual_op": 0
}
steemdelegated 5.375 SP to @garylai
2020/05/09 05:59:30
delegateegarylai
delegatorsteem
vesting shares8742.405409 VESTS
Transaction InfoBlock #43217331/Trx d76f212dd80a0759aa5fc78c8c2490bc22d878a9
View Raw JSON Data
{
  "block": 43217331,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "garylai",
      "delegator": "steem",
      "vesting_shares": "8742.405409 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-05-09T05:59:30",
  "trx_id": "d76f212dd80a0759aa5fc78c8c2490bc22d878a9",
  "trx_in_block": 0,
  "virtual_op": 0
}
steemdelegated 1.201 SP to @garylai
2020/05/08 09:38:30
delegateegarylai
delegatorsteem
vesting shares1953.311140 VESTS
Transaction InfoBlock #43193485/Trx fda27d597e13db709784260f2a9a9254a5264617
View Raw JSON Data
{
  "block": 43193485,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "garylai",
      "delegator": "steem",
      "vesting_shares": "1953.311140 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-05-08T09:38:30",
  "trx_id": "fda27d597e13db709784260f2a9a9254a5264617",
  "trx_in_block": 0,
  "virtual_op": 0
}
steemdelegated 5.383 SP to @garylai
2020/04/15 21:46:51
delegateegarylai
delegatorsteem
vesting shares8755.382828 VESTS
Transaction InfoBlock #42562754/Trx 64180bde561ae0277b4ecc62ae89ce275787a2f4
View Raw JSON Data
{
  "block": 42562754,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "garylai",
      "delegator": "steem",
      "vesting_shares": "8755.382828 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-04-15T21:46:51",
  "trx_id": "64180bde561ae0277b4ecc62ae89ce275787a2f4",
  "trx_in_block": 3,
  "virtual_op": 0
}
2020/01/19 21:21:12
authorsteemitboard
bodyCongratulations @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"]}
parent authorgarylai
parent permlinkintroduction-to-blockchain-security
permlinksteemitboard-notify-garylai-20200119t212112000z
title
Transaction InfoBlock #40075307/Trx f51aaa82741b810df7f66eb74aca8433f391f8fb
View Raw JSON Data
{
  "block": 40075307,
  "op": [
    "comment",
    {
      "author": "steemitboard",
      "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\"]}",
      "parent_author": "garylai",
      "parent_permlink": "introduction-to-blockchain-security",
      "permlink": "steemitboard-notify-garylai-20200119t212112000z",
      "title": ""
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2020-01-19T21:21:12",
  "trx_id": "f51aaa82741b810df7f66eb74aca8433f391f8fb",
  "trx_in_block": 7,
  "virtual_op": 0
}
steemdelegated 5.504 SP to @garylai
2019/05/12 15:01:42
delegateegarylai
delegatorsteem
vesting shares8951.005633 VESTS
Transaction InfoBlock #32845637/Trx 6241ca0fc671040be2b5a6828472c26a96e19bea
View Raw JSON Data
{
  "block": 32845637,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "garylai",
      "delegator": "steem",
      "vesting_shares": "8951.005633 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2019-05-12T15:01:42",
  "trx_id": "6241ca0fc671040be2b5a6828472c26a96e19bea",
  "trx_in_block": 40,
  "virtual_op": 0
}
2019/01/19 22:06:24
authorsteemitboard
bodyCongratulations @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"]}
parent authorgarylai
parent permlinkintroduction-to-blockchain-security
permlinksteemitboard-notify-garylai-20190119t220623000z
title
Transaction InfoBlock #29603581/Trx 49eb7d62d24553478ebbb228ac5edcee5e2b1bf1
View Raw JSON Data
{
  "block": 29603581,
  "op": [
    "comment",
    {
      "author": "steemitboard",
      "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\"]}",
      "parent_author": "garylai",
      "parent_permlink": "introduction-to-blockchain-security",
      "permlink": "steemitboard-notify-garylai-20190119t220623000z",
      "title": ""
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2019-01-19T22:06:24",
  "trx_id": "49eb7d62d24553478ebbb228ac5edcee5e2b1bf1",
  "trx_in_block": 5,
  "virtual_op": 0
}
steemdelegated 5.626 SP to @garylai
2018/05/16 20:18:21
delegateegarylai
delegatorsteem
vesting shares9150.558068 VESTS
Transaction InfoBlock #22489868/Trx 3ec041fa30d18c423a83028851c1ae9985ecf344
View Raw JSON Data
{
  "block": 22489868,
  "op": [
    "delegate_vesting_shares",
    {
      "delegatee": "garylai",
      "delegator": "steem",
      "vesting_shares": "9150.558068 VESTS"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-05-16T20:18:21",
  "trx_id": "3ec041fa30d18c423a83028851c1ae9985ecf344",
  "trx_in_block": 12,
  "virtual_op": 0
}
2018/01/22 11:49:45
authorsteemitboard
bodyCongratulations @garylai! You have completed some achievement on Steemit and have been rewarded with new badge(s) : [![](https://steemitimages.com/70x80/http://steemitboard.com/notifications/firstvoted.png)](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"]}
parent authorgarylai
parent permlinkintroduction-to-blockchain-security
permlinksteemitboard-notify-garylai-20180122t114947000z
title
Transaction InfoBlock #19199948/Trx 1a2e2a738a7dc51dba5e8a2731a3d38ea56c7148
View Raw JSON Data
{
  "block": 19199948,
  "op": [
    "comment",
    {
      "author": "steemitboard",
      "body": "Congratulations @garylai! You have completed some achievement on Steemit and have been rewarded with new badge(s) :\n\n[![](https://steemitimages.com/70x80/http://steemitboard.com/notifications/firstvoted.png)](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\"]}",
      "parent_author": "garylai",
      "parent_permlink": "introduction-to-blockchain-security",
      "permlink": "steemitboard-notify-garylai-20180122t114947000z",
      "title": ""
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-01-22T11:49:45",
  "trx_id": "1a2e2a738a7dc51dba5e8a2731a3d38ea56c7148",
  "trx_in_block": 52,
  "virtual_op": 0
}
2018/01/21 13:44:48
authorgarylai
permlinkintroduction-to-blockchain-security
voterchuqui
weight10000 (100.00%)
Transaction InfoBlock #19173456/Trx 3e822197acc5ac217acdc09e3a9d16940e4b3377
View Raw JSON Data
{
  "block": 19173456,
  "op": [
    "vote",
    {
      "author": "garylai",
      "permlink": "introduction-to-blockchain-security",
      "voter": "chuqui",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-01-21T13:44:48",
  "trx_id": "3e822197acc5ac217acdc09e3a9d16940e4b3377",
  "trx_in_block": 42,
  "virtual_op": 0
}
2018/01/21 13:44:39
authorchuqui
bodyExcelent post! thanks!
json metadata{"tags":["security"],"app":"steemit/0.1"}
parent authorgarylai
parent permlinkintroduction-to-blockchain-security
permlinkre-garylai-introduction-to-blockchain-security-20180121t134438768z
title
Transaction InfoBlock #19173453/Trx 159db01b69957f496befdad6895e0025b3eee8d5
View Raw JSON Data
{
  "block": 19173453,
  "op": [
    "comment",
    {
      "author": "chuqui",
      "body": "Excelent post! thanks!",
      "json_metadata": "{\"tags\":[\"security\"],\"app\":\"steemit/0.1\"}",
      "parent_author": "garylai",
      "parent_permlink": "introduction-to-blockchain-security",
      "permlink": "re-garylai-introduction-to-blockchain-security-20180121t134438768z",
      "title": ""
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-01-21T13:44:39",
  "trx_id": "159db01b69957f496befdad6895e0025b3eee8d5",
  "trx_in_block": 33,
  "virtual_op": 0
}
2018/01/19 20:32:57
authorgarylai
permlinkintroduction-to-blockchain-security
voterubg
weight100 (1.00%)
Transaction InfoBlock #19124055/Trx ff1eb84dc0fc5962a132605691cf48f9b24ea43e
View Raw JSON Data
{
  "block": 19124055,
  "op": [
    "vote",
    {
      "author": "garylai",
      "permlink": "introduction-to-blockchain-security",
      "voter": "ubg",
      "weight": 100
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-01-19T20:32:57",
  "trx_id": "ff1eb84dc0fc5962a132605691cf48f9b24ea43e",
  "trx_in_block": 30,
  "virtual_op": 0
}
2018/01/19 20:20:42
authorgarylai
permlinkintroduction-to-blockchain-security
votergarylai
weight10000 (100.00%)
Transaction InfoBlock #19123810/Trx 6162deb380e61fd1efe7201957f7ad71459e6b45
View Raw JSON Data
{
  "block": 19123810,
  "op": [
    "vote",
    {
      "author": "garylai",
      "permlink": "introduction-to-blockchain-security",
      "voter": "garylai",
      "weight": 10000
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-01-19T20:20:42",
  "trx_id": "6162deb380e61fd1efe7201957f7ad71459e6b45",
  "trx_in_block": 5,
  "virtual_op": 0
}
2018/01/19 20:19:06
authorgarylai
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"}
parent author
parent permlinksecurity
permlinkintroduction-to-blockchain-security
titleIntroduction to Blockchain Security
Transaction InfoBlock #19123778/Trx 08d3ea9119d51be7c8dc446b603beafb8990307d
View Raw JSON Data
{
  "block": 19123778,
  "op": [
    "comment",
    {
      "author": "garylai",
      "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\"}",
      "parent_author": "",
      "parent_permlink": "security",
      "permlink": "introduction-to-blockchain-security",
      "title": "Introduction to Blockchain Security"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-01-19T20:19:06",
  "trx_id": "08d3ea9119d51be7c8dc446b603beafb8990307d",
  "trx_in_block": 4,
  "virtual_op": 0
}
2018/01/19 20:18:27
authorgarylai
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"}
parent author
parent permlinksecurity
permlinkintroduction-to-blockchain-security
titleIntroduction to Blockchain Security
Transaction InfoBlock #19123765/Trx 2fe8f2b2d810d9c8027e8a3c9ab56759b3f459bd
View Raw JSON Data
{
  "block": 19123765,
  "op": [
    "comment",
    {
      "author": "garylai",
      "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\"}",
      "parent_author": "",
      "parent_permlink": "security",
      "permlink": "introduction-to-blockchain-security",
      "title": "Introduction to Blockchain Security"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-01-19T20:18:27",
  "trx_id": "2fe8f2b2d810d9c8027e8a3c9ab56759b3f459bd",
  "trx_in_block": 30,
  "virtual_op": 0
}
2018/01/19 20:17:30
authorgarylai
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"}
parent author
parent permlinksecurity
permlinkintroduction-to-blockchain-security
titleIntroduction to Blockchain Security
Transaction InfoBlock #19123746/Trx 356bbab70d8b4440d220efea31a3b469a4764996
View Raw JSON Data
{
  "block": 19123746,
  "op": [
    "comment",
    {
      "author": "garylai",
      "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\"}",
      "parent_author": "",
      "parent_permlink": "security",
      "permlink": "introduction-to-blockchain-security",
      "title": "Introduction to Blockchain Security"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-01-19T20:17:30",
  "trx_id": "356bbab70d8b4440d220efea31a3b469a4764996",
  "trx_in_block": 8,
  "virtual_op": 0
}
2018/01/19 20:16:33
authorgarylai
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"}
parent author
parent permlinksecurity
permlinkintroduction-to-blockchain-security
titleIntroduction to Blockchain Security
Transaction InfoBlock #19123727/Trx 50b37139a9880f13ca7f2b795059b685ac7f45c8
View Raw JSON Data
{
  "block": 19123727,
  "op": [
    "comment",
    {
      "author": "garylai",
      "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\"}",
      "parent_author": "",
      "parent_permlink": "security",
      "permlink": "introduction-to-blockchain-security",
      "title": "Introduction to Blockchain Security"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-01-19T20:16:33",
  "trx_id": "50b37139a9880f13ca7f2b795059b685ac7f45c8",
  "trx_in_block": 3,
  "virtual_op": 0
}
2018/01/19 20:13:39
authorgarylai
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"}
parent author
parent permlinksecurity
permlinkintroduction-to-blockchain-security
titleIntroduction to Blockchain Security
Transaction InfoBlock #19123669/Trx acca824221273d5c1f39973cd6420d09d30604f7
View Raw JSON Data
{
  "block": 19123669,
  "op": [
    "comment",
    {
      "author": "garylai",
      "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\"}",
      "parent_author": "",
      "parent_permlink": "security",
      "permlink": "introduction-to-blockchain-security",
      "title": "Introduction to Blockchain Security"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-01-19T20:13:39",
  "trx_id": "acca824221273d5c1f39973cd6420d09d30604f7",
  "trx_in_block": 3,
  "virtual_op": 0
}
2018/01/19 20:08:57
authorgarylai
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"}
parent author
parent permlinksecurity
permlinkintroduction-to-blockchain-security
titleIntroduction to Blockchain Security
Transaction InfoBlock #19123575/Trx 1226a6e62e480b9916941df2878f00acba047210
View Raw JSON Data
{
  "block": 19123575,
  "op": [
    "comment",
    {
      "author": "garylai",
      "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\"}",
      "parent_author": "",
      "parent_permlink": "security",
      "permlink": "introduction-to-blockchain-security",
      "title": "Introduction to Blockchain Security"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-01-19T20:08:57",
  "trx_id": "1226a6e62e480b9916941df2878f00acba047210",
  "trx_in_block": 31,
  "virtual_op": 0
}
2018/01/19 20:06:54
authorgarylai
bodyWhen 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"}
parent author
parent permlinksecurity
permlinkintroduction-to-blockchain-security
titleIntroduction to Blockchain Security
Transaction InfoBlock #19123534/Trx 31fafcab0630aa759a1495b52c80dedf3fa17ec7
View Raw JSON Data
{
  "block": 19123534,
  "op": [
    "comment",
    {
      "author": "garylai",
      "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\"}",
      "parent_author": "",
      "parent_permlink": "security",
      "permlink": "introduction-to-blockchain-security",
      "title": "Introduction to Blockchain Security"
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-01-19T20:06:54",
  "trx_id": "31fafcab0630aa759a1495b52c80dedf3fa17ec7",
  "trx_in_block": 3,
  "virtual_op": 0
}
steemcreated a new account: @garylai
2018/01/19 19:59:18
active{"account_auths":[],"key_auths":[["STM8MDLhS587pgo5NQ3hW9kX2Ag6fc7GLJLTaExtaHNWCSvVqcf8W",1]],"weight_threshold":1}
creatorsteem
delegation29700.000000 VESTS
extensions[]
fee0.500 STEEM
json metadata
memo keySTM7oKbZQg97i9wFNtU45pxfFhR4SafRGNUQQEni9YLEiCqj7YrNb
new account namegarylai
owner{"account_auths":[],"key_auths":[["STM59HkyMqSRhTxnHut5roNRJCcb6k74S2DhugZQUTtRPuRPXU2gw",1]],"weight_threshold":1}
posting{"account_auths":[],"key_auths":[["STM5Lprc9kpvF9C61YXgLy87nXw2bna82nFb49v3YJdbmkeohd5qQ",1]],"weight_threshold":1}
Transaction InfoBlock #19123382/Trx 090c52d892805dea5a38eedda325bfd97203f28a
View Raw JSON Data
{
  "block": 19123382,
  "op": [
    "account_create_with_delegation",
    {
      "active": {
        "account_auths": [],
        "key_auths": [
          [
            "STM8MDLhS587pgo5NQ3hW9kX2Ag6fc7GLJLTaExtaHNWCSvVqcf8W",
            1
          ]
        ],
        "weight_threshold": 1
      },
      "creator": "steem",
      "delegation": "29700.000000 VESTS",
      "extensions": [],
      "fee": "0.500 STEEM",
      "json_metadata": "",
      "memo_key": "STM7oKbZQg97i9wFNtU45pxfFhR4SafRGNUQQEni9YLEiCqj7YrNb",
      "new_account_name": "garylai",
      "owner": {
        "account_auths": [],
        "key_auths": [
          [
            "STM59HkyMqSRhTxnHut5roNRJCcb6k74S2DhugZQUTtRPuRPXU2gw",
            1
          ]
        ],
        "weight_threshold": 1
      },
      "posting": {
        "account_auths": [],
        "key_auths": [
          [
            "STM5Lprc9kpvF9C61YXgLy87nXw2bna82nFb49v3YJdbmkeohd5qQ",
            1
          ]
        ],
        "weight_threshold": 1
      }
    }
  ],
  "op_in_trx": 0,
  "timestamp": "2018-01-19T19:59:18",
  "trx_id": "090c52d892805dea5a38eedda325bfd97203f28a",
  "trx_in_block": 23,
  "virtual_op": 0
}

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.
[]