Day 1 (Threshold): Lets say you have some data you want to protect. There are a trusted people that should be able to see the information you protected, but only if a majority (50% or more) of your trusted people agree. What kind of information would you protect like this?
will/password list - if someone dies, and multiple trusted people all agree, your secret document is now available
escrow - one person is selling an item to another with a impartial witness, if 2 of the three people agree that the trade occured, the payment information is released.
trusted actor security - think about nuclear submarines, the captain must use his as well as another trusted officer's key to launch a nuke
Day 2(Client certs): The standard for securely communicating online is that a user will visit a website and determine if he trusts that the website is who it says it is (https - client validates the server's certificates). The server then authenticates the user using his username and password. To provide an additional layer of security, some websites require a username/password (what-you-know) as well as a one-time-password/token (what you have) to verify users.
Now imagine a different scenario, what if you could:
securely sign on without using passwords
verify the device they are using is the same device they used before (what-you-have/OTP)
uniquely identify yourself to third-party websites without giving the second party any account information
Day 3(Bloom Filter): The next is a math concept.
You have a tiny black box. You can add hundreds or millions of items to the box, the size wont change, it's incredibly tiny. At any time you can add items to the box or duplicate it.
Here's where it gets fun: whenever you ask the box if it had an item it gives you one of two answers instantly: yes or maybe. When I say instantly, I mean it, there's no sorting, network requests or anything.
What could you do with this magic box?
Day 4(Docker): You have an program. This program is packaged in a box, and the box has some special properties:
It can run the program on any machine and OS, without any changes
it preconfigures the program to work correctly without user input
Can run 100s or 1000s of versions/instances of the program at the same time without conflicting or even knowing with each other
Every change made to the program in this box is tracked, so its easy to add and remove changes at will.
At any point you can destroy the box completely, leaving no trace behind
You can start or stop an instance of the program almost instantly
How would you use this box? How could it make your life easier?
This next one is a math concept as well. Its a bit weird to conceptualize, so feel free to ask questions if something doesn’t make sense.
Day 5(Merkel Filter): You have a box full of data. You can add or remove from this box. Every time you try to make a change to the contents of the box, the original box is duplicated, your change is made and the new box is given a label with the following information:
it has a unique name for the current box
the time
it specifies exactly what’s been changed since the previous box
it specifies the previous box’s unique name.
The label is generated automatically, and is always correct.
Here’s where it gets interesting.
You’re changing this box by working with other people. People you don’t know and don’t trust. Whenever someone makes a change, they yell to all the workers , showing everyone the label, and stating what change they’ve made. If a majority of the workers agree that the label matches the worker’s stated change, the new box becomes the box that everyone works from. If the majority disagree, the new box is ignored, and work continues from the old box.
This series of labels is public. As a new worker you can verify the contents of the current box by reading the labels of all the previous accepted boxes.
How could you use this box and trust mechanism?
Day 6 (Voice/Intent Detection): If you had the ability to determine the emotions of the writer for any snippet of text, what could you do with it? What if you could determine the emotion of the speaker in a sound clip? Can you think of any useful applications?
Day X:
Day X: You have a special box. You give each of your friends their own key and a copy of this special box. Anytime one of your friends adds, changes or removes an item from the box, the same changes happen to the content of everyone else’s box. When you give your friends a key, you can decide how long the key will last. If your friend’s key disappears, the contents of their box is frozen. The size of the item added or removed doesn’t matter, changes are instant.
Day 7:
Your home wifi router has a range of \~100 feet. What if you could replace your router with a device that would let you access your home network from 2.5 miles away. How would that change the way you use your devices?
Day 1 (Threshold): Lets say you have some data you want to protect. There are a trusted people that should be able to see the information you protected, but only if a majority (50% or more) of your trusted people agree. What kind of information would you protect like this?
Day 2(Client certs): The standard for securely communicating online is that a user will visit a website and determine if he trusts that the website is who it says it is (https - client validates the server's certificates). The server then authenticates the user using his username and password. To provide an additional layer of security, some websites require a username/password (what-you-know) as well as a one-time-password/token (what you have) to verify users.
Now imagine a different scenario, what if you could:
Day 3(Bloom Filter): The next is a math concept. You have a tiny black box. You can add hundreds or millions of items to the box, the size wont change, it's incredibly tiny. At any time you can add items to the box or duplicate it. Here's where it gets fun: whenever you ask the box if it had an item it gives you one of two answers instantly: yes or maybe. When I say instantly, I mean it, there's no sorting, network requests or anything.
What could you do with this magic box?
Day 4(Docker): You have an program. This program is packaged in a box, and the box has some special properties:
How would you use this box? How could it make your life easier?
This next one is a math concept as well. Its a bit weird to conceptualize, so feel free to ask questions if something doesn’t make sense.
Day 5(Merkel Filter): You have a box full of data. You can add or remove from this box. Every time you try to make a change to the contents of the box, the original box is duplicated, your change is made and the new box is given a label with the following information:
Here’s where it gets interesting.
How could you use this box and trust mechanism?
Day 6 (Voice/Intent Detection): If you had the ability to determine the emotions of the writer for any snippet of text, what could you do with it? What if you could determine the emotion of the speaker in a sound clip? Can you think of any useful applications?
Day X:
Day X: You have a special box. You give each of your friends their own key and a copy of this special box. Anytime one of your friends adds, changes or removes an item from the box, the same changes happen to the content of everyone else’s box. When you give your friends a key, you can decide how long the key will last. If your friend’s key disappears, the contents of their box is frozen. The size of the item added or removed doesn’t matter, changes are instant.
Day 7: Your home wifi router has a range of \~100 feet. What if you could replace your router with a device that would let you access your home network from 2.5 miles away. How would that change the way you use your devices?