Skip to content

Commit

Permalink
Added two items to appendices.
Browse files Browse the repository at this point in the history
Made many other changes as well.
  • Loading branch information
cseberino committed Aug 10, 2018
1 parent ed0927b commit 7e6fa7c
Show file tree
Hide file tree
Showing 25 changed files with 334 additions and 19 deletions.
Empty file modified .gitignore
100644 → 100755
Empty file.
Empty file modified LICENSE
100644 → 100755
Empty file.
Empty file modified Makefile
100644 → 100755
Empty file.
Empty file modified README
100644 → 100755
Empty file.
Empty file modified conf.py
100644 → 100755
Empty file.
Empty file modified docs/appendices/bloom_filters.rst
100644 → 100755
Empty file.
Empty file modified docs/appendices/code_is_law_principle.rst
100644 → 100755
Empty file.
92 changes: 92 additions & 0 deletions docs/appendices/crypto_decen_man.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
.. _app_crypto_decen_man:

A Crypto-Decentralist Manifesto By Bit Novosti
================================================================================

Blockchains are going to rule the world, providing a mechanism for scaling
social and economic cooperation to an unprecedented level — a truly global
scale. Such cooperation will involve not only human beings, groups and
associations but also a growing multitude of increasingly independent
artificial agents.

Every blockchain creates a social network around its applications, with network
value growing exponentially with the number of participants in accordance with
`Reed’s Law <https://en.wikipedia.org/wiki/Reed%27s_law>`_. This value isn’t
extracted by intermediaries or controllers, as with previous centralized
models. Instead, it’s shared among participants, providing economic incentives
for cooperation without coercion.

Not all blockchains are created equal. There are three key characteristics that
make scalable blockchain-enabled cooperation possible: openness, neutrality and
immutability.

**Openness is necessary.** It goes without saying that the rules of the game
should be open for anyone to see and understand. Anyone should be able to
participate in any layer of the system without asking for any permission
whatsoever. Anyone should be able to use the network in accordance with its
rules. Anyone should be able to create their own client implementing the open
protocol. Anyone should be able to contribute to network security, and so on. No
registration, identification or other preconditions should limit
participation. All such limitations prevent the network from scaling and their
enforcement creates centralization risks.

**Neutrality is necessary.** It’s important for anyone participating in
blockchain-enabled cooperation to be on an equal footing with everyone else. It
doesn’t matter if you wield huge economic power or only a tiny amount. It
doesn’t matter whether you’re a saintly Mother Theresa or a vicious drug
dealer. It doesn’t matter whether you’re a human or a refrigerator. It doesn’t
matter what you believe in, what political theory you subscribe to, or whether
you’re a moral or immoral person. A participant’s ethnicity, age, sex,
profession, social standing, friends or affiliations, make or model, goals,
purposes or intentions — none of this matters to the blockchain even a bit. The
rules of the game are exactly the same for everyone, period. Without neutrality,
the system is skewed towards one set of participants at the expense of
others. In that case, it’s less likely to gain universal acceptance and maximize
network value for everyone.

**Immutability is necessary.** The blockchain is a truth machine preserving one
universally accepted version of history, one immutable sequence of
events. What’s true once is always true, regardless of political or business
interests, and no amount of lobbying can change that. If it’s simply not
possible to change history, then no resources are wasted on the effort. If there
are any loopholes at all, then sufficiently motivated and determined interest
groups will exploit them at the expense of others, diminishing network value for
everyone.

The rules governing the blockchain network are known in advance. They’re exactly
the same for everyone and not subject to change other than with 100%
consensus. Yes, it must be 100%. Because any change to the system’s rules that
not all participants freely agree to creates a network split, diminishing
network value for everyone.

It’s impossible to achieve these blockchain characteristics without the system
**being truly decentralized.** If any aspect of the blockchain system becomes
subject to centralized control, this introduces an attack vector enabling the
violation of one or more of the key blockchain characteristics. It may be
possible to limit participation (such as by enforcing AML/KYC rules), thus
violating openness. It may be possible to enforce discriminatory policies (such
as by filtering “illegal” transactions), thus violating neutrality. It may be
possible to rewrite the history of events (such as by confiscating or
“redistributing” funds), thus violating immutability. Introducing centralized
chokepoints creates a precondition for the introduction of “blockchain
intermediaries or controllers” who can siphon value out of the system at other
participants’ expense.

