Browse Source

Website redesign

master
sn0w 1 month ago
parent
commit
fc4591ae3d
Signed by: sn0w <sn0w@posteo.de> GPG Key ID: DDEDFB9D3FA15727

+ 1
- 0
.gitignore View File

@@ -0,0 +1 @@
1
+_public/

BIN
assets/hmmm.flac View File


+ 15
- 0
assets/style.css View File

@@ -0,0 +1,15 @@
1
+body {
2
+    background-color: #000;
3
+    color: #ccc;
4
+
5
+    max-width: 786px;
6
+    margin-left: auto;
7
+    margin-right: auto;
8
+
9
+    font-family: monospace;
10
+    font-size: 14px;
11
+}
12
+
13
+a {
14
+    color: #20c1d5;
15
+}

+ 52
- 0
build.zsh View File

@@ -0,0 +1,52 @@
1
+#!/bin/zsh
2
+
3
+set -e
4
+set -o pipefail
5
+
6
+render() {
7
+    echo "#> Rendering ${1} as ${2}"
8
+
9
+    cat ./partials/header.html > "${2}"
10
+    pandoc -t html "${1}" >> "${2}"
11
+    cat ./partials/footer.html >> "${2}"
12
+}
13
+
14
+# Drop last build
15
+echo "#> Cleaning up"
16
+if [[ -d _public ]]; then
17
+    rm -r _public
18
+fi
19
+mkdir -p _public/blog
20
+
21
+# Build pages
22
+echo "#> Making pages/posts"
23
+for page in ./content/**/*.md; do
24
+    file="$(echo "${page}" | rev | cut -d/ -f1 | rev | sed 's/\.md//g').html"
25
+    target=""
26
+
27
+    if [[ "${page}" =~ "blog" ]]; then
28
+        target="./_public/blog/${file}"
29
+    else
30
+        target="./_public/${file}"
31
+    fi
32
+
33
+    render "${page}" "${target}"
34
+done
35
+
36
+# Build blog index
37
+echo "#> Making blog index page"
38
+cp ./partials/blog_index.md ./_public/blog/index.md
39
+echo "" >> ./_public/blog/index.md
40
+for page in ./content/blog/*.md; do
41
+    file="$(echo "${page}" | rev | cut -d/ -f1 | rev | sed 's/\.md//g')"
42
+    echo "- [${file}](/blog/${file}.html)" >> ./_public/blog/index.md
43
+done
44
+render ./_public/blog/index.md ./_public/blog/index.html
45
+rm ./_public/blog/index.md
46
+
47
+# Copy media
48
+echo "#> Transferring media"
49
+cp -r images _public/images
50
+cp -r assets _public/assets
51
+
52
+echo "#> Done!"

+ 272
- 0
content/blog/2017-12-25-Why-IOTA-Sucks.md View File

@@ -0,0 +1,272 @@
1
+<hr>
2
+
3
+TL;DR of this post:<br>
4
+Never use IOTA.
5
+Ever.
6
+The developers broke every "good practice" they could find and built
7
+a coin that's centralized and insecure by design.
8
+Please be *extremely* careful when investing your money.
9
+Do not spend more than you're willing to lose.
10
+
11
+<hr>
12
+
13
+# Intro
14
+
15
+Cryptocurrencies are popular like never before.
16
+I've been following Bitcoin and some of it's offsprings since early 2012, but this year was just
17
+amazing. It seems like more and more people finally understand that
18
+"magical computer money" can (and should) have real-world value.
19
+
20
+One of the coins that surf on this hype-wave is [IOTA](http://iota.org/).<br>
21
+If you don't know this coin yet [click here](https://en.wikipedia.org/wiki/IOTA_(technology)).
22
+
23
+# Backstory
24
+
25
+A few weeks ago a coworker told me about IOTA.
26
+He said it was a new, fancy, revolutionary coin that will disrupt the market.
27
+It was apparently partnered with major companies like Telekom, Microsoft, Fujitsu and more.
28
+
29
+Then he went on:<br>
30
+"It has zero fees".<br>
31
+"Also no need for mining".<br>
32
+"They use a better blockchain"<br>
33
+
34
+I was shocked and excited at the same time.<br>
35
+This IOTA-thingy *did* sound pretty cool,
36
+but the "upsides" my coworker mentioned raised some pretty big questions for me:
37
+
38
+- How does a decentral system partner with a company/sponsor?
39
+- Who verifies transactions when there is no mining?
40
+- Who "prints" new money if not the miners?
41
+- What is so special about their "fancy" blockchain?
42
+
43
+You get the gist.<br>
44
+This coin just seemed too good to be true.
45
+
46
+# The "Tangle"
47
+
48
+Before talking about concerns, let's explore how IOTA (basically) works.
49
+
50
+The Tangle is a directed acyclic graph (DAG).<br>
51
+"Directed acyclic graph" sounds horribly complicated, but it's basically nothing more than a graph
52
+that follows a certain "flow" (hence "directed") and guarantees that "walking" along the paths
53
+and connections will never end up in loops ("acyclic").
54
+
55
+Let's take a look at an example-tangle:
56
+
57
+![](https://i.imgur.com/lmbKI7o.jpg)
58
+
59
+As you can see, the Tangle is basically an "exposed blockchain".
60
+Instead of wrapping multiple transactions into blocks which point to the parent block (hence building the "chain"),
61
+they just insert the transactions directly and make them point to two other (random) transactions.
62
+This generates the ever-growing "ledger-tree" over time.
63
+
64
+When a node has chosen two previous transactions, it verifies them by checking
65
+their proof-of-work hash and making sure that they don't build upon a double-spend.
66
+To choose which branch to attach a transaction to, the node uses a [MCMC-based](https://en.wikipedia.org/wiki/Markov_chain_Monte_Carlo) algorithm. As long as the majority of other nodes does the same, the tips will then diverge into the same direction.
67
+
68
+Ok, cool concept.<br>
69
+But does it work?
70
+
71
+The answer is: "kinda". With a *lot* of strings attached.
72
+
73
+# Concern #1 - Missing dev knowledge
74
+
75
+*This is probably my most important point.*
76
+
77
+It seems that the IOTA developers did not think very much about
78
+the network that will power the coin on the long run.
79
+
80
+**One extremely important part of developing a decentral system is that an average user
81
+should be able to fully participate in the network at all times.**
82
+
83
+This means that your system should expect to run on low bandwidth,
84
+slow CPUs, low memory and "small" harddrives.
85
+
86
+**A very common** misunderstanding of Bitcoin is that it only has a 1mb blocksize because
87
+it's running on old technology and/or lead by stubborn developers and pool operators.
88
+In reality this blocksize is a self-imposed limit to stay in the the aforementioned restrictions.
89
+
90
+**This is also the reason why BIPs, SegWit and Hardforks related to blocksize or transaction limits are so controversial.**
91
+
92
+Bitcoin has used this limit for many years and the only thing consumers need to
93
+fully participate in the network is ~150GB of HDD storage. Storage is extremely cheap.
94
+The decentralisation promises still stand.
95
+
96
+Cryptocurrencies that disrespect these basic rules are very prone to centralisation because they will
97
+inevitably reach a point where the average consumer can only use "light wallets"
98
+which don't actually participate in the network.
99
+
100
+Back to IOTA:<br>
101
+The Tangle does not come with any rules regarding the transaction influx or size.
102
+It is thus safe to assume that IOTA will require *very* fast internet and CPUs
103
+(in addition to a lot of HDD space) once it's adopted by more and more people and devices.
104
+It will thus become more and more centralised to some few "full nodes" over time.
105
+
106
+Also keep in mind that IOT devices are usually connected to the net with low-data cell connections
107
+or low-priority shares of consumer-level ADSL.
108
+This means that the **TARGET AUDIENCE** of IOTA will never be able to run a full node.
109
+That is a **HUGE** design fail and should be a red flag for any user.
110
+
111
+# Concern #2 - Security
112
+
113
+*IOTA is utterly insecure on a small scale*
114
+
115
+The way the Tangle works means that IOTA needs at least
116
+[67% of "honest full nodes"](https://forum.iota.org/t/iota-double-spending-masterclass/1311)
117
+in it's network at all times.
118
+Once an attacker manages to get more than 33% of the network's hashrate,
119
+he can build a sufficiently large and correctly linked "sub-tangle" that may double-spend money.
120
+
121
+**The IOTA concept does not have a *good* solution to this obvious problem.**<br>
122
+
123
+Their current workaround is "The Coordinator"
124
+
125
+It's a *central* point of trust (and failure) in the network
126
+that's run by the IOTA Foundation.
127
+It centrally directs the path of the DAG by creating "milestones" that all nodes
128
+blindly treat as a "everything before this is valid" entry.
129
+
130
+This should be another **HUGE** red flag.
131
+
132
+The IOTA Foundation could (in theory) double-spend their ICO-share
133
+or any other balance because all nodes will blindly trust the Coordinator which they control.
134
+
135
+If the private key of the Coordinator is **ever** leaked, anyone can do this.
136
+
137
+# Concern #2.1 - The Coordinator
138
+
139
+_IOTA is actually insecure and centralised **by design**_
140
+
141
+Even though IOTA announced that the Coordinator will become optional at some point,
142
+there is no chance that they will ever be able to actually do that.
143
+
144
+Quote of IOTA co-founder ([link](https://www.reddit.com/r/Iota/comments/6yzm9g/integrity_question_for_come_from_beyond_sergey/dmsxaa5/)):
145
+
146
+> Digital signatures are verified by every computer in IOTA network,
147
+> if a signature passes the verification routine then it’s, PROBABLY, valid.
148
+> To make sure that the signature is indeed valid the computer waits for the transaction
149
+> containing the signature to be referenced by a milestone.
150
+
151
+This is bad. REALLY bad. But it gets worse:
152
+
153
+>  I changed the number of rounds to allow practical collisions.
154
+>  With Coordinator, IOTA’s security depends on one-wayness of Curl-P.
155
+>  Without Coordinator the security depends on collision resistance.
156
+>  IOTA is unaffected by collisions in Curl-P, scam-driven clones are.
157
+
158
+**If IOTA ever decides to shut the Coordinator down, the "copy-protection"
159
+of Curl-P will start to work against them by enabling hash-collisions until
160
+they invent a new crypto that isn't intentionally insecure.**
161
+
162
+It also shows us how IOTA devs think about open-source.
163
+They do not want to be forked and do everything in their power to prevent code-reuse.
164
+It's basically a "look but don't touch" project.
165
+
166
+# Concern #3 - Bad technical judgement
167
+
168
+*404 - real world not found*
169
+
170
+One of the first things you'll learn when exploring IOTA is that they use
171
+a base-3 numeral system (-1, 0, 1) instead of binary (0, 1).
172
+The authors frequently claim that this decision was a good choice and have various
173
+arguments they'll throw at you if you question them.
174
+
175
+It basically boils down to:
176
+
177
+- Ternary processors are more efficient
178
+- Certain math-functions can be implemented more cleanly on ternary
179
+
180
+In the context of IOTA, these arguments are bullsh\*t.
181
+
182
+IOTA claims to be the "backbone of IOT".<br>
183
+The IOT consists of millions of existing devices and will not
184
+switch away from cheap binary processors for forseeable amounts of time.
185
+Also the *whole* internet works with binary communication on the lowest level.
186
+
187
+Devices running IOTA will **always** need to convert back-and-forth multiple times
188
+when computing anything remotely relevant.
189
+IOTA has thus decided that a coin that's ***DESIGNED*** to run on small,
190
+limited and legacy IOT-devices should be developed with a higher focus on
191
+tidyness than performance.
192
+
193
+Of course using ternary instead of binary required the IOTA devs to
194
+reinvent the most basic things for their system, like cryptographic functions.
195
+The basic rule to cryptography is: [NEVER roll your own](https://security.stackexchange.com/questions/18197/why-shouldnt-we-roll-our-own).
196
+Yet they felt confident enough to break this rule.
197
+Not much later [a team of researchers broke the algo](https://medium.com/@neha/cryptographic-vulnerabilities-in-iota-9a6a9ddc4367).
198
+
199
+This all makes IOTA look like a project of some students who have
200
+absolutely zero knowledge about the real-world situation they're developing for,
201
+with no slightest bit of insight or openness to more experienced people.
202
+
203
+# Concern #4 - Money Origin
204
+
205
+*IOTA does not "need" mining because it is 100% premined*
206
+
207
+Yes you read that right.<br>
208
+Every single one of the 2,779,530,283,277,761 IOTA that can ever exist
209
+has been premined in the genesis-transactions.
210
+They were then all sold in an "Initial Coin Offering" (ICO).
211
+
212
+You cannot get IOTA without buying them from someone else.
213
+
214
+# Concern #5 - The Code
215
+
216
+*The mainstream is good, right?*
217
+
218
+IOTA's reference implementation is written in Java.<br>
219
+I repeat: JAVA.<br>
220
+For a thing that needs to be **fast** and **secure**.<br>
221
+Wat.
222
+
223
+Oh and the wallet is an Electron/NodeJS "app".<br>
224
+It's [a single JavaScript file](https://github.com/iotaledger/wallet/blob/ede254b56e3c5f99f59638fedf6ff4ec67109840/app/js/main.js) with ~2.5k lines of code.
225
+
226
+It also features a whopping 500+ open issues related to magically disappearing IOTA balances
227
+or coins that got "taken custody" by the foundation.
228
+
229
+![](https://i.imgur.com/pM0tSSh.png)
230
+
231
+There are no styleguides or tests in either repo and every single
232
+CI build has failed because they don't care to write a correct `.travis.yml`.
233
+
234
+So yeah. That's that.<br>
235
+Final rating: 💩/10.
236
+
237
+# Concern #6 - Marketing
238
+
239
+IOTA uses misleading marketing strategies to convince the "broad mass".
240
+
241
+You'll frequently see "concepts" like [this](https://i.imgur.com/Kv6dA9P.jpg) or [this](https://i.imgur.com/abHathd.png).
242
+If you're looking at them without rose-tinted glasses, you'll notice that
243
+all of these fancy "machine to machine" things work with ANY form of non-physical money.
244
+
245
+Yes. Any.<br>
246
+You could even realize this with goddamn PayPal.
247
+
248
+IOTA also likes to announce "partnerships" with major tech companies.
249
+As it turns out, these major companies never really partnered with IOTA.
250
+They are just ""interested"" in the IOTA Marketplace where sensor-data
251
+can be sold and bought. Not more, not less.
252
+
253
+As it turns out, the most important purpose of IOTAs marketing is to keep up the hype bubble.
254
+Sadly this seems to work quite well.
255
+The community and markteing are actively working against criticism by declaring
256
+negative opinions as FUD. They even have a `#anti-fud` channel on their Slack
257
+where such opinions get posted to "warn" the fans.
258
+I wonder if my post will pop up in there :thinking:
259
+
260
+# My Reaction to all this
261
+
262
+![](https://i.imgur.com/oEgGuR8.png)
263
+
264
+# Conclusion
265
+
266
+You should not use IOTA.<br>
267
+Even if you don't care about centralization or security,
268
+please keep in mind that using the "hype-bubble" of IOTA to make money
269
+supports this utterly flawed coin. We're better off without it.
270
+
271
+Stop this madness.<br>
272
+Invest in something safe.

+ 43
- 0
content/index.md View File

@@ -0,0 +1,43 @@
1
+Hi, my name is
2
+
3
+```
4
+ .d888b,  88bd88b  d8888b  ?88   d8P  d8P
5
+ ?8b,     88P' ?8bd8P' ?88 d88  d8P' d8P'
6
+   `?8b  d88   88P88b  d88 ?8b ,88b ,88'
7
+`?888P' d88'   88b`?8888P' `?888P'888P'
8
+```
9
+
10
+welcome to my website!<br><br>
11
+
12
+I'm a programmer who tries to survive in a world of broken, inefficient, and bloated software.
13
+When I'm not writing or reversing code, I love managing servers, drinking more coffee than any
14
+sane person would ever drink, and listening to metal.
15
+
16
+I sometimes write about things in my [blog](./blog).<br>
17
+Check it out if you're into that stuff.
18
+
19
+If you want to contact me you can:
20
+
21
+- Shoot a mail to `c24wd0Bwb3N0ZW8uZGU=`
22
+- DM `@sn0w@cofe.rocks`
23
+- Write `FADED#0001` on Discord
24
+
25
+Using PGP is encouraged.<br>
26
+Use `D3D00F7849C07268ADA947BBDDEDFB9D3FA15727`.
27
+
28
+<br>
29
+
30
+\-\-\-
31
+
32
+Up for a little challenge?<br>
33
+Take a look at [this](/assets/hmmm.flac).<br>
34
+I feel like the number 666 might be helpful.
35
+
36
+\-\-\-
37
+
38
+Proudly built with markdown and some shell scripts.<br>
39
+Repo with sources [here](https://glitch.sh/sn0w/website.git).<br>
40
+
41
+![](images/any.gif)
42
+![](images/nojs.gif)
43
+![](images/notepad2.gif)

BIN
images/any.gif View File


BIN
images/nojs.gif View File


BIN
images/notepad2.gif View File


+ 12
- 0
partials/blog_index.md View File

@@ -0,0 +1,12 @@
1
+[<< Back to Homepage](/)
2
+
3
+# Blog
4
+
5
+Welcome to my blog!
6
+
7
+This is where I write about stuff that's on my mind.<br>
8
+It's posts are usually rather long and uploaded infrequently.
9
+
10
+Look around, and feel free to leave comments on Fedi.
11
+
12
+\-\-\-

+ 2
- 0
partials/footer.html View File

@@ -0,0 +1,2 @@
1
+</body>
2
+</html>

+ 9
- 0
partials/header.html View File

@@ -0,0 +1,9 @@
1
+<!DOCTYPE html>
2
+<html>
3
+<head>
4
+    <meta name="encoding" content="UTF-8"/>
5
+    <meta name="viewport" content="width=device-width, initial-scale=1"/>
6
+
7
+    <link rel="stylesheet" href="/assets/style.css"/>
8
+</head>
9
+<body>

Loading…
Cancel
Save