Repository navigation
Expand file tree
/
Copy path4, economy
More file actions
123 lines (104 loc) · 7.05 KB
/
Copy path4, economy
File metadata and controls
123 lines (104 loc) · 7.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
in decentralized transaction systems, we have a P2P network where all nodes store the same ledger,
which can be extended based on permissionless consensus between nodes
distributed ledgers are authenticated by mass collaboration, powered by collective self'interests
appropriate incentives that will continue to encourage honest participation in the network,
is a key component of the consensus protocol
anyone can participate in consensus,
though one’s voting power is typically proportional to its possession of network resources,
such as computation power, token wealth, storage space, etc
see "a survey of distributed consensus protocols for blockchain networks":
"https://arxiv.org/pdf/1904.04098.pdf"
"https://minepi.com/white-paper/"
so in decentralized transaction systems:
, every full node has a copy of the ledger (an always growing database)
typical blockchains with their currently limited number of users, are hundreds of gigabytes
now just imagine that, expanded on a global scale
also note that, full nodes are necessary if you want private and trustless transactions
using light nodes means we have to trust miners; how is that better than trusting banks
, transactions are slow
, the system is completely isolated from external world
we cannot import external money and assets to the system
a necessary feature, if we really want to replace current monetary system
decentralized internet is already implemented by GNUnet, but no one is talking about it
compare it with the hype around decentralized transaction systems, aka blockchains or distributed ledgers,
which are inefficient and do not scale;
it's clear that the motivation behind blockchains is not to replace the current corrupted monetary system,
because it's just not capable to do that, by design
its only purpose is to create a side system for criminal activities
"http://my.pages.de/illegalblockchains"
= trustless resilient transaction systems
an ideal transaction system would be trustless, and avoids having a single point of failure
this doesn't necessarily mean that we have to completely decentralize everything
transactions intrinsically need some level of centralization
trying to decentralize it by force, based on an ideology, leads to hideous creatures like Bitcoin
we need special nodes (let's call them IO nodes):
, to import assets from external world
, to prevent double spending, without the need for a complicated consensus mechanism, hurting efficiency and scalability
it's not required to trust the IO nodes:
, transactions are signed by IO nodes, and any violation can be reported
, total sum of the ledger can easily be checked
to prevent a single point of failure, there are multiple IO nodes
actually, even if all IO nodes fail, the entire ledger can still be reconstructed
because as is explained in the following, each person keeps its own tokens signed by IO nodes
there are two ways to implement a ledger:
, create accounts that store the history of transactions
, create tokens that store the history of owners
the token method has these advantages:
, the total generated tokens can be checked without revealing the token contents
, the owner of a token can reveal the content of a token (which is necessary for reporting violation of IO nodes),
without revealing the total value of its account
tokens contain two fields:
, token type: determining the kind of asset, or in case of money, its value
, serial number (for money tokens), or an identifier encoding the physical aspects of an asset
token history file: a file with the token as its name, containing the history of the token (eg for a year)
each line has three parts separated by space:
, timestamp
, the public key of current owner
, signature made by the private key corresponding to the public key in the previous line
and in the case of the first line, the signature made by the IO node
IO nodes can't make fake tokens, or double spend a token, without being detected
they can create money in a determined range of serial numbers (growing with inflation)
also violations made by IO nodes (double spending, refusing valid transactions), will be reported
those nodes then can be removed from next release of GNUnet
receivers of a token can search GNUnet (using the token as a keyword) for violations
this is why we don't need a blockchain; blockchains are necessary only on censorable networks
IO nodes do not have any power, they are just there to prevent double spending
you own your tokens signed off by IO nodes and all the previous owners
identities capable to have tokens, must be related to real persons
otherwise, criminals can force people (by kidnapping, violence ...) to send their money/assets to anonymous accounts
one can always have different identities hidden from others, but identifiable by IO nodes
each person has:
, one identity key for signing with her real identity
, multiple semi'anonymous keys whose correspondance with the identity key is only known by IO nodes
transaction request
, timestamp
, list of provided tokens (plus a request for changes if needed)
, list of requested asset tokens, or the value requested in exchange, or a contract
, address of the receiver
first a transaction request is sent from sender to the receiver and all IO nodes
then the receiver sends a compatible answer to IO nodes
IO nodes sign the request and answer, and send it back to the sender and receiver
sender and receiver sign off their tokens and send them to the IO nodes
IO nodes send the tokens to their new owners
if any IO node receives the signed off tokens, but does not send them back to their new owners,
they can be reported using the transaction request/answer which has their signature
taxes, i think, are out of the scope of transaction systems
they must be evaluated according to the kind of job and a lot of other factors (like environmental impact)
nonetheless, because of IO nodes, some kind of surveillance can be implemented,
to prevent criminal activities, without violating privacy of users
= voting
society is made of groups with different specialties; each group can choose their leaders
election can in fact be a simple, cheap, dynamic, and completely reliable process
the only thing we need, in order to completely trust the result of an election, is to release the final result
every one can see if her vote is entered correctly or not
and since the total number of voters is known, there is no place for cheating
votes can be submitted with an anonymous identity
other than identity and account keys mention in the previous section,
each person can optionally have an anonymous vote key
this key can be obtained by joining a pool generated by IO nodes, and then picking a vote key
this process automatically disables the ability to vote with real identity
this method is so simple and cheap that can be easily done in short periods (every month or every 3 months)
actually people can vote any time they want, the result table will be updated continuously
but the election will be made in discrete periods
now compare this simple method with what we call democracy nowadays
this clearly shows us how the ones in power, play with people, and treat them like fools