So decentralization is the most important feature of blockchain systems, the one
everything else depends on. With decentralization, blockchains will come to rule
the world. Without it, they’ll be “contained” and railroaded into niche
applications.

**We decentralists** are committed to keeping blockchains open, neutral and
immutable. We’re committed to keeping blockchain systems decentralized. This
informs all our actions and positions towards any developments in the crypto
world and beyond. All attempts to violate any of the key blockchain
characteristics should be fought. All changes to a blockchain’s rules that
introduce new centralization risks or strengthen existing ones should be
fought. Only developments that are clearly beneficial to decentralization or
strengthen the three key blockchain characteristics should be supported and
encouraged.

The blockchain revolution won’t be centralized. Let’s make sure of it.

Onward.
167 changes: 167 additions & 0 deletions docs/appendices/dec_of_ind.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,167 @@
.. _app_dec_of_ind:

The Ethereum Classic Declaration Of Independence
================================================================================

Let it be known to the entire world that on July 20th, 2016, at block 1,920,000,
we as a community of sovereign individuals stood united by a common vision to
continue the original Ethereum blockchain that is truly free from censorship,
fraud or third party interference. In realizing that the blockchain represents
absolute truth, we stand by it, supporting its immutability and its future. We
do not make this declaration lightly, nor without forethought to the
consequences of our actions.

**Looking Back**

It should be stated with great gratitude that we acknowledge the creation of the
Ethereum blockchain platform by the Ethereum Foundation and its founding
developers. It certainly can be said without objection, that without their hard
work and dedication that we as a community would not be where we are today.

From its inception, the Ethereum blockchain was presented as a decentralized
platform for “applications that run exactly as programmed without any chance of
fraud, censorship, or third-party interference” `[1] <https://ethereum.org>`_
. It provided a place for the free association of ideas and applications from
across the globe without fear of discrimination while also providing
pseudonymity. In this decentralized platform, many of us saw great promise.

**List of Grievances**

It is however, with deep regret, that we as a community have had to
spontaneously organize `[2]
<https://www.reddit.com/r/EthereumClassic/comments/4u4o61/call_for_action_what_can_i_do_to_help_ethereum>`_
to defend the Ethereum blockchain platform from its founding members and
organization due to a long train of abuses, specifically by the leadership of
the Ethereum Foundation. These grievances are as follows.

* For rushing the creation of a “soft fork,” which was comprised of a minor
change in the Ethereum blockchain code for the sole purpose of creating a
blacklist and censoring transactions that normally would have been allowed.

* For neglecting the full implications of the “soft fork” by the Ethereum
blockchain as a warning that they were violating the principles and values
coded therein. `[3]
<https://blog.ethereum.org/2016/06/28/security-alert-dos-vulnerability-in-the-soft-fork>`_

* For creating an unrepresentative voting mechanism called the “carbon vote”,
which they initially stated was “unofficial” `[4]
<https://www.reddit.com/r/ethereum/comments/4s0rz6/a_vote_that_nobody_knows_about_is_not_a_vote/d55nye3>`_
only to contradict these statements a day before determining to hard fork. `[5]
<https://blog.ethereum.org/2016/07/15/to-fork-or-not-to-fork>`_

* For rushing the creation of a “hard fork,” which was comprised of an irregular
state change in the Ethereum blockchain code that violated the properties of
immutability, fungibility, and the sanctity of the ledger.

* For willfully deciding to not include replay protection in the “hard fork”, an
action which has unnecessarily cost exchanges and thousands of users the
rightful ownership of their Ether tokens. `[6]
<https://pbs.twimg.com/media/CopwJVHXEAABEKd.jpg>`_

**Respecting the Values Essential for Blockchains**

One might ask what harm can be done from changing the code of the Ethereum
blockchain and bailing out `[7]
<https://dictionary.cambridge.org/us/dictionary/english/bailout>`_ “The DAO”
token holders, which is not an unreasonable question. Many of us have an innate
sense of right and wrong, so at first glance rescuing "The DAO" felt
right. However, it violated two key aspects of what gives peer-to-peer cash `[8]
<https://bitcoin.org/bitcoin.pdf>`_ and smart contract-based systems value:
fungibility and immutability.

Immutability means the blockchain is inviolable. That only valid transactions
agreed upon via a cryptographic protocol determined by mathematics are accepted
by the network. Without this, the validity of all transactions could come into
question, since if the blockchain is mutable, any transaction could be
modified. Not only does this leave transactions open to fraud, but it might
spell disaster for any distributed application running atop the platform.

