📜 ⬆️ ⬇️

KriyaMoney. Part 4. Problems and solutions

KriyaMoney. Part 1. Introduction
KriyaMoney. Part 2. Idea
KriyaMoney. Part 3. Theory
KriyaMoney. Part 4. Problems and solutions
KriyaMoney. Part 5. Software implementation



A warning!
In this article, as in the previous one, there are a lot of formulas and almost no pictures. So the article will be interesting not for everyone.

Content


Project Evaluation Problem
- Communities
- Formulas
- Invites
The problem of collusion with the aim of cheating
The problem of autonomous functioning of an isolated subnet
The problem of offline payments
The problem of "swelling" of the database
The problem of "bad" authors
The problem of anonymity / non-anonymity
Additional features
Example
Once again about the values
UI Design
Links
')

Project Evaluation Problem


Those who tried to understand the formulas of the previous part could understand that those formulas are not applicable to create a workable system. The main cause of the problem is that people, in general , make an assessment not on the basis of their own conclusions, but based on the opinion of the majority. This is the effect of the crowd and there is no getting away from it. Such is the nature of man. With an open vote, it is impossible to force everyone to rate objectively. Most, anyway, will be based on the authority of their acquaintance / friend / expert, or because of the fear that his assessment, which is different from others, will be seen and will be “revenged”, etc.

By the way, on Habré, this effect is solved by secret ballot. That is, there is no way to track down who exactly is minus karma (if you are not an administrator) and, accordingly, it is not known to whom to “revenge”. Sometimes in discussions there were skirmishes with indignations about "merged karma" with attempts to find out who did it and why, etc. But such a showdown does not bring any result. Apparently, therefore, the last time such perturbations appear less and less (or I just do not notice them).

However, if the system is conceived as decentralized, then the option of secret voting is not applicable. So everyone will have to evaluate with all the responsibility attached. And it is psychologically difficult and not everyone will risk setting a grade different from the rest. In addition, there is such a problem as an inadequate assessment of projects by illiterate users. That is, not all users want to understand the intricacies of project implementation problems and therefore evaluate the project very subjectively. Therefore, it is necessary to motivate users to set objective assessments based on their own informed opinion.

To solve this problem, we can suggest introducing the concept of communities within which users can evaluate projects freely, as well as those users who participated in the project (invested in the project) will be able to make assessments. The opinion of other users should also be taken into account, not as significantly as the opinion of experts and investors. In this case, the interaction model becomes more complicated and the calculation formulas become more complicated. Therefore, I propose to highlight the following groups of "voters":
1) depositors;
2) experts;
3) other users.

By experts are meant members of the local thematic community whose member is the author of the project being assessed. I will describe in more detail below.

Communities

There are many people and they are all different. There is no single value for everyone. Each person and each individual community has its own set of values. For some, the value is the knowledge of the device of the universe, for others the value is to drink beer on the bench.

Therefore, it is necessary to group projects into separate thematic groups that will exist in parallel. And users, similarly, to unite in communities. To determine the value of a particular project in a particular group, experts are needed on the subject of this project. Members of the local community will act as experts on this topic.

Kriya local project depends on the value for society as a whole. Therefore, a Kriya project should depend on the project’s value for the local community, and the value of the specific community for other communities.

Probably each particular thematic community will have its value to society as a whole. And, actually, the work that was done in a particular community will have some kind of “significance” for others. But for the convenience of using the system, some unified measure is needed. A single measure is still Kriya. Therefore, the accrual of Kriya needs to be made both with regard to the “significance” of work for society and taking into account the “significance” of work for the community. On the value of Kriya will depend on the issue.

When participants positively evaluate the activity and are ready to invest their money, this means that the society values ​​this activity. It is obvious that for all the others the project will not be “significant” and, accordingly, they will not invest their money in this project.

The following user groups influence the determination of project significance:
1) investors - those who invested their money in the project;
2) experts - those who are competent enough;
3) all the rest.

Investors are those users who invest in the project. To invest in a project, you don’t need to create your own projects, somehow earning emissions, etc., but you only need to have some positive amount of money in your account. In this case, they can be bought on the exchange or from another user of the system. Therefore, the investor can be any person.

