civilization
1, humans
nature creates intelligent species, and intelligent species create civilizations
artificial intelligence eliminates a lot of complexities required for sustaining biological intelligence
but at least for centuries to come, the existence of intelligence and thus civilization on earth,
will depend on survival of humankind
our basic biological needs are:
, air (oxygen plus nitrogen and/or helium to adjust its density, with suitable temperature and pressure)
, clean water (H2O plus some minerals to adjust the pH)
, nutrients
naturally the environment we evolved in, supplies our basic needs
but in general, it's unstable, slow and insufficient (considering the current population and standards of life)
thus we have to find methods to do it faster and in larger amounts, without damaging our environment
in a prosperous society:
, no one's health is threatened by the lack of clean water, healthy food, shelter, sanitation, or medical services
, proper education (free of any kind of ideology) is available for everyone
, the more one's work benefits society, the richer one will be
ie exactly the opposite of what is happening now, in most parts of the world
i think, our natural lifetime is more or less enough for experiencing life as an individual
besides, we are not our memories, so why bother making them immortal
and considering the horrible things that some mortals have done in human history,
maybe mortality of human beings isn't a bad thing after all,
at least until they evolve enough
maybe in the future there would be some way to extend human lifetime
regardless, important thoughts can always be recorded, and every generation can study it and improve it
we may loose our body and personal memories, but our more important thoughts can live for a long time,
as a collective entity called human knowledge
2, language
taxonomic language
the first consonant of a word indicates the most general concept group that the word belongs to
the subsequent letters are enumerated, to produce the derived words,
in a way that different words are distinguishable even in noisy environment
the initial vowel of a word determines its part of speech in the sentence
words begin and end in a vowel, this makes word boundaries clear, even when speaking fast
compound words are made by gluing derived words (without final and initial vowels) together
the last word of sentences will use "u" for their last vowel
basic concepts:
group, part, truth, negation, numbers, space, time, matter (organic and inorganic), radiation, motion (change)
consonants: (c=ch, x=sh)
, p, b, f, v, m
, t, d, s, z, l, n, r
, c, j, x, y
, k, g, h
vowels: a (bad), u (up) , e, i, o, oo
subject + verb + adverb + object
the initial vowel of a word determines its part of speech:
, "o": nouns
, "oo": proper nouns
, "a" or "u": verbs
, "e" or "i": adjectives and adverbs
multiple modifiers (adjectives or adverbs) can apply to the same noun or verb,
if they are separated by a conjunction, usually "and"
when one modifier immediately follows another of the same type, it modifies the former
the two together then cumulatively modify the noun or verb headword
cardinal and ordinal number of a noun is treated as adjectives
to make gerund from a verb, just replace initial "a/u" with "o"
to make passive voice from a verb, replace initial "a/u" with "e/i"
prepositions are like additional (labeled) arguments for a verb (ie other than the direct object):
in, on, under, towards, before, of, for
verbs are timeless, time is indicated using propositional phrases
6 interrogative pronouns: who, what, when, where, why, how
conjunctions (or, and, if, then, but, however) connect:
, words or phrases
, dependent clauses
, sentences
a sequence of nouns must be separated with conjunctions
noun + noun:
, possession
, if the first noun is a gerund, the second noun is its object
a number is one word which begins with the consonant+vowel representing the number concept,
followed by consonant+vowels representing up to 3 digits,
separated with consonant+vowels representing thousand, million ...
3, energy
there is only one source of energy which is inexhaustible, the nucleus of abundant elements
Sun
we live because of the Sun, and because we are far enough from it
but this also means that the energy is dispersed on earth and to harness it we need a lot of space
solar power tower is a good method to do it
additionally we can use natural cyclic systems powered by the Sun:
, water cycle, which its use is almost saturated
, high altitude wind, like Magenn air rotor system
energy storage
we can store energy in the electron arrangement of special materials
they are called batteries or fuels, if the released energy is electricity or heat, respectively
fossil fuels are how nature stores energy, they have very good energy densities,
but burning them pollutes air, and their natural resources will eventually expire
biofuel is a ridiculous and at the same time a sad lie
it leads to more hunger, and it is the most inefficient way to harness the energy of the Sun
nuclear energy
to export intelligence beyond the solar system, we need to harness nuclear energy directly
currently the most common way to harness nuclear energy is by splitting a heavy nucleus apart,
a process called fission
in addition to not being an abundant energy source, fission is in general a very dirty process,
producing high'level nuclear waste
though maybe new generation reactors can solve these problems (partially at least)
fusion:
fusion would be a lot easier if we could curve spacetime in small regions, without needing a huge mass
quantum gravity and rotating atomic BoseEinstein condensate (superfluids)
4, economy
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://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
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
5, computers
computers can help people to easily access and improve human knowledge,
and as a result do things to improve the quality of human life
an ideal computer would be a combination of a smart'phone and a PC
, in smart'phone mode, CPU works in cool mode, which doesn't need a fan
, in PC mode, it will be put on a cooler
the computer itself contains CPU, RAM, SSD, TPM2, Bluetooth, and a USB4 2.0 port that will connect to a hub
the hub provides:
, power, powerful GPU and WiFi
, a USB dock (to connect peripherals like display, camera ...)
, compatibility ports for older devices: ethernet, audio jack, DP and HDMI
to act as a smart'phone it also has battery, integrated GPU, a small display, camera, speaker, microphone, WiFi and cell
during boot, the integrated GPU is used, to prevent any vulnerability due to the OptionROM of external GPU
digital circuits
in conventional digital circuits when the inputs change, the outputs can have temporary invalid values,
until they stabilize to the valid values
but for the circuit to do its job, gates with memory (registers),
must operate only when the inputs have correct values
one solution is to synchronize registers with a global clock signal
the period of clock signal is made long enough for the circuit to become stable
disadvantages of synchronous circuits:
, we have to split long operations into several smaller ones,
which can be performed in successive clock cycles (a technique known as pipelining)
otherwise the circuit would be slow and inefficient
, distributing a high'fan'out, timing'sensitive clock signal can be complicated
, electromagnetic interference at the clock frequency and its harmonics
, widely distributed clock signal takes a lot of power, and must run whether the circuit is receiving inputs or not
although "clock gating" can help to reduce some of the problems of synchronous circuits,
i think the real solution is to use asynchronous circuits
the only sane kind of asynchronous circuit which i could imagine is this:
, next to any data wire, there is a control wire which determines if the data is valid or not
, when a register wants to change its outputs, it first invalidates them,
for a duration equal to the delay of one gate
, any gate receiving an invalid input, invalidates its outputs
, this way all data which is going to change in the future, is first invalidated
, registers operate only when all inputs are valid
computer architecture
cpu, memory, peripherals, this seems to be the only practical architecture for the hardware of computers
cpu runs a sequence of simple computations, called instruction codes, one by one
compilers are special programs that generate instruction codes,
from a program written in a structured and human readable language
backdoors are always a possibility for closed'source CPU with closed'source boot firmware
specially after the introduction of "trusted execution environment" (TEE) in the boot firmwares
TEE is a full'blown, always'running mini operating system,
with full access to the whole system (including memory and network)
furthermore they have made it practically impossible for users to disable it
this mess of a design cries out for hidden and quite sophisticated backdoors
in the case of X86 architecture, the default boot firmware of nearly all systems are closed source
flashing a CoreBoot based boot firmware is possible, but there still will be closed source parts (Intel FSP)
in addition, there is no easy way to get rid of the TEE part, ie Intel ME (or AMD PSP),
though there are some hacks to disable (but not completely remove) it:
ARM architecture is closed source too, but some vendors (eg Rockchip) use an open source boot firmware (EDK2)
GPU with open source driver: Qualcomm/Adreno
open source CPU: RISC-V, Power ISA
programs usually do not run directly on computer hardware
instead they run on a more sophisticated software machine (a virtual machine) called the kernel
in theory we can live without a kernel (an idea sometimes called a library operating system),
and it can be useful for some use cases (like embedded systems),
but a kernel based operating system makes developing and testing programs, much easier
Linux is a highly developed, constantly evolving, open'source kernel