Fungibility is the feature of money where one unit equals another unit. For
instance, a Euro equals another Euro just as a Bitcoin equals another
Bitcoin. Unfortunately, an ETH no longer equals another ETH. The alleged
attacker’s ETH was no longer as good as your ETH and was worthy of censorship,
deemed necessary by a so-called majority.

Ultimately, these breaches in fungibility and immutability were made possible by
the subjective morality judgements of those who felt a burning desire to bring
the alleged attacker to justice. However, in doing so they compromised a core
pillar of Ethereum just to do what they felt was in the interests of the
“greater good”. In a global community where each individual has their own laws,
customs, and beliefs, who is to say what is right and wrong?

Deeply alarmed that these core tenets were disregarded by many of the
Foundation’s developers, and a sizable portion of Ethereum participants, we, as
a community, have organized and formed a code of principles to follow for the
Ethereum Classic chain.

**The Ethereum Classic Code of Principles**

We believe in a decentralized, censorship-resistant, permission-less
blockchain. We believe in the original vision of Ethereum as a world computer
that cannot be shut down, running irreversible smart contracts. We believe in a
strong separation of concerns, where system forks of the codebase are only
possible when fixing protocol level vulnerabilities, bugs, or providing
functionality upgrades. We believe in the original intent of building and
maintaining a censorship-resistant, trustless and immutable development
platform.

Herein are written the declared values by which participants within the Ethereum
Classic community agree. We encourage that these principles not be changed via
edict by any individual or faction claiming to wield power, authority or
credibility to do so.

We, as a community agree that:

* The purpose of Ethereum Classic is to provide a decentralized platform that
runs decentralized applications which execute exactly as programmed without
any possibility of downtime, censorship, fraud or third party interference.

* Code is law; there shall be no changes to the Ethereum Classic code that
violate the properties of immutability, fungibility, or sanctity of the
ledger; transactions or ledger history cannot for any reason be reversed or
modified.

* Forks and/or changes to the underlying protocol shall only be permitted for
updating or upgrading the technology on which Ethereum Classic operates.

* Internal project development can be funded by anyone, whether via a trusted
third party of their choice or directly, using the currency of their choice on
a per project basis and following a transparent, open and decentralized
crowdfunding protocol.

* Any individual or group of individuals may propose improvements, enhancements,
or upgrades to existing or proposed Ethereum Classic assets.

* Any individual or group of individuals may use the Ethereum Classic
decentralized platform to build decentralized applications, hold crowdsales,
create autonomous organisations/corporations, or for any other purpose they
deem suitable.

**Looking Forward**

For the many reasons listed above, we have chosen to rename the original
blockchain “Ethereum Classic” with the ticker symbol “ETC”, so that the
community and all other participants can identify the original, unforked, and
immutable blockchain platform.

Our most sincere gratitude goes to those developers within and outside the
Foundation who opposed interfering with the Ethereum blockchain ledger and
enabled the Ethereum Classic chain to survive and live on. We know there are
many of you and we welcome you at anytime to join our decentralized community.

We will continue the vision of decentralized governance for the Ethereum Classic
blockchain and maintain our opposition to any centralized leadership takeover,
especially by the Ethereum Foundation as well as the developers who have
repeatedly stated that they would no longer develop the Ethereum Classic chain.

We likewise will openly resist the “tyranny of the majority,” and will not allow
the values of the system to be compromised. As a united community, we will
continue to organize for the defense and advancement, as required, for the
continuation and assurance of this grand experiment. The Ethereum Classic
platform, its code and technology, are now open to the world as Open Source
software. `[9] <https://github.com/ethereumproject>`_ It is now freely available
for all who wish to improve and build upon it: a truly free and trustless world
computer that we together as a community have proven and will continue to prove
is anti-fragile. `[10] <https://en.wikipedia.org/wiki/Antifragile>`_

- The Ethereum Classic Community
Empty file modified docs/appendices/digital_signatures.rst
100644 → 100755
Empty file.
Empty file modified docs/appendices/how_nodes_find_each_other.rst
100644 → 100755
Empty file.
2 changes: 2 additions & 0 deletions docs/appendices/index.rst
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,5 @@ blank
digital_signatures
how_nodes_find_each_other
code_is_law_principle
crypto_decen_man
dec_of_ind
Empty file modified docs/appendices/recursive_length_prefix.rst
100644 → 100755
Empty file.
Empty file modified docs/appendices/root_hashes.rst
100644 → 100755
Empty file.
8 changes: 5 additions & 3 deletions docs/introduction.rst
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ openness
is available for inspection.