By experts we mean members of the local community. We assume that users enter the community in order to create projects with the theme of this community. And therefore are professionals. This means that they will be able to act as experts. That is, they can reliably estimate the technical part of the project implementation. Investors of the project estimate from the point of view of the consumer, and experts estimate from the technical point of view (its complexity, quality, reliability).

All the others, watching from the sidelines, can assess the thematic community of the project as a whole and each project in particular. If experts vote positively for a bad project, this will lead to a loss of public interest in such a community of “experts”. Thus, experts will need to give an adequate and reasoned assessment to maintain the weight of the community at the highest possible level.

Formulas

In connection with all written above, it is required to redefine the formulas described in the third part.

The formula for changing the user’s Artha after voting is completed:
+= (1)

Equity Formula

The formula for issuing new money (with a positive Kriya) will be calculated as follows:
= * (2)

I repeat that new money of surplus value is issued once for each project. With zero or negative Kriya emissions, of course, is not performed (equal to zero).

The formula for calculating the emission factor for the previous billing period (for example, for the previous 65536 cycles):
= / (3)
Where
SrEmSaEdCriiSaN MultiplePeriods - Average emissions per unit of Kriya over the last several periods
SrEmSaEdCryaZaCalcifiedPeriod - Average emission per Kriya unit for the billing period

= / (3a)
Where
TotalVsehDeneg - The amount of all money emitted during these last few periods.

= / 65536 (3b)
Where
TotalVsehDerlegPeroda - The amount of all money emitted during the billing period

I repeat that in the initial period of the existence of the system, the formula for calculating the Coemission will not work. Therefore, up to the moment of 65,536 cycles, the CoefEmission must be either taken as a constant value (constant) equal, for example, to 1.00. Alternatively, calculate the average emission values.

The emission factor will take into account the total increase (or fall) and will adjust the total emission of the system. This will add stability to the system as a whole. If the system emission has become very large, then this coefficient will limit emissions and vice versa. In addition, in fact, this ratio shows the difficulty of obtaining new money.

The number of periods for calculating the emission factor should be taken not very large and not very small. I tried to simulate the situation of growth of total Kriya in the system (when many good projects are created), the situation of falling, the situation of stagnation (when there are very few projects) and the situation of rapid growth. Considered the same scenario, but with a different number of periods for calculating the value of SrAmEdKriyAn a few Periods (2 periods, 4 periods and 8 periods). The results of the calculations can be seen in the graphs.



The emission factor somewhat smoothes the overall emission. And during periods of stagnation, the emission factor will rise quite significantly, which, in theory, should encourage authors to create new projects. And, as soon as the number of projects starts to grow (the total Kriya system begins to increase per cycle), the emission factor is automatically recalculated.

In addition, the following situation should be considered. If one of the projects is with a very large Kriya, compared to other projects, this will lead to a bias in emissions in favor of this one project. And then there will be an opportunity for monopoly. To prevent such a distortion, I propose to limit the maximum amount of emissions for one project, for example, as 1/16 of the average value of emissions over the last several periods.

Formula Kriya Project

Kriya's accruals will depend on the coefficients of local thematic communities. Therefore, the formula will become more complex and, therefore, in the Kriy definition formula, it is worth replacing the Project Assessment parameter with Project Significance. Where by “significance” is meant the coefficient of the actual value of this project for society as a whole.

The formula for determining the value of Kriya is:
= * (4)

The formula for determining the significance of the project:
= * (5)
Where
Project Evaluation is an integral formula that depends on the opinion of investors, on the opinion of experts and on the opinion of society as a whole.
The value of the Community is the value of the community in which the author is for society as a whole. See below for details.

Project Evaluation Formula

I propose the following formula for determining the value of the project evaluation:
= ( + ) / 2 + (6)

In this case, most likely the estimate from the society will have a value close to zero and will have little effect on the calculation of Kriya. However, it is probably necessary to provide for depositors 'veto, experts' veto, and society’s veto. (Thanks for the IrQ idea.)
Veto (from lat. Veto - prohibit) - the right, meaning the authority of a person or group of persons to unilaterally block the adoption of a decision.

