here I list a long FAQs in order to explain all aspects of project.
time by time the questions and answers are expanded.
here I list a long FAQs in order to explain all aspects of project.
• So you made another sh**tcoin? • It looks like a scam. Why you have not any Twitter, YouTube, Facebook account? Why do you want to be totally anonymous? • Do you believe in some ideologies or biased some economic doctrine or some particular school of though? • Does the scheme provide a basis for distributing new currency? • How are new coins distributed? • Who can own stocks? • measuring in works hours is difficult, and system can be fooled, and juniors get paid better than seniors who will work less hours to produce better work. • What are the benefits of having network stock? • How will the stocks be divided? • Why contributors get paid 7 years? Is it arbitrary number? Can it be one year or vice versa 100 years? • It is unlikely everyone would evaluate daily the work done by every contributor. • People do not like everyone evaluate their work. • There is a perverse incentive for shareholders to undervalue the work by other people (up to zero). • If the good shareholders can remove corrupt shareholders, so could corrupt shareholders remove honest ones. In fact, they would probably be more motivated for doing so. • What are the consensus mechanism and data structure? • You cannot "immediately record the transactions in the blockgraph" • That delay could be a serious limitation though. Imagine a exchange transaction, funds must move from A to B, then C, then D, ... 12 hours on every step would make these types of transactions not viable. • Why you set 12 hours for each cycle? Couldn't you set it 10 minutes or less? • Who handles regular merge of branches? Isn't that making the system centralized? • Which node has the privilege over the rest to get the subsidy? How do the rest agree? • Rather than waiting for 12 hours, you probably want instead to make it work with confirmations from 51% of the shareholders. That could be almost immediate or take several days (worst-case, more than 50% shareholders no longer have active nodes, bringing the currency to a halt). • If everyone can record everything on blockgraph, so very fast the blockgraph will bloat and incapacitate! • What languages or platform you used for software and why? • Why you do not put the source code on Github? • Scarcity doesn't give value to the coin. • How the system creates value (in economic term)? • Is its money a kind of utility token? • How many maximum coin supply will be? • Since the data structure is DAG, Can the chain be forked without this being noticed? • It would be nice if the network recorded the status of its DAG in the Bitcoin blockchain and vice versa. • PoS is energy savvy, but still is biased in terms of making richer the rich and poorer the poor. • The system needs to high-speed internet be accessible everywhere, otherwise not works. • Is it possible to have a technology that adversaries can not shout it down, block or seize it? • Can the adversaries shout-down internet? • Can the adversaries cut electricity? • Can the adversaries acquire nodes or key member persons through physical action or cyberattacks. • Will this technology will be vastly used by mass? • Will these currencies will be vastly used by mass and they will have real usability and applicability? • Can these currencies being used in tax evasion? • Can these currencies being used in criminal? • If a good and useful human community is to be built, it has to have a way to exclude bad actors. The software, built around hard anonymity as it is, has not. • The bandwidth shortcomings (TPS) and need to interact with real world, have forced cryptocurrencies users to reinvent (via exchanges) all the financial infrastructure they still believe they have freed themselves from. • What features the Comen software has? • Does Comen support Smart Contracts? • What type of transactions system support? • What are Comen solutions for privacy of transactions and coins in traceability sense? • Will it be really easy to create a new cryptocurrency? • Having thousands of different currencies will raise arbitrage and all kinds of other schemes of speculation and manipulation. • The market-capital of new monies will not be enough big to influence the real world’s market. • will get around the power and centrality of the largest economic units - the financial and industrial capitals? • Some of ideologies essentially do not believed in money at all. So this approach makes no sense to them. • What is the software license? • Is software a fork?
So you made another shtcoin?**
No, I did not just create another coin. Indeed I made an infrastructure to everyone be able to create a new community and run its new coin in a couple of hours, in order to ease small decentralized communities have their voices. without censorship or banning. It is a great survival for Blockchain technology that is currently being held hostage by giant companies, exchanges and greedy traders, who want to be millionaire overnight.
The software called Comen stands for “community maker engine”. So I developed the alpha version of software and launch it.
Then as a favorite community I established a community called “ imagine ”. I set some rules and wealth distribution mechanisms for this community. The most important rule in imagine is “ every decision in imagine community must be made by polling between all community members, in proportion to their shares of network. ” the community rules and mechanisms have been explained in different parts of this Q & A.
It looks like a scam. Why you have not any Twitter, YouTube, Facebook account? Why do you want to be totally anonymous?
I strongly believe that Blockchain technology is the greatest innovation which could be used by people to enhance democracy . But in current situation, no one practically used it for this mean. They may not have been allowed to use this technology for common good! What do you think?
If you read the proposal, immediately you will find why I shouldn’t compromise my privacy. I am a weak individual. I have an idea to help people and I have to spread it safely. So let focus on what the software is, since when you want to deal with another person, the source of trust could be one or both of reputation or contract itself. If you have both is good, but even if you know the person, doesn’t mean you will go to sign whatever the contract is! Do you? Obviously you read entire contract and every details. Here is the same. You don’t know me. So I could be evil or the most trustfulness person in the world. In any case you must concentrate on software and its intention and real behaviors of software and protocol, and not on who created it. Let me know what you do not trust in software and protocol instead.
The project is not scam, simply because no where I tried to sell you new coins. I clearly state, “YOU SHOULD NOT BUY COINS” from me or the other. It is really important. No one must not buy coins unless being sure about coin community principals and community governance rules and software safety and consensus mechanism and network stability, and so on. This learning curve deserves a long journey, and in your journey you will find it will be much easier to earn coins by contribution in project development, rather than pay paper money to buy coins.
About why I have not Facebook, google, twitter… I refer you to some informative posts like:
Reasons not to be used by Facebook: https://stallman.org/facebook.html,
Do you believe in some ideologies or biased some economic doctrine or some particular school of though?
I do not want to fit myself or the project in a particular “ ism “ or a certain ideology, doctrine, regime or school of thought, simply because the project is a comprehensive infrastructure of human knowledge and experiences. It belongs to whole humankind, since my intention of that strive is human prosperity and I hope your intention is human prosperity as well.
Does the scheme provide a basis for distributing new currency?
Yes, but the distribution logic has nothing with network or computer power. Instead it based on member’s stocks which is an external parameter. That is, members do some tasks, and claim their wage by stating the hours that they dedicate to a particular task. Their claim will be judged by polling through current stakeholders. In case of acceptance of their claim, the stated hours become stocks. Therefor the contributor will get paid in proportion to her/his stocks.
How are new coins distributed?
The treasury income consist of 2 sources and distributed 2 time per day (once 00:00:00 and another 12:00:00).
Every 12 hours the treasury incomes will be divided between network stack holders in proportion to their stacks.
Who can own stocks?
In every stage of software development which is correlated and paralleled with society development, brand new contributors will/can join to the community. That is, society starts with software developers but definitely does not stop over there . In early days only technicals can run a node, and if you don’t have those skills you need to ask a friend or a professional - who knows Nodejs, Angular and a little PSQL - to install software on your laptop, but after releasing mobile app the community will embrace huge number of non technicals. The software approach always is finding more and more and more reasons to join new people to community and providing a chance to them to do something useful for world, and earn coins because of their participation and their goodwill.
We are not living in a world of limited resources. We are living in a world of mismanaged resources. There is more than enough for everyone. Note that this program is not UBI, since I strongly believe in, no one is totally useless for community that makes her/him a frail consumer. Since everybody participates in every decisions, surely we can find great solutions to benefit more and more people, which is where the community gets its strength.
In technical point of view, some kind of jobs like programmer, translators, content providers, editors, designers, multimedia providers, and all digital product providers , can easily be evaluated the quality of content and how many hours she/he/organization spend for that special task. But since participants may suggest anything to do (e.g. feeding an elephant in Africa.), we need to find a way to assess the quality and the quantity of work done. We need trust able “Oracle”.
As long as emerging blockchain concept always there was a problem of “ Oracle ”. That is, how we can correlate the real world information with blockchain information and vice versa. In our case is how the community can evaluate the quality and quantity of a task? Since we embrace all activities that aimed for “common goodness”, there will be a long list of immense different activities like feeding an elephant in Africa or providing a service for handicaps in NY or… How we can evaluate that wide range of activities? Who is qualified for this kind of evaluations? And too many questions like these.
The “oracles” are people or organizations that we trust them. If they claim person X did Y hours of work we should accept their claim. But how we can trust the oracle itself? There are solutions for that. I will explain it in a pure technical post later, but as a short answer I foreseen a kind of “reputation sub-system” in afotware . That is, people gradually improve their trustfulness level in system. There are tons of algorithms to implement this feature, but for now I explain it in shortest possible way. Each people/organization in system is an entity that has an id (e.g. im1xpjkywf48yckgepcvdnrgdrx8qurgdeevf3kyenyv9snvve5v5ung9axujl). Each entity has a coefficient of trustfulness and time by time the entity can improve the trustfulness or lose it. Since in blockchain everything is transparent and everything is registered forever and no one can tamper it, this trustfulness coefficient is an essential value in algorithms. Everyone in imagine community can track the history of activities of an entity and decide to trust this entity or not. In addition, there are some self-regulated mechanism to enhance efficiency and quality of contributor’s task over time. In long run imagine coins will be distributed fairly and because of real helping the world. Obviously there are different tools to automate this process and suggest you some probability, graphs, numbers and etc. It is a long technical stuff I will explain it in a technical post. There is also privacy consideration that needs to detailed explanation too. But for now we got a rough idea of imagine ’s road-map. Careers must be decided based on which problem people want to work on, and People will work out of love. Passion for their work and with a responsibility feeling towards the community.
Hope it was clear and made you aware of non technical participation.
measuring in works hours is difficult, and system can be fooled, and juniors get paid better than seniors who will work less hours to produce better work.
Measuring in works hours is a little difficult, but since every stock holders are going to measure, judge and vote for all proposals, the process will be more professional and anti-cheating. Maybe one can cheat one, but one can not cheat all. for every single proposal, every one can/will vote, so cheater has no chance to propose a low quality job and claim for high hours rewards, and simply community reject her/his proposal. In addition, in long run every contributor makes its reputation as well, which will be used for assessing the tasks.
About juniors vs seniors, there is a coefficient formula that nominated for “level of usefulness” of the task. By default all kind of works and all skill levels are equal, over time the community will decide to set different number for different level of skills or different type of jobs. obviously these decisions must be done after debates and convincing the community. BTW I strongly believe this number must be an integer number between 1-12 due the fact that “no one should earn more in a month than someone else earns in a year.”
What are the benefits of having network stock?
Having these stocks users will get paid every 12 hours in proportion to their stocks. This income lasts 7 years. In other word, users one time participate in network tasks and accomplish a task, but they will get paid for next 7 years. The users also have voting rights in proportion to their stocks for next 7 years. Users can spend their coins in exchange of goods or services. They also are free to sell their stocks as well.
How will the stocks be divided?
It is pretty straightforward. Lets start from first day. I developed a software called Comen. Now it is ready, so I install it and establish a community called imagine . I am the only member of community. I have 1 million initiative shares. You want to join to network, so you find an interesting task to do (say tweak some css files). You dedicated say 5 hours of your time to accomplish the task. You send a proposal about what you did and run a polling on blockgraph. All community members (currently only me) vote for your proposal in proportion to their shares. They can accept your effort or reject it. If you get approved, the new total shares of project will be 1000000 + 5 shares for you. In next cycle the treasury incomes will be divided between 1000005 shares. 5 shares for you and 1000000 for me. Once your proposal be approved you have voting rights too. That is, you have 5 shares and can vote for new proposals (including your future proposals). As long as you (and others) contribute in project development you get more stocks and relatively my stocks power decrease.
To making it more interesting for contributors, every shares last 7 years, means you will earn coins for each approved proposals for next 7 years and you have voting power for next 7 years too.
I started with a “Benevolent dictator for life” BDFL and hopefully very soon community became a real community driven management, and all my shares will be amortized.
Why contributors get paid 7 years? Is it arbitrary number? Can it be one year or vice versa 100 years?
The 7 years is not an arbitrary number. I am not the fan of speed, since the speed causes to centralization. it is intentionally long to give people a sensation of serenity and wipe out the fear and stress from life. It is a kind of insurance but by changing the Point of view. People do not paying in advance for an uncertain future, but they will earn in future unconditionally. it is a huge improvement in life experience. just imagine this year you work enough, and for next 7 years you will not only survive but also enjoy your life.
It is unlikely everyone would evaluate daily the work done by every contributor.
Every new proposals by default are approved. So if no one go to vote, the proposal will be approved after polling span date. The network members already knew that if new proposals approved, a part of income of current members will be cut in favor of new member. Because treasury income is FIX. So new members means dividing the same coins between more people. Therefore the community members have enough incentive to participate in voting and rejecting the new proposals.
People do not like everyone evaluate their work.
It is only a mental barrier. If I know some professionals going to judge my stuff, I won’t close myself, instead I learn and improve myself.
not necessarily ALL HAVE TO VOTE or ALL WILL VOTE, only 51% confirmation will be enough for approving a proposal.
not necessarily ALL WILL vote, since voting is not free (like every activities in this network). The voter must pay a little ballot fee.
after all, over time we can improve polling system to some more efficient alternative systems. For example we can implement a liquid democracy model in which Voters can either vote directly or delegate their vote to other professionals or we can use some quadratic voting where individuals allocate votes to express the degree of their preferences, rather than just the direction of their preferences.
There is a perverse incentive for shareholders to undervalue the work by other people (up to zero).
Let imagine the network consist of me myself only as initiative shareholder. Obviously I get all new money, but what is the point? If I do not find somebody whom accepts my money in exchange of her/his goods or services, the money worth nothing forever.
Because of human nature, we prefer to keep more coins for ourselves. If it is not possible so we will divide coins between as less as possible people, and if this is not possible too, we will divide it between our clan.
But none of these 3 approaches will help our network -particularly the value of our money-, because “The money’s value come from the exception of future purchasing power”. people accept the coin in exchange of their good or services, because they believe in tomorrow can pay that money and buy another goods or services.
Therefore the network has to be expanded and embrace s new members to raise up the money usability and applicability in order to advance market range. Bigger community means less daily coins for each, But also means more usability and applicability for the community’s money.
Hence community has to be grown and every decisions are made by polling, the community has to add more and more honest person and not corrupted one. Otherwise community dies in early steps and their money will never be a valuable asset. Implicitly there will be no reason for developer to participate in development any more.
If the good shareholders can remove corrupt shareholders, so could corrupt shareholders remove honest ones. In fact, they would probably be more motivated for doing so.
It is possible for both groups, but we should consider the motives of establish a network. If I start a community, my motives are all about “common good”, and I strongly stand for it. In sequence who join the network and I approve her/him participation, will have same intentions or at least covers large part of my intentions. So over time the community which formed around certain principals, contains the members that have almost same mindset. BTW “this network” and its “rules” and “value of its money” all are governed by majority of community via polling for every single decision. If majority are good, the entire community and its money will be good, otherwise community and its money will collapse -let alone the fact that this kind of corrupted community can not be formed in first place-.
After all, the software is and will be free(libre) and open source. In worst case, if the 51 percent bad people can dominant the network, the 49% good member of community can fork new coin and resume the network and history, and chain info and every single details of network in new graph. They only dismiss the shares of 51 % corrupted and everything will be fine. Note that, the good community do not need to dismiss money of bad actors. They just need to reform the community with almost no cost . we are talking about a community that governing their own money and proper rules in order to expand community members , rise up community reputation and strengthen their money .
What are the consensus mechanism and data structure?
The consensus mechanism is PoS and the data structure is DAG, so it is better to call the project as a block-graph and not a blockchain.
You cannot “immediately record the transactions in the blockgraph”, since there is no one single blockgraph. Remember you are working with several lines that are then merged. That’s why you have that settlement time of 12 hours (it could be any other amount as well, like 5 minutes). That’s an upper limit on which you expect any issue would be solved. It’s not clear how you would solve conflicts, either. Remember, it is distributed.
It is very complex to explain it by I’ll try to do my best, hopefully I will create an animation to explain it well, but for now:
Indeed we record the block and its transactions immediately on graph(DAG), and it will not reversible at all, but recording a block in graph doesn’t mean all of its transactions are valid. So after 12 hours a transaction will be matured and its outputs will be spendable. But if after 12 hours we find there are two or more transactions which are using same inputs but spending it for different addresses, it is a double-spend attack and we have to resolve it. Either we determine the first spend as a valid one and reject the rests, or we detect ALL transactions as invalid and seize the inputs in favor of network treasury to penalize the attacker. So lets delve into how we determine valid transactions.
Most likely after 12 hours, all leave blocks in last 12 hours are merged at least one time and now we can see entire blocks in history of all current leaves by moving back in leave ancestors.
For simplicity we assume two transaction x, y that are using same input and spending in different outputs. Transaction x take placed in block X and transaction y take placed in block Y. The problem is either blocks X or Y can claim they are created before the other one(since the nodes creates these blocks and attacker can run million cheater nodes). So we have XcreationTime and Ycreation T ime . Since we have a network and inevitably we will face propagate delay as well. So, for each node there will be XreceiveTime and YreceiveTime , which can/will be different for each node. Each node has to decide the order of receiving blocks and broadcast it to all neighbors. The nodes have 12 hours to this “informative phase”. Of course the node do not this “informative activity” for all blocks(avoid overwhelming network). They will start it immediately after founding double-spend occurrence and only for that particular blocks. So after 12 hours every nodes have votes of every other nodes about the receive order of blocks X & Y. Each node has a certain amount of network shares and a vote about order. These information is already distributed in entire network and now each node can decide about which transaction is valid and which not. The result for entire nodes will be same. Each node uses the (vote * voterShares) to evaluate the blocks order . Note that, for each node the order is important and the node do not consider to the percentage of this agreement. So a node can figure out the X is before Y by 10 percent agreement and the other node reasons for same result X is before Y but with 99 percent agreement. Both are ok and X is valid transaction. In this formula each node uses only XreceiveTime and YreceiveTime as the unique fact that a node can trust independently.
There are some way to cheating, but for the sake of brevity I stop these conflict-resolution-process explanation and hopefully later in that animation I’ll explain all possible attack scenarios and the solutions as well. But as a last important part of puzzle I would like to note about two important timestamps that limits attackers ability. The XcreationTime & Ycreation T ime are the parameters that the attacker can set freely. The only control the nodes doing is “if the date is not in future”. But after 12 hours, in “import matured transactions” if there is double-spending and the gap between XcreationTime & Ycreation T ime is less that 6 hours, definitely both transactions will determined as invalid transactions.
That delay could be a serious limitation though. Imagine a exchange transaction, funds must move from A to B, then C, then D, … 12 hours on every step would make these types of transactions not viable.
Exactly, I do not like exchanges, so do not care about this kind of fake speed and money transfer.
This emphasize on speed and technology adds nothing to our real life quality, but rather changes the constant factors of speed and marginal cost, and raises the barrier for participation arbitrarily high. Emphasize on speed cause to more centralization and as always giant actors are winner. If the system is designed for people (whom some of them do not get paid after months of “forced labor”) so 12 hours is good enough. This is not a money for speculation at all. Meanwhile there are some mechanisms to improve user experience. As an example users can hold their money in a kind of 10, 100, 1000, 10000 PAI coins. In such a way they can spend partially and still have money for next spend (before 12 hours which their change will be spendable).
Why you set 12 hours for each cycle ? Couldn’t you set it 10 minutes or less?
First of all the system in whole is far beyond a only money transfer rail. Even in a money transporter functionality I designed a system that can work even in 3 rd world countries (because of slow and limited internet connection) and cover s propagation delay. This system is intended to prepare services for real no-banked people.
Meanwhile system must be resilience for any kind of s abotage. One most sabotage is slowing down the internet or breaking the connections at all. Again, for most general financial activities, 12 hour is pretty good time span.
Who handles regular merge of branches? Isn’t that making the system centralized?
When a node wants to create a new block, it has to put the hash of all current leave blocks in header of new block. So the node will includes all leave blocks it knows and they are already existed in its local machine DAG. It is a merge, and each node do it several times in day, and all nodes doing it as well. Then the node broadcasts new block to network. The neighbors will receive this new block and validate it and add it to their local DAG as a new leave block. There is no obligation for a node to link to all leaves in new block and there is no obligation for nodes to not rejecting some particular leaves as well. If a node do not link to a block, probably another node will link to that block and broadcast the new leave block. So at a certain time there will be different nodes with different leaves and definitely in that certain time we can consensus on DAG members older than 12 hours.
Most probably, the blocks with age older than 12 hours are “synchronized” in all nodes, with same ancestors and same descendants. There will be a catastrophic situation in which a group of nodes do not accept the block of certain group of computers or the group of computers for any reason do not accept transactions of certain accounts. Maybe because of conspiracy or political decision. In these cases we will face fork, and like other blockchains it must be resolved or will cause two or two hundred forks.
It looks like a tragedy, but for me it is ok as well, since my proposed network is formed around the mindset of its population. That is, the network has some “principals and rules” that they are coded in software. The participants of network primarily accepted the rules, otherwise they never would join to network. The “ network” , the “ network’s rules” and the “ network’s money” are essentially “ social contract” . If there is conflict in any of these issues, either we can solve it or a part of community will leave it and create a new community with new money, pretty much like a democracy, but with “no cost”. Nothing is bad. I guarantee we will never face this kind of problems in our network, due to the nature of this network and its “community based” money.
Which node has the privilege over the rest to get the subsidy? How do the rest agree?
Comen has not “miner”s. we have two different entity in network, the share holders which earned shares by participating in software development (or another kind of develop e.g. design, test, translate, tutorials, contents…) and we have the backers that dedicate their machine to network and run full-nodes and maintain the blockgraph, validate transactions and so on. Since we have not PoW and there is no mining, the only incentive for backers is services cost (e.g. transaction fees, domain register costs, message cost, etc…) .
In early days the shareholders and backers are same person. The backer also have to create the coinbase block every 12 hours, it is not important which backer create the coinbase block since there is no reward or subsidy for block creator. It is possible in a cycle we have 2 or more coinbase block simultaneously which are created by different backers . T hat’s ok too. Since the share s are already known for all backers (full nodes), the money supply is fix and the treasury income is clear, so every backers can create th e same coin base block with same information and same hash. So it really doesn’t mater which backer create it. There is a pseudo random mechanism to select a backer to create coinbase and propagate it. The system could run without this random selection as well.
Rather than waiting for 12 hours, you probably want instead to make it work with confirmations from 51% of the shareholders. That could be almost immediate or take several days (worst-case, more than 50% shareholders no longer have active nodes, bringing the currency to a halt).
As I explained before, to resolve the conflict it is just enough to after 12 hours determine the order of blocks by each node. So there is no need for wait for 51% percent, but definitely there is a threshold for minimum confirmation. If the network can not provide even this minimum threshold it is not safe at all.
But there is a threat for network in which the shareholder do not run nodes. That is, we have two different entity in network, the share holders which earned shares by participating in software development (or another kind of develop e.g. design, test, translate, tutorials, contents…) and we have the backers that dedicate their machine to network and run full-nodes and maintain the blockgraph, validate transactions and so on. Since we have not PoW and there is no mining, the only incentive backers is transactions fees. In early days the shareholders and backers are same person, but over time the backers will be a group of people that they have small portion of network’s share or they have no shares at all. It could be a thread in case of conflict resolving. We can implement a kind of delegate sub-system in which the share holders rent their shares to backers and give them delegation to judge “ONLY in double-spend-resolving” and no more grants. BTW it is an open issue to consider in future.
If everyone can record everything on blockgraph, so very fast the blockgraph will bloat and incapacitate!
That is true, but there are solutions too. The Comen blockgraphs accept different type of documents with different cost. The user has to pay for recording data on blockgraph. And backers get this money in their wallet. Also not every type of documents must be saved in every nodes. For example every node has to record blockgraph structure and the blocks header and ancestors. Every full node has to record transactions history as well. They can keep all used coins history or prune it and maintain only last 3 month for example.
The rest of documents remains optional. Some nodes can record wiki pages or not. The other may just record videos in their huge slow unused storage and so on. The nodes can trade data in between and earn money as well. In fact it is good for network’s economy. At this point we can also use CDNs or better calling BDNs to provide fast, reliable, distributed storage over the glob. It will be easy to write a plugin to connect Comen to any commercial CDN company and vice versa.
Recorded data can have expire date as well, so the recorder may renew the data rent regularly.
Nodes can manage what kind of data to be maintained or not. In addition, some customized application can be implemented as a plugin for Comen. So this app will use blockgraph space only as a proof of existence and they share data in between in form of big blocks of data. For example a supply chain software can be a plugin on top of Comen. So this software(plugin) will be installed by business partners and they just record the hash of goods allocations or stats on block chain and real big data will be transferred via FTP or what else between partners.
At the end of the day the nodes use UBL either for trade real goods and services in smart contracts or for trade recorded data on blockgraphs.
What languages or platform you used for software and why?
The software comprise 2 different apps.
imagine-server: which in crypto-currency space means “client” code.
imagine-client: which is the machine’s GUI (via web browser) or simply our interface.
Since we have not limited budget, we easily can implement client in different languages such as c++ and also different interface for different devices such as mobile wallets.
Why you do not put the source code on Github?
I do not like Github policies. They discriminating users and filter some users. https://techcrunch.com/2019/07/29/github-ban-sanctioned-countries/ and there is no guaranty to not extending the list in future, or even worst targeting and banning individuals. In order to address this flaws I planned to add version control software as a plugin on top of Comen blockchain. This software must be completed, but for now, the Comen developers can download the commits by exploring the commit blocks in blockchain and apply this commits on local machine with whatever source control version they preferred. Over time this plugin will be full-fledged decentralized VCS, that will be used to versioning not only the Comen software but also as a decentralized service for every project.
Scarcity doesn’t give value to the coin.
The early value of coins is grounded in demand for pay services cost. That is, network users have to pay cost for network services(e.g. register a domain name, send message, run a website, a video channel or a forum on top of blockchain, record a file -text, media, BLOB- on blockchain and so on). The need for using these services drives a demand for coins.
On the other hand, the scarcity is one of the features of a “good money”. I state the features of a “good money” here, and I believe in money of our network will be a good money.
Generally, the good money must have intrinsic value, Something like “labor theory of value” but do not stick that too much. The good money must appreciates its value over time . T hat is, doesn’t lose its purchasing power even after decades. It must be regulated and do not fluctuat ing too much. It must be scarce and has utility value , meanwhile it must has optimal granularity . The good money must support “ financial sovereignty ” and must not be seizeable , also must be cheaply transfer able and fungible . The good money definitely must have 3 classical factor of money. Unit of account , Medium of exchange , Store of value .
If you issue a good money, definitely people will buy “good money” in exchange the bad, cheap, paper fiat money.
How the system creates value (in economic term)?
“The software” and “its network” and “people who formed this network” in whole, they are creating value, in various ways. The primarily value they are creating is the software itself, although the software is free and no one pay for it, but people use the software and its services (e.g. send encrypted messages, publish un-stoppable contents, , transfer money… ) and pay service costs that goes to network maintainer pocket as a kind of income. By this cycle, we created a money exchange ecosystem in which there are producers and consumers.
The second goal for community’s developers is adding more and more useful features to software, in order to eliminate all Bitcoin shortcomings and make the money more popular and user friendly. Every small improvement increases the value of total ecosystem. There are immense features and functionalities we can create on top of this software and its network.
Is its money a kind of utility token?
No, the tokens are indeed the coins which are earned because of working for system and accumulating network shares, and coin owner can sell coins or spend it in order to use network services. No one can buy shares by paying to me or someone else. Although everyone can pay fiat money to someone to work for him and develop Comen software and grab the software shares in exchange of fiat money.
If you mean a kind of “non-fungible token” Of course we can implement this kind of tokens (like Ethereum ERC721) on top of our network in order to implement a tokenized economy for shared assets management.
It is one of million possibility of our future development of the software.
How many maximum coin supply will be?
imagine has a cyclic coinbase which takes place every 12 hours (one in 00:00:00 and the other in 12:00:00). Minted coins for each cycle is not fix, it could be Maximum 2 power 52 microPAIs, but actually it is 1 percent of that number. As long as increasing the number of contributors (and in sequence hours of contribute) this percentage also grown until reaching 100 % of all 2 power 52 microPAIs .
The exact formula of “inflation rate” is situated in source code, to find it just look for WORLD_POPULATION.
In additional for each block there are another 4 blocks with same amount of minted coins which act as “anti-deflation reserve”. Which means the block can/will be released in case of share holders of that particular block, voted to release it and reserve-time-lock is exceeded. For all 4 blocks there are different time-lock. First block, is releasable after 1 year of minting related coinbase block, second after 3 years, third after 6 years and forth after 11 years.
The Halving period is 20 years. The numbers are intentionally big and periods are long to calming down and give hope to future to ALL PEOPLE in the world.
So as a response for question the max coin supply will be
(2 power 53) * 2 * 365 * 20 * 5 = 657525545596092400000 micro PAI = 657,525,545,596,092 PAI in next 1040 years. But real coin supply will be far less.
Since the data structure is DAG, Can the chain be forked without this being noticed?
Since the used structure is a DAG and not link-list, therefor in any given time for any machine we will have different graph state with different leaves. Therefore theoretically there will be maximum n forks in which n=number of nodes. But it is not important, because we always working on the blocks with the age older than 12 hours. Therefore the graph members which are older than 12 hours must be same for all nodes.
It would be nice if the network recorded the status of its DAG in the Bitcoin blockchain and vice versa.
The idea of using Bitcoin(or some other blockchains) as a proof of state for weaker chains and vice versa is good, and we can bind TWO chain together, but this also has a flaw. What if the cheater group starts to do same binding beforehand? I mean imagine the cheaters start to bind the corrupted chain parallel and put the Bitcoin hash in corrupted chain, eventually after some days they attack to network and claim their chain is the right one? How the nodes can determine which chain is true? They see both chains are recorded on Bitcoin chain and both are linked to Bitcoin blocks as well! The only solution is nodes stack. The nodes have to trust the majority of network on every block’s creationTime. That is, for every time span, the nodes will control “for this time range, what blocks are signed by majority, and registered in Bitcoin chain?”. So the nodes always choose the branch which signed by majority and recorded in Bitcoin chain. Indeed I like the idea of recording weaker chain (specially PoS-type chains) in stronger chains in one way. This adds up an external-entity to chain which is useful. By this kind of binding in one way we secure our chain will not re-organize graph, if the majority (with today’s shares) wants to change the history of graph.
Your second idea of binding n different pairs is more interesting and as you mentioned before “it is almost impossible to persuade all chains to defect”. It could be implement as a plugin on top of our software. In such a way we can add some auto-snapshoot-recorder that records our chain’s status in any given time(e.g every 12 hours) on another blockchain.
PoS is energy savvy, but still is biased in terms of making richer the rich and poorer the poor.
Agree, we need a mechanism to create more equality, and in other side we have human nature which always looks for more (either food, relation, money, power, etc…). That’s why I tried to remedy the system. We can not totally remove “money” and greed for hoarding power, but we can reining those.
First of all in imagine the only way to own stack is working for system. Although one can pay cheap fiat money to people to working for him and developing C omen software. And at the end he claims the job which they did and grab all shares. But it is different than he pays directly to me (or my company) and buy shares. Considering that the software is free(libre), in the end, the result of all efforts (either by spending money or by working directly) goes back to the people and common good. So our product (Comen software) is “common good”.
One of the important reasons that cause richer getting more rich is that they have the “ means of production ”, and now I can claim the Comen( imagine) software is the “means of productions” for entire people of the world. We start to develop the software itself and pay people for that. In next steps we need to translate the software and make it multi-lingual, later we need to create educational stuff and translate, and so on. By every single contribution the shares will be increase. It causes more democratic community. I am pretty sure the new stack holders are the best defenders of the system in every aspect. They will decide “ what to produce, how to produce, for whom to produce, and why ”. They will decide about real world and not only in cyberspace. There is a long essay about interaction between cyberspace and real world “ Redefining EXCHANGE RATES to an indication in DEMOCRACY TERM ” in Comen ecosystem . Please read it.
Another flaws of our current economy is banking s y stems (either governmental banking or commercial banking). I addressed these two problem by introduce a “ ”.
Another drawback of current economy is the “ Cantillon effect ” that I addressed by an steady and predictable money supply (like Bitcoin) and a well-designed wealth distribution (unlike Bitcoin) and an smart enhancement to add regulation on money supply (anti inflation and anti hyper deflation) . In such a way the money in a just distribution first arrives to the hand of system helpers and not government’s clan. I explained it partially in “ An alternative monetary and we a lth distribution model ”.
The system needs to high-speed internet be accessible everywhere, otherwise not works.
No, This solution need a normal (even slow) internet to work, although there are areas with no internet at all, system will not work for them. As we succeed in our mission we have to bring internet for poor, tyranny and dictatorship controlled area as well.
I s it possible to have a technology that adversaries can not shout it down, block or seize it?
Yes, It is possible and I already use it. As far as more people join to network and run their nodes or create their money, it will be even harder to decelerate it.
C an t he adversaries shout-down internet?
Of course they can shout down internet, but no government can shot-down internet forever. The cost of shouting down internet is too high to be affordable by any government. Even in this case there will be mesh-networks or offline solutions too. Although These two concept still are impractical but shouting down internet is impractical as well (at least in 90 percent of the countries).
Can t he adversaries cut electricity?
Of course they can cut, but I am not sure they seriously cut electricity and how long they can continue? Even in this case there will be generators as well. No one can continue without electricity. If you provide electricity for your refrigerator so you can use it for your laptop, and radio-wireless-mesh-network-equipment as well.
Can t he adversaries acquire nodes or key member persons through physical action or cyber-attacks.
Probably they can acquire some nodes through physical action or cyber-attacks, but it will be very high cost action. Since there will be thousands of backer-nodes and millions of mobile wallets in each country that are working perfectly decentralized. They may find the major shareholders or key persons in a society and try to bribe them or forced them to not participate or even eliminate them, but since establishing a new community costs zero, immediately new community will be emerged. And they can bring all coins and shares and entire society’s history(of course the valid history and shares) from old community to new one.
Indeed all community members already have entire information about society and software. These are essential features of blockchain technology where every body know everything . It is open public ledger. Actually in the Comen software, I already foreseen this kind of immigration, so I already equipped it with revocation of big shareholders or key members, and forking new community – all based on election surely. The community simply can re-organize entire structures, rules and members. At the end of the day brand new community has its members, ideologies and its new coined money with a change-rate by old-money. There is no single point of failure, unlike all revolutionary movements in history. That’s all. It is an unstoppable infrastructure for ALL.
Will t his technology will be vastly used by mass?
Yes, although right now it looks like a fancy idea that is not accessible by even 0.0003 % of world population yet, but having great economical incentives and/or ideological incentives accelerates learning and using it and expands the networks exponentially.
Will t hese currencies will be vastly used by mass and they will have real usability and applicability?
Yes, although in early days the community coins worth nothing, and you can do nothing except using it in community network to pay some network costs (e.g. posting to forums, or message sending, etc…). But time by time the community member can exchange coins between community members, in return of goods or services. Surly the community market range is too limited, thus they should invite more people to their community and convince them to accept their money in return of their goods or services. Maybe a community member pays 10 million coins to buy a real pizza! As it happened in history. Or the community member should change community’s money with maybe another community’s money to get different goods or services, and this exchanges prepare a wider range of goods and services. Right after the first exchanging a currency with something else the currency denominates the exchange-rate. Each single transaction remarks the exchange-rate. This is a recursive mechanism in which every transaction increases the value of money of one particular society or group and decrease the money of other group’s or a fiat currency. This mechanism by itself accelerate competitive aspect of currencies which leads all groups to expand their money’s usability and applicability, popularity . In order to increase their money’s value.
Can t hese currencies being used in tax evasion?
Taxation could be social contract, moral obligation, state-sanctioned, legal theft or not. It is up to you and your jurisdiction. Everything could be used legally or illegally as well as these currencies.
Can t hese currencies being used in criminal?
There is a severe paradoxical and philosophical issue in everything which is related to freedom. If freedom is granted to all, both good and bad actors will use new freedom in good or bad way, and if it is limited, both good and bad will be limited. As we have all experienced before, it is not exactly a linear equation. More freedom causes to accomplish “much more good acts” by good actors, and “less more bad acts” by bad actors, and more limitation cause to “much more limitation on good actors” in favor of “less limitation on bad actors”.
In overall more freedom, more good acts. Based on this fact, “Our mission is always to spread and extend freedom”.
On the other hand there is common sense, in which majority are good actors -otherwise we are already living in hell- and system must tolerate the malfunctions as well as normal function.
The survival key for such system is fair allocation. That is, the product (in our case freedom in all of its aspects, whether financial freedom or speech freedom) must be distributed as fairly as possible. It is the core value of software and this feature must be anticipated and implemented by design, in advance. That is exactly what I designed in the software, indeed “no matters how good are the intentions or behavior of the creators, founders, or early community”, since a corrupted community absolutely will fast fail in early stage and they will never have a chance to grow. As a result only “good behavior community” will survive. Therefore the system can partially “protect itself from criminal abuse”. Ref:”Redefining EXCHANGE RATES to an indication in DEMOCRACY TERM”
If a good and useful human community is to be built, it has to have a way to exclude bad actors. The software, built around hard anonymity as it is, has not.
The software intended to have both “hard anonymity” - indeed pseudo anonymous - and “reputation-based trustworthiness” simultaneously, since both “ privacy ” and “ trust ” are important and necessary for any modern society. A small portion of actors and transactions of these kind of systems will involve in maleficent. In my opinion, the reason for this defect is in the way of distributing wealth. I tried to reduce these side effects by well distributing the wealth and increasing the overall benefits of the system, and I still need help to improve it more and more.
The bandwidth shortcomings (TPS) and need to interact with real world, have forced cryptocurrencies users to reinvent (via exchanges) all the financial infrastructure they still believe they have freed themselves from.
By implementing a good design (DAG), the software has no limit in TPS. In addition because of the wealth distribution model of software, at the end of the day we do not need any exchanges at all. People will use native money directly in exchange of goods and services, and will do many of DeFi’s activities without the need for exchanges, brokers, fiduciary, credit funds, brokers, and bankers.
What features the Comen software has?
Up to now Comen has a complete protocol & web-interfaced desktop wallet to manage coins and send/receive coins to/from others. See the “ What type of transactions system support? ” for details.
Comen has a really distributed Flexible Name Service (FleNS), by that people can register a user name (e.g. Nakamoto, 2Bfree, or 胡 ). These usernames are controlled by user itself and absolutely can not be seized or filtered.
The registered names can be used as an address to send or receive encrypted and secured messages through iPGP (a user friendly implementation of PGP in which public keys are recorded on blockgraph).
By having this usernames, people can run their own unstoppable website, weblog, videolog or video channel or podcast.
The registered names can be used as an address to send or receive coins (through wallets communicating and generating account addresses without revealing which address belongs to which username).
Furthermore Comen has a bunch of hard-coded smart contracts which are handy in DeFi. See “ Does Comen support Smart Contracts? ” for details.
imagine has a basic polling system which is enough good to start, and in the next versions bring more option for polling and even ZKP voting.
In order to being a real decentralized system, imagine has a real distributed wiki. Either for imagine’s contents itself or any one who needs this feature (e.g. someone/wiki/page…).
imagine has a decentralized Demos (forum). Either for imagine discussions or who need this feature (e.g. demos/someone/someTitle).
And again to being a real distributed system, imagine also planned to have its own Distributed Version Control System. Since imagine accepts every type of document (transaction, contract, ballots, file, free-document …) in it’s graph for now the version-commits will be uploaded to graph as patch files and very soon we re-implementing a new fully fledged Version Control System; customized for distributed environments.
imagine is more than just money. It is a secure time-stamping ledger, payment rail, smart contract platform, DeFi and more.
imagine accepts any type of document in its DAG and as a node developers/companies can write some plugins that uses core functionality. In such case there will be unlimited creativity on top of a secure decentralized ecosystem.
Does Comen support Smart Contracts?
Yes and No; Well, t he smart money concept is an undeniable feature for any cryptocurrency. Although it is clear the most functionality of smart contracts is not too smart and it is not even a contract. Mostly they are about if x signed something and y not signed or z signed after a certain time then some money from j will go to k and so on…
OK, almost all of these functionalities are implemented and embedded in Comen’s multi-signature feature. So we have all, even need to name it smart contract!
In particular, the imagine has more powerful feature which no other cryptocurrencies has! And it is the ability of having steady fixed (almost), guaranteed, long term income. Having this 7 years income give you the power of use it as a guaranty for loan & lending. You can buy some good and services and in return sign an “Generic Smart Contract” to schedule the paybacks (installment purchases). And after putting this document on chain, your cyclic income will be cut in order to doing repay backs. I emphasis on the word “Generic”, because the smart contract concept in imagine is a kind of hard coded program which is enough Generic to be used by more and more people. In fact they are not personalize-able at all. They are hard coded features which can be parameterized to fit to user’s need. I think this is an efficient and good approach to solve the real-world-problem by some real solution. Having fancy features is good but not necessarily solves the real-world-problems.
The main slogan in smart contract concept in Comen is “if there is a generic problem, write the parametric-able generic code and put it in core code”. It comes form the motto for this approach is “If something is enough good for one business, it will be good for all people, so let make it for all”. In such a way one time prepare one feature for ALL users and serve ALL users. So I hard coded some real handy tools in order to be used by ALL, and it doesn’t mean we will not add more hard coded pieces in future.
BTW if some one needs these fancy features it is easily feasible to collateral Comen coins in an Ethereum contract - or any other sophisticated platform - and do something over there and after a certain situation return back to imagine chain and redeems the coins.
It is good but short comes in most of business which the model is pull . Say you want to be a subscriber of an online magazine or a video channel. How can you do it with bitcoin where you have to pay monthly to the company and company need this guaranty of your payment in order to service you a cheaper cost service? Having this regular income empowers you to sign a “Generic Contract” to pay x coins on each cycle to the company. And now the company will get payed automatically for each cycle.
And as I mentioned before, imagine has an special transaction in which the signature until a certain time in future can not be considered as a valid signature. Telling that means if you sign the subscription contract, you can not cancel it before x months (or days or even hours) in features. Means you can subscribe a service for a couple of hours! Isn’t amazing?
What type of transactions system support?
Software supports native multi-signature addresses (m of n Bech32), time lock for income or/and outgoing coins.
In addition, c oin owners can even define who and how (in terms of who could be the receiver and how much is daily/weekly, … spend limits) spend the coins for a certain address (say parents for child accounts or CEO for company’s accountant) . These all prepare an immense flexibility and usability to Comen ’s payment system.
Since imagine is the only blockgraph with a predictable and steady income (for next coming 7 years) it is most powerful ecosystem for loaning, lending, pledge, crowd funding, installment purchase and “ pull model ” business (any kind of regular and automated payment for subscription a service). The wealth distribution mechanism of imagine provides a kind of real “credit“ for shareholders. This credit is real definition of credit and it is not like the fractional-reserve definition of credit. The credit in imagine means, you have steady unconditional income for next 7 years, despite the all changes in world (sanction, stagnation, rescission, pandemic). It works even better than all insurance you can buy. You do not have to cut a part of your income in advanced, for an uncertain future, and there is no condition to get your save back. It works perfectly in case of losing job or even passing away. It just needed to save private keys in a safe for the heirs.
In addition, b ecause of the way Comen designed, it is quite feasible having different type of transactions ( T ransparent, confidential, M imblewimble, zk-snark, minimal format, IoT, RGB, BitcoinLike, …) in one Blockchain . So, in case of quantum computer threat, overtime system can immigrate to new transaction classes smoothly.
What are Comen solution s for privacy of transactions and coins in traceability sense ?
For now, the Comen transactions are pseudo anonymous (like vanilla Bitcoin), But a s I mentioned before, the way software is designed allows to have various type of transactions on same blockchain. That is, users can accept a money from normal transaction and transfer it by MimbleWimble transaction and then transfer new coins to another coin swap transaction and at the end give that coins to a coin join/mixer and get new coins. These sequence can be repeated multiple time to strengthen more privacy, and make transactions untraceable.
W ill it be really easy to create a new cryptocurrency?
Yes, it is. A middle-skilled software developer can configure software and establish a new network (society, community or simple a new group) in couple of hours.
Having thousands of different currencies will raise arbitrage and all kinds of other schemes of speculation and manipulation.
Arbitrage and all kinds of other schemes of speculation and manipulation are not welcomed, but we have to deal with. In beginning absolutely will be chaos and starts a curve which at the end, there will be some stable currencies supporting by matured community. The survived currencies have very low fluctuate (unlike Bitcoin and all other altcoins) and will be used for some real commodity exchange and not only speculating. Remember that we are talking about a community that governs their own money and proper rules in order to expand community members , rise up community reputation and strengthen their money .
Having thousands of different currencies will not crash modern system of production and exchange and organizations.
No, won’t. Indeed all of these currencies cannot grow enough to affect the mainstream economy. A bunch of real powerful monies which are supported by major ideologies will participate in most part of market. It is the instant democracy. People will support the community that covers more of their opinions so will support that money. I would wonder if we have more than ten really distinct-able different ideology or school of thought. Of course there will be tons of small communities currencies and proper exchange rates. BTW right now for making a just simple pen, we must manage materials and means of production and labor, allocation, and final shop, involving ten or more different countries and different currencies. we already solved these kind of problem. There is a software that calculates the final price of a pen, and for a software calculating the exchange-rate for 10 or 100 or 1000 different currencies isn’t too different.
The market-capital of new monies will not be enough big to influence the real world’s market.
No, since I am not talking about tomorrow or even next years. As currencies prove themselves as a unit of accounting, medium of exchange and real store of value, their market caps will be grown. There will be two options only. One particular money can be raise up or collapse and fail. It is up to community acting and governance rules and wealth distribution/redistribution policies. Also knowing the fact that some of these currencies can be inflationary and some other deflationary. So people hold some type of currencies and spend another type of currencies. By each transaction the market cap of each currency changes. Finally there will be some good money having bigger portion of market cap, even bigger than fiat currencies.
will get around the power and centrality of the largest economic units - the financial and industrial capitals?
In long run, yes. Although I am not planing to postpone every benefit of the software, and promise you some day in future (maybe after century) we will make the paradise on earth. let’s come back to reality. Our pillars in this software are community and its money. To be clear, the people of community try to earn their community’s money, so preferably accept their money. If we accept this assumption -That seems to be the case, Otherwise society would never have been formed-, society members use their money inside society as far as possible. Imagine if a general member of society can make 10 percent of its monthly turnover inside the society. It is a huge improvement in quality of life of society members. They can have their “ mutual banks ” and all benefits. They can have fund and credit inside the society, running by whatever Rules they want . They can take advantage of all “ financial sovereignty “. As they internal turnovers increase they get more benefit. In hundred percent internally turnover they absolutely do not need any “outsider financial institutes”.
And about " industrial capitals ", it is another story for another day. There are practical solutions for that as well, and I’ll write a separate post for that.
Some of ideologies essentially do not believed in money at all. So this approach makes no sense to them.
No, this software will help them as well. Money simply can be considered as a contract like I Owe You. So we need some type of voucher/receipt/bill that represents this liability between two entities, in a kind of barter system or mutualism or reciprocity. All are Ok, just rename the currency and name it whatever you like. You do something and earn an special type of token denotes and proves you did that. Later you can spend this token in exchange of special goods or services. There are unlimited token types for unlimited goods or services. You will get payed back exactly by what you delivered before or something almost equal to what you did before. It is up to you both (seller & buyer).
Some may even have problem with IOU concept and believed in the concept of money-less, gift-economy (one where people give and receive freely instead of expecting for compensation). That is ok too. In this society they can modify software’s money concept to fit their own definition as well, to manage “access to necessity of life” for every person of society, and also other sort of automation.
The software is designed to be highly flexible to support all needs of all groups of people.
What is the software license?
Software is free(libre) and will be free(libre). The source code is open and the license for now is GPL. S ince we are creating a software that in entire WORLDWIDE, EVERY BODY with NO CONDITION must be able to take benefit, maybe we need even more free licenses. It is an open issue.
Is software a fork?
No, the software idea is genuine and it is developed from scratch.