lec20
dz / distributed_systems_MIT / lec20Summary
Lecture 19: Blockstack
Node Tree
-
blockstack
- non_crypto_blockchain
- possible_fixes
- what_goes_wrong
- bitcoin
- blockstack_browser
- build_public_key_infrastructure
- convenient_programmers
- decentralized
- fees_for_name_reg
- fork_detection
- gaia_servers
- naming
Nodes
| blockstack | |
| content | blockstack |
| children | non_crypto_blockchain, possible_fixes, what_goes_wrong, bitcoin, blockstack_browser, build_public_key_infrastructure, convenient_programmers, decentralized, fees_for_name_reg, fork_detection, gaia_servers, naming |
| non_crypto_blockchain | |
| content | non-cryptocurrency use of blockchain |
| parents | blockstack |
| build_public_key_infrastructure | |
| content | How to build a naming / public key infrastructure? |
| parents | blockstack |
| decentralized | |
| content | decentralized |
| children | remove_decentralized, arch, current_websites (vs) |
| parents | naming_props, blockstack |
| arch | |
| content | Architecture |
| children | app_code_runs_client, cloud_storage |
| parents | decentralized |
| current_websites | |
| content | current websites |
| children | snooping, interface_website_browsers, little_control_data |
| parents | decentralized |
| little_control_data | |
| content | not much control over data websites get to see |
| children | snooping |
| parents | current_websites |
| snooping | |
| content | snooping |
| parents | little_control_data, current_websites |
| interface_website_browsers | |
| content | Main interface is between entire website and browsers |
| children | storage_instead_of_html (vs) |
| parents | current_websites |
| app_code_runs_client | |
| content | Application code runs on client |
| parents | arch |
| cloud_storage | |
| content | Cloud storage system to store data |
| children | storage_instead_of_html, trust_storage_service, apps_read_allowed_data, encrypted_data_cloud |
| parents | arch |
| storage_instead_of_html | |
| content | Storage interface is main interface instead of HTML |
| children | needs_access_control_permissions |
| parents | cloud_storage, interface_website_browsers |
| needs_access_control_permissions | |
| content | Needs reasonably powerful access control and permissions. |
| children | subsidiary_permissions |
| parents | storage_instead_of_html |
| apps_read_allowed_data | |
| content | Applications read data they are allowed to read |
| parents | cloud_storage |
| subsidiary_permissions | |
| content | Subsidiary Permissions |
| parents | needs_access_control_permissions |
| encrypted_data_cloud | |
| content | Encrypted data on the cloud |
| parents | cloud_storage |
| what_goes_wrong | |
| content | What goes wrong? |
| children | some_data_not_user_owned, brittle, enforce_shared_data_some_users, less_flexible_db |
| parents | blockstack |
| some_data_not_user_owned | |
| content | Some data not owned by users |
| children | reddit (example), ebay (example) |
| parents | what_goes_wrong |
| content | Reddit front page |
| parents | some_data_not_user_owned |
| ebay | |
| content | ebay bidding (would reveal bid) |
| parents | some_data_not_user_owned |
| less_flexible_db | |
| content | Less flexible than database |
| parents | what_goes_wrong |
| enforce_shared_data_some_users | |
| content | How to enforce data to only some users? |
| children | complex_multiuser |
| parents | what_goes_wrong |
| complex_multiuser | |
| content | Complex multi-user app: cryptography becomes hard to use |
| parents | enforce_shared_data_some_users |
| naming | |
| content | naming |
| children | naming_props, usernames (specifically, names for humans, usernames), PKI, map_location, map_public_key |
| parents | blockstack |
| usernames | |
| content | Usernames, human users |
| parents | naming |
| map_location | |
| content | Map names to data location |
| children | map_public_key (related) |
| parents | naming |
| map_public_key | |
| content | Map names to public key |
| children | ACL |
| parents | naming, map_location |
| ACL | |
| content | ACL: access control list |
| parents | map_public_key |
| PKI | |
| content | PKI: public key infrastructure |
| parents | naming |
| unique | |
| content | Unique (Global Meaning) |
| parents | naming_props |
| naming_props | |
| content | Ideal Naming Properties |
| children | unique, zuko_trianlge_property (AKA), bitcoin_transaction_log (implementation of these properties), decentralized, human_readable |
| parents | naming |
| human_readable | |
| content | Human Readale |
| children | bigger_system_readable_less_valuable, deceptive_defective |
| parents | naming_props |
| bitcoin_transaction_log | |
| content | Uses bitcoins single ordered log of transcations |
| children | naming_reservation, naming_on_bitcoin |
| parents | naming_props, bitcoin |
| naming_on_bitcoin | |
| content | Naming on bitcoin |
| parents | bitcoin_transaction_log |
| naming_reservation | |
| content | Naming Reservation |
| children | fees_for_name_reg, first_come_first_serve |
| parents | bitcoin_transaction_log |
| first_come_first_serve | |
| content | First come, first serve |
| parents | naming_reservation |
| zuko_trianlge_property | |
| content | Zukos Triangle Property |
| parents | naming_props |
| bigger_system_readable_less_valuable | |
| content | The bigger the system, the less valuable human readable property is |
| children | remove_readable, deceptive_defective |
| parents | human_readable |
| deceptive_defective | |
| content | Can be deceptive, defective |
| children | how_to_find_names |
| parents | bigger_system_readable_less_valuable, human_readable |
| possible_fixes | |
| content | Possible Fixes |
| children | remove_decentralized, remove_readable |
| parents | blockstack |
| remove_readable | |
| content | Remove Human readble property, just use keys |
| parents | possible_fixes, bigger_system_readable_less_valuable |
| remove_decentralized | |
| content | Remove decentralized aspect |
| parents | possible_fixes, decentralized |
| fork_detection | |
| content | Fork detection on name servers |
| parents | blockstack |
| how_to_find_names | |
| content | How to find names? (name lookup) |
| parents | deceptive_defective |
| blockstack_browser | |
| content | Blockstack browser |
| children | per_app_private_key, manages_master_privkey (description) |
| parents | blockstack |
| gaia_servers | |
| content | GAIA servers |
| parents | blockstack |
| per_app_private_key | |
| content | Per-app private key |
| parents | blockstack_browser |
| manages_master_privkey | |
| content | Manages masters private key |
| parents | blockstack_browser |
| fees_for_name_reg | |
| content | Require frees for name registration as deterrant against malicious use. |
| children | fees_prevent_abuse |
| parents | blockstack, naming_reservation |
| brittle | |
| content | Brittle (from user standpoint): no way to retrieve key if lost. |
| parents | what_goes_wrong |
| is_bitcoin_needed | |
| content | Does it need to use bitcoin? |
| children | cert_transparency_instead |
| parents | bitcoin |
| bitcoin | |
| content | bitcoin |
| children | bitcoin_transaction_log, is_bitcoin_needed |
| parents | blockstack |
| cert_transparency_instead | |
| content | Use certificate transparency instead to enforce adequate rules about naming? |
| children | ownership_conflicts, probably_not, fees_prevent_abuse |
| parents | is_bitcoin_needed |
| probably_not | |
| content | Guess: probably not |
| children | ownership_conflicts |
| parents | cert_transparency_instead |
| ownership_conflicts | |
| content | Doesn't resolve ownership conflicts |
| parents | probably_not, cert_transparency_instead |
| fees_prevent_abuse | |
| content | Fees important for preventing abuse |
| parents | fees_for_name_reg, cert_transparency_instead |
| convenient_programmers | |
| content | Convenient for programmers? |
| children | more_difficult |
| parents | blockstack |
| more_difficult | |
| content | A lot more difficult |
| parents | convenient_programmers |
| trust_storage_service | |
| content | Have to trust storage service to store data correctly |
| parents | cloud_storage |