By veto, here, I mean a ban on the addition of positive Kriya to the author and the accrual of emission. For example, if a quarter of all investors or a quarter of all experts or a quarter of all voted users of the system vote against the project, then block the right to issue this project. At the same time, those who did not vote at all can be ignored.

Project evaluation from contributors depends on the assessment and the “weight” of each contributor. The weight of the investor is determined by the amount of money that he invested in the project. The assessment of investors is defined as the average rating of all investors in accordance with the “weight” of their contribution:

The formula for determining the value of the assessment from investors will be:
= (*) / (7)

Investors, in theory, should get the result of the invested money and evaluate this result. If the investor was satisfied, then votes +1, if not satisfied, then votes -1, by default 0.

The assessment of the expert community depends on the assessment and on the “weight” of each expert. The weight of the expert (the weight of the expert opinion) depends on his Kriya in the given community. While I am considering the case that each user consists of only one community. But, in theory (according to the model), each user can simultaneously belong to several communities. Assessment of experts is defined as the average rating of all members of the community in accordance with their “weight” in the community.

The evaluation formula from the experts will be as follows:
= (*) / (8)
Where
KriyaCommunity - Kriya sum of all experts in the community

At the same time, on the one hand, it is always profitable for experts to vote positively for the project, since this leads to an increase in Kriya (and possible emission) by the author of the project. But on the other hand, this leads to a decrease in their relative weight within the community. But if community members will always vote only positively, then this may affect the interest of society as a whole to a particular thematic community.

The evaluation formula from society as a whole will be:
= (*) / (9)
Where
Rating is the user's “voice” (+1, 0 or -1)
Kriya is the total Kriya of a user (the Kriya sum of all his projects)
TotalAllCrimeasystems - the sum of all Kriya of all projects of all users of the system

Community significance formula

The weight of the significance of a community (the value of a local thematic community) is defined as the share of interest of the whole society to a specific topic:
= / (10a)

Or, alternatively, to determine the significance of the community, we can offer the following formula:
= / ( * ) (10b)
Where
Ratings - the sum of ratings from users given to a specific community in question.

Each user can rate their own rating for the community. The evaluation here refers to some value from negative (-1) to positive (+1) and defaults to neutral (0). Each user can change this value as many times as necessary. The calculation will take into account only the current value of the assessment of each user. Thus, user ratings will reflect the attitude of this user to certain thematic communities.

In addition, each individual user has a “weight” in society and in the community.

The weight of each user in the community is calculated as follows:
= / (11)
Where
KriyaCommunities - Kriya sum of all community members

I remind you, if a user is in several communities, then only Kriya of this community is taken into account. But we are not considering this yet.

The weight of a user in a society is calculated as follows:
= * (12a)
or
= / (12b)

Invites

Among other things, to reduce the likelihood of fraud (and to increase the prestige of each community), it is necessary to make it possible to add new members to the community only by invite. It is assumed that invites will be formed by the authors of projects with positive Kriya. When a certain Kriya value is reached, it will be possible to invite a new user.

In the event that a Kria user drops below zero, there will be no “reset of karma” (Reset). A person will have to re-seek out the one who agrees to give him an invite. Naturally, information about the invites, as well as all other operations in the system, will be available to everyone. So it will be possible to unequivocally determine who and to whom issued an invite. If the ward creates bad projects, it will indirectly affect who issued the invite.

The problem of collusion with the aim of cheating


On good, all the users of the system minus the project will carry out the wrapping of fraudulent dummy projects. That is, a society, ideally, should itself determine which project is good and which is bad. However, in order for this mechanism to work in reality, the concepts of “community”, “experts”, “contributors” and, accordingly, “community weight”, “expert weight”, and “contributor weight” are required. In addition, it is necessary to establish minimum and maximum terms for fundraising and project implementation, and it is necessary to establish a period from the end of voting to the date of emission.

The minimum and maximum time for raising funds should be limited for ease of use. For example, the minimum time to raise funds is set to 256 cycles (65536 seconds ~ 18 hours), and the maximum 42 * 256 cycles (2752512 seconds ~ 1 month).