reliability
It is virtually impossible to shut down.
It is always available and virtually impossible to shut down.

trustlessness
There is no need to rely on any single person or entity.
Expand All @@ -39,7 +39,7 @@ identical backup servers geographically distributed. Suppose these web servers
were only accessible using `onion routing
<https://en.wikipedia.org/wiki/Onion_routing>`_. This setup can provide
significant censorship resistance, security, pseudonymity, openness and
reliability. Note however how much effort is required. With ETC these
reliability. Note however how much effort is required. With ETC, these
properties are present by default!

Because ETC is trustless, *no one* has special powers. Therefore, it
Expand All @@ -48,4 +48,6 @@ financial and identity services.

Final note, everyone *effectively* runs their applications on the same single
computer, the ETC world computer. However, this *virtual* computer is actually
implemented by a worldwide network of computers.
implemented by a worldwide network of computers. All the computers in the
network run all applications in parallel. This extreme redundancy is a main
reason the ETC world computer has its amazing properties.
Empty file modified docs/world_computer/accounts.rst
100644 → 100755
Empty file.
38 changes: 36 additions & 2 deletions docs/world_computer/clients.rst
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,39 @@ the ETC network using Web 3.
Web 3
--------------------------------------------------------------------------------

Web 3 is a standard set of interfaces to communicate with the ETC system. It
uses Javascript Object Notation (JSON).
Web3 refers to a standard set of ETC application programming interfaces using
the Javascript Object Notation Remote Procedue Call (JSON RPC) protocol. Web3
provides a convenient way to interact with ETC nodes and the ETC system. The
name Web3 refers to the most ambitious goal for Ethereum Classic (ETC) which is
to replace the World Wide Web (Web). Blockchain based replacements for the Web
are often referred to as Web 3.0.

The Web was developed by Tim Berners-Lee and first made publicly available in
1991. It is a user friendly general purpose system based on the Internet.
Initially the Web mainly contained simple static content such as primitive
personal home pages. As the Web evolved, greater dynamism and interactivity was
possible such as with social media. This improved Web is often referred to as
Web 2.0. The term was popularized by Tim O’Reilly.

Neither the Internet nor the Web were initially designed to be trustless
systems. Components have been steadily introduced to improve security such as
Transport Layer Security (TLS), certificate authorities, and, Domain Name System
Security Extensions (DNSSEC). Unfortunately, many such improvements are only
partially adopted.

Gavin Wood popularized the term Web 3.0 for blockchain based trustless
alternatives to the Web. Confusingly, Web 3.0 also sometimes refers to the
Semantic Web.

Web 3.0 is a peer to peer replacement for the Web. A peer to peer architecture
is required to build trustless systems. Web 3.0 users are pseudonymous. They
are only identified by their accounts, unlike the Web, where addresses can be
associated with identities. ETC requires access to additional short and long
term storage systems to replace the Web. The InterPlanetary File System (IPFS)
is an example of a compelling peer to peer storage system that can integrate
with ETC.

The Web currently coexists with blockchain systems. Websites access these
systems to provide additional functionality. As ETC and related systems mature,
browsers will increasingly just point to these Web alternatives thus ushering in
the era of Web 3.0.
7 changes: 5 additions & 2 deletions docs/world_computer/index.rst
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,12 @@ World Computer (Virtual Machine)

The world computer is a single virtual machine implemented by a worldwide
network of computers. Programs on the world computer are referred to as
:ref:`smart contracts <ch_smart_contracts>`. Users interact with the world
:ref:`smart contracts <ch_smart_contracts>`. Because the world computer is
`Turing complete <https://en.wikipedia.org/wiki/Turing_completeness>`_,
smart contract can be arbitrarily complex. Users interact with the world
computer through :ref:`clients <ch_clients>` using
:ref:`accounts <ch_accounts>`.
:ref:`accounts <ch_accounts>`. In fact, *all* actions on the world computer are
initiated by :ref:`transactions <ch_trans>` sent from users.

.. toctree::
accounts
Expand Down

0 comments on commit 7e6fa7c

Please sign in to comment.