Ecoer Logo

@vault12

39

Protecting the future of money

steemit.com/@vault12
VOTING POWER100.00%
DOWNVOTE POWER100.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS11.98%
Net Worth
1.318USD
STEEM
0.137STEEM
SBD
0.894SBD
Own SP
16.095SP

Detailed Balance

STEEM
balance
0.107STEEM
market_balance
0.000STEEM
savings_balance
0.000STEEM
reward_steem_balance
0.030STEEM
STEEM POWER
Own SP
16.095SP
Delegated Out
0.000SP
Delegation In
0.000SP
Effective Power
16.095SP
Reward SP (pending)
1.265SP
SBD
sbd_balance
0.001SBD
sbd_conversions
0.000SBD
sbd_market_balance
0.000SBD
savings_sbd_balance
0.000SBD
reward_sbd_balance
0.893SBD
{
  "balance": "0.107 STEEM",
  "savings_balance": "0.000 STEEM",
  "reward_steem_balance": "0.030 STEEM",
  "vesting_shares": "26208.914777 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "0.000000 VESTS",
  "sbd_balance": "0.001 SBD",
  "savings_sbd_balance": "0.000 SBD",
  "reward_sbd_balance": "0.893 SBD",
  "conversions": []
}

Account Info

namevault12
id1170360
rank93,709
reputation37056654195
created2018-11-07T16:16:24
recovery_accountwasima
proxyNone
post_count7
comment_count0
lifetime_vote_count0
witnesses_voted_for0
last_post2018-12-21T22:04:15
last_root_post2018-12-21T22:04:15
last_vote_time2018-11-08T20:45:45
proxied_vsf_votes0, 0, 0, 0
can_vote1
voting_power9,604
delayed_votes0
balance0.107 STEEM
savings_balance0.000 STEEM
sbd_balance0.001 SBD
savings_sbd_balance0.000 SBD
vesting_shares26208.914777 VESTS
delegated_vesting_shares0.000000 VESTS
received_vesting_shares0.000000 VESTS
reward_vesting_balance2549.224417 VESTS
vesting_balance0.000 STEEM
vesting_withdraw_rate0.000000 VESTS
next_vesting_withdrawal1969-12-31T23:59:59
withdrawn0
to_withdraw0
withdraw_routes0
savings_withdraw_requests0
last_account_recovery1970-01-01T00:00:00
reset_accountnull
last_owner_update1970-01-01T00:00:00
last_account_update2018-11-08T20:53:24
minedNo
sbd_seconds0
sbd_last_interest_payment1970-01-01T00:00:00
savings_sbd_last_interest_payment1970-01-01T00:00:00
{
  "id": 1170360,
  "name": "vault12",
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM6aRjEVMDiPvydKBwko8BJbmEcWHrj41ehJZ9jhRrddCpD8PD5E",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM5q32K4ttZm9gWqdKGXEdnprKAgcB94gdPAMcHac2oi7w5Y5CUP",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM5isYTzU6oSruVyuvYWRZuvV8SPpxTY6M6A43Y66tUazCHvHCq3",
        1
      ]
    ]
  },
  "memo_key": "STM7UzDBRSAbHWMff2besFj6L1BpdMLuvZfmbH5Vj7nJhRZU8mmCz",
  "json_metadata": "{\"profile\":{\"profile_image\":\"https://cdn.steemitimages.com/DQmPcvo6EVDZTMJSnpesu1zWZdWphFZD29f1xTb3zvqgb6t/[email protected]\",\"cover_image\":\"https://cdn.steemitimages.com/DQmarjyuRbMWQPpzyVzdjki2xtbFFdq6XBmMPDtAdByUmj4/Vault12%20Graphics%20180304.009.png\",\"name\":\"Vault12\",\"about\":\"Protecting the future of money\",\"location\":\"Mountain View, CA\",\"website\":\"https://vault12.com\"}}",
  "posting_json_metadata": "{\"profile\":{\"profile_image\":\"https://cdn.steemitimages.com/DQmPcvo6EVDZTMJSnpesu1zWZdWphFZD29f1xTb3zvqgb6t/[email protected]\",\"cover_image\":\"https://cdn.steemitimages.com/DQmarjyuRbMWQPpzyVzdjki2xtbFFdq6XBmMPDtAdByUmj4/Vault12%20Graphics%20180304.009.png\",\"name\":\"Vault12\",\"about\":\"Protecting the future of money\",\"location\":\"Mountain View, CA\",\"website\":\"https://vault12.com\"}}",
  "proxy": "",
  "last_owner_update": "1970-01-01T00:00:00",
  "last_account_update": "2018-11-08T20:53:24",
  "created": "2018-11-07T16:16:24",
  "mined": false,
  "recovery_account": "wasima",
  "last_account_recovery": "1970-01-01T00:00:00",
  "reset_account": "null",
  "comment_count": 0,
  "lifetime_vote_count": 0,
  "post_count": 7,
  "can_vote": true,
  "voting_manabar": {
    "current_mana": "25173360511",
    "last_update_time": 1541709945
  },
  "downvote_manabar": {
    "current_mana": 0,
    "last_update_time": 1541607384
  },
  "voting_power": 9604,
  "balance": "0.107 STEEM",
  "savings_balance": "0.000 STEEM",
  "sbd_balance": "0.001 SBD",
  "sbd_seconds": "0",
  "sbd_seconds_last_update": "2018-11-12T20:06: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.893 SBD",
  "reward_steem_balance": "0.030 STEEM",
  "reward_vesting_balance": "2549.224417 VESTS",
  "reward_vesting_steem": "1.265 STEEM",
  "vesting_shares": "26208.914777 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "0.000000 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": 2530,
  "proxied_vsf_votes": [
    0,
    0,
    0,
    0
  ],
  "witnesses_voted_for": 0,
  "last_post": "2018-12-21T22:04:15",
  "last_root_post": "2018-12-21T22:04:15",
  "last_vote_time": "2018-11-08T20:45:45",
  "post_bandwidth": 0,
  "pending_claimed_accounts": 0,
  "vesting_balance": "0.000 STEEM",
  "reputation": "37056654195",
  "transfer_history": [],
  "market_history": [],
  "post_history": [],
  "vote_history": [],
  "other_history": [],
  "witness_votes": [],
  "tags_usage": [],
  "guest_bloggers": [],
  "rank": 93709
}

Withdraw Routes