The time from the end of the voting to the moment of issue is needed so that users have time to change their assessment to the expert community. Since Kriya and emission depend both on the evaluation of experts, their “weight”, then if experts did not adequately assess (overestimate) the result of the project, the society as a whole will be able to “correct” this injustice by changing (down) “ weight "community of experts. For example, the period from the end of voting to the time of issue can be set to 65536 cycles (~ 194 days). This should encourage authors to do their job as well as possible.

The problem of autonomous functioning of an isolated subnet


When isolating a part of the network within the local area, the possibility of conducting transactions (with the subsequent merging of data from different subnets) remains. And even you can lay the possibility of parallel emission in local subnets, followed by merging and recalculation. This can be realized if the money for projects is not emitted immediately, but after a certain period of time during which it is possible to merge with the recalculation of the emitted funds for each specific project. For example, it is possible to issue after the end of voting after 16 * 256 cycles (which corresponds to an interval of about 12 days). During this time, for sure, it will be possible to restore the connection between the individual subnets and synchronize.

Even in the case of complete blocking of any particular country from the rest of the world, in 12 days you can transfer data on flash drives, using a drone, etc. Such a payment system, theoretically, will even be able to work not only within the limits of the planet Earth, but also on other neighboring planets.

The truth remains the probability of the simultaneous transfer of money from one wallet in different subnets, which will cause a collision during synchronization (merger). So that the size of such double simultaneous payments in different subnets is not very large, as an option, you can suggest to assign different confirmation times for different transaction amounts. For example, when transferring amounts up to 1000 units, accept the confirmation period for block creation (256 seconds), when transferring amounts up to 1,000,000 units, accept confirmation period of 16 cycles (~ 1 hour), and when transferring amounts up to 1,000,000,000 units, accept confirmation period of 256 cycles (~ 18 hours) ), when transferring an amount of more than 1,000,000,000 units, accept a confirmation period of 16 * 256 cycles (~ 12 days). And for “micropayments”, you can not wait for confirmation of the transaction in the block, but it is enough to request confirmation from several nearby nodes. With modern Internet speeds, such a survey will probably take no more than a few seconds. But above all this will need to think more.

The problem of offline payments


In the comments to the previous part there was a question about the possibility of payment offline. I replied that this is not provided for in the system. However, we can offer the following technology of conditionally offline electronic money. To realize payment, without access to your “wallet”, I propose to introduce the concept of “coin”. “Coin” here means some file that is created by the owner of the wallet. Each "coin" is issued with a certain denomination. At the time of the creation of this coin, a special transaction is created in the system - the transfer of money from the user to create a "coin". From the user's account this money is written off. During the creation of the coin, a pair of Public Key + Secret Key will be generated. The transaction will contain the public key number, and the “coin” file will contain the secret key.

Payment conditionally offline will occur as follows:
Stages of offline payment:
1) The payer (suppose the buyer) sends the file "coins" to the seller offline.
2) The seller receives the file and looks for a record of the transaction to create this coin.
3) If such a transaction exists, the seller further carries out a check - seeking a transaction for the destruction of a coin.
4) If the transaction of destruction was not, then all is well and such a coin can be accepted for payment.
Stages requiring online connection:
5) Next, the coin holder (the seller) must "de-cash" the received coin. To do this, he creates a special transaction in which he indicates which coin he will cash out and indicates the secret key of this coin.

* I could not find a better word, except for “de-cash”. Can you please tell me the appropriate name?

Thus, other users of the system can make sure that the coin is really located in the one who “denies her”. The transaction of destruction of the coin is allowed only once. If the fraudulent buyer could pay off one coin two times, then only the seller who first creates a coin destruction transaction will receive the money.

To reduce the possibility of fraud it is necessary to limit the denomination of one coin. In addition, in order to not create coins in huge quantities, you must enter a certain commission for the creation of a coin (for example, when you create a coin with a nominal value of 100.00 units, you will need to create a transaction for 100.01 units of money). And it is also necessary to establish the maximum period from the moment of the creation of the coin to the moment of its destruction. If the coin is not destroyed within a specified period of time (a corresponding transaction is not created), then such a coin will be considered lost and no money will be returned for it.

