Difference between Sections and Groups

So I’ve been meaning to ask this question but then I’d try to search the forum and then it would be either too technical or the info would be a bit outdated.

Can someone kindly explain in simple terms, what exactly is a section? How is it different from a group?

Are only elders voting now? And now is it that a new node is added to the voting group only when required?

Because from my last deep look into Safe I got the impression that any node would be able to vote after age: 4.

I’ve tried reading the link from latest update (Dec 7) but was too technical for me. Appreciate the help.

2 Likes

You’re not alone! I think the confusion arises because historically a bunch of nodes responsible for a certain set of data was called a group, and terms like group_size are still present in the code, but last year ‘sections’ were introduced which are flexible in size. Unfortunately ‘section’ and ‘group’ seem to be used almost interchangeably, which doesn’t help. Section is the best word to use in almost all cases. I did my best to decipher this here https://forum.safedev.org/t/data-chains-deeper-dive/1209/17?u=jpl

Hope it helps.

6 Likes

Section is the set of members that share the same bits of the binary tree that is formed as the network grows. Each member can only belong to a single section.

Group is a subset of members, from the same section. We have the group of elders, responsible for controlling data and consensus, the group of adults, capable to become elders, and the group of infants.

13 Likes

Very concise explanation.It was great to read@JPL

2 Likes

Thanks @nik1 - I still have quite a few blanks to fill in. This is something I hadn’t quite grasped for example.

1 Like

Liked your non-technical summary on the developer forum JPL - clarified a few concepts, thanks.

I asked this on another post too, but if someone can answer this here:

What happens if a malicious party is able to control an entire section? As in, what exactly will they be able to do?

Delete data? Block Access? Change safecoin ownership? Double spend?

Let’s not go into the debate whether it’s possible to gain control of a section - just wondering what one malicious section is capable of doing.

And what percentage of sections need to be controlled for the malicious actor to actually do serious damage like the examples mentioned above.

What is not clear: what a section is, or something else?
If it is a section, that I think I understand (after reading the first posts more properly: what @digipl said, but more elaborate).

From here:

Each section is defined by a name prefix, i.e. a sequence of between 0 and XOR_NAME_BITS (currently 256) bits, similar to how IP subnets correspond to IP address prefixes.

Every node gets an address in the Xor space wich is a number, 256 bits long: so between 0 and 2^256 (very big).

Assume for example that the SAFE Network will have 65536 nodes in total with e.g. an average of 16 members in each group.
Then you have approximately 4096 (2 to the 12th power) groups in total, meaning the average section is 12 bits longs. So for example a section could be every Xor address that starts with 12 zeros (if you understand the working of blockchain, this should sound familiar). So in my example about 16 of the 65536 total number of nodes will be member of section ‘000000000000’.
And this section will have a total 2^256 / 2^12 = 2^244 members. Or, in other words, the total amount of numbers between 0 and 2^256 that start with 12 zero’s. And that group of 16 is a subset of these members.

Or maybe the different type of groups is meant: group of elders, group of adults, group of infants, and the ‘total’ group, that contain all these groups?

2 ^ 244 is the possible XOR directions within any of the 4096 sections in a perfectly balanced tree, but the total members of any section will be between 8 and enough members to generate a division (I guess around 20).

1 Like

This thread could also be helpful: Explaining group splits and merges
Let me ask a question: can there be members of a section, who are not part of the elder, adult or infant group?
I assume that all section members are at least infant?

No (quick answer and 20 char min)

3 Likes

That is the understanding I also gained out of the topic in the dev forum.

I think you will find that under certain conditions a section can have a lot more members than 20. Doesn’t the split only occur when there are enough elders and adults who could become an elder?

Yes , the 20 is only a guess. Until we have a working network is simple speculation.

The logic says that in a network in strong growth the number of infants will be high and the sections bigger. In a stabilized network the sections must be smaller.

2 Likes