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 |