The problem of "swelling" of the database


The base of transactions, projects and their evaluations will increase very quickly. To minimize the load, you can put in the system the payment for each transaction and each vote (provide the lowest cost that can be deducted during a transaction). For example, the sender transmits 1000.01 units, and the recipient will receive only 1000.00 units of money. This decision acts as a "tax" for ensuring the storage of transactions by other participants (with the liquidation of one unit of money, the cost of the remaining ones increases slightly).

By the way, probably instead of keeping each client on his computer for such a system, it would be much easier and more profitable to give his “money” to trust management and work with the system through Web forms. As it is now practiced with Bitcoin.

In addition, the system can provide for the re-creation of the database after certain periods of time. In this case, only current transactions will be copied to the new database, while all intermediate transactions will remain in the archive database. After checking and confirming the correctness of new transactions, the data of the new database will be considered as reliable. And for newly logged in users do not have to download the history of all transactions conducted over the entire existence of the system.

The problem of "bad" authors


In order to distinguish bad authors from good authors, everyone will have their own “rating” in the form of Kriya value, which shows how well the previous projects of this author were implemented.To filter out bad authors, you can prohibit the creation of new projects with a negative Kriya value.

In this case, a person will be able to re-register in the system, join a particular community by somehow getting an invite. And, thus, will be able to start a career "from scratch."

The problem of anonymity / non-anonymity


Each system user can remain anonymous if he does not disclose his personal data and uses I2P, etc. data channels. In any case, finding out the exact amount of money from this or that user will be quite difficult, because each transaction creates new key pairs (public and secret) - just as it is implemented in the Bitcoin system. That is, in fact, as such, the wallet with a single account does not exist for the user. Instead, the wallet stores only information about transactions whose hashes have been generated for this user and which he can dispose of. In this case, each person may have several wallets. In this case, to determine how much money there is in the presence of a particular person becomes extremely difficult.

Additional features


The system can be used not only for making payments and creating crowd projects. But you can use such a system to assess the value of OpenSource projects, as well as for freelancing projects.

To assess the value of open source projects I propose the following. For an OpenSource project, create a project with a maximum fundraising period, with a minimum amount of input to the project and with zero project execution time. In this way, contributors will implement the Donate project. After the fundraising is completed, the project evaluation stage will immediately begin. And according to the results of the assessment, the project author will be charged Kriya and emissions (with a positive Kriya value). After completion of this project, if desired, the author of the OpenSource project can create the next fundraising project.

To implement freelance projects, you can offer the following scheme.
1) The customer creates the task and looks for the Contractor on any freelance site.
2) Further, the Contractor creates a project in the system, where it clearly states the TK, cost, etc.
3) After the project is created, the Customer pays for it in full.
4) Next comes the project implementation phase.
5) According to the results of the work, this project is assessed by the Customer, as well as by the experts and the society as a whole.
6) After that, Kriya is accrued and, if the project is rated positively, then an emission is created in favor of the Contractor.

It describes the work on 100% prepayment. If the Contractor does not perform the work or does it not in a quality manner, then he will pay with his Kriya level. In addition, the entire project history is available in the system (as a portfolio). Therefore, even if the Contractor’s Kriya is positive, but the story is spoiled, then such a Contractor will no longer be credible.

Example


Suppose User0 successfully worked on a draft program for smartphones for 300 units of money. At the same time, many people who were not connected with this topic were interested in seeing the result - this is the value of society towards the activities of the local community. However, some decide to invest in the project.

Suppose there are three communities: Creators of the Programs for Smartphones (1), Creators of Stools (2), Creators of Music Products (3).
User0 develops as a member of the Creators of the Smartphone community.