IncomingOutgoing
Empty
Empty
{
  "incoming": [],
  "outgoing": []
}
From Date
To Date
2019/11/07 17:01:00
parent authorvault12
parent permlinkvault12-december-progress-update
authorsteemitboard
permlinksteemitboard-notify-vault12-20191107t170059000z
title
bodyCongratulations @vault12! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@vault12/birthday1.png</td><td>Happy Birthday! - You are on the Steem blockchain for 1 year!</td></tr></table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@vault12) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=vault12)_</sub> **Do not miss the last post from @steemitboard:** <table><tr><td><a href="https://steemit.com/steemfest/@steemitboard/steemfest-meet-the-stemians-contest-the-mysterious-rule-revealed"><img src="https://steemitimages.com/64x128/https://cdn.steemitimages.com/DQmasWw4jQHwxng82DKxY6Q6tVg9mWcto4xcDURs8knFgCa/image.png"></a></td><td><a href="https://steemit.com/steemfest/@steemitboard/steemfest-meet-the-stemians-contest-the-mysterious-rule-revealed">SteemFest Meet The Stemians Contest - The mysterious rule revealed</a></td></tr><tr><td><a href="https://steemit.com/steemfest/@steemitboard/steemfest-meet-the-steemians-contest"><img src="https://steemitimages.com/64x128/https://cdn.steemitimages.com/DQmasWw4jQHwxng82DKxY6Q6tVg9mWcto4xcDURs8knFgCa/image.png"></a></td><td><a href="https://steemit.com/steemfest/@steemitboard/steemfest-meet-the-steemians-contest">SteemFest⁴ - Meet the Steemians Contest</a></td></tr></table> ###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!
json metadata{"image":["https://steemitboard.com/img/notify.png"]}
Transaction InfoBlock #37971652/Trx da67768c76923962222434359ce78a49670ab301
View Raw JSON Data
{
  "trx_id": "da67768c76923962222434359ce78a49670ab301",
  "block": 37971652,
  "trx_in_block": 8,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-11-07T17:01:00",
  "op": [
    "comment",
    {
      "parent_author": "vault12",
      "parent_permlink": "vault12-december-progress-update",
      "author": "steemitboard",
      "permlink": "steemitboard-notify-vault12-20191107t170059000z",
      "title": "",
      "body": "Congratulations @vault12! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@vault12/birthday1.png</td><td>Happy Birthday! - You are on the Steem blockchain for 1 year!</td></tr></table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@vault12) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=vault12)_</sub>\n\n\n**Do not miss the last post from @steemitboard:**\n<table><tr><td><a href=\"https://steemit.com/steemfest/@steemitboard/steemfest-meet-the-stemians-contest-the-mysterious-rule-revealed\"><img src=\"https://steemitimages.com/64x128/https://cdn.steemitimages.com/DQmasWw4jQHwxng82DKxY6Q6tVg9mWcto4xcDURs8knFgCa/image.png\"></a></td><td><a href=\"https://steemit.com/steemfest/@steemitboard/steemfest-meet-the-stemians-contest-the-mysterious-rule-revealed\">SteemFest Meet The Stemians Contest - The mysterious rule revealed</a></td></tr><tr><td><a href=\"https://steemit.com/steemfest/@steemitboard/steemfest-meet-the-steemians-contest\"><img src=\"https://steemitimages.com/64x128/https://cdn.steemitimages.com/DQmasWw4jQHwxng82DKxY6Q6tVg9mWcto4xcDURs8knFgCa/image.png\"></a></td><td><a href=\"https://steemit.com/steemfest/@steemitboard/steemfest-meet-the-steemians-contest\">SteemFest⁴  - Meet the Steemians Contest</a></td></tr></table>\n\n###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!",
      "json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}"
    }
  ]
}
2019/01/18 17:48:42
parent authorvault12
parent permlinkvault12-december-progress-update
authorpartiko
permlinkpartiko-re-vault12-vault12-december-progress-update-20190118t174842895z
title
body[![](https://d1vof77qrk4l5q.cloudfront.net/statics/upsell-delegate-15-steem-power-2.png)](https://partiko-io.app.link/A27hLeUkgT)
json metadata{"app":"partiko"}
Transaction InfoBlock #29569645/Trx 1aa2006a20eb0355223a249f95c63239e37f372c
View Raw JSON Data
{
  "trx_id": "1aa2006a20eb0355223a249f95c63239e37f372c",
  "block": 29569645,
  "trx_in_block": 9,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-01-18T17:48:42",
  "op": [
    "comment",
    {
      "parent_author": "vault12",
      "parent_permlink": "vault12-december-progress-update",
      "author": "partiko",
      "permlink": "partiko-re-vault12-vault12-december-progress-update-20190118t174842895z",
      "title": "",
      "body": "[![](https://d1vof77qrk4l5q.cloudfront.net/statics/upsell-delegate-15-steem-power-2.png)](https://partiko-io.app.link/A27hLeUkgT)",
      "json_metadata": "{\"app\":\"partiko\"}"
    }
  ]
}
2018/12/22 01:13:57
votermrakodrap
authorvault12
permlinkvault12-december-progress-update
weight1000 (10.00%)
Transaction InfoBlock #28772803/Trx 0be555f308d1085510cc1417fa442c61025eaf33
View Raw JSON Data
{
  "trx_id": "0be555f308d1085510cc1417fa442c61025eaf33",
  "block": 28772803,
  "trx_in_block": 6,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-22T01:13:57",
  "op": [
    "vote",
    {
      "voter": "mrakodrap",
      "author": "vault12",
      "permlink": "vault12-december-progress-update",
      "weight": 1000
    }
  ]
}
2018/12/21 22:20:36
voterfyrstikken
authorvault12
permlinkvault12-december-progress-update
weight100 (1.00%)
Transaction InfoBlock #28769336/Trx ae0cfb8cd8f107e6523bb3783aa4a955d3a9582a
View Raw JSON Data
{
  "trx_id": "ae0cfb8cd8f107e6523bb3783aa4a955d3a9582a",
  "block": 28769336,
  "trx_in_block": 18,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-21T22:20:36",
  "op": [
    "vote",
    {
      "voter": "fyrstikken",
      "author": "vault12",
      "permlink": "vault12-december-progress-update",
      "weight": 100
    }
  ]
}
2018/12/21 22:18:33
votereffofex
authorvault12
permlinkvault12-december-progress-update
weight64 (0.64%)
Transaction InfoBlock #28769295/Trx fc74c95fe7757bcd8e72f1a2e6d921275a1fb7dd
View Raw JSON Data
{
  "trx_id": "fc74c95fe7757bcd8e72f1a2e6d921275a1fb7dd",
  "block": 28769295,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-21T22:18:33",
  "op": [
    "vote",
    {
      "voter": "effofex",
      "author": "vault12",
      "permlink": "vault12-december-progress-update",
      "weight": 64
    }
  ]
}
2018/12/21 22:17:54
voterbluesniper
authorvault12
permlinkvault12-december-progress-update
weight25 (0.25%)
Transaction InfoBlock #28769282/Trx 88a739503cea57788c862024e2dfc7f2a91a0f16
View Raw JSON Data
{
  "trx_id": "88a739503cea57788c862024e2dfc7f2a91a0f16",
  "block": 28769282,
  "trx_in_block": 15,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-21T22:17:54",
  "op": [
    "vote",
    {
      "voter": "bluesniper",
      "author": "vault12",
      "permlink": "vault12-december-progress-update",
      "weight": 25
    }
  ]
}
2018/12/21 22:17:54
votermerlion
authorvault12
permlinkvault12-december-progress-update
weight100 (1.00%)
Transaction InfoBlock #28769282/Trx 95c8e5b1de2610f03f5f000d54be7abf4f33729b
View Raw JSON Data
{
  "trx_id": "95c8e5b1de2610f03f5f000d54be7abf4f33729b",
  "block": 28769282,
  "trx_in_block": 11,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-21T22:17:54",
  "op": [
    "vote",
    {
      "voter": "merlion",
      "author": "vault12",
      "permlink": "vault12-december-progress-update",
      "weight": 100
    }
  ]
}
2018/12/21 22:17:54
voteraccelerator
authorvault12
permlinkvault12-december-progress-update
weight129 (1.29%)
Transaction InfoBlock #28769282/Trx 7cb008ea01ebbb4df4ac9e3d0911fe53225e0b3a
View Raw JSON Data
{
  "trx_id": "7cb008ea01ebbb4df4ac9e3d0911fe53225e0b3a",
  "block": 28769282,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-21T22:17:54",
  "op": [
    "vote",
    {
      "voter": "accelerator",
      "author": "vault12",
      "permlink": "vault12-december-progress-update",
      "weight": 129
    }
  ]
}
2018/12/21 22:17:54
votersteemtaker
authorvault12
permlinkvault12-december-progress-update
weight200 (2.00%)
Transaction InfoBlock #28769282/Trx 0e9ca37676dd9ee87305611d977acb42ee1f8405
View Raw JSON Data
{
  "trx_id": "0e9ca37676dd9ee87305611d977acb42ee1f8405",
  "block": 28769282,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-21T22:17:54",
  "op": [
    "vote",
    {
      "voter": "steemtaker",
      "author": "vault12",
      "permlink": "vault12-december-progress-update",
      "weight": 200
    }
  ]
}
2018/12/21 22:17:21
voternfc
authorvault12
permlinkvault12-december-progress-update
weight100 (1.00%)
Transaction InfoBlock #28769271/Trx 2a9d095407034d4a2472ec0a30d2f937bd389927
View Raw JSON Data
{
  "trx_id": "2a9d095407034d4a2472ec0a30d2f937bd389927",
  "block": 28769271,
  "trx_in_block": 6,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-21T22:17:21",
  "op": [
    "vote",
    {
      "voter": "nfc",
      "author": "vault12",
      "permlink": "vault12-december-progress-update",
      "weight": 100
    }
  ]
}
2018/12/21 22:17:06
voterraise-me-up
authorvault12
permlinkvault12-december-progress-update
weight1 (0.01%)
Transaction InfoBlock #28769266/Trx a0d5c1731f628cce7e6d4faf6a2adc586b468c81
View Raw JSON Data
{
  "trx_id": "a0d5c1731f628cce7e6d4faf6a2adc586b468c81",
  "block": 28769266,
  "trx_in_block": 6,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-21T22:17:06",
  "op": [
    "vote",
    {
      "voter": "raise-me-up",
      "author": "vault12",
      "permlink": "vault12-december-progress-update",
      "weight": 1
    }
  ]
}
2018/12/21 22:05:39
voterminibot
authorvault12
permlinkvault12-december-progress-update
weight500 (5.00%)
Transaction InfoBlock #28769037/Trx eae44a3c04b38285bfa7e12e99fc5137496efe46
View Raw JSON Data
{
  "trx_id": "eae44a3c04b38285bfa7e12e99fc5137496efe46",
  "block": 28769037,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-21T22:05:39",
  "op": [
    "vote",
    {
      "voter": "minibot",
      "author": "vault12",
      "permlink": "vault12-december-progress-update",
      "weight": 500
    }
  ]
}
2018/12/21 22:04:15
parent author
parent permlinkblockchain
authorvault12
permlinkvault12-december-progress-update
titleVault12 December Progress Update
bodyhttps://cdn-images-1.medium.com/max/2000/1*ntOR1Vu3Dz8joWEznX8oDw.png **Hello, wanted to wrap up the year with a super quick update:** On the **ICO/STO** front, token generation is complete and **Vault Guardian Tokens (VGT)** have been distributed to all investors. To see how we executed the Token Generation, read our [Token Distribution Summary report](https://s3-us-west-1.amazonaws.com/vault12/vault12+token+generation+summary.pdf). https://cdn-images-1.medium.com/max/1600/1*d7142hd8DngGZnUuIgqs4g.png 2. **Exchanges** — Currently VGT, which is a security token, is not authorized to be listed on any exchange. We are working with exchanges that plan to offer compliant security token trading in the future and look forward to announcing those nearer the product launch. If you have a favorite exchange that can do security token listings, please let us know via our [Telegram channel](https://t.me/Vault12). 3. On the **engineering** front, the product has been in Alpha testing since the end of October. We have been getting great feedback — thanks to all the alpha testers and their Guardians — this is being incorporated into the next version of the product. If you would like to join the **Alpha program**, please [signup on our Alpha page](https://vault12.com/alpha). 4. The **Engineering team** has also been hard at work on the **Beta product** and we’ve sneaked some preview screenshots onto our [website](https://vault12.com). We will have more on the new look and feel in the new year. *This has been a terrific year, and we are excited to enter our launch year 2019. Thanks to everyone in the community. Season’s Greeting everyone.*
json metadata{"tags":["blockchain","security","cryptocurrency","crypto","custody"],"image":["https://cdn-images-1.medium.com/max/2000/1*ntOR1Vu3Dz8joWEznX8oDw.png","https://cdn-images-1.medium.com/max/1600/1*d7142hd8DngGZnUuIgqs4g.png"],"links":["https://s3-us-west-1.amazonaws.com/vault12/vault12+token+generation+summary.pdf","https://t.me/Vault12","https://vault12.com/alpha","https://vault12.com"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #28769009/Trx 158b4837a8b261788cbb2537674e8444c4277a21
View Raw JSON Data
{
  "trx_id": "158b4837a8b261788cbb2537674e8444c4277a21",
  "block": 28769009,
  "trx_in_block": 93,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-21T22:04:15",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "blockchain",
      "author": "vault12",
      "permlink": "vault12-december-progress-update",
      "title": "Vault12 December Progress Update",
      "body": "https://cdn-images-1.medium.com/max/2000/1*ntOR1Vu3Dz8joWEznX8oDw.png\n**Hello, wanted to wrap up the year with a super quick update:**\n\nOn the **ICO/STO** front, token generation is complete and **Vault Guardian Tokens (VGT)** have been distributed to all investors. To see how we executed the Token Generation, read our [Token Distribution Summary report](https://s3-us-west-1.amazonaws.com/vault12/vault12+token+generation+summary.pdf).\n\nhttps://cdn-images-1.medium.com/max/1600/1*d7142hd8DngGZnUuIgqs4g.png\n\n2. **Exchanges** — Currently VGT, which is a security token, is not authorized to be listed on any exchange. We are working with exchanges that plan to offer compliant security token trading in the future and look forward to announcing those nearer the product launch. If you have a favorite exchange that can do security token listings, please let us know via our [Telegram channel](https://t.me/Vault12).\n\n3. On the **engineering** front, the product has been in Alpha testing since the end of October. We have been getting great feedback — thanks to all the alpha testers and their Guardians — this is being incorporated into the next version of the product. If you would like to join the **Alpha program**, please [signup on our Alpha page](https://vault12.com/alpha).\n\n4. The **Engineering team** has also been hard at work on the **Beta product** and we’ve sneaked some preview screenshots onto our [website](https://vault12.com). We will have more on the new look and feel in the new year.\n\n*This has been a terrific year, and we are excited to enter our launch year 2019. Thanks to everyone in the community. Season’s Greeting everyone.*",
      "json_metadata": "{\"tags\":[\"blockchain\",\"security\",\"cryptocurrency\",\"crypto\",\"custody\"],\"image\":[\"https://cdn-images-1.medium.com/max/2000/1*ntOR1Vu3Dz8joWEznX8oDw.png\",\"https://cdn-images-1.medium.com/max/1600/1*d7142hd8DngGZnUuIgqs4g.png\"],\"links\":[\"https://s3-us-west-1.amazonaws.com/vault12/vault12+token+generation+summary.pdf\",\"https://t.me/Vault12\",\"https://vault12.com/alpha\",\"https://vault12.com\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
2018/12/03 19:55:45
voterelowin
authorvault12
permlinkwhat-is-digital-custody
weight8000 (80.00%)
Transaction InfoBlock #28248379/Trx 741193836df1e1ce2a01c4b4b45426fe0d555cdf
View Raw JSON Data
{
  "trx_id": "741193836df1e1ce2a01c4b4b45426fe0d555cdf",
  "block": 28248379,
  "trx_in_block": 17,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-03T19:55:45",
  "op": [
    "vote",
    {
      "voter": "elowin",
      "author": "vault12",
      "permlink": "what-is-digital-custody",
      "weight": 8000
    }
  ]
}
2018/12/03 19:49:51
voterdevsup
authorvault12
permlinkwhat-is-digital-custody
weight69 (0.69%)
Transaction InfoBlock #28248261/Trx d0f91e4e1228bf7c8ee3d8a90668dd857b3637e5
View Raw JSON Data
{
  "trx_id": "d0f91e4e1228bf7c8ee3d8a90668dd857b3637e5",
  "block": 28248261,
  "trx_in_block": 23,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-03T19:49:51",
  "op": [
    "vote",
    {
      "voter": "devsup",
      "author": "vault12",
      "permlink": "what-is-digital-custody",
      "weight": 69
    }
  ]
}
2018/12/03 19:48:30
voterbitok.xyz
authorvault12
permlinkwhat-is-digital-custody
weight100 (1.00%)
Transaction InfoBlock #28248234/Trx 1bdd6d6b149ae361ef430f83cf2a7fea0bb45ea5
View Raw JSON Data
{
  "trx_id": "1bdd6d6b149ae361ef430f83cf2a7fea0bb45ea5",
  "block": 28248234,
  "trx_in_block": 14,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-03T19:48:30",
  "op": [
    "vote",
    {
      "voter": "bitok.xyz",
      "author": "vault12",
      "permlink": "what-is-digital-custody",
      "weight": 100
    }
  ]
}
2018/12/03 19:45:30
voterraise-me-up
authorvault12
permlinkwhat-is-digital-custody
weight1 (0.01%)
Transaction InfoBlock #28248174/Trx a0bc97676b175a28db476d041b303b41fcec9b64
View Raw JSON Data
{
  "trx_id": "a0bc97676b175a28db476d041b303b41fcec9b64",
  "block": 28248174,
  "trx_in_block": 29,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-03T19:45:30",
  "op": [
    "vote",
    {
      "voter": "raise-me-up",
      "author": "vault12",
      "permlink": "what-is-digital-custody",
      "weight": 1
    }
  ]
}
vault12published a new post: what-is-digital-custody
2018/12/03 19:39:51
parent author
parent permlinksecurity
authorvault12
permlinkwhat-is-digital-custody
titleWhat is Digital Custody?
body@@ -1237,15 +1237,85 @@ his +%5B article +%5D(https://techcrunch.com/2018/02/01/the-sad-state-of-crypto-custody/) fro @@ -1448,76 +1448,8 @@ 19. -(https://techcrunch.com/2018/02/01/the-sad-state-of-crypto-custody/) %0A%0ACu
json metadata{"tags":["security","blockchain","custody","crypto"],"app":"steemit/0.1","format":"markdown","image":["https://cdn-images-1.medium.com/max/2000/1*_IW-GBs6Iu0tXRi_BBp79Q.jpeg","https://img.youtube.com/vi/o1mkxci6vvo/0.jpg","https://img.youtube.com/vi/22g1skC9Usw/0.jpg"],"links":["https://techcrunch.com/2018/02/01/the-sad-state-of-crypto-custody/","https://www.youtube.com/watch?v=o1mkxci6vvo&feature=youtu.be&t=22m13s","https://www.youtube.com/watch?v=22g1skC9Usw&feature=youtu.be"]}
Transaction InfoBlock #28248061/Trx f13f9b9c57b39fb373aee997f52cf195eb70bb58
View Raw JSON Data
{
  "trx_id": "f13f9b9c57b39fb373aee997f52cf195eb70bb58",
  "block": 28248061,
  "trx_in_block": 23,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-03T19:39:51",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "security",
      "author": "vault12",
      "permlink": "what-is-digital-custody",
      "title": "What is Digital Custody?",
      "body": "@@ -1237,15 +1237,85 @@\n his \n+%5B\n article\n+%5D(https://techcrunch.com/2018/02/01/the-sad-state-of-crypto-custody/)\n  fro\n@@ -1448,76 +1448,8 @@\n 19. \n-(https://techcrunch.com/2018/02/01/the-sad-state-of-crypto-custody/)\n %0A%0ACu\n",
      "json_metadata": "{\"tags\":[\"security\",\"blockchain\",\"custody\",\"crypto\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\",\"image\":[\"https://cdn-images-1.medium.com/max/2000/1*_IW-GBs6Iu0tXRi_BBp79Q.jpeg\",\"https://img.youtube.com/vi/o1mkxci6vvo/0.jpg\",\"https://img.youtube.com/vi/22g1skC9Usw/0.jpg\"],\"links\":[\"https://techcrunch.com/2018/02/01/the-sad-state-of-crypto-custody/\",\"https://www.youtube.com/watch?v=o1mkxci6vvo&feature=youtu.be&t=22m13s\",\"https://www.youtube.com/watch?v=22g1skC9Usw&feature=youtu.be\"]}"
    }
  ]
}
vault12published a new post: what-is-digital-custody
2018/12/03 19:38:09
parent author
parent permlinksecurity
authorvault12
permlinkwhat-is-digital-custody
titleWhat is Digital Custody?
body@@ -1,12 +1,85 @@ +https://cdn-images-1.medium.com/max/2000/1*_IW-GBs6Iu0tXRi_BBp79Q.jpeg%0A%0A* In the first @@ -561,16 +561,17 @@ emanded. +* %0A%0AIn the @@ -1373,16 +1373,85 @@ er 2019. - + (https://techcrunch.com/2018/02/01/the-sad-state-of-crypto-custody/) %0A%0ACustod @@ -2823,16 +2823,18 @@ class.%0A%0A +** Custodia @@ -2835,16 +2835,18 @@ stodians +** %0AOne of @@ -4071,16 +4071,18 @@ e one.%0A%0A +** Exchange @@ -4082,16 +4082,18 @@ xchanges +** %0AExchang @@ -4892,23 +4892,27 @@ tions.%0A%0A +** Wallets +** %0AWallets @@ -7344,16 +7344,86 @@ ences.%0A%0A +https://www.youtube.com/watch?v=o1mkxci6vvo&feature=youtu.be&t=22m13s%0A %0ADigital @@ -7632,8 +7632,70 @@ to you. +%0A%0Ahttps://www.youtube.com/watch?v=22g1skC9Usw&feature=youtu.be
json metadata{"tags":["security","blockchain","custody","crypto"],"app":"steemit/0.1","format":"markdown","image":["https://cdn-images-1.medium.com/max/2000/1*_IW-GBs6Iu0tXRi_BBp79Q.jpeg","https://img.youtube.com/vi/o1mkxci6vvo/0.jpg","https://img.youtube.com/vi/22g1skC9Usw/0.jpg"],"links":["https://techcrunch.com/2018/02/01/the-sad-state-of-crypto-custody/","https://www.youtube.com/watch?v=o1mkxci6vvo&feature=youtu.be&t=22m13s","https://www.youtube.com/watch?v=22g1skC9Usw&feature=youtu.be"]}
Transaction InfoBlock #28248027/Trx 1b337585f7590f68d6d1b6e30dc9883cb5a538db
View Raw JSON Data
{
  "trx_id": "1b337585f7590f68d6d1b6e30dc9883cb5a538db",
  "block": 28248027,
  "trx_in_block": 7,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-03T19:38:09",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "security",
      "author": "vault12",
      "permlink": "what-is-digital-custody",
      "title": "What is Digital Custody?",
      "body": "@@ -1,12 +1,85 @@\n+https://cdn-images-1.medium.com/max/2000/1*_IW-GBs6Iu0tXRi_BBp79Q.jpeg%0A%0A*\n In the first\n@@ -561,16 +561,17 @@\n emanded.\n+*\n %0A%0AIn the\n@@ -1373,16 +1373,85 @@\n er 2019.\n-\n \n+ (https://techcrunch.com/2018/02/01/the-sad-state-of-crypto-custody/)\n %0A%0ACustod\n@@ -2823,16 +2823,18 @@\n class.%0A%0A\n+**\n Custodia\n@@ -2835,16 +2835,18 @@\n stodians\n+**\n %0AOne of \n@@ -4071,16 +4071,18 @@\n e one.%0A%0A\n+**\n Exchange\n@@ -4082,16 +4082,18 @@\n xchanges\n+**\n %0AExchang\n@@ -4892,23 +4892,27 @@\n tions.%0A%0A\n+**\n Wallets\n+**\n %0AWallets\n@@ -7344,16 +7344,86 @@\n ences.%0A%0A\n+https://www.youtube.com/watch?v=o1mkxci6vvo&feature=youtu.be&t=22m13s%0A\n %0ADigital\n@@ -7632,8 +7632,70 @@\n  to you.\n+%0A%0Ahttps://www.youtube.com/watch?v=22g1skC9Usw&feature=youtu.be\n",
      "json_metadata": "{\"tags\":[\"security\",\"blockchain\",\"custody\",\"crypto\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\",\"image\":[\"https://cdn-images-1.medium.com/max/2000/1*_IW-GBs6Iu0tXRi_BBp79Q.jpeg\",\"https://img.youtube.com/vi/o1mkxci6vvo/0.jpg\",\"https://img.youtube.com/vi/22g1skC9Usw/0.jpg\"],\"links\":[\"https://techcrunch.com/2018/02/01/the-sad-state-of-crypto-custody/\",\"https://www.youtube.com/watch?v=o1mkxci6vvo&feature=youtu.be&t=22m13s\",\"https://www.youtube.com/watch?v=22g1skC9Usw&feature=youtu.be\"]}"
    }
  ]
}
2018/12/03 19:38:03
votersteeming-hot
authorvault12
permlinkwhat-is-digital-custody
weight25 (0.25%)
Transaction InfoBlock #28248025/Trx b2318ba11442ae05e025b17d792e613a9d0df092
View Raw JSON Data
{
  "trx_id": "b2318ba11442ae05e025b17d792e613a9d0df092",
  "block": 28248025,
  "trx_in_block": 12,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-03T19:38:03",
  "op": [
    "vote",
    {
      "voter": "steeming-hot",
      "author": "vault12",
      "permlink": "what-is-digital-custody",
      "weight": 25
    }
  ]
}
vault12published a new post: what-is-digital-custody
2018/12/03 19:34:54
parent author
parent permlinksecurity
authorvault12
permlinkwhat-is-digital-custody
titleWhat is Digital Custody?
bodyIn the first installment to this series, we introduced the notion of a ‘digital asset.’ We explained our thesis for why digital custody — secure handling of valuable digital assets — is an important topic of discussion, given that the valuation of digital assets has increased dramatically over the past few decades. In our second post, we explained how the digital asset subclass of cryptocurrency has major security risks that magnifies the scope of how much digital asset custody is demanded. In the conversations around cryptocurrency, there is one thing that has been under-discussed. As we all know, cryptocurrency is peer to peer — that means instead of a bank holding on to your money and keeping your funds intact, you, yourself are responsible. One the one hand, this gives people the ability to own their own money and appeals to the libertarian crowd. On the other hand, some argue that people are not capable of taking control of their finances — and rightfully so. Either way, the topic of how cryptocurrency assets are held must be discussed. Maintaining a 48-character private key (which gives access to a cryptocurrency wallet) is difficult. This article from the beginning of 2018 highlights many of the challenges with specific solutions, alas these challenges remain as we enter 2019. Custody is a service given by professionals for the holding and maintenance of valuable assets; traditionally frequent among high net worth individuals and institutions. This service isn’t common among the everyday consumer because their banks act as custodians to their assets; people can store the few valuables they have in a bank account or safety deposit box. While this culture of custody worked in the traditional finance realm, an era of peer to peer finance — where consumers own their assets and are thus liable for them — begs a new way of conceiving custody. Digital custody will be a new wave in the institutional and HNW realm of peer to peer finance. This is because managing private keys of accounts upwards of a million dollars will not be left to single individuals to maintain them on a hard or stick drive. Demand for digital custody of cryptocurrency assets has risen rapidly throughout the past few years as speculating on, holding, and using crypto assets became more popular. These options range from robust, institutional-grade complying custody solutions like Coinbase Custody to more flexible and controlled custody options like personal cryptocurrency wallets. With owners holding onto assets for the long term, and security threats standing their ground, digital custody will be an important topic of discussion for the future of the asset class. Custodians One of the only compliant custody solutions on the market right now is Coinbase Custody. Coinbase Custody is a service that provides insurance, hierarchical control, segregated cold storage, SLAs on fund transfers, and 24/7 customer service for accounts on the platform. Coinbase works in collaboration with an SEC-registered broker-dealer and FINRA compliant company known as ETC to be fully compliant as a custody service provider. While digital custody with the likes of Coinbase may be the best solution for high net worth individuals, this service is unavailable for typical retail investors. Moreover, institutions have grown to be skeptical of Coinbase Custody because the idea of custody of an asset typically entails disintermediating the asset from the market. Most hedge funds await big names like Goldman Sachs and ICE to open up custody desks, so that custody of their assets is handled outside of the hands of cryptocurrency businesses. Institutions also await the approval of a cryptocurrency exchange-traded product (ETP) which could turn out to be a powerful liquidity and custody solution to the market. However, many previous filings have been denied by the SEC, and it is unclear when the SEC will approve one. Exchanges Exchanges take custody of assets that speculators own. It’s apparent that traders are very comfortable holding their funds on exchanges — as some of the largest exchanges hold a total of over 4% of Bitcoin’s circulating supply. However, exchanges have not proven themselves to be bulletproof custodians in the past. Mt. Gox’s hack in 2014, Bitfinex’s hack in 2016, and Coincheck’s hack in 2018 showed us that exchanges are not exactly what one would call risk-free. Holding assets on exchanges is frequent among retail investors. Institutions with a lot of capital typically open up corporate accounts on multiple exchanges for more liquid trading. Exchanges like Bittrex, Poloniex, Kraken, OKex, and Huobi have opened doors to institutions where they provide more customized service and custody options. Wallets Wallets are means of storing public and private key pairs that identify and give access to cryptocurrency on the blockchain. Wallets include both hot wallets and cold storage wallets. Hot wallets are connected to the internet. They could include original core software wallets or web wallets. Where this wallet is stored presents a point of failure — if a malicious actor gets hold of the wallet, they could steal a users funds. Cold wallets are offline and isolated, such as a hardware wallet or a paper wallet. Hardware wallets are more secure but more complicated for the average user. Executing a transaction on a hardware wallet requires that one confirms the transaction using a button on the physical device. To protect individuals from losing funds if they lose their device, each hardware wallet is prescribed a seed phrase. This is a set of words that are entered into an app to regain access to a wallet without having to have that device. While hardware wallets are relatively secure and safe, the seed phrase is a central point of failure to the security of one’s funds. We’ve established a few things so far. Hot wallets present a single point of failure in wherever the private access key is stored. Cold storage presents a single point of failure in wherever the private key or seed phrase to restore the account is stored. Exchanges store funds in their wallets which could be compromised at any time. Professional digital custody solutions are not where institutions quite need them to be and are unavailable to average investors. So how do we establish a universal and secure means of digital custody that does not entail some sort of a central point of failure? The way we at Vault12 plan to do so is by decentralizing storage of access points themselves — private keys and seed phrases — breaking them up into shares that are useless on their own, but then are combined to reconstruct these keys. This isn’t a solution that would replace paper or hardware wallets per se, but rather would be an extra layer of security on top. In other words, we’ll spread these central points of failure out; to make the storage of access keys to cryptocurrency safer, more secure, and more practical. Instead of storing your private keys on a server, or on a fragile memory disk — your keys will be split up and stored on a mesh of devices around the world — completely resistant to targeted attacks and unfortunate occurrences. Digital custody of crypto assets remains an opportunity for innovation. We’re looking to find the fine line between decentralization, security, and usability of cryptocurrency wallets — and bring that solution to you.
json metadata{"tags":["security","blockchain","custody","crypto"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #28247963/Trx e593562118834ada8e7fae08e3b8c3d09c6471cf
View Raw JSON Data
{
  "trx_id": "e593562118834ada8e7fae08e3b8c3d09c6471cf",
  "block": 28247963,
  "trx_in_block": 11,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-03T19:34:54",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "security",
      "author": "vault12",
      "permlink": "what-is-digital-custody",
      "title": "What is Digital Custody?",
      "body": "In the first installment to this series, we introduced the notion of a ‘digital asset.’ We explained our thesis for why digital custody — secure handling of valuable digital assets — is an important topic of discussion, given that the valuation of digital assets has increased dramatically over the past few decades. In our second post, we explained how the digital asset subclass of cryptocurrency has major security risks that magnifies the scope of how much digital asset custody is demanded.\n\nIn the conversations around cryptocurrency, there is one thing that has been under-discussed. As we all know, cryptocurrency is peer to peer — that means instead of a bank holding on to your money and keeping your funds intact, you, yourself are responsible. One the one hand, this gives people the ability to own their own money and appeals to the libertarian crowd. On the other hand, some argue that people are not capable of taking control of their finances — and rightfully so. Either way, the topic of how cryptocurrency assets are held must be discussed. Maintaining a 48-character private key (which gives access to a cryptocurrency wallet) is difficult.\n\nThis article from the beginning of 2018 highlights many of the challenges with specific solutions, alas these challenges remain as we enter 2019.\n\nCustody is a service given by professionals for the holding and maintenance of valuable assets; traditionally frequent among high net worth individuals and institutions. This service isn’t common among the everyday consumer because their banks act as custodians to their assets; people can store the few valuables they have in a bank account or safety deposit box. While this culture of custody worked in the traditional finance realm, an era of peer to peer finance — where consumers own their assets and are thus liable for them — begs a new way of conceiving custody.\n\nDigital custody will be a new wave in the institutional and HNW realm of peer to peer finance. This is because managing private keys of accounts upwards of a million dollars will not be left to single individuals to maintain them on a hard or stick drive.\n\nDemand for digital custody of cryptocurrency assets has risen rapidly throughout the past few years as speculating on, holding, and using crypto assets became more popular. These options range from robust, institutional-grade complying custody solutions like Coinbase Custody to more flexible and controlled custody options like personal cryptocurrency wallets. With owners holding onto assets for the long term, and security threats standing their ground, digital custody will be an important topic of discussion for the future of the asset class.\n\nCustodians\nOne of the only compliant custody solutions on the market right now is Coinbase Custody. Coinbase Custody is a service that provides insurance, hierarchical control, segregated cold storage, SLAs on fund transfers, and 24/7 customer service for accounts on the platform. Coinbase works in collaboration with an SEC-registered broker-dealer and FINRA compliant company known as ETC to be fully compliant as a custody service provider.\n\nWhile digital custody with the likes of Coinbase may be the best solution for high net worth individuals, this service is unavailable for typical retail investors. Moreover, institutions have grown to be skeptical of Coinbase Custody because the idea of custody of an asset typically entails disintermediating the asset from the market. Most hedge funds await big names like Goldman Sachs and ICE to open up custody desks, so that custody of their assets is handled outside of the hands of cryptocurrency businesses. Institutions also await the approval of a cryptocurrency exchange-traded product (ETP) which could turn out to be a powerful liquidity and custody solution to the market. However, many previous filings have been denied by the SEC, and it is unclear when the SEC will approve one.\n\nExchanges\nExchanges take custody of assets that speculators own. It’s apparent that traders are very comfortable holding their funds on exchanges — as some of the largest exchanges hold a total of over 4% of Bitcoin’s circulating supply. However, exchanges have not proven themselves to be bulletproof custodians in the past. Mt. Gox’s hack in 2014, Bitfinex’s hack in 2016, and Coincheck’s hack in 2018 showed us that exchanges are not exactly what one would call risk-free.\n\nHolding assets on exchanges is frequent among retail investors. Institutions with a lot of capital typically open up corporate accounts on multiple exchanges for more liquid trading. Exchanges like Bittrex, Poloniex, Kraken, OKex, and Huobi have opened doors to institutions where they provide more customized service and custody options.\n\nWallets\nWallets are means of storing public and private key pairs that identify and give access to cryptocurrency on the blockchain. Wallets include both hot wallets and cold storage wallets. Hot wallets are connected to the internet. They could include original core software wallets or web wallets. Where this wallet is stored presents a point of failure — if a malicious actor gets hold of the wallet, they could steal a users funds.\n\nCold wallets are offline and isolated, such as a hardware wallet or a paper wallet. Hardware wallets are more secure but more complicated for the average user. Executing a transaction on a hardware wallet requires that one confirms the transaction using a button on the physical device. To protect individuals from losing funds if they lose their device, each hardware wallet is prescribed a seed phrase. This is a set of words that are entered into an app to regain access to a wallet without having to have that device. While hardware wallets are relatively secure and safe, the seed phrase is a central point of failure to the security of one’s funds.\n\nWe’ve established a few things so far. Hot wallets present a single point of failure in wherever the private access key is stored. Cold storage presents a single point of failure in wherever the private key or seed phrase to restore the account is stored. Exchanges store funds in their wallets which could be compromised at any time. Professional digital custody solutions are not where institutions quite need them to be and are unavailable to average investors.\n\nSo how do we establish a universal and secure means of digital custody that does not entail some sort of a central point of failure? The way we at Vault12 plan to do so is by decentralizing storage of access points themselves — private keys and seed phrases — breaking them up into shares that are useless on their own, but then are combined to reconstruct these keys. This isn’t a solution that would replace paper or hardware wallets per se, but rather would be an extra layer of security on top.\n\nIn other words, we’ll spread these central points of failure out; to make the storage of access keys to cryptocurrency safer, more secure, and more practical. Instead of storing your private keys on a server, or on a fragile memory disk — your keys will be split up and stored on a mesh of devices around the world — completely resistant to targeted attacks and unfortunate occurrences.\n\n\nDigital custody of crypto assets remains an opportunity for innovation. We’re looking to find the fine line between decentralization, security, and usability of cryptocurrency wallets — and bring that solution to you.",
      "json_metadata": "{\"tags\":[\"security\",\"blockchain\",\"custody\",\"crypto\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
vault12received 0.030 STEEM, 0.037 SP author reward for @vault12 / security-threats-to-cryptocurrency-owners
2018/11/26 19:18:33
authorvault12
permlinksecurity-threats-to-cryptocurrency-owners
sbd payout0.000 SBD
steem payout0.030 STEEM
vesting payout60.419929 VESTS
Transaction InfoBlock #28046111/Virtual Operation #6
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 28046111,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 6,
  "timestamp": "2018-11-26T19:18:33",
  "op": [
    "author_reward",
    {
      "author": "vault12",
      "permlink": "security-threats-to-cryptocurrency-owners",
      "sbd_payout": "0.000 SBD",
      "steem_payout": "0.030 STEEM",
      "vesting_payout": "60.419929 VESTS"
    }
  ]
}
2018/11/22 04:00:30
voterhackerzizon
authorvault12
permlinkintroducing-the-vault12-alpha-release
weight100 (1.00%)
Transaction InfoBlock #27912632/Trx 8e315f6e2fb8dbbf1fceb3556650ca79c85f86fe
View Raw JSON Data
{
  "trx_id": "8e315f6e2fb8dbbf1fceb3556650ca79c85f86fe",
  "block": 27912632,
  "trx_in_block": 16,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-22T04:00:30",
  "op": [
    "vote",
    {
      "voter": "hackerzizon",
      "author": "vault12",
      "permlink": "introducing-the-vault12-alpha-release",
      "weight": 100
    }
  ]
}
2018/11/22 04:00:15
parent author
parent permlinkstartup
authorvault12
permlinkintroducing-the-vault12-alpha-release
titleIntroducing the Vault12 Alpha Release
body@@ -203,16 +203,45 @@ ion only + (https://vault12.com/alpha/) , we are
json metadata{"tags":["startup","custody","security","blockchain"],"links":["https://vault12.com/alpha/","https://player.vimeo.com/video/297312975","https://player.vimeo.com/video/297302689","https://player.vimeo.com/video/258424334"],"app":"steemit/0.1","format":"markdown","image":["https://cdn-images-1.medium.com/max/2000/1*6D9LUIWyG8IMydJ0StKrZQ.png"]}
Transaction InfoBlock #27912627/Trx d650e0af6a7e5dd5d9914fb81dfd9000b42ce781
View Raw JSON Data
{
  "trx_id": "d650e0af6a7e5dd5d9914fb81dfd9000b42ce781",
  "block": 27912627,
  "trx_in_block": 30,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-22T04:00:15",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "startup",
      "author": "vault12",
      "permlink": "introducing-the-vault12-alpha-release",
      "title": "Introducing the Vault12 Alpha Release",
      "body": "@@ -203,16 +203,45 @@\n ion only\n+ (https://vault12.com/alpha/)\n , we are\n",
      "json_metadata": "{\"tags\":[\"startup\",\"custody\",\"security\",\"blockchain\"],\"links\":[\"https://vault12.com/alpha/\",\"https://player.vimeo.com/video/297312975\",\"https://player.vimeo.com/video/297302689\",\"https://player.vimeo.com/video/258424334\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\",\"image\":[\"https://cdn-images-1.medium.com/max/2000/1*6D9LUIWyG8IMydJ0StKrZQ.png\"]}"
    }
  ]
}
2018/11/21 21:58:24
voterraise-me-up
authorvault12
permlinkintroducing-the-vault12-alpha-release
weight1 (0.01%)
Transaction InfoBlock #27905391/Trx 01e15998dc571f9145c83cd2b93cffb85d6855be
View Raw JSON Data
{
  "trx_id": "01e15998dc571f9145c83cd2b93cffb85d6855be",
  "block": 27905391,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-21T21:58:24",
  "op": [
    "vote",
    {
      "voter": "raise-me-up",
      "author": "vault12",
      "permlink": "introducing-the-vault12-alpha-release",
      "weight": 1
    }
  ]
}
2018/11/21 21:55:24
parent author
parent permlinkstartup
authorvault12
permlinkintroducing-the-vault12-alpha-release
titleIntroducing the Vault12 Alpha Release
body@@ -1,8 +1,79 @@ +https://cdn-images-1.medium.com/max/2000/1*6D9LUIWyG8IMydJ0StKrZQ.png%0A%0A *After a
json metadata{"tags":["startup","custody","security","blockchain"],"links":["https://player.vimeo.com/video/297312975","https://player.vimeo.com/video/297302689","https://player.vimeo.com/video/258424334"],"app":"steemit/0.1","format":"markdown","image":["https://cdn-images-1.medium.com/max/2000/1*6D9LUIWyG8IMydJ0StKrZQ.png"]}
Transaction InfoBlock #27905331/Trx c47e566422bf6d37a95c28cb06a1b91f6193b764
View Raw JSON Data
{
  "trx_id": "c47e566422bf6d37a95c28cb06a1b91f6193b764",
  "block": 27905331,
  "trx_in_block": 14,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-21T21:55:24",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "startup",
      "author": "vault12",
      "permlink": "introducing-the-vault12-alpha-release",
      "title": "Introducing the Vault12 Alpha Release",
      "body": "@@ -1,8 +1,79 @@\n+https://cdn-images-1.medium.com/max/2000/1*6D9LUIWyG8IMydJ0StKrZQ.png%0A%0A\n *After a\n",
      "json_metadata": "{\"tags\":[\"startup\",\"custody\",\"security\",\"blockchain\"],\"links\":[\"https://player.vimeo.com/video/297312975\",\"https://player.vimeo.com/video/297302689\",\"https://player.vimeo.com/video/258424334\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\",\"image\":[\"https://cdn-images-1.medium.com/max/2000/1*6D9LUIWyG8IMydJ0StKrZQ.png\"]}"
    }
  ]
}
2018/11/21 21:49:36
votereforucom
authorvault12
permlinkintroducing-the-vault12-alpha-release
weight103 (1.03%)
Transaction InfoBlock #27905215/Trx ac28ea7fa9a8efeee27fba2268f415af179999e6
View Raw JSON Data
{
  "trx_id": "ac28ea7fa9a8efeee27fba2268f415af179999e6",
  "block": 27905215,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-21T21:49:36",
  "op": [
    "vote",
    {
      "voter": "eforucom",
      "author": "vault12",
      "permlink": "introducing-the-vault12-alpha-release",
      "weight": 103
    }
  ]
}
2018/11/21 21:46:15
parent author
parent permlinkstartup
authorvault12
permlinkintroducing-the-vault12-alpha-release
titleIntroducing the Vault12 Alpha Release
body*After almost four years of development, design and a successful ICO we are ready to launch our Alpha program. Currently by invitation only, we are enrolling Vault12 investors in the program to test out the core functionality themselves.* As we release subsequent Alpha release builds we will expand the scope of people involved in the program. Stay tuned to our Telegram channel. Let’s get an update from the R&D team — meet Blake Commagere talking about the upcoming release. https://vimeo.com/297312975 Here’s a quick update on the design behind Vault12 from Brandon Forant, the designer responsible for creating Vault12's simple but powerful user experience. https://vimeo.com/297302689 If you are an investor in Vault12 — check your inbox for an Alpha Program invitation. Everyone else — please feel free to subscribe to our updates — we will be sending invitations to subscribers very soon. https://vimeo.com/258424334
json metadata{"tags":["startup","custody","security","blockchain"],"links":["https://player.vimeo.com/video/297312975","https://player.vimeo.com/video/297302689","https://player.vimeo.com/video/258424334"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #27905148/Trx a9902676829168001aa896dc41384d09496fa0bd
View Raw JSON Data
{
  "trx_id": "a9902676829168001aa896dc41384d09496fa0bd",
  "block": 27905148,
  "trx_in_block": 17,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-21T21:46:15",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "startup",
      "author": "vault12",
      "permlink": "introducing-the-vault12-alpha-release",
      "title": "Introducing the Vault12 Alpha Release",
      "body": "*After almost four years of development, design and a successful ICO we are ready to launch our Alpha program. Currently by invitation only, we are enrolling Vault12 investors in the program to test out the core functionality themselves.*\n\nAs we release subsequent Alpha release builds we will expand the scope of people involved in the program. Stay tuned to our Telegram channel.\n\nLet’s get an update from the R&D team — meet Blake Commagere talking about the upcoming release.\n\nhttps://vimeo.com/297312975\n\nHere’s a quick update on the design behind Vault12 from Brandon Forant, the designer responsible for creating Vault12's simple but powerful user experience.\n\nhttps://vimeo.com/297302689\n\nIf you are an investor in Vault12 — check your inbox for an Alpha Program invitation. Everyone else — please feel free to subscribe to our updates — we will be sending invitations to subscribers very soon.\n\nhttps://vimeo.com/258424334",
      "json_metadata": "{\"tags\":[\"startup\",\"custody\",\"security\",\"blockchain\"],\"links\":[\"https://player.vimeo.com/video/297312975\",\"https://player.vimeo.com/video/297302689\",\"https://player.vimeo.com/video/258424334\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
2018/11/19 20:02:48
authorvault12
permlinkthe-rapidly-increasing-value-of-digital-assets-demands-better-security
sbd payout0.009 SBD
steem payout0.000 STEEM
vesting payout34.251254 VESTS
Transaction InfoBlock #27845498/Virtual Operation #6
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 27845498,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 6,
  "timestamp": "2018-11-19T20:02:48",
  "op": [
    "author_reward",
    {
      "author": "vault12",
      "permlink": "the-rapidly-increasing-value-of-digital-assets-demands-better-security",
      "sbd_payout": "0.009 SBD",
      "steem_payout": "0.000 STEEM",
      "vesting_payout": "34.251254 VESTS"
    }
  ]
}
2018/11/19 19:47:30
voterphatima
authorvault12
permlinksecurity-threats-to-cryptocurrency-owners
weight500 (5.00%)
Transaction InfoBlock #27845193/Trx da19def12658e81c251f0f0d39578448b5833c4f
View Raw JSON Data
{
  "trx_id": "da19def12658e81c251f0f0d39578448b5833c4f",
  "block": 27845193,
  "trx_in_block": 45,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-19T19:47:30",
  "op": [
    "vote",
    {
      "voter": "phatima",
      "author": "vault12",
      "permlink": "security-threats-to-cryptocurrency-owners",
      "weight": 500
    }
  ]
}
2018/11/19 19:44:18
voterbukiland
authorvault12
permlinksecurity-threats-to-cryptocurrency-owners
weight300 (3.00%)
Transaction InfoBlock #27845129/Trx 675bfe6ed1a667112bf277ac2bd2368b6d384665
View Raw JSON Data
{
  "trx_id": "675bfe6ed1a667112bf277ac2bd2368b6d384665",
  "block": 27845129,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-19T19:44:18",
  "op": [
    "vote",
    {
      "voter": "bukiland",
      "author": "vault12",
      "permlink": "security-threats-to-cryptocurrency-owners",
      "weight": 300
    }
  ]
}
2018/11/19 19:30:06
votersuonghuynh
authorvault12
permlinksecurity-threats-to-cryptocurrency-owners
weight50 (0.50%)
Transaction InfoBlock #27844845/Trx 3af839e136bc5ec13408659758a7ae7d8e3797a4
View Raw JSON Data
{
  "trx_id": "3af839e136bc5ec13408659758a7ae7d8e3797a4",
  "block": 27844845,
  "trx_in_block": 24,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-19T19:30:06",
  "op": [
    "vote",
    {
      "voter": "suonghuynh",
      "author": "vault12",
      "permlink": "security-threats-to-cryptocurrency-owners",
      "weight": 50
    }
  ]
}
2018/11/19 19:29:39
voterbitok.xyz
authorvault12
permlinksecurity-threats-to-cryptocurrency-owners
weight100 (1.00%)
Transaction InfoBlock #27844836/Trx 709cf5f6c7744ecaadfc2ba7ffae435578ef2e35
View Raw JSON Data
{
  "trx_id": "709cf5f6c7744ecaadfc2ba7ffae435578ef2e35",
  "block": 27844836,
  "trx_in_block": 12,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-19T19:29:39",
  "op": [
    "vote",
    {
      "voter": "bitok.xyz",
      "author": "vault12",
      "permlink": "security-threats-to-cryptocurrency-owners",
      "weight": 100
    }
  ]
}
2018/11/19 19:27:42
voterraise-me-up
authorvault12
permlinksecurity-threats-to-cryptocurrency-owners
weight1 (0.01%)
Transaction InfoBlock #27844797/Trx 9c6df792b96172bf3be24dcc523277ee122e9b4b
View Raw JSON Data
{
  "trx_id": "9c6df792b96172bf3be24dcc523277ee122e9b4b",
  "block": 27844797,
  "trx_in_block": 15,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-19T19:27:42",
  "op": [
    "vote",
    {
      "voter": "raise-me-up",
      "author": "vault12",
      "permlink": "security-threats-to-cryptocurrency-owners",
      "weight": 1
    }
  ]
}
2018/11/19 19:18:33
parent author
parent permlinkbitcoin
authorvault12
permlinksecurity-threats-to-cryptocurrency-owners
titleSecurity Threats to Cryptocurrency owners
body![](https://cdn.steemitimages.com/DQmePUBw38GMrWcZnZsJW8UjdtRRkC4owxHT7R2RgurPP3s/image.png) *One thing cryptocurrency advocates talk about when they explain blockchain technology to you is that blockchains present no single point of failure. By central point of failure, they mean that there's no single place that you could attack to stop or maliciously modify the network. While this sounds pleasant on paper - and is absolutely true in terms of the security of the network - in practice, we observe that the central point of failure associated with a centralized database is pushed towards the user's end of the spectrum on a blockchain. Blockchains trade user security assurance off in the effort of achieving network security.* Instead of there being one single point of failure for the network as there would be in a traditional database, a cryptocurrency holder stores a private key to access their funds - which presents its own new central point of failure. In the first scenario, users didn't have to worry entirely about the theft of their funds stored in the bank, or an accidental payment. This is because banks work with consumers to issue chargebacks for unintentional transactions. In the second scenario, however, users are fully responsible for the safety of their funds. In effect; by owning your own money, you become a central point of failure for the security of your funds. **What 'owning your own money' really entails** The decentralized movement pushes the idea of owning your own money as one of the strongest selling points to adopting cryptocurrency. The key idea here is that instead of central authorities being able to decide an economy's monetary policies, the monetary policy is embedded into the original software for the blockchain and remains immutable forever. The part of that last sentence to pay close attention to is 'immutable'. Some argue that immutability is everything you could ask for in money because it establishes soundness in money. However, because a blockchain is immutable, any losses as a result of a security breach or accident are irreversible. This opens digital asset finance up to a whole new array of security threats. **Unfortunate occurrences** Taking control of your own crypto wealth puts your funds at risk of environmental disaster. Should an earthquake demolish your home and crush your hardware wallet or hard drive with your paper wallet stored in it, it most likely will not be recoverable. This means your funds are at risk of being stuck on the blockchain forever. Bad key management is by far one of the most common ways that cryptocurrencies are lost. If people need a 'forgot password' option to recover 9-character passwords, it's hard to believe that people will be able to maintain a 48-character piece of ciphertext. One U.K. resident, James Howell, mined Bitcoin in the early days and stored it on his hard drive. At one point, he accidentally threw that hard drive away. That hard drive held 7,500 Bitcoins, which amounts to over $60M at the present $8,000 spot price. Key management is difficult for people that are technology-savvy as is - imagine how hard it is for people that aren't involved in technology on a daily basis. Since blockchains are immutable, that means there isn't any way to issue a reversal in the event that you lose your private key or send a transaction by accident. Chainalysis estimates that between 17 and 23 percent of all bitcoins have been lost. These are all losses of cryptocurrency as a result of losing a private key. ![](https://cdn.steemitimages.com/DQmPftSWqDmLg3TstGriSExc9326S8jWEJQ7NXaHVZFgzjP/image.png) In case all of this wasn't enough perspective, consider the fact that about US$4.5bn in Ether is stuck on the Ethereum blockchain from the genesis block, presumably because users that this Ether was airdropped to did not save their private keys. **Hostile actors** It isn't just self-imposed threats that are risks to cryptocurrency holders. For insight to this next excerpt, we refer to the Ross Ulbricht legal case. In this case, Ross was given a life sentence for running an illegal 'free market' online marketplace which subsequently became a haven for drug traffickers. When he was arrested, police seized all of Ross's Bitcoin holdings, which amounted to over $28M at the time. The reason police were able to seize his holdings so easily is that wherever he held his Bitcoin was a central point of failure - a central point of failure brutally exploited by the government. Hackers pose one of the most serious threats to cryptocurrency holders. In 2017 alone, 13.7% of the entire world's population reported a hack of some digital asset - including both bank account balance and cryptocurrency. This asserts two key and important points. One, hackers are rampant and will relentlessly continue to hack consumers. Two, consumers are not effective at personal security. Should the world switch over to blockchain-based finance - where transactions are irreversible - this would be far greater of a threat than it is right now. Hacks could be possible through targeted malware or virus attacks, or deliberate compromisations. In 2017, a WannaCry virus attack yielded a loss of over 108,000 Euros from everyday consumers using applications compromised by the virus. In July 2018, a chrome VPN extension was hacked and saved private keys entered into a MyEtherWallet browser tab - leading to a loss of over US$1.2mn from average consumers. Early in February, a MyEtherWallet DNS hack let hackers steal US$365,000 from users accessing their Ether wallets in a short timeframe. Exchanges have also not been left out of the fun - with numerous major exchanges seeing thefts through security breaches. Some of these include Mt. Gox, BitInstant, CoinCheck, and BitGrail. Hundreds of millions have been lost, and not all of these exchanges went on to cover the losses exchange users faced. This all comes to show that hackers do indeed pose a risk to cryptocurrency holders and cryptocurrency custody handlers. It is estimated that almost **US$2B** has been lost to major cryptocurrency hacks since the rise of the asset class. Overall, the valuation of the cryptocurrency market capitalization is increasing over time. This contributes to a higher valuation of digital assets as a whole. With such security threats discussed in this article in place and the valuation of digital assets increasing quickly, our original thesis is further solidified. Digital custody - whether centralized or decentralized - will be an important theme as the market moves on from the manic hype and begins to understand the major fundamental issues regarding digital assets as a whole. **"The Winklevosses came up with an elaborate system to store and secure their private keys. They cut up printouts of their private keys into pieces and then distributed them in envelopes to safe deposit boxes around the country, so if one envelope were stolen the thief would not have the entire key."** *"How the Winklevoss Twins Found Vindication in a Bitcoin Fortune" by Nathaniel Popper, New York Times, December 19, 2017* Billions of dollars of blockchain-based cryptocurrency have been lost to hacks or unfortunate occurrences. ![](https://cdn.steemitimages.com/DQmWAvFEnAgTfitdHJgFpQEgjmrk6XkT7mHpTPkq31wLoZ6/image.png) *20% of all Bitcoin is lost forever. That's $20B, in fact, in 2018 alone, $1.1B has been stolen.* Vault12 has recognized this early on and has been working diligently to discover ways of maintaining decentralized custody of digital assets since 2015. In our next article, we provide more insights into our understanding of digital custody.
json metadata{"tags":["bitcoin","blockchain","security","custody"],"image":["https://cdn.steemitimages.com/DQmePUBw38GMrWcZnZsJW8UjdtRRkC4owxHT7R2RgurPP3s/image.png","https://cdn.steemitimages.com/DQmPftSWqDmLg3TstGriSExc9326S8jWEJQ7NXaHVZFgzjP/image.png","https://cdn.steemitimages.com/DQmWAvFEnAgTfitdHJgFpQEgjmrk6XkT7mHpTPkq31wLoZ6/image.png"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #27844614/Trx 6d4091e87cadef220e3572061d82fd3fd7394006
View Raw JSON Data
{
  "trx_id": "6d4091e87cadef220e3572061d82fd3fd7394006",
  "block": 27844614,
  "trx_in_block": 15,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-19T19:18:33",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "bitcoin",
      "author": "vault12",
      "permlink": "security-threats-to-cryptocurrency-owners",
      "title": "Security Threats to Cryptocurrency owners",
      "body": "![](https://cdn.steemitimages.com/DQmePUBw38GMrWcZnZsJW8UjdtRRkC4owxHT7R2RgurPP3s/image.png)\n\n*One thing cryptocurrency advocates talk about when they explain blockchain technology to you is that blockchains present no single point of failure. By central point of failure, they mean that there's no single place that you could attack to stop or maliciously modify the network. While this sounds pleasant on paper - and is absolutely true in terms of the security of the network - in practice, we observe that the central point of failure associated with a centralized database is pushed towards the user's end of the spectrum on a blockchain. Blockchains trade user security assurance off in the effort of achieving network security.*\n\nInstead of there being one single point of failure for the network as there would be in a traditional database, a cryptocurrency holder stores a private key to access their funds - which presents its own new central point of failure. In the first scenario, users didn't have to worry entirely about the theft of their funds stored in the bank, or an accidental payment. This is because banks work with consumers to issue chargebacks for unintentional transactions. In the second scenario, however, users are fully responsible for the safety of their funds.\nIn effect; by owning your own money, you become a central point of failure for the security of your funds.\n\n**What 'owning your own money' really entails**\nThe decentralized movement pushes the idea of owning your own money as one of the strongest selling points to adopting cryptocurrency. The key idea here is that instead of central authorities being able to decide an economy's monetary policies, the monetary policy is embedded into the original software for the blockchain and remains immutable forever. The part of that last sentence to pay close attention to is 'immutable'. Some argue that immutability is everything you could ask for in money because it establishes soundness in money. However, because a blockchain is immutable, any losses as a result of a security breach or accident are irreversible. This opens digital asset finance up to a whole new array of security threats.\n\n**Unfortunate occurrences**\nTaking control of your own crypto wealth puts your funds at risk of environmental disaster. Should an earthquake demolish your home and crush your hardware wallet or hard drive with your paper wallet stored in it, it most likely will not be recoverable. This means your funds are at risk of being stuck on the blockchain forever.\nBad key management is by far one of the most common ways that cryptocurrencies are lost. If people need a 'forgot password' option to recover 9-character passwords, it's hard to believe that people will be able to maintain a 48-character piece of ciphertext. One U.K. resident, James Howell, mined Bitcoin in the early days and stored it on his hard drive. At one point, he accidentally threw that hard drive away. That hard drive held 7,500 Bitcoins, which amounts to over $60M at the present $8,000 spot price.\n\nKey management is difficult for people that are technology-savvy as is - imagine how hard it is for people that aren't involved in technology on a daily basis. Since blockchains are immutable, that means there isn't any way to issue a reversal in the event that you lose your private key or send a transaction by accident. Chainalysis estimates that between 17 and 23 percent of all bitcoins have been lost. These are all losses of cryptocurrency as a result of losing a private key.\n\n![](https://cdn.steemitimages.com/DQmPftSWqDmLg3TstGriSExc9326S8jWEJQ7NXaHVZFgzjP/image.png)\n\nIn case all of this wasn't enough perspective, consider the fact that about US$4.5bn in Ether is stuck on the Ethereum blockchain from the genesis block, presumably because users that this Ether was airdropped to did not save their private keys.\n\n**Hostile actors**\nIt isn't just self-imposed threats that are risks to cryptocurrency holders. For insight to this next excerpt, we refer to the Ross Ulbricht legal case. In this case, Ross was given a life sentence for running an illegal 'free market' online marketplace which subsequently became a haven for drug traffickers. When he was arrested, police seized all of Ross's Bitcoin holdings, which amounted to over $28M at the time. The reason police were able to seize his holdings so easily is that wherever he held his Bitcoin was a central point of failure - a central point of failure brutally exploited by the government.\n\nHackers pose one of the most serious threats to cryptocurrency holders. In 2017 alone, 13.7% of the entire world's population reported a hack of some digital asset - including both bank account balance and cryptocurrency. This asserts two key and important points. One, hackers are rampant and will relentlessly continue to hack consumers. Two, consumers are not effective at personal security. Should the world switch over to blockchain-based finance - where transactions are irreversible - this would be far greater of a threat than it is right now.\n\nHacks could be possible through targeted malware or virus attacks, or deliberate compromisations. In 2017, a WannaCry virus attack yielded a loss of over 108,000 Euros from everyday consumers using applications compromised by the virus. In July 2018, a chrome VPN extension was hacked and saved private keys entered into a MyEtherWallet browser tab - leading to a loss of over US$1.2mn from average consumers. Early in February, a MyEtherWallet DNS hack let hackers steal US$365,000 from users accessing their Ether wallets in a short timeframe.\n\nExchanges have also not been left out of the fun - with numerous major exchanges seeing thefts through security breaches. Some of these include Mt. Gox, BitInstant, CoinCheck, and BitGrail. Hundreds of millions have been lost, and not all of these exchanges went on to cover the losses exchange users faced. This all comes to show that hackers do indeed pose a risk to cryptocurrency holders and cryptocurrency custody handlers.\n\nIt is estimated that almost **US$2B** has been lost to major cryptocurrency hacks since the rise of the asset class.\nOverall, the valuation of the cryptocurrency market capitalization is increasing over time. This contributes to a higher valuation of digital assets as a whole. With such security threats discussed in this article in place and the valuation of digital assets increasing quickly, our original thesis is further solidified. Digital custody - whether centralized or decentralized - will be an important theme as the market moves on from the manic hype and begins to understand the major fundamental issues regarding digital assets as a whole.\n\n**\"The Winklevosses came up with an elaborate system to store and secure their private keys. They cut up printouts of their private keys into pieces and then distributed them in envelopes to safe deposit boxes around the country, so if one envelope were stolen the thief would not have the entire key.\"**\n\n*\"How the Winklevoss Twins Found Vindication in a Bitcoin Fortune\" by Nathaniel Popper, New York Times, December 19, 2017*\n\n\nBillions of dollars of blockchain-based cryptocurrency have been lost to hacks or unfortunate occurrences.\n\n![](https://cdn.steemitimages.com/DQmWAvFEnAgTfitdHJgFpQEgjmrk6XkT7mHpTPkq31wLoZ6/image.png)\n\n*20% of all Bitcoin is lost forever. That's $20B, in fact, in 2018 alone, $1.1B has been stolen.*\n\nVault12 has recognized this early on and has been working diligently to discover ways of maintaining decentralized custody of digital assets since 2015. In our next article, we provide more insights into our understanding of digital custody.",
      "json_metadata": "{\"tags\":[\"bitcoin\",\"blockchain\",\"security\",\"custody\"],\"image\":[\"https://cdn.steemitimages.com/DQmePUBw38GMrWcZnZsJW8UjdtRRkC4owxHT7R2RgurPP3s/image.png\",\"https://cdn.steemitimages.com/DQmPftSWqDmLg3TstGriSExc9326S8jWEJQ7NXaHVZFgzjP/image.png\",\"https://cdn.steemitimages.com/DQmWAvFEnAgTfitdHJgFpQEgjmrk6XkT7mHpTPkq31wLoZ6/image.png\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
2018/11/19 19:12:21
parent author
parent permlinkcryptocurrency
authorvault12
permlinkthe-rapidly-increasing-value-of-digital-assets-demands-better-security
titleThe Rapidly Increasing Value of Digital Assets Demands Better Security
body![](https://cdn.steemitimages.com/DQmdwNzw6U4WoygqMEgPaTYB43HMwxJNT2q4bHHpbDebAuf/image.png) *There was a time when the most important things people stored in the cloud were photographs and resumes. Now digital assets include bank account credentials, cryptocurrency, car keys, and house keys. The value of these assets has dramatically increased, so the protection needs to be dramatically upgraded too, commensurate with what is being protected.* **A digital asset is a digitally stored, intangible object that is owned (by someone or something) and could have value.** However, one could argue that it isn’t quite right to describe a digital asset in such this way. Changes in the world over the past few decades have warranted a change in the definition. Ten years ago, a digital asset was something very different. What once represented images and documents now potentially represents entire financial systems, information oceans, and access points to the control of anything and everything. ![](https://cdn.steemitimages.com/DQmb3Qg4kZnC6ZRMA8ZQ69yq9uQ2JEDCtxo3xkzQKZTgEKg/image.png) As a thought experiment, consider the evolution of cloud sharing. Early iterations of cloud sharing were always intended for people to store items of relatively personal value: photos, documents, videos, animations, audio, or other multimedia content. It wasn’t until cloud sharing was possible in the way late implementations like Dropbox established that the storage of digital assets on the cloud began erupting in popularity. Security Cost and Risk Protecting assets also requires a trade off between the value of the asset, the cost of security, the overall reduction in risk and of course convenience. People chose to put photos in cloud storage systems versus bank vaults. However as the value of assets has increased, the appropriate security has not kept pace. Car keys on a phone are already in deployment for many cars. The cryptographic keys giving smartphones access to cars, homes and other precious assets are of immense value. Yet the mechanisms to secure them have not kept pace. Cryptocurrency and Blockchain Ever since Cryptocurrency invented last decade, a new vector of digital assets has taken to the spotlight. This is a digital asset subclass — one of the digital financial instruments that are used as a store of value and means of exchange. So far, these assets have been stored in what can only be described as risky mediums e.g. online accounts, USB devices and the very mechanisms introduced to safeguard these assets — e.g. private keys — are left to individuals to protect in a scheme of their own devising. *“The Winklevosses came up with an elaborate system to store and secure their private keys. They cut up printouts of their private keys into pieces and then distributed them in envelopes to safe deposit boxes around the country, so if one envelope were stolen the thief would not have the entire key.”* “How the Winklevoss Twins Found Vindication in a Bitcoin Fortune” by Nathaniel Popper, New York Times, December 19, 2017 Billions of dollars of blockchain-based cryptocurrency have been lost to hacks or unfortunate occurrences. ![](https://cdn.steemitimages.com/DQmWAvFEnAgTfitdHJgFpQEgjmrk6XkT7mHpTPkq31wLoZ6/image.png) 20% of all Bitcoin is lost forever. That’s $20B, in fact, in 2018 alone, $1.1B has been stolen. Cryptocurrency and digitization have altered the notion of a digital asset — from what once represented information on a machine into something that represents valuable identity, big data, and finance objects. With this in mind, the security of these digital assets is a huge concern. In accordance with this abrupt spike in the valuation of digital assets, the security measures used to secure these assets need to be improved. Right now, there are just a few options for securing cryptocurrency and other digital assets; and all of them possess some single point of failure for the user. Therefore, how custody of these emerging classes of digital assets is handled must be considered. Threats to the security of cryptocurrency storage need to be analyzed, and the correct frameworks for digital custody need to be designed accordingly. Digital custody needs to be explored, improved, and researched vigorously if this rapid demand for stronger security is to ever sufficiently be met. In future articles, we will look at digital custody and how individuals are dealing with the risks and challenges of protecting their cryptocurrency. Published at https://medium.com/vault12/the-rapidly-increasing-value-of-digital-assets-demands-better-security-8f76b8c29f8b
json metadata{"tags":["cryptocurrency","blockchain","money","security","custody"],"image":["https://cdn.steemitimages.com/DQmdwNzw6U4WoygqMEgPaTYB43HMwxJNT2q4bHHpbDebAuf/image.png","https://cdn.steemitimages.com/DQmb3Qg4kZnC6ZRMA8ZQ69yq9uQ2JEDCtxo3xkzQKZTgEKg/image.png","https://cdn.steemitimages.com/DQmWAvFEnAgTfitdHJgFpQEgjmrk6XkT7mHpTPkq31wLoZ6/image.png"],"links":["https://medium.com/vault12/the-rapidly-increasing-value-of-digital-assets-demands-better-security-8f76b8c29f8b"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #27844490/Trx 2bcc0e9ac0902e68d412bd97a47cb8b7bac336a0
View Raw JSON Data
{
  "trx_id": "2bcc0e9ac0902e68d412bd97a47cb8b7bac336a0",
  "block": 27844490,
  "trx_in_block": 50,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-19T19:12:21",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "cryptocurrency",
      "author": "vault12",
      "permlink": "the-rapidly-increasing-value-of-digital-assets-demands-better-security",
      "title": "The Rapidly Increasing Value of Digital Assets Demands Better Security",
      "body": "![](https://cdn.steemitimages.com/DQmdwNzw6U4WoygqMEgPaTYB43HMwxJNT2q4bHHpbDebAuf/image.png)\n\n*There was a time when the most important things people stored in the cloud were photographs and resumes. Now digital assets include bank account credentials, cryptocurrency, car keys, and house keys. The value of these assets has dramatically increased, so the protection needs to be dramatically upgraded too, commensurate with what is being protected.*\n\n**A digital asset is a digitally stored, intangible object that is owned (by someone or something) and could have value.**\n\nHowever, one could argue that it isn’t quite right to describe a digital asset in such this way. Changes in the world over the past few decades have warranted a change in the definition. Ten years ago, a digital asset was something very different. What once represented images and documents now potentially represents entire financial systems, information oceans, and access points to the control of anything and everything.\n\n![](https://cdn.steemitimages.com/DQmb3Qg4kZnC6ZRMA8ZQ69yq9uQ2JEDCtxo3xkzQKZTgEKg/image.png)\n\nAs a thought experiment, consider the evolution of cloud sharing. Early iterations of cloud sharing were always intended for people to store items of relatively personal value: photos, documents, videos, animations, audio, or other multimedia content. It wasn’t until cloud sharing was possible in the way late implementations like Dropbox established that the storage of digital assets on the cloud began erupting in popularity.\n\nSecurity Cost and Risk\nProtecting assets also requires a trade off between the value of the asset, the cost of security, the overall reduction in risk and of course convenience. People chose to put photos in cloud storage systems versus bank vaults. However as the value of assets has increased, the appropriate security has not kept pace.\n\nCar keys on a phone are already in deployment for many cars. The cryptographic keys giving smartphones access to cars, homes and other precious assets are of immense value. Yet the mechanisms to secure them have not kept pace.\n\nCryptocurrency and Blockchain\nEver since Cryptocurrency invented last decade, a new vector of digital assets has taken to the spotlight. This is a digital asset subclass — one of the digital financial instruments that are used as a store of value and means of exchange. So far, these assets have been stored in what can only be described as risky mediums e.g. online accounts, USB devices and the very mechanisms introduced to safeguard these assets — e.g. private keys — are left to individuals to protect in a scheme of their own devising.\n\n*“The Winklevosses came up with an elaborate system to store and secure their private keys. They cut up printouts of their private keys into pieces and then distributed them in envelopes to safe deposit boxes around the country, so if one envelope were stolen the thief would not have the entire key.”*\n“How the Winklevoss Twins Found Vindication in a Bitcoin Fortune” by Nathaniel Popper, New York Times, December 19, 2017 \n\nBillions of dollars of blockchain-based cryptocurrency have been lost to hacks or unfortunate occurrences.\n\n![](https://cdn.steemitimages.com/DQmWAvFEnAgTfitdHJgFpQEgjmrk6XkT7mHpTPkq31wLoZ6/image.png)\n\n20% of all Bitcoin is lost forever. That’s $20B, in fact, in 2018 alone, $1.1B has been stolen.\nCryptocurrency and digitization have altered the notion of a digital asset — from what once represented information on a machine into something that represents valuable identity, big data, and finance objects.\n\nWith this in mind, the security of these digital assets is a huge concern. In accordance with this abrupt spike in the valuation of digital assets, the security measures used to secure these assets need to be improved. Right now, there are just a few options for securing cryptocurrency and other digital assets; and all of them possess some single point of failure for the user.\n\nTherefore, how custody of these emerging classes of digital assets is handled must be considered. Threats to the security of cryptocurrency storage need to be analyzed, and the correct frameworks for digital custody need to be designed accordingly. Digital custody needs to be explored, improved, and researched vigorously if this rapid demand for stronger security is to ever sufficiently be met.\n\nIn future articles, we will look at digital custody and how individuals are dealing with the risks and challenges of protecting their cryptocurrency.\n\nPublished at https://medium.com/vault12/the-rapidly-increasing-value-of-digital-assets-demands-better-security-8f76b8c29f8b",
      "json_metadata": "{\"tags\":[\"cryptocurrency\",\"blockchain\",\"money\",\"security\",\"custody\"],\"image\":[\"https://cdn.steemitimages.com/DQmdwNzw6U4WoygqMEgPaTYB43HMwxJNT2q4bHHpbDebAuf/image.png\",\"https://cdn.steemitimages.com/DQmb3Qg4kZnC6ZRMA8ZQ69yq9uQ2JEDCtxo3xkzQKZTgEKg/image.png\",\"https://cdn.steemitimages.com/DQmWAvFEnAgTfitdHJgFpQEgjmrk6XkT7mHpTPkq31wLoZ6/image.png\"],\"links\":[\"https://medium.com/vault12/the-rapidly-increasing-value-of-digital-assets-demands-better-security-8f76b8c29f8b\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
2018/11/16 03:28:51
parent authorvault12
parent permlinkthe-rapidly-increasing-value-of-digital-assets-demands-better-security
authorsteemitboard
permlinksteemitboard-notify-vault12-20181116t032853000z
title
bodyCongratulations @vault12! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) : <table><tr><td>https://steemitimages.com/60x60/http://steemitboard.com/notifications/firstpayout.png</td><td>You got your First payout</td></tr> </table> <sub>_[Click here to view your Board of Honor](https://steemitboard.com/@vault12)_</sub> <sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub> **Do not miss the last post from @steemitboard:** <table><tr><td><a href="https://steemit.com/steemfest/@steemitboard/the-meet-the-steemians-contest-is-over-results-are-coming-soon"><img src="https://steemitimages.com/64x128/https://cdn.steemitimages.com/DQmeLukvNFRsa7RURqsFpiLGEZZD49MiU52JtWmjS5S2wtW/image.png"></a></td><td><a href="https://steemit.com/steemfest/@steemitboard/the-meet-the-steemians-contest-is-over-results-are-coming-soon">The Meet the Steemians Contest is over - Results are coming soon ...</a></td></tr></table> > 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 InfoBlock #27739266/Trx 4ad01671d9ac91b5a05871ea08113755fc346582
View Raw JSON Data
{
  "trx_id": "4ad01671d9ac91b5a05871ea08113755fc346582",
  "block": 27739266,
  "trx_in_block": 15,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-16T03:28:51",
  "op": [
    "comment",
    {
      "parent_author": "vault12",
      "parent_permlink": "the-rapidly-increasing-value-of-digital-assets-demands-better-security",
      "author": "steemitboard",
      "permlink": "steemitboard-notify-vault12-20181116t032853000z",
      "title": "",
      "body": "Congratulations @vault12! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :\n\n<table><tr><td>https://steemitimages.com/60x60/http://steemitboard.com/notifications/firstpayout.png</td><td>You got your First payout</td></tr>\n</table>\n\n<sub>_[Click here to view your Board of Honor](https://steemitboard.com/@vault12)_</sub>\n<sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub>\n\n\n\n**Do not miss the last post from @steemitboard:**\n<table><tr><td><a href=\"https://steemit.com/steemfest/@steemitboard/the-meet-the-steemians-contest-is-over-results-are-coming-soon\"><img src=\"https://steemitimages.com/64x128/https://cdn.steemitimages.com/DQmeLukvNFRsa7RURqsFpiLGEZZD49MiU52JtWmjS5S2wtW/image.png\"></a></td><td><a href=\"https://steemit.com/steemfest/@steemitboard/the-meet-the-steemians-contest-is-over-results-are-coming-soon\">The Meet the Steemians Contest is over - Results are coming soon ...</a></td></tr></table>\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\"]}"
    }
  ]
}
vault12received 0.884 SBD, 1.507 SP author reward for @vault12 / understanding-shamir-s-secret-sharing
2018/11/15 17:09:09
authorvault12
permlinkunderstanding-shamir-s-secret-sharing
sbd payout0.884 SBD
steem payout0.000 STEEM
vesting payout2454.553234 VESTS
Transaction InfoBlock #27726892/Virtual Operation #4
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 27726892,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 4,
  "timestamp": "2018-11-15T17:09:09",
  "op": [
    "author_reward",
    {
      "author": "vault12",
      "permlink": "understanding-shamir-s-secret-sharing",
      "sbd_payout": "0.884 SBD",
      "steem_payout": "0.000 STEEM",
      "vesting_payout": "2454.553234 VESTS"
    }
  ]
}
2018/11/12 20:17:48
voterdevsup
authorvault12
permlinkthe-rapidly-increasing-value-of-digital-assets-demands-better-security
weight69 (0.69%)
Transaction InfoBlock #27644331/Trx 0a592d7eb4eaf8da068c4c1bdc6457e229d58d40
View Raw JSON Data
{
  "trx_id": "0a592d7eb4eaf8da068c4c1bdc6457e229d58d40",
  "block": 27644331,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-12T20:17:48",
  "op": [
    "vote",
    {
      "voter": "devsup",
      "author": "vault12",
      "permlink": "the-rapidly-increasing-value-of-digital-assets-demands-better-security",
      "weight": 69
    }
  ]
}
2018/11/12 20:14:18
votersuonghuynh
authorvault12
permlinkthe-rapidly-increasing-value-of-digital-assets-demands-better-security
weight100 (1.00%)
Transaction InfoBlock #27644261/Trx 0e6a150f0f0f781b9b2a4ef77bca2d3c3e84e368
View Raw JSON Data
{
  "trx_id": "0e6a150f0f0f781b9b2a4ef77bca2d3c3e84e368",
  "block": 27644261,
  "trx_in_block": 19,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-12T20:14:18",
  "op": [
    "vote",
    {
      "voter": "suonghuynh",
      "author": "vault12",
      "permlink": "the-rapidly-increasing-value-of-digital-assets-demands-better-security",
      "weight": 100
    }
  ]
}
2018/11/12 20:13:54
voterbitok.xyz
authorvault12
permlinkthe-rapidly-increasing-value-of-digital-assets-demands-better-security
weight100 (1.00%)
Transaction InfoBlock #27644253/Trx 9b60f016374ee51fc03c0202d21cd48647bb7c5a
View Raw JSON Data
{
  "trx_id": "9b60f016374ee51fc03c0202d21cd48647bb7c5a",
  "block": 27644253,
  "trx_in_block": 23,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-12T20:13:54",
  "op": [
    "vote",
    {
      "voter": "bitok.xyz",
      "author": "vault12",
      "permlink": "the-rapidly-increasing-value-of-digital-assets-demands-better-security",
      "weight": 100
    }
  ]
}
2018/11/12 20:13:15
voterraise-me-up
authorvault12
permlinkthe-rapidly-increasing-value-of-digital-assets-demands-better-security
weight1 (0.01%)
Transaction InfoBlock #27644240/Trx a8b8d972b825d1a81a16c5b23c1a6d693c4ae76a
View Raw JSON Data
{
  "trx_id": "a8b8d972b825d1a81a16c5b23c1a6d693c4ae76a",
  "block": 27644240,
  "trx_in_block": 4,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-12T20:13:15",
  "op": [
    "vote",
    {
      "voter": "raise-me-up",
      "author": "vault12",
      "permlink": "the-rapidly-increasing-value-of-digital-assets-demands-better-security",
      "weight": 1
    }
  ]
}
allazsent 0.001 SBD to @vault12- "Promote your post. Your post will be min. 10 resteemed with over 13000 followers and min. 25 Upvote Different account (5000 STEEM POWER). Your post will be more popular and you will find new frien..."
2018/11/12 20:06:00
fromallaz
tovault12
amount0.001 SBD
memoPromote your post. Your post will be min. 10 resteemed with over 13000 followers and min. 25 Upvote Different account (5000 STEEM POWER). Your post will be more popular and you will find new friends. Send 0.5 SBD or STEEM to @allaz (post URL as memo ) Service Active.
Transaction InfoBlock #27644095/Trx ebb8f69f600d09c0d32e7723ebf85ce4e03d4f41
View Raw JSON Data
{
  "trx_id": "ebb8f69f600d09c0d32e7723ebf85ce4e03d4f41",
  "block": 27644095,
  "trx_in_block": 18,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-12T20:06:00",
  "op": [
    "transfer",
    {
      "from": "allaz",
      "to": "vault12",
      "amount": "0.001 SBD",
      "memo": "Promote your post. Your post will be min. 10  resteemed with over 13000  followers and min. 25  Upvote Different account (5000  STEEM POWER). Your post will be more popular and you will find new friends. Send 0.5 SBD or STEEM to @allaz (post URL as memo ) Service Active."
    }
  ]
}
2018/11/12 20:02:48
parent author
parent permlinkcryptocurrency
authorvault12
permlinkthe-rapidly-increasing-value-of-digital-assets-demands-better-security
titleThe Rapidly Increasing Value of Digital Assets Demands Better Security
body![](https://cdn.steemitimages.com/DQmdwNzw6U4WoygqMEgPaTYB43HMwxJNT2q4bHHpbDebAuf/image.png) *There was a time when the most important things people stored in the cloud were photographs and resumes. Now digital assets include bank account credentials, cryptocurrency, car keys, and house keys. The value of these assets has dramatically increased, so the protection needs to be dramatically upgraded too, commensurate with what is being protected.* **A digital asset is a digitally stored, intangible object that is owned (by someone or something) and could have value.** However, one could argue that it isn’t quite right to describe a digital asset in such this way. Changes in the world over the past few decades have warranted a change in the definition. Ten years ago, a digital asset was something very different. What once represented images and documents now potentially represents entire financial systems, information oceans, and access points to the control of anything and everything. ![](https://cdn.steemitimages.com/DQmb3Qg4kZnC6ZRMA8ZQ69yq9uQ2JEDCtxo3xkzQKZTgEKg/image.png) As a thought experiment, consider the evolution of cloud sharing. Early iterations of cloud sharing were always intended for people to store items of relatively personal value: photos, documents, videos, animations, audio, or other multimedia content. It wasn’t until cloud sharing was possible in the way late implementations like Dropbox established that the storage of digital assets on the cloud began erupting in popularity. Security Cost and Risk Protecting assets also requires a trade off between the value of the asset, the cost of security, the overall reduction in risk and of course convenience. People chose to put photos in cloud storage systems versus bank vaults. However as the value of assets has increased, the appropriate security has not kept pace. Car keys on a phone are already in deployment for many cars. The cryptographic keys giving smartphones access to cars, homes and other precious assets are of immense value. Yet the mechanisms to secure them have not kept pace. Cryptocurrency and Blockchain Ever since Cryptocurrency invented last decade, a new vector of digital assets has taken to the spotlight. This is a digital asset subclass — one of the digital financial instruments that are used as a store of value and means of exchange. So far, these assets have been stored in what can only be described as risky mediums e.g. online accounts, USB devices and the very mechanisms introduced to safeguard these assets — e.g. private keys — are left to individuals to protect in a scheme of their own devising. *“The Winklevosses came up with an elaborate system to store and secure their private keys. They cut up printouts of their private keys into pieces and then distributed them in envelopes to safe deposit boxes around the country, so if one envelope were stolen the thief would not have the entire key.”* “How the Winklevoss Twins Found Vindication in a Bitcoin Fortune” by Nathaniel Popper, New York Times, December 19, 2017 Billions of dollars of blockchain-based cryptocurrency have been lost to hacks or unfortunate occurrences. ![](https://cdn.steemitimages.com/DQmWAvFEnAgTfitdHJgFpQEgjmrk6XkT7mHpTPkq31wLoZ6/image.png) 20% of all Bitcoin is lost forever. That’s $20B, in fact, in 2018 alone, $1.1B has been stolen. Cryptocurrency and digitization have altered the notion of a digital asset — from what once represented information on a machine into something that represents valuable identity, big data, and finance objects. With this in mind, the security of these digital assets is a huge concern. In accordance with this abrupt spike in the valuation of digital assets, the security measures used to secure these assets need to be improved. Right now, there are just a few options for securing cryptocurrency and other digital assets; and all of them possess some single point of failure for the user. Therefore, how custody of these emerging classes of digital assets is handled must be considered. Threats to the security of cryptocurrency storage need to be analyzed, and the correct frameworks for digital custody need to be designed accordingly. Digital custody needs to be explored, improved, and researched vigorously if this rapid demand for stronger security is to ever sufficiently be met. In future articles, we will look at digital custody and how individuals are dealing with the risks and challenges of protecting their cryptocurrency. Published at https://medium.com/vault12/the-rapidly-increasing-value-of-digital-assets-demands-better-security-8f76b8c29f8b
json metadata{"tags":["cryptocurrency","blockchain","money","security","custody"],"image":["https://cdn.steemitimages.com/DQmdwNzw6U4WoygqMEgPaTYB43HMwxJNT2q4bHHpbDebAuf/image.png","https://cdn.steemitimages.com/DQmb3Qg4kZnC6ZRMA8ZQ69yq9uQ2JEDCtxo3xkzQKZTgEKg/image.png","https://cdn.steemitimages.com/DQmWAvFEnAgTfitdHJgFpQEgjmrk6XkT7mHpTPkq31wLoZ6/image.png"],"links":["https://medium.com/vault12/the-rapidly-increasing-value-of-digital-assets-demands-better-security-8f76b8c29f8b"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #27644031/Trx 3d8bbe422fee74d26a1557c16ef8c1580478a644
View Raw JSON Data
{
  "trx_id": "3d8bbe422fee74d26a1557c16ef8c1580478a644",
  "block": 27644031,
  "trx_in_block": 20,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-12T20:02:48",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "cryptocurrency",
      "author": "vault12",
      "permlink": "the-rapidly-increasing-value-of-digital-assets-demands-better-security",
      "title": "The Rapidly Increasing Value of Digital Assets Demands Better Security",
      "body": "![](https://cdn.steemitimages.com/DQmdwNzw6U4WoygqMEgPaTYB43HMwxJNT2q4bHHpbDebAuf/image.png)\n\n*There was a time when the most important things people stored in the cloud were photographs and resumes. Now digital assets include bank account credentials, cryptocurrency, car keys, and house keys. The value of these assets has dramatically increased, so the protection needs to be dramatically upgraded too, commensurate with what is being protected.*\n\n**A digital asset is a digitally stored, intangible object that is owned (by someone or something) and could have value.**\n\nHowever, one could argue that it isn’t quite right to describe a digital asset in such this way. Changes in the world over the past few decades have warranted a change in the definition. Ten years ago, a digital asset was something very different. What once represented images and documents now potentially represents entire financial systems, information oceans, and access points to the control of anything and everything.\n\n![](https://cdn.steemitimages.com/DQmb3Qg4kZnC6ZRMA8ZQ69yq9uQ2JEDCtxo3xkzQKZTgEKg/image.png)\n\nAs a thought experiment, consider the evolution of cloud sharing. Early iterations of cloud sharing were always intended for people to store items of relatively personal value: photos, documents, videos, animations, audio, or other multimedia content. It wasn’t until cloud sharing was possible in the way late implementations like Dropbox established that the storage of digital assets on the cloud began erupting in popularity.\n\nSecurity Cost and Risk\nProtecting assets also requires a trade off between the value of the asset, the cost of security, the overall reduction in risk and of course convenience. People chose to put photos in cloud storage systems versus bank vaults. However as the value of assets has increased, the appropriate security has not kept pace.\n\nCar keys on a phone are already in deployment for many cars. The cryptographic keys giving smartphones access to cars, homes and other precious assets are of immense value. Yet the mechanisms to secure them have not kept pace.\n\nCryptocurrency and Blockchain\nEver since Cryptocurrency invented last decade, a new vector of digital assets has taken to the spotlight. This is a digital asset subclass — one of the digital financial instruments that are used as a store of value and means of exchange. So far, these assets have been stored in what can only be described as risky mediums e.g. online accounts, USB devices and the very mechanisms introduced to safeguard these assets — e.g. private keys — are left to individuals to protect in a scheme of their own devising.\n\n*“The Winklevosses came up with an elaborate system to store and secure their private keys. They cut up printouts of their private keys into pieces and then distributed them in envelopes to safe deposit boxes around the country, so if one envelope were stolen the thief would not have the entire key.”*\n“How the Winklevoss Twins Found Vindication in a Bitcoin Fortune” by Nathaniel Popper, New York Times, December 19, 2017 \n\nBillions of dollars of blockchain-based cryptocurrency have been lost to hacks or unfortunate occurrences.\n\n![](https://cdn.steemitimages.com/DQmWAvFEnAgTfitdHJgFpQEgjmrk6XkT7mHpTPkq31wLoZ6/image.png)\n\n20% of all Bitcoin is lost forever. That’s $20B, in fact, in 2018 alone, $1.1B has been stolen.\nCryptocurrency and digitization have altered the notion of a digital asset — from what once represented information on a machine into something that represents valuable identity, big data, and finance objects.\n\nWith this in mind, the security of these digital assets is a huge concern. In accordance with this abrupt spike in the valuation of digital assets, the security measures used to secure these assets need to be improved. Right now, there are just a few options for securing cryptocurrency and other digital assets; and all of them possess some single point of failure for the user.\n\nTherefore, how custody of these emerging classes of digital assets is handled must be considered. Threats to the security of cryptocurrency storage need to be analyzed, and the correct frameworks for digital custody need to be designed accordingly. Digital custody needs to be explored, improved, and researched vigorously if this rapid demand for stronger security is to ever sufficiently be met.\n\nIn future articles, we will look at digital custody and how individuals are dealing with the risks and challenges of protecting their cryptocurrency.\n\nPublished at https://medium.com/vault12/the-rapidly-increasing-value-of-digital-assets-demands-better-security-8f76b8c29f8b",
      "json_metadata": "{\"tags\":[\"cryptocurrency\",\"blockchain\",\"money\",\"security\",\"custody\"],\"image\":[\"https://cdn.steemitimages.com/DQmdwNzw6U4WoygqMEgPaTYB43HMwxJNT2q4bHHpbDebAuf/image.png\",\"https://cdn.steemitimages.com/DQmb3Qg4kZnC6ZRMA8ZQ69yq9uQ2JEDCtxo3xkzQKZTgEKg/image.png\",\"https://cdn.steemitimages.com/DQmWAvFEnAgTfitdHJgFpQEgjmrk6XkT7mHpTPkq31wLoZ6/image.png\"],\"links\":[\"https://medium.com/vault12/the-rapidly-increasing-value-of-digital-assets-demands-better-security-8f76b8c29f8b\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
2018/11/08 22:29:03
parent authorvault12
parent permlinkunderstanding-shamir-s-secret-sharing
authorsteemitboard
permlinksteemitboard-notify-vault12-20181108t222904000z
title
bodyCongratulations @vault12! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) : <table><tr><td>https://steemitimages.com/60x70/http://steemitboard.com/@vault12/voted.png?201811082138</td><td>You received more than 10 upvotes. Your next target is to reach 50 upvotes.</td></tr> </table> <sub>_[Click here to view your Board of Honor](https://steemitboard.com/@vault12)_</sub> <sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub> **Do not miss the last post from @steemitboard:** <table><tr><td><a href="https://steemit.com/steemfest/@steemitboard/steemfest3-and-steemitboard-meet-the-steemians-contest"><img src="https://steemitimages.com/64x128/https://cdn.steemitimages.com/DQmeLukvNFRsa7RURqsFpiLGEZZD49MiU52JtWmjS5S2wtW/image.png"></a></td><td><a href="https://steemit.com/steemfest/@steemitboard/steemfest3-and-steemitboard-meet-the-steemians-contest">SteemFest3 and SteemitBoard - Meet the Steemians Contest</a></td></tr></table> > 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 InfoBlock #27531821/Trx 4f24b08085aa3cf677e95bb3abdfb28684a1bb85
View Raw JSON Data
{
  "trx_id": "4f24b08085aa3cf677e95bb3abdfb28684a1bb85",
  "block": 27531821,
  "trx_in_block": 28,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-08T22:29:03",
  "op": [
    "comment",
    {
      "parent_author": "vault12",
      "parent_permlink": "understanding-shamir-s-secret-sharing",
      "author": "steemitboard",
      "permlink": "steemitboard-notify-vault12-20181108t222904000z",
      "title": "",
      "body": "Congratulations @vault12! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :\n\n<table><tr><td>https://steemitimages.com/60x70/http://steemitboard.com/@vault12/voted.png?201811082138</td><td>You received more than 10 upvotes. Your next target is to reach 50 upvotes.</td></tr>\n</table>\n\n<sub>_[Click here to view your Board of Honor](https://steemitboard.com/@vault12)_</sub>\n<sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub>\n\n\n\n**Do not miss the last post from @steemitboard:**\n<table><tr><td><a href=\"https://steemit.com/steemfest/@steemitboard/steemfest3-and-steemitboard-meet-the-steemians-contest\"><img src=\"https://steemitimages.com/64x128/https://cdn.steemitimages.com/DQmeLukvNFRsa7RURqsFpiLGEZZD49MiU52JtWmjS5S2wtW/image.png\"></a></td><td><a href=\"https://steemit.com/steemfest/@steemitboard/steemfest3-and-steemitboard-meet-the-steemians-contest\">SteemFest3 and SteemitBoard - Meet the Steemians Contest</a></td></tr></table>\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\"]}"
    }
  ]
}
vault12updated their account properties
2018/11/08 20:53:24
accountvault12
memo keySTM7UzDBRSAbHWMff2besFj6L1BpdMLuvZfmbH5Vj7nJhRZU8mmCz
json metadata{"profile":{"profile_image":"https://cdn.steemitimages.com/DQmPcvo6EVDZTMJSnpesu1zWZdWphFZD29f1xTb3zvqgb6t/[email protected]","cover_image":"https://cdn.steemitimages.com/DQmarjyuRbMWQPpzyVzdjki2xtbFFdq6XBmMPDtAdByUmj4/Vault12%20Graphics%20180304.009.png","name":"Vault12","about":"Protecting the future of money","location":"Mountain View, CA","website":"https://vault12.com"}}
Transaction InfoBlock #27529909/Trx 79d85ee61df999f095f2096aba86b9154c4324e2
View Raw JSON Data
{
  "trx_id": "79d85ee61df999f095f2096aba86b9154c4324e2",
  "block": 27529909,
  "trx_in_block": 12,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-08T20:53:24",
  "op": [
    "account_update",
    {
      "account": "vault12",
      "memo_key": "STM7UzDBRSAbHWMff2besFj6L1BpdMLuvZfmbH5Vj7nJhRZU8mmCz",
      "json_metadata": "{\"profile\":{\"profile_image\":\"https://cdn.steemitimages.com/DQmPcvo6EVDZTMJSnpesu1zWZdWphFZD29f1xTb3zvqgb6t/[email protected]\",\"cover_image\":\"https://cdn.steemitimages.com/DQmarjyuRbMWQPpzyVzdjki2xtbFFdq6XBmMPDtAdByUmj4/Vault12%20Graphics%20180304.009.png\",\"name\":\"Vault12\",\"about\":\"Protecting the future of money\",\"location\":\"Mountain View, CA\",\"website\":\"https://vault12.com\"}}"
    }
  ]
}
2018/11/08 20:45:45
votervault12
authorvault12
permlinkhow-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy
weight10000 (100.00%)
Transaction InfoBlock #27529756/Trx 2265d7b266525622aa9efae113a32e8b2ac62a4a
View Raw JSON Data
{
  "trx_id": "2265d7b266525622aa9efae113a32e8b2ac62a4a",
  "block": 27529756,
  "trx_in_block": 38,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-08T20:45:45",
  "op": [
    "vote",
    {
      "voter": "vault12",
      "author": "vault12",
      "permlink": "how-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy",
      "weight": 10000
    }
  ]
}
2018/11/08 20:45:06
votervault12
authorvault12
permlinkunderstanding-shamir-s-secret-sharing
weight10000 (100.00%)
Transaction InfoBlock #27529743/Trx ca74ef1292c463aac34bbd36a1ebd5aa4db0448f
View Raw JSON Data
{
  "trx_id": "ca74ef1292c463aac34bbd36a1ebd5aa4db0448f",
  "block": 27529743,
  "trx_in_block": 8,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-08T20:45:06",
  "op": [
    "vote",
    {
      "voter": "vault12",
      "author": "vault12",
      "permlink": "understanding-shamir-s-secret-sharing",
      "weight": 10000
    }
  ]
}
2018/11/08 20:12:51
parent authorvault12
parent permlinkunderstanding-shamir-s-secret-sharing
authorsteemitboard
permlinksteemitboard-notify-vault12-20181108t201253000z
title
bodyCongratulations @vault12! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) : <table><tr><td>https://steemitimages.com/60x60/http://steemitboard.com/notifications/firstpost.png</td><td>You published your First Post</td></tr> <tr><td>https://steemitimages.com/60x60/http://steemitboard.com/notifications/firstvoted.png</td><td>You got a First Vote</td></tr> <tr><td>https://steemitimages.com/60x60/http://steemitboard.com/notifications/firstvote.png</td><td>You made your First Vote</td></tr> </table> <sub>_[Click here to view your Board of Honor](https://steemitboard.com/@vault12)_</sub> <sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub> **Do not miss the last post from @steemitboard:** <table><tr><td><a href="https://steemit.com/steemfest/@steemitboard/steemfest3-and-steemitboard-meet-the-steemians-contest"><img src="https://steemitimages.com/64x128/https://cdn.steemitimages.com/DQmeLukvNFRsa7RURqsFpiLGEZZD49MiU52JtWmjS5S2wtW/image.png"></a></td><td><a href="https://steemit.com/steemfest/@steemitboard/steemfest3-and-steemitboard-meet-the-steemians-contest">SteemFest3 and SteemitBoard - Meet the Steemians Contest</a></td></tr></table> > 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 InfoBlock #27529098/Trx 50a6be487fb352893b5a8814970f15ea3790cb26
View Raw JSON Data
{
  "trx_id": "50a6be487fb352893b5a8814970f15ea3790cb26",
  "block": 27529098,
  "trx_in_block": 14,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-08T20:12:51",
  "op": [
    "comment",
    {
      "parent_author": "vault12",
      "parent_permlink": "understanding-shamir-s-secret-sharing",
      "author": "steemitboard",
      "permlink": "steemitboard-notify-vault12-20181108t201253000z",
      "title": "",
      "body": "Congratulations @vault12! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :\n\n<table><tr><td>https://steemitimages.com/60x60/http://steemitboard.com/notifications/firstpost.png</td><td>You published your First Post</td></tr>\n<tr><td>https://steemitimages.com/60x60/http://steemitboard.com/notifications/firstvoted.png</td><td>You got a First Vote</td></tr>\n<tr><td>https://steemitimages.com/60x60/http://steemitboard.com/notifications/firstvote.png</td><td>You made your First Vote</td></tr>\n</table>\n\n<sub>_[Click here to view your Board of Honor](https://steemitboard.com/@vault12)_</sub>\n<sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub>\n\n\n\n**Do not miss the last post from @steemitboard:**\n<table><tr><td><a href=\"https://steemit.com/steemfest/@steemitboard/steemfest3-and-steemitboard-meet-the-steemians-contest\"><img src=\"https://steemitimages.com/64x128/https://cdn.steemitimages.com/DQmeLukvNFRsa7RURqsFpiLGEZZD49MiU52JtWmjS5S2wtW/image.png\"></a></td><td><a href=\"https://steemit.com/steemfest/@steemitboard/steemfest3-and-steemitboard-meet-the-steemians-contest\">SteemFest3 and SteemitBoard - Meet the Steemians Contest</a></td></tr></table>\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/11/08 20:06:45
voterglitterfart
authorvault12
permlinkunderstanding-shamir-s-secret-sharing
weight1000 (10.00%)
Transaction InfoBlock #27528976/Trx 2644e5d47ab34d4a81584d58a4debbd087ec9ec6
View Raw JSON Data
{
  "trx_id": "2644e5d47ab34d4a81584d58a4debbd087ec9ec6",
  "block": 27528976,
  "trx_in_block": 20,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-08T20:06:45",
  "op": [
    "vote",
    {
      "voter": "glitterfart",
      "author": "vault12",
      "permlink": "understanding-shamir-s-secret-sharing",
      "weight": 1000
    }
  ]
}
2018/11/08 18:36:06
votersecurity101
authorvault12
permlinkunderstanding-shamir-s-secret-sharing
weight5000 (50.00%)
Transaction InfoBlock #27527163/Trx 43806c9355c822314a1f46edc56139cdd559326e
View Raw JSON Data
{
  "trx_id": "43806c9355c822314a1f46edc56139cdd559326e",
  "block": 27527163,
  "trx_in_block": 36,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-08T18:36:06",
  "op": [
    "vote",
    {
      "voter": "security101",
      "author": "vault12",
      "permlink": "understanding-shamir-s-secret-sharing",
      "weight": 5000
    }
  ]
}
2018/11/08 17:51:42
required auths[]
required posting auths["vault12"]
idfollow
json["follow",{"follower":"vault12","following":"altcocollector","what":["blog"]}]
Transaction InfoBlock #27526275/Trx d22fb6e51691d089afc79a8f1c0afd03517a6717
View Raw JSON Data
{
  "trx_id": "d22fb6e51691d089afc79a8f1c0afd03517a6717",
  "block": 27526275,
  "trx_in_block": 16,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-08T17:51:42",
  "op": [
    "custom_json",
    {
      "required_auths": [],
      "required_posting_auths": [
        "vault12"
      ],
      "id": "follow",
      "json": "[\"follow\",{\"follower\":\"vault12\",\"following\":\"altcocollector\",\"what\":[\"blog\"]}]"
    }
  ]
}
2018/11/08 17:51:24
votervault12
authoraltcocollector
permlinkvault12-securing-the-digital-fortune-digitally
weight10000 (100.00%)
Transaction InfoBlock #27526269/Trx d56ca4e7930aee32082c55f5dbb262db444a80fd
View Raw JSON Data
{
  "trx_id": "d56ca4e7930aee32082c55f5dbb262db444a80fd",
  "block": 27526269,
  "trx_in_block": 28,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-08T17:51:24",
  "op": [
    "vote",
    {
      "voter": "vault12",
      "author": "altcocollector",
      "permlink": "vault12-securing-the-digital-fortune-digitally",
      "weight": 10000
    }
  ]
}
2018/11/08 17:12:12
parent author
parent permlinksecurity
authorvault12
permlinkhow-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy
titleHow to get true randomness from your Apple device with particle physics and thermal entropy
body@@ -1,16 +1,111 @@ +!%5B%5D(https://cdn.steemitimages.com/DQmVXdSNKM64cH9vrH6tJwT5kbqhXFNjtfKMfquBjucGism/image.png)%0A%0A* Cryptography and @@ -639,16 +639,17 @@ fashion. +* %0A%0AWhile
json metadata{"tags":["security","cryptography","cryptocurrency","entropy","randomness"],"image":["https://cdn.steemitimages.com/DQmVXdSNKM64cH9vrH6tJwT5kbqhXFNjtfKMfquBjucGism/image.png","https://cdn.steemitimages.com/DQmey7oAtkLjdmiu4MS91GENchYVYH5jg162mrn7BpKwFgy/image.png","https://cdn.steemitimages.com/DQmQsvX7HFFGY4i8qZt6DsbNr7b5ugtUE1gMMdmxyy9NVeE/image.png","https://cdn.steemitimages.com/DQmZMK4vFRdSRZSSvE1icDJLXrCPxMpLYuBasBMTkcnxrMs/image.png","https://cdn.steemitimages.com/DQmVy7fQQ5N2eprKSw4XFxVRy7pGgKqXtf9WtWFKefB3Kdv/image.png","https://cdn.steemitimages.com/DQmbjBw4n9ozfdDr2so6PU7v82Km2rVXcqns5RuMSFzfLjU/image.png","https://cdn.steemitimages.com/DQmXhz67R5Rdxqj6NhCRHoCJcPLccxDZhM4u4j3EJuQHtus/image.png","https://cdn.steemitimages.com/DQmZRVhs2QBLKJNK5kQuY7DuGefCk9RJ1xDKEgDtMPZWvAJ/image.png","https://cdn.steemitimages.com/DQmZytNT27s7J8PqZqFS5cUkYFTBrueHCtXo7wmCMZTbrwL/image.png","https://cdn.steemitimages.com/DQmbkg8xVxyMeFqskKwMW6qDDmBJvzCNLfYcFVApsbxHbuG/image.png","https://cdn.steemitimages.com/DQmdLxrx4LY6eeKrJ92JYwjBWUQv5qi9xCQVGQ3vipsFkny/image.png","https://cdn.steemitimages.com/DQmeLsMsptjtCXym9LjnfBkXNjvvFhYD4c6w8XBzPPKG1UK/image.png"],"links":["https://zax-test.vault12.com","https://cs.haifa.ac.il/~ronen/online_papers/ICALPinvited.pdf","https://cs.nyu.edu/courses/spring06/G22.3220-001/scribe/Lecture2.pdf","http://www.eecs.harvard.edu/~michaelm/coinflipext.pdf","https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-441-information-theory-spring-2016/lecture-notes/MIT6_441S16_chapter_28.pdf","http://www.boazbarak.org/Papers/msamples.pdf","https://github.com/vault12/zax","https://s3-us-west-1.amazonaws.com/vault12/crypto_relay.pdf","https://github.com/vault12/glow","https://medium.com/the-physics-arxiv-blog/your-smartphone-can-measure-your-radiation-exposure-ce9b464d68aa","https://sploid.gizmodo.com/one-of-the-secrets-guarding-the-secure-internet-is-a-wa-1820188866","https://blog.cr.yp.to/20140205-entropy.html","https://csrc.nist.gov/CSRC/media/Publications/sp/800-90b/draft/documents/sp800-90b_second_draft.pdf","https://www.blackhat.com/docs/us-15/materials/us-15-Potter-Understanding-And-Managing-Entropy-Usage.pdf","http://holdenc.altervista.org/avalanche/","http://ubld.it/truerng_v3","https://medium.com/vault12/how-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy-a9d47ca80c9b"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #27525485/Trx 2f55a5cf4170c3443695794dd49d4a5c31c7dc1d
View Raw JSON Data
{
  "trx_id": "2f55a5cf4170c3443695794dd49d4a5c31c7dc1d",
  "block": 27525485,
  "trx_in_block": 6,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-08T17:12:12",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "security",
      "author": "vault12",
      "permlink": "how-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy",
      "title": "How to get true randomness from your Apple device with particle physics and thermal entropy",
      "body": "@@ -1,16 +1,111 @@\n+!%5B%5D(https://cdn.steemitimages.com/DQmVXdSNKM64cH9vrH6tJwT5kbqhXFNjtfKMfquBjucGism/image.png)%0A%0A*\n Cryptography and\n@@ -639,16 +639,17 @@\n fashion.\n+*\n %0A%0AWhile \n",
      "json_metadata": "{\"tags\":[\"security\",\"cryptography\",\"cryptocurrency\",\"entropy\",\"randomness\"],\"image\":[\"https://cdn.steemitimages.com/DQmVXdSNKM64cH9vrH6tJwT5kbqhXFNjtfKMfquBjucGism/image.png\",\"https://cdn.steemitimages.com/DQmey7oAtkLjdmiu4MS91GENchYVYH5jg162mrn7BpKwFgy/image.png\",\"https://cdn.steemitimages.com/DQmQsvX7HFFGY4i8qZt6DsbNr7b5ugtUE1gMMdmxyy9NVeE/image.png\",\"https://cdn.steemitimages.com/DQmZMK4vFRdSRZSSvE1icDJLXrCPxMpLYuBasBMTkcnxrMs/image.png\",\"https://cdn.steemitimages.com/DQmVy7fQQ5N2eprKSw4XFxVRy7pGgKqXtf9WtWFKefB3Kdv/image.png\",\"https://cdn.steemitimages.com/DQmbjBw4n9ozfdDr2so6PU7v82Km2rVXcqns5RuMSFzfLjU/image.png\",\"https://cdn.steemitimages.com/DQmXhz67R5Rdxqj6NhCRHoCJcPLccxDZhM4u4j3EJuQHtus/image.png\",\"https://cdn.steemitimages.com/DQmZRVhs2QBLKJNK5kQuY7DuGefCk9RJ1xDKEgDtMPZWvAJ/image.png\",\"https://cdn.steemitimages.com/DQmZytNT27s7J8PqZqFS5cUkYFTBrueHCtXo7wmCMZTbrwL/image.png\",\"https://cdn.steemitimages.com/DQmbkg8xVxyMeFqskKwMW6qDDmBJvzCNLfYcFVApsbxHbuG/image.png\",\"https://cdn.steemitimages.com/DQmdLxrx4LY6eeKrJ92JYwjBWUQv5qi9xCQVGQ3vipsFkny/image.png\",\"https://cdn.steemitimages.com/DQmeLsMsptjtCXym9LjnfBkXNjvvFhYD4c6w8XBzPPKG1UK/image.png\"],\"links\":[\"https://zax-test.vault12.com\",\"https://cs.haifa.ac.il/~ronen/online_papers/ICALPinvited.pdf\",\"https://cs.nyu.edu/courses/spring06/G22.3220-001/scribe/Lecture2.pdf\",\"http://www.eecs.harvard.edu/~michaelm/coinflipext.pdf\",\"https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-441-information-theory-spring-2016/lecture-notes/MIT6_441S16_chapter_28.pdf\",\"http://www.boazbarak.org/Papers/msamples.pdf\",\"https://github.com/vault12/zax\",\"https://s3-us-west-1.amazonaws.com/vault12/crypto_relay.pdf\",\"https://github.com/vault12/glow\",\"https://medium.com/the-physics-arxiv-blog/your-smartphone-can-measure-your-radiation-exposure-ce9b464d68aa\",\"https://sploid.gizmodo.com/one-of-the-secrets-guarding-the-secure-internet-is-a-wa-1820188866\",\"https://blog.cr.yp.to/20140205-entropy.html\",\"https://csrc.nist.gov/CSRC/media/Publications/sp/800-90b/draft/documents/sp800-90b_second_draft.pdf\",\"https://www.blackhat.com/docs/us-15/materials/us-15-Potter-Understanding-And-Managing-Entropy-Usage.pdf\",\"http://holdenc.altervista.org/avalanche/\",\"http://ubld.it/truerng_v3\",\"https://medium.com/vault12/how-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy-a9d47ca80c9b\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
2018/11/08 17:09:09
parent author
parent permlinksecurity
authorvault12
permlinkunderstanding-shamir-s-secret-sharing
titleUnderstanding Shamir’s Secret Sharing
body![shutterstock_699919027.png](https://cdn.steemitimages.com/DQmQ4fsGExNm7UN9SKoN9ype9rbdygL1MzwY5Xpy2T8TnVL/shutterstock_699919027.png) *In cryptography, secret sharing schemes are schemes that split shares of a given secret among a set of trusted participants. This secret could be a very important piece of information that may be needed in the future but needs to be kept private and secure. These shares are completely useless on their own, however, when put together reconstruct the secret and make it apparent. As a thought experiment; think of secret sharing schemes as a puzzle where the puzzle pieces are split among ten players but are completely blank. The image that the puzzle creates is only visible once all the pieces are put together.* The kind of data that is best suited for a secret sharing algorithm is information that must be kept absolutely private, but must also be stored securely and never lost. Typically, you’d use secret sharing for access keys to accounts with highly sensitive information in them. The goal is to spread the key out from one geographic location into multiple — so that in order to compromise a system, you’d need to compromise devices in distinct locations first. There are multiple kinds of secret sharing algorithms. The one we’ll be discussing is Shamir’s Secret Sharing. https://vimeo.com/296858391 *Part 1: The cryptography behind Vault12 with Terence Spies* Adi Shamir’s scheme is a securely encrypted secret sharing scheme that requires some or all participants are needed to reconstruct a secret. Shamir’s Secret Sharing allows for a hierarchical schema where some participants may be more trustworthy than another. For example; when running Shamir’s scheme for a private key and sharing it among friends and family, one could grant family members greater authority in the scheme and friends lesser authority in the scheme. https://vimeo.com/297308920 *Part 2: Advanced Concepts — The Cryptography behind Vault12 with Terence Spies* Considering the nature of how Shamir’s scheme is built, a threshold parameter can be specified during the creation of the scheme. Instead of requiring that every single share is present to reconstruct a key like a puzzle, Shamir’s scheme requires a threshold number of shares. The value of this threshold is at the discretion of the secret sharer. The secret sharer could choose to require every single share for reconstruction of the key or three-quarters of all shares held by participants. Shamir’s Secret Sharing has the following properties: **Dynamic**: The scheme allows for a secret owner to amend the rules of a given secret securely. This means a person sharing a secret among a set of participants could use their status as the secret owner to create more splits of a key and distribute those to more participants if he or she so chose. Or, the secret owner could remove some participants remotely from the scheme — all while leaving the other participants in the secret sharing scheme completely unaffected. **Secure**: Shamir’s scheme is cryptanalytically unbreakable in its encryption model in that no holder of a share can uncover the shared secret without first gaining access to the threshold number of secret shares. The secret will be kept absolutely secure and confidential from participants in the scheme. Only the secret sharer will see the original data from the deconstruction and reconstruction of the data. With such properties, Shamir’s Secret Sharing could have a wide array of use cases for the preservation of sensitive data. Two examples that we’ll discuss are the secure and private preservation of private keys or passwords and images of sensitive balance restoration keys. In our implementation of Shamir’s Secret Sharing we introduce a mobile application that lets users assign friends and family as guardians of their secret. We see private keys to cryptocurrency balances and seed phrases for the recovery of wallets as some of the best-suited secrets to utilize Shamir’s Secret Sharing for. Shamir’s Secret Sharing is an intriguing cryptography scheme that is a useful tool for decentralizing custody of sensitive data. However, it is not suited for the maintenance of just any secretive data. Since the scheme entails assigning participants to store shares of a secret, these participants need to be trusted. While the encryption scheme renders it impossible for participants to derive anything from the share they receive, multiple participants could collude together to meet the threshold requirement of shares and uncover that secret. Therefore, it is important that people you share a secret with using an implementation of Shamir’s Secret Sharing are trustworthy. Using an application built on Shamir’s Secret Sharing doesn’t beg the question of whether or not it’s a greater layer of security for the storage of a secret — but rather, whether or not a specific situation is suitable for decentralized and trusted custody of a secret. In future articles, we will describe how Shamir’s Secret Sharing is implemented inside the Vault12 platform. First published: https://medium.com/@vault12/understanding-shamirs-secret-sharing-6a4bd27768c9
json metadata{"tags":["security","cryptography","cryptocurrency","decentralization","custody"],"image":["https://cdn.steemitimages.com/DQmQ4fsGExNm7UN9SKoN9ype9rbdygL1MzwY5Xpy2T8TnVL/shutterstock_699919027.png"],"links":["https://player.vimeo.com/video/296858391","https://player.vimeo.com/video/297308920","https://medium.com/@vault12/understanding-shamirs-secret-sharing-6a4bd27768c9"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #27525424/Trx 3fd73ee0b5b4c0a83fc165fef6206d27d4292ff0
View Raw JSON Data
{
  "trx_id": "3fd73ee0b5b4c0a83fc165fef6206d27d4292ff0",
  "block": 27525424,
  "trx_in_block": 16,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-08T17:09:09",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "security",
      "author": "vault12",
      "permlink": "understanding-shamir-s-secret-sharing",
      "title": "Understanding Shamir’s Secret Sharing",
      "body": "![shutterstock_699919027.png](https://cdn.steemitimages.com/DQmQ4fsGExNm7UN9SKoN9ype9rbdygL1MzwY5Xpy2T8TnVL/shutterstock_699919027.png)\n\n*In cryptography, secret sharing schemes are schemes that split shares of a given secret among a set of trusted participants. This secret could be a very important piece of information that may be needed in the future but needs to be kept private and secure. These shares are completely useless on their own, however, when put together reconstruct the secret and make it apparent. As a thought experiment; think of secret sharing schemes as a puzzle where the puzzle pieces are split among ten players but are completely blank. The image that the puzzle creates is only visible once all the pieces are put together.*\n\nThe kind of data that is best suited for a secret sharing algorithm is information that must be kept absolutely private, but must also be stored securely and never lost. Typically, you’d use secret sharing for access keys to accounts with highly sensitive information in them. The goal is to spread the key out from one geographic location into multiple — so that in order to compromise a system, you’d need to compromise devices in distinct locations first. There are multiple kinds of secret sharing algorithms. The one we’ll be discussing is Shamir’s Secret Sharing.\n\nhttps://vimeo.com/296858391\n*Part 1: The cryptography behind Vault12 with Terence Spies*\n\nAdi Shamir’s scheme is a securely encrypted secret sharing scheme that requires some or all participants are needed to reconstruct a secret. Shamir’s Secret Sharing allows for a hierarchical schema where some participants may be more trustworthy than another. For example; when running Shamir’s scheme for a private key and sharing it among friends and family, one could grant family members greater authority in the scheme and friends lesser authority in the scheme.\n\nhttps://vimeo.com/297308920\n*Part 2: Advanced Concepts — The Cryptography behind Vault12 with Terence Spies*\n\nConsidering the nature of how Shamir’s scheme is built, a threshold parameter can be specified during the creation of the scheme. Instead of requiring that every single share is present to reconstruct a key like a puzzle, Shamir’s scheme requires a threshold number of shares. The value of this threshold is at the discretion of the secret sharer. The secret sharer could choose to require every single share for reconstruction of the key or three-quarters of all shares held by participants.\n\nShamir’s Secret Sharing has the following properties:\n\n**Dynamic**: The scheme allows for a secret owner to amend the rules of a given secret securely. This means a person sharing a secret among a set of participants could use their status as the secret owner to create more splits of a key and distribute those to more participants if he or she so chose. Or, the secret owner could remove some participants remotely from the scheme — all while leaving the other participants in the secret sharing scheme completely unaffected.\n\n**Secure**: Shamir’s scheme is cryptanalytically unbreakable in its encryption model in that no holder of a share can uncover the shared secret without first gaining access to the threshold number of secret shares. The secret will be kept absolutely secure and confidential from participants in the scheme. Only the secret sharer will see the original data from the deconstruction and reconstruction of the data.\nWith such properties, Shamir’s Secret Sharing could have a wide array of use cases for the preservation of sensitive data. Two examples that we’ll discuss are the secure and private preservation of private keys or passwords and images of sensitive balance restoration keys.\n\nIn our implementation of Shamir’s Secret Sharing we introduce a mobile application that lets users assign friends and family as guardians of their secret. We see private keys to cryptocurrency balances and seed phrases for the recovery of wallets as some of the best-suited secrets to utilize Shamir’s Secret Sharing for.\n\nShamir’s Secret Sharing is an intriguing cryptography scheme that is a useful tool for decentralizing custody of sensitive data. However, it is not suited for the maintenance of just any secretive data. Since the scheme entails assigning participants to store shares of a secret, these participants need to be trusted. While the encryption scheme renders it impossible for participants to derive anything from the share they receive, multiple participants could collude together to meet the threshold requirement of shares and uncover that secret. Therefore, it is important that people you share a secret with using an implementation of Shamir’s Secret Sharing are trustworthy.\n\nUsing an application built on Shamir’s Secret Sharing doesn’t beg the question of whether or not it’s a greater layer of security for the storage of a secret — but rather, whether or not a specific situation is suitable for decentralized and trusted custody of a secret.\n\nIn future articles, we will describe how Shamir’s Secret Sharing is implemented inside the Vault12 platform.\n\nFirst published: https://medium.com/@vault12/understanding-shamirs-secret-sharing-6a4bd27768c9",
      "json_metadata": "{\"tags\":[\"security\",\"cryptography\",\"cryptocurrency\",\"decentralization\",\"custody\"],\"image\":[\"https://cdn.steemitimages.com/DQmQ4fsGExNm7UN9SKoN9ype9rbdygL1MzwY5Xpy2T8TnVL/shutterstock_699919027.png\"],\"links\":[\"https://player.vimeo.com/video/296858391\",\"https://player.vimeo.com/video/297308920\",\"https://medium.com/@vault12/understanding-shamirs-secret-sharing-6a4bd27768c9\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
2018/11/07 18:53:36
votersensation
authorvault12
permlinkhow-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy
weight10000 (100.00%)
Transaction InfoBlock #27498731/Trx 04296acf535fe76e5ac22464e76a9f5867e72a28
View Raw JSON Data
{
  "trx_id": "04296acf535fe76e5ac22464e76a9f5867e72a28",
  "block": 27498731,
  "trx_in_block": 4,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-07T18:53:36",
  "op": [
    "vote",
    {
      "voter": "sensation",
      "author": "vault12",
      "permlink": "how-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy",
      "weight": 10000
    }
  ]
}
2018/11/07 18:32:30
voterfilipino
authorvault12
permlinkhow-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy
weight1000 (10.00%)
Transaction InfoBlock #27498310/Trx ea0e9d8199460d6ba5fbe9eb4e6447ff4f62d952
View Raw JSON Data
{
  "trx_id": "ea0e9d8199460d6ba5fbe9eb4e6447ff4f62d952",
  "block": 27498310,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-07T18:32:30",
  "op": [
    "vote",
    {
      "voter": "filipino",
      "author": "vault12",
      "permlink": "how-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy",
      "weight": 1000
    }
  ]
}
2018/11/07 18:31:45
votermagpielover
authorvault12
permlinkhow-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy
weight10000 (100.00%)
Transaction InfoBlock #27498295/Trx f862fd73e0e04eb98692fb5428ad2b0d2753b57b
View Raw JSON Data
{
  "trx_id": "f862fd73e0e04eb98692fb5428ad2b0d2753b57b",
  "block": 27498295,
  "trx_in_block": 11,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-07T18:31:45",
  "op": [
    "vote",
    {
      "voter": "magpielover",
      "author": "vault12",
      "permlink": "how-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy",
      "weight": 10000
    }
  ]
}
2018/11/07 18:19:33
voterzedpal
authorvault12
permlinkhow-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy
weight10000 (100.00%)
Transaction InfoBlock #27498051/Trx 2c967bbb00b8f80a158d50c772f258fb368f40e0
View Raw JSON Data
{
  "trx_id": "2c967bbb00b8f80a158d50c772f258fb368f40e0",
  "block": 27498051,
  "trx_in_block": 20,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-07T18:19:33",
  "op": [
    "vote",
    {
      "voter": "zedpal",
      "author": "vault12",
      "permlink": "how-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy",
      "weight": 10000
    }
  ]
}
2018/11/07 18:11:09
voteracknowledgement
authorvault12
permlinkhow-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy
weight1000 (10.00%)
Transaction InfoBlock #27497883/Trx b79e48c82cf24f049a4f105665a9ea96dd701823
View Raw JSON Data
{
  "trx_id": "b79e48c82cf24f049a4f105665a9ea96dd701823",
  "block": 27497883,
  "trx_in_block": 40,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-07T18:11:09",
  "op": [
    "vote",
    {
      "voter": "acknowledgement",
      "author": "vault12",
      "permlink": "how-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy",
      "weight": 1000
    }
  ]
}
2018/11/07 17:55:21
votersaiduzzaman
authorvault12
permlinkhow-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy
weight10000 (100.00%)
Transaction InfoBlock #27497567/Trx 69f11a7362258d170d302922403e33dbb8166c15
View Raw JSON Data
{
  "trx_id": "69f11a7362258d170d302922403e33dbb8166c15",
  "block": 27497567,
  "trx_in_block": 11,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-07T17:55:21",
  "op": [
    "vote",
    {
      "voter": "saiduzzaman",
      "author": "vault12",
      "permlink": "how-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy",
      "weight": 10000
    }
  ]
}
2018/11/07 17:54:39
parent authorvault12
parent permlinkhow-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy
authorcheetah
permlinkcheetah-re-vault12how-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy
title
bodyHi! I am a robot. I just upvoted you! I found similar content that readers might be interested in: https://medium.com/vault12/how-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy-a9d47ca80c9b
json metadata
Transaction InfoBlock #27497553/Trx f858502908f5854f256b9799f9a1c91aa6c60767
View Raw JSON Data
{
  "trx_id": "f858502908f5854f256b9799f9a1c91aa6c60767",
  "block": 27497553,
  "trx_in_block": 12,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-07T17:54:39",
  "op": [
    "comment",
    {
      "parent_author": "vault12",
      "parent_permlink": "how-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy",
      "author": "cheetah",
      "permlink": "cheetah-re-vault12how-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy",
      "title": "",
      "body": "Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:\nhttps://medium.com/vault12/how-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy-a9d47ca80c9b",
      "json_metadata": ""
    }
  ]
}
2018/11/07 17:54:33
votercheetah
authorvault12
permlinkhow-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy
weight8 (0.08%)
Transaction InfoBlock #27497551/Trx 22f54442576e409a757a864b0aef150a107fb9b1
View Raw JSON Data
{
  "trx_id": "22f54442576e409a757a864b0aef150a107fb9b1",
  "block": 27497551,
  "trx_in_block": 22,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-07T17:54:33",
  "op": [
    "vote",
    {
      "voter": "cheetah",
      "author": "vault12",
      "permlink": "how-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy",
      "weight": 8
    }
  ]
}
2018/11/07 17:54:12
parent author
parent permlinksecurity
authorvault12
permlinkhow-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy
titleHow to get true randomness from your Apple device with particle physics and thermal entropy
bodyCryptography and randomness are interlinked on a fundamental level. When we encrypt a secret we want that result to look like completely random gibberish. In fact, if an external observer manages to notice any non-random patterns in our encrypted secret, that would be something they can exploit in order to recover parts of our secret. If you imagine cryptography as a ‘factory’, then for it to work well it has to be constantly lubricated by a fair amount of random entropy, otherwise the complicated machinery will explode in a spectacular fashion. While that makes modern cryptography strong, it is very hard to find sources of good randomness. In fact, mathematicians have proven that if somebody gives you a seemingly random string, you cannot by any means ever prove if it is truly random (i.e. unpredictably generated), or if it just appears random, e.g. an adversary who wants to steal your secrets just crafted that string to look random. Since you cannot verifiably test any external service for the quality of its “true randomness”, in order to create a secure system you have to procure your own. Scientists have understood for a long time that it is pointless trying to hide the details of cryptographic algorithms, and they are widely known to everybody, including hostile attackers. The only things attackers do not know is the entropy of your cryptosystem — each bit of good (i.e. truly unpredictable) entropy creates a bit of cryptographic strength that protects your secrets. Because cryptography requires a lot of unpredictable randomness, scientists have found many sources of “true” entropy — natural processes that through the laws of physics or chemistry constantly produce highly unpredictable, random results. Unfortunately, all these sources are inconvenient to use, because they require special purpose hardware or even more cumbersome setups. Current state of the art cryptography allows taking small, unpredictable seeds of randomness from the physical world, and spinning them up into endless, unpredictable, random streams of data. Modern computers and phones are equipped with highly sophisticated systems that do just that, so in general you can always use your computer’s /dev/urandom device when you need an unlimited source of randomness. If you are reading this on your MacBook right now, you can type the following command into the Terminal app to get as many random strings as you need: cat /dev/urandom | head -c 32 | base64 (substitute 32 to get longer or shorter strings). One of the applications for natural entropy sources is building secure cryptosystems hosted on “cloud” servers. In such cases, we no longer have physical computers under our full control. There are a few ways to feed entropy into virtual computers, yet they all bear the same weakness cryptographers hate most of all — it requires blind trust of an external party to do the “right thing”. This is not optimal. Even the most respected cloud providers are still run by human beings who are known to make mistakes from time to time. Cryptographers prefer to be protected not by well-meaning humans, but by fundamental mathematical laws. And even the best corporations can be penetrated by hackers and hostile governments. As a customer of cloud services, there are simply no tests you can do to verify that your virtual host is getting “good” randomness from your trusted provider, or “bad” randomness that is subverted by hackers — they would look exactly the same. In fact, it will be enough for hackers to just make a copy of real, “true” randomness generated by the host hardware: it still will be perfect randomness received by your system, yet at same time it will be fully predictable (since the hackers would see it before you do). One popular version of Linux even created new service to help “pollinate” virtual machines with external randomness when they boot up. In this article, we are going to show you how to create a new source of “true” thermal entropy from any Apple iOS device that is verifiably under your own control that nobody else can intercept or spoof. Having an independent, extra source of “true” entropy is useful because entropy failures are very hard to detect — there is no “flashing red light” to alert us when our main source of entropy fails for any reason. When used with reasonable precautions multiple sources of natural, “true” entropy allows us to build stronger cryptosystems. A Noisy Phone One of our open source products is the Zax relay which allows for asynchronous, anonymous and encrypted process-to-process communications between different devices, which we use for our main product. Like everybody else, most of our relays run inside the cloud infrastructures of various vendors with strong security measures in place. Yet there is no formal test we can devise that would tell us if our entropy sources used by the massive cryptography stack running on our servers are truly secure or has been subverted somehow. Can we add more security to our setup without investing into building our own datacentdata centerelying on blind faith that our hosting providers will always keep our virtual computers secure? During our recent hackathon, we decided to try out a few ideas from an interesting paper. The gist of it is that any smartphone’s camera silicone is composed of millions of “pixels”, each one sensitive enough to detects high energy particles and thermal effects. The researchers state: The sensors generate a considerable amount of noise that can swamp the relatively small number of signals from gamma radiation, even when the camera is used with the lens covered so that no visible light can obliterate the signal. These are great conditions for a “true” entropy source. There is some amount of totally unpredictable randomness driven by particle physics affecting every pixel. There is also a large amount of always present “thermal” noise (driven by the fact that all atoms in the sensor jitter around a lot when they are at room temperature). Best of all, all of that generates a huge amount of entropy no matter the condition the camera is in, even with the lens fully covered! Can we capture such thermal entropy and use it? Every picture you take with a camera is a combination of two things: the signal, which is the image of what is in front of camera, and the noise — all the tiny fluctuations in each pixel driven by a myriad of unpredictable factors — high energy particles from cosmic rays, background radiation, and the thermal and electric activity in the circuits. Each camera image is Signal + Noise. Imagine we take 2 pictures one after the other: Picture #1 = Signal + Noise #1, and Picture #2 = Signal + Noise #2. The signal is the same because what is in front of the camera did not change. Yet the noise, being random and unpredictable, changes every microsecond in each camera pixel. Now, if we subtract one from the other, we will be left with only Noise #1 minus Noise #2, which is also unpredictable, random noise. That is exactly what we want to extract. To demonstrate the concept, we took two blank photos (with the camera lens closed and thus not getting any signal at all) and calculated the amplified difference between these two pictures. You can trivially recreate this yourself with any phone and an image editor like Photoshop[1]. ![](https://cdn.steemitimages.com/DQmey7oAtkLjdmiu4MS91GENchYVYH5jg162mrn7BpKwFgy/image.png) Amplified difference between 2 blank iPhone pictures taken with lens closed. Wow, that 12 mega-pixel camera sure has produced a lot of entropy! Let’s see if we can build a full system around this concept. The Raw Data Let’s do the following: Start the iPhone in video recording mode. Copy all RGB pixels of each video frame. Subtract from each pixel in a given frame a pixel in the same position on the next frame. What we are going to get is frames composed only of residual noise. Going forward, when we talk about the “frame” we always refer to one frame of “noise” — the frame we construct by such pixel subtraction. By “pixel”, we will mean individual value in given color channel (red, green or blue). In the original frames, pixels take values in the range from 0 to 255, while in the difference frames they will be in the-255 to +255 range, depending on which of the two pixels is brighter than the previous one. Let’s capture a few noise frames and then calculate a few statistics about what is inside. ![](https://cdn.steemitimages.com/DQmQsvX7HFFGY4i8qZt6DsbNr7b5ugtUE1gMMdmxyy9NVeE/image.png) First few difference frames Here are a few difference frames captured right after turning on the camera. Since we subtract one frame pixels from another, the value of each pixel can be from -255 to 255. The Mean will be the mean value of difference in a red, green or blue channel. Min/Max records extreme values for each frame. A few trends are immediately obvious from this data: It takes the camera a few frames to focus on the scenery. While the camera is focusing, the difference between each frame is big, as evidenced by large values in the mean, deviation and pixel min-max range. Once the camera is focused, the mean rapidly converges to almost zero. This will be a useful attribute for us to detect if the camera field of view has changed — we can reject all difference frames where the mean is larger than a small value like 0.1. In a focused, stable view the min/max range becomes much smaller, just ± 20 pixels on average, and very rarely reaching ± 40 pixel intensity. That is exactly the behavior of the relatively small thermal noise present in every pixel of a camera image for which we are looking. Zero Sequences Let’s look at the raw data in each channel: ![](https://cdn.steemitimages.com/DQmZMK4vFRdSRZSSvE1icDJLXrCPxMpLYuBasBMTkcnxrMs/image.png) That looks like what we would expect from a random distribution of noise, yet one thing jumps out immediately — why there are so many zeroes? They are clearly breaking out from the pattern of a normal “bell curve” distribution we should expect from the physics textbook. Looking into the raw data stream, it is quickly noticeable that each channel contains very long sequences of zeroes, sometimes going for over a hundred zeroes. Is this normal? According to our data, the probability of 0 in this sample is 14.33%. If we assume these zeroes are random, then any N-long sequence of zeroes will have a probability of 14.33% taken to the power of N. Expected zero sequences in 518kb sample ![](https://cdn.steemitimages.com/DQmVy7fQQ5N2eprKSw4XFxVRy7pGgKqXtf9WtWFKefB3Kdv/image.png) Apparently, there is virtually no chance to see a sequence of zeroes longer than 5 or 6 in our sample. Yet we are seeing sequences of 100 and more. Clearly, this is not random, and something else is going on. After digging through the data and experimenting, we found the culprit. The problem is that a given channel has oversaturated areas. Imagine the camera focusing on an item that has bright red spots. They are so intensively red that camera will register these pixels as 255 on the red channel. Naturally, that pixel will be subject to the same noise as any other pixel, but since the signal is so strong, the next frame will still have exactly the same 255 in that pixel. In other words, for an oversaturated sensor 255 + Noise = 255, meaning that such pixels will lose the ability to register noise at all! When we subtract them from each other, we get zero, yet this zero is no longer a random thermal event - these “no-noise” zeroes simply trace the area of the oversaturated condition in the picture. That leads to a couple of important lessons: When generating entropy with the lens uncovered, avoid too bright conditions that eliminate sensor sensitivity. The improbably long sequence of zeroes is a telltale sign of such oversaturated spots in the difference frame. Before we generate entropy, we will scan for such improbably long sequences and eliminate them from the sample data because they contain no real thermal noise. From our testing, we found that any matte background — like the dull finish of a MacBook Pro — works best when doing entropy generation with the lens uncovered. Or something as simple as putting your phone on the table camera up to capture a mildly lit room ceiling works well too to avoid oversaturated areas. Since we want to register as much noise entropy as we can, the ideal conditions would be to point a camera at some scenery that is “mild grey” (right in middle, around 128 on each channel), so that the camera has the full range of intensity to register noise ups and downs. Yet before we can start generating entropy, we need to deal with one more issue. Dealing With Correlations Correlation is the natural enemy of entropy. When two things are correlated it means that taken together they contain less entropy then it would appear from looking at them individually. Let’s zoom in on the “pixel entropy” we generated earlier from camera noise. ![](https://cdn.steemitimages.com/DQmbjBw4n9ozfdDr2so6PU7v82Km2rVXcqns5RuMSFzfLjU/image.png) High correlation areas As you can see, individual pixel colors do not change completely randomly. All of them are clustered in small groups few pixel wide. That makes sense: if a thermal event or high energy particle is hitting our sensor silicon somewhere, it will not hit just one and only one pixel. It will affect some area around that pixel. So all of these colors are random yet correlated. This is our first correlation factor, a correlation of space. If we consider the implications of the original article, the second kind of correlation becomes apparent as well: Gamma rays have far more energy than visible light photons: for example, they might have 20,000 eV compared to between 1.77 and 3.1eV for visible light from red to violet respectively. And because they have much higher energy to start with, they transfer far more to any electron they hit. This in turn then careers through the material ionising other electrons until its energy is dissipated. So an electron with 20 KeV might ionise 10,000 other electrons before it dissipates. That’s a signal that a smartphone camera ought to be able to see. High energy particles that bombard our sensor not only affect the pixels in one frame; if the energy is high enough, it will continuously affect silicon in that area while the energy of the initial collision dissipates through the medium. Therefore some areas of our picture will have correlation going on in time through several frames. All of these events are perfectly random, yet unless we are careful, these events will be clumped into correlated clusters. What can we do to break down such correlations as much as possible? We can reduce correlation by taking a few easy steps with our raw data: Break local group by accessing the pixels in different order. For example, we can take all red pixels in their natural order, going from 1st pixel to the last pixel in the frame. We will take green pixels in the reverse order, going from last to 1st. For blue pixels, we can use orthogonal order that replaces rows with columns in the frame (instead of 0,1,2,3 ordering will be 0,10,20,…1,11,21…). This way correlated pixels in the clumps we have seen above will never be used together. Instead of using frames one after another, we can use frames that are more distant from each other in time. For example, at 30 frames per second, we can buffer 15 frames, and then extract entropy by using frame 1 and 16, 2 and 17, etc. That means we will be mixing in frames that are half a second apart — which should be enough for timing correlations to dissipate away. We will mix in red, green and blue channels in parallel from different frames, since there will be less correlation between pixels of different colors in different frames. For example the “red” pixel 10 on frame 1 is less correlated with the “blue” pixel 321 on frame 15, while it might be strongly correlated with the “blue” pixel 9, 10 and 11 in the same frame 1. There is one caveat worth mentioning: such reshuffling and grouping of values does not eliminate correlation globally. Whatever amount of entropy we had at the beginning (reduced by correlations) in our sample, we end up with the same amount of entropy in the end, no matter how we reshuffle. What we get by accessing values across frames, in different channels, from pixels that are distant from each other is eliminating local correlation in each batch of values formed that way[2], so that each value in the batch passed to our extractor is independent from the others. From Normal to Uniform Now that we have all the ingredients in place, we are ready to create the entropy extractor. After correcting for oversaturated areas, the raw high-resolution data for a single channel of one frame looks like this: ![](https://cdn.steemitimages.com/DQmXhz67R5Rdxqj6NhCRHoCJcPLccxDZhM4u4j3EJuQHtus/image.png) That is a perfect normal distribution of noise in our difference frame. However, to generate entropy we need to somehow convert this normal distribution to a uniform distribution. The first thought would be to use the inverse form of an elegant Box-Muller transform… which, unfortunately, wouldn’t work for us at all. The Inverse Box-Muller transform requires a continuous distribution, and our raw data is all discrete values. In fact, the problem is even harder than it appears at first glance. Look at the numbers — despite the fact that the range of values we see in the noise is from -33 to +33, over 96% of our data points are all in the narrow range from -10 to +10. The size of that range depends on camera conditions: if a picture has too many oversaturated spots or too many dark spots [3] there will be less noise overall, and the range will decrease even further. For “lens covered” blackness the vast majority of data points can shrink to ±3: a total of just 7 different values. We need to generate perfect, uniform entropy from a limited sets of these values (around 21 values in perfect conditions, or down to 7 values in the worst conditions). And the distribution of these values will be highly biased — in our distribution, the sample zero is happening most often with a frequency of 8.69%. How much entropy can we hope to extract, theoretically? For this purpose, there is a well-known concept of “minimal entropy” (usually referred as min-entropy). Unlike Shannon’s entropy definition, which characterizes the entropy of an overall distribution, min-entropy describes the worst case scenario — the characteristic of the value that happens most often and thus is the most predictable. In this sample, zero happens 8.69% of the time. The simple calculation of -log2(8.69%) gives us a theoretical min-entropy of 3.52 bits — the maximum number of bits we can expect to extract from a single data point. Another way of stating this: every time we read a pixel value of noise, no matter if the value is -30 or +10 or 0, reading that value reduces our uncertainty only by 3.52 bits. Despite the fact that 33 would require more than 5 bits to encode (2^5 = 32), it doesn’t matter — the only entropy (uncertainty) hidden inside each value is just 3.52 bits at best. If we have to work with worse camera conditions (i.e. less variance of noise), then our entropy per data point will go down even more. The good news is that our 12 megapixel camera has lots and lots of data points produced every second! So, depending on camera conditions, we encode all data points into 1, 2 or 3 bits: quantized_value = raw_value % 2^bits. However, even after encoding, our bits are still heavily biased, obviously with zero bits being far more prevalent since our most common value is zero. How can we go from a zero-biased bitstream to a bitstream with uniform distribution? To solve this challenge, we are going to use the granddaddy of all randomness extractors — the famous Von Neumann extractor. Von Neumann extractor John Von Neumann figured out how you can get perfect entropy even if your source is a highly biased coin: a coin that lands on one side far more often then another. Let’s say we have a coin that turns up heads (0) 80% of the time, and tails (1) 20% of the time. Yet despite having a coin that is so defective, we can still extract perfectly uniform entropy from it! Here is the key insight from Von Neumann’s extractor. Let’s think about each pair of coin tosses. Obviously, a toss of 0,0 is far more likely than a toss of 1,1 since zero is far more probable to happen. But what will be the probability of a 0,1 toss compared with a 1,0 toss? The first toss has a probability of 80% x 20% = 16%. The second toss will have probability 20% x 80% ... wait, it is the same number! We just changed the order of variables, but the result is exactly the same. Von Neumann understood that even if your source is biased, the probability of combinations 1,0 and 0,1 are equal and you can just call the first combination the new extracted ‘zero’, and second combination an extracted ‘one’. No matter how bad your source is, the stream of ‘new’ zeroes and ones will be perfectly uniform. Here is a classical Von Neumann extractor of biased random bits: If you have a pair of 0,0 or 1,1 just toss them away: they do not produce anything. If you have 1,0 or 0,1 pair, use the final bit as your result and it will have a uniform random distribution: the probabilities of these two pairs are exactly the same! The Von Neumann extractor works amazingly well and has the added benefit that we do not even need to know how biased our incoming bits are. However, we are throwing away much of our raw data (all these 0,0 and 1,1 pairs). Can we extract more entropy? Elias (’72) and Peres (’92) came up with two different methods to improve the Von Neumann extractor. We will explain Peres method since it is a bit simpler to explain and implement. We already know that 1,0 and 0,1 have the same probability - there is no difference between 80x20 and 20x80 if a binary source is biased 80%/20%. But what about longer sequences? Let think about the “throw away” sequences 1100 and 0011. If we use straight Von Neumann method we will get nothing from these: both 11 and 00 will be tossed away. But let's calculate probabilities: 1100 will be 20x20x80x80, while 0011 will be 80x80x20x20 - the same numbers again. There is clearly something very similar to what we have already seen. We have two sequences with the same probabilities. Again we can say that a sequence ending with 00 is a new “zero”, while sequence ending with 11 will be a new “one”. This is a case of recursion: we are using the same algorithm just on numbers doubled up instead of originals. Here is the Von Neumann extractor with simple recursion: If you have a 1,0 or 0,1 pair, use final bit as your result (classic Von Neumann). If you have a 1,1 or 0,0 pair, convert it into 1 or 0 and add it to a temporary buffer. After you are done processing the initial data, run the Von Neumann extractor again on the buffer you collected. Since all 1,1 and 0,0 sequences become just single bits, the Von Neumann classic algorithm by definition will extract more uniform bits if the initial data contained any 1,1,0,0 or 0,0,1,1. And since this algorithm is recursive we can keep running it as long as something collects in our temp buffer and extract every last bit of entropy from longer sequences. Finally, the Peres algorithm has one more abstraction that allows us to extract even more entropy from a Von Neumann source by using the position of sequences that produce bits in initial stream, which is implemented in our codebase. Now we have a powerful extractor that can deal with an input of biased bits, and we are almost ready to extract some entropy. But there is one more step we need to do first. Quick Test: Chi-Squared There is no test for “true” entropy. What might look like a perfect random entropy coming from, say, quantum physics, can be in fact completely deterministically created by a software generator and fully controlled by an attacker selecting an initial seed. There is no test on the data one can run that determines a difference between a “true quantum random process” and a “software generated sequence”. The very success of modern cryptography is the fact that we can make a “software generated sequence” (the result of an encryption algorithm) look indistinguishable from “true entropy”. Yet at the same time, there are a number of software tests for randomness: FIPS-140, SP800–90B. What is going on? To understand the purpose of such “randomness tests”, we are going to review one of the simplest tests: chi-squared (pronounced ‘kai-squared’) goodness of fit. Khan Academy has an excellent video explaining step by step how to use the chi-squared test — check it out to learn more. The chi-square test is fairly simple and consists of the following: Formulate a theory about whatever you want to test and then calculate what you expect to observe if your idea is correct. Observe real-world events and record the observed values. The chi-squared statistic is calculated by summing together across all events the following: (ObservedValue - ExpectedValue)²/ExpectedValue Use a lookup table or chi-squared calculator to answer the key question: what is the probability that the observed events are the result of your theory? As you can see, the formula is just saying in math language “I will collect the square of all differences between what you thought was true and what is happening in the real world in the proportion of what you were expecting. If any of your expectations are too far out from reality, then the squared difference will grow very fast! The bigger it becomes, the more wrong you are.” Let’s work it out for our case — building a uniform entropy extractor. We want to produce random bytes, that can take values from 0 to 255. We want the distribution of our bytes to be uniform, so that the probability of every byte is exactly the same. Observing every byte is an event, so we have 256 events total. Let’s say our software produced 256,000 bytes and we are ready to run the chi-square test on them. Obviously, if the bytes are uniform (our theory) we would expect to see each byte with a probability of 1/256. Therefore we will see each byte exactly 256,000/256 = 1000 times exactly. That is our expected value for each event. Then we record the observed value (how many times we actually see each byte in our data) and sum all 256 values of (ObservedValue - 1000)²/1000. That number is our chi-squared statistic. What do we do with it? Chi-squared tables are organized by two parameters — so-called degrees of freedom — which is a fancy way of saying “a number of independent events you have minus one”. In our case, the degrees of freedom will be 256-1 = 255. The most interesting part is the second parameter P, a probability that we can calculate from 99.9% (extremely likely) to 0.1% (extremely unlikely). ![](https://cdn.steemitimages.com/DQmZRVhs2QBLKJNK5kQuY7DuGefCk9RJ1xDKEgDtMPZWvAJ/image.png) The only printed table we could find tantalizingly cuts off at 250 — just 5 short from what we need! However, we can use a chi-squared calculator to get the exact values we need. ![](https://cdn.steemitimages.com/DQmZytNT27s7J8PqZqFS5cUkYFTBrueHCtXo7wmCMZTbrwL/image.png) What this table tells us is the probability that our observation fits our hypothesis — the hypothesis we used to formulate all expected values. In other words, if we get chi-squared around 190, it virtually guarantees that the observed events match our theory about them — the theory that they all are coming from uniform distribution — but there’s still is a 0.1% chance that we are wrong! For a chi-squared at 284, there is a10% chance that our hypothesis is correct. That is not bad actually — if you run the chi-square test 10 times on 10 perfectly random samples, it is likely that you will get one sample around 284. If you run hundreds of random samples, one might have a chi-square value of 310, i.e. a sample with a low probability of 1%. If you willing to test a thousand samples, one might have a chi-squared value of 330 (0.1%). As you can see, the chi-square test, like all other randomness tests, do NOT tell us anything about the nature of our randomness! They don’t tell us if it is “true” randomness or not, i.e. is it derived from a “true” physical source or generated by software. This test answers the much simpler question: after looking at the given sample, what is the chance that this sample of random values came from a source with uniform distribution? Since the tests are probabilistic in nature, care must be taken in interpreting the results. It doesn’t mean that something is obviously “wrong” with a chi-square score of, say 310 (which is a low 1% probability). It takes just a few tries of running this script to produce chi-square scores over 300 (as measured by ent) from the state of the art /dev/urandom on Mac OS X. If you keep repeating the test dozens or even hundreds of times, you should expect less and less likely values to manifest. for i in {1..10}; do dd if=/dev/urandom bs=1k count=1k &> /dev/null | ent -t | cut -d, -f4; done 194.700684 308.307617 260.475586 236.611328 316.724609 306.418945 262.301270 240.013184 205.627930 257.049805 However, the probability is going down fast above 330. The probability of chi-squared 400 is just 0.000001% — it might happen just once per 100 million of samples! The chi-squared test will be our early warning radar when something breaks down in our extractor. The test tells us “hey, this looks less and less likely that your bits are coming from a uniform source!” if the chi-square score is rising. It states nothing about the nature, validity or source of our entropy, only how likely it is that the bits are produced by a uniform random source. ![](https://cdn.steemitimages.com/DQmbkg8xVxyMeFqskKwMW6qDDmBJvzCNLfYcFVApsbxHbuG/image.png) We will use the chi-squared statistic of entropy block as a real-time quality score, and we will run a more compressive randomness test suite later when we evaluate the final results. All Together At Once As we have seen, a good entropy extractor is quite a complicated piece of crypto machinery! Let’s review how we put all the pieces together: Take two video frames as big arrays of RGB values. Subtract one frame from another, that leaves us with samples of raw thermal noise values. Calculate the mean of a noise frame. If it is outside of ±0.1 range, we assume the camera has moved between frames, and reject this noise frame. Delete improbably long sequences of zeroes produced by oversaturated areas. For our 1920x1080=2Mb samples and a natural zero probability of 8.69%, any sequence longer than 7 zeros will be removed from the raw data. Quantize raw values from ±40 range into 1,2 or 3 bits: raw_value % 2^bits. Group quantized values into batches sampled from different R,G,B channels, at big pixel distances from each other and in different frames to minimize the impact of space and time correlations in that batch. Process a batch of 6–8 values with the Von Neumann algorithm to generate a few uniform bits of output. Collect the uniform bits into a new entropy block. Check the new block with a chi-square test. Reject blocks that score too high and therefore are too improbable to come from a uniform entropy source. Whew! That was simple. Generating Entropy All right, let’s generate some hardcore “true” entropy! The iOS app is here or you can compile it from the source code and trace every bit as it travels through the extractor. There are two ways to get entropy from the app: AirDrop it to your MacBook (and we included the option to upload entropy block as CSV file as well for manual analysis), or use a Zax relay for secure device-to-device upload, which we will cover later. If the camera view is good, simply run the extractor at the maximum bandwidth by extracting all 3 bits from each noise value. ![](https://cdn.steemitimages.com/DQmdLxrx4LY6eeKrJ92JYwjBWUQv5qi9xCQVGQ3vipsFkny/image.png) However, things break down fast if the picture quality goes bad, by over saturation or having too many dark areas where noise variance goes down. With less variance, taking 3 bits from each datapoint will feed a lot of garbage into the extractor. The Von Neumann algorithm is not magic, and it will not create entropy out of thin air if we are oversampling raw data points[4]. Chi-squared statistics capture that immediately. 3 Bit Oversaturated The fix is easy — if picture quality is poor, just reduce the number of bits extracted from each datapoint down to 2 bits or even 1 bit. For this view, reducing it down to 2 bits returns our extractor back to normal scores. 2 Bit Oversaturated In truth, it is far simpler to run this extractor with excellent quality and maximum bit extraction, but it doesn’t make for an exciting video. Here is one of the best conditions we found to set up the camera for a perfect noise capture. 3 Bit MacBook Grey All this required was the high tech equipment of a pencil that lifts up the camera just a bit above a MacBook’s dull grey surface. It is the perfect scenery to capture our full range of thermal noise[5]. ![](https://cdn.steemitimages.com/DQmeLsMsptjtCXym9LjnfBkXNjvvFhYD4c6w8XBzPPKG1UK/image.png) High tech entropy generation with a pencil Sending Entropy Of course, all this firehose of perfect thermal entropy would be of little use if it stays local to your device. The good news is, we have already built the Zax relay around the top tier NaCl library to serve asynchronous, anonymous and encrypted process-to-process communications. That allows us to encrypt thermal entropy (produced by the owner in a condition they fully control) and establish a secure channel through a NaCl relay to send this entropy to any device that the owner selects. This will get us NaCl 256-bit “computational security” for such networked entropy sources. Each device is addressed by a NaCl public key. Relays do not use public keys of the communicating devices directly, the relay address space is defined as a “hash of the public key” (hpk). The communications are encrypted twice — the inner layer is encrypted with whatever is the destination public key by the originating device (i.e. our relays never even see the raw data), and the outer layer is encrypted with a separate NaCl ephemeral session key created when a station connects to relay. If you want to learn more about Zax relays, you can read about our full crypto architecture as well as our new protocol for large file exchange. Using a Zax relay you can run a process inside a cloud server that directly receives encrypted entropy from an Apple device under your control, unpack it in memory, and use that entropy as the situation demands — to seed local /dev/urandom as an extra source or to establish a separate, owner-controlled entropy pipeline directly from camera thermal noise. But isn’t this a bit of circular logic — using servers to secure servers? If you think through practical implications, it’s actually not. The main reason we put servers in the cloud is to process heavy computational load and to have access to a high bandwidth connection. The individual relay that passes entropy to cloud servers does not need heavy computing power nor high bandwidth, so it doesn’t need to be hosted in the cloud! As matter of fact a relay can be run on a modest Raspberry Pi stuffed into the same closet as an iPhone generator. With both the relay and iPhone under full owner control, the owner can establish a strong, secure channel into the cloud server environment. The only assumption we need to make is that owner’s SSH keys and server entropy during initial setup (server-side SSH keys) were not compromised, and that the owner can securely transfer a private key to the cloud server to establish a secure channel with the relay. Here is how it all fits together: To work with a Zax relay you need to install the Glow client library: npm i -g theglow. Pick a secret key for your target device or server. This can be any random 32 bytes generated anyway you like. For example, generate a key file cat /dev/urandom | head -c 32 | base64 > station_key.txt on a secure machine and use that file on a single target server. You can also use TrueEntropy’s “AirDrop” mode to generate the initial key entropy directly. Init a station with that key: cat station_key.txt | glow key --set. Or you can use glow key --generate to avoid creating an extra file. That command will also print out the resulting public key. Copy your device public key (PK): glow key --public Paste that public key in the Recipient slot of the TrueEntropy app and specify a relay URL. Copy the Device Key from the TrueEntropy app. Download the encrypted blocks uploaded by the TrueEntropy app, for example to download 5 blocks at once: glow download https://zax-test.vault12.com [Device/Sender Public Key] -n 5 We used our test relay in this example[6], for any production use you should deploy your own relays from source. For direct entropy use, you can pipe it into any destination: glow download https://zax-test.vault12.com [Device/Sender Key] --silent --stdout | ent That’s it! As long as TrueEntropy is running in “Network” mode, it will be uploading encrypted blocks to your relay, which in turn you can download, decrypt on a target device, and use as you see fit. If you are planning to use this for any practical purpose other than research, make sure you take care in selecting a good view for your camera (or reduce TrueEntropy’s bit setting to 1-2 bits), enable chi-square cutoff in Advanced settings, and use some form of hashing on the destination machine before using each entropy block. Keep in mind TrueEntropy is a research prototype, and we do not recommend using it in actual production environment. The Real Test: SP800–90B Now we know how to generate and deliver entropy to any device. But besides a simplistic test of chi-squared goodness of fit, how do we know whether the entropy we have produced is any good? Thankfully the good folks at NIST have already been thinking for a long time about how to build and evaluate entropy extractors, and they have summarized all the best practices in the SP800–90B document[7]. This is a must-read resource for anybody who is interested in serious work around writing randomness generators and entropy extractors. Many of the SP800–90B tests are implemented in software, and anybody can run them on any entropy source. These tests do a lot of heavy lifting checking for patterns far above and beyond our simple chi-squared test — it takes many hours for this test suite over single file. So how does a TrueEntropy block stack up against a state of the art entropy test suite? python iid_main.py ~/entropy-3b1.bin 8 -v reading 2097152 bytes of data Read in file /home/fallout/entropy-3b1.bin, 2097152 bytes long. Dataset: 2097152 8-bit symbols, 256 symbols in alphabet. Output symbol values: min = 0, max = 255 Calculating statistics on original sequence Calculating statistics on permuted sequences permutation tests: 99.99 percent complete statistic C[i][0] C[i][1] ---- excursion 3845 0 numDirectionalRuns 8304 3 lenDirectionalRuns 82 854 numIncreasesDecreases 5930 10 numRunsMedian 8144 2 lenRunsMedian 2288 1720 avgCollision 9654 0 maxCollision 433 204 periodicity(1) 1455 29 periodicity(2) 28 1 periodicity(8) 2996 32 periodicity(16) 8229 35 periodicity(32) 41 3 covariance(1) 229 0 covariance(2) 799 0 covariance(8) 421 0 covariance(16) 7136 0 covariance(32) 3487 0 compression 7488 6 (* denotes failed test) ** Passed IID permutation tests Chi square independence score = 65162.2, degrees of freedom = 65535, cut-off = 66659.4 ** Passed chi-square independence test Chi square goodness-of-fit score = 2285.22, degrees of freedom = 2295 cut-off = 2510.06 ** Passed chi-square goodness-of-fit test ** Passed chi square tests LRS test W: 5, Pr(E>=1): 0.864829 ** Passed LRS test IID = True min-entropy = 7.92358 Perhaps these tests are so easy to pass that anything will cross that threshold? As it turns out, that is not the case. For a quick experiment we replaced out the Von Neumann extractor with a far simpler one: it looks at noise value and outputs 1 if it is above zero, and 0 if it is below zero. Since (unlike Von Neumann) we never skip any sequences other than zero values, this extractor produces twice as much output (we included it in the source code as a reference). The bell curve distribution we have shown above is almost perfectly symmetrical, so it should be pretty random if the value is above or below zero, right? Would it be a good extractor and have higher performance? The SP800–90B judgement is harsh: such a naive extractor immediately fails no fewer than 5 tests: $ python iid_main.py ~/entropy-direct.bin 8 -v reading 1999996 bytes of data Read in file /home/fallout/entropy-direct.bin, 1999996 bytes long. Dataset: 1999996 8-bit symbols, 256 symbols > in alphabet. Output symbol values: min = 0, max = 255 Calculating statistics on original sequence Calculating statistics on permuted sequences permutation tests: 99.99 percent complete statistic C[i][0] C[i][1] ---- excursion 7875 0 numDirectionalRuns* 10000 0 lenDirectionalRuns 6435 3562 numIncreasesDecreases 394 4 numRunsMedian* 10000 0 lenRunsMedian 40 48 avgCollision* 10000 0 maxCollision 5222 1236 periodicity(1)* 0 0 periodicity(2) 46 2 periodicity(8) 1955 39 periodicity(16) 512 15 periodicity(32) 7632 39 covariance(1)* 0 0 covariance(2) 141 0 covariance(8) 6251 0 covariance(16) 5847 0 covariance(32) 5980 0 compression 7540 3 (* denotes failed test) ** Failed IID permutation tests IID = False Can we reliably use a 3-bit Von Neumann extractor with a good camera view? We definitely can, here is another entropy block produced with 3-bit settings on a balanced camera view: python iid_main.py ~/entropy-3b2.bin 8 -v reading 2097152 bytes of data Read in file /home/fallout/entropy-3b2.bin, 2097152 bytes long. Dataset: 2097152 8-bit symbols, 256 symbols in alphabet. Output symbol values: min = 0, max = 255 Calculating statistics on original sequence Calculating statistics on permuted sequences permutation tests: 99.99 percent complete statistic C[i][0] C[i][1] ---- excursion 5990 0 numDirectionalRuns 6878 8 lenDirectionalRuns 939 5563 numIncreasesDecreases 1204 13 numRunsMedian 220 1 lenRunsMedian 1198 966 avgCollision 8953 0 maxCollision 6838 1137 periodicity(1) 909 16 periodicity(2) 3748 45 periodicity(8) 8752 22 periodicity(16) 9318 16 periodicity(32) 8374 20 covariance(1) 3183 0 covariance(2) 4537 0 covariance(8) 3617 0 covariance(16) 2460 0 covariance(32) 316 0 compression 1473 6 (* denotes failed test) ** Passed IID permutation tests Chi square independence score = 65285.8, degrees of freedom = 65535, cut-off = 66659.4 ** Passed chi-square independence test Chi square goodness-of-fit score = 2269.05, degrees of freedom = 2295 cut-off = 2510.06 ** Passed chi-square goodness-of-fit test ** Passed chi square tests LRS test W: 4, Pr(E>=1): 1.000000 ** Passed LRS test IID = True min-entropy = 7.90724 Good news — our extractor output passed the SP800–90B IID test.[7] Future Improvements What started as a fun weekend project turned out to be an interesting application, and we ended up spending over a week to implement it to the level of a minimal MVP. It once again showcased the amazing power contained in billions of smartphones that we take for granted these days. Of course, the first MVP might be too raw for production use. The good news is, all our source code is MIT licensed, so you are welcome to take a stab at making it better. Someday, you can replace your expensive wall of lava lamps with a simple used iPhone in the closet! What can be done to improve this codebase: We are taking the camera as a given constant, yet it is quite configurable and an extremely powerful device! What camera settings can be adjusted and automated to maximum noise variance in all conditions? The app will then be less sensitive to selecting a proper view and can just adjust itself to generate perfect entropy in any conditions. We used the Von Neumann extractor since it was the simplest to implement and it offered a perfect educational canvas to demonstrate how each bit sequence is converted from biased raw source to uniform. However, cutting-edge extractors in the industry leverage “sum-product theorem” (sources are mixed up as X*Y+Z over specific field) and might be much more powerful given the number of noise pixel values we are getting from each frame. Want to relax IID assumptions and avoid careful setup of a non-correlated quantizer? Easy — use any good universal hash function. The only new requirement is that the universal hash will require a one-time seed. We can make an easy assumption that the iPhone local state of /dev/urandom is totally independent from thermal noise camera is seeing, and simply pick that seed from everybody's favorite CSPRNG. We are not actually extracting the maximum amount of entropy. Newer iOS devices support HD resolution of 3840x2160 per frame. The higher the resolution, the more variance of each pixel noise the camera will detect, and we can even start extracting 4-bit datapoints in the same “perfect” conditions. The downside is that now the device has to process 8Mb of data before the the first bit of entropy is generated, and it slows down initial output and requires a huge memory footprint. We left the default at 2Mb per frame for better responsiveness, but you are welcome to change that if you are looking for maximum entropy throughput[8]. Not surprisingly, most of the cycles in our app are spent on running the extractor logic on the iOS device CPU — that is by far the main performance bottleneck in the app right now. Calculating the frame difference noise takes only 0.1 seconds on the iPhone7 over a 2Mb frame, while running the extractor over the same frame takes up to 5–7 seconds. To maximize the bandwidth of thermal entropy, one solution would be only capture raw noise values from the iPhone and run the extractor on the target machine. Such a setup would allow us to generate entropy at a theoretical maximum speed for camera resolution in the tens of megabytes per second. The chi-square test is the simplest and quickest realtime tests we can run as entropy blocks are generated. The SP800–90B we used for static testing has a massive array of entropy assessment and health algorithms. Adding a few realtime health checks, the SP800–90B suite can provide additional safeguards when used in production. One More Thing Well, that is it! We hope you enjoyed our quick foray into randomness extraction that holds interesting possibilities to generate a massive amount of entropy from any smartphone with a camera. One of our goals in creating the TrueEntropy app was to stress test our relay network to see how it behaves under the heavy load from handling all these endless entropy streams. These relays power our main project which we have run in stealth mode for a while, but we are just about to open it up for a public beta test. One of the big problems facing all owners of cryptocurrencies is that there is no good way to securely and reliably store extremely valuable private keys and seed phrases. For many years, state of the art security was to print out a 12-word phrase and keep it in a bank safety deposit box[9]. We started Vault12 to build a much better platform to secure crypto-assets, and in our next essay we will tell you all about it! If you are interested in cryptography and cryptocurrencies, we would love to have more beta testers for the upcoming public beta of our platform — feel free to join our Slack if you want to participate! -Team Vault12 Many thanks to Terence Spies, Yevgeniy Dodis, Lucas Ryan and Naval Ravikant for reading the draft of this essay and valuable feedback. References An introduction to randomness extractors https://cs.haifa.ac.il/~ronen/online_papers/ICALPinvited.pdf Von Neumann Extractor: https://cs.nyu.edu/courses/spring06/G22.3220-001/scribe/Lecture2.pdf http://www.eecs.harvard.edu/~michaelm/coinflipext.pdf Elias & Peres Extractor: https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-441-information-theory-spring-2016/lecture-notes/MIT6_441S16_chapter_28.pdf Extracting Randomness Using Few Independent Sources http://www.boazbarak.org/Papers/msamples.pdf Zax “NaCl” Relay https://github.com/vault12/zax Zax Technical Spec https://s3-us-west-1.amazonaws.com/vault12/crypto_relay.pdf Glow Client Library https://github.com/vault12/glow Your Smartphone Can Measure Your Radiation Exposure https://medium.com/the-physics-arxiv-blog/your-smartphone-can-measure-your-radiation-exposure-ce9b464d68aa One of the Secrets Guarding the Secure Internet Is a Wall of Lava Lamps https://sploid.gizmodo.com/one-of-the-secrets-guarding-the-secure-internet-is-a-wa-1820188866 Entropy Attacks! https://blog.cr.yp.to/20140205-entropy.html SP800–90B https://csrc.nist.gov/CSRC/media/Publications/sp/800-90b/draft/documents/sp800-90b_second_draft.pdf Managing and Understanding Entropy Usage https://www.blackhat.com/docs/us-15/materials/us-15-Potter-Understanding-And-Managing-Entropy-Usage.pdf Avalanche Effect Generators http://holdenc.altervista.org/avalanche/ http://ubld.it/truerng_v3 Red Hat: Passing entropy to guest OS Amazon HSM [1] Copy two blank pictures from the camera as layers, set layer blending to “Difference” and adjust “Levels” to about 20x amplification. [2] Each value in a batch becomes locally IID (independent identically distributed). There are computationally slower methods to build quantizer that satisfies a ‘global’ IID condition, but practically it is much simpler to deal with residual correlations by simply passing extractor output through a hash function. [3] The variance of sensor noise is correlated with the amount of light hitting the sensor — a higher intensity produces more noise as long as area is not oversaturated, while dark spots produce smaller variance of noise values [4] Formally speaking, by oversampling values that do not have enough variance we are breaking the IDD assumption about our data points that requires the Von Neumann/Peres algorithm to work — a number of bits in oversampled values becomes predictable. [5] Another option we found is to put the phone on the desk camera up to focus on a ceiling in a dimly lit room. [6] We restart and update that zax-test server quite often. You are welcome to use it for quick testing but don’t expect any sort of stable performance from that URL! It can and will go offline/restart at any moment. [7] Since our essay is getting quite long, for brevity we are showing only quick tests of the VN/Peres extractor. For additional scrutiny you can export raw values from the Sample class and run non-IID tests to measure characteristics of raw thermal data (and its entropy) — SP800–90B has a lot of details on how to conduct comprehensive testing of raw non-IID data. [8] Change line 16 in Constants.swift to AVCaptureSession.Preset.hd4K3840x2160 [9] As some Ƀ owners painfully found out during the Greece banking crisis, when banks close, they close access to safe deposit boxes — exactly when owners needed them the most.![] FIRST PUBLISHED https://medium.com/vault12/how-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy-a9d47ca80c9b
json metadata{"tags":["security","cryptography","cryptocurrency","entropy","randomness"],"image":["https://cdn.steemitimages.com/DQmey7oAtkLjdmiu4MS91GENchYVYH5jg162mrn7BpKwFgy/image.png","https://cdn.steemitimages.com/DQmQsvX7HFFGY4i8qZt6DsbNr7b5ugtUE1gMMdmxyy9NVeE/image.png","https://cdn.steemitimages.com/DQmZMK4vFRdSRZSSvE1icDJLXrCPxMpLYuBasBMTkcnxrMs/image.png","https://cdn.steemitimages.com/DQmVy7fQQ5N2eprKSw4XFxVRy7pGgKqXtf9WtWFKefB3Kdv/image.png","https://cdn.steemitimages.com/DQmbjBw4n9ozfdDr2so6PU7v82Km2rVXcqns5RuMSFzfLjU/image.png","https://cdn.steemitimages.com/DQmXhz67R5Rdxqj6NhCRHoCJcPLccxDZhM4u4j3EJuQHtus/image.png","https://cdn.steemitimages.com/DQmZRVhs2QBLKJNK5kQuY7DuGefCk9RJ1xDKEgDtMPZWvAJ/image.png","https://cdn.steemitimages.com/DQmZytNT27s7J8PqZqFS5cUkYFTBrueHCtXo7wmCMZTbrwL/image.png","https://cdn.steemitimages.com/DQmbkg8xVxyMeFqskKwMW6qDDmBJvzCNLfYcFVApsbxHbuG/image.png","https://cdn.steemitimages.com/DQmdLxrx4LY6eeKrJ92JYwjBWUQv5qi9xCQVGQ3vipsFkny/image.png","https://cdn.steemitimages.com/DQmeLsMsptjtCXym9LjnfBkXNjvvFhYD4c6w8XBzPPKG1UK/image.png"],"links":["https://zax-test.vault12.com","https://cs.haifa.ac.il/~ronen/online_papers/ICALPinvited.pdf","https://cs.nyu.edu/courses/spring06/G22.3220-001/scribe/Lecture2.pdf","http://www.eecs.harvard.edu/~michaelm/coinflipext.pdf","https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-441-information-theory-spring-2016/lecture-notes/MIT6_441S16_chapter_28.pdf","http://www.boazbarak.org/Papers/msamples.pdf","https://github.com/vault12/zax","https://s3-us-west-1.amazonaws.com/vault12/crypto_relay.pdf","https://github.com/vault12/glow","https://medium.com/the-physics-arxiv-blog/your-smartphone-can-measure-your-radiation-exposure-ce9b464d68aa","https://sploid.gizmodo.com/one-of-the-secrets-guarding-the-secure-internet-is-a-wa-1820188866","https://blog.cr.yp.to/20140205-entropy.html","https://csrc.nist.gov/CSRC/media/Publications/sp/800-90b/draft/documents/sp800-90b_second_draft.pdf","https://www.blackhat.com/docs/us-15/materials/us-15-Potter-Understanding-And-Managing-Entropy-Usage.pdf","http://holdenc.altervista.org/avalanche/","http://ubld.it/truerng_v3","https://medium.com/vault12/how-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy-a9d47ca80c9b"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #27497544/Trx 6ad8a6c7b091700ece5ee5e8604998759065a573
View Raw JSON Data
{
  "trx_id": "6ad8a6c7b091700ece5ee5e8604998759065a573",
  "block": 27497544,
  "trx_in_block": 31,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-07T17:54:12",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "security",
      "author": "vault12",
      "permlink": "how-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy",
      "title": "How to get true randomness from your Apple device with particle physics and thermal entropy",
      "body": "Cryptography and randomness are interlinked on a fundamental level. When we encrypt a secret we want that result to look like completely random gibberish. In fact, if an external observer manages to notice any non-random patterns in our encrypted secret, that would be something they can exploit in order to recover parts of our secret. If you imagine cryptography as a ‘factory’, then for it to work well it has to be constantly lubricated by a fair amount of random entropy, otherwise the complicated machinery will explode in a spectacular fashion.\n\nWhile that makes modern cryptography strong, it is very hard to find sources of good randomness. In fact, mathematicians have proven that if somebody gives you a seemingly random string, you cannot by any means ever prove if it is truly random (i.e. unpredictably generated), or if it just appears random, e.g. an adversary who wants to steal your secrets just crafted that string to look random. Since you cannot verifiably test any external service for the quality of its “true randomness”, in order to create a secure system you have to procure your own. Scientists have understood for a long time that it is pointless trying to hide the details of cryptographic algorithms, and they are widely known to everybody, including hostile attackers. The only things attackers do not know is the entropy of your cryptosystem — each bit of good (i.e. truly unpredictable) entropy creates a bit of cryptographic strength that protects your secrets.\n\nBecause cryptography requires a lot of unpredictable randomness, scientists have found many sources of “true” entropy — natural processes that through the laws of physics or chemistry constantly produce highly unpredictable, random results. Unfortunately, all these sources are inconvenient to use, because they require special purpose hardware or even more cumbersome setups. Current state of the art cryptography allows taking small, unpredictable seeds of randomness from the physical world, and spinning them up into endless, unpredictable, random streams of data. Modern computers and phones are equipped with highly sophisticated systems that do just that, so in general you can always use your computer’s /dev/urandom device when you need an unlimited source of randomness. If you are reading this on your MacBook right now, you can type the following command into the Terminal app to get as many random strings as you need: cat /dev/urandom | head -c 32 | base64 (substitute 32 to get longer or shorter strings).\n\nOne of the applications for natural entropy sources is building secure cryptosystems hosted on “cloud” servers. In such cases, we no longer have physical computers under our full control. There are a few ways to feed entropy into virtual computers, yet they all bear the same weakness cryptographers hate most of all — it requires blind trust of an external party to do the “right thing”. This is not optimal. Even the most respected cloud providers are still run by human beings who are known to make mistakes from time to time. Cryptographers prefer to be protected not by well-meaning humans, but by fundamental mathematical laws. And even the best corporations can be penetrated by hackers and hostile governments. As a customer of cloud services, there are simply no tests you can do to verify that your virtual host is getting “good” randomness from your trusted provider, or “bad” randomness that is subverted by hackers — they would look exactly the same. In fact, it will be enough for hackers to just make a copy of real, “true” randomness generated by the host hardware: it still will be perfect randomness received by your system, yet at same time it will be fully predictable (since the hackers would see it before you do). One popular version of Linux even created new service to help “pollinate” virtual machines with external randomness when they boot up.\n\nIn this article, we are going to show you how to create a new source of “true” thermal entropy from any Apple iOS device that is verifiably under your own control that nobody else can intercept or spoof. Having an independent, extra source of “true” entropy is useful because entropy failures are very hard to detect — there is no “flashing red light” to alert us when our main source of entropy fails for any reason. When used with reasonable precautions multiple sources of natural, “true” entropy allows us to build stronger cryptosystems.\n\nA Noisy Phone\nOne of our open source products is the Zax relay which allows for asynchronous, anonymous and encrypted process-to-process communications between different devices, which we use for our main product. Like everybody else, most of our relays run inside the cloud infrastructures of various vendors with strong security measures in place. Yet there is no formal test we can devise that would tell us if our entropy sources used by the massive cryptography stack running on our servers are truly secure or has been subverted somehow. Can we add more security to our setup without investing into building our own datacentdata centerelying on blind faith that our hosting providers will always keep our virtual computers secure?\n\nDuring our recent hackathon, we decided to try out a few ideas from an interesting paper. The gist of it is that any smartphone’s camera silicone is composed of millions of “pixels”, each one sensitive enough to detects high energy particles and thermal effects. The researchers state:\n\nThe sensors generate a considerable amount of noise that can swamp the relatively small number of signals from gamma radiation, even when the camera is used with the lens covered so that no visible light can obliterate the signal.\nThese are great conditions for a “true” entropy source. There is some amount of totally unpredictable randomness driven by particle physics affecting every pixel. There is also a large amount of always present “thermal” noise (driven by the fact that all atoms in the sensor jitter around a lot when they are at room temperature). Best of all, all of that generates a huge amount of entropy no matter the condition the camera is in, even with the lens fully covered! Can we capture such thermal entropy and use it?\n\nEvery picture you take with a camera is a combination of two things: the signal, which is the image of what is in front of camera, and the noise — all the tiny fluctuations in each pixel driven by a myriad of unpredictable factors — high energy particles from cosmic rays, background radiation, and the thermal and electric activity in the circuits. Each camera image is Signal + Noise. Imagine we take 2 pictures one after the other: Picture #1 = Signal + Noise #1, and Picture #2 = Signal + Noise #2. The signal is the same because what is in front of the camera did not change. Yet the noise, being random and unpredictable, changes every microsecond in each camera pixel. Now, if we subtract one from the other, we will be left with only Noise #1 minus Noise #2, which is also unpredictable, random noise. That is exactly what we want to extract.\n\nTo demonstrate the concept, we took two blank photos (with the camera lens closed and thus not getting any signal at all) and calculated the amplified difference between these two pictures. You can trivially recreate this yourself with any phone and an image editor like Photoshop[1].\n\n![](https://cdn.steemitimages.com/DQmey7oAtkLjdmiu4MS91GENchYVYH5jg162mrn7BpKwFgy/image.png)\nAmplified difference between 2 blank iPhone pictures taken with lens closed.\n\nWow, that 12 mega-pixel camera sure has produced a lot of entropy! Let’s see if we can build a full system around this concept.\n\nThe Raw Data\nLet’s do the following:\n\nStart the iPhone in video recording mode.\nCopy all RGB pixels of each video frame.\nSubtract from each pixel in a given frame a pixel in the same position on the next frame.\nWhat we are going to get is frames composed only of residual noise. Going forward, when we talk about the “frame” we always refer to one frame of “noise” — the frame we construct by such pixel subtraction. By “pixel”, we will mean individual value in given color channel (red, green or blue). In the original frames, pixels take values in the range from 0 to 255, while in the difference frames they will be in the-255 to +255 range, depending on which of the two pixels is brighter than the previous one.\n\nLet’s capture a few noise frames and then calculate a few statistics about what is inside.\n\n![](https://cdn.steemitimages.com/DQmQsvX7HFFGY4i8qZt6DsbNr7b5ugtUE1gMMdmxyy9NVeE/image.png)\n\nFirst few difference frames\nHere are a few difference frames captured right after turning on the camera. Since we subtract one frame pixels from another, the value of each pixel can be from -255 to 255. The Mean will be the mean value of difference in a red, green or blue channel. Min/Max records extreme values for each frame. A few trends are immediately obvious from this data:\n\nIt takes the camera a few frames to focus on the scenery. While the camera is focusing, the difference between each frame is big, as evidenced by large values in the mean, deviation and pixel min-max range.\nOnce the camera is focused, the mean rapidly converges to almost zero. This will be a useful attribute for us to detect if the camera field of view has changed — we can reject all difference frames where the mean is larger than a small value like 0.1.\nIn a focused, stable view the min/max range becomes much smaller, just ± 20 pixels on average, and very rarely reaching ± 40 pixel intensity. That is exactly the behavior of the relatively small thermal noise present in every pixel of a camera image for which we are looking.\n\nZero Sequences\nLet’s look at the raw data in each channel:\n\n![](https://cdn.steemitimages.com/DQmZMK4vFRdSRZSSvE1icDJLXrCPxMpLYuBasBMTkcnxrMs/image.png)\n\nThat looks like what we would expect from a random distribution of noise, yet one thing jumps out immediately — why there are so many zeroes? They are clearly breaking out from the pattern of a normal “bell curve” distribution we should expect from the physics textbook.\n\nLooking into the raw data stream, it is quickly noticeable that each channel contains very long sequences of zeroes, sometimes going for over a hundred zeroes. Is this normal? According to our data, the probability of 0 in this sample is 14.33%. If we assume these zeroes are random, then any N-long sequence of zeroes will have a probability of 14.33% taken to the power of N.\n\n\nExpected zero sequences in 518kb sample\n\n![](https://cdn.steemitimages.com/DQmVy7fQQ5N2eprKSw4XFxVRy7pGgKqXtf9WtWFKefB3Kdv/image.png)\n\nApparently, there is virtually no chance to see a sequence of zeroes longer than 5 or 6 in our sample. Yet we are seeing sequences of 100 and more. Clearly, this is not random, and something else is going on. After digging through the data and experimenting, we found the culprit.\n\nThe problem is that a given channel has oversaturated areas. Imagine the camera focusing on an item that has bright red spots. They are so intensively red that camera will register these pixels as 255 on the red channel. Naturally, that pixel will be subject to the same noise as any other pixel, but since the signal is so strong, the next frame will still have exactly the same 255 in that pixel. In other words, for an oversaturated sensor 255 + Noise = 255, meaning that such pixels will lose the ability to register noise at all! When we subtract them from each other, we get zero, yet this zero is no longer a random thermal event - these “no-noise” zeroes simply trace the area of the oversaturated condition in the picture. That leads to a couple of important lessons:\n\nWhen generating entropy with the lens uncovered, avoid too bright conditions that eliminate sensor sensitivity.\nThe improbably long sequence of zeroes is a telltale sign of such oversaturated spots in the difference frame. Before we generate entropy, we will scan for such improbably long sequences and eliminate them from the sample data because they contain no real thermal noise.\nFrom our testing, we found that any matte background — like the dull finish of a MacBook Pro — works best when doing entropy generation with the lens uncovered. Or something as simple as putting your phone on the table camera up to capture a mildly lit room ceiling works well too to avoid oversaturated areas. Since we want to register as much noise entropy as we can, the ideal conditions would be to point a camera at some scenery that is “mild grey” (right in middle, around 128 on each channel), so that the camera has the full range of intensity to register noise ups and downs.\n\nYet before we can start generating entropy, we need to deal with one more issue.\n\nDealing With Correlations\nCorrelation is the natural enemy of entropy. When two things are correlated it means that taken together they contain less entropy then it would appear from looking at them individually. Let’s zoom in on the “pixel entropy” we generated earlier from camera noise.\n\n![](https://cdn.steemitimages.com/DQmbjBw4n9ozfdDr2so6PU7v82Km2rVXcqns5RuMSFzfLjU/image.png)\nHigh correlation areas\n\nAs you can see, individual pixel colors do not change completely randomly. All of them are clustered in small groups few pixel wide. That makes sense: if a thermal event or high energy particle is hitting our sensor silicon somewhere, it will not hit just one and only one pixel. It will affect some area around that pixel. So all of these colors are random yet correlated. This is our first correlation factor, a correlation of space.\n\nIf we consider the implications of the original article, the second kind of correlation becomes apparent as well:\n\nGamma rays have far more energy than visible light photons: for example, they might have 20,000 eV compared to between 1.77 and 3.1eV for visible light from red to violet respectively. And because they have much higher energy to start with, they transfer far more to any electron they hit. This in turn then careers through the material ionising other electrons until its energy is dissipated. So an electron with 20 KeV might ionise 10,000 other electrons before it dissipates. That’s a signal that a smartphone camera ought to be able to see.\nHigh energy particles that bombard our sensor not only affect the pixels in one frame; if the energy is high enough, it will continuously affect silicon in that area while the energy of the initial collision dissipates through the medium. Therefore some areas of our picture will have correlation going on in time through several frames.\n\nAll of these events are perfectly random, yet unless we are careful, these events will be clumped into correlated clusters. What can we do to break down such correlations as much as possible? We can reduce correlation by taking a few easy steps with our raw data:\n\nBreak local group by accessing the pixels in different order. For example, we can take all red pixels in their natural order, going from 1st pixel to the last pixel in the frame. We will take green pixels in the reverse order, going from last to 1st. For blue pixels, we can use orthogonal order that replaces rows with columns in the frame (instead of 0,1,2,3 ordering will be 0,10,20,…1,11,21…). This way correlated pixels in the clumps we have seen above will never be used together.\nInstead of using frames one after another, we can use frames that are more distant from each other in time. For example, at 30 frames per second, we can buffer 15 frames, and then extract entropy by using frame 1 and 16, 2 and 17, etc. That means we will be mixing in frames that are half a second apart — which should be enough for timing correlations to dissipate away.\nWe will mix in red, green and blue channels in parallel from different frames, since there will be less correlation between pixels of different colors in different frames. For example the “red” pixel 10 on frame 1 is less correlated with the “blue” pixel 321 on frame 15, while it might be strongly correlated with the “blue” pixel 9, 10 and 11 in the same frame 1.\nThere is one caveat worth mentioning: such reshuffling and grouping of values does not eliminate correlation globally. Whatever amount of entropy we had at the beginning (reduced by correlations) in our sample, we end up with the same amount of entropy in the end, no matter how we reshuffle. What we get by accessing values across frames, in different channels, from pixels that are distant from each other is eliminating local correlation in each batch of values formed that way[2], so that each value in the batch passed to our extractor is independent from the others.\n\nFrom Normal to Uniform\nNow that we have all the ingredients in place, we are ready to create the entropy extractor. After correcting for oversaturated areas, the raw high-resolution data for a single channel of one frame looks like this:\n\n![](https://cdn.steemitimages.com/DQmXhz67R5Rdxqj6NhCRHoCJcPLccxDZhM4u4j3EJuQHtus/image.png)\n\nThat is a perfect normal distribution of noise in our difference frame. However, to generate entropy we need to somehow convert this normal distribution to a uniform distribution. The first thought would be to use the inverse form of an elegant Box-Muller transform… which, unfortunately, wouldn’t work for us at all. The Inverse Box-Muller transform requires a continuous distribution, and our raw data is all discrete values.\n\nIn fact, the problem is even harder than it appears at first glance. Look at the numbers — despite the fact that the range of values we see in the noise is from -33 to +33, over 96% of our data points are all in the narrow range from -10 to +10. The size of that range depends on camera conditions: if a picture has too many oversaturated spots or too many dark spots [3] there will be less noise overall, and the range will decrease even further. For “lens covered” blackness the vast majority of data points can shrink to ±3: a total of just 7 different values. We need to generate perfect, uniform entropy from a limited sets of these values (around 21 values in perfect conditions, or down to 7 values in the worst conditions). And the distribution of these values will be highly biased — in our distribution, the sample zero is happening most often with a frequency of 8.69%.\n\nHow much entropy can we hope to extract, theoretically? For this purpose, there is a well-known concept of “minimal entropy” (usually referred as min-entropy). Unlike Shannon’s entropy definition, which characterizes the entropy of an overall distribution, min-entropy describes the worst case scenario — the characteristic of the value that happens most often and thus is the most predictable. In this sample, zero happens 8.69% of the time. The simple calculation of -log2(8.69%) gives us a theoretical min-entropy of 3.52 bits — the maximum number of bits we can expect to extract from a single data point. Another way of stating this: every time we read a pixel value of noise, no matter if the value is -30 or +10 or 0, reading that value reduces our uncertainty only by 3.52 bits. Despite the fact that 33 would require more than 5 bits to encode (2^5 = 32), it doesn’t matter — the only entropy (uncertainty) hidden inside each value is just 3.52 bits at best. If we have to work with worse camera conditions (i.e. less variance of noise), then our entropy per data point will go down even more. The good news is that our 12 megapixel camera has lots and lots of data points produced every second!\n\nSo, depending on camera conditions, we encode all data points into 1, 2 or 3 bits: quantized_value = raw_value % 2^bits. However, even after encoding, our bits are still heavily biased, obviously with zero bits being far more prevalent since our most common value is zero. How can we go from a zero-biased bitstream to a bitstream with uniform distribution? To solve this challenge, we are going to use the granddaddy of all randomness extractors — the famous Von Neumann extractor.\n\nVon Neumann extractor\nJohn Von Neumann figured out how you can get perfect entropy even if your source is a highly biased coin: a coin that lands on one side far more often then another. Let’s say we have a coin that turns up heads (0) 80% of the time, and tails (1) 20% of the time. Yet despite having a coin that is so defective, we can still extract perfectly uniform entropy from it!\n\nHere is the key insight from Von Neumann’s extractor. Let’s think about each pair of coin tosses. Obviously, a toss of 0,0 is far more likely than a toss of 1,1 since zero is far more probable to happen. But what will be the probability of a 0,1 toss compared with a 1,0 toss? The first toss has a probability of 80% x 20% = 16%. The second toss will have probability 20% x 80% ... wait, it is the same number! We just changed the order of variables, but the result is exactly the same.\n\nVon Neumann understood that even if your source is biased, the probability of combinations 1,0 and 0,1 are equal and you can just call the first combination the new extracted ‘zero’, and second combination an extracted ‘one’. No matter how bad your source is, the stream of ‘new’ zeroes and ones will be perfectly uniform. Here is a classical Von Neumann extractor of biased random bits:\n\nIf you have a pair of 0,0 or 1,1 just toss them away: they do not produce anything.\nIf you have 1,0 or 0,1 pair, use the final bit as your result and it will have a uniform random distribution: the probabilities of these two pairs are exactly the same!\nThe Von Neumann extractor works amazingly well and has the added benefit that we do not even need to know how biased our incoming bits are. However, we are throwing away much of our raw data (all these 0,0 and 1,1 pairs). Can we extract more entropy? Elias (’72) and Peres (’92) came up with two different methods to improve the Von Neumann extractor. We will explain Peres method since it is a bit simpler to explain and implement.\n\nWe already know that 1,0 and 0,1 have the same probability - there is no difference between 80x20 and 20x80 if a binary source is biased 80%/20%. But what about longer sequences? Let think about the “throw away” sequences 1100 and 0011. If we use straight Von Neumann method we will get nothing from these: both 11 and 00 will be tossed away. But let's calculate probabilities: 1100 will be 20x20x80x80, while 0011 will be 80x80x20x20 - the same numbers again.\n\nThere is clearly something very similar to what we have already seen. We have two sequences with the same probabilities. Again we can say that a sequence ending with 00 is a new “zero”, while sequence ending with 11 will be a new “one”. This is a case of recursion: we are using the same algorithm just on numbers doubled up instead of originals. Here is the Von Neumann extractor with simple recursion:\n\nIf you have a 1,0 or 0,1 pair, use final bit as your result (classic Von Neumann).\nIf you have a 1,1 or 0,0 pair, convert it into 1 or 0 and add it to a temporary buffer.\nAfter you are done processing the initial data, run the Von Neumann extractor again on the buffer you collected.\nSince all 1,1 and 0,0 sequences become just single bits, the Von Neumann classic algorithm by definition will extract more uniform bits if the initial data contained any 1,1,0,0 or 0,0,1,1. And since this algorithm is recursive we can keep running it as long as something collects in our temp buffer and extract every last bit of entropy from longer sequences. Finally, the Peres algorithm has one more abstraction that allows us to extract even more entropy from a Von Neumann source by using the position of sequences that produce bits in initial stream, which is implemented in our codebase.\n\nNow we have a powerful extractor that can deal with an input of biased bits, and we are almost ready to extract some entropy. But there is one more step we need to do first.\n\nQuick Test: Chi-Squared\nThere is no test for “true” entropy. What might look like a perfect random entropy coming from, say, quantum physics, can be in fact completely deterministically created by a software generator and fully controlled by an attacker selecting an initial seed. There is no test on the data one can run that determines a difference between a “true quantum random process” and a “software generated sequence”. The very success of modern cryptography is the fact that we can make a “software generated sequence” (the result of an encryption algorithm) look indistinguishable from “true entropy”. Yet at the same time, there are a number of software tests for randomness: FIPS-140, SP800–90B. What is going on?\n\nTo understand the purpose of such “randomness tests”, we are going to review one of the simplest tests: chi-squared (pronounced ‘kai-squared’) goodness of fit. Khan Academy has an excellent video explaining step by step how to use the chi-squared test — check it out to learn more. The chi-square test is fairly simple and consists of the following:\n\nFormulate a theory about whatever you want to test and then calculate what you expect to observe if your idea is correct.\nObserve real-world events and record the observed values.\nThe chi-squared statistic is calculated by summing together across all events the following: (ObservedValue - ExpectedValue)²/ExpectedValue\nUse a lookup table or chi-squared calculator to answer the key question: what is the probability that the observed events are the result of your theory?\nAs you can see, the formula is just saying in math language “I will collect the square of all differences between what you thought was true and what is happening in the real world in the proportion of what you were expecting. If any of your expectations are too far out from reality, then the squared difference will grow very fast! The bigger it becomes, the more wrong you are.”\n\nLet’s work it out for our case — building a uniform entropy extractor. We want to produce random bytes, that can take values from 0 to 255. We want the distribution of our bytes to be uniform, so that the probability of every byte is exactly the same. Observing every byte is an event, so we have 256 events total. Let’s say our software produced 256,000 bytes and we are ready to run the chi-square test on them. Obviously, if the bytes are uniform (our theory) we would expect to see each byte with a probability of 1/256. Therefore we will see each byte exactly 256,000/256 = 1000 times exactly. That is our expected value for each event. Then we record the observed value (how many times we actually see each byte in our data) and sum all 256 values of (ObservedValue - 1000)²/1000. That number is our chi-squared statistic. What do we do with it?\n\nChi-squared tables are organized by two parameters — so-called degrees of freedom — which is a fancy way of saying “a number of independent events you have minus one”. In our case, the degrees of freedom will be 256-1 = 255. The most interesting part is the second parameter P, a probability that we can calculate from 99.9% (extremely likely) to 0.1% (extremely unlikely).\n\n![](https://cdn.steemitimages.com/DQmZRVhs2QBLKJNK5kQuY7DuGefCk9RJ1xDKEgDtMPZWvAJ/image.png)\n\nThe only printed table we could find tantalizingly cuts off at 250 — just 5 short from what we need! However, we can use a chi-squared calculator to get the exact values we need.\n\n![](https://cdn.steemitimages.com/DQmZytNT27s7J8PqZqFS5cUkYFTBrueHCtXo7wmCMZTbrwL/image.png)\n\nWhat this table tells us is the probability that our observation fits our hypothesis — the hypothesis we used to formulate all expected values. In other words, if we get chi-squared around 190, it virtually guarantees that the observed events match our theory about them — the theory that they all are coming from uniform distribution — but there’s still is a 0.1% chance that we are wrong! For a chi-squared at 284, there is a10% chance that our hypothesis is correct. That is not bad actually — if you run the chi-square test 10 times on 10 perfectly random samples, it is likely that you will get one sample around 284. If you run hundreds of random samples, one might have a chi-square value of 310, i.e. a sample with a low probability of 1%. If you willing to test a thousand samples, one might have a chi-squared value of 330 (0.1%).\n\nAs you can see, the chi-square test, like all other randomness tests, do NOT tell us anything about the nature of our randomness! They don’t tell us if it is “true” randomness or not, i.e. is it derived from a “true” physical source or generated by software. This test answers the much simpler question: after looking at the given sample, what is the chance that this sample of random values came from a source with uniform distribution?\n\nSince the tests are probabilistic in nature, care must be taken in interpreting the results. It doesn’t mean that something is obviously “wrong” with a chi-square score of, say 310 (which is a low 1% probability). It takes just a few tries of running this script to produce chi-square scores over 300 (as measured by ent) from the state of the art /dev/urandom on Mac OS X. If you keep repeating the test dozens or even hundreds of times, you should expect less and less likely values to manifest.\n\nfor i in {1..10}; do dd if=/dev/urandom bs=1k count=1k &> /dev/null | ent -t | cut -d, -f4; done\n194.700684 308.307617 260.475586 236.611328 316.724609 306.418945 262.301270 240.013184 205.627930 257.049805\nHowever, the probability is going down fast above 330. The probability of chi-squared 400 is just 0.000001% — it might happen just once per 100 million of samples!\n\nThe chi-squared test will be our early warning radar when something breaks down in our extractor. The test tells us “hey, this looks less and less likely that your bits are coming from a uniform source!” if the chi-square score is rising. It states nothing about the nature, validity or source of our entropy, only how likely it is that the bits are produced by a uniform random source.\n\n\n![](https://cdn.steemitimages.com/DQmbkg8xVxyMeFqskKwMW6qDDmBJvzCNLfYcFVApsbxHbuG/image.png)\n\nWe will use the chi-squared statistic of entropy block as a real-time quality score, and we will run a more compressive randomness test suite later when we evaluate the final results.\n\nAll Together At Once\nAs we have seen, a good entropy extractor is quite a complicated piece of crypto machinery! Let’s review how we put all the pieces together:\n\nTake two video frames as big arrays of RGB values.\nSubtract one frame from another, that leaves us with samples of raw thermal noise values.\nCalculate the mean of a noise frame. If it is outside of ±0.1 range, we assume the camera has moved between frames, and reject this noise frame.\nDelete improbably long sequences of zeroes produced by oversaturated areas. For our 1920x1080=2Mb samples and a natural zero probability of 8.69%, any sequence longer than 7 zeros will be removed from the raw data.\nQuantize raw values from ±40 range into 1,2 or 3 bits: raw_value % 2^bits.\nGroup quantized values into batches sampled from different R,G,B channels, at big pixel distances from each other and in different frames to minimize the impact of space and time correlations in that batch.\nProcess a batch of 6–8 values with the Von Neumann algorithm to generate a few uniform bits of output.\nCollect the uniform bits into a new entropy block.\nCheck the new block with a chi-square test. Reject blocks that score too high and therefore are too improbable to come from a uniform entropy source.\nWhew! That was simple.\n\nGenerating Entropy\nAll right, let’s generate some hardcore “true” entropy! The iOS app is here or you can compile it from the source code and trace every bit as it travels through the extractor. There are two ways to get entropy from the app: AirDrop it to your MacBook (and we included the option to upload entropy block as CSV file as well for manual analysis), or use a Zax relay for secure device-to-device upload, which we will cover later.\n\nIf the camera view is good, simply run the extractor at the maximum bandwidth by extracting all 3 bits from each noise value.\n\n![](https://cdn.steemitimages.com/DQmdLxrx4LY6eeKrJ92JYwjBWUQv5qi9xCQVGQ3vipsFkny/image.png)\n\nHowever, things break down fast if the picture quality goes bad, by over saturation or having too many dark areas where noise variance goes down. With less variance, taking 3 bits from each datapoint will feed a lot of garbage into the extractor. The Von Neumann algorithm is not magic, and it will not create entropy out of thin air if we are oversampling raw data points[4]. Chi-squared statistics capture that immediately.\n\n3 Bit Oversaturated\n\nThe fix is easy — if picture quality is poor, just reduce the number of bits extracted from each datapoint down to 2 bits or even 1 bit. For this view, reducing it down to 2 bits returns our extractor back to normal scores.\n\n2 Bit Oversaturated\n\nIn truth, it is far simpler to run this extractor with excellent quality and maximum bit extraction, but it doesn’t make for an exciting video. Here is one of the best conditions we found to set up the camera for a perfect noise capture.\n\n3 Bit MacBook Grey\n\nAll this required was the high tech equipment of a pencil that lifts up the camera just a bit above a MacBook’s dull grey surface. It is the perfect scenery to capture our full range of thermal noise[5].\n\n![](https://cdn.steemitimages.com/DQmeLsMsptjtCXym9LjnfBkXNjvvFhYD4c6w8XBzPPKG1UK/image.png)\n\nHigh tech entropy generation with a pencil\nSending Entropy\nOf course, all this firehose of perfect thermal entropy would be of little use if it stays local to your device. The good news is, we have already built the Zax relay around the top tier NaCl library to serve asynchronous, anonymous and encrypted process-to-process communications. That allows us to encrypt thermal entropy (produced by the owner in a condition they fully control) and establish a secure channel through a NaCl relay to send this entropy to any device that the owner selects. This will get us NaCl 256-bit “computational security” for such networked entropy sources. Each device is addressed by a NaCl public key. Relays do not use public keys of the communicating devices directly, the relay address space is defined as a “hash of the public key” (hpk). The communications are encrypted twice — the inner layer is encrypted with whatever is the destination public key by the originating device (i.e. our relays never even see the raw data), and the outer layer is encrypted with a separate NaCl ephemeral session key created when a station connects to relay. If you want to learn more about Zax relays, you can read about our full crypto architecture as well as our new protocol for large file exchange.\n\nUsing a Zax relay you can run a process inside a cloud server that directly receives encrypted entropy from an Apple device under your control, unpack it in memory, and use that entropy as the situation demands — to seed local /dev/urandom as an extra source or to establish a separate, owner-controlled entropy pipeline directly from camera thermal noise.\n\nBut isn’t this a bit of circular logic — using servers to secure servers? If you think through practical implications, it’s actually not. The main reason we put servers in the cloud is to process heavy computational load and to have access to a high bandwidth connection. The individual relay that passes entropy to cloud servers does not need heavy computing power nor high bandwidth, so it doesn’t need to be hosted in the cloud! As matter of fact a relay can be run on a modest Raspberry Pi stuffed into the same closet as an iPhone generator. With both the relay and iPhone under full owner control, the owner can establish a strong, secure channel into the cloud server environment. The only assumption we need to make is that owner’s SSH keys and server entropy during initial setup (server-side SSH keys) were not compromised, and that the owner can securely transfer a private key to the cloud server to establish a secure channel with the relay.\n\nHere is how it all fits together:\n\nTo work with a Zax relay you need to install the Glow client library: npm i -g theglow.\nPick a secret key for your target device or server. This can be any random 32 bytes generated anyway you like. For example, generate a key file cat /dev/urandom | head -c 32 | base64 > station_key.txt on a secure machine and use that file on a single target server. You can also use TrueEntropy’s “AirDrop” mode to generate the initial key entropy directly.\nInit a station with that key: cat station_key.txt | glow key --set. Or you can use glow key --generate to avoid creating an extra file. That command will also print out the resulting public key.\nCopy your device public key (PK): glow key --public\nPaste that public key in the Recipient slot of the TrueEntropy app and specify a relay URL.\nCopy the Device Key from the TrueEntropy app.\nDownload the encrypted blocks uploaded by the TrueEntropy app, for example to download 5 blocks at once: glow download https://zax-test.vault12.com [Device/Sender Public Key] -n 5 We used our test relay in this example[6], for any production use you should deploy your own relays from source. For direct entropy use, you can pipe it into any destination: glow download https://zax-test.vault12.com [Device/Sender Key] --silent --stdout | ent\nThat’s it! As long as TrueEntropy is running in “Network” mode, it will be uploading encrypted blocks to your relay, which in turn you can download, decrypt on a target device, and use as you see fit.\n\nIf you are planning to use this for any practical purpose other than research, make sure you take care in selecting a good view for your camera (or reduce TrueEntropy’s bit setting to 1-2 bits), enable chi-square cutoff in Advanced settings, and use some form of hashing on the destination machine before using each entropy block. Keep in mind TrueEntropy is a research prototype, and we do not recommend using it in actual production environment.\n\nThe Real Test: SP800–90B\nNow we know how to generate and deliver entropy to any device. But besides a simplistic test of chi-squared goodness of fit, how do we know whether the entropy we have produced is any good? Thankfully the good folks at NIST have already been thinking for a long time about how to build and evaluate entropy extractors, and they have summarized all the best practices in the SP800–90B document[7]. This is a must-read resource for anybody who is interested in serious work around writing randomness generators and entropy extractors.\n\nMany of the SP800–90B tests are implemented in software, and anybody can run them on any entropy source. These tests do a lot of heavy lifting checking for patterns far above and beyond our simple chi-squared test — it takes many hours for this test suite over single file. So how does a TrueEntropy block stack up against a state of the art entropy test suite?\n\npython iid_main.py ~/entropy-3b1.bin 8 -v\nreading 2097152 bytes of data\nRead in file /home/fallout/entropy-3b1.bin, 2097152 bytes long.\nDataset: 2097152 8-bit symbols, 256 symbols in alphabet.\nOutput symbol values: min = 0, max = 255\nCalculating statistics on original sequence\nCalculating statistics on permuted sequences\npermutation tests:      99.99 percent complete\nstatistic  C[i][0]  C[i][1]\n----\nexcursion     3845        0\nnumDirectionalRuns     8304        3\nlenDirectionalRuns       82      854\nnumIncreasesDecreases     5930       10\nnumRunsMedian     8144        2\nlenRunsMedian     2288     1720\navgCollision     9654        0\nmaxCollision      433      204\nperiodicity(1)     1455       29\nperiodicity(2)       28        1\nperiodicity(8)     2996       32\nperiodicity(16)     8229       35\nperiodicity(32)       41        3\ncovariance(1)      229        0\ncovariance(2)      799        0\ncovariance(8)      421        0\ncovariance(16)     7136        0\ncovariance(32)     3487        0\ncompression     7488        6\n(* denotes failed test)\n** Passed IID permutation tests\nChi square independence\nscore = 65162.2, degrees of freedom = 65535, cut-off = 66659.4\n** Passed chi-square independence test\nChi square goodness-of-fit\nscore = 2285.22, degrees of freedom = 2295 cut-off = 2510.06\n** Passed chi-square goodness-of-fit test\n** Passed chi square tests\nLRS test\nW: 5, Pr(E>=1): 0.864829\n** Passed LRS test\nIID = True\nmin-entropy = 7.92358\nPerhaps these tests are so easy to pass that anything will cross that threshold? As it turns out, that is not the case. For a quick experiment we replaced out the Von Neumann extractor with a far simpler one: it looks at noise value and outputs 1 if it is above zero, and 0 if it is below zero. Since (unlike Von Neumann) we never skip any sequences other than zero values, this extractor produces twice as much output (we included it in the source code as a reference). The bell curve distribution we have shown above is almost perfectly symmetrical, so it should be pretty random if the value is above or below zero, right? Would it be a good extractor and have higher performance?\n\nThe SP800–90B judgement is harsh: such a naive extractor immediately fails no fewer than 5 tests:\n\n$ python iid_main.py ~/entropy-direct.bin 8 -v\nreading 1999996 bytes of data\nRead in file /home/fallout/entropy-direct.bin, 1999996 bytes long.\nDataset: 1999996 8-bit symbols, 256 symbols > in alphabet.\nOutput symbol values: min = 0, max = 255\nCalculating statistics on original sequence\nCalculating statistics on permuted sequences\npermutation tests:      99.99 percent complete\nstatistic  C[i][0]  C[i][1]\n----\nexcursion     7875        0\nnumDirectionalRuns*    10000        0\nlenDirectionalRuns     6435     3562\nnumIncreasesDecreases      394        4\nnumRunsMedian*    10000        0\nlenRunsMedian       40       48\navgCollision*    10000        0\nmaxCollision     5222     1236\nperiodicity(1)*        0        0\nperiodicity(2)       46        2\nperiodicity(8)     1955       39\nperiodicity(16)      512      15\nperiodicity(32)     7632       39\ncovariance(1)*        0        0\ncovariance(2)      141        0\ncovariance(8)     6251        0\ncovariance(16)     5847        0\ncovariance(32)     5980        0\ncompression     7540        3\n(* denotes failed test)\n** Failed IID permutation tests\nIID = False\nCan we reliably use a 3-bit Von Neumann extractor with a good camera view? We definitely can, here is another entropy block produced with 3-bit settings on a balanced camera view:\n\npython iid_main.py ~/entropy-3b2.bin 8 -v\nreading 2097152 bytes of data\nRead in file /home/fallout/entropy-3b2.bin, 2097152 bytes long.\nDataset: 2097152 8-bit symbols, 256 symbols in alphabet.\nOutput symbol values: min = 0, max = 255\nCalculating statistics on original sequence\nCalculating statistics on permuted sequences\npermutation tests:      99.99 percent complete\nstatistic  C[i][0]  C[i][1]\n----\nexcursion     5990        0\nnumDirectionalRuns     6878        8\nlenDirectionalRuns      939     5563\nnumIncreasesDecreases     1204       13\nnumRunsMedian      220        1\nlenRunsMedian     1198      966\navgCollision     8953        0\nmaxCollision     6838     1137\nperiodicity(1)      909       16\nperiodicity(2)     3748       45\nperiodicity(8)     8752       22\nperiodicity(16)     9318       16\nperiodicity(32)     8374       20\ncovariance(1)     3183        0\ncovariance(2)     4537        0\ncovariance(8)     3617        0\ncovariance(16)     2460        0\ncovariance(32)      316        0\ncompression     1473        6\n(* denotes failed test)\n** Passed IID permutation tests\nChi square independence\nscore = 65285.8, degrees of freedom = 65535, cut-off = 66659.4\n** Passed chi-square independence test\nChi square goodness-of-fit\nscore = 2269.05, degrees of freedom = 2295 cut-off = 2510.06\n** Passed chi-square goodness-of-fit test\n** Passed chi square tests\nLRS test\nW: 4, Pr(E>=1): 1.000000\n** Passed LRS test\nIID = True\nmin-entropy = 7.90724\nGood news — our extractor output passed the SP800–90B IID test.[7]\n\nFuture Improvements\nWhat started as a fun weekend project turned out to be an interesting application, and we ended up spending over a week to implement it to the level of a minimal MVP. It once again showcased the amazing power contained in billions of smartphones that we take for granted these days. Of course, the first MVP might be too raw for production use. The good news is, all our source code is MIT licensed, so you are welcome to take a stab at making it better. Someday, you can replace your expensive wall of lava lamps with a simple used iPhone in the closet!\n\nWhat can be done to improve this codebase:\n\nWe are taking the camera as a given constant, yet it is quite configurable and an extremely powerful device! What camera settings can be adjusted and automated to maximum noise variance in all conditions? The app will then be less sensitive to selecting a proper view and can just adjust itself to generate perfect entropy in any conditions.\nWe used the Von Neumann extractor since it was the simplest to implement and it offered a perfect educational canvas to demonstrate how each bit sequence is converted from biased raw source to uniform. However, cutting-edge extractors in the industry leverage “sum-product theorem” (sources are mixed up as X*Y+Z over specific field) and might be much more powerful given the number of noise pixel values we are getting from each frame.\nWant to relax IID assumptions and avoid careful setup of a non-correlated quantizer? Easy — use any good universal hash function. The only new requirement is that the universal hash will require a one-time seed. We can make an easy assumption that the iPhone local state of /dev/urandom is totally independent from thermal noise camera is seeing, and simply pick that seed from everybody's favorite CSPRNG.\nWe are not actually extracting the maximum amount of entropy. Newer iOS devices support HD resolution of 3840x2160 per frame. The higher the resolution, the more variance of each pixel noise the camera will detect, and we can even start extracting 4-bit datapoints in the same “perfect” conditions. The downside is that now the device has to process 8Mb of data before the the first bit of entropy is generated, and it slows down initial output and requires a huge memory footprint. We left the default at 2Mb per frame for better responsiveness, but you are welcome to change that if you are looking for maximum entropy throughput[8].\nNot surprisingly, most of the cycles in our app are spent on running the extractor logic on the iOS device CPU — that is by far the main performance bottleneck in the app right now. Calculating the frame difference noise takes only 0.1 seconds on the iPhone7 over a 2Mb frame, while running the extractor over the same frame takes up to 5–7 seconds. To maximize the bandwidth of thermal entropy, one solution would be only capture raw noise values from the iPhone and run the extractor on the target machine. Such a setup would allow us to generate entropy at a theoretical maximum speed for camera resolution in the tens of megabytes per second.\nThe chi-square test is the simplest and quickest realtime tests we can run as entropy blocks are generated. The SP800–90B we used for static testing has a massive array of entropy assessment and health algorithms. Adding a few realtime health checks, the SP800–90B suite can provide additional safeguards when used in production.\nOne More Thing\nWell, that is it! We hope you enjoyed our quick foray into randomness extraction that holds interesting possibilities to generate a massive amount of entropy from any smartphone with a camera.\n\nOne of our goals in creating the TrueEntropy app was to stress test our relay network to see how it behaves under the heavy load from handling all these endless entropy streams. These relays power our main project which we have run in stealth mode for a while, but we are just about to open it up for a public beta test.\n\nOne of the big problems facing all owners of cryptocurrencies is that there is no good way to securely and reliably store extremely valuable private keys and seed phrases. For many years, state of the art security was to print out a 12-word phrase and keep it in a bank safety deposit box[9]. We started Vault12 to build a much better platform to secure crypto-assets, and in our next essay we will tell you all about it! If you are interested in cryptography and cryptocurrencies, we would love to have more beta testers for the upcoming public beta of our platform — feel free to join our Slack if you want to participate!\n\n-Team Vault12\n\nMany thanks to Terence Spies, Yevgeniy Dodis, Lucas Ryan and Naval Ravikant for reading the draft of this essay and valuable feedback.\n\nReferences\nAn introduction to randomness extractors https://cs.haifa.ac.il/~ronen/online_papers/ICALPinvited.pdf\n\nVon Neumann Extractor: https://cs.nyu.edu/courses/spring06/G22.3220-001/scribe/Lecture2.pdf http://www.eecs.harvard.edu/~michaelm/coinflipext.pdf\n\nElias & Peres Extractor: https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-441-information-theory-spring-2016/lecture-notes/MIT6_441S16_chapter_28.pdf\n\nExtracting Randomness Using Few Independent Sources http://www.boazbarak.org/Papers/msamples.pdf\n\nZax “NaCl” Relay\nhttps://github.com/vault12/zax\n\nZax Technical Spec\nhttps://s3-us-west-1.amazonaws.com/vault12/crypto_relay.pdf\n\nGlow Client Library\nhttps://github.com/vault12/glow\n\nYour Smartphone Can Measure Your Radiation Exposure https://medium.com/the-physics-arxiv-blog/your-smartphone-can-measure-your-radiation-exposure-ce9b464d68aa\n\nOne of the Secrets Guarding the Secure Internet Is a Wall of Lava Lamps\nhttps://sploid.gizmodo.com/one-of-the-secrets-guarding-the-secure-internet-is-a-wa-1820188866\n\nEntropy Attacks!\nhttps://blog.cr.yp.to/20140205-entropy.html\n\nSP800–90B\nhttps://csrc.nist.gov/CSRC/media/Publications/sp/800-90b/draft/documents/sp800-90b_second_draft.pdf\n\nManaging and Understanding Entropy Usage https://www.blackhat.com/docs/us-15/materials/us-15-Potter-Understanding-And-Managing-Entropy-Usage.pdf\n\nAvalanche Effect Generators\nhttp://holdenc.altervista.org/avalanche/\nhttp://ubld.it/truerng_v3\n\nRed Hat: Passing entropy to guest OS\n\nAmazon HSM\n\n[1] Copy two blank pictures from the camera as layers, set layer blending to “Difference” and adjust “Levels” to about 20x amplification.\n\n[2] Each value in a batch becomes locally IID (independent identically distributed). There are computationally slower methods to build quantizer that satisfies a ‘global’ IID condition, but practically it is much simpler to deal with residual correlations by simply passing extractor output through a hash function.\n\n[3] The variance of sensor noise is correlated with the amount of light hitting the sensor — a higher intensity produces more noise as long as area is not oversaturated, while dark spots produce smaller variance of noise values\n\n[4] Formally speaking, by oversampling values that do not have enough variance we are breaking the IDD assumption about our data points that requires the Von Neumann/Peres algorithm to work — a number of bits in oversampled values becomes predictable.\n\n[5] Another option we found is to put the phone on the desk camera up to focus on a ceiling in a dimly lit room.\n\n[6] We restart and update that zax-test server quite often. You are welcome to use it for quick testing but don’t expect any sort of stable performance from that URL! It can and will go offline/restart at any moment.\n\n[7] Since our essay is getting quite long, for brevity we are showing only quick tests of the VN/Peres extractor. For additional scrutiny you can export raw values from the Sample class and run non-IID tests to measure characteristics of raw thermal data (and its entropy) — SP800–90B has a lot of details on how to conduct comprehensive testing of raw non-IID data.\n\n[8] Change line 16 in Constants.swift to AVCaptureSession.Preset.hd4K3840x2160\n\n[9] As some Ƀ owners painfully found out during the Greece banking crisis, when banks close, they close access to safe deposit boxes — exactly when owners needed them the most.![]\n\nFIRST PUBLISHED https://medium.com/vault12/how-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy-a9d47ca80c9b",
      "json_metadata": "{\"tags\":[\"security\",\"cryptography\",\"cryptocurrency\",\"entropy\",\"randomness\"],\"image\":[\"https://cdn.steemitimages.com/DQmey7oAtkLjdmiu4MS91GENchYVYH5jg162mrn7BpKwFgy/image.png\",\"https://cdn.steemitimages.com/DQmQsvX7HFFGY4i8qZt6DsbNr7b5ugtUE1gMMdmxyy9NVeE/image.png\",\"https://cdn.steemitimages.com/DQmZMK4vFRdSRZSSvE1icDJLXrCPxMpLYuBasBMTkcnxrMs/image.png\",\"https://cdn.steemitimages.com/DQmVy7fQQ5N2eprKSw4XFxVRy7pGgKqXtf9WtWFKefB3Kdv/image.png\",\"https://cdn.steemitimages.com/DQmbjBw4n9ozfdDr2so6PU7v82Km2rVXcqns5RuMSFzfLjU/image.png\",\"https://cdn.steemitimages.com/DQmXhz67R5Rdxqj6NhCRHoCJcPLccxDZhM4u4j3EJuQHtus/image.png\",\"https://cdn.steemitimages.com/DQmZRVhs2QBLKJNK5kQuY7DuGefCk9RJ1xDKEgDtMPZWvAJ/image.png\",\"https://cdn.steemitimages.com/DQmZytNT27s7J8PqZqFS5cUkYFTBrueHCtXo7wmCMZTbrwL/image.png\",\"https://cdn.steemitimages.com/DQmbkg8xVxyMeFqskKwMW6qDDmBJvzCNLfYcFVApsbxHbuG/image.png\",\"https://cdn.steemitimages.com/DQmdLxrx4LY6eeKrJ92JYwjBWUQv5qi9xCQVGQ3vipsFkny/image.png\",\"https://cdn.steemitimages.com/DQmeLsMsptjtCXym9LjnfBkXNjvvFhYD4c6w8XBzPPKG1UK/image.png\"],\"links\":[\"https://zax-test.vault12.com\",\"https://cs.haifa.ac.il/~ronen/online_papers/ICALPinvited.pdf\",\"https://cs.nyu.edu/courses/spring06/G22.3220-001/scribe/Lecture2.pdf\",\"http://www.eecs.harvard.edu/~michaelm/coinflipext.pdf\",\"https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-441-information-theory-spring-2016/lecture-notes/MIT6_441S16_chapter_28.pdf\",\"http://www.boazbarak.org/Papers/msamples.pdf\",\"https://github.com/vault12/zax\",\"https://s3-us-west-1.amazonaws.com/vault12/crypto_relay.pdf\",\"https://github.com/vault12/glow\",\"https://medium.com/the-physics-arxiv-blog/your-smartphone-can-measure-your-radiation-exposure-ce9b464d68aa\",\"https://sploid.gizmodo.com/one-of-the-secrets-guarding-the-secure-internet-is-a-wa-1820188866\",\"https://blog.cr.yp.to/20140205-entropy.html\",\"https://csrc.nist.gov/CSRC/media/Publications/sp/800-90b/draft/documents/sp800-90b_second_draft.pdf\",\"https://www.blackhat.com/docs/us-15/materials/us-15-Potter-Understanding-And-Managing-Entropy-Usage.pdf\",\"http://holdenc.altervista.org/avalanche/\",\"http://ubld.it/truerng_v3\",\"https://medium.com/vault12/how-to-get-true-randomness-from-your-apple-device-with-particle-physics-and-thermal-entropy-a9d47ca80c9b\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
vault12powered up 3.000 STEEM to @vault12
2018/11/07 17:54:03
fromvault12
tovault12
amount3.000 STEEM
Transaction InfoBlock #27497541/Trx 091a1c8dce7a38fdb6562e309f2caea8c8816845
View Raw JSON Data
{
  "trx_id": "091a1c8dce7a38fdb6562e309f2caea8c8816845",
  "block": 27497541,
  "trx_in_block": 15,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-07T17:54:03",
  "op": [
    "transfer_to_vesting",
    {
      "from": "vault12",
      "to": "vault12",
      "amount": "3.000 STEEM"
    }
  ]
}
vault12updated their account properties
2018/11/07 17:52:33
accountvault12
memo keySTM7UzDBRSAbHWMff2besFj6L1BpdMLuvZfmbH5Vj7nJhRZU8mmCz
json metadata{"profile":{"profile_image":"https://cdn.steemitimages.com/DQmPcvo6EVDZTMJSnpesu1zWZdWphFZD29f1xTb3zvqgb6t/[email protected]","cover_image":"https://cdn.steemitimages.com/DQme96D2WGwmhJqEsRBCb1kfK1fS6JnpRAZHbXVTMWn2RVx/Social%20Background%20Cover.001.png","name":"Vault12","about":"Protecting the future of money","location":"Mountain View, CA","website":"https://vault12.com"}}
Transaction InfoBlock #27497511/Trx 4c2f8d29e3ca7570e9356a5461b619b4d45ffec6
View Raw JSON Data
{
  "trx_id": "4c2f8d29e3ca7570e9356a5461b619b4d45ffec6",
  "block": 27497511,
  "trx_in_block": 53,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-07T17:52:33",
  "op": [
    "account_update",
    {
      "account": "vault12",
      "memo_key": "STM7UzDBRSAbHWMff2besFj6L1BpdMLuvZfmbH5Vj7nJhRZU8mmCz",
      "json_metadata": "{\"profile\":{\"profile_image\":\"https://cdn.steemitimages.com/DQmPcvo6EVDZTMJSnpesu1zWZdWphFZD29f1xTb3zvqgb6t/[email protected]\",\"cover_image\":\"https://cdn.steemitimages.com/DQme96D2WGwmhJqEsRBCb1kfK1fS6JnpRAZHbXVTMWn2RVx/Social%20Background%20Cover.001.png\",\"name\":\"Vault12\",\"about\":\"Protecting the future of money\",\"location\":\"Mountain View, CA\",\"website\":\"https://vault12.com\"}}"
    }
  ]
}
vault12powered up 10.000 STEEM to @vault12
2018/11/07 17:44:33
fromvault12
tovault12
amount10.000 STEEM
Transaction InfoBlock #27497351/Trx f6ae1c31f70eb188838f7f93619bde713c9ebe5c
View Raw JSON Data
{
  "trx_id": "f6ae1c31f70eb188838f7f93619bde713c9ebe5c",
  "block": 27497351,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-07T17:44:33",
  "op": [
    "transfer_to_vesting",
    {
      "from": "vault12",
      "to": "vault12",
      "amount": "10.000 STEEM"
    }
  ]
}
blocktradessent 13.107 STEEM to @vault12
2018/11/07 16:22:51
fromblocktrades
tovault12
amount13.107 STEEM
memo
Transaction InfoBlock #27495718/Trx 1ca0f8ea1107c094de5171b2b6ddd5f0004d67b3
View Raw JSON Data
{
  "trx_id": "1ca0f8ea1107c094de5171b2b6ddd5f0004d67b3",
  "block": 27495718,
  "trx_in_block": 11,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-07T16:22:51",
  "op": [
    "transfer",
    {
      "from": "blocktrades",
      "to": "vault12",
      "amount": "13.107 STEEM",
      "memo": ""
    }
  ]
}
wasimacreated a new account: @vault12
2018/11/07 16:16:24
fee3.000 STEEM
creatorwasima
new account namevault12
owner{"weight_threshold":1,"account_auths":[],"key_auths":[["STM6aRjEVMDiPvydKBwko8BJbmEcWHrj41ehJZ9jhRrddCpD8PD5E",1]]}
active{"weight_threshold":1,"account_auths":[],"key_auths":[["STM5q32K4ttZm9gWqdKGXEdnprKAgcB94gdPAMcHac2oi7w5Y5CUP",1]]}
posting{"weight_threshold":1,"account_auths":[],"key_auths":[["STM5isYTzU6oSruVyuvYWRZuvV8SPpxTY6M6A43Y66tUazCHvHCq3",1]]}
memo keySTM7UzDBRSAbHWMff2besFj6L1BpdMLuvZfmbH5Vj7nJhRZU8mmCz
json metadata{}
Transaction InfoBlock #27495589/Trx 3123d7d5c07cb09572b1c9d698dac374267dca45
View Raw JSON Data
{
  "trx_id": "3123d7d5c07cb09572b1c9d698dac374267dca45",
  "block": 27495589,
  "trx_in_block": 15,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-11-07T16:16:24",
  "op": [
    "account_create",
    {
      "fee": "3.000 STEEM",
      "creator": "wasima",
      "new_account_name": "vault12",
      "owner": {
        "weight_threshold": 1,
        "account_auths": [],
        "key_auths": [
          [
            "STM6aRjEVMDiPvydKBwko8BJbmEcWHrj41ehJZ9jhRrddCpD8PD5E",
            1
          ]
        ]
      },
      "active": {
        "weight_threshold": 1,
        "account_auths": [],
        "key_auths": [
          [
            "STM5q32K4ttZm9gWqdKGXEdnprKAgcB94gdPAMcHac2oi7w5Y5CUP",
            1
          ]
        ]
      },
      "posting": {
        "weight_threshold": 1,
        "account_auths": [],
        "key_auths": [
          [
            "STM5isYTzU6oSruVyuvYWRZuvV8SPpxTY6M6A43Y66tUazCHvHCq3",
            1
          ]
        ]
      },
      "memo_key": "STM7UzDBRSAbHWMff2besFj6L1BpdMLuvZfmbH5Vj7nJhRZU8mmCz",
      "json_metadata": "{}"
    }
  ]
}

Account Metadata

POSTING JSON METADATA
profile{"profile_image":"https://cdn.steemitimages.com/DQmPcvo6EVDZTMJSnpesu1zWZdWphFZD29f1xTb3zvqgb6t/[email protected]","cover_image":"https://cdn.steemitimages.com/DQmarjyuRbMWQPpzyVzdjki2xtbFFdq6XBmMPDtAdByUmj4/Vault12%20Graphics%20180304.009.png","name":"Vault12","about":"Protecting the future of money","location":"Mountain View, CA","website":"https://vault12.com"}
JSON METADATA
profile{"profile_image":"https://cdn.steemitimages.com/DQmPcvo6EVDZTMJSnpesu1zWZdWphFZD29f1xTb3zvqgb6t/[email protected]","cover_image":"https://cdn.steemitimages.com/DQmarjyuRbMWQPpzyVzdjki2xtbFFdq6XBmMPDtAdByUmj4/Vault12%20Graphics%20180304.009.png","name":"Vault12","about":"Protecting the future of money","location":"Mountain View, CA","website":"https://vault12.com"}
{
  "posting_json_metadata": {
    "profile": {
      "profile_image": "https://cdn.steemitimages.com/DQmPcvo6EVDZTMJSnpesu1zWZdWphFZD29f1xTb3zvqgb6t/[email protected]",
      "cover_image": "https://cdn.steemitimages.com/DQmarjyuRbMWQPpzyVzdjki2xtbFFdq6XBmMPDtAdByUmj4/Vault12%20Graphics%20180304.009.png",
      "name": "Vault12",
      "about": "Protecting the future of money",
      "location": "Mountain View, CA",
      "website": "https://vault12.com"
    }
  },
  "json_metadata": {
    "profile": {
      "profile_image": "https://cdn.steemitimages.com/DQmPcvo6EVDZTMJSnpesu1zWZdWphFZD29f1xTb3zvqgb6t/[email protected]",
      "cover_image": "https://cdn.steemitimages.com/DQmarjyuRbMWQPpzyVzdjki2xtbFFdq6XBmMPDtAdByUmj4/Vault12%20Graphics%20180304.009.png",
      "name": "Vault12",
      "about": "Protecting the future of money",
      "location": "Mountain View, CA",
      "website": "https://vault12.com"
    }
  }
}

Auth Keys

Owner
Single Signature
Public Keys
STM6aRjEVMDiPvydKBwko8BJbmEcWHrj41ehJZ9jhRrddCpD8PD5E1/1
Active
Single Signature
Public Keys
STM5q32K4ttZm9gWqdKGXEdnprKAgcB94gdPAMcHac2oi7w5Y5CUP1/1
Posting
Single Signature
Public Keys
STM5isYTzU6oSruVyuvYWRZuvV8SPpxTY6M6A43Y66tUazCHvHCq31/1
Memo
STM7UzDBRSAbHWMff2besFj6L1BpdMLuvZfmbH5Vj7nJhRZU8mmCz
{
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM6aRjEVMDiPvydKBwko8BJbmEcWHrj41ehJZ9jhRrddCpD8PD5E",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM5q32K4ttZm9gWqdKGXEdnprKAgcB94gdPAMcHac2oi7w5Y5CUP",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM5isYTzU6oSruVyuvYWRZuvV8SPpxTY6M6A43Y66tUazCHvHCq3",
        1
      ]
    ]
  },
  "memo": "STM7UzDBRSAbHWMff2besFj6L1BpdMLuvZfmbH5Vj7nJhRZU8mmCz"
}

Witness Votes

0 / 30
No active witness votes.
[]