Properties and characteristics of blockchains

Hi,

I am not sure if this post fits here. Mod please feel free to move it to somewhere you deem fit. I believe it’s more academia stuff than technical questions or asking for troubleshooting.

I am interested in certain theoretical aspects of the blockchain technology. I am asking the following questions out of curiosity and research interests. My intention is not to ask someone to do anything for me, such as google keywords or read codes. If you immediately know the answers or some references to look at, please share with me. If you have some ideas and feel interested in discussing them, please share what you think.

The network of a blockchain consists of no “server,” in the centralized sense, but a lot of peer nodes. In the client-server sense, every full node plays both roles of server and client. The whole network can be considered as a graph ( http://en.wikipedia.org/wiki/Graph_(mathematics) ), and for the time being, I am wondering

  1. What is the critical mass, i.e., the minimum number of nodes, for such a network to function?

  2. Apparently, the network won’t be a complete graph. Is it like a small-world network ( http://en.wikipedia.org/wiki/Small-world_network ) or a scale-free network ( http://en.wikipedia.org/wiki/Scale-free_network )? How to verify it? I am guessing that it’s not a random network ( http://en.wikipedia.org/wiki/Random_graph ) because of the way the current implementation of cryptocurrency wallets looking for peers, but I could be wrong.

  3. Would certain properties of the graph, such as the diameter ( http://en.wikipedia.org/wiki/Distance_(graph_theory) ), affect the performance of the whole network? If so, how?

Some bitcoin theoretical analysis might be done on inaccurate assumptions, such as the network structure, and therefore might not be practically valid. It seems that most academic discussion related to cryptocurrency for now is on the economic side, addressing the facets of currency, or on the cryptology side. The properties and characteristics of blockchains seem somehow neglected.

ycz

I’m no expert as in the code but,

  1. The theoretical and pratical idea is that one network could just need at least 3 nodes/clients with the blockchain copy always online. Disregarding the identity or location of the nodes.
    Being that the cross of information (bytes) where A transfers to B is seen by C that confirms that A can make the transactions to B. After the block time the “property” assumes possession of node B in the ledger and every client/nodes assumes that as an evidence over time.

  2. I would think is a free scale network since new clients/nodes search for clients with long blockchain copys and then faster connections. This last one is not random I would think… since internet is not equal all over the world… :confused:

  3. The most important issue is internet connection since blocktime was chosen and adapted to that. One can mitigate this problem by creating strategic regional full nodes on the world wide network paying some servers. :smiley:

Don’t forget that software has a number of default connections but one can change it. Creating a more trusted network…

PS: https://www.random.org is a nice place to understand the word random… with Artificial Intelegent the word starts to seem very difficult to accomplish at a human level… :stuck_out_tongue:

1 Like

ycz said:

  1. What is the critical mass, i.e., the minimum number of nodes, for such a network to function?

The minimum number of nodes needed is two. For example, when a coin is first getting off the ground, the developer(s) need to run two independent nodes that talk to each other, establishing the first glimpses of the network.

To function well, you need far more nodes for two primary reasons: (1) network security purposes, and (2) to help distribute the blockchain to users better.

It is also important to remember that there is a distinction between a simple “node” that participates in the network and syncs the blockchain from elsewhere and a “full node” which helps to better propogate the blockchain to others. A full node in general is a node that allows more than 8 peer connections, forming sort of a “hub” in a hub-and-spoke-like system.

  1. Apparently, the network won’t be a complete graph. Is it like a small-world network ( http://en.wikipedia.org/wiki/Small-world_network ) or a scale-free network ( http://en.wikipedia.org/wiki/Scale-free_network )? How to verify it? I am guessing that it’s not a random network ( http://en.wikipedia.org/wiki/Random_graph ) because of the way the current implementation of cryptocurrency wallets looking for peers, but I could be wrong.

When a user brings a node online, that node looks for other network nodes to connect to. In general, it is most likely that it will connect to geographically close nodes, as these will likely give it a better connection. In addition, many nodes will be set up to connect to nodes around the world. As such, it creates what is essentially a small-world network, meaning that my node “A” may not be talking to your node “D”, but “A” may be talking to “B”, which is talking to “C”, which is talking to “D”. As such, we are loosely connected in a decentralized net.

  1. Would certain properties of the graph, such as the diameter ( http://en.wikipedia.org/wiki/Distance_(graph_theory) ), affect the performance of the whole network? If so, how?

The greatest thing affecting the performance of the whole network is related to the strength of network connections, alluded to by Oliver. When a new block it found, it takes 7-15 seconds as an estimate for that block to be propagated across the entire network. The more full nodes there are helping distribute information, the better.

The properties and characteristics of blockchains seem somehow neglected.

Keep in mind,

network != blockchain

at least not in a strict sense. The network is the mechanism through which all nodes can verify and maintain the validity of the blockchain in a decentralized manner. The blockchain is like your database file, while the network pools all nodes together as the software + hardware maintaining and backing up the database.

2 Likes

bigreddmachine How is a blockchain created and distributed to new nodes? Is it in the code so that it is stored on the first 2 nodes and when a new node is created it downloads the history from the other nodes?

iisurge said:

bigreddmachine How is a blockchain created and distributed to new nodes? Is it in the code so that it is stored on the first 2 nodes and when a new node is created it downloads the history from the other nodes?

Essentially, yes. That’s how it’s distributed.

  • Mike

First, thank you all, including Oliver, bigreddmachine, iisurge, and anonymous others, for reading, responding, and discussing the posts in this thread.

Oliver Those terms are difficult to comprehend because they are the same words in our daily conversation with different, perhaps generalized or specialized, meaning or definition. For example, when we talk about “random” in math or science, we need to also specify the probability mass function (pmf) or probability density function (pdf) to convey the exact meaning, such as laudney mentioned the “geometric distribution” (if I remember correctly) in some other thread. However, in daily conversation, “random” is a quite vague concept or accompanied with a uniformly distributed pmf or pdf.

bigreddmachine Thank you for the detailed comments. I understand that the network is NOT the blockchain. A blockchain is a de-centralized, distributed data storage system.

In order to further clarify the thoughts I try to discuss, I think I should make the terms clearer:

  1. Blockchain: The de-centralized, distributed data storage system. This is the target I would like to understand and study.
  2. Node: In the case of Reddcoin, I mean a full operational wallets, storing and processing blockchain data. Browser wallets are not included.
  3. Network: Apparently, the term here does not mean the Internet. It means the whole thing consisting of nodes, defined in 2, connecting to each other.
  4. Vertex: Node. I prefer to use the term “vertex” when considering nodes in the level of mathematical abstraction such that the practical, physical notion of (computing) nodes can be removed.
  5. Edge: The TCP connection between nodes. They are actually directed edges. If you do a getpeerinfo command, you will see your node connecting to some other nodes (Inbound: false) and being connected by some other nodes (Inbound: true). Sometimes, there are multiple connections from one node to another. To simplify the model, as long as there is a TCP connection from A to B, we consider the directed edge A->B exists, no matter how many TCP connections.
  6. Graph: The thing consisting of vertices, defined in 4, and edges, defined in 5, is called a graph, which is a mathematical representation of the network, defined in 3.

After abstracting the real-world, physical situation as mathematical objects, there are different levels to study. Cryptocurrencies exist as working (complex) systems. There are many facets of them, including at least

  1. They are considered as currencies (or at least we hope that they can play the role). At this level, economists are actively discussing this new thing and predicting the possible outcome. As I indicated in the previous post, this facet is being addressed in academia.
  2. Cryptocurrencies are a (significant) application of the blockchain technology. I am interested in conducting research at this level. I would like to know, as the thread topic, the properties and characteristics of blockchains. Blockchains exist on some communication network. The current implementation is established on the TCP/IP network, and hence, we can define the edges of the “graph” by using TCP connections. If in the future, the architecture changes (e.g., NDN, named data networking), we can use some other way to define the graph. By doing so, the blockchain itself may be deeply, theoretically investigated without heavily confined by the software implementation or the physical configuration.
  3. The current blockchain technology is based on two major components: One is communication network (mostly the TCP/IP network for now), and the other is Cryptology. Both of them are well developed, and it is why the blockchain technology works. Needless to say there are many scholars working on the two realms in academia.

Hence, I am going to focus on the blockchain technology. As the first step, I wish to know how the graph, i.e., “network structure,” affects the functionality of the blockchain. I understand that it is impossible to fully separate this layer from the underlying mechanism, including the software implementation, and/or from the current currency application, but I will try my best.

Of course, all kinds of discussion on any facets of the related topics are welcomed. The blockchain technology is brand new in human history. I feel lucky to see it happens in my life time.

First of all thanks for your questions these are good and pertinent. :slight_smile:

ycz said:

when we talk about “random” in math or science, we need to also specify the probability mass function (pmf) or probability density function (pdf) to convey the exact meaning, such as laudney mentioned the “geometric distribution” (if I remember correctly) in some other thread. However, in daily conversation, “random” is a quite vague concept or accompanied with a uniformly distributed pmf or pdf.

You want numbers of such randomness I get it, but I haven’t those for you… I would like to have those in order to compare with other types of networks, indeed.
That is were academia can open eyes to this technology and push a lot more companies to use this type of technology as a store of information world wide. I’m being serious here. An Omnipresent company is a powerful one. Regardless the implications of that, unfortunately.

Is important to understand that the currency part has a volatile price relation by nature but specially due to political and non regulated markets applied to every cryptocurrency. The more spread the currency is the more volatile it gets. Some people need it more some don’t and speculative interests love this type of ecosystem.

Regulatory entry points are being mounted as we speak… Specially in the world capital of finance NY. The monopolistic market never innovate unless it starts to see declining of adoption witch is not the case here. They are seeing new markets that don’t have any money and where lending could give a new fresh start.

But for the most part the tecnology needs to be understud first in order for more people to adopt and that is what you are asking the details… to a wide academia to know better.

PS: Although the average human being doesn’t understand the concept or the implications of it. Specially when we talk in the internet of thing as a security threat to users. The blockchain concept will have a wide implementation when securing devices.