Suppose there are six more users (each of them is in his community) with the following Kriya:
User11 - Community of Creators of Programs For Smartphones (1)
User 12 - Community of Creators of Programs For Smartphones (1)
Polzovatel13 - SoobschestvoSozdateleyProgrammDlyaSmartfonov (1)
Polzovatel21 - SoobschestvoSozdateleyMuzykalnyhProizvedeny (2)
Polzovatel22 - SoobschestvoSozdateleyMuzykalnyhProizvedeny (2)
Polzovatel23 - SoobschestvoSozdateleyMuzykalnyhProizvedeny (2)
Polzovatel31 - SoobschestvoSozdateleyTaburetok (3)
Polzovatel32 - SoobschestvoSozdateleyTaburetok (3)
Polzovatel33 - SoobschestvoSozdateleyTaburetok (3)

Assume users such values Kriyaa:
KriyaPolzovatelya11 1000
KriyaPolzovatelya12 2000
KriyaPolzovatelya13 3000
KriyaPolzov telya21 4000
KriyaPolzovatelya22 5000
KriyaPolzovatelya23 6000
KriyaPolzovatelya31 7000
32 8000
33 9000

( ), . , .

:
= 1000 + 2000 + 3000 = 6000
= 4000 + 5000 + 6000 = 15000
= 7000 + 8000 + 9000 = 24000

:
11 = 1000 / 6000 = 0.167
12 = 2000 / 6000 = 0.333
13 = 3000 / 6000 = 0.500
21 = 4000 / 15000 = 0.267
22 = 5000 / 15000 = 0.333
23 = 6000 / 15000 = 0.400
31 = 7000 / 24000 = 0.292
32 = 8000 / 24000 = 0.333
33 = 9000 / 24000 = 0.375

, :
0 — 90
11 — 60
12 — 50
21 — 40
22 — 30
31 — 20
32 — 10
= 300

As you can see, User0 invests its own funds in its own project. It is not prohibited.

Let the contributors rate the creation of a program for a smartphone like this:
User11 +1
User12 -1
User21 +1
User22 0
User31 +1
User32 -1

User13, User23 and User33 were not invested in the project and do not participate in the vote. And User0, of course, also does not participate in the voting.

Then, for our example, the assessment of contributors will be the following value ( formula 7 ):
Evaluation of Depositors = (+ 1 * 60 -1 * 50 + 1 * 40 + 0 * 30 + 1 * 20 -1 * 10) / 300 = +0.20

( ) :
11 +1
12 -1
13 +1

, ( 8 ):
= (+1*0.167 -1*0.333 +1*0.500) / 3 = +0,33

, , :
23 +1
33 -1

( 9 ) ( , , / ):
Community Assessment = (+ 1 * 1000 -1 * 2000 + 1 * 3000 + 1 * 4000 + 0 * 5000 + 1 * 6000 + 1 * 7000 -1 * 8000 -1 * 9000) / 45000 = +0.13

Then, the project score for of our example will be ( formula 6 ):
Project Evaluation = (+0.20 +0.33) / 2 +0.13 = +0.40

Suppose the weight of the community Creators of the Program for Smartphones is 0.300

Then the significance of the project is ( Formula 5 ): Project
Importance = + 0.40 * 0.300 = +0.120

Project Value (KriyaProject) will be as follows:
KriyaProject = + 0.120 * 300 = +36> 0 => Emission

Suppose the emission factor is currently equal to:
Emission ratio = 1.1

Then the issue of new money will be (fractional values ​​are discarded):
Emission = 1.1 * 36 = 39 units of money

Once again about the values


In addition to everything written above, I want to say again that the value is determined by the willingness of other people to invest in the project of their interest. And the interest in the project depends on the reliability of the author, the reliability of the community in which the author is and on the amount requested. At the same time, when paying, each person weights the cost which the author of the project puts up with the payment that the person earned.

For example, if someone created a project to inflate balloons for 1000 units of money, and I used to make a program for 2000 units of money for a month, then I definitely won’t invest in ballooning for such a cost.

UI Design


At the end of the article I would like to give a version of the UI of the future program. Please do not judge strictly.



Links


A good article with the statistics of the success of the “people's folds”:
And again, crowdfunding: today, in an American way,


PS I would like to determine how much the proposed idea is interesting for the Habrasoobschestvu. To this end, I propose a more extensive vote than simply marking +1 or -1.

Source: https://habr.com/ru/post/179867/


All Articles