I’ve watched all the videos I can on youtube (including the FAQs with David and the technical overviews with Erick Lavoie), and read all the relevant FAQs. But I’m still unclear about…
There seem to be a few different “roles” in the network (Transaction Managers, Vault Managers, Vaults, Farmers… are there more?). Does a user decide how many of these jobs they want to do? Does everyone do everything? Or is it more like how Bitcoin miners make a decision and an investment to take on a privileged role?
All users generate a unique ID that should never collide with any other user (like Bitcoin private keys). However, we have seen “collisions” in the Bitcoin space from bad RNGs and malicious attacks including straight up key theft – what are the consequences of an attacker or another user obtaining your ID?
I sort of understand how Safecoin ownership transfer works without a blockchain, but I don’t completely understand how clients on opposite sides of the network who’ve never connected before can accept Safecoins they’ve never “heard about” before – is there a genesis block or something that roots all coin generation for the entire universe? Does a transaction need to prove the entire chain of custody since generation to be valid? I am looking for a video or infographic about this process but haven’t found any yet.
The network will provide you with an address, you can’t choose one. So when you try to connect to the network in XOR-space, some nodes will reply, they’ll provide you with an address for some time and you’ll be able to take it. They’re the ones already close to a number (address) in XOR-space, so if the address was already used they would’ve known it, and provided you another one.
There are a lot of addresses containing Safecoin. There can’t be more Safecoins out there than the addresses it uses to be on top of. Here’s some more info.
Can you expand on this at all? With a blockchain, every node in the universe can “say it is” and can do so by providing a complete chain of protocol-honesty starting with the genesis block. I don’t understand how a file with a single signature can be trustlessly verified.
The signature is crypto secure, the group consensus of the network ensures the network sees it as unique and accurate. All signatures can be trustlessly verified (to at least match a public key, but not who’s public key, that is where PKI hacks happen). That’s the asymm crypto at work, the issue is though can you tell it was not created by anyone. In this case teh group consensus tells you the network says this is valid. It’s carried out by groups. If you check metaquestions.me and see the last blog post it will explain much more (it’s not a quick answer).
This group consensus is the quorum (28-of-32)? So a Safecoin transaction must be approved and signed by 28 of the 32 nodes in a group. The members of that group are determined by their XOR-proximity to the ID of the coin.
So what if I am a brand new user, and due to my ID’s proximity to a coin I am now a member of a group. Someone asks me to approve a transaction, but with no historical record how can I possibly take on that responsibility?
Its not as big a deal as I’m hearing. Your node will receive all sorts of messages and the code it is running has standard processing for each.
You have no need of a historical record in order to perform the step requested according to the message. You just do the math - to check that the message is correctly signed - perform the appropriate operations, sign the result and respond. That’s it. But obviously the details differ according to the role and the message.
Its hard to explain in the serial manner of a bitcoin transaction because the chain of events involves much more than one node doing the same thing as many other nodes and then just confirming enough of them agree. But essentially, its the same process, just that with close group concensus (and the XOR space automatically selecting nodes at random for each single operation) only a very small number of the nodes in the network have to agree.
Here’s a topic I wrote about Sentinel. It’s the part of the network where you get above the ip-address layer. The network will give you an address in XOR-space. It’s take it or leave it. If you take it you now have 31 new friends in XOR-space. If you say to them, I own 12 Safecoin, they’ll just watch the address of your coins. When you sign that message using a private key, they’ll all see that you are indeed the owner of these coins. If you sign a message to sent it over to another address, they confirm that request. they reach consensus on the fact you signed a message saying you want to move 3 of the to a different address.
Yes, you can’t choose to be close to a group of nodes, otherwise you could form a group with friends and attack a group, signing everything you want. You do a lot of requests to get from ip-layer to XOR. After some time, a random group will reply, provides you/alters your address and you are now part of a group you couldn’t pick. With an address you couldn’t pick. I think for sending Safecoins even 3 groups or so are needed. So it’s checked by about 100 nodes in the network.
So understanding this is my Maidsafe a-ha moment, but it was really hard to find in the documents. It took me a forum thread to finally understand that security is derived from the random distribution of node IDs (essentially).
Is this already a well-know cryptographic primitive whose understanding is just taken for granted? Coming from a few years of Bitcoin-obsession, this was the one thing I needed to “get” Maidsafe. Is there a white paper or any research that outlines the level of security, or any attack vectors to this method?
If you come from the Bitcoin space it is indeed quite different. In Bitcoin you create a million addresses if you like. And than, these are your address. On Safenet you can do that for Safecoin, but the part we’re talking about here is bootstrapping. It’s about the moment when you start your computer and connec to Safenet. I agree it’s not that clear in the documents. I just got it on a Dev-update some weeks ago
But again, once you’re on the network, you do create your own Safecoin address (as far as I know). That’s the thing with Project SAFE. It’s creating an alternative to Kademlia routing, in a way where you “log on” to a decentralized network using a personal file, with a cryptocurrency that doesn’t use a blockchain and also has self encrypting data and caching. And all at the same time I would like to ask a zillion questions more about all the details, because not all becomes clear after reading into the docs. But the devs are so busy, I almost feel guilty to poke them.
About research papers… I don’t know if there are any on this particular way of joining a network. @BenMS (Maidsafe Dev) wrote a paper on the network. Maybe he knows.