Technical noob questions

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…

  1. 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?

  2. 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?

  3. 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.


Welcome to the forum!

  1. Good question :wink: I don’t know the answer.

  2. 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.

  3. 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.

1 Like

So if I am a new user, I have a unique ID. If that ID is “close” enough to the ID of an unclaimed Safecoin, can I just claim it?

Welcome to the forum

No you must earn safecoin, the farming process will get these for you randomly. Won’t matter where you join really.

There is no choice here, nodes (vaults) do all these actions or are disconnected. It’s part of the deal really and required all vaults act with the same small set of rules and repeatedly.


Thanks David!

Am I understanding correctly:

  • A safecoin is a file
  • That file contains only the prev owner, current owner, prev owner signature
  • When the coin is transferred, those fields are updated to reflect new ownership
  • That file, like any other file in the network has an ID
  • The node with the ID XOR-closest to the file ID is responsible for storing and retriving the file

and then:

Is a Safecoin file ID determined the same way as any other data stored on Safe? (based on the file’s hash)

How are Safecoins divided? Can they be split into multiple files of different denominations?

If I receive a Safecoin, a file with a prev owner and a signature, how do I know it was farmed legitimately and transferred legitimately to that prev owner?

This is because the network says it is :wink:

Not at the moment but yes they can be.

The unified structured data rfc will help a lot here.

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 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?

Hi, @pinhead26. Welcome.

Fantastic on watching all the videos, etc.

From looking at your questions I think reading the Wiki would do you a lot of good.

It is a decent read and helps give a good orientation and overview, while covering a lot of the data related to your questions.

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.

1 Like

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.

1 Like

Ohhhhhhh kaaaaay, I’m getting there, thanks.

So is this correct:

  • Transactions must be approved by 28/32 closest nodes
  • Those nodes only verify one single transfer or generation step, and assume all previous steps have been honest because…
  • It is infinitely unlikely that an attacker or colluding group of attackers has randomly stumbled upon 28 of the closest node IDs, given the size of the ID space (256 bits)

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.

1 Like

The XOR space, and the possible ID, is 512 bits.

1 Like

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 :wink:

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 :smile: 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.

1 Like

There is a few papers etc.
Of course I should add the wiki, maidsafe site docs, github repo docs and of course here :slight_smile: