diff --git a/.gitbook/assets/10.gif b/.gitbook/assets/10.gif
new file mode 100644
index 0000000..9c9e846
Binary files /dev/null and b/.gitbook/assets/10.gif differ
diff --git a/.gitbook/assets/111 (1).jpeg b/.gitbook/assets/111 (1).jpeg
new file mode 100644
index 0000000..089152b
Binary files /dev/null and b/.gitbook/assets/111 (1).jpeg differ
diff --git a/.gitbook/assets/111.jpeg b/.gitbook/assets/111.jpeg
new file mode 100644
index 0000000..877af69
Binary files /dev/null and b/.gitbook/assets/111.jpeg differ
diff --git a/.gitbook/assets/1111.gif b/.gitbook/assets/1111.gif
new file mode 100644
index 0000000..6e361a4
Binary files /dev/null and b/.gitbook/assets/1111.gif differ
diff --git a/.gitbook/assets/123123.gif b/.gitbook/assets/123123.gif
new file mode 100644
index 0000000..16e0f71
Binary files /dev/null and b/.gitbook/assets/123123.gif differ
diff --git a/.gitbook/assets/2222.gif b/.gitbook/assets/2222.gif
new file mode 100644
index 0000000..a8de417
Binary files /dev/null and b/.gitbook/assets/2222.gif differ
diff --git a/.gitbook/assets/333.gif b/.gitbook/assets/333.gif
new file mode 100644
index 0000000..317e417
Binary files /dev/null and b/.gitbook/assets/333.gif differ
diff --git a/.gitbook/assets/666.gif b/.gitbook/assets/666.gif
new file mode 100644
index 0000000..0fe962b
Binary files /dev/null and b/.gitbook/assets/666.gif differ
diff --git a/.gitbook/assets/8.gif b/.gitbook/assets/8.gif
new file mode 100644
index 0000000..18574c1
Binary files /dev/null and b/.gitbook/assets/8.gif differ
diff --git a/.gitbook/assets/8888.gif b/.gitbook/assets/8888.gif
new file mode 100644
index 0000000..2304313
Binary files /dev/null and b/.gitbook/assets/8888.gif differ
diff --git a/.gitbook/assets/9.gif b/.gitbook/assets/9.gif
new file mode 100644
index 0000000..d3c87c9
Binary files /dev/null and b/.gitbook/assets/9.gif differ
diff --git a/.gitbook/assets/c1ad5eca29cbec6ba0afb921e4646460.gif b/.gitbook/assets/c1ad5eca29cbec6ba0afb921e4646460.gif
new file mode 100644
index 0000000..74b8189
Binary files /dev/null and b/.gitbook/assets/c1ad5eca29cbec6ba0afb921e4646460.gif differ
diff --git a/.gitbook/assets/image (1).png b/.gitbook/assets/image (1).png
new file mode 100644
index 0000000..31fadb8
Binary files /dev/null and b/.gitbook/assets/image (1).png differ
diff --git a/.gitbook/assets/image (10).png b/.gitbook/assets/image (10).png
new file mode 100644
index 0000000..4cfb411
Binary files /dev/null and b/.gitbook/assets/image (10).png differ
diff --git a/.gitbook/assets/image (100).png b/.gitbook/assets/image (100).png
new file mode 100644
index 0000000..ac70049
Binary files /dev/null and b/.gitbook/assets/image (100).png differ
diff --git a/.gitbook/assets/image (101).png b/.gitbook/assets/image (101).png
new file mode 100644
index 0000000..32b1220
Binary files /dev/null and b/.gitbook/assets/image (101).png differ
diff --git a/.gitbook/assets/image (102).png b/.gitbook/assets/image (102).png
new file mode 100644
index 0000000..9869ae3
Binary files /dev/null and b/.gitbook/assets/image (102).png differ
diff --git a/.gitbook/assets/image (103).png b/.gitbook/assets/image (103).png
new file mode 100644
index 0000000..acc3d9c
Binary files /dev/null and b/.gitbook/assets/image (103).png differ
diff --git a/.gitbook/assets/image (104).png b/.gitbook/assets/image (104).png
new file mode 100644
index 0000000..f5b0aac
Binary files /dev/null and b/.gitbook/assets/image (104).png differ
diff --git a/.gitbook/assets/image (105).png b/.gitbook/assets/image (105).png
new file mode 100644
index 0000000..e33d271
Binary files /dev/null and b/.gitbook/assets/image (105).png differ
diff --git a/.gitbook/assets/image (106).png b/.gitbook/assets/image (106).png
new file mode 100644
index 0000000..e245037
Binary files /dev/null and b/.gitbook/assets/image (106).png differ
diff --git a/.gitbook/assets/image (107).png b/.gitbook/assets/image (107).png
new file mode 100644
index 0000000..41208b6
Binary files /dev/null and b/.gitbook/assets/image (107).png differ
diff --git a/.gitbook/assets/image (108).png b/.gitbook/assets/image (108).png
new file mode 100644
index 0000000..e30caef
Binary files /dev/null and b/.gitbook/assets/image (108).png differ
diff --git a/.gitbook/assets/image (109).png b/.gitbook/assets/image (109).png
new file mode 100644
index 0000000..4a360e9
Binary files /dev/null and b/.gitbook/assets/image (109).png differ
diff --git a/.gitbook/assets/image (11).png b/.gitbook/assets/image (11).png
new file mode 100644
index 0000000..03cce08
Binary files /dev/null and b/.gitbook/assets/image (11).png differ
diff --git a/.gitbook/assets/image (110).png b/.gitbook/assets/image (110).png
new file mode 100644
index 0000000..fec5dd1
Binary files /dev/null and b/.gitbook/assets/image (110).png differ
diff --git a/.gitbook/assets/image (111).png b/.gitbook/assets/image (111).png
new file mode 100644
index 0000000..3c3f259
Binary files /dev/null and b/.gitbook/assets/image (111).png differ
diff --git a/.gitbook/assets/image (112).png b/.gitbook/assets/image (112).png
new file mode 100644
index 0000000..cb4c4be
Binary files /dev/null and b/.gitbook/assets/image (112).png differ
diff --git a/.gitbook/assets/image (113).png b/.gitbook/assets/image (113).png
new file mode 100644
index 0000000..2984315
Binary files /dev/null and b/.gitbook/assets/image (113).png differ
diff --git a/.gitbook/assets/image (114).png b/.gitbook/assets/image (114).png
new file mode 100644
index 0000000..a440c9f
Binary files /dev/null and b/.gitbook/assets/image (114).png differ
diff --git a/.gitbook/assets/image (115).png b/.gitbook/assets/image (115).png
new file mode 100644
index 0000000..491e549
Binary files /dev/null and b/.gitbook/assets/image (115).png differ
diff --git a/.gitbook/assets/image (116).png b/.gitbook/assets/image (116).png
new file mode 100644
index 0000000..52f3446
Binary files /dev/null and b/.gitbook/assets/image (116).png differ
diff --git a/.gitbook/assets/image (117).png b/.gitbook/assets/image (117).png
new file mode 100644
index 0000000..5f90011
Binary files /dev/null and b/.gitbook/assets/image (117).png differ
diff --git a/.gitbook/assets/image (118).png b/.gitbook/assets/image (118).png
new file mode 100644
index 0000000..8df3251
Binary files /dev/null and b/.gitbook/assets/image (118).png differ
diff --git a/.gitbook/assets/image (119).png b/.gitbook/assets/image (119).png
new file mode 100644
index 0000000..dd02a7e
Binary files /dev/null and b/.gitbook/assets/image (119).png differ
diff --git a/.gitbook/assets/image (12).png b/.gitbook/assets/image (12).png
new file mode 100644
index 0000000..338b2e1
Binary files /dev/null and b/.gitbook/assets/image (12).png differ
diff --git a/.gitbook/assets/image (120).png b/.gitbook/assets/image (120).png
new file mode 100644
index 0000000..9a653a6
Binary files /dev/null and b/.gitbook/assets/image (120).png differ
diff --git a/.gitbook/assets/image (121).png b/.gitbook/assets/image (121).png
new file mode 100644
index 0000000..08b4944
Binary files /dev/null and b/.gitbook/assets/image (121).png differ
diff --git a/.gitbook/assets/image (122).png b/.gitbook/assets/image (122).png
new file mode 100644
index 0000000..32b1220
Binary files /dev/null and b/.gitbook/assets/image (122).png differ
diff --git a/.gitbook/assets/image (123).png b/.gitbook/assets/image (123).png
new file mode 100644
index 0000000..62925ec
Binary files /dev/null and b/.gitbook/assets/image (123).png differ
diff --git a/.gitbook/assets/image (124).png b/.gitbook/assets/image (124).png
new file mode 100644
index 0000000..eaf34e5
Binary files /dev/null and b/.gitbook/assets/image (124).png differ
diff --git a/.gitbook/assets/image (125).png b/.gitbook/assets/image (125).png
new file mode 100644
index 0000000..9d0c9a8
Binary files /dev/null and b/.gitbook/assets/image (125).png differ
diff --git a/.gitbook/assets/image (126).png b/.gitbook/assets/image (126).png
new file mode 100644
index 0000000..e4e0299
Binary files /dev/null and b/.gitbook/assets/image (126).png differ
diff --git a/.gitbook/assets/image (127).png b/.gitbook/assets/image (127).png
new file mode 100644
index 0000000..70dcf33
Binary files /dev/null and b/.gitbook/assets/image (127).png differ
diff --git a/.gitbook/assets/image (128).png b/.gitbook/assets/image (128).png
new file mode 100644
index 0000000..80fe714
Binary files /dev/null and b/.gitbook/assets/image (128).png differ
diff --git a/.gitbook/assets/image (129).png b/.gitbook/assets/image (129).png
new file mode 100644
index 0000000..ec4991a
Binary files /dev/null and b/.gitbook/assets/image (129).png differ
diff --git a/.gitbook/assets/image (13).png b/.gitbook/assets/image (13).png
new file mode 100644
index 0000000..cb4c4be
Binary files /dev/null and b/.gitbook/assets/image (13).png differ
diff --git a/.gitbook/assets/image (130).png b/.gitbook/assets/image (130).png
new file mode 100644
index 0000000..32b1220
Binary files /dev/null and b/.gitbook/assets/image (130).png differ
diff --git a/.gitbook/assets/image (131).png b/.gitbook/assets/image (131).png
new file mode 100644
index 0000000..a3f53e7
Binary files /dev/null and b/.gitbook/assets/image (131).png differ
diff --git a/.gitbook/assets/image (132).png b/.gitbook/assets/image (132).png
new file mode 100644
index 0000000..8ec5e61
Binary files /dev/null and b/.gitbook/assets/image (132).png differ
diff --git a/.gitbook/assets/image (133).png b/.gitbook/assets/image (133).png
new file mode 100644
index 0000000..ec4991a
Binary files /dev/null and b/.gitbook/assets/image (133).png differ
diff --git a/.gitbook/assets/image (134).png b/.gitbook/assets/image (134).png
new file mode 100644
index 0000000..30d260e
Binary files /dev/null and b/.gitbook/assets/image (134).png differ
diff --git a/.gitbook/assets/image (14).png b/.gitbook/assets/image (14).png
new file mode 100644
index 0000000..c033d71
Binary files /dev/null and b/.gitbook/assets/image (14).png differ
diff --git a/.gitbook/assets/image (15).png b/.gitbook/assets/image (15).png
new file mode 100644
index 0000000..61eaf58
Binary files /dev/null and b/.gitbook/assets/image (15).png differ
diff --git a/.gitbook/assets/image (16).png b/.gitbook/assets/image (16).png
new file mode 100644
index 0000000..43ac185
Binary files /dev/null and b/.gitbook/assets/image (16).png differ
diff --git a/.gitbook/assets/image (17).png b/.gitbook/assets/image (17).png
new file mode 100644
index 0000000..338b2e1
Binary files /dev/null and b/.gitbook/assets/image (17).png differ
diff --git a/.gitbook/assets/image (18).png b/.gitbook/assets/image (18).png
new file mode 100644
index 0000000..1b24b47
Binary files /dev/null and b/.gitbook/assets/image (18).png differ
diff --git a/.gitbook/assets/image (19).png b/.gitbook/assets/image (19).png
new file mode 100644
index 0000000..1b28df5
Binary files /dev/null and b/.gitbook/assets/image (19).png differ
diff --git a/.gitbook/assets/image (2).png b/.gitbook/assets/image (2).png
new file mode 100644
index 0000000..9f063b8
Binary files /dev/null and b/.gitbook/assets/image (2).png differ
diff --git a/.gitbook/assets/image (20).png b/.gitbook/assets/image (20).png
new file mode 100644
index 0000000..f22b52a
Binary files /dev/null and b/.gitbook/assets/image (20).png differ
diff --git a/.gitbook/assets/image (21).png b/.gitbook/assets/image (21).png
new file mode 100644
index 0000000..ec4991a
Binary files /dev/null and b/.gitbook/assets/image (21).png differ
diff --git a/.gitbook/assets/image (22).png b/.gitbook/assets/image (22).png
new file mode 100644
index 0000000..8117877
Binary files /dev/null and b/.gitbook/assets/image (22).png differ
diff --git a/.gitbook/assets/image (23).png b/.gitbook/assets/image (23).png
new file mode 100644
index 0000000..111694b
Binary files /dev/null and b/.gitbook/assets/image (23).png differ
diff --git a/.gitbook/assets/image (24).png b/.gitbook/assets/image (24).png
new file mode 100644
index 0000000..1a7ef7d
Binary files /dev/null and b/.gitbook/assets/image (24).png differ
diff --git a/.gitbook/assets/image (25).png b/.gitbook/assets/image (25).png
new file mode 100644
index 0000000..28836fa
Binary files /dev/null and b/.gitbook/assets/image (25).png differ
diff --git a/.gitbook/assets/image (26).png b/.gitbook/assets/image (26).png
new file mode 100644
index 0000000..32860d2
Binary files /dev/null and b/.gitbook/assets/image (26).png differ
diff --git a/.gitbook/assets/image (27).png b/.gitbook/assets/image (27).png
new file mode 100644
index 0000000..4e0c254
Binary files /dev/null and b/.gitbook/assets/image (27).png differ
diff --git a/.gitbook/assets/image (28).png b/.gitbook/assets/image (28).png
new file mode 100644
index 0000000..8342b94
Binary files /dev/null and b/.gitbook/assets/image (28).png differ
diff --git a/.gitbook/assets/image (29).png b/.gitbook/assets/image (29).png
new file mode 100644
index 0000000..aba1ce2
Binary files /dev/null and b/.gitbook/assets/image (29).png differ
diff --git a/.gitbook/assets/image (3).png b/.gitbook/assets/image (3).png
new file mode 100644
index 0000000..05e469a
Binary files /dev/null and b/.gitbook/assets/image (3).png differ
diff --git a/.gitbook/assets/image (30).png b/.gitbook/assets/image (30).png
new file mode 100644
index 0000000..74433cc
Binary files /dev/null and b/.gitbook/assets/image (30).png differ
diff --git a/.gitbook/assets/image (31).png b/.gitbook/assets/image (31).png
new file mode 100644
index 0000000..8ffa396
Binary files /dev/null and b/.gitbook/assets/image (31).png differ
diff --git a/.gitbook/assets/image (32).png b/.gitbook/assets/image (32).png
new file mode 100644
index 0000000..ac70049
Binary files /dev/null and b/.gitbook/assets/image (32).png differ
diff --git a/.gitbook/assets/image (33).png b/.gitbook/assets/image (33).png
new file mode 100644
index 0000000..5e6269f
Binary files /dev/null and b/.gitbook/assets/image (33).png differ
diff --git a/.gitbook/assets/image (34).png b/.gitbook/assets/image (34).png
new file mode 100644
index 0000000..8d9b985
Binary files /dev/null and b/.gitbook/assets/image (34).png differ
diff --git a/.gitbook/assets/image (35).png b/.gitbook/assets/image (35).png
new file mode 100644
index 0000000..a7c48c5
Binary files /dev/null and b/.gitbook/assets/image (35).png differ
diff --git a/.gitbook/assets/image (36).png b/.gitbook/assets/image (36).png
new file mode 100644
index 0000000..6b8910d
Binary files /dev/null and b/.gitbook/assets/image (36).png differ
diff --git a/.gitbook/assets/image (37).png b/.gitbook/assets/image (37).png
new file mode 100644
index 0000000..8a4e614
Binary files /dev/null and b/.gitbook/assets/image (37).png differ
diff --git a/.gitbook/assets/image (38).png b/.gitbook/assets/image (38).png
new file mode 100644
index 0000000..9359e44
Binary files /dev/null and b/.gitbook/assets/image (38).png differ
diff --git a/.gitbook/assets/image (39).png b/.gitbook/assets/image (39).png
new file mode 100644
index 0000000..8ec5e61
Binary files /dev/null and b/.gitbook/assets/image (39).png differ
diff --git a/.gitbook/assets/image (4).png b/.gitbook/assets/image (4).png
new file mode 100644
index 0000000..698c16f
Binary files /dev/null and b/.gitbook/assets/image (4).png differ
diff --git a/.gitbook/assets/image (40).png b/.gitbook/assets/image (40).png
new file mode 100644
index 0000000..94a45c7
Binary files /dev/null and b/.gitbook/assets/image (40).png differ
diff --git a/.gitbook/assets/image (41).png b/.gitbook/assets/image (41).png
new file mode 100644
index 0000000..83df7ac
Binary files /dev/null and b/.gitbook/assets/image (41).png differ
diff --git a/.gitbook/assets/image (42).png b/.gitbook/assets/image (42).png
new file mode 100644
index 0000000..2bb0715
Binary files /dev/null and b/.gitbook/assets/image (42).png differ
diff --git a/.gitbook/assets/image (43).png b/.gitbook/assets/image (43).png
new file mode 100644
index 0000000..3fa6e69
Binary files /dev/null and b/.gitbook/assets/image (43).png differ
diff --git a/.gitbook/assets/image (44).png b/.gitbook/assets/image (44).png
new file mode 100644
index 0000000..3628576
Binary files /dev/null and b/.gitbook/assets/image (44).png differ
diff --git a/.gitbook/assets/image (45).png b/.gitbook/assets/image (45).png
new file mode 100644
index 0000000..3cdd19d
Binary files /dev/null and b/.gitbook/assets/image (45).png differ
diff --git a/.gitbook/assets/image (46).png b/.gitbook/assets/image (46).png
new file mode 100644
index 0000000..5f9725e
Binary files /dev/null and b/.gitbook/assets/image (46).png differ
diff --git a/.gitbook/assets/image (47).png b/.gitbook/assets/image (47).png
new file mode 100644
index 0000000..7e79d50
Binary files /dev/null and b/.gitbook/assets/image (47).png differ
diff --git a/.gitbook/assets/image (48).png b/.gitbook/assets/image (48).png
new file mode 100644
index 0000000..c791d64
Binary files /dev/null and b/.gitbook/assets/image (48).png differ
diff --git a/.gitbook/assets/image (49).png b/.gitbook/assets/image (49).png
new file mode 100644
index 0000000..ac70049
Binary files /dev/null and b/.gitbook/assets/image (49).png differ
diff --git a/.gitbook/assets/image (5).png b/.gitbook/assets/image (5).png
new file mode 100644
index 0000000..9f3cda4
Binary files /dev/null and b/.gitbook/assets/image (5).png differ
diff --git a/.gitbook/assets/image (50).png b/.gitbook/assets/image (50).png
new file mode 100644
index 0000000..584bd59
Binary files /dev/null and b/.gitbook/assets/image (50).png differ
diff --git a/.gitbook/assets/image (51).png b/.gitbook/assets/image (51).png
new file mode 100644
index 0000000..270c316
Binary files /dev/null and b/.gitbook/assets/image (51).png differ
diff --git a/.gitbook/assets/image (52).png b/.gitbook/assets/image (52).png
new file mode 100644
index 0000000..fa8a10b
Binary files /dev/null and b/.gitbook/assets/image (52).png differ
diff --git a/.gitbook/assets/image (53).png b/.gitbook/assets/image (53).png
new file mode 100644
index 0000000..297ecbb
Binary files /dev/null and b/.gitbook/assets/image (53).png differ
diff --git a/.gitbook/assets/image (54).png b/.gitbook/assets/image (54).png
new file mode 100644
index 0000000..da07950
Binary files /dev/null and b/.gitbook/assets/image (54).png differ
diff --git a/.gitbook/assets/image (55).png b/.gitbook/assets/image (55).png
new file mode 100644
index 0000000..dd02a7e
Binary files /dev/null and b/.gitbook/assets/image (55).png differ
diff --git a/.gitbook/assets/image (56).png b/.gitbook/assets/image (56).png
new file mode 100644
index 0000000..0a7e8bc
Binary files /dev/null and b/.gitbook/assets/image (56).png differ
diff --git a/.gitbook/assets/image (57).png b/.gitbook/assets/image (57).png
new file mode 100644
index 0000000..bd4f4de
Binary files /dev/null and b/.gitbook/assets/image (57).png differ
diff --git a/.gitbook/assets/image (58).png b/.gitbook/assets/image (58).png
new file mode 100644
index 0000000..8a4e614
Binary files /dev/null and b/.gitbook/assets/image (58).png differ
diff --git a/.gitbook/assets/image (59).png b/.gitbook/assets/image (59).png
new file mode 100644
index 0000000..1bb153a
Binary files /dev/null and b/.gitbook/assets/image (59).png differ
diff --git a/.gitbook/assets/image (6).png b/.gitbook/assets/image (6).png
new file mode 100644
index 0000000..2984315
Binary files /dev/null and b/.gitbook/assets/image (6).png differ
diff --git a/.gitbook/assets/image (60).png b/.gitbook/assets/image (60).png
new file mode 100644
index 0000000..266903f
Binary files /dev/null and b/.gitbook/assets/image (60).png differ
diff --git a/.gitbook/assets/image (61).png b/.gitbook/assets/image (61).png
new file mode 100644
index 0000000..795322d
Binary files /dev/null and b/.gitbook/assets/image (61).png differ
diff --git a/.gitbook/assets/image (62).png b/.gitbook/assets/image (62).png
new file mode 100644
index 0000000..d2492a7
Binary files /dev/null and b/.gitbook/assets/image (62).png differ
diff --git a/.gitbook/assets/image (63).png b/.gitbook/assets/image (63).png
new file mode 100644
index 0000000..ec4991a
Binary files /dev/null and b/.gitbook/assets/image (63).png differ
diff --git a/.gitbook/assets/image (64).png b/.gitbook/assets/image (64).png
new file mode 100644
index 0000000..ec4991a
Binary files /dev/null and b/.gitbook/assets/image (64).png differ
diff --git a/.gitbook/assets/image (65).png b/.gitbook/assets/image (65).png
new file mode 100644
index 0000000..13983af
Binary files /dev/null and b/.gitbook/assets/image (65).png differ
diff --git a/.gitbook/assets/image (66).png b/.gitbook/assets/image (66).png
new file mode 100644
index 0000000..bf89c91
Binary files /dev/null and b/.gitbook/assets/image (66).png differ
diff --git a/.gitbook/assets/image (67).png b/.gitbook/assets/image (67).png
new file mode 100644
index 0000000..445151b
Binary files /dev/null and b/.gitbook/assets/image (67).png differ
diff --git a/.gitbook/assets/image (68).png b/.gitbook/assets/image (68).png
new file mode 100644
index 0000000..b2f0a24
Binary files /dev/null and b/.gitbook/assets/image (68).png differ
diff --git a/.gitbook/assets/image (69).png b/.gitbook/assets/image (69).png
new file mode 100644
index 0000000..880478d
Binary files /dev/null and b/.gitbook/assets/image (69).png differ
diff --git a/.gitbook/assets/image (7).png b/.gitbook/assets/image (7).png
new file mode 100644
index 0000000..a22b97a
Binary files /dev/null and b/.gitbook/assets/image (7).png differ
diff --git a/.gitbook/assets/image (70).png b/.gitbook/assets/image (70).png
new file mode 100644
index 0000000..3d6071d
Binary files /dev/null and b/.gitbook/assets/image (70).png differ
diff --git a/.gitbook/assets/image (71).png b/.gitbook/assets/image (71).png
new file mode 100644
index 0000000..419c8bc
Binary files /dev/null and b/.gitbook/assets/image (71).png differ
diff --git a/.gitbook/assets/image (72).png b/.gitbook/assets/image (72).png
new file mode 100644
index 0000000..1e34eca
Binary files /dev/null and b/.gitbook/assets/image (72).png differ
diff --git a/.gitbook/assets/image (73).png b/.gitbook/assets/image (73).png
new file mode 100644
index 0000000..ec4991a
Binary files /dev/null and b/.gitbook/assets/image (73).png differ
diff --git a/.gitbook/assets/image (74).png b/.gitbook/assets/image (74).png
new file mode 100644
index 0000000..39da0af
Binary files /dev/null and b/.gitbook/assets/image (74).png differ
diff --git a/.gitbook/assets/image (75).png b/.gitbook/assets/image (75).png
new file mode 100644
index 0000000..ec4991a
Binary files /dev/null and b/.gitbook/assets/image (75).png differ
diff --git a/.gitbook/assets/image (76).png b/.gitbook/assets/image (76).png
new file mode 100644
index 0000000..266903f
Binary files /dev/null and b/.gitbook/assets/image (76).png differ
diff --git a/.gitbook/assets/image (77).png b/.gitbook/assets/image (77).png
new file mode 100644
index 0000000..0f63ec6
Binary files /dev/null and b/.gitbook/assets/image (77).png differ
diff --git a/.gitbook/assets/image (78).png b/.gitbook/assets/image (78).png
new file mode 100644
index 0000000..eaf34e5
Binary files /dev/null and b/.gitbook/assets/image (78).png differ
diff --git a/.gitbook/assets/image (79).png b/.gitbook/assets/image (79).png
new file mode 100644
index 0000000..32b1220
Binary files /dev/null and b/.gitbook/assets/image (79).png differ
diff --git a/.gitbook/assets/image (8).png b/.gitbook/assets/image (8).png
new file mode 100644
index 0000000..cb4c4be
Binary files /dev/null and b/.gitbook/assets/image (8).png differ
diff --git a/.gitbook/assets/image (80).png b/.gitbook/assets/image (80).png
new file mode 100644
index 0000000..206e3b1
Binary files /dev/null and b/.gitbook/assets/image (80).png differ
diff --git a/.gitbook/assets/image (81).png b/.gitbook/assets/image (81).png
new file mode 100644
index 0000000..2797b04
Binary files /dev/null and b/.gitbook/assets/image (81).png differ
diff --git a/.gitbook/assets/image (82).png b/.gitbook/assets/image (82).png
new file mode 100644
index 0000000..3d6071d
Binary files /dev/null and b/.gitbook/assets/image (82).png differ
diff --git a/.gitbook/assets/image (83).png b/.gitbook/assets/image (83).png
new file mode 100644
index 0000000..8d59e02
Binary files /dev/null and b/.gitbook/assets/image (83).png differ
diff --git a/.gitbook/assets/image (84).png b/.gitbook/assets/image (84).png
new file mode 100644
index 0000000..089199b
Binary files /dev/null and b/.gitbook/assets/image (84).png differ
diff --git a/.gitbook/assets/image (85).png b/.gitbook/assets/image (85).png
new file mode 100644
index 0000000..44b8550
Binary files /dev/null and b/.gitbook/assets/image (85).png differ
diff --git a/.gitbook/assets/image (86).png b/.gitbook/assets/image (86).png
new file mode 100644
index 0000000..2dc3ad9
Binary files /dev/null and b/.gitbook/assets/image (86).png differ
diff --git a/.gitbook/assets/image (87).png b/.gitbook/assets/image (87).png
new file mode 100644
index 0000000..7d6e49e
Binary files /dev/null and b/.gitbook/assets/image (87).png differ
diff --git a/.gitbook/assets/image (88).png b/.gitbook/assets/image (88).png
new file mode 100644
index 0000000..590e1d4
Binary files /dev/null and b/.gitbook/assets/image (88).png differ
diff --git a/.gitbook/assets/image (89).png b/.gitbook/assets/image (89).png
new file mode 100644
index 0000000..accbd18
Binary files /dev/null and b/.gitbook/assets/image (89).png differ
diff --git a/.gitbook/assets/image (9).png b/.gitbook/assets/image (9).png
new file mode 100644
index 0000000..ec4991a
Binary files /dev/null and b/.gitbook/assets/image (9).png differ
diff --git a/.gitbook/assets/image (90).png b/.gitbook/assets/image (90).png
new file mode 100644
index 0000000..7de1a72
Binary files /dev/null and b/.gitbook/assets/image (90).png differ
diff --git a/.gitbook/assets/image (91).png b/.gitbook/assets/image (91).png
new file mode 100644
index 0000000..0958491
Binary files /dev/null and b/.gitbook/assets/image (91).png differ
diff --git a/.gitbook/assets/image (92).png b/.gitbook/assets/image (92).png
new file mode 100644
index 0000000..01e50e2
Binary files /dev/null and b/.gitbook/assets/image (92).png differ
diff --git a/.gitbook/assets/image (93).png b/.gitbook/assets/image (93).png
new file mode 100644
index 0000000..2f75b5c
Binary files /dev/null and b/.gitbook/assets/image (93).png differ
diff --git a/.gitbook/assets/image (94).png b/.gitbook/assets/image (94).png
new file mode 100644
index 0000000..abc2343
Binary files /dev/null and b/.gitbook/assets/image (94).png differ
diff --git a/.gitbook/assets/image (95).png b/.gitbook/assets/image (95).png
new file mode 100644
index 0000000..d925053
Binary files /dev/null and b/.gitbook/assets/image (95).png differ
diff --git a/.gitbook/assets/image (96).png b/.gitbook/assets/image (96).png
new file mode 100644
index 0000000..0c8fd57
Binary files /dev/null and b/.gitbook/assets/image (96).png differ
diff --git a/.gitbook/assets/image (97).png b/.gitbook/assets/image (97).png
new file mode 100644
index 0000000..ff4dfe4
Binary files /dev/null and b/.gitbook/assets/image (97).png differ
diff --git a/.gitbook/assets/image (98).png b/.gitbook/assets/image (98).png
new file mode 100644
index 0000000..ec4991a
Binary files /dev/null and b/.gitbook/assets/image (98).png differ
diff --git a/.gitbook/assets/image (99).png b/.gitbook/assets/image (99).png
new file mode 100644
index 0000000..ec4991a
Binary files /dev/null and b/.gitbook/assets/image (99).png differ
diff --git a/.gitbook/assets/image.png b/.gitbook/assets/image.png
new file mode 100644
index 0000000..fb02953
Binary files /dev/null and b/.gitbook/assets/image.png differ
diff --git a/.gitbook/assets/wechatimg179.png b/.gitbook/assets/wechatimg179.png
new file mode 100644
index 0000000..fa0f544
Binary files /dev/null and b/.gitbook/assets/wechatimg179.png differ
diff --git a/.gitbook/assets/wechatimg188.png b/.gitbook/assets/wechatimg188.png
new file mode 100644
index 0000000..0ab81a7
Binary files /dev/null and b/.gitbook/assets/wechatimg188.png differ
diff --git a/0lemon/chang-jian-wen-ti-faq.md b/0lemon/chang-jian-wen-ti-faq.md
new file mode 100644
index 0000000..acf92f1
--- /dev/null
+++ b/0lemon/chang-jian-wen-ti-faq.md
@@ -0,0 +1,18 @@
+# ❓ 常见问题\[FAQ\]
+
+## GitBook是什么?
+
+GitBook 是一个基于 [Node.js](https://baike.baidu.com/item/Node.js) 的命令行工具,可使用 [Github](https://baike.baidu.com/item/Github)/[Git](https://baike.baidu.com/item/Git/12647237) 和 [Markdown](https://baike.baidu.com/item/Markdown) 来制作精美的电子书,GitBook 并非关于 Git 的教程。
+
+## 本书是怎么写的?
+
+本书由作者使用Markdown编写,部署至Gitbook;并同步到了作者的Github。
+
+## 作者为什么写这本书?
+
+作者写这本书的初心是为区块链圈子做一些知识普及,提升区块链参与者的知识储备,为想学习和加入区块链世界的小伙伴提供钥匙。
+
+## 作者是做什么的?
+
+区块链的世界注重隐私,所以作者就不公开身份了。作者是ETH早期生态开发者,是区块链的忠实粉丝、学术研究与技术开发极客,并且对区块链有着研究一生的信仰。
+
diff --git a/0lemon/coffee.md b/0lemon/coffee.md
new file mode 100644
index 0000000..a2550ec
--- /dev/null
+++ b/0lemon/coffee.md
@@ -0,0 +1,89 @@
+---
+description: A cup of coffee to encourage the author
+---
+
+# ☕️ Coffee
+
+## Token Address
+
+```coffeescript
+//支持贡献的代币
+//BTC、ETH、TRX、HT、BNB、USDT、FIL
+```
+
+{% tabs %}
+{% tab title="BTC" %}
+
+
+{% code title="点击右侧复制地址" %}
+```text
+15g7X3EvkLew4CpZQWg5JUHDPTT4stCKde
+```
+{% endcode %}
+{% endtab %}
+
+{% tab title="ETH" %}
+
+
+{% code title="点击右侧复制地址" %}
+```text
+0xC00748BB783a5c29246D13A3E96977ED10b9B463
+```
+{% endcode %}
+{% endtab %}
+
+{% tab title="TRX" %}
+
+
+{% code title="点击右侧复制地址" %}
+```coffeescript
+TJdPxBwM3RcXuKNo8RvsZSkApoVHcts1AQ
+```
+{% endcode %}
+{% endtab %}
+
+{% tab title="HT" %}
+
+
+{% code title="点击右侧复制地址" %}
+```text
+0xC00748BB783a5c29246D13A3E96977ED10b9B463
+```
+{% endcode %}
+{% endtab %}
+
+{% tab title="BNB" %}
+
+
+{% code title="点击右侧复制地址" %}
+```text
+0xC00748BB783a5c29246D13A3E96977ED10b9B463
+```
+{% endcode %}
+{% endtab %}
+
+{% tab title="FIL" %}
+
+{% endtab %}
+
+{% tab title="USDT-TRC20" %}
+
+
+{% code title="点击右侧复制地址" %}
+```text
+TJdPxBwM3RcXuKNo8RvsZSkApoVHcts1AQ
+```
+{% endcode %}
+{% endtab %}
+
+{% tab title="USDT-ERC20" %}
+
+
+{% code title="点击右侧复制地址" %}
+```text
+0xC00748BB783a5c29246D13A3E96977ED10b9B463
+```
+{% endcode %}
+{% endtab %}
+{% endtabs %}
+
diff --git a/0lemon/dao-lan-mu-lu.md b/0lemon/dao-lan-mu-lu.md
new file mode 100644
index 0000000..96fb9c2
--- /dev/null
+++ b/0lemon/dao-lan-mu-lu.md
@@ -0,0 +1,30 @@
+# 📖 导览(目录)
+
+### 快速开始
+
+{% page-ref page="../" %}
+
+{% page-ref page="chang-jian-wen-ti-faq.md" %}
+
+{% page-ref page="sheng-tai/" %}
+
+### Community
+
+{% page-ref page="../re-dian-zi-xun/turn.md" %}
+
+{% page-ref page="../re-dian-zi-xun/xue-zhe-tou-gao/" %}
+
+{% page-ref page="../re-dian-zi-xun/jing-cai-huo-dong/" %}
+
+### 区块链知识学习
+
+{% page-ref page="../ning-meng-dai-ni-ren-shi-qu-kuai-lian/" %}
+
+{% page-ref page="../defi/" %}
+
+{% page-ref page="../yuan-yu-zhou/" %}
+
+### 区块链技术学习
+
+{% page-ref page="../qu-kuai-lian-ji-shu-xue-xi/solidity-ru-men-ke-cheng/" %}
+
diff --git a/0lemon/sheng-tai/README.md b/0lemon/sheng-tai/README.md
new file mode 100644
index 0000000..bf9b19f
--- /dev/null
+++ b/0lemon/sheng-tai/README.md
@@ -0,0 +1,2 @@
+# 🌍 生态
+
diff --git a/0lemon/sheng-tai/api.md b/0lemon/sheng-tai/api.md
new file mode 100644
index 0000000..500671c
--- /dev/null
+++ b/0lemon/sheng-tai/api.md
@@ -0,0 +1,62 @@
+# API
+
+{% api-method method="get" host="https://api.cakes.com" path="/v1/cakes/:id" %}
+{% api-method-summary %}
+Get Cakes
+{% endapi-method-summary %}
+
+{% api-method-description %}
+This endpoint allows you to get free cakes.
+{% endapi-method-description %}
+
+{% api-method-spec %}
+{% api-method-request %}
+{% api-method-path-parameters %}
+{% api-method-parameter name="id" type="string" %}
+ID of the cake to get, for free of course.
+{% endapi-method-parameter %}
+{% endapi-method-path-parameters %}
+
+{% api-method-headers %}
+{% api-method-parameter name="Authentication" type="string" required=true %}
+Authentication token to track down who is emptying our stocks.
+{% endapi-method-parameter %}
+{% endapi-method-headers %}
+
+{% api-method-query-parameters %}
+{% api-method-parameter name="recipe" type="string" %}
+The API will do its best to find a cake matching the provided recipe.
+{% endapi-method-parameter %}
+
+{% api-method-parameter name="gluten" type="boolean" %}
+Whether the cake should be gluten-free or not.
+{% endapi-method-parameter %}
+{% endapi-method-query-parameters %}
+{% endapi-method-request %}
+
+{% api-method-response %}
+{% api-method-response-example httpCode=200 %}
+{% api-method-response-example-description %}
+Cake successfully retrieved.
+{% endapi-method-response-example-description %}
+
+```
+{ "name": "Cake's name", "recipe": "Cake's recipe name", "cake": "Binary cake"}
+```
+{% endapi-method-response-example %}
+
+{% api-method-response-example httpCode=404 %}
+{% api-method-response-example-description %}
+Could not find a cake matching this query.
+{% endapi-method-response-example-description %}
+
+```
+{ "message": "Ain't no cake like that."}
+```
+{% endapi-method-response-example %}
+{% endapi-method-response %}
+{% endapi-method-spec %}
+{% endapi-method %}
+
+
+
diff --git a/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.21.md b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.21.md
new file mode 100644
index 0000000..81ca492
--- /dev/null
+++ b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.21.md
@@ -0,0 +1,8 @@
+# 2021.07.21
+
+## 1.0.0 - 2021-07-21
+
+### Added
+
+* This program was created.
+
diff --git a/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.22.md b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.22.md
new file mode 100644
index 0000000..b2e5be7
--- /dev/null
+++ b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.22.md
@@ -0,0 +1,8 @@
+# 2021.07.22
+
+## 1.0.1 - 2021-07-22
+
+### Update
+
+* Improve the book structure and directory guide.
+
diff --git a/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.23.md b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.23.md
new file mode 100644
index 0000000..a4ef4ba
--- /dev/null
+++ b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.23.md
@@ -0,0 +1,8 @@
+# 2021.07.23
+
+## 1.0.2 - 2021-07-23
+
+### Update
+
+* Updated 11 articles.
+
diff --git a/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.24.md b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.24.md
new file mode 100644
index 0000000..596c3a8
--- /dev/null
+++ b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.24.md
@@ -0,0 +1,10 @@
+# 2021.07.24
+
+## 1.0.3 - 2021-07-24
+
+### Update
+
+* Updated directory structure.
+* Added technical tutorials.
+* Updated article.
+
diff --git a/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.25.md b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.25.md
new file mode 100644
index 0000000..e11a01a
--- /dev/null
+++ b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.25.md
@@ -0,0 +1,8 @@
+# 2021.07.25
+
+## 1.0.4 - 2021-07-25
+
+### Update
+
+* Updated article.
+
diff --git a/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.26.md b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.26.md
new file mode 100644
index 0000000..42fbdab
--- /dev/null
+++ b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.26.md
@@ -0,0 +1,8 @@
+# 2021.07.26
+
+## 1.0.5 - 2021-07-26
+
+### Update
+
+* Updated article.
+
diff --git a/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.27.md b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.27.md
new file mode 100644
index 0000000..a103b93
--- /dev/null
+++ b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.27.md
@@ -0,0 +1,8 @@
+# 2021.07.27
+
+## 1.0.6 - 2021-07-27
+
+### Update
+
+* Updated article.
+
diff --git a/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.28.md b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.28.md
new file mode 100644
index 0000000..d0c694e
--- /dev/null
+++ b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.28.md
@@ -0,0 +1,8 @@
+# 2021.07.28
+
+## 1.0.7 - 2021-07-28
+
+### Update
+
+* Updated article.
+
diff --git a/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.29.md b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.29.md
new file mode 100644
index 0000000..d147ab7
--- /dev/null
+++ b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.29.md
@@ -0,0 +1,8 @@
+# 2021.07.29
+
+## 1.0.8 - 2021-07-29
+
+### Update
+
+* Updated article.
+
diff --git a/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.30.md b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.30.md
new file mode 100644
index 0000000..6485de2
--- /dev/null
+++ b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.30.md
@@ -0,0 +1,8 @@
+# 2021.07.30
+
+## 1.0.9 - 2021-07-30
+
+### Update
+
+* Updated article.
+
diff --git a/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.31.md b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.31.md
new file mode 100644
index 0000000..fbd0fc2
--- /dev/null
+++ b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.31.md
@@ -0,0 +1,8 @@
+# 2021.07.31
+
+## 1.1.0 - 2021-07-31
+
+### Update
+
+* Updated article.
+
diff --git a/0lemon/sheng-tai/geng-xin-ri-zhi/2021.08.01.md b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.08.01.md
new file mode 100644
index 0000000..bd5e60b
--- /dev/null
+++ b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.08.01.md
@@ -0,0 +1,8 @@
+# 2021.08.01
+
+## 1.1.1 - 2021-08-01
+
+### Update
+
+* Updated article.
+
diff --git a/0lemon/sheng-tai/geng-xin-ri-zhi/2021.08.02.md b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.08.02.md
new file mode 100644
index 0000000..9518f49
--- /dev/null
+++ b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.08.02.md
@@ -0,0 +1,8 @@
+# 2021.08.02
+
+## 1.1.2 - 2021-08-02
+
+### Update
+
+* Updated article.
+
diff --git a/0lemon/sheng-tai/geng-xin-ri-zhi/2021.08.03.md b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.08.03.md
new file mode 100644
index 0000000..2b0ca11
--- /dev/null
+++ b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.08.03.md
@@ -0,0 +1,8 @@
+# 2021.08.03
+
+## 1.1.3 - 2021-08-03
+
+### Update
+
+* Updated article.
+
diff --git a/0lemon/sheng-tai/geng-xin-ri-zhi/2021.08.04.md b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.08.04.md
new file mode 100644
index 0000000..fe657e8
--- /dev/null
+++ b/0lemon/sheng-tai/geng-xin-ri-zhi/2021.08.04.md
@@ -0,0 +1,8 @@
+# 2021.08.04
+
+## 1.1.4 - 2021-08-04
+
+### Update
+
+* Updated article.
+
diff --git a/0lemon/sheng-tai/geng-xin-ri-zhi/README.md b/0lemon/sheng-tai/geng-xin-ri-zhi/README.md
new file mode 100644
index 0000000..affe989
--- /dev/null
+++ b/0lemon/sheng-tai/geng-xin-ri-zhi/README.md
@@ -0,0 +1,2047 @@
+# 更新日志
+
+## 1.0.0 - 2021-07-21
+
+### Anniversary
+
+* Online on July 21, 2021
+
+{% code title="The following code commemorates the launch of this book" %}
+```markup
+
+
+
+
+
+ 0LemonBook - 0LemonBook
+
+
+
+
+
+
+
+
+
+ -----------0LemonBook 带你从0到1学习区块链
0LemonBook由区块链爱好者Lemon使用Gitbook编写。本书包含区块链领域内的全部知识与实时热点资讯+解读,并且接受区块链技术与研究学者的投稿,本书内容会不断更新;书中包含一些区块链代码,仅用于学习;本书针对中国大陆区块链爱好者开放,小白如果想学习区块链也可以通过本书从0到1。
版权与隐私说明:本书包含转载文章与原创文章,并在部分文章中会出现人名、地址、网址等信息;如有侵权或泄露隐私请尽快联系作者删除!本书文章可免费转载但禁止通过转载获利!
0Lemon,区块链爱好者,区块链工程师,早期ETH生态开发者。
GitHub: https://github.com/0Lemon
Gmail: [email protected]
Telegram: https://t.me/joinchat/0-wsS6fJMChkYzc1
LemonChat:开发中...
+
+
+
+
+
+
+
+```
+{% endcode %}
+
+
+
diff --git a/0lemon/sheng-tai/gong-ju/README.md b/0lemon/sheng-tai/gong-ju/README.md
new file mode 100644
index 0000000..e7af555
--- /dev/null
+++ b/0lemon/sheng-tai/gong-ju/README.md
@@ -0,0 +1,2 @@
+# 工具
+
diff --git a/0lemon/sheng-tai/gong-ju/fil-wa-kuang-shou-yi-ji-suan-qi.md b/0lemon/sheng-tai/gong-ju/fil-wa-kuang-shou-yi-ji-suan-qi.md
new file mode 100644
index 0000000..531c21d
--- /dev/null
+++ b/0lemon/sheng-tai/gong-ju/fil-wa-kuang-shou-yi-ji-suan-qi.md
@@ -0,0 +1,4 @@
+# FIL挖矿收益计算器
+
+## 开发中,请等待...
+
diff --git a/0lemon/sheng-tai/gong-ju/uniswap-ding-jia-ji-qi-ren.md b/0lemon/sheng-tai/gong-ju/uniswap-ding-jia-ji-qi-ren.md
new file mode 100644
index 0000000..ef07224
--- /dev/null
+++ b/0lemon/sheng-tai/gong-ju/uniswap-ding-jia-ji-qi-ren.md
@@ -0,0 +1,4 @@
+# Uniswap机器人
+
+## 开发中,请等待...
+
diff --git a/0lemon/sheng-tai/gong-ju/zi-dong-hua-tao-li-ji-qi-ren.md b/0lemon/sheng-tai/gong-ju/zi-dong-hua-tao-li-ji-qi-ren.md
new file mode 100644
index 0000000..da5f23b
--- /dev/null
+++ b/0lemon/sheng-tai/gong-ju/zi-dong-hua-tao-li-ji-qi-ren.md
@@ -0,0 +1,6 @@
+# 自动化套利机器人
+
+## 开发中,请等待...
+
+本工具需作者授权方可使用,非免费使用。
+
diff --git a/0lemon/sheng-tai/ipfs/README.md b/0lemon/sheng-tai/ipfs/README.md
new file mode 100644
index 0000000..a054291
--- /dev/null
+++ b/0lemon/sheng-tai/ipfs/README.md
@@ -0,0 +1,2 @@
+# IPFS
+
diff --git a/0lemon/sheng-tai/qu-kuai-lian-xue-xi-yuan-ma/README.md b/0lemon/sheng-tai/qu-kuai-lian-xue-xi-yuan-ma/README.md
new file mode 100644
index 0000000..9889eb6
--- /dev/null
+++ b/0lemon/sheng-tai/qu-kuai-lian-xue-xi-yuan-ma/README.md
@@ -0,0 +1,12 @@
+# 区块链学习源码
+
+{% code title="说明" %}
+```c
+//参考对应文章自主学习
+//有疑问可联系作者,作者喜欢爱学习的孩子。
+//请勿将任何程序、合约代码
+//用于违法犯罪与非法牟利
+//否则作者将毫无保留像警方提供信息。
+```
+{% endcode %}
+
diff --git a/0lemon/sheng-tai/qu-kuai-lian-xue-xi-yuan-ma/erc20-biao-zhun-he-yue-mo-ban.md b/0lemon/sheng-tai/qu-kuai-lian-xue-xi-yuan-ma/erc20-biao-zhun-he-yue-mo-ban.md
new file mode 100644
index 0000000..62d3139
--- /dev/null
+++ b/0lemon/sheng-tai/qu-kuai-lian-xue-xi-yuan-ma/erc20-biao-zhun-he-yue-mo-ban.md
@@ -0,0 +1,226 @@
+---
+description: 仅用于学习,请勿利用本技术非法牟利
+---
+
+# ERC20标准合约模板
+
+{% tabs %}
+{% tab title="IERC20.sol" %}
+```go
+pragma solidity ^0.5.0;
+
+interface IERC20 {
+
+ function totalSupply() external view returns (uint256);
+
+ function balanceOf(address account) external view returns (uint256);
+
+ function transfer(address recipient, uint256 amount) external returns (bool);
+
+ function allowance(address owner, address spender) external view returns (uint256);
+
+ function approve(address spender, uint256 amount) external returns (bool);
+
+ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
+
+ event Transfer(address indexed from, address indexed to, uint256 value);
+
+ event Approval(address indexed owner, address indexed spender, uint256 value);
+}
+
+```
+{% endtab %}
+
+{% tab title="SafeMath.sol" %}
+```go
+pragma solidity ^0.5.0;
+
+library SafeMath {
+
+ function add(uint256 a, uint256 b) internal pure returns (uint256) {
+ uint256 c = a + b;
+ require(c >= a, "SafeMath: addition overflow");
+
+ return c;
+ }
+
+ function sub(uint256 a, uint256 b) internal pure returns (uint256) {
+ require(b <= a, "SafeMath: subtraction overflow");
+ uint256 c = a - b;
+
+ return c;
+ }
+
+ function mul(uint256 a, uint256 b) internal pure returns (uint256) {
+
+ if (a == 0) {
+ return 0;
+ }
+
+ uint256 c = a * b;
+ require(c / a == b, "SafeMath: multiplication overflow");
+
+ return c;
+ }
+
+ function div(uint256 a, uint256 b) internal pure returns (uint256) {
+ require(b > 0, "SafeMath: division by zero");
+ uint256 c = a / b;
+
+ return c;
+ }
+
+ function mod(uint256 a, uint256 b) internal pure returns (uint256) {
+ require(b != 0, "SafeMath: modulo by zero");
+ return a % b;
+ }
+}
+
+```
+{% endtab %}
+
+{% tab title="Token.sol" %}
+```go
+pragma solidity ^0.5.0;
+
+import "./ERC20.sol";
+import "./ERC20Detailed.sol";
+
+contract Token is ERC20, ERC20Detailed {
+ constructor () public TRC20Detailed("Token ", "TTT", 2) {
+ _mint(msg.sender, 10000000 * (10 ** uint256(decimals())));
+ }
+}
+```
+{% endtab %}
+
+{% tab title="ERC20.sol" %}
+```go
+pragma solidity ^0.5.0;
+
+import "./IERC20.sol";
+import "./SafeMath.sol";
+
+contract ERC20 is IERC20 {
+ using SafeMath for uint256;
+
+ mapping (address => uint256) private _balances;
+
+ mapping (address => mapping (address => uint256)) private _allowances;
+
+ uint256 private _totalSupply;
+
+ function totalSupply() public view returns (uint256) {
+ return _totalSupply;
+ }
+
+ function balanceOf(address account) public view returns (uint256) {
+ return _balances[account];
+ }
+
+ function transfer(address recipient, uint256 amount) public returns (bool) {
+ _transfer(msg.sender, recipient, amount);
+ return true;
+ }
+
+ function allowance(address owner, address spender) public view returns (uint256) {
+ return _allowances[owner][spender];
+ }
+
+ function approve(address spender, uint256 value) public returns (bool) {
+ _approve(msg.sender, spender, value);
+ return true;
+ }
+
+ function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
+ _transfer(sender, recipient, amount);
+ _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount));
+ return true;
+ }
+
+ function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
+ _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
+ return true;
+ }
+
+ function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
+ _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue));
+ return true;
+ }
+
+ function _transfer(address sender, address recipient, uint256 amount) internal {
+ require(sender != address(0), "TRC20: transfer from the zero address");
+ require(recipient != address(0), "TRC20: transfer to the zero address");
+
+ _balances[sender] = _balances[sender].sub(amount);
+ _balances[recipient] = _balances[recipient].add(amount);
+ emit Transfer(sender, recipient, amount);
+ }
+
+ function _mint(address account, uint256 amount) internal {
+ require(account != address(0), "TRC20: mint to the zero address");
+
+ _totalSupply = _totalSupply.add(amount);
+ _balances[account] = _balances[account].add(amount);
+ emit Transfer(address(0), account, amount);
+ }
+
+ function _burn(address account, uint256 value) internal {
+ require(account != address(0), "TRC20: burn from the zero address");
+
+ _totalSupply = _totalSupply.sub(value);
+ _balances[account] = _balances[account].sub(value);
+ emit Transfer(account, address(0), value);
+ }
+
+ function _approve(address owner, address spender, uint256 value) internal {
+ require(owner != address(0), "TRC20: approve from the zero address");
+ require(spender != address(0), "TRC20: approve to the zero address");
+
+ _allowances[owner][spender] = value;
+ emit Approval(owner, spender, value);
+ }
+
+ function _burnFrom(address account, uint256 amount) internal {
+ _burn(account, amount);
+ _approve(account, msg.sender, _allowances[account][msg.sender].sub(amount));
+ }
+}
+```
+{% endtab %}
+
+{% tab title="ERC20Detailed.sol" %}
+```go
+pragma solidity ^0.5.0;
+
+import "./IERC20.sol";
+
+contract ERC20Detailed is IERC20 {
+ string private _name;
+ string private _symbol;
+ uint8 private _decimals;
+
+ constructor (string memory name, string memory symbol, uint8 decimals) public {
+ _name = name;
+ _symbol = symbol;
+ _decimals = decimals;
+ }
+
+ function name() public view returns (string memory) {
+ return _name;
+ }
+
+ function symbol() public view returns (string memory) {
+ return _symbol;
+ }
+
+ function decimals() public view returns (uint8) {
+ return _decimals;
+ }
+}
+
+
+```
+{% endtab %}
+{% endtabs %}
+
diff --git a/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.21.md b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.21.md
new file mode 100644
index 0000000..9daabbc
--- /dev/null
+++ b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.21.md
@@ -0,0 +1,4 @@
+# 2021.07.21
+
+
+
diff --git a/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.22.md b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.22.md
new file mode 100644
index 0000000..f92b69a
--- /dev/null
+++ b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.22.md
@@ -0,0 +1,4 @@
+# 2021.07.22
+
+
+
diff --git a/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.23.md b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.23.md
new file mode 100644
index 0000000..84965c1
--- /dev/null
+++ b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.23.md
@@ -0,0 +1,4 @@
+# 2021.07.23
+
+
+
diff --git a/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.24.md b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.24.md
new file mode 100644
index 0000000..608317b
--- /dev/null
+++ b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.24.md
@@ -0,0 +1,4 @@
+# 2021.07.24
+
+
+
diff --git a/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.25.md b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.25.md
new file mode 100644
index 0000000..e41e550
--- /dev/null
+++ b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.25.md
@@ -0,0 +1,4 @@
+# 2021.07.25
+
+
+
diff --git a/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.26.md b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.26.md
new file mode 100644
index 0000000..f3dbb1b
--- /dev/null
+++ b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.26.md
@@ -0,0 +1,4 @@
+# 2021.07.26
+
+
+
diff --git a/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.27.md b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.27.md
new file mode 100644
index 0000000..0becb81
--- /dev/null
+++ b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.27.md
@@ -0,0 +1,4 @@
+# 2021.07.27
+
+
+
diff --git a/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.28.md b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.28.md
new file mode 100644
index 0000000..859baab
--- /dev/null
+++ b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.28.md
@@ -0,0 +1,4 @@
+# 2021.07.28
+
+
+
diff --git a/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.29.md b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.29.md
new file mode 100644
index 0000000..9b7e4ca
--- /dev/null
+++ b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.29.md
@@ -0,0 +1,4 @@
+# 2021.07.29
+
+
+
diff --git a/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.30.md b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.30.md
new file mode 100644
index 0000000..e0a8fa7
--- /dev/null
+++ b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.30.md
@@ -0,0 +1,4 @@
+# 2021.07.30
+
+
+
diff --git a/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.31.md b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.31.md
new file mode 100644
index 0000000..640a180
--- /dev/null
+++ b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.31.md
@@ -0,0 +1,4 @@
+# 2021.07.31
+
+
+
diff --git a/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.08.01.md b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.08.01.md
new file mode 100644
index 0000000..8563322
--- /dev/null
+++ b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.08.01.md
@@ -0,0 +1,4 @@
+# 2021.08.01
+
+
+
diff --git a/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.08.02.md b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.08.02.md
new file mode 100644
index 0000000..ddcfabd
--- /dev/null
+++ b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.08.02.md
@@ -0,0 +1,4 @@
+# 2021.08.02
+
+
+
diff --git a/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.08.03.md b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.08.03.md
new file mode 100644
index 0000000..d5cc1a8
--- /dev/null
+++ b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.08.03.md
@@ -0,0 +1,4 @@
+# 2021.08.03
+
+
+
diff --git a/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.08.04.md b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.08.04.md
new file mode 100644
index 0000000..72b227c
--- /dev/null
+++ b/0lemon/sheng-tai/shu-ju-kuai-zhao/2021.08.04.md
@@ -0,0 +1,4 @@
+# 2021.08.04
+
+
+
diff --git a/0lemon/sheng-tai/shu-ju-kuai-zhao/README.md b/0lemon/sheng-tai/shu-ju-kuai-zhao/README.md
new file mode 100644
index 0000000..2165413
--- /dev/null
+++ b/0lemon/sheng-tai/shu-ju-kuai-zhao/README.md
@@ -0,0 +1,10 @@
+# 数据快照
+
+{% code title="explain" %}
+```go
+//This module is the book daily visits
+//and evaluation and evaluation
+//index data snapshot statistics, daily update!
+```
+{% endcode %}
+
diff --git a/README.md b/README.md
index e69de29..437069c 100644
--- a/README.md
+++ b/README.md
@@ -0,0 +1,32 @@
+---
+description: '------区块链的维基百科。'
+---
+
+# 🍋0LemonBook
+
+[------带你进入区块链去中心化世界](0lemon/dao-lan-mu-lu.md)
+
+
+
+## 本书介绍
+
+ **0LemonBook**由区块链爱好者Lemon使用Gitbook编写。本书包含区块链领域内的基础知识、科普、实时热点资讯解读、精彩活动分享、技术学习知识与学习源码、区块链相关工具。本书接受区块链技术与研究学者的投稿,本书内容会不断更新。
+
+ **版权与隐私说明:**本书包含转载文章与原创文章,并在部分文章中会出现人名、地址、网址等信息;如有侵权或泄露隐私请尽快联系作者删除!本书文章可免费转载但请注明出处!
+
+ **扩展说明:**本书可根据读者提出的意见或想学习了解的方向进行内容快速更新补充,并且实时紧跟当下热点进行资讯转载与解读。
+
+## 关于作者
+
+ 0Lemon,区块链爱好者,区块链工程师,早期ETH生态开发者。
+
+## 联系作者
+
+GitHub: [https://github.com/0Lemon](https://github.com/0Lemon)
+
+Gmail: [0lemon@gmail.com](https://gmail.com)
+
+Telegram: [https://t.me/joinchat/0-wsS6fJMChkYzc1](https://t.me/joinchat/0-wsS6fJMChkYzc1)
+
+Lemon个人站: [0Lemon主页](https://gateway.pinata.cloud/ipfs/QmYHH4uNCivMNue7AunAvidQUctksiKSJ7FGjmrpExwp7x)(使用IPFS部署)
+
diff --git a/SUMMARY.md b/SUMMARY.md
new file mode 100644
index 0000000..96ca461
--- /dev/null
+++ b/SUMMARY.md
@@ -0,0 +1,132 @@
+# Table of contents
+
+* [🍋0LemonBook](README.md)
+
+## 0Lemon
+
+* [📖 导览(目录)](0lemon/dao-lan-mu-lu.md)
+* [❓ 常见问题\[FAQ\]](0lemon/chang-jian-wen-ti-faq.md)
+* [🌍 生态](0lemon/sheng-tai/README.md)
+ * [更新日志](0lemon/sheng-tai/geng-xin-ri-zhi/README.md)
+ * [2021.08.04](0lemon/sheng-tai/geng-xin-ri-zhi/2021.08.04.md)
+ * [2021.08.03](0lemon/sheng-tai/geng-xin-ri-zhi/2021.08.03.md)
+ * [2021.08.02](0lemon/sheng-tai/geng-xin-ri-zhi/2021.08.02.md)
+ * [2021.08.01](0lemon/sheng-tai/geng-xin-ri-zhi/2021.08.01.md)
+ * [2021.07.31](0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.31.md)
+ * [2021.07.30](0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.30.md)
+ * [2021.07.29](0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.29.md)
+ * [2021.07.28](0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.28.md)
+ * [2021.07.27](0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.27.md)
+ * [2021.07.26](0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.26.md)
+ * [2021.07.25](0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.25.md)
+ * [2021.07.24](0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.24.md)
+ * [2021.07.23](0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.23.md)
+ * [2021.07.22](0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.22.md)
+ * [2021.07.21](0lemon/sheng-tai/geng-xin-ri-zhi/2021.07.21.md)
+ * [数据快照](0lemon/sheng-tai/shu-ju-kuai-zhao/README.md)
+ * [2021.08.04](0lemon/sheng-tai/shu-ju-kuai-zhao/2021.08.04.md)
+ * [2021.08.03](0lemon/sheng-tai/shu-ju-kuai-zhao/2021.08.03.md)
+ * [2021.08.02](0lemon/sheng-tai/shu-ju-kuai-zhao/2021.08.02.md)
+ * [2021.08.01](0lemon/sheng-tai/shu-ju-kuai-zhao/2021.08.01.md)
+ * [2021.07.31](0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.31.md)
+ * [2021.07.30](0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.30.md)
+ * [2021.07.29](0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.29.md)
+ * [2021.07.28](0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.28.md)
+ * [2021.07.27](0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.27.md)
+ * [2021.07.26](0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.26.md)
+ * [2021.07.25](0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.25.md)
+ * [2021.07.24](0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.24.md)
+ * [2021.07.23](0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.23.md)
+ * [2021.07.22](0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.22.md)
+ * [2021.07.21](0lemon/sheng-tai/shu-ju-kuai-zhao/2021.07.21.md)
+ * [API](0lemon/sheng-tai/api.md)
+ * [区块链学习源码](0lemon/sheng-tai/qu-kuai-lian-xue-xi-yuan-ma/README.md)
+ * [ERC20标准合约模板](0lemon/sheng-tai/qu-kuai-lian-xue-xi-yuan-ma/erc20-biao-zhun-he-yue-mo-ban.md)
+ * [工具](0lemon/sheng-tai/gong-ju/README.md)
+ * [FIL挖矿收益计算器](0lemon/sheng-tai/gong-ju/fil-wa-kuang-shou-yi-ji-suan-qi.md)
+ * [Uniswap机器人](0lemon/sheng-tai/gong-ju/uniswap-ding-jia-ji-qi-ren.md)
+ * [自动化套利机器人](0lemon/sheng-tai/gong-ju/zi-dong-hua-tao-li-ji-qi-ren.md)
+ * [DAS去中心化域名](https://app.da.systems/explorer?inviter=alick.bit)
+ * [IPFS](0lemon/sheng-tai/ipfs/README.md)
+ * [柠檬的个人站(IPFS)](https://ipfs.io/ipfs/QmbRFMewRhh2HytLnNRYD3ZWDH1pq7nwhcWe6dmHKCuuAv/%E6%9F%A0%E6%AA%AC%E7%9A%84%E4%B8%AA%E4%BA%BA%E7%AB%99/)
+* [☕️ Coffee](0lemon/coffee.md)
+
+## Community
+
+* [热点+解读](re-dian-zi-xun/turn.md)
+* [学者投稿](re-dian-zi-xun/xue-zhe-tou-gao/README.md)
+ * [两分钟理解算法,告别地毯式搜索](re-dian-zi-xun/xue-zhe-tou-gao/liang-fen-zhong-li-jie-suan-fa-gao-bie-di-tan-shi-sou-suo.md)
+ * [你见过最惨的炒币人是怎样的?](re-dian-zi-xun/xue-zhe-tou-gao/ni-jian-guo-zui-can-de-chao-bi-ren-shi-zen-yang-de.md)
+* [精彩活动](re-dian-zi-xun/jing-cai-huo-dong/README.md)
+ * [杭州2021世界区块链大会](https://www.8btc.com/wbc-2021)
+
+## 区块链知识学习
+
+---
+
+* [柠檬带你快速认识区块链](ning-meng-dai-ni-ren-shi-qu-kuai-lian/README.md)
+ * [区块链是什么?](ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-shi-shen-me.md)
+ * [什么是去中心化?](ning-meng-dai-ni-ren-shi-qu-kuai-lian/shen-me-shi-qu-zhong-xin-hua.md)
+ * [加密数字货币前传:从大卫·乔姆到中本聪](ning-meng-dai-ni-ren-shi-qu-kuai-lian/jia-mi-shu-zi-huo-bi-de-qian-shi-jin-sheng.md)
+ * [分布式账本和去中心网络](ning-meng-dai-ni-ren-shi-qu-kuai-lian/fen-bu-shi-zhang-ben-yu-qu-zhong-xin-hua-wang-luo.md)
+ * [比特币是如何转账的](ning-meng-dai-ni-ren-shi-qu-kuai-lian/bi-te-bi-shi-ru-he-zhuan-zhang-de.md)
+ * [UTXO:未使用的交易输出](ning-meng-dai-ni-ren-shi-qu-kuai-lian/utxo-xiang-jie.md)
+ * [比特币区块链的数据结构](ning-meng-dai-ni-ren-shi-qu-kuai-lian/bi-te-bi-qu-kuai-lian-de-shu-ju-jie-gou.md)
+ * [POW工作量证明](ning-meng-dai-ni-ren-shi-qu-kuai-lian/pow-gong-zuo-liang-zheng-ming.md)
+ * [比特币挖矿机制](ning-meng-dai-ni-ren-shi-qu-kuai-lian/bi-te-bi-wa-kuang-ji-zhi.md)
+ * [区块链技术革命](ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-ji-shu-ge-ming.md)
+ * [区块链将成为互联网基础协议](ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-jiang-cheng-wei-hu-lian-wang-ji-chu-xie-yi.md)
+ * [以太坊](ning-meng-dai-ni-ren-shi-qu-kuai-lian/yi-tai-fang.md)
+ * [Vitallk Buterin \(V神\)](ning-meng-dai-ni-ren-shi-qu-kuai-lian/vitallk-buterinvshen.md)
+ * [智能合约](ning-meng-dai-ni-ren-shi-qu-kuai-lian/zhi-neng-he-yue.md)
+ * [以太坊智能合约是什么?](ning-meng-dai-ni-ren-shi-qu-kuai-lian/yi-tai-fang-zhi-neng-he-yue.md)
+ * [以太坊Token系统](ning-meng-dai-ni-ren-shi-qu-kuai-lian/yi-tai-fang-token-xi-tong.md)
+ * [机器比人更需要通证](ning-meng-dai-ni-ren-shi-qu-kuai-lian/ji-qi-bi-ren-geng-xu-yao-tong-zheng.md)
+ * [ERC20通证标准](ning-meng-dai-ni-ren-shi-qu-kuai-lian/erc20-tong-zheng-biao-zhun.md)
+ * [TheDAO事件与以太坊分叉](ning-meng-dai-ni-ren-shi-qu-kuai-lian/the-dao-zhong-chou-shi-jian-yu-yi-tai-fang-fen-cha.md)
+ * [通证该如何设计?如何表示资产?](ning-meng-dai-ni-ren-shi-qu-kuai-lian/tong-zheng-gai-ru-he-she-ji.md)
+ * [通证的分类](ning-meng-dai-ni-ren-shi-qu-kuai-lian/tong-zheng-de-fen-lei.md)
+ * [以太坊智能合约的技术与组件](ning-meng-dai-ni-ren-shi-qu-kuai-lian/yi-tai-fang-zhi-neng-he-yue-de-ji-shu-yu-zu-jian.md)
+ * [ERC721标准与加密猫](ning-meng-dai-ni-ren-shi-qu-kuai-lian/erc721-biao-zhun-yu-jia-mi-mao.md)
+ * [以太坊的账户](ning-meng-dai-ni-ren-shi-qu-kuai-lian/yi-tai-fang-de-zhang-hu.md)
+ * [区块链四大特征](ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-si-da-te-zheng.md)
+ * [区块链3.0](ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-3.0.md)
+ * [EOS是什么?](ning-meng-dai-ni-ren-shi-qu-kuai-lian/eos-shi-shen-me.md)
+ * [EOS的共识机制](ning-meng-dai-ni-ren-shi-qu-kuai-lian/eos-de-gong-shi-ji-zhi.md)
+ * [丹尼尔·拉瑞莫\(BM\)](ning-meng-dai-ni-ren-shi-qu-kuai-lian/dan-ni-er-la-rui-mo-bm.md)
+ * [一张图了解EOS](ning-meng-dai-ni-ren-shi-qu-kuai-lian/yi-zhang-tu-le-jie-eos.md)
+ * [区块链“不可能三角”](ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-bu-ke-neng-san-jiao.md)
+ * [区块链应用是什么样的?](ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-ying-yong-shi-shen-me-yang-de.md)
+* [著名教科书《How to DeFi ?》](https://0lemonbook.oss-cn-chengdu.aliyuncs.com/defi.pdf)
+* [DEFI](defi/README.md)
+ * [收益聚合器](defi/shou-yi-ju-he-qi.md)
+ * [AMM](defi/amm.md)
+ * [详解DeFi借贷](defi/xiang-jie-defi-jie-dai.md)
+ * [预言机](defi/yu-yan-ji.md)
+* [元宇宙](yuan-yu-zhou/README.md)
+ * [共话元宇宙的梦想与现实](yuan-yu-zhou/gong-hua-yuan-yu-zhou-de-meng-xiang-yu-xian-shi.md)
+* [FileCoin](filecoin/README.md)
+ * [什么是FileCoin?](filecoin/shen-me-shi-filecoin.md)
+ * [IPFS与FileCoin](filecoin/ipfs-yu-filecoin.md)
+* [Trying to update...](untitled-2.md)
+
+## 区块链技术学习
+
+* [Go语言学习](qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/README.md)
+ * [第一章-Go语言简介](qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/README.md)
+ * [1.1Go语言简介](qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/go-yu-yan-jian-jie.md)
+ * [1.2Go语言的特性](qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.2go-yu-yan-de-te-xing.md)
+ * [1.3Go语言为并发而生](qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.3go-yu-yan-wei-bing-fa-er-sheng.md)
+ * [1.4哪些项目使用Go语言?](qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.4-na-xie-xiang-mu-shi-yong-go-yu-yan-kai-fa.md)
+ * [1.5哪些公司在使用Go语言](qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.5-na-xie-gong-si-zai-shi-yong-go-yu-yan.md)
+ * [1.6Go语言适合做什么\(付费\)](qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.6go-yu-yan-kuo-he-zuo-shen-me-fu-fei.md)
+ * [1.7Go语言和其它语言的对比\(付费\)](qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.7go-yu-yan-he-qi-ta-yu-yan-de-dui-bi-fu-fei.md)
+ * [1.8Go语言的性能如何?](qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.8go-yu-yan-de-xing-neng-ru-he.md)
+ * [1.9Go语言标准库强大](qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.9go-yu-yan-biao-zhun-ku-qiang-da.md)
+* [Solidity语言学习](qu-kuai-lian-ji-shu-xue-xi/solidity-yu-yan-xue-xi.md)
+* [以太坊智能合约课程](qu-kuai-lian-ji-shu-xue-xi/solidity-ru-men-ke-cheng/README.md)
+ * [Hello Word](qu-kuai-lian-ji-shu-xue-xi/solidity-ru-men-ke-cheng/hello-word.md)
+ * [智能合约知识图谱](qu-kuai-lian-ji-shu-xue-xi/solidity-ru-men-ke-cheng/pre-preparation.md)
+ * [部署智能合约](qu-kuai-lian-ji-shu-xue-xi/solidity-ru-men-ke-cheng/bu-shu-zhi-neng-he-yue.md)
+ * [Import Truffle](qu-kuai-lian-ji-shu-xue-xi/solidity-ru-men-ke-cheng/import-truffle.md)
+
diff --git a/defi/README.md b/defi/README.md
new file mode 100644
index 0000000..a1a6aee
--- /dev/null
+++ b/defi/README.md
@@ -0,0 +1,2 @@
+# DEFI
+
diff --git a/defi/amm.md b/defi/amm.md
new file mode 100644
index 0000000..672e212
--- /dev/null
+++ b/defi/amm.md
@@ -0,0 +1,32 @@
+---
+description: '---转自CSDN白话区块链-大白'
+---
+
+# AMM
+
+截至目前,AMM技术得到快速发展,吸引了越来越多流动性提供者参与进来。目前Dex上部分代币的交易深度甚至远高于三大交易平台,二三线平台处于非常尴尬的局面,而在其中,AMM技术起着很重要的作用。
+
+## **01 AMM ——自动做市商**
+
+任何市场都可能存在没有足够的有机流动性以支持活跃的交易的状况,做市商本质上就是通过促进这些市场中不会发生的交易来缓解这一问题的代理商。在传统的CEX里许多做市商都是专业的团队或是机构。**而AMM\(Automated Market Maker\),相当于把他们这个角色给真正的去中心化了。**
+
+每个用户都可以把自己的代币扔到流动池里,成为一个小的做市商,然后享受交易对手续费分红。且流动池资金是去中心化开源合约控制,AMM交易数据全部上链,不像传统CEX的平台币销毁或是分红,毕竟没有人知道他们手续费真的挣了多少,平台币流通了多少等等……而在AMM这里,一切透明。
+
+**更重要的是,你的资产依旧在你个人控制的钱包里,而不是进了交易平台,所以资产依旧100%安全,这是传统CEX无论如何不可能实现的。**
+
+## **02 AMM“无常损失”**
+
+AMM技术虽然得到了飞速的发展,近期被很多人所追捧,但并不是完全没有风险的,其中一个风险就是其中的“无常损失”。**下面简单介绍下“无偿损失”。**
+
+拿ETH和UDT交易对来举例子,AMM做市一般需要你将ETH,USDT两种等价值的代币放在流动池中提供流动性,当有人需要购买ETH时,池子会拨出ETH给用户,而流动池收到USDT。如此循环,可以将一个代币的流动性带动起来。而AMM做市的用户,则靠收取交易手续费来赚取利润。
+
+但其中的风险在于,如果ETH的价格持续下跌时,会有更多人把ETH换成USDT,你收回流动性时,ETH就变的多了,USDT就变少了,**相当于系统帮你自动不断抄底ETH**;相反,如果ETH的价格持续上涨,系统会持续帮你卖出ETH,换回USDT。将上面的以太坊换成Dex上的DeFi项目,币**价不断下挫,你手里就是满手山寨币,价值和归零差不多。这就是大家经常提到的“无常损失”。**
+
+## **03 现状**
+
+随着DEX的不断火热,越来越专业的做市商团队以及交易平台加入到流动性池来提供服务并赚取手续费,有点像是BTC的挖矿,虽然一开始大家都可以拿电脑挖,但随着利益越来越大,一定会吸引到越来越专业和高效的人或者服务进场(ASIC,矿池),届时可能就没有小散什么事儿了。**这几乎是在任何行业都不可避免的一种聚集现象。**
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/defi/shou-yi-ju-he-qi.md b/defi/shou-yi-ju-he-qi.md
new file mode 100644
index 0000000..9605064
--- /dev/null
+++ b/defi/shou-yi-ju-he-qi.md
@@ -0,0 +1,44 @@
+---
+description: '---转自币圈子'
+---
+
+# 收益聚合器
+
+**全文导读**
+
+自2020年下半年以来,DeFi得到空前的发展,锁仓总价值不断飙升,据币圈子小编得知,已突破120亿美元,与此同时DeFiTVL也正在以一个不断破前高的态势滚滚向前,DeFi俨然已经成为了加密货币领域的一个独角兽,在DeFi项目中
+
+自2020年下半年以来,DeFi得到空前的发展,锁仓总价值不断飙升,据币圈子小编得知,已突破120亿美元,与此同时DeFiTVL也正在以一个不断破前高的态势滚滚向前,DeFi俨然已经成为了加密货币领域的一个独角兽,在DeFi项目中,DeFi聚合器简直是牛市屯币神器,去中心化+资产增值完美解决屯币老大难问题,虽然很多投资者都听说过收益聚合器一词,但是要问收益聚合器是什么意思?还是有部分投资者不清楚的,接下来币圈子小编就给大家通俗的讲解一下收益聚合器是是什么意思?
+
+## 收益聚合器是什么意思?
+
+所谓收益聚合器,就是一个支持多种DeFi协议的聚合平台,它可以在各个提供流动性挖矿的DeFi协议之间自动进行移仓,帮助用户获得更高的收益。简单来说,就是DeFi世界中的一个基金产品。只不过把中心化的投资团队给去掉,由代码写好的智能合约来代替行使传统基金投资理财的功能。
+
+而聚合器本身是不提供借贷功能的,但是它的智能合约却可以连接到其他的借贷项目中,当我们把自己的数字资产存入聚合器时,聚合器的智能合约会自动寻找各个借贷协议中,收益最高的一个项目,并将资产转移过去,提供借贷资金,获取收益。
+
+此外,它的另一个收益,则来源于其他的一些DeFi交易类项目。这些项目,为了保证交易的稳定性,需要一些资金来给它们提供流动性,作为回报,它们会将交易的手续费以及自己项目的代币,返还给流动性的提供者。而聚合器作为一个多协议的聚合平台,它也可以将自己的智能合约连接到这部分交易类项目中,自动获取收益。
+
+所以,聚合器相当于是一个自动提供交易策略的投资产品,当我们把我们的数字资产——美元稳定币,存入聚合器后,聚合器的智能合约会自动接到借贷类和交易类项目的合约中,选择收益率最高的项目进行投资,获取的收益都会集中在一个池子中,之后再根据一定的规则,分配给用户。
+
+DeFi聚合器的意义有三个方面,一个是减少用户操作,二是减少用户费用,三是提高用户收益。资金真正关注的不是借贷、DEX还是衍生品产品本身,而是收益。通过聚合器优化收益的需求日益增长,这意味着聚合器最终会获得越来越多的用户。
+
+## 收益聚合器提供的收益从何而来?
+
+1.借贷需求
+
+随着人们对密码学资产贷款的需求增长,贷款利率上升,为资金提供方带来了更多收益。尤其是在牛市期间,投机者甚至愿意接受较高的贷款利率,因为他们预期自己加了杠杆的多头头寸会升值。2021 年 4 月,由于市场看涨情绪高涨,Aave 和 Compound 借贷市场的稳定币年化收益率高达 10%。
+
+2.流动性挖矿计划
+
+早期参与者通常都会收到代表协议所有权的治理代币。这会激励人们将资金存入协议,因为作为奖励的代币通常附带治理功能。这个功能通常被认为是有价值的,因为它赋予了代币持有者对项目未来战略方向的发言权。从本质上来说,早期用户因帮助项目发展并承担智能合约可能存在漏洞而带来的早期风险而获得奖励。典型例子有 Sushiswap 和 Yearn Finance。
+
+3.收益共享
+
+一些代币让用户可以从协议收入中分成。AMM 的 LP\(流动性提供者\)代币就是一例\(如需了解更多内容,请点击此处\)。参与交易的人越多,流动性提供者获得的奖励越多。另一种收益共享型代币是 xSUSHI。SUSHI 代币的质押者将获得 xSUSHI 代币作为回报。xSUSHI 代币持有者有权获得 Sushiswap 协议交易收入的 0.05%。Vesper Finance 的治理代币 VSP 也可以质押到 vVSP 池中,共享 Vesper 交易费的 95%。
+
+综上所述,就是币圈子小编对收益聚合器是什么意思的讲解,其实收益聚合器过去是,现在仍然是用DeFi收集收益率的一种有吸引力的方式,在过去的一年中,涌现出了大量的收益聚合器协议,尽管它们背后的总体框架相似,但它们都有自己的风格,具有农民不需要主动制定自己的策略,但可以利用其他用户发明的工作流,将自己的投资策略从主动转变为被动,以及由于跨协议交易是通过智能合约进行的,资金转移是自动完成的,因此用户无需在协议之间手动转移资金的优势。
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/defi/xiang-jie-defi-jie-dai.md b/defi/xiang-jie-defi-jie-dai.md
new file mode 100644
index 0000000..d489587
--- /dev/null
+++ b/defi/xiang-jie-defi-jie-dai.md
@@ -0,0 +1,50 @@
+# 详解DeFi借贷
+
+DeFi领域有很多不同的应用,它们提供了可以替代传统金融的铸币、消费及转账方式。
+
+借贷平台可以说是去中心化金融中最受欢迎的产品。任何人都可以快速、轻松地贷款,而无需向第三方透露身份,也无需经过传统银行必须的标准化检查。这一系统有很大优势,但我们也不应该忽视去中心化借贷可能产生的弊端。
+
+## DeFi借贷的运营模式
+
+DeFi领域目前运营的最大的借贷平台是Compound、Maker、Aave、C.R.E.A.M Finance和dYdX,每年共产生1.06亿美元的利息。虽然它们的运营方式都有些不同,但总体来说,基本原理是一样的。
+
+去中心化借贷的核心是让其可以运营的智能合约。其机制就是一旦满足某些条件就会自动执行的代码,并且不再需要中心化的机构来运营和管理各方之间的互动。将贷款的规则写进智能合约,用户就能够通过智能合约将资产集中起来,再将这些资产分配给借款人。
+
+和传统贷款一样,借款人需要投入抵押品才能贷款。在DeFi中,借款人将加密货币存入智能合约作为抵押品,其价值至少等于甚至要超过其贷款的价值。哪些币种作为抵押品,主要取决于你接入的借贷池,以及借贷平台支持哪些币种。
+
+在贷款结束后,作为借款人,你需要偿还你所借的币及约定的利息。然后,你多存入的资金会作为利息,分配给池子里的各个出借人。这就是为什么人们对出借货币如此感兴趣–他们持有的资金不只是闲置资产,而是投入到工作中,并以支付利息的形式以钱生钱。
+
+这个系统看起来是一个双赢的系统。任何人存入抵押品后都可以贷款,任何人也都可以通过向他人出借来获取加密资产的利息。但这个系统也不是全然没有风险的。
+
+## DeFi借贷的风险
+
+众所周知,加密货币有可能在任何一天发生疯狂的价格波动。当存入的抵押品价格跌破贷款价格时,会发生什么?你的贷款将受到清算惩罚。出于这个原因,大多数平台都要求超额抵押,这意味着用户必须存入比他们打算借的金额更高的金额。
+
+事实上,大多数借款人通常会存入他们将借款金额的200%。这样一来,作为借款人,在你所押的资产作为抵押物的市场价格大幅下跌时,你会得到一定的保护。但在价格大幅下跌的情况下,资金池会开始变现抵押物,以弥补贷款。这意味着借款人最终可能会失去抵押品,但依然保留贷款金额–你要为自己的损失买单。因此,DeFi贷款的时间周期越长风险越大。但是,如果你预测某种资产的价格会飙升,而你又想快速获利,从而轻松偿还贷款,那么短期DeFi贷款是一种杠杠下注的方式。
+
+## 更进一步
+
+加密领域的所有创新都是令人兴奋的,并且看起来都是前景广阔。但与所有在创新前沿运作的事物一样,你需要做功课,以确保你了解所有可能的风险并找出最适合你的项目。
+
+我们之前已经介绍了一些与DeFi借贷相关的基本内容,下面是一个快速的概览,以帮助您弄清下一步要做什么。
+
+#### 稳定币
+
+许多借贷池会将稳定币列为资产,如DAI、USDC和USDT。稳定币是DeFi宇宙的重要组成部分,因此您需要了解稳定币的运营模式,以及市场上交易的各种稳定币之间有什么区别。
+
+#### WBTC
+
+Wrapped BTC是对标BTC的ERC20代币。它被广泛应用于DeFi协议,并且一直是DeFi中流动性的主要驱动力。虽然WBTC代表着比特币,但你要了解,WBTC并不意味着实际持有比特币。
+
+#### Compound
+
+Compound 的玩法有些不同:您的锁定资产将通过 cTokens 进行代币化。这种模式使您的锁定资产可以在整个 DeFi 生态系统中的其他去中心化应用 \(dApp\) 中进行交易和使用。
+
+#### Aave
+
+作为DeFi借贷协议,Aave与Compound类似,但具有一些独特的功能,推动了金融创新的边界。闪电贷款、灵活利率和信用授权都是Aave作为推动DeFi更大扩展的领导者的新服务和标志。
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/defi/yu-yan-ji.md b/defi/yu-yan-ji.md
new file mode 100644
index 0000000..ee51d4b
--- /dev/null
+++ b/defi/yu-yan-ji.md
@@ -0,0 +1,36 @@
+---
+description: '---转自金色财经'
+---
+
+# 预言机
+
+预言机(Oracle)是区块链中非常重要的一个功能,但我发现很少有人讨论,可能多数人对此并不了解。而关于预言机的文章并不多,很多没有讲透彻,甚至还曲解了它的概念。看完这篇文章一定会对 Oracle 有一个深层次的了解
+
+预言机(Oracle)这个名字容易让人对它产生误会,其实预言机并不是用来预测什么的,
+
+**预言机:是一个将数据从区块链外传输到区块链内的机制**。
+
+这么说可能更容易理解:
+
+**预言机:是一个将数据从系统外传输到系统内的工具**
+
+人们提起区块链,总是说它所有交易记录链上可查,安全透明,但是要知道**区块链是一个确定性的,封闭式的系统**,运行在区块链上的智能合约是无法直接从外部获取数据的,只能在一个封闭、孤立的环境中执行任务。而预言机就是一个能将链外数据真实输入到链内,保障链上数据真实性的工具。
+
+通过一个简单的例子让你明白预言机是怎么工作的。比如我和小明在以太坊智能合约上面打赌,明天12:00北京是否下雨,根据程序设定,当时间到达12:00时,条件触发,
+
+如果下雨,判我赢,我拿走奖励
+
+如果不下雨,判小明赢,小明拿走奖励
+
+这个过程是去中心化的,通过智能合约去分配竞猜奖励,不会有第三方进行操纵,但有一个问题,明天北京下不下雨的结果怎么写到链上,触发我和小明谁赢呢?如果帮忙写入结果的人和我串通一气,就算明天不下雨,也在链上写是下雨,判定我赢,那小明是不是输的很亏?
+
+所以为了保证公平,我们挑选了10个人(随机安排的没有什么特殊意义)帮我们写入结果,帮忙写入结果的人每人质押十块钱,如果按照准确方法写入结果就能拿回质押的钱并且还能获得额外奖励,如果恶意写错误的结果,就会被扣除押金作为惩罚。这10个人做的事情就是简单预言机做的事情。
+
+区块链的可溯源、防篡改等特性让数据变得可信,但如果原始数据出了问题,那区块链也不好使,**预言机作为链下数据与链上数据的传导机制**,将现实世界的数据准确无误的写入到区块链上,它的应用场景非常多,可以说一切需要与链下进行数据交互的 DApp 都需要预言机。
+
+比如金融衍生品交易平台、借贷平台、快递追踪/IoT、稳定币、博彩游戏、保险、预测市场等,目前最主要的场景就是 DeFi,预言机准确的将交易价格信息,波动率等核心数据源提供给Defi协议,确保Defi协议顺利运行。
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/filecoin/README.md b/filecoin/README.md
new file mode 100644
index 0000000..421748a
--- /dev/null
+++ b/filecoin/README.md
@@ -0,0 +1,2 @@
+# FileCoin
+
diff --git a/filecoin/ipfs-yu-filecoin.md b/filecoin/ipfs-yu-filecoin.md
new file mode 100644
index 0000000..019e4dd
--- /dev/null
+++ b/filecoin/ipfs-yu-filecoin.md
@@ -0,0 +1,72 @@
+---
+description: 两者是什么?它们的区别
+---
+
+# IPFS与FileCoin
+
+{% hint style="info" %}
+转自CSDN-[星际空间ipfs](https://blog.csdn.net/ispacexio/article/details/112534662),博主原创文章,遵循[ CC 4.0 BY-SA ](http://creativecommons.org/licenses/by-sa/4.0/)版权协议。
+{% endhint %}
+
+Filecoin和IPFS同属于《协议实验室》旗下的明星项目,都是用于在分布式Web中存储和共享数据的基础协议。两种系统都是免费的,开源的,并且共享许多构件,包括数据表示格式(IPLD)和网络通信协议(libp2p)。
+
+
+
+尽管不需要使用Filecoin与IPFS进行交互,但是所有Filecoin节点都是幕后的IPFS节点,并且可以使用libp2p连接到其他IPFS节点并从中获取IPLD格式的数据。但是,Filecoin节点不加入或参与公共IPFS DHT。
+
+#### 数据存储激励
+
+IPFS允许用户在对等网络中存储和传输可验证的,内容寻址的数据。IPFS用户将所需的数据保留在自己的IPFS节点上,这称为固定。有时,可以使用第三方固定服务或通过单个IPFS用户组来固定数据。只要一个用户存储数据并能够在其他用户请求时将其提供给其他用户,数据就存在于网络中。
+
+
+
+IPFS没有内置机制来激励数据存储,而Filecoin作为IPFS的激励层,希望通过区块链激励人们提供分布式存储空间。Filecoin网络创建了用于长期存储的分布式存储市场,具有大存储容量的节点可以将存储空间租给存储用户。
+
+Filecoin网络可确保安全存储数据,但是,存储(密封),验证(证明)和开封(用于检索)的过程在计算上是昂贵的,并且会花费很长时间。因此,Filecoin开启了一个额外的检索市场,在该市场中,专用节点可以通过保留未密封的缓存副本来帮助快速从网络交付内容以进行支付,该传递机制可以利用IPFS进行。
+
+Filecoin可以看作是一个冷存储层,是安全存储大量数据的理想选择。IPFS将是热存储层,旨在快速检索和分发内容。
+
+用户应该选择使用哪个系统?
+
+
+
+#### 使用IPFS
+
+* 由用户自己的节点自己存储数据,否则,必须依靠其他对等方来自愿/自动存储数据或使用集中式固定服务。
+* 必须信任集中式IPFS固定服务才能完成其工作,IPFS没有内置的规定来验证固定服务是否存储了数据并正确提供了数据。
+* IPFS本身非常适合流行的内容(与许多提供商一起使用),激励在多个节点上同步和存储数据的组织以及可以使用强大的社会契约来确保内容长期保存和维护的组织。
+
+#### 使用Filecoin
+
+* 客户与矿工进行存储交易以存储数据,网络验证矿工是否正确存储了数据,在仓储交易期间定期支付存储费用。
+* 不遵守存储协议的矿工将受到处罚。
+* 内容检索可以由存储矿工直接提供,也可以由专门的检索矿工提供。请求数据的用户为此服务付费。
+* Filecoin擅长长时间存储大量数据。
+
+#### 两者同时使用
+
+一些解决方案结合了两个系统中的最佳功能,在Filecoin网络上备份数据,同时通过IPFS网络提供数据快速访问。这样可以确保数据始终可用并且可以快速检索,同时还可以确保将数据安全地备份到Filecoin网络上。Powergate是基于Filecoin和IPFS构建的多层文件存储API,并且是Filecoin数据的索引生成器。
+
+
+
+#### IPFS和Filecoin背后的技术
+
+Filecoin和IPFS在许多层面上都采用了相同的技术:
+
+* 知识产权联盟指定内容寻址数据的数据格式,例如区块链或IPFS存储文件的方式。
+* libp2p提供对等网络功能,连接安全性以及密钥发现和数据分发功能,例如DHT和Pubsub。
+* 多种格式定义面向未来的标识符和数据类型。
+* 图同步和Bitswap支持在节点之间快速高效地进行IPLD数据传输。
+
+
+
+可以看到同样作为协议实验室的明星项目,IPFS作为前沿的去中心化存储网络底层协议,目前已经被包括华为、京东、广电等进行研究和应用。目前运行在IPFS公网上的应用已经有几百个,并且很多传统的大互联网公司都基于IPFS进行存储。
+
+
+
+而Filecoin经过3年多的研发长跑,主网也已经于2020年10月15日正式上线了。作为分布式存储赛道无可争议的龙头项目,随着Filecoin主网上线平稳运行,未来基于Filecoin和IPFS网络的应用和生态会逐步建立,Filecoin的长期价值会逐步显现。
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/filecoin/shen-me-shi-filecoin.md b/filecoin/shen-me-shi-filecoin.md
new file mode 100644
index 0000000..1a76ed5
--- /dev/null
+++ b/filecoin/shen-me-shi-filecoin.md
@@ -0,0 +1,187 @@
+---
+description: FileCoin网络是如何运行的?
+---
+
+# 什么是FileCoin?
+
+{% hint style="info" %}
+转自CSDN-[星际空间ipfs](https://blog.csdn.net/ispacexio/article/details/112534343),博主原创文章,遵循[ CC 4.0 BY-SA ](http://creativecommons.org/licenses/by-sa/4.0/)版权协议。
+{% endhint %}
+
+Filecoin是《协议实验室》旗下基于区块链项目,是IPFS分布式存储协议的激励层,具有内置的经济激励机制,可确保随着时间的推移分布式节点能够可靠地存储文件。
+
+在Filecoin中,用户付费将其文件存储在存储矿工上。存储矿工是负责存储文件并证明其已随时间正确存储文件的计算机。任何想要存储其文件或希望因存储其他用户的文件而获得报酬的人都可以加入Filecoin。可用存储空间以及该存储空间的价格不受任何一家公司的控制。相反,Filecoin促进了开放市场的存储和检索任何人都可以参与的文件。
+
+Filecoin包括区块链和本机加密货币(FIL)。存储矿工通过存储文件赚取FIL单位。Filecoin的区块链记录了要发送和接收FIL的交易,以及来自存储矿工的证明,证明他们正确存储了文件。
+
+
+
+## 对于用户
+
+Filecoin使用户能够以极具竞争力的价格存储其文件,并验证其文件是否正确存储。用户可以通过选择最适合其存储需求的矿机,在成本,冗余性和速度之间选择自己喜欢的折衷方案。实现Filecoin的应用程序可以与网络上的任何矿工协商存储。与集中式存储系统不同,不需要为每个提供程序实现不同的API。用户可以随时通过查看Filecoin区块链上的证据来验证其文件是否正确存储。
+
+
+
+## 对于存储提供商(矿工)
+
+Filecoin使存储提供商可以在公开市场上出售其存储。存储提供商是运行矿工并以此获得Filecoin令牌的人员和组织。矿工可以是任何具有备用磁盘空间的互联网连接计算机,也可以是专门为Filecoin构建的具有大量存储的专用系统。Filecoin的区块链奖励矿工,他们为互联网贡献了有用的存储空间,而不是为了完成浪费的工作量证明计算。
+
+
+
+一旦存储提供商实施了Filecoin协议,他们就可以访问Filecoin用户的整个市场。提供商不需要设计自己的存储API或自己宣传其产品,因为这是由Filecoin的协议和网络处理的。Filecoin通过消除进入壁垒,实现了独立存储提供商蓬勃发展的分散式生态系统。
+
+## Filecoin和Web3.0
+
+Web3是软件开发领域的一项运动,正在将集中式应用程序转变为分散式协议。构建在web3架构上的应用程序不必具有单一控制点,而是可以消除中间人,从而降低大公司进行审查的风险,并使服务容易受到拒绝服务攻击的威胁。Web3是一种不需要信任的基础结构,它允许用户拥有所有权并收回对其数据的控制权。Web3.0本质上是通过允许在同级之间共享文件来允许Filecoin存在的。
+
+
+
+## 网络
+
+Filecoin网络是由Filecoin对等方以不同方式参与而形成的分布式对等网络。对等点通过安全通道进行通信,他们使用这些安全通道将信息分发到网络,在彼此之间传输数据并发现其他对等点,从而保持了连接良好的群体,即使有成千上万的信息,块和消息等信息也会迅速流动。同行参加。
+
+## Filecoin节点
+
+**Filecoin节点**或**Filecoin客户端**是同步Filecoin区块链并验证每个块中消息的对等点,一旦应用,它们就会提供全局状态。节点可以管理Filecoin钱包并在其上接收FIL。
+
+Filecoin节点还可以通过广播将不同类型的消息发布到网络。例如,客户端可以发布一条消息,以将FIL从一个地址发送到另一个地址。节点可以向Filecoin矿工提议存储和检索交易,并在执行时为其支付费用。
+
+
+
+运行Filecoin节点是一个低级任务,通常意味着保持程序24/7运行。有几种Filecoin Node实施方案正在开发中,其中Lotus是最先进的。
+
+## Filecoin矿工
+
+矿工通过执行不同类型的交易并将新的区块附加到链中(每30秒)来向网络提供服务,为此他们收集FIL奖励。
+
+运行Filecoin矿工是一项技术含量很高的任务,具有强大的硬件要求,需要完成必要的证明。迄今为止,Lotus Miner是Filecoin矿工的最先进实现。
+
+## 交易
+
+Filecoin有两种主要的交易类型:存储交易和检索交易。
+
+存储交易是客户端与存储矿工之间的协议,用于在网络中存储一些数据。一旦交易开始,矿工接收到数据打包存储,并反复向区块链证明持续按照协议存储数据,以便获得Fil奖励。否则,矿工将被罚没并失去FIL。
+
+检索交易是客户端与检索矿工(可能是也可能不是存储矿工)之间的协议,以提取存储在网络中的数据(希望以一种快速,可靠的方式)。与存储交易不同,这些交易是通过使用支付渠道以增量方式为接收到的数据付款的链下交易来实现的。
+
+## 证明
+
+如上所述,存储矿工必须证明他们按照交易协议存储数据。这意味着:
+
+1,他们必须存储客户端提交的所有数据
+
+2,他们必须在交易的整个生命周期内进行存储
+
+矿工使用复制证明(PoRep)证明他们已接收到所有数据,并使用其物理存储以该矿工唯一的方式对其进行了编码,而其他矿工无法复制(因此,两笔交易需要相同的交易,数据最终无法重新使用同一磁盘)。交易开始且密封操作完成时提供此证明。
+
+一旦达成交易并在其整个生命周期内,矿工将使用时空证明(PoSt)证明其仍在存储与交易相关的数据。对于PoSt,随机矿工需要证明他们存储的数据的随机部分仍然存在。
+
+Filecoin客户和其他矿工不断验证每个区块中包含的证据是否有效,从而提供必要的安全性并惩罚不履行其交易的矿工。
+
+## Gas费
+
+通过在链中包括交易或证明执行消息会消耗网络上的计算和存储资源,Gas是消息消耗的资源的量度。消息消耗的Gas直接影响发件人必须支付的费用,矿工将其包括在新块中。
+
+历史上在其他区块链中,矿工以本币为单位指定GasFee,然后根据消息消耗的天然气量向生产矿工的区块支付优先费用。Filecoin的工作原理类似,只是要烧掉一定数量的费用(发送到不可恢复的地址)以补偿网络的资源消耗,因为所有节点都需要验证消息。这个想法是基于以太坊的EIP1559 。
+
+Filecoin网络中消耗的费用金额是由动态的 BaseFee给出的,该费用会根据网络拥塞参数(块大小)自动进行调整。当前值可以从块浏览器之一获得,也可以通过检查当前区块来获得。
+
+
+
+此外,每条消息都附有许多与气体有关的参数,这些参数确定了矿工获得的奖励数量。以下是术语和概念的概述:
+
+* **GasUsage:**消息执行实际消耗的气体量。当前协议不知道一条消息在执行之前将确切消耗多少气体,但是可以对其进行估计。GasUsage以Gas单位计量。
+* **BaseFee:**执行每条消息所消耗的每单位燃气消耗的FIL数量。它以attoFIL / Gas为单位计量。
+* **GasLimit:**消息发送者可以消耗,估计和指定的消息执行量的限制。它以Gas为单位测量。块中包含的所有消息的GasLimit的总和不得超过BlockGasLimit。如果消息用尽Gas,则消息将无法执行,并且执行的任何效果都将被还原。
+* **GasFeeCap:**发送方愿意为每个GasUnit支付的最大令牌金额,以将消息包含在块中。它以attoFIL / Gas为单位测量。发送消息时,消息发送者必须具有GasFeeCap \* GasLimit的最小余额,即使并非所有余额都将被消耗掉。GasFeeCap可以防止BaseFee出现较大的意外波动。
+* **GasPremium:**支付给块状生产矿工的优先费,这是由GasFeeCap限制,BaseFee具有更高的优先级。它以attoFIL / Gas为单位进行测量,并且可以低至1 attoFIL / Gas。
+* **高估燃烧:**当GasLimit和GasUsage之间的差异较大时,燃烧的额外气体量会增加。
+
+发件人的一条消息的总费用为:
+
+* **GasUsage** _**BaseFee FIL(已燃烧)+**_
+* _**GasLimit**_ **GasPremium FIL(矿工的奖励)+**
+* **OverEstimationBurn \* BaseFee FIL**
+
+ 一个重要的细节是,无论使用哪种GasFeeCap,一条消息将始终支付燃烧费。因此,低GasFeeCap可能导致减少的GasPremium甚至负数!在这种情况下,包含消息的矿工将不得不自掏腰包支付所需的金额,这意味着他们不太可能在新区块中包含此类消息。
+
+Filecoin实现可以选择其矿工如何选择要包含在新区块中的消息的试探法,但是他们通常会尝试最大化矿工的回报。
+
+## 公开市场
+
+在Filecoin中,文件存储和检索交易是在公开市场上协商的。任何人都无需许可即可加入Filecoin网络。运行矿机仅需要Internet连接和备用磁盘空间。通过降低准入门槛,Filecoin可以实现许多独立存储提供商蓬勃发展的生态系统。
+
+
+
+## 有竞争力的价格
+
+存储和检索的价格由供求关系确定,而不是由企业定价部门确定。Filecoin以极具竞争力的价格提供可靠的存储。矿工的竞争基于其存储,可靠性和速度,而不是通过营销或锁定用户来进行。
+
+## 可靠的存储
+
+由于存储是付费的,因此Filecoin提供了可行的经济理由,使文件随着时间的推移保持可用状态。文件存储在可靠且与互联网连接良好的计算机上。
+
+## 自我修复
+
+Filecoin网络不断验证文件是否正确存储。Filecoin区块链具有内置的自我修复流程,可在其中检测出故障的矿工,并将其文件重新分发给可靠的矿工。
+
+## 可验证的痕迹
+
+在自我修复的过程中,Filecoin会生成可验证的跟踪,表明随着时间的推移文件已正确存储。客户端可以有效地扫描这些跟踪,以确认其文件已正确存储,即使客户端当时处于脱机状态。任何观察者都可以检查任何矿工的往绩记录,并会通知该矿工过去是否有过故障或离线。
+
+## 可验证的矿工可靠性
+
+在Filecoin中,存储提供商通过其在区块链上发布的跟踪记录来证明其可靠性,而不是通过提供商自己发布的营销声明来证明其可靠性。用户不需要依赖状态页面或来自存储提供商的自我报告的统计信息。
+
+## 权衡选择
+
+用户可以在成本,冗余和速度之间进行权衡取舍。用户不仅限于提供商提供的一组数据中心,还可以选择将其文件存储在任何参与Filecoin的矿工上。
+
+## 放置空存储使用
+
+Filecoin会放置磁盘空间,否则将无法使用。激励矿工加入Filecoin是因为他们的参与获得报酬,这与其他没有经济诱因的分布式网络不同。Filecoin还使加入变得容易,因为矿工可以自我管理其存储,无需人工监督即可获得Filecoin代币。
+
+## 抗审查性
+
+Filecoin拒绝审查,因为任何人不能强迫任何存储提供者删除文件或保留服务。网络由许多不同的人和组织运行的许多不同的计算机组成。网络会注意到有缺陷或恶意的行为者,并会自动将其删除。
+
+## 有用的区块链
+
+在Filecoin中,矿工因提供存储而不是执行浪费的计算而获得奖励。Filecoin使用文件复制证明和随时间的存储证明来保护其区块链。它不像其他区块链那样依赖耗能的工作量证明计划。激励矿工聚集硬盘并通过存储文件来使用它们。Filecoin不会仅出于挖矿的目的来激励显卡或者CPU堆积。
+
+
+
+## 为其他区块链提供存储
+
+Filecoin的区块链旨在存储大文件,而其他区块链通常只能存储少量数据,非常昂贵。Filecoin可以为其他区块链提供存储,从而允许它们存储大文件。将来,将在Filecoin中添加机制,使Filecoin的区块链能够与其他区块链上的交易进行互操作。
+
+## 内容寻址
+
+文件是由文件中包含的数据而不是诸如URL之类的易碎标识符来引用的。无论文件在何处托管或由谁托管,文件始终可用。当文件变得流行时,可以通过大量计算机来快速分发文件,而不必依赖中央计算机,因为中央计算机可能会因网络流量而超载。
+
+当多个用户存储同一个文件(并选择不加密不公开文件)时,每个想要下载文件的人都会从Filecoin中受益,从而保持文件可用。无论从何处下载文件,下载者都可以验证他们已收到正确的文件,并且该文件是完整的。
+
+## 内容分发网络
+
+检索式矿工是与许多要下载文件的用户具有良好网络连接的计算机。通过获取流行文件并将其分发给附近的用户,检索矿工将因使网络流量顺畅流动和文件快速下载而获得奖励。
+
+### 单一协议
+
+实现Filecoin的应用程序可以使用相同的协议将其数据存储在任何矿机上,不用为每个提供程序实现的不同API。希望支持多个不同提供商的应用程序不限于其所有提供商都支持的最低公分母集。
+
+### 没有锁定
+
+迁移到其他存储提供商变得更加容易,因为它们都提供相同的服务和API。用户没有被锁定在提供程序中,因为他们依赖提供程序的特定功能。此外,文件具有内容寻址功能,使文件可以在矿工之间直接传输,而无需用户下载和重新上传文件。
+
+传统的云存储提供商通过降低存储文件的成本来锁定用户,但重新获取文件的成本却很高。Filecoin通过促进检索市场来避免这种情况,在该市场中,矿工竞相以尽可能低的价格尽可能快地向用户提供其文件。
+
+## 开源代码
+
+同时运行客户端和存储提供程序的代码是开源的,存储提供商不必开发自己的软件来管理其基础架构,每个人都将从Filecoin代码的改进中受益。
+
+
+
+## 活跃社区
+
+Filecoin拥有活跃的贡献者社区,可以回答问题并帮助新手入门。用户,开发人员和存储提供者之间会打开一个对话框。如果需要帮助,可以联系设计或构建相关系统的人员。访问Filecoin的聊天和论坛。
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/README.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/README.md
new file mode 100644
index 0000000..e6ecef8
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/README.md
@@ -0,0 +1,6 @@
+---
+description: 综合解读区块链更快的理解
+---
+
+# 柠檬带你快速认识区块链
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/bi-te-bi-qu-kuai-lian-de-shu-ju-jie-gou.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/bi-te-bi-qu-kuai-lian-de-shu-ju-jie-gou.md
new file mode 100644
index 0000000..02429fd
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/bi-te-bi-qu-kuai-lian-de-shu-ju-jie-gou.md
@@ -0,0 +1,32 @@
+# 比特币区块链的数据结构
+
+我们回到两个人转账交易的过程中,去理解比特币区块链的数据结构。
+
+ 我发起一笔交易,即我向整个区块链网络广播,我和你两个人想进行这笔交易:我向你的地址中转入一笔比特币,无须你的许可。
+
+ 但只有当这笔交易被打包进最新的比特币区块中时,这笔交易才真正完成。通常来说,当在一笔交易所在的区块之后又增加 5 个区块,即包括它自己在内一共经过 6 次确认时,这笔交易可认为被完全确认。按比特币每个区块的确认时间 10 分钟估算,即一笔交易最终确认要经过约 1 小时。
+
+ 这里包括了两步:一是交易被打包进候选区块,每个节点可以按规则生成不同的候选区块;二是节点挖矿成功,候选区块被成功地加到区块链的尾部,成为最新的正式区块。
+
+ 那么,把一笔交易打包进区块是什么意思呢?这涉及区块链最基础的数据结构,这也是它不可篡改的基础。
+
+ 以下讨论可能略显枯燥,但却是认识比特币与区块链的最基础的知识,我尽量以通俗的语言来解释。
+
+ 区块链之所以被称为 blockchain,是因为它的数据块以链状的形式存储着。从第一个区块即所谓的创世区块开始,新增的区块不断地被连到上一个区块的后面,形成一条链条。
+
+ 每个区块由两个部分组成——区块头部和区块数据。其中,区块头部中有一个哈希指针指向上一个区块,这个哈希指针包含前一个数据块的哈希值。哈希值可以被看成是数据块的指纹,即在后一个区块的头部中均存储有上一个区块数据的指纹。如果上一个区块中的数据被篡改了,那么数据和指纹就对不上号,篡改行为就被发现了。要改变一个区块中的数据,对其后的每个区块都必须相应地进行修改。
+
+> 比特币区块链设计有一种机制让这种修改难以发生,我们稍后在谈到“工作量证明”和“比特币挖矿”时再详细讨论。
+
+ 一个区块中的数据是被打包进这个区块的一系列交易。这些交易按照既定的规则被打包形成特定的二叉树数据结构——梅克尔树(Merkle trees)。按目前的比特币区块的大小,一个区块中能容纳的交易数量在 2000 个左右,比如在第 526957 个区块中容纳了 1804 个交易。
+
+> 可通过如下网站查看比特币区块链的数据信息:[https://blockchain.info/](https://blockchain.info/)。
+
+ 比特币区块链的数据结构中包括两种哈希指针,它们均是不可篡改特性的数据结构基础。一个是形成“区块+链”(block+chain)的链状数据结构,另一个是哈希指针形成的梅克尔树(见图 1)。链状数据结构使得对某一区块内的数据的修改很容易被发现;梅克尔树的结构起类似作用,使得对其中的任何交易数据的修改很容易被发现。
+
+
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/bi-te-bi-shi-ru-he-zhuan-zhang-de.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/bi-te-bi-shi-ru-he-zhuan-zhang-de.md
new file mode 100644
index 0000000..4d111b3
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/bi-te-bi-shi-ru-he-zhuan-zhang-de.md
@@ -0,0 +1,28 @@
+---
+description: 比特币区块链的五个技术性细节
+---
+
+# 比特币是如何转账的
+
+“互联网上的商务交易,几乎都需要借助金融机构作为可信赖的第三方来处理电子支付。”比特币白皮书的第一句话这样写道。中本聪是如何把可信第三方从比特币的交易中去掉的呢?
+
+ 通过两个人之间的转账交易,我们来看看比特币系统是如何实现交易的去中心化的?
+
+ 假设我是甲,要把自己的钱包地址中的 8 个比特币转给你(乙),即转到你的钱包中去。详细讨论这一转账交易过程,我们可以看到比特币区块链是如何工作的五个技术性细节(见图 1):
+
+* [ 分布式账本和去中心网络](fen-bu-shi-zhang-ben-yu-qu-zhong-xin-hua-wang-luo.md)
+* [未使用的交易输出(unspent transaction output,UTXO)](utxo-xiang-jie.md)
+* [比特币区块链的数据结构](bi-te-bi-qu-kuai-lian-de-shu-ju-jie-gou.md)
+* [工作量证明共识机制](pow-gong-zuo-liang-zheng-ming.md)
+* [ 比特币挖矿机制与代币生成机制](bi-te-bi-wa-kuang-ji-zhi.md)
+
+ 由于篇幅限制,我将分五节讲解以上五个技术细节,大家可以进入对应的章节学习。
+
+ 在沿着比特币系统所开创的路线开发各类基础公链时,开发者们从各个角度调整与改进以上五个技术性细节,形成新的区块链系统。
+
+
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/bi-te-bi-wa-kuang-ji-zhi.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/bi-te-bi-wa-kuang-ji-zhi.md
new file mode 100644
index 0000000..3497c86
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/bi-te-bi-wa-kuang-ji-zhi.md
@@ -0,0 +1,79 @@
+---
+description: 挖矿是什么意思?矿工都做了什么?
+---
+
+# 比特币挖矿机制
+
+这篇文章从本质上讲解了矿工挖矿是什么意思,需要具备以下基础知识:
+
+* [比特币是如何转账的?](bi-te-bi-shi-ru-he-zhuan-zhang-de.md)
+* [比特币的分布式账本和去中心网络](fen-bu-shi-zhang-ben-yu-qu-zhong-xin-hua-wang-luo.md)
+* [UTXO(未使用的交易输出)](utxo-xiang-jie.md)
+* [比特币区块链的数据结构](bi-te-bi-qu-kuai-lian-de-shu-ju-jie-gou.md)
+* [工作量证明共识机制](pow-gong-zuo-liang-zheng-ming.md)
+
+ 挖矿节点计算机在挖矿时要做两个任务:
+
+* 第一个任务是把比特币网络中未确认的交易按梅克尔树组装成候选区块,未被纳入的交易则往下顺延。
+* 在创建候选区块时,除了普通的交易之外,矿工在其中增加一个特殊的交易:币基交易(coinbase transaction)。如果挖矿成功,则币基交易会凭空转出新区块的奖励比特币到矿工的钱包地址中,从而发行这些比特币出来。这个特殊交易也被叫作“创币交易”,新的比特币是在这一交易中被创造出来的。
+
+ 挖矿节点计算机的第二个任务是真正的挖矿,即进行加密哈希计算,解决一个计算难题,进行算力竞争。在众多争夺记账权的节点中,谁最先完成这个计算,它打包的区块就被加到了区块链的最后,成为最新的区块。率先完成计算的矿工会赢得新区块的挖矿奖励。最初,成功挖出一个区块,矿工可以获得 50 个比特币的奖励,按规则,这个挖矿奖励每四年减半一次,分别为 25 个、12.5 个,以此类推。
+
+ 我们再讨论两个问题,以深入了解比特币的工作量证明共识机制与它的挖矿机制。
+
+## 第一,先向内看,比特币矿工挖矿是在做什么?
+
+ 在候选区块的头部有一个 32 位的随机数区域,矿工需要反复调整随机数并计算,目标是让整个区块的哈希值小于一个“目标值”。如果试过所有的 32 位随机数可能性后,计算仍未能成功,那么就要改变币基(coinbase)的一个随机数,接着进行反复计算。
+
+ 这个计算是加密哈希计算(对比特币来说是 SHA-256),除了反复计算别无他法。这个计算量非常大,比如在 2015 年年底,在大约 2 的 68 次方个随机数中,只有一个可以成功,这个数字比全球总人口的平方还要大。
+
+ 有意思的是,这种挖矿计算是非对称的,你挖矿需要经过 2 的 68 次方个哈希计算,而我要验证你的确找到有效的随机数,只需要一次就可以。
+
+ 第一个完成这个计算难题的节点所打包的区块就成为有效区块,它向全网广播告知自己已经完成,由其他节点确认后(即有别的挖矿节点在这个区块的基础上进行下一个区块的挖矿,生成新的区块)。在等待 6 个区块后,该挖矿节点就可以获得这次比特币奖励。
+
+ 比特币的去中心网络能够长期运行下来,现在有 1 万多个全节点,正是因为有这样的挖矿奖励机制。出于对自己的利益考虑的矿工运维着这个不属于任何人、完全去中心化的网络。
+
+## 第二,再向外看,比特币的挖矿机制在加入挖矿的计算机的算力不断增加的情况下,这个挖矿机制是如何保持稳定的?
+
+ 比特币挖矿的芯片已经经过几轮演变,其计算能力越来越强:从 CPU 演变到 GPU(显卡),再到现场可编程门阵列(FPGA),再到现在的专用集成电路技术(ASIC),即只能进行比特币挖矿所需的哈希计算的专用芯片中。并且随着矿机的升级迭代和数量增多,接入比特币区块链网络、参与挖矿竞争的计算算力越来越大。
+
+ 相应地,比特币系统有这样一个对应的机制设计:随着算力的增长,调整目标值的难度使得挖出一个区块的时间始终是 10 分钟左右。
+
+ 这形成了一种动态的平衡,维持区块链网络经济激励的有效与稳定。这个决定难度的公式非常简单明了,每挖出 2016 个区块,也就是经过约两个星期,挖矿难度会进行一次调整,该公式是:
+
+ 下一个难度 = 上一个难度 × 2016 × 10分钟 / 产生2016个区块所需的时间
+
+ 如果算力突然大幅度上升,产生上一组 2016 个区块所需的时间变短,那么难度就会上升。在某些特殊情况下,如果产生上一组 2016 个区块所需的时间变长,那么难度也会下降,但这样的情况并不多见。
+
+ 因此,比特币矿工节点的挖矿是它在运行分布式账本与去中心网络。同样重要的是,它也是比特币的发行机制和整个社区的激励机制。
+
+ 比特币的挖矿是比特币的唯一发行机制,从中本聪挖出第一个区块获得 50 枚比特币开始,比特币这个加密数字货币就以这样的去中心化方式不断地发行了出来。
+
+ 比特币区块链网络是由众多节点组成的去中心网络,而这些计算机节点加入这个网络,维护分布式账本,是因为中本聪在设计系统时巧妙地加入了经济激励:众多比特币矿工(即挖矿节点)在竞争获得记账的权利,矿工每增加一个新的区块能获得对应的记账奖励。
+
+ 比特币的经济系统是以“竞争-记账-奖励”循环为核心的(见图1),其中“竞争”非常重要,即挖矿节点进行的算力竞争。在比特币系统这样一个去中心网络中,节点参与是出于获得经济奖励的自利动机,而记账权利和对应的奖励需要通过竞争来获得。
+
+> 在区块链的相关探讨中,有把“挖矿”一词的含义扩大的倾向,在这里我们认为,只有生成区块的计算行为,即运维分布式账本与去中心网络的行为,才是真正意义上的挖矿。简单地说,只有生产区块,才是挖矿。即便放宽要求,不再强求只有计算机节点生产区块才是挖矿,我们也仍想强调,竞争获得对应的权利和奖励,仍是必须的。没有竞争的奖励,是很难真实有效的。
+
+
+
+ 通过讨论比特币区块链的五个技术性细节,我们再一次看到,比特币系统在发行和交易层面都实现了完全的去中心化:
+
+* 一个交易的确认,被写入分布式账本记录下来,是由去中心网络中互不信任的节点为了自己的利益相互以算力进行竞争而确认的。
+* 在竞争挖矿的过程中,比特币的发行是“凭空发行货币”,它的货币发行也是靠这个去中心网络的算力竞争来完成的,是去中心化的。
+
+ 比特币作为区块链 1.0 的典型,完成了价值表示和价值转移的概念验证(见图2)。
+
+ 比特币区块链是非常精妙的设计,它无须任何人的居中协调与领导就能持续发展。比特币可能是迄今为止最成功的加密数字货币,比特币区块链在加密数字货币的应用上堪称完美。
+
+ 比特币区块链即“区块链1.0”是专为去中心化的电子现金设计的,而要在各个领域中广泛应用,我们需要有更通用、性能更好的区块链系统。
+
+
+
+ 在比特币系统之后出现了常被认为是“区块链 2.0”代表的以太坊。现在,更多项目在竞争成为“区块链 3.0”。
+
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/dan-ni-er-la-rui-mo-bm.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/dan-ni-er-la-rui-mo-bm.md
new file mode 100644
index 0000000..c2345e1
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/dan-ni-er-la-rui-mo-bm.md
@@ -0,0 +1,28 @@
+---
+description: EOS的主要开发者
+---
+
+# 丹尼尔·拉瑞莫\(BM\)
+
+EOS 的主要开发者是区块链的传奇人物丹尼尔·拉瑞莫(Daniel Larimer),他的网名为 ByteMaster,在网上他也被称为 BM。BM 个人参与创建了三个主要的区块链公链项目,EOS 是第三个,如下图所示。
+
+
+
+BM 开发的第一个主要区块链项目是比特股(Bitshares X,BTS),这个项目创建了一个去中心化的银行和交易所,使用区块链账本来创造可互换数字资产,这些资产可以市场化锚定美元、黄金、汽油等任何东西的价值。
+
+这个区块链的共识机制正是所谓的 DPOS 共识机制([https://bitshares.org/technology/delegated-proof-of-stake-consensus/](https://bitshares.org/technology/delegated-proof-of-stake-consensus/))。DPOS 是 BM 于 2013 年 12 月 8 日提出的,在同年的 7 月他已经利用这一共识机制开发了比特股。比比特股的DPOS共识机制被抽象成了石墨烯(graphene)框架,在业界被广泛使用,技术文档参见:http://docs.bitshares.org/。
+
+BM 开发的第二个主要区块链项目是内容区块链 Steem 和基于它的博客平台 Steemit。在加密数字货币发展的初期,这个博客平台激励了很多关于数字货币、区块链的内容写作。Steem 区块链所采用的共识机制也是 DPOS。
+
+BM 曾经与中本聪在邮件组进行交流,并提出要改变比特币的工作量证明共识机制,以让交易进行得更快。中本聪在回应了去中心化的重要性后,给 BM 的回应成为比特币与区块链世界中的名言:如果你没理解或者不相信,我也没空去说服你,抱歉。(“If you don’t believe me or don’t get it,I don’t have time to try to convince you,sorry.”)在中文世界中,这几句话也被戏谑地翻译并戏称为区块链世界的信条:“爱信信,不信滚。”
+
+BM 曾透露,自己的理想是“找到一个能够保障人们生活、自由和财产安全的自由市场方案”(to find free market solutions to secure life,liberty,and property for all.)。
+
+BM 的故事还可参考如下报道文章:DAN LARIMER:Visionary Programmer of BitShares,Steem and EOS,网址为:[https://hackernoon.com/dan-larimer-visionary-programmer-of-bitshares-steem-and-eos-7e6d94b241d7](https://hackernoon.com/dan-larimer-visionary-programmer-of-bitshares-steem-and-eos-7e6d94b241d7)。
+
+EOS 创始人 BM(Dan Larimer)的小传见:[https://zhuanlan.zhihu.com/p/33771609](https://zhuanlan.zhihu.com/p/33771609)。
+
+## 学习结束啦,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/eos-de-gong-shi-ji-zhi.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/eos-de-gong-shi-ji-zhi.md
new file mode 100644
index 0000000..ed2904e
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/eos-de-gong-shi-ji-zhi.md
@@ -0,0 +1,28 @@
+---
+description: 区块生成
+---
+
+# EOS的共识机制
+
+在《EOSIO 技术白皮书》中,对 EOS 的共识机制 BFT-DPOS(拜占庭容错算法+权益委托共识机制)进行了说明。其中拜占庭容错算法(Byzantin eFault Tolerance)的用途是:
+
+所有的出块者都要对所有区块签名,以确保在同一时间戳或者同一区块高度上,没有区块生产者能够同时在两个区块上签名。一旦一个区块有了 15 个区块生产者的签名,该区块就被认为是不可逆的。任一区块生产者如果想在同一时间戳或者同一区块高度的两个区块上签名,就会留下密码学证据。在这一模式下,一秒之内就可以达成不可逆的共识。
+在白皮书中,EOS 对其区块的出块机制进行了介绍,转摘如下:
+
+根据这一算法,在使用 EOSIO 软件构建的区块链上持有通证的人,可以通过一个持续进行的投票系统来选择区块生产者。任何人都可以选择参加区块生产,只要能够说服通证持有人为其投票,就会有机会参与区块的生产。
+
+EOSIO 软件可以让区块每 0.5 秒生成一个。在任何时刻,只有一个生产者被授权生产区块。如果在计划的某个时间内没有成功出块,则跳过该块。如果有一个或更多的区块被跳过,则在区块链上会有 0.5 秒或者更久的空白。
+
+使用 EOSIO 软件,区块的产生以 126 个区块(每个出块者六个区块,乘以 21 个出块者)为一个周期。在每个出块周期开始时,软件会根据通证持有人所投票数选出 21 个区块生产者。被选中的区块生产者的出块顺序要获得 15 个及以上的区块生产者的同意。
+
+如果出块者错过了一个块,并且在最近 24 小时内没有产生任何块,则这个出块者将被剔除在考虑范围之外,直到他们通知区块链可以重新开始产生区块。这确保了网络的顺利运行,把被证明为不可靠的区块生产者排除在出块排序之外,这一方式使得错过区块的数量最小化。
+
+资料来源:
+
+* 中文译文摘自:[http://blog.eosdata.io/index.php/2018/04/28/eos-io-whitepaper-v2/](http://blog.eosdata.io/index.php/2018/04/28/eos-io-whitepaper-v2/)
+* 英文版见:[https://github.com/EOSIO/Documentation/blob/master/TechnicalWhitePaper.md](https://github.com/EOSIO/Documentation/blob/master/TechnicalWhitePaper.md)
+
+## 学习结束啦,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/eos-shi-shen-me.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/eos-shi-shen-me.md
new file mode 100644
index 0000000..cd2a293
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/eos-shi-shen-me.md
@@ -0,0 +1,97 @@
+# EOS是什么?
+
+现在从加密数字货币的市值看,除了比特币、以太坊等之外,市值最高的项目是企业操作系统(Enterprise Operating System,EOS)。从关注度看,EOS 也是 2017~2018 年的明星项目,并常被认为是区块链 3.0 的主要竞争者。
+
+EOS 是由 Block.one 公司开发的一个新的区块链软件系统,它的目标是将一切去中心化(decentralize everything)。从 2017 年年中开始,经过一年的代币众筹后,它于 2018 年 6 月 15 通过由数十个区块生产者(block producer,BP,又称超级节点)组成的社区上线了主网,EOS 主网这条主要的区块链开始正式运转。
+
+
+> 通过 EOS Tracker 可以查看 EOS 区块链网络(EOS 主网)的情况,网址为:[https://eostracker.io/](https://eostracker.io/)。对应地,以太坊的网络可通过如下网址查看:[https://etherscan.io/](https://etherscan.io/);比特币网络可通过以下网址查看:[https://blockchain.info/](https://blockchain.info/)。
+>
+> 要注意,虽然有一个 EOS 主网,但实际情况要复杂得多,任何人都可以用 EOS 提供的 EOSIO 开源软件建立自己的一条链,且 EOS 鼓励开发者这么做。
+
+接下来,我们分几个主题介绍 EOS 这个基础公链和它的应用开发。EOS 这个基础公链可说是为应用而生的。
+
+### EOS VS 以太坊
+
+了解 EOS 的方式之一是拿它与以太坊、比特币进行比较。
+
+从开发目标上来讲,比特币、以太坊、EOS 是渐进的,分别是区块链 1.0、区块链 2.0、区块链 3.0,重心分别是货币、合约、应用。以太坊在实际应用中是以通证为主的。以太坊、EOS 均是借鉴与延续之前的思路重新开发,以太坊是比特币的改进,EOS 是以太坊的改进。
+
+这里先用比喻的方式来对比比特币、以太坊、EOS,见下图。
+
+
+
+比特币的设计思路类似于黄金。在数字世界中,按工作量证明共识机制,挖矿节点进行加密计算,获得比特币形式的挖矿奖励。挖矿节点也可以获得交易费收益,不过,虽然在比特币网络中的资产价值高,但交易并不频繁,交易费收益目前在矿工收益中的占比并不高。
+
+以太坊的设计思路类似于高速公路。在这条收费高速公路上,车辆行驶需要付费。它早期募集资金,建设“高速公路”,早期投资者享有“高速公路”的主要权益。之后,一起建设与维护“高速公路”的挖矿节点也可以获得挖矿奖励与交易费收益。在以太坊网络中,由于各类项目已经基于它生成了大量的通证,以太坊网络的交易量相对较多,挖矿节点获得的交易费收益占比高于比特币。
+
+EOS 的设计思路则类似于房地产开发。Block.one 公司在将土地售卖出去之后,逻辑上它用获得的资金进行基础的开发,此后每年再以类似填海造田的方式增加 5% 的土地出来。
+
+EOS 的繁荣主要取决于,已经竞购得到大量土地的开发商是不是开发和经营好自己的地块?EOS 网络要依靠超级节点(即区块生产者)来各自建设、共同运营,按现在的设计,这些节点共同获得每年 1% 新增发的 EOS 作为回报。
+
+与以太坊不同,EOS 网络的设计是不再收取网络交易费,持有 EOS 通证则拥有对应的网络使用权利。但是,如果一个应用的开发者不持有足够的 EOS 通证,可能就要从市场中购买和付费租用,以获得使用主网的权利。类比来看,这种设计类似于购买或租用办公楼。
+
+当然,以上用比喻的方式讨论只是为了便于理解。EOS 实际的情况是:Block.one 公司募集资金开发一个名为 EOSIO 的开源软件。EOS 社区用这个软件来运行 EOS 主网,且从逻辑上来讲,这个主网并非由 Block.one 公司运行,而是由社区运行的。另外,其他人也用 EOSIO 这个开源软件建立替代网(altnet)。
+
+> 替代网(altnet)是一个模仿替代币(altcoin)而创造出来的新词。在社区运行的 EOS 主网(mainnet)之外,EOS 鼓励其他人用 EOSIO 开源软件架设新的区块链网络,这些区块链网络是类似于替代币的替代网。比特币的替代币是与比特币的价值无关的,类似地,替代网也与 EOS 主网无关。
+
+EOS 是对以太坊的改进,各个用 EOSIO 开源软件运行起来的区块链网络,可以做几乎所有以太坊能做的事,如编写智能合约、发行通证。
+
+### 为什么 EOS 有超级节点竞选
+
+EOS 所采用的共识机制是 DPOS(委托权益证明),即一些节点在获得足够多的投票支持后,成为见证人(witness)节点或 EOS 中所说的区块生产者(BP,也称超级节点),负责区块链的区块生成。
+
+对于比特币系统,任何人都可以接入网络,以算力竞争记账权利,生成区块。而对于 EOS,只有超级节点才有资格生产区块。这是因为两者所采用的共识机制不同:比特币和以太坊采用的是工作量证明共识机制,而 EOS 采用的是 DPOS(委托权益证明)共识机制。
+
+围绕 POW 与 DPOS 的比较,讨论主要集中在能源消耗、效率、安全等方面。但我们也可以从去中心网络形成的角度来看,为什么 DPOS 是一种可行的选择。
+
+基于区块链的思路开发的软件系统有以下三个关键要求:
+
+* 一是性能。它的去中心网络的整体性能能否支撑大量应用?
+* 二是网络。它的共识机制、经济激励和社区运营能否吸引足够多的节点加入,形成一个安全、可靠的去中心网络?
+* 三是功能。无论目标是通用类、功能类还是行业类,它是否提供了应用开发所需要的必备功能?
+
+
+一个基础公链的成败关键正是以上三点:性能、功能与网络(见图2)。EOS 已经在性能和功能上做了很多努力,而 DPOS 共识机制与超级节点竞选是 EOS 在“网络”这个角上所做的努力。
+
+
+
+对比特币和以太坊网络来说,在较长的周期内,它们以挖矿经济激励的方式,逐渐地吸引了足够多的节点加入。对于一些基础公链区块链项目,由于各种原因,它们的主要节点是由基金会或关联方运行的。其中较为典型的是小蚁(NEO),它拥有较大的交易吞吐量(TPS),但官方节点只有不到 10 个。
+
+在 2017 年 12 月的报告中,NEO 理事会提到了其网络的去中心化计划,并解释道:“我们希望至少有 3 个节点由外部的实体运行……去中心化的初期阶段:2个节点将由 City of Zion 运行,1 个节点将由社区运行,并将由社区资助(独立于基金会),2 个节点将由以盈利为目的的区块链公司运行,2 个节点将由NEO理事会运行。”
+
+> NEO 的共识机制是 DBFT,全称为 Delegated Byzantine Fault Tolerant,是一种通过代理投票来实现大规模节点参与共识的拜占庭容错型共识机制(见NEO白皮书:[http://docs.neo.org/zh-cn/](http://docs.neo.org/zh-cn/))。
+
+EOS 则用超级节点竞选的方式来刺激形成一个活跃的去中心网络,并且,超级节点竞选是与其共识机制 DPOS(委托权益证明)高度匹配的。按现在的设计,获得投票的 21 个活跃生产者和 179 个候补生产者一起生产 EOS 这条区块链的区块,即运行这个区块链网络。这些区块生产者是动态的,时刻根据投票动态调整。
+
+
+> EOS 的区块链生产者的收益分配机制是,区块生产者一共可获得每年新增出来的 1% 的 EOS 通证作为回报,其中 0.25% 按每个区块来进行奖励,0.75% 按所获投票来进行分配。可参见 2018 年 5 月 12 日项目发布的信息。
+
+从 2018 年年初到 6 月 15 日 EOS 主网上线,围绕超级节点(BP)的竞争已经显示了,这个机制相对成功地调动了众多参与者竞争,促成了 EOS 去中心网络的形成。这是一条务实、有效的路径。
+
+从另一个相关的机制设计上,我们也可以看到 EOS 团队的精心设计。与其他代币发行的项目不同,EOS 通证的发行持续了一年之久,这一方面吸引关注,另一方面或许更重要的是,这种做法使得 EOS 通证相对分散地存在于众多持有者手中,在一定程度上保障了它所使用的委托权益证明共识机制的有效性。
+
+### EOS 的体系架构:与比特币、以太坊的对比
+
+在讨论以太坊时,我们对比了比特币和以太坊的架构差异,现在,EOS 被认为是区块链 3.0 的有力竞争者,我们再来看下这三者体系架构的差异。其中,EOS 的体系架构参考了唐煜的文章“从 EOS 系统架构看 BM 的野心”,如图3所示。
+
+> 从 EOS 系统架构看BM的野心,唐煜/文,2018 年 4 月 24 日,[https://mp.weixin.qq.com/s/pJQmZngnginnQL-OwcVMag](http://xn--eosbm-qg2h662hw7m3mav63jmhbc12b1yf8n1f/)。
+
+
+
+在最基础的层次——数据层和网络层上,EOS 和比特币、以太坊并没有多大的区别。
+
+EOS 的共识机制采用了与之前较为不同的 DPOS(委托权益证明)共识机制。由于采用 DPOS 共识机制,EOS 网络的激励层就可以看成不再单独存在(图中也未表示出来)。EOS 网络每年新增发 5% 的 EOS 币,其中 1% 按一定的规则分配给区块生产者,另外 4% 进入社区的提案系统(worker proposal system)资金池待分配。
+
+EOS 的智能合约和以太坊略有差异,但基本上采取了相似的设计。EOS 的应用也与以太坊相似。因此,对于合约层和应用层,两者是相似的。
+
+EOS 的体系设计的创新在于工具层和生态层。
+
+为了让 EOS 适用于应用开发,EOS 团队为它设计了账户、持续化数据库(Multi-Index DB)等工具与接口。因此,这里延续唐煜的分类,认为在合约层和应用层之间存在一个工具层,这使得在 EOS 区块链上开发应用更为便利。
+
+EOS 的另一个特殊设计在于,它将自己的 EOS 主网和 EOSIO 软件分开,鼓励开发者采用 EOSIO 软件建立行业专用、领域专用的区块链网络(应采用新的网络名),并建立自己的一系列应用。在体系架构的最上层可能出现一个生态层,这一层是采用 EOSIO 软件的区块链,比如专为游戏、物流、金融、社交、能源、医疗开发的公链。
+
+## 学习结束啦,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/erc20-tong-zheng-biao-zhun.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/erc20-tong-zheng-biao-zhun.md
new file mode 100644
index 0000000..cb07f24
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/erc20-tong-zheng-biao-zhun.md
@@ -0,0 +1,39 @@
+# ERC20通证标准
+
+ERC20 通证标准(ERC20 Token Standard)是通过以太坊创建通证时的一种规范。按照 ERC20 的规范可以编写一个智能合约,创建“可互换通证”。它并非强制要求,但遵循这个标准,所创建的通证可以与众多交易所、钱包等进行交互,它现在已被行业普遍接受。
+
+### ERC 是什么
+
+ERC 是 Ethereum Request for Comment 的缩写,20 是编号。征求修正意见书(Request for Comment,RFC)是互联网工程任务组(IETF)发布的一系列工作备忘录,后来演变为用来记录互联网规范、协议、过程等的标准文件。比如,常见的互联网协议的RFC编号分别是:IP,791;TCP,793;SMTP,2821。
+
+现在,以太坊已经沿用比特币的提法,对比特币系统的改进提案现在被称为 BIP(Bitcoin Improvement Proposals),然后加上编号。与通证相关的标准沿用 ERC 的形式,但均被纳入 EIP(Ethereum Improvement Proposals)序列之中,以太坊EIP 的标准序列包括 Core(核心改进)、Networking(网络层改进)、Interface(接口改进)、ERC(应用层意见征集)。
+
+> 以太坊的改进提案网址为:[https://eips.ethereum.org](https://eips.ethereum.org/)。
+
+### ERC20 是什么
+
+ERC20 通证标准最早由以太坊开发者费边·沃格尔斯特勒在开源社区中提出,后来以太坊创始人维塔利克(人称“V神”)撰写了第一版文档,当时名为“标准化合约API”(Standardized\_Contract\_APIs)。
+
+> 最早的讨论文档见:[https://github.com/ethereum/EIPs/issues/20](https://github.com/ethereum/EIPs/issues/20)。
+
+遵循 ERC20 标准,基于以太坊创建的通证是通用的,可以被以太坊和区块链世界的多数其他应用所使用。除了官方实现外,现在在以太坊网络中已经有了多种符合 ERC20 标准的软件实现。
+
+### 详解 ERC20 通证标准
+
+遵循ERC20通证标准可以编写智能合约。它需要实现的通证方法包括:可选的 name、symbol、decimals,必须有的 balanceOf、transfer、transferFrom、approve、allowance。它需要实现的事件响应包括 Transfer、Approve(见图1)。
+
+
+
+
+现在 ERC20 的文档见:[https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md)
+
+除了 ERC20 之外,以太坊受关注的通证标准还有 ERC721。与 ERC20 不同,ERC721 是一种不可互换的通证标准(Non-fungible Token Standard,NFT)。
+
+ERC20 的通证是可互换的、同质的,而 ERC721 的通证是不可互换的、非同质的;ERC20 通证是可无限分割细分的,而 ERC721 通证的最小单位是 1,无法再分割细分。
+
+2018 年 6 月,ERC721 最终被以太坊社区正式接受,成为最终标准。之前大热的加密猫(cryptokitties,谜恋猫)所遵循的就是 ERC721 标准。
+
+## 学习结束啦,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/erc721-biao-zhun-yu-jia-mi-mao.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/erc721-biao-zhun-yu-jia-mi-mao.md
new file mode 100644
index 0000000..00d4436
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/erc721-biao-zhun-yu-jia-mi-mao.md
@@ -0,0 +1,30 @@
+# ERC721标准与加密猫
+
+2017 年 11 月 28 日,“加密猫”游戏出现在互联网上。这是基于以太坊的 ERC721 标准(不可互换通证)发行的加密数字宠物,每一只猫咪各不相同。
+
+加密猫的正式中文名叫“谜恋猫”,游戏的官网称这些加密猫是“可收藏、可繁殖、讨人喜欢的”。用户可以用以太币换购这种猫咪。这个简单的游戏吸引了大量的用户,甚至使得以太坊区块链网络出现了大拥堵。
+
+在此之前,人们对以太坊的认识是,它的主要应用是用它的智能合约发行符合 ERC20 标准的可互换通证,同一种通证的一枚和另一枚是完全一样的。
+
+对比而言,基于 ERC721 的这种加密猫的每一只都是独一无二的。加密猫极大地扩展了以太坊的通证用途。有不少分析文章讨论了加密猫的意义,在一篇文章中,作者萨曼莎(Samantha Radocchia)用电子邮件做类比说:
+
+
+我认为在互联网的早期,没人想到它会变成今天的样子。我们那时仍在试图弄清楚如何使用互联网。然后,E-mail 出现了。突然间,这个非常强大而重要的工具改变了人们对互联网的看法。
+
+我记得爸爸在我的小时候给我看家里发的电子邮件时,我们都很惊讶。你可以立即给世界各地的人发送一张数字便条。
+
+我们知道(区块链)这项技术有着不可思议的潜力,但我们还无法把握所有的可能性。但像加密猫这样的应用帮助增长了用户基础,增加了我们对于什么是可能的理解。”
+加密猫的关键信息如下:
+
+* 加密猫是一种非替代性代币,它是不可分割且独一无二的。
+* 智能合约拥有 40 亿种表型性变体(你可以看到)和基因型(你无法看到)。
+* 加密猫的架构在以太坊网络之上,加密猫的购买和育种都需要用到以太币。
+* 两只加密猫可以繁殖一只全新的后代。
+
+
+资料来源:[https://www.cryptokitties.co/Technical-details](https://www.cryptokitties.co/Technical-details).
+
+## 学习结束啦,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/fen-bu-shi-zhang-ben-yu-qu-zhong-xin-hua-wang-luo.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/fen-bu-shi-zhang-ben-yu-qu-zhong-xin-hua-wang-luo.md
new file mode 100644
index 0000000..94b9e14
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/fen-bu-shi-zhang-ben-yu-qu-zhong-xin-hua-wang-luo.md
@@ -0,0 +1,41 @@
+# 分布式账本和去中心网络
+
+所有的区块链系统都包括“分布式账本和去中心网络”这一对必备要素。
+
+ 比特币网络没有一个中心服务器,它是由众多全节点和轻节点组成的,这些节点形成一个**去中心网络**。其中:
+
+* 全节点包含所有比特币区块链的区块数据;
+* 轻节点仅包括与自己相关的数据。
+
+ 比特币网络是完全开放的,任何服务器都可以接入、下载全部区块数据成为全节点。
+
+ 所有用户持有的比特币信息都存放在一个**分布式账本**之中。这个账本是一个不断增长的由数据块组成的链条,这个数据块组成的链条是狭义的“区块链”。比特币账本可被认为同时存储在所有的全节点之中。
+
+ 基于分布式账本与去中心网络,比特币系统实现了去中心化的价值表示和价值转移,它与中心化在线支付系统有很大的不同。用两个人之间的转账来对比看一下。
+
+## 中心化在线支付系统的交易流程
+
+ 中心化在线支付系统的转账过程是:假设你我二人要通过支付宝进行转账。我们都在支付宝开设有账户(account),账户上有多少钱是支付宝账本上记录的数字。当我转账 100 元给你,支付宝在我的账户记录上减掉 100 元,在你的账户记录上增加 100 元,形成新的账本。到此,转账交易结束。
+
+ 如图 1 所示,中心化在线支付系统维护一个中心化的账本。用户在账本上开设账户,通过密码来与之交互。
+
+
+
+## 比特币系统的交易流程
+
+ 对比而言,比特币系统使用的是一个分布式账本,用户在其中开设“账户”,严格地说是地址(address)。每个人都可以在比特币区块链上建立“账户”,获得一对公钥与私钥,地址是公钥的哈希值,我们通过私钥与地址进行交互。
+
+ 我们每人有一个钱包,钱包中存储的是私钥。两个人在相互转账比特币时,可以通过各自的钱包软件直接进行。
+
+ 在这里,比特币的去中心化体现在:不再有一个中心化机构来集中管理账本。账本存放在由众多节点组成的去中心网络中;不再有一个中心化机构来帮我们管理账户、处理交易,每个人管理自己的钱包,交易由分布式账本来记录。
+
+ 有人会往下追问,我们地址中的比特币是记录在账本中的,看起来还是有一个“中心”存储我们的资产。其实,这个账本是分布式地存储在去中心网络中的,因而从这个层面看,它可以看成是去中心化的。
+
+ 对比而言,对于中心化在线支付系统,它通常是由中心化的服务器来管理集中式账本。对于比特币系统,它背后的系统是一个去中心网络,网络节点共同维护一个分布式账本(见图 2)。
+
+
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/ji-qi-bi-ren-geng-xu-yao-tong-zheng.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/ji-qi-bi-ren-geng-xu-yao-tong-zheng.md
new file mode 100644
index 0000000..0816747
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/ji-qi-bi-ren-geng-xu-yao-tong-zheng.md
@@ -0,0 +1,60 @@
+# 机器比人更需要通证
+
+在讨论数字世界中表示价值的通证时,我们常会拿它和法定货币做比较,这会带来一个疑问:在很多情况下,延续数千年的人类货币已经工作得很好,在数字世界中,在线支付系统也工作得很好。至于它们是中心化还是去中心化的,对用户来说并不那么重要。那么,为什么我们还需要通证?
+
+我们可以从很多个角度来探讨这个话题,其中一个可能很重要的观点是,机器比人更需要通证。
+
+### 通证有什么用
+
+如图 1 所示,我们可以用两个维度把自己所处的世界分成几个部分,一个维度是区分数字世界和物理世界;另一个维度是区分信息互联网和价值互联网。我们在这里把所有线下资产都视为一类,为第三类 ③。
+
+
+
+
+我们可借用这张图示来思考“通证有什么用”这个问题。
+
+通证的作用是,在数字世界中,在区块链上表示价值。比特币、以太币等是凭空在区块链上发行出来的。
+
+要把其他象限的价值映射到链上、用通证来表示,主要有两个路径:
+
+* 路径之一是,把原本在互联网上通过中心化机构的数据库表示的价值和价值转移,切换到去中心化的区块链上来。比如常见的有网络零售的支付、社交网络的积分、游戏里的道具等,反映在图中就是从象限 ② 到象限 ③。
+* 路径之二是,把实体中的资产映射到链上,通过区块链进行流通。比如常见的有:把线下的民宿、供应链金融、资产证券化(ABS)中的资产用通证进行表示,反映在图中就是从象限 ③ 到象限 ①。
+
+
+这两个都是值得探索的方向,但在这两个方向上探索时,我们逐渐地感到困惑:通证除了可以更大范围地进行交易,似乎并没有带来多少独特优势。对于路径一,互联网上的各类点卡、积分、道具一直运作良好;对于路径二,用通证进行表示依然没有能解决线下资产如何数字化的问题,也没有解决它们的流通性问题。
+
+问题可能出在,把线上、线下资产变成链上资产,用通证进行表示,通过自由市场交易来发现其价格,这只是表面的变化。当我们意识到自己还在把它们折算为法币值多少钱时,我们发现,传统的法币在代表这类价值时已经做得足够好。
+
+在如上这些领域中,用法币来表示这些价值以及相关的金融工具都非常成熟。把线下、线上资产用通证进行表示,可以带来一些优势,比如,过去在互联网上一个点赞 0.0001 美元的行为也许就被忽略了,而现在可能被通证记录下来了。但是,这带来的变化还是不那么大。出现这样的困惑是因为,我们始终站在人的视角来看通证的可能性,而通证能发挥作用的地方应当是法币不那么有效的地方。
+
+
+### 当我们不再站在人的视角
+
+当站到机器的视角去看通证时,我们会发现通证的独特价值,它的角色是法币无法替代的。
+
+token 这个词在网络通信中的原始含义是令牌,只有有令牌的节点才能参与通信,令牌代表权利。当数字世界的范围扩大,在看机器相互交互的场景时,我们会看到,它们比人类更需要通证。
+
+来看一种场景,在讨论中我们暂用 token 而不是通证。
+
+假设,为了防止网络中的机器发出垃圾邮件,我们设定如下规则:个人电脑或手机在发出邮件时,需要消耗一个 token;发件邮件服务器也要消耗一个 token。如果这个邮件不被垃圾邮件规则拦截,或不被个人举报为垃圾邮件,那么在一定时间内,所消耗的 token 又会回到我们手中。
+
+在这个过程中实际发生的是 token 的抵押,从而确保我们行为的正当性。系统可以预先给各个邮件账号和邮件服务器分配适量的 token,这样我们正常发送邮件就不会受到影响。对于那些需要大量发送推广邮件的人而言,他们发送的邮件有一定可能被认为是垃圾邮件,他们就需要用法币换取一定的 token,否则他们可能因为 token 数量为零而无法再发送邮件。
+
+要让这样一个使用 token 的反垃圾邮件系统投入运营,我们的设计肯定不应是每个电脑、手机、服务器都需要存入法币,以购买 token,那只是特殊情况。我们的设计可能是,让这些机器可以自行以某种方式获取 token,比如这些计算机可以完成什么计算任务以获得 token。
+
+从这样一个简单的例子中可以看到,机器在交互时比我们更需要 token。
+
+放到物联网的场景中,每个传感器在和其他机器进行交互时,可能获得 token 或消耗 token。我们的做法也不应是给每个传感器开设一个和法币对应的账户。这时,我们应该设计机器专用的钱包和 token。
+
+随着越来越多的物联网设备接入网络,我们需要有各种不同的机器 token。
+
+在多数情况下,机器用自己类型的 token 就足够了。只有在极少数情况下,我们才需要根据一定的汇率,让这些 token 与其他数字货币进行转换,让它与法币进行转换。兑换并不频繁,转换的汇率也并不特别重要。
+
+因此,当转换到机器视角时我们看到:在人的世界里,通证有意义,但不够大;在机器的世界里,通证不可或缺(见图2)。机器比我们人类更需要通证。机器如何使用通证,将可能是区块链和通证应用的主要探索方向之一。
+
+
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/jia-mi-shu-zi-huo-bi-de-qian-shi-jin-sheng.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/jia-mi-shu-zi-huo-bi-de-qian-shi-jin-sheng.md
new file mode 100644
index 0000000..981f8e7
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/jia-mi-shu-zi-huo-bi-de-qian-shi-jin-sheng.md
@@ -0,0 +1,56 @@
+---
+description: 比特币冷知识-枯燥
+---
+
+# 加密数字货币前传:从大卫·乔姆到中本聪
+
+ 这是一篇关于比特币冷知识的文章,可以跳过,不影响后续学习。
+
+ 加密数字货币有着非常漫长的历史,这个冷知识专栏用几个主要人物和他们的创造,来展示一个简明的加密数字货币前传。
+
+> 《区块链:技术驱动金融》一书的前言“通往比特币的漫长道路”(杰里米·克拉克/文)从技术与历史的角度对加密数字货币的历史进行了详细的阐述,这里参考了他的梳理分析。
+
+## 1\) 1983年,大卫·乔姆(David Chaum)最早提出把加密技术用在数字现金上
+
+ 在物理世界中,现金可以非常简单,它需要的是防伪功能。现金是一张纸条,我可以在一张纸条上写“拿到这张纸条的人可以找我领取一只羊”,然后签上自己的名字。签名就是防伪措施。我把纸条拿给你,纸条到你手中,我就没有了。
+
+ 在数字世界中,情况开始变得复杂:这张纸条和上面的签名是一个数字文件,而电子文件可以被无数次地完美复制。把这个电子文件给你之后,我还可以再把这个电子文件给第三个人。这就是所谓的双重支付(double spending)问题。
+
+ 大卫·乔姆提出了一个创造性的方案,在数字世界里解决了这个难题。他的方法是采用这样的逻辑:在一张纸条上,你选择一个只有你知道的序列号,然后我在上面签名。由于我不知道这个序列号,因此我没法再复制一份这张纸条给另一个人。这就是密码学上所谓的盲签(blind signature)。这个思路形成了“第一个真正意义上的电子货币方案”。1989年,大卫·乔姆还创建了数字现金公司(DigiCash)来把自己的想法商业化,但未能被大规模接受。
+
+ 这个方案的缺点是,它要运转起来,就必须有一个所有参与者都信任的中心化服务器来进行这些“数字纸条”的验证。
+
+## 2\) 1997~1998年,亚当·贝克(Adam Back)与哈希现金(HashCash)、戴伟(Wei Dai)与B币(B-Money)、尼克·萨博(Nick Szabo)与比特黄金(bit gold)、哈尔·芬尼(Hal Finney)与工作量证明(POW)
+
+ 在比特币白皮书中,中本聪引用了1997年亚当·贝克设计的哈希现金、1998年华裔密码学家戴伟设计的B币等前人的成果。2010年,由于维基百科试图删除比特币词条,因此中本聪与人讨论了如何修改词条描述以让维基百科接受,他建议这样写:“比特币是戴伟在1998年在密码朋克中所提到的B币构想和尼克·萨博提出的比特黄金的具体实现。”他说是具体实现,是因为B币和比特黄金都只是停留在构想中。
+
+ 这就引出了区块链领域的一个重要人物——计算机科学家尼克·萨博。他在1998年提出了名为比特黄金的方案。在现在的区块链世界中,尼克·萨博有着更为重要的位置:萨博是“智能合约”(smart contract)的提出者,1993年他写出了“智能合约”论文。智能合约是区块链处理交易的核心方式,区块链应用的实质可被看成是一个个智能合约的组合。
+
+ 这一阶段的第四个重要人物是知名密码学家哈尔·芬尼,他是著名的PGP加密中的“G”,是密码朋克圈中的前辈。他在2004年推出了自己版本的采用工作量证明(POW)机制的电子货币。在比特币开发过程中,哈尔·芬尼与中本聪有很多互动,比特币的第一笔转账就是中本聪转了10个比特币给哈尔·芬尼。
+
+ 他们四人的具体设想各有不同,但有一个共同点,即都是让计算机进行计算,从而“创造”电子现金,它们是比特币系统让计算机进行加密计算的工作量证明和“挖矿”的创意来源。这非常重要,有了这个想法,中心化服务器才可以被去中心网络所取代,困扰数字货币的难题被解决了。
+
+> 再往前,这个想法可追溯到1992年密码学家辛提亚·沃克(Cynthia Dwork)、摩尼·纳欧尔(Moni Naor)提出来的用于减少垃圾邮件的一个方案,对此杰里米·克拉克在《区块链:技术驱动金融》一书中解释说:“设想你每次发送邮件时,计算机都不得不花几秒钟解决一道数学计算题目。如果你没能附上答案,收件人的邮箱会自动忽略这封邮件”。
+
+## 3\) 2008年10月,中本聪发布论文“比特币:一个点对点电子现金系统”
+
+ 最终,中本聪把前人的创新综合起来,实现了一种在发行和交易上都去中心化的电子现金。
+
+ 对于前人的数字货币系统(比如乔姆的系统)为什么会失败,中本聪曾经写道:自20世纪90年代以来所有的虚拟货币公司全都失败了……我希望,人们可以看到,这些系统之所以失败,显然是因为它们的中心化控制这一特性。我想,我们正在首次尝试建立一个去中心化的、非基于信任的系统。
+
+ 这里他提到了两个相关的词,一是去中心化(decentralized),二是非基于信任的(non-trust-based)。去中心网络一定是非基于信任的。
+
+> 以太坊创始人维塔利克·布特林(Vitalik Buterin)在以太坊白皮书中也很好地概述了这段历史,他是围绕“去中心化”这个关键词展开论述的:“去中心化的数字货币概念,正如财产登记这样的替代应用一样,早在几十年以前就被提出来了。
+>
+> 20世纪八九十年代的匿名电子现金协议,大部分是以乔姆的盲签技术为基础的。这些电子现金协议提供具有高度隐私性的货币,但是这些协议都没有流行起来,因为它们都依赖于一个中心化的中介机构。
+>
+> 1998年,戴伟的B币首次引入了通过解决计算难题和去中心化共识创造货币的思想,但是该建议并未给出如何实现去中心化共识的具体方法。
+>
+> 2005年,芬尼引入了“可重复使用的工作量证明”(RPOW)概念,它同时使用B币的思想和亚当·贝克提出的计算困难的哈希现金难题来创造密码学货币。但是,这种概念再次迷失于理想化,因为它依赖于可信任的计算作为后端。
+>
+> 2009年,一个去中心化的货币第一次被中本聪实现,它通过已有公钥加密方式来管理所有权,并用一个名为工作量证明的共识算法来记录谁拥有货币。”
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/pow-gong-zuo-liang-zheng-ming.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/pow-gong-zuo-liang-zheng-ming.md
new file mode 100644
index 0000000..0f27835
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/pow-gong-zuo-liang-zheng-ming.md
@@ -0,0 +1,26 @@
+# POW工作量证明
+
+比特币的去中心网络采用的是工作量证明共识机制。
+
+ 去中心网络之所以需要共识机制,是因为这是一个非基于信任(non-trust-based)的网络,任何人无须许可都可以接入这个网络。并且,这些节点分散在网络条件差异非常大的全球互联网之中。在完全无中心的情况下,这些节点要同步一致,共识机制即为这些节点达成一致的机制。
+
+ 关于分布式网络的共识机制,有著名的“Fisher-Lynch-Paterson 不可能结果”,即在一定条件下达成共识是不可能的。而比特币的工作量证明共识机制在实践中被验证是有效的。这是因为它采用了一个实用主义的解决方案。
+
+ 比特币的工作量证明的关键特点是,它巧妙地融合技术和经济因素,不只是纯粹通过技术本身来达到这一点,而是纳入了与自身作为一个数字现金系统相关的挖矿奖励。按《比特币:技术驱动金融》一书的分析,比特币的共识机制有两个与过去不同的特点,我们略做引申讨论。
+
+## 一、它引入了奖励机制
+
+ 在这样一个加密数字货币应用中引入了经济激励,维护网络的节点就可以得到有价值的比特币作为奖励。
+
+ 为什么比特币网络中的节点们愿意打包交易、维护账本?它们并非出于“善意”,而是因为,它们能因这些挖矿行为获得比特币形式的经济激励。这是一个自行发行的电子现金系统的独特优势,如果所开发的是其他没有自行发行代币的 IT 系统,我们就无法设计矿工挖矿奖励这样的经济激励机制。
+
+ 激励挖矿节点参与挖矿的,除了与新区块相关的奖励之外,挖矿节点还可以得到区块中包含的所有交易付出的交易费。但到目前为止这个数值还较小,大概为新区块奖励的 1%。
+
+## 二、它包含了随机性的概念
+
+ 比特币系统形成的共识不是完全可靠的,但是在等待了 6 个区块约 1 个小时之后,出问题的概率呈指数级下降。在 6 个区块之后,一个交易发生双花情况的概率可被认为是零。从纯理论上看,完美的共识不可能达成,但从实用的角度看,这个共识是可信的。
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-3.0.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-3.0.md
new file mode 100644
index 0000000..5bb82e2
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-3.0.md
@@ -0,0 +1,151 @@
+# 区块链3.0
+
+依据区块链实际发展的情况我们认为,区块链 1.0 是数字现金,区块链 2.0 是数字资产,而期望区块链 3.0 能成为应用的平台。
+
+那么,区块链 3.0 究竟是什么样的呢?之前,曾有人类比说,区块链 3.0 可能是像操作系统一样的应用平台。在仔细分析 EOS 等典型的区块链 3.0 项目后,我们提出,区块链 3.0 可能是价值交易的云服务平台。也即,不是把区块链看成运行应用的操作系统,而是将之看成类似亚马逊云(Amazon Web Services,AWS)、阿里云等的云服务平台。
+
+## 区块链3.0的三种类比:操作系统、网站与云服务
+
+**1\) 类比为操作系统**
+
+有人曾以移动互联网类比认为,区块链领域将可能出现类似苹果 iOS、谷歌研发的安卓等移动操作系统。在展望区块链的应用平台时,操作系统是合适的类比吗?
+
+以操作系统来类比区块链容易得出的推论是,未来可能少数几个区块链系统会成为产业的主导,就像曾经在桌面计算机、服务器和移动操作系统上发生的一样:桌面系统是 Windows 与苹果的 macOS,服务器系统是 Windows Server、Linux 等,移动操作系统是 iOS 与 Android。
+
+
+> 苹果的 iOS 和谷歌开发的 Android 是一个有意思的类比:
+>
+> * iOS 是苹果专属的系统,特点是硬件和软件的紧密结合,大量的 iPhone 手机装机量,以及成熟的开发和应用生态;
+> * Android 则是完全不一样的选择,谷歌将之开发出来后,它以近乎开源系统的方式运作,手机厂商自己定义硬件规格和屏幕尺寸,市场上出现了多种对之进行深度改造的系统,如小米的 MIUI。
+>
+>
+> 以太坊选择的路径可认为相当于 iOS。而 EOS 的路径则相当于 Android,除了支持社区运行一个 EOS 主网之外,它鼓励其他人采用它开源的 EOSIO 开源软件架设自己的区块链网络。
+
+在 2016 年出版的《商业区块链》一书中,区块链专家威廉·穆贾雅以“数以百万计的区块链”(Getting to millions of blockchains)作为一个小节的标题。从整体上,他展望的未来图景是:“随着公有、私有、半私有、特殊目的以及其他类型的区块链的增长扩散,数以百万计的区块链世界将会实现。”这个说法可能展现了最可能的区块链未来图景。
+
+比特币区块链的大量替代币与后来比特币的多个分叉币让很多人担心,他们认为多条链是错误的发展方向,只应该有一条区块链,也就是最初的那条比特币区块链。站在比特币中心的视角,以太坊等众多新区块链项目也曾被认为是“替代链”(alt chain),虽然以太坊是一个参考比特币区块链的思路开发的全新项目。之后,虽然以太坊成为被接受的主要区块链之一,且看起来至少有多条区块链存在,但人们仍在不断地按操作系统类比来预测,哪条区块链会成为新的主导者。
+
+但我逐渐意识到,威廉·穆贾雅的“数以百万计的区块链”可能才是区块链的未来。反过来,数百万条不同的区块链——这个正在涌现的图景又暗示了,操作系统的类比可能无助于我们更好地思考区块链的应用可能。
+
+**2\) 类比为网站**
+
+再来看另一种类比:网站。
+
+威廉·穆贾雅还做了一个虽然不甚准确但易懂的类比——“区块链将会成为新的网站”。在回顾了从 20 世纪 90 年代开始的网站发展史后,他类比指出:“每个公司一定会拥有或参与各种各样的区块链,无论它们是私有的、半私有的或公共的。”
+
+让我们沿着区块链至今为止的发展路径继续观察。它是由分布式账本与去中心网络组成的,它能在数字世界中做价值表示和价值转移,通证使得区块链上的数字资产开始大量涌现。
+
+区块链并非一个纯粹的软件系统,它的应用也并非软件,对它的未来的合理类比可能并非“操作系统”。当下的区块链还不是面向普通用户的应用,它可能也不是“网站”。
+
+**3\) 类比为云服务平台**
+
+未来的各个区块链可能更类似于互联网上的云服务平台,和现有云服务平台不同的是,它们的核心功能是价值交易(见图1)。
+
+
+
+## 作为云服务的区块链3.0
+
+让我们回到区块链的技术演进历程中去看作为云服务的区块链 3.0。
+
+在区块链 1.0,即比特币的时期,为了创建一种新的数字货币,开发者修改比特币源代码,形成新的区块链和替代币。
+
+在区块链 2.0,即以太坊占据主导的时期,区块链的主要应用依然是创建数字货币,但不再需要建立自己的区块链,而是可以编写以太坊的智能合约、在其上创建通证。
+
+这些通证在技术上的有效性是靠以太坊的分布式网络来保障的。以太坊曾把自己定位为一台“全球分布式计算机”。在《区块链革命》中,商业思想家唐·塔普斯科特这样写道:“区块链上运行的所有计算资源可以在整体上视为一台计算机。”
+
+对区块链 3.0 我们期待,除了管理链上原生的、映射自线上的、映射自线下的各种数字资产之外,在区块链上能运行复杂的价值交易应用,也即从区块链 2.0 的一个个通证进化到区块链 3.0 的一个个应用(见图2)。
+
+区块链 3.0 要成为“应用的平台”,会使得它的基础模型可能和已知的以太坊模型有着很大的差别。
+
+
+
+
+现在,从区块链 2.0 到区块链 3.0,人们关注的焦点往往是性能问题,比如以太坊计划通过改用 POS 共识机制(casper)和分片技术(sharding)来提升性能,又比如人们关注 EOS 采用委托权益证明机制(DPOS)来提升性能。
+
+但是,为了让区块链可以变成应用的平台,架构的变化同样重要。
+
+要看待这一个个应用(App),可以有两种方式:既可以把它们看成是区块链操作系统上的软件,它们用的是一条区块链的分布式账本和去中心网络;也可以把这些应用看成类似于一条条链,它们有着自己的分布式账本与去中心网络。
+
+但这两者的差别可能没那么大。类比地看,在云服务出现之前,要开发一个网站或应用,我们要自己架设和运维服务器;而有了云服务之后,我们可以在云服务上开发自己的应用。在采用云服务时,一个个应用就有自己的一组专用服务器,像之前一样。类似地,如果采用类似的架构来开发区块链的应用,则可以认为,一个个应用也像有着自己的一条条独立的区块链。
+
+因此,未来区块链 3.0 的整体构成方式可能类似于现在的云服务。现在的各个作为基础公链的区块链项目,做的正是云服务:以开源软件系统、分布式账本、去中心网络为基础,提供一系列和价值有关的云计算服务(见图3)。
+
+
+
+
+诸如亚马逊云等云服务的出现,是亚马逊把自己的基础设施通用化,向所有人开放:
+
+1. 开发亚马逊云的软件系统;
+2. 部署和维护一个包括数十万台服务器的计算机网络;
+3. 为其他公司与开发者提供云计算软件服务。
+
+
+现在,对试图在各个领域或产业中实际应用区域链的人来说,要在区块链上开发应用,需要的正是一个类似的云服务架构:区块链的软件系统、分布式账本与去中心网络,从及一系列云计算软件服务。
+
+因此,我们可模仿网络服务或云服务(web services),称这一系列的软件服务为价值网络服务或区块链云服务(value web services)。
+
+当然,区块链云服务与现有的云服务也有很多不同:
+
+1. 它提供的云计算软件服务是基于分布式账本与去中心网络的。
+2. 软件系统通常不是由一家公司开发,而是由社区开发的,以开源方式发布。
+3. 去中心网络不是由一家公司运维,而是由不同主体出于经济激励而自主提供的。
+4. 一系列云计算软件服务也不是由一家公司提供,而是由社区提供的。
+
+## 走向应用的五条路径
+
+让区块链变成应用的平台有多种思路,下面来分别看看。
+
+以超级账本(HyperLedger)为代表的联盟链软件是重要思路之一,它由 IBM 最初提出与研发,现在由开源软件组织 Linux 基金会管理,是开发区块链应用的重要软件平台。
+
+与比特币、以太坊等公有链完全开放,任何人都可以接入不同,联盟链需要经过许可才可以接入,亦称为许可链(permissioned blockchain),参与到区块链系统中的每个节点都需要经过许可,未经许可的节点无法接入。联盟链有其特定的用途,较为适合大型公司在自己的内部部署使用,或部署后在自己的产业链生态中邀请合作伙伴接入,也可以由产业联盟共同部署。
+
+但以互联网的发展经验看,要让区块链真正成为应用的平台,主航道还是比特币与以太坊所开辟的道路,这条主航道常被为“基础公链”或“底层公链”。它们的目标是开发一条通用功能或专一功能的公有链,并同时做三件事:开发软件、运行系统、运营社区。
+
+**基础公链:通用类(general)**
+
+在这条路径上,以太坊已经做了开创性尝试且仍在持续发展。它是完全通用的,是通用类的基础公链。类似的项目还有不少,其中最热门的是 EOS,以及现在市值处于前 20 名的小蚁(NEO)、新经币(XEM)等。其中,按到现在为止的产品情况看,对 EOS 的设计思路最简单的描述或许是:一个更快、更好、更适合应用开发的以太坊。
+
+**基础公链:功能类(functional)**
+
+基础公链的路径之二是开发专用于某类功能的区块链,比如市值处于前20名的有专用于物联网的 IOTA 等。区块链的经典项目之一是 Steem 区块链和它的博客平台 Steemit,它是专用于数字内容的,在中国有类似的数字内容项目,如币乎。又比如,中国区块链社区巴比特开发的比原链(Bytom)是专用于数字资产交换的,按白皮书披露的信息它要做到的是,连通比特世界与原子世界,实现“比特资产”(原生的数字货币、数字资产)和“原子资产”(有传统物理世界对应物)的交互与流转。
+
+**基础公链:行业类(sectoral)**
+
+基础公链的路径之三是开发专用于某个行业的区块链,充分考虑该行业的特点提供相关的功能,比如保险、供应链金融、游戏、政务等。
+
+除以上内容之外,还有一大类新区块链项目的目标是做技术的基础设施,可称为基础服务(basic services)。这里列举两组可能的方向。
+
+其中一组是,这些项目看到的事实是,在区块链的世界中必然有着多条链,甚至有非常多条链共存,链与链之间的功能或资产的连接就变得很重要。它们关注的焦点是跨链的资产交易。
+
+2018 年年初,新区块链项目区块基石(ArcBlock)自称是区块链 3.0,它的核心是提供跨链的协议,并以云服务的形式为开发者提供便利。另一个新项目梵塔网络(Penta)则定位在做“区块链世界的连接器”,要实现三大连接——链与链的连接、链与中心化系统的连接、链下与链上价值的连接,即为了推进区块链的应用,不只是连接不同的链,连接链上与链下,更要在需要时连接链与中心化系统。
+
+在鲸准研究院与节点资本研究中心的“侧链跨链研究报告”(2018年)中,它认为侧链与跨链在技术上大体相似,只有在谈到它们的服务对象时才需做细致的区分:一般来说,侧链服务于主链,而跨链试图改进的是链之间价值和功能的连通。其实,现在区块链领域的主要应用之一“币币交易所”实质上做的也是跨链资产的交易,只是目前采用的主要还是中心化的方式。目前,主要的交易所都推出了自己的通证(一般称平台币),并公布基础公链计划,也即准备用区块链技术来改进自身业务。
+
+在基础服务方面另一组可能的方向是,随着去中心化应用的出现,各种基础性技术服务成为刚需。比如,文件存储就是一个需要解决的问题,星际文件系统(InterPlanetary File System,IPFS)等项目备受关注。随着区块链应用的发展,在周边将出现更多的技术需求,分布式文件存储仅是其中之一。
+
+综合以上讨论,在通向区块链 3.0 即应用平台的路上,大体上出现了五条路径:通用类基础公链、功能类基础公链、行业类基础公链、联盟链开源软件及基础服务(见图 4)。
+
+我们还可以再回到云服务的视角展望区块链的发展路径。通常,云服务可分成不同的层次:IaaS(基础架构即服务)、PaaS(平台即服务)、SaaS(软件即服务)。
+
+
+
+
+
+类似地,有的基础公链提供的是最底层的区块链服务,如通用类基础公链;有的提供的是 PaaS,有的提供的则是 SaaS,它们所覆盖的范围是功能类基础公链和行业类基础公链,当然要注意的是,现有云服务和区块链的分类方式不是一一对应的关系(见图 5)。
+
+
+
+
+## 「讨论」从多个网到多条链
+
+雷纳特·卡桑辛(Renat Khasanshyn)曾展示他基于联盟链理解的区块链应用未来。现在的各类系统,比如相互连接在一起的金融系统,是由多个中心化的数据库组成的。用区块链技术来改造这些系统,他的设想是,在合适的地方用相应的区块链来取代原来的数据库(见图 6)。从图 6 中可以看到,中心化的数据库被去中心化的区块链所取代。
+
+我们也可以看到,就像现有的系统由多个数据库以分散的方式连接在一起,新的系统是由多条区块链组成的,它们也以分散的方式连接在一起。要注意的是,这里所绘制的是几乎所有的中心化数据库都被去中心化的区块链所取代,而实际情况可能是,适合区块链的会被区块链取代,适合中心化的仍保留原有的状态。比如现在在区块链中,多条链之间的资产交换的主要有效方式是高度中心化的交易所。
+
+
+
+
+## 学习结束啦,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-bu-ke-neng-san-jiao.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-bu-ke-neng-san-jiao.md
new file mode 100644
index 0000000..b647e29
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-bu-ke-neng-san-jiao.md
@@ -0,0 +1,24 @@
+# 区块链“不可能三角”
+
+在前面的讨论中我们提到,一个基础公链要同时兼顾功能、性能、网络三个要素。在区块链的设计中,还有一个更知名的“不可能三角”(见图1),它指的是,一个区块链项目无法同时满足三个条件,最多只能同时满足两个条件:
+
+* 可扩展性(scalability)
+* [去中心化](http://c.biancheng.net/view/1889.html)(decentralization)
+* 安全(security)
+
+
+
+对比一下比特币和 EOS:比特币系统看重的是去中心化和安全,而牺牲了可扩展性;EOS 在一定程度上牺牲了去中心化,而去追求可扩展性与安全。
+
+在很多领域中都有这样的不可能三角,我们要在三个因素间权衡:
+
+* 比如在软件工程中的时间(time)、成本(money)、功能性(scope)。
+* 比如在分布式系统中的一致性(consistency)、可用性(availability)、网络分区(partition tolerance)。
+* 比如在货币汇率政策中的三元悖论或保罗·克鲁格曼所画的永恒的三角形,即调节性(adjustment)、置信度(confidence)、流动性(liquidity)(见图2)。
+
+
+
+## 学习结束啦,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-ji-shu-ge-ming.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-ji-shu-ge-ming.md
new file mode 100644
index 0000000..b7a241e
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-ji-shu-ge-ming.md
@@ -0,0 +1,254 @@
+---
+description: 区块链的应用有什么?区块链将带来什么变革?
+---
+
+# 区块链技术革命
+
+“区块链,是互联网的二次革命。”
+
+“区块链,是互联网2.0。”
+
+“区块链,让我们从信息互联网跨越到价值互联网。”
+
+这是从互联网发展的视角出发,对区块链有什么意义做出的一些回答。
+
+谈起区块链的前景,人们会列举它能改变金融、能源、零售、文化、社交、游戏、物联网等,但我觉得,以上回答更为有力。
+
+从 1994 年互联网开始商业化,经过近 25 年的发展,互联网已经彻底改变了我们周围的一切——经济、产业、生活。互联网从 1995 年左右的“信息高速公路”的说法,变成了无处不在的力量。现在,如果区块链是互联网 2.0,互联网曾经带来的改变以区块链的方式再来一次,随着区块链技术的进步和相关基础设施的完善,各种意想不到的应用会涌现出来。
+
+## 信息传递 VS 价值转移
+
+之前,互联网处理的是“信息”;现在,互联网可以处理“价值”。从 2008 年到 2018 年,酝酿了近十年的区块链技术弥补了互联网与数字世界中一直缺失的另一半。区块链提供了在数字世界中处理价值所需的两个基础功能:价值表示与价值转移,让互联网跃迁到价值互联网(见图1)。
+
+
+
+
+1990 年,万维网协议发明者蒂姆·伯纳斯-李写道:“一旦我们通过万维网连接信息,我们就可以通过它来发现事实、创立想法、买卖物品,以及创建新的关系,而这一切都是通过在过往时代不可想象的速度和规模来实现的。”到现在,互联网上的各种应用和服务,包括门户、视频、社交、即时通信、电商、打车、B2B、网络支付等,都是基于信息传递的基础设施、沿着他的设想逐步发展起来的。
+
+在区块链出现之后,对照之下我们发现,信息传递的一个关键特征让互联网很强大,但有一个我们之前并未曾特别关注的限制:信息传递的方式是复制。这一特征让我们在数字空间中进行价值转移时,必须依赖可信第三方的协助。那些可信第三方,即各种各样的中心化机构,比如亚马逊、淘宝、支付宝、优步、滴滴、爱彼迎、微信支付,一直以来像本来就应该有一样,存在于互联网产业之中。
+
+不管是网络零售、生活服务交易,还是企业互联网,每个从事交易的互联网项目都需要价值转移的功能,而这些平台在交易中担任信用中介的角色。特别地,在互联网上进行金钱的转移时,我们需要信用中介来居中协调,为了进行在线支付,互联网上已经产生了专门的信用中介,如 PayPal、支付宝、微信支付等。
+
+直到 2008 年,当中本聪在比特币系统中开发出区块链这个底层技术,当他尝试创造新的技术来去掉这些信用中介,让网络本身来扮演信用中介的角色时,我们开始发现,现在互联网中的各种信用中介并非必须存在。
+
+经过十年的发展,比特币系统展示了,在数字世界中价值表示可以去中心化,价值转移同样可以去中心化。
+
+现在,我们仍需要各种“信用中介”,因为到现在为止互联网数字世界中的所有基础设施都是为了信息传递而建的。
+
+未来,我们不再需要这些“信用中介”。基于区块链技术,我们可能建立一个通过网络本身进行价值表示、价值转移的全新交易基础设施。
+
+如果价值表示和价值转移可去中心化,直接通过网络本身来进行,那么我们就将从“信息互联网”跨越到“价值互联网”。
+
+要理解价值互联网,我们可以从对比信息传递方式和价值转移方式的差异开始。
+
+## 详解价值转移的方式:记录
+
+信息和价值是完全不同的事物,信息传递和价值转移的方式完全不同。接下来,我们分别对比几组线下物理世界和线上数字世界的案例。
+
+#### **报纸 VS 纸币**
+
+在线下物理世界中,信息的典型代表是报纸,而价值的典型代表是纸币。每一张报纸都是一样的,报纸编辑完成后,印刷机复制它,然后它被送到我们的手中。
+
+对比而言,虽然纸币也是由印刷机印制的,每一张 100 美元纸币代表的价值是相等的,但每一张纸币都是不一样的,每一张都有唯一的序列号。
+
+信息是可复制的,我可以复印一份报纸给你。价值不可以复制,我必须把100美元现金真的给你,而不能复印了给你。
+
+到了互联网上,数字化的信息可以完美复制,这加快了信息的流动。而和价值有关的事物在互联网中没有发生同样倍数的变化。
+
+报纸和纸币的对比如图 2 所示。
+
+
+
+#### **纸币的电子化:信用卡与在线支付**
+
+我们接着讨论现金交易。在商店中购物,我们付纸币现金,看起来在我们和商店收银员之间并没有任何中介。当然在这背后,这些现金会变成商店在银行账户上记录的数字,在现金交易完成之后有一个庞大的金融体系在运转。
+
+当信用卡开始普及,现金开始被电子化的塑料卡片取代时,我们在刷卡支付时,一个第三方中介就出现在我们和收银员之间,它可能是维萨、万事达、银联等。这些信用中介做的事是:当我付钱时,从我的银行账户中减去我付的钱,在商店的银行账户中加上这笔钱。
+
+在互联网出现之后,当我们在线上或线下使用支付宝、微信支付等第三方在线支付时,它们扮演着与维萨、万事达等信用卡组织类似的角色。
+
+信用卡组织和在线支付系统做的事都是进行可信的记录,即在账本上进行记录,确认金钱的转移。
+
+#### **价值转移依靠记录:房产与汽车的案例**
+
+在物理世界中,涉及除纸币现金之外的其他价值转移时,在多数情况下,我们转移价值的方式也是记录,而记录通常需要一个可信的第三方。
+
+以房产的转移为例。我们把一个房产转让给别人,对方付了钱,我们怎么把房产这个价值转移给他?
+
+他仅仅搬进这个房子住,并不能表示他已经拥有了这个房子的所有权。在古代,房屋买卖双方签订地契,在中文中,“契”字的含义是刻画记载,地契成为所有权的记录。
+
+到了现代社会,我们的做法是,到不动产登记中心进行登记,在政府部门管理的账本记录(不动产登记簿)上更改房屋所有权的归属,对方拿到有着他的名字的房产本——“不动产权证书”。房产这个价值的所有权转移依靠的是“记录”。
+
+对比古代和现代的做法,我们可以看到,过去的地契是去中心化的,而现代的房产登记是中心化的。
+
+类似地,我们要把一辆汽车这样的动产转让给他人,现代社会的做法也是要去交通管理部门进行记录的变更,并获得新的车辆证照,如车辆行驶证。
+
+> 在多数现代国家中,房产与汽车这两种资产都是由国家的相关部门来进行统一登记的。我们会发现,这里有两种记录:一是中心化数据库中的记录,对中国的房产来说,这个记录存在于国土资源部门集中管理的账本——“不动产登记簿”;二是产权人拿到的附属证明,即俗称的房产证——“不动产权证书”。如果房产证与集中账本中的信息不一致,或者车辆行驶证的信息与交管局数据库中的信息不一致,那么通常的做法是以集中账本中的记录为准。
+
+## 数字世界中的价值表示与价值转移
+
+信息传递的主要方式是复制(见图3)。在互联网中不管是最基础的 TCP/IP 协议,还是 WWW(万维网)协议,都是专为信息传递设计的。并且,数字化的信息复制可以复制出一模一样的副本,复制效率更高,互联网给信息传递带来了巨变。
+
+
+
+
+价值转移的主要方式是记录。从物理世界到数字世界,价值转移的方式都是记录。但是,用数据文件进行价值表示会遇到很多困难,可完美复制的数据文件和需要唯一性的价值表示形成冲突。如果表示价值的数据文件可以完美复制,那么我就可能把它支付给你,再复制一份支付给另一个人,造成双花问题。在数字世界中进行价值转移时,为了防止双花问题,我们要依赖可信第三方作为中介,由它作为交易中心进行记录。
+
+这事实上成为互联网往下一步发展的隐形障碍。
+
+在互联网上,与信息相关的产品高速发展、成本快速降低。但是,由于需要可信第三方进行协调,与价值转移有关的事依然处在成本高、效率低的状态。互联网上的价值转移仍局限在少数的价值类别上,比如在线支付系统处理的现金、在线证券交易、之前讨论的Q币与游戏币等互联网积分。
+
+中本聪设计的比特币系统,给数字世界中的价值表示和价值转移这两个关于价值的关键问题都提供了解决方案。中本聪的解决方案去掉了处在中间的可信第三方,实现了完全的去中心化,让网络自身就可以表示价值,通过网络自身来转移价值和进行记录。
+
+在互联网上,互惠经济是一种常被讨论的现象,比如开发者参与开源软件的开发,人们共同编撰百科全书,知识爱好者在社区问答社区中分享知识。过去很多人认为,这是缘于这些互联网用户有着无私和互惠的精神,这的确是这些社区得以发展的重要原因。但或许也可以说,过去人们为社区贡献了力量,而不给予相应的代表价值的事物,这可能是因为,在数字世界中一直没有方便的方法进行“价值表示”,更没有方便的办法进行“价值转移”。现在,在有了区块链和它底层的区块链技术以后,我们就有了相应的技术手段。
+
+到现在来看,对数字世界的价值表示和价值转移,比特币系统都进行了完美的概念验证,并经受住了时间的考验。比特币系统是一个试验性的系统,是极客们为了解决技术难题而开发的“技术玩具”。但从 2009 年年初开始运转起,不管比特币所表示的价值折算成法币是价值很小的 1 美元,还是高达接近 2 万美元,这一系统都运转正常。通过这一系统,我们可以在数字世界中进行价值转移,无须任何信用中介介入,比特币系统无须中介的点对点价值转移交易,被证明是有效的。
+
+当然,比特币系统和源自它的区块链技术目前才跨过概念验证阶段,要作为投入工程应用的系统,满足亿万用户的使用,仍存在较大的性能问题。但不管怎样,区块链可能成为互联网数字世界中“价值表示”和“价值转移”的基础性协议(见图4)。有了比特币系统这个样板和区块链技术,互联网和数字世界中关于价值的一切都开始发生变化。
+
+
+
+## 价值表示功能:[分布式账本](fen-bu-shi-zhang-ben-yu-qu-zhong-xin-hua-wang-luo.md)改变了互联网上的价值表示方式
+
+当从比特币系统中发现区块链技术时,人们首先看到的是,它是一个“分布式账本”,并将之称为分布式账本技术(distributed ledger technology,DLT)。分布式账本的核心功能是做价值的表示,比如一个人持有的比特币是分布式账本中的记录。这些被表示出来的价值,又是在交易中体现出来的,因而我们仍可从价值转移来讨论价值表示。
+
+数据文件是可完美复制的,在数字世界里,我们要转移价值就需要有一个信用中介居中协调,它们的功能是做价值所有权的记录,它们也维护着一个集中的账本用以记录。在过去的数十年内,转移金钱的信用中介(如在线支付系统)越来越易用,支付宝、微信支付在线上、线下都带来了很大的便利,它们也越来越智能,比如能更好地识别欺诈。但是,它们的组成结构未曾发生根本性的变化,见图 5 a\):
+
+* 信用中介处在交易双方之间,协助完成价值转移。
+* 它们通常提供一个供用户使用的应用界面。
+* 它们维护着一个集中的账本。
+* 金钱是集中账本中的记录。
+
+
+
+
+比特币系统彻底地改变了这个组成结构。通过各自掌握的比特币钱包软件,我们可以在个人与个人之间进行比特币转账。如图 5 b\) 所示,在进行比特币转账时,不再有一个信用中介帮我们保存和维护一个集中的账本并处理所有权的记录。区块链的账本以分布式的方式存在于互联网上,由[去中心网络](fen-bu-shi-zhang-ben-yu-qu-zhong-xin-hua-wang-luo.md)中的节点共同维护。
+
+市面上存在多种比特币钱包,只要我们掌握自己的私钥,任何比特币钱包软件都是一样的。我们的比特币被存储与记录在分布式账本中,即有人简单说的在链上。
+
+这里还想澄清一个常见的误解。在讨论区块链的分布式账本时,常有人说每个人保存自己的账本,如果绘制成形象的图示,大体上如图 5 c\) 所示。
+
+那么,我们是保存自己的账本吗?通过这个形象的图示我们可以看到,“每个人保存自己的账本”这个说法既对又不对。说它对是因为,每个人的确可以把比特币的账本都下载下来;说它不对是因为,逻辑上我们接入了一个由包括众多节点的去中心网络维护的分布式账本,比特币账本的运转逻辑并不是每个人都保存自己的账本,然后在需要的时候拿出账本来对账,而是我们共享一个云端账本。
+
+特别地,比特币钱包中并不保存“账本”。账本是由比特币网络中的全节点维护的,而钱包软件是所谓的轻量节点或轻客户端,也叫简单付款验证客户端(simple payment verification,SPV),里面只保存了向你的地址付款的交易与区块头部。
+
+更进一步追问,在区块链上,我们的数字资产存放在哪里?我们还是对照现实中资产的存储方式来理解区块链的资产存储。
+
+比特币系统的设计在一定程度上是模拟黄金的设计。要特别说明,这里讨论的并非比特币本身有黄金一样的财富价值。对比黄金和比特币我们可以看到,比特币系统模拟的并不是实体黄金。如果我们拥有实体黄金资产,我们会拿到实物的金条、金币,将之保存在自己的保险柜中。
+
+比特币系统模拟的是我们在银行中购买的黄金资产。这些黄金资产背后有存放在某处的黄金作为支撑,但对普通人来说,我们并不能接触到这些实体的金条、金币,这些黄金资产只是我们账户中的记录而已。
+
+类似地,在比特币系统中,你并不保存自己的比特币资产,即通常情况下你并非自己保存分布式账本和它所表示的比特币。你只是保存了比特币的私钥,你的数字资产还是存在链上的。
+
+再观察银行等我们熟知的管理金钱的系统,我们存在银行的金钱资产其实是银行账本中的记录,由银行账本中的记录表示和确认我们对金钱资产的所有权。比特币系统的设计是与银行系统相似的,一个人的比特币资产是分布式账本中的记录。只不过与过去相比,这里已经发生了一个重大变化:这个账本是分布式的。
+
+这是一个“分布式的、公开的、互联的大账本”。而比特币背后的去中心网络、工作量证明共识机制和“竞争-记账-奖励”循环确保了这个账本记录的可信度。
+
+## 价值转移功能:区块链成为互联网的价值基础协议
+
+从此,在数字世界中,我们可以在两个人之间直接进行价值转移,无须任何中心化信用中介的介入。如果从互联网应用的角度看,这个变化是,信用中介的角色被从各种互联网应用中剥离出来,下沉成为互联网更基础性的功能,即在基础层次上,区块链担任信用中介,协助我们进行价值表示和价值转移。
+
+从比特币系统这样一个概念验证性质的系统开始,到其后的各种项目,区块链渐渐展现出对互联网的变革性意义:互联网在协议层有了价值表示和价值转移的功能,区块链成为互联网的价值基础协议。
+
+通常来说,如图 6 所示,互联网可以大体分成三层。
+
+
+
+* 最上层,是普通用户看到网站与移动App等应用。
+* 中间层,是协议层,这一层过去主要是信息传递的 WWW 等协议。
+* 最底层,是网络传输硬件和网络传输协议如TCP/IP等。
+
+
+WWW 协议和各种网站、App 应用都是建立在硬件网络基础上的。现在看来,区块链带来的变化不是发生在普通用户看得到的应用部分,网站和 App 可能仍将保持它们现在的模样,同时比特币、以太坊等各种区块链去中心网络也仍是运行在现有互联网硬件网络之上的。
+
+区块链带来的变化发生在中间的协议层。区块链给互联网带来了进行价值表示和价值转移的新协议。由此我们发现,互联网的结构就发生了根本性的变化。
+
+在《商业区块链》一书中,区块链专家威廉·穆贾雅将中间的协议层称为信用层(the trust layer)。我认为,由于现在尚处于发展早期,为了便于理解,如图 6 所示,将这个新协议层称为“区块链信用层协议”(blockchain trust layer protocol)可能更直观明了。
+
+类似于 WWW 协议,区块链信用层协议由一组协议构成,在现有硬件网络之上,形成了一个协助我们进行价值表示和价值转移的新层次。这组协议目前仍未定型,也尚未被广泛认可,在持续发展中。
+
+互联网上一次出现协议级的变化是蒂姆·伯纳斯-李发明了 WWW 协议。WWW 协议把互联网塑造成我们现在所知的互联网,给经济、社会、生活带来了巨大的变革,在这中间只发生过一些对信息传递的相关协议的修补和升级。
+
+这一次,互联网增加了全新的一组协议——用于价值表示和价值转移的区块链信用层协议。
+
+巨变才刚刚开始。
+
+我们还可以用一个微观的事物类比来看:为什么把信用中介下沉到基础层次带来的变动是巨大的?为什么协议变化带来的变动是巨大的?
+
+我们把互联网看成一个平台,把信用中介看成其上的一个应用。比如,在Facebook或微信这样的社交网络平台上,为了满足用户的需求,第三方公司可以开发某种特定的应用。但这些公司始终要面对一个艰难的问题:如果平台做了这个功能,全面开放这个能力,你怎么办?当平台在平台级别提供一种能力后,所带来的变化是:一方面,第三方开发的应用可能没有存在的必要;另一方面,当平台把一个能力开放给所有人时,更多人可以利用它开发新产品,甚至更多的个人可以直接利用这个能力。当微信从2017年开始提供小程序功能时,应用开发变得方便,大量的小程序应用涌现出来,大幅度改变了移动互联网的应用生态。
+
+## 价值表示物:数字世界中表示价值的通证
+
+比特币是区块链技术的第一个应用,也是到目前为止最重要的应用,虽然它还只是一个完成了概念验证的系统,比特币系统完成关于价值的两个功能的验证:价值表示和价值转移。
+
+我们已经讨论了价值表示和价值转移两个功能,接下来讨论用区块链的这两个功能实现的价值表示物——通证。
+
+要更好地理解通证,我们还是从比特币说起。通常,比特币被称为“加密数字货币”,它是一种数字商品,是被凭空发行出来的。从技术角度说,中本聪创造的比特币是一种在数字世界中可以代表价值的事物。作为技术极客,中本聪解决了一个技术难题:如何在数字世界中表示价值?
+
+他的解决方案侧重在技术本身,而并没有考虑“比特币是不是有内在价值”,也没有考虑“人们会不会普遍接受它”。一枚比特币的价格是多少,是由自由市场交易决定的。它逐渐被越来越多的人接受,是时间累积而来的。比特币的价格以及谁接受它都受到很多偶然因素的影响。现在看来,比特币是一种非常独特的价值表示,背后没有任何物理世界或数字世界中的对应价值作为支撑。
+
+随着对比特币关注度的提升,更多人试图进一步改进比特币这个价值表示物、比特币系统和它底层的区块链技术。
+
+2013 年年底,以太坊创始人维塔利克首次发布以太坊白皮书,他准备开发一个新的区块链项目,在前人尝试的路径上继续改进和发展。他对到那时为止的比特币的改进做了如下梳理,他写道,常被提及的应用包括:
+
+1. 使用链上数字资产来代表定制货币和金融工具(染色币,colored coins);
+2. 某种基础物理设备的所有权(智能资产,smart property);
+3. 如域名一样的不可互换的资产(域名币,Namecoin);
+4. 以及复杂的应用来直接控制转移数字资产,如采用事先制定的规则(智能合约,smart contracts);
+5. 甚至基于区块链的分布式自治组织(DAOs)。
+
+
+现在再回顾我们可以看到,迄今为止,从比特币开始的区块链的开发和应用有以下四条主要路径:
+
+1\) 从比特币延展的各种替代币(altcoin),主要有莱特币等。通常,它们只是对比特币代码库的参数进行小修改,然后用这组程序代码运行自己的系统。它们和比特币系统一样包括三个部分:加密数字货币、分布式账本、去中心网络。在中文中,替代币也常被称为“竞争币”“山寨币”。
+
+2\) 借鉴比特币区块链的设计,开发所有人都可以接入的全新公有链,典型的有 Steem、以太坊、EOS 等。有意思的是,过去站在以比特币系统为世界中心的视角看,以太坊曾被视为替代链(alt chain)。
+
+3\) 借鉴比特币区块链的设计思想,开发适合单个企业或多个企业使用的区块链开源软件,这常被称为联盟链。典型代表是由 IBM 开发、现在由 Linux 基金会管理的超级账本项目(HyperLeger)。
+
+4\) 以比特币区块链为基础,开发基于它的协议(meta-protocol,又译为元协议、外设协议),提升性能,使之便于应用,比如钱包、侧链、跨链、支付、交易所等。
+
+以上除了第一类以外,其他三类都已经超越比特币最初的加密数字货币(电子现金)的想法,凭空发行的加密数字货币可能只是价值表示物的一种早期特殊形式。
+
+一个重大变化发生在 2017 年。这一年,除了竞争币和各类公有链发行的原生货币之外,以太坊的一个功能开始被广泛地使用。这个功能是,任何人都可以在以太坊上按其 [ERC20](http://c.biancheng.net/view/1922.html) 通证标准编写智能合约,发行通证。
+
+这些通证可以在数字世界中表示某种价值,这些价值既可以是线上的,也可以是线下的;既可以是已经存在的,也可以是设想中的。有些人甚至在没想好用它代表什么价值之前,就已经在以太坊上将之发行出来,当然这造成了不少问题。以太坊还创造了一种常被称为代币众筹或首次代币发行(initial coin offering)的机制:人们可以用以太币(ETH)去参与众筹,换得相应的通证。
+
+
+> 在后续章节中,我会详细解释以太坊的原理、ERC20通证标准以及代币众筹。
+
+创建通证的方便、用通证获取资金的便利以及随之而来的财富效应,使得市场上通证的数量暴增,再加上 2017 年比特币和以太币的价格暴涨,这些因素综合起来引发了一场投机狂潮。在 2017 年年底,在数字世界中代表价值的数字资产的总价值暴涨,然后在 2018 年年初又暴跌。
+
+但不管怎样,从 2017 年年中到 2018 年年初发生的事,让区块链走出了极客圈子,变得广为人知。更多的人开始意识到它的价值,并认识到,区块链和在过去20年中带来巨变的互联网有着相似的结构,它既有技术的一面,又有经济的一面。
+
+从比特币到以太坊,价值互联网的关键基础构件之一“通证”呈现在所有人的面前。
+
+你可能注意到了,我们始终在用通证的说法,而没有用很多人常用的中文词“代币”。“代币”说法和“币”这个字,常让人们关注通证的货币特性。我赞同通证经济专家孟岩与中关村区块链产业联盟发起人元道等提出的中文翻译:token,可称为“通证”,指“可流通的加密数字权益证明”。
+
+对区块链的经济一面,新的认知正在形成。延续过去的说法,很多人把比特币、以太币等基础公链的原生货币,以及通过以太坊等基础公链的智能合约发行出来的通证都称为加密数字货币。但人们逐渐发现,不是通证是加密数字货币的一种特殊情况,而是反过来,原生加密数字货币是通证的一种特殊情况。因此,在说通证时,我们采用了最广泛的含义,把数字世界中,基于区块链的各种价值表示物都称为通证。
+
+我们还可以用 WWW 协议来类比理解区块链。WWW 协议包括三个部分:文本标记语言 HTML、文档传输协议 HTTP、指定文档网络地址的统一资源定位符 URL(见图7)。
+
+
+
+
+大体上,区块链信用层协议进行记录的价值表示功能可类比为统一资源定位符 URL,进行价值转移的功能可类比为文档传输协议 HTTP,而区块链上的价值表示物(通证)可看成文本标记语言HTML(见图 8)。
+
+
+
+过去,对于在 WWW 协议上可以构建什么样的应用,这个问题的答案是被逐步发现的。现在在价值互联网上,对于在区块链上可以开发什么应用,这个问题的答案也是等着在实践中被发现出来的。
+
+总的来说,现在在数字世界中,类似于 HTML 的代表价值的语言(通证)已经准备好了。“怎么用通证,通证有什么用”等问题等待着创造性的回答。
+
+在信息互联网中,基于万维网协议我们构建各类互联网应用;在价值互联网中,基于区块链信用层协议我们可能构建各种通证经济体(见图 9)。
+
+区块链的第三、第四个定义如图 10 所示。
+
+
+
+
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-jiang-cheng-wei-hu-lian-wang-ji-chu-xie-yi.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-jiang-cheng-wei-hu-lian-wang-ji-chu-xie-yi.md
new file mode 100644
index 0000000..f26efb6
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-jiang-cheng-wei-hu-lian-wang-ji-chu-xie-yi.md
@@ -0,0 +1,42 @@
+---
+description: 类似于TCP/IP、HTTP
+---
+
+# 区块链将成为互联网基础协议
+
+网络中的协议在技术上指的是,网络硬件、操作系统在进行通信时要遵守一些规则,这些规则被称为协议(protocol)。
+
+ 互联网通信用的协议是所谓 TCP/IP 协议族。通常认为 TCP/IP 协议族包括四层:应用层、传输层、网络层、链路层。链路层将一些数据放在电线上;网络层对数据进行路由;传输层将数据持久化;应用层以应用的形式提供数据抽象,见图 1。
+
+
+
+ TCP/IP 协议族包括一组协议:TCP 和 IP 两种基础协议,邮件传输的 SMTP 协议,超文本传输协议 HTTP、HTTPS,域名系统 DNS 等。
+
+ 1989 年,蒂姆·伯纳斯-李提出了让学术界进行信息与知识共享的 WWW(万维网)协议。通常认为,WWW 协议包括三个部分:
+
+* 文本标记语言HTML。
+* 文档传输协议HTTP。
+* 指定文档网络地址的统一资源定位符URL。
+
+ 在之前的讨论中,为简化起见,我们把信息在应用方面的相关协议称为 WWW 协议。如图 1 所示,在讨论信息传输时,我们常说的是 HTTP 协议,它位于通信协议的应用层。要注意,这里的应用层与讨论互联网应用时的“应用”是有区别的,指的并不是网站、App 等。
+
+ 把互联网看成硬件网络、万维网协议、网站与 App 应用三个层次,而区块链技术带来的变化是,在现有硬件网络之上、WWW 协议旁边,构建一组用于价值表示和价值转移的新协议:区块链信用层协议。区块链仍然很新,相关的协议都在发展过程中,但现在,我们已经可以认为,它所发挥的角色类似于 WWW 协议。
+
+ 如果从网络通信的应用层、传输层、网络层、链路层的分层逻辑上看,我们还可以有另一种看法:区块链可能从原应用层分离出来,形成一个价值层(见图 2)。当然,对网络通信协议的分层,在短期内还难以形成一致的修订意见。这里为了便于理解,我们试图绘制如图1-29所示的图示,在应用层、传输层、网络层、链路层四层上抽象出一个“价值层”。
+
+
+
+ 在信息传输时,原来的四个层次组合在一起良好地工作。但要在数字世界中表示价值、转移价值,互联网在基础协议层次并没有提供支持,我们需要在网站、App中做很多工作。并且特别地,我们通常需要一个中心化机构来担任可信第三方的角色,帮我们管理记录价值的账本,协助我们进行价值转移。
+
+ 现在,正如比特币系统和其他区块链系统所展示的,区块链同时提供了关于价值的两个重要功能:价值表示和价值转移。
+
+ 现在,我们不再需要可信第三方来协助进行价值表示和价值转移,用户可以通过区块链来进行点对点的价值交易。因此,我们可以认为,区块链对数字世界中与价值相关的应用功能进行了抽象,从原应用层独立抽离出来,形成了网络通信的第五个层次——价值层。
+
+ 也有人认为,区块链给互联网带来的是与信用相关的功能,它担任的角色是过去的可信第三方的角色,这个从应用层分离出来的层次也可称为“可信层”。
+
+ 之前我们尝试性地提出了“区块链信用层协议”的说法,以说明区块链给互联网带来了类似 WWW 协议的重大变化。这里我们又从网络通信层次的角度,尝试性地提出“价值层”的说法,因为这是互联网第一次可能在通信协议层次直接处理价值表示和价值转移。以上都是尝试性的提议,提出来供进一步探讨。
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-shi-shen-me.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-shi-shen-me.md
new file mode 100644
index 0000000..eb05448
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-shi-shen-me.md
@@ -0,0 +1,163 @@
+---
+description: 区块链概念
+---
+
+# 区块链是什么?
+
+> 区块链技术是由比特币创造的,本文也将从比特币开始进行引导,一步一步告诉大家什么是区块链。
+
+ 区块链,可能是当下最有前景又充满分歧的技术与经济趋势。它给数字世界带来了“价值表示”和“价值转移”两项全新的基础功能。其潜力正在显现出来,但当下它又处于朦胧与野蛮生长的阶段。
+
+ 对比互联网的发展史,现在的区块链可能相当于 1994 年的互联网,即互联网刚刚进入大众视野的时期,那也是第一波互联网革命萌芽的时期。谷歌、亚马逊、Facebook、腾讯、阿里巴巴、优步、滴滴,甚至现在市值超万亿的苹果都得益于那一时刻。
+
+ 现在区块链技术可能带来互联网的二次革命,把互联网从“信息互联网”带向“价值互联网”。在区块链的对照之下,人们发现,最初被形象地称为“信息高速公路”的互联网处理的是“信息”,而区块链能处理的是“价值”。
+
+ 变革即将发生,未来已来。我们又一次处于革命的起点——价值互联网的变革,而要理解价值互联网的未来,我们先要搞明白区块链技术是什么。
+
+让我们回到10年前,从中本聪(Satoshi Nakamoto)发明比特币的那一刻说起。
+
+## 比特币的诞生
+
+ 2009年1月3日,在位于芬兰赫尔辛基的服务器上,至今匿名的神秘技术极客中本聪生成了第一个比特币区块,即所谓的比特币创世区块(genesis block)。
+
+ 在创世区块的备注中,中本聪写入了当天英国《泰晤士报》的头版头条标题:
+
+ “The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”
+ “《泰晤士报》,2009年1月3日,财政大臣站在第二次救助银行的边缘”
+
+ 这样做,他记录了比特币系统启动和创世区块生成的时刻,又借这句话表达了对当时全球金融体系的暗讽。2009 年年初,全球金融体系刚经历了 2008 年金融危机的冲击,看起来摇摇欲坠。
+
+ 在生成创世区块时,按自己设定的规则,中本聪获得了 50 个比特币奖励,这是最早的 50 个比特币。从创始区块开始,在比特币的账本上每 10 分钟就有新的数据区块被增加上去,新的比特币被凭空发行出来。比特币的去中心化网络开始运转,扩展到现在的由数万个节点组成的全球网络。
+
+ 在比特币的创世时刻,它的三个组成部分都出现了,即加密数字货币(cryptocurrency)、分布式账本(distributed ledger)、去中心网络(decentralized network),如下图所示。
+
+
+
+
+
+ 2008 年 10 月 31 日,中本聪向一个密码学邮件列表的所有成员发送了一个电子邮件,标题为“比特币:点对点电子现金论文”。
+
+> * 中本聪邮件见:[https://www.mail-archive.com/cryptography@metzdowd.com/msg09959.html](https://www.mail-archive.com/cryptography@metzdowd.com/msg09959.html)。
+> * 比特币白皮书见:[www.bitcoin.org/bitcoin.pdf](http://www.bitcoin.org/bitcoin.pdf)。
+
+ 他写道:“我一直在研究一个新的电子现金系统,它完全是点对点的,无须任何的可信第三方。”比特币的起源应远早于这个日期,中本聪曾说,他从 2007 年 5 月就开始为比特币项目编程。2008 年 8 月,他注册了 [bitcoin.org](http://bitcoin.org/) 域名,这是现在比特币项目的官方网址。
+
+ 在邮件中,他附上了比特币白皮书的链接,论文题为“比特币:一个点对点电子现金系统”(Bitcoin:A Peer-to-Peer Electronic Cash System)。中本聪在2008年发表的这篇论文可能是互联网发展史上最重要的论文之一,其他重要论文有利克里德写的开启互联网前身阿帕网的“计算机作为一种通信设备”(1968年)、蒂姆·伯纳斯-李写的万维网协议(WWW)建议书“信息管理:一个建议”(1989年)、谷歌联合创始人谢尔盖·布林与拉里·佩奇写的搜索引擎论文(1998年)等。
+
+ 可以合理地推测,中本聪不是一个学院派的研究型学者,他可能是一个做实际软件工程开发的工程师,因为他不只设计了比特币系统,还把它开发出来,让它在互联网上运行起来。他可能是先开发了软件,才写了上面提到的重量级论文,来解释自己的设计。
+
+ 2008 年 11 月 16 日,中本聪公布了比特币系统的源代码。在发布白皮书、将软件代码开源后,在 2009 年 1 月 3 日这一区块链的创世时刻,最终他在互联网上上线了比特币网络。之后,中本聪和几个开发者在网上一起讨论想法,继续开发迭代。随着比特币网络的成熟,他的活动开始减少,比特币系统逐渐进入自治运转的状态。最终,在发明比特币系统 3 年后,自 2011 年 11 月后,中本聪永远不再出现。他成了一个永远匿名的传奇,没人知道他是谁,他只留下了自己的创造。
+
+## 中本聪为什么创造比特币
+
+ 在创造比特币的过程中,中本聪发明了区块链技术,区块链是源自比特币的底层技术。那么,他为什么要创造比特币?他想解决什么难题?
+
+ 现在,比特币常被称为一种“加密数字货币”,人们常很关注其中的“货币”二字。其实,比特币并不具备现在各国法定货币的特征,它只是一种数字形式的特殊商品。比特币现在的市场价格和暴涨暴跌也影响着人们对它的看法,人们把它类比为黄金、郁金香等各种投资、投机标的。
+
+ 但如果回到中本聪创造它的时刻,我们会看到,比特币的出现是源于技术极客想解决的一个技术难题:“在数字世界中,如何创造一种具有现金特性的事物?”“比特币:一个点对点电子现金系统”这个标题体现出了中本聪想解决的难题:他想创造在数字世界中可用的电子现金,它可以点对点也就是个人对个人交易,交易中不需要任何中介参与。
+
+ 来对比看看。在物理世界中,一个人可以把现金纸币给另一个人,不需要经过诸如银行、支付机构、见证人等中介机构。
+
+ 但由于数字文件是可复制的,复制出来的电子文件是一模一样的,因而在数字世界中,我们不能简单地用一个数字文件作为代表价值的事物。同时,我们在支付机构中有多少钱,并没有像一张张钞票一样的数字文件可以代表,钱仅是中心化数据库中的记录。
+
+ 在数字世界中,当一个人要把现金转给另一个人时,必须要有中介机构的参与。比如,我们通过支付宝转账的过程是:支付宝在一个人的账户记录里减掉一定金额,在另一个人的账户记录中增加一定金额。
+
+ 在数字世界中,如何创建一个无须中介或者说去中心化的数字现金,一直是一个难题。由于数字文件可以完美复制,如果没有一个中心化数据库做记录,那如何避免一个人把一笔钱花两次?
+
+ 这就是所谓的双重支付或双花问题(double spending)。在比特币出现之前,我们熟悉的主要电子现金系统(如PayPal、支付宝等)都是依靠中心化数据库来避免双花问题,这些可信第三方中介不可或缺,见图 2。
+
+
+
+
+ 但在另一条道路即去中介或去中心化的电子现金这条路径上,有很多技术极客一直在做着各种尝试,只是一直未能获得最终的成功。
+
+ 到了 2008 年,中本聪借鉴和综合前人的成果,特别是现在常被统称为密码朋克(cypherpunk)的群体的成果,改进之前各类中心化和去中心化的电子现金,加上自己的独特创新,创造了比特币这个点对点电子现金系统,在无须中介的情况下解决了双花问题。
+
+ 特别地,比特币这个电子现金系统是同时去中介化和去中心化的:
+
+* 个人与个人之间的电子现金无须可信第三方中介的介入,这是去中介化。
+* 这个电子现金的货币发行也不需要一个中心化机构,而是由代码与社区共识完成,这是去中心化。
+
+ 要注意的是,这个“电子现金”中的现金指的并非货币,它只是在解决难题的过程中被借用来在数字世界中代表价值的说法。这样说是为了便于理解,在现实中,最常见的代表价值的事物是现金。
+
+ 最初,比特币这个用以表示价值的电子现金并没有价格。比特币系统只是在逻辑上可行的系统,是解决了一个难题的技术玩具。2010 年 5 月 22 日,在一个网络论坛上,有一个程序员用 1 万枚比特币换了两张棒约翰比萨的代金券,比特币第一次有了一个公允价格:1 万枚比特币价格为 25 美元。为了纪念这一天,每年的 5 月 22 日变成了区块链世界的一个节日——比特币比萨节。
+
+ 此后,比特币虽然从来都不是货币,但逐渐地有了价值与价格。比特币的价格在自由市场交易中被确定,又持续、反复地大幅波动。但是,不管是从早期的 1132 美元跌掉一半,还是在 2017 年年底快速上涨到接近 2 万美元,又在几个月内跌到只有三分之一,比特币系统和它底层的区块链技术都保持稳定。
+
+ 中本聪设计和编码实现的比特币电子现金系统至今已运转近十年。比特币系统已经从一个技术玩具变成一个运转得近乎完美的系统,并且看起来还将长期稳定地运转下去。
+
+## 从比特币系统中发现区块链
+
+ 在物理世界中,现金是一张张纸币,但其背后有着一整套与货币相关的金融体系:中央银行、银行、印钞厂、信用卡组织,以及后来出现的第三方网络支付机构等。
+
+ 在数字世界中,想要创造一种去中介化、去中心化的“电子现金”,同样要设计一套完整的系统。这一系统要能解决以下一系列问题:
+
+* 这种“现金”如何公平、公正地发行出来,不被任何中心化的机构或个人控制?
+* 如何实现像在物理世界中一样,一个人可以直接把现金递给另一个人,无须任何中介的协助?
+* 这种电子现金如何“防伪”?在数字世界中,这个问题可转换为,一笔电子现金如何不被花费两次?
+
+ 中本聪设计和开发了比特币系统,完美地解决了这些问题。说起比特币,人们常指的是比特币这种做价值表示的电子现金。其实,作为电子现金的比特币只是比特币系统的表层,比特币系统包括三层,见图3:
+
+* 最上一层是比特币这种电子现金。这是整个系统的应用层。
+* 中间一层的功能是发行比特币与处理用户间的比特币转移。这一层也叫比特币协议(bitcoin protocol),是整个系统的应用协议层。
+* 最底层是比特币的分布式账本和去中心网络。这一层也被称为比特币**区块链(bitcoin blockchain)**,是整个系统的通用协议层。
+
+ 比特币系统的三层命名(应用层、应用协议层、通用协议层)源自知名区块链研究者梅兰妮·斯万,她也提出了被广泛引述的一种阶段划分:区块链 1.0 是货币、区块链 2.0 是合约、区块链3.0是应用。
+
+> 梅兰妮·斯万(Melanie Swan)著有《区块链:新经济蓝图及导读》(Blockchain:Blueprint for a new economy)。应用层、应用协议层、通用协议层的分类参见她的演讲。
+
+
+
+ 比特币系统实现的去中心化的点对点电子现金,其发行与转账靠的是中间的比特币协议层。类比现实货币系统,这一层的角色相当于中央银行(发行货币)与银行(处理转账)等金融机构。
+
+ 来深入看看名为“比特币协议”的这一层。比特币系统架构图又常被进一步细分为五层(见图4),它对应的是比特币协议和比特币区块链两个部分。在这个五层架构中,比特币协议层被细分为:应用层、激励层和共识层。
+
+
+
+ 在设计比特币系统时,中本聪创造性地把计算机算力竞争和经济激励相结合,形成了工作量证明(proof-of-work,POW)共识机制,让挖矿计算机节点在计算竞争中完成了货币发行和记账功能,也完成了区块链账本和去中心网络的运维。这就形成了一个完整的循环:矿机挖矿(算力竞争),完成去中心化记账(运转系统),获得比特币形式的经济激励(经济奖励)。
+
+ 比特币的工作量证明共识机制是承上启下的一层,连接了上层应用与下层技术:在其上的层次为电子现金的发行、转账、防伪;在其下的层次,去中心网络的节点达成一致,更新分布式账本。
+
+ 之后在讨论区块链的现在与未来时,我们会不断地回到比特币系统的设计上来,它是一个简单又精妙的系统,融合技术和经济因素,是区块链所有创新的源头。
+
+## 区块链的定义
+
+ 至此,相信读者已经大概能明白了区块链是什么了,最后,再让我们从不同的角度给区块链下一个定义吧。
+
+### 第一种区块链的定义(比较通俗)
+
+ 比特币:一种加密数字货币;区块链:一种基础技术。
+
+ 区块链是一种源自于“比特币”的底层技术。换句话说,比特币是区块链技术的第一个大获成功的应用。
+
+### 第二种区块链的定义
+
+ 区块链是数字世界中进行“价值表示”和“价值转移”的技术。区块链硬币一面是表示价值的加密数字货币或通证,另一面是进行价值转移的分布式账本与去中心网络。
+
+ 分布式账本与去中心网络也常被称为“链”,它可被视为一个软件平台;而表示价值的通证常被称为“币”。
+
+ 通证存储在链上,通过链上的代码(主要形式的智能合约)来管理,它是可编程的。
+
+
+
+## 【讨论】当我们说区块链时,我们在说什么
+
+ 比特币系统包括三层:比特币、比特币协议、比特币区块链,即比特币的分布式账本与去中心网络。那么,从比特币系统来对照看,说区块链时,我们说的可能是什么?
+
+
+
+ 区块链这个说法包括四种可能性,所覆盖的范围逐步变大,见上图:
+
+* 可能性之一,区块链指的是比特币的数据结构,即由数据块(block)连接形成的链(chain),这也被称为“分布式账本”。在比特币白皮书中,中本聪分别提及了区块和链,但后来它们才被组合成了区块链(blockchain)这个新词。
+* 可能性之二,区块链指的是比特币的分布式账本和去中心网络的组合。对应于比特币系统,它指的是整个第三层比特币区块链。
+* 可能性之三,区块链指的是比特币系统的第二层(比特币协议)和第三层(比特币区块链)的组合。它包括分布式账本、去中心网络和比特币协议。
+* 可能性之四,区块链指的是整个比特币系统,包括所有三层,既包括价值表示的比特币,也包括了背后支撑的整个系统。从这个范围看,是把区块链看成一个既包括技术部分,又包括经济部分的完整系统。
+
+ 大众在提及区块链时,常指的是第四种最大的范围,即“账本+网络+协议+货币”。在产业中,人们在提到区块链时,通常指的是第三种范围,即“账本+网络+协议”。而很多软件开发者在说起区块链时通常指的是第二种范围“账本+网络”,即分布式账本加去中心网络。
+
+ 现在,包括我在内的很多人都有一种看法是,将基于区块链的价值表示物都称为通证,并把比特币等代币(coin)视为通证的一个特定种类。通常而言,提及加密数字货币、通证、代币时,我们指的都是基于区块链的、在数字世界中进行价值表示的事物。如果采用“通证”说法,区块链的最大范围包括的则是“账本+网络+协议+通证”。
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-si-da-te-zheng.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-si-da-te-zheng.md
new file mode 100644
index 0000000..9a57615
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-si-da-te-zheng.md
@@ -0,0 +1,104 @@
+# 区块链四大特征
+
+在对比特币和以太坊这两个主要系统,讨论了区块链的价值表示和价值转移这两个基础功能,探讨了数字资产、通证与通证经济系统之后,我们再来看看区块链的特征与用途,尝试回答“区块链有什么用”这个问题。答案就藏在区块链的四个基础特性中。
+
+在观察了以太坊带来的变化后,区块链特征以及与这些特征相关的应用已经较为清晰地展现在我们面前。这四个基础特征分别是:不可篡改,不可复制的唯一性,智能合约,去中心自组织或社区化(见图1)。
+
+区块链不只是技术,它还将从经济、管理、社会层面带来变化,它可能改变人类交易的方式,它将改变货币、账本、合同、协同等方面,这是我们将在后续章节中讨论的。
+
+
+
+接下来,我们先分别讨论区块链的这四个基础特性。
+
+### 区块链的四大特征之一:不可篡改
+
+区块链最容易被理解的特性是不可篡改的特性。
+
+不可篡改是基于“区块+链”(block+chain)的独特账本而形成的:存有交易的区块按照时间顺序持续加到链的尾部。要修改一个区块中的数据,就需要重新生成它之后的所有区块。
+
+共识机制的重要作用之一是使得修改大量区块的成本极高,从而几乎是不可能的。以采用工作量证明的区块链网络(比如比特币、以太坊)为例,只有拥有 51% 的算力才可能重新生成所有区块以篡改数据。但是,破坏数据并不符合拥有大算力的玩家的自身利益,这种实用设计增强了区块链上的数据可靠性。
+
+通常,在区块链账本中的交易数据可以视为不能被“修改”,它只能通过被认可的新交易来“修正”。修正的过程会留下痕迹,这也是为什么说区块链是不可篡改的,篡改是指用作伪的手段改动或曲解。
+
+在现在常用的文件和关系型数据中,除非采用特别的设计,否则系统本身是不记录修改痕迹的。区块链账本采用的是与文件、数据库不同的设计,它借鉴的是现实中的账本设计——留存记录痕迹。因此,我们不能不留痕迹地“修改”账本,而只能“修正”账本(见图2)。
+
+
+
+
+
+区块链的数据存储被称为“账本”(leger,总账),这是非常符合其实质的名称。区块链账本的逻辑和传统的账本相似。比如,我可能因错漏转了一笔钱给你,这笔交易被区块链账本接受,记录在其中。修正错漏的方式不是直接修改账本,将它恢复到这个错误交易前的状态;而是进行一笔新的修正交易,你把这笔钱转回给我。当新交易被区块链账本接受,错漏就被修正,所有的修正过程都记录在账本之中,有迹可循。
+
+将区块链投入使用的第一类设想正是利用它的不可篡改特性。农产品或商品溯源的应用是将它们的流通过程记录在区块链上,以确保数据记录不被篡改,从而提供追溯的证据。在供应链领域应用区块链的一种设想是,确保接触账本的人不能修改过往记录,从而保障记录的可靠性。
+
+2018 年 3 月,在网络零售集团京东发布的《区块链技术实践白皮书》中,京东认为,区块链技术(分布式账本)的三种应用场景是:跨主体协作,需要低成本信任,存在长周期交易链条。这三个应用场景所利用的都是区块链的不可篡改特性。多主体在一个不可篡改的账本上协作,降低了信任成本。区块链账本中存储的是状态,未被涉及的数据的状态不会发生变化,且越早前的数据越难被篡改,这使得它适用于长周期交易。
+
+### 区块链的四大特征之二:表示价值所需要的唯一性
+
+不管是可互换通证(ERC20),还是不可互换通证(ERC721),又或者是其他提议中的通证标准,以太坊的通证都展示了区块链的一个重要特征:表示价值所需要的唯一性。
+
+在数字世界中,最基本单元是比特,比特的根本特性是可复制。但是价值不能被复制,价值必须是唯一的。之前我们已经讨论过,这正是矛盾所在:在数字世界中,我们很难让一个文件是唯一的,至少很难普遍地做到这一点。这是现在我们需要中心化的账本来记录价值的原因。
+
+在数字世界中,我们没法像拥有现金一样,手上拿着钞票。在数字世界中,我们需要银行等信用中介,我们的钱是由银行账本帮忙记录的。
+
+比特币系统带来的区块链技术可以说第一次把“唯一性”普遍地带入了数字世界,而以太坊的通证将数字世界中的价值表示功能普及开来。
+
+2018 年年初,中国的两位科技互联网企业领袖不约而同地强调了区块链带来的“唯一性”。腾讯主要创始人、CEO 马化腾说:“区块链确实是一项具有创新性的技术,用数字化表达唯一性,区块链可以模拟现实中的实物唯一性。”
+
+百度创始人、CEO 李彦宏说:“区块链到来之后,可以真正使虚拟物品变得唯一,这样的互联网跟以前的互联网会是非常不一样的。”
+
+对于通证经济的探讨和展望正是基于,在数字世界中,在网络基础层次上区块链提供了去中心化的价值表示和价值转移的方式。在以以太坊为代表的区块链 2.0 时代,出现了更通用的价值代表物——通证,从区块链1.0的数字现金时期进入到数字资产时期。
+
+### 区块链的四大特征之三:智能合约
+
+从比特币到以太坊,区块链最大的变化是“智能合约”(见图3)。比特币系统是专为一种数字货币而设计的,它的 UTXO 和脚本也可以处理一些复杂的交易,但有很大的局限性。而维塔利克创建了以太坊区块链,他的核心目标都是围绕智能合约展开的:一个图灵完备的脚本语言、一个运行智能合约的虚拟机(EVM),以及后续发展出来的一系列标准化的用于不同类型通证的智能合约等。
+
+
+
+智能合约的出现使得基于区块链的两个人不只是可以进行简单的价值转移,而可以设定复杂的规则,由智能合约自动、自治地执行,这极大地扩展了区块链的应用可能性。
+
+当前把焦点放在通证的创新性应用上的项目,在软件层面都是通过编写智能合约来实现的。利用智能合约,我们可以进行复杂的数字资产交易。
+
+在讨论以太坊的发展过程时,在冷知识专栏“智能合约”“以太坊的智能合约”中,我们对智能合约进行了很多讨论,在此不再赘述。这里再借维塔利克的讨论,重复一下我们认同的智能合约的软件性质——它相当于一种特殊的服务端后台程序(daemon)。在以太坊白皮书中,维塔利克写道:
+
+(合约)应被看成是存在于以太坊执行环境中的“自治代理”(autonomous agents),它拥有自己的以太坊账户,收到交易信息,它们就相当于被捅了一下,然后它就自动执行一段代码。
+
+智能合约的执行流程如图 4 所示。区块链的第五、第六个定义如图 5 所示。
+
+
+
+
+
+
+
+### 区块链的四大特征之四:去中心自组织
+
+区块链的第四大特征是去中心自组织。到目前为止,主要区块链项目的自身组织和运作都与这个特征紧密相关。很多人对区块链项目的理想期待是,它们成为自治运转的一个社区或生态。
+
+匿名的中本聪在完成比特币的开发和初期的迭代开发之后,就完全从互联网上消失了。但他创造的比特币系统持续地运转着:无论是比特币这个加密数字货币,比特币协议即它的发行与交易机制,比特币的分布式账本、去中心网络,还是比特币矿工和比特币开发,都去中心化、自组织地运转着。
+
+我们可以合理地猜测,在比特币之后出现了众多修改参数分叉形成的竞争币、硬分叉形成的比特币现金(BCH),可能都符合中本聪的设想。他选择了“失控”,失控可视为自治的同义词。
+
+到目前为止,以太坊项目仍在维塔利克的“领导”之下,但正如本章一开始讨论的,他是以领导一个开源组织的方式引领着这个项目,就像林纳斯领导开源的 Linux 操作系统和 Linux 基金会一样。
+
+维塔利克可能是对去中心自组织思考得最多的人之一,他一直强调和采用基于区块链的治理方式。2016 年以太坊的硬分叉是他提议的,但需要通过链上的社区投票,获得通过方可施行。在以太坊社区中,包括 ERC20 等在内的众多标准是社区开发者自发形成的。
+
+在《去中心化应用》一书中,作者西拉杰·拉瓦尔(Siraj Raval)还从另一个角度进行了区分,他的这个区分有助于我们更好地理解未来的应用与组织。他从两个维度看现有的互联网技术产品:一个维度是,在组织上是中心化的,还是去中心化的;另一个维度是,在逻辑上是中心化的,还是去中心化的。
+
+他认为:“比特币在组织上去中心化,在逻辑上集中。”而电子邮件系统在组织上和逻辑上都是去中心化的(见图6)。
+
+
+
+在设想未来的组织时,我们心中的理想原型常是比特币的组织:完全去中心化的自治组织。但在实践过程中,为了效率和能够推进,我们又会略微往中心化组织靠拢,最终找到一个合适的平衡点。
+
+现在,在通过以太坊的智能合约创建和发放通证,并以社区或生态方式运行的区块链项目中,不少项目的理想状态是类似于比特币的组织,但实际情况是介于完全的去中心化组织和传统的公司之间。
+
+在讨论区块链的第四个特征去中心自组织时,其实我们已经在从代码的世界往外走,涉及人的组织与协同了。现在,各种讨论和实际探索也揭示了区块链在技术之外的意义:它可能作为基础设施支持人类的生产组织和协同的变革。这正是区块链与互联网是完全同构的又一例证,互联网也不仅仅是一项技术,它改变了人们的组织和协同。
+
+总的来说,以太坊把区块链带入了新的阶段。在讨论以太坊时,如果要总结两个关键词的话,那么这两个关键词分别是智能合约和通证;而如果只能说一个的话,我会选择“通证”。我会更愿意从互联网的历史中找寻它的意义,重复之前的类比:作为价值表示物的通证,它的角色类似于 HTML。在有了 HTML 之后,建什么样的网站完全取决于我们的想象力。
+
+现在,很多人迫不及待地试图进入区块链 3.0 阶段,即不再仅把区块链用于数字资产的交易,而是希望将区块链应用于各个产业和领域中,从互联网赋能走向区块链赋能,从“互联网+”走向“区块链+”。继续拿信息互联网的发展历程作为对照来展望未来,信息互联网最早是传递文本信息,但它真正的爆发是后来出现的电商、社交、游戏以及和线下结合的 O2O——也就是应用。未来,真正展现区块链价值的也将是各种现在未知的应用。
+
+## 学习结束啦,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-ying-yong-shi-shen-me-yang-de.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-ying-yong-shi-shen-me-yang-de.md
new file mode 100644
index 0000000..efc4aa5
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/qu-kuai-lian-ying-yong-shi-shen-me-yang-de.md
@@ -0,0 +1,198 @@
+---
+description: 去中心化应用是什么样的?
+---
+
+# 区块链应用是什么样的?
+
+EOS 的技术白皮书给出了应用所需的六个条件(如下所示),而 EOS 的软件设计的确是对应这些条件而设计的。本节我们将重点讨论 EOS 的其中三个为应用而做的特别设计:用户免费、账户体系、存储。
+
+区块链应用的六个条件:
+
+1. 支持百万级别的用户,需要能够处理数千万日活跃用户的区块链技术。
+2. 使用免费,应用开发人员需要具备灵活性,能够为用户提供免费服务;用户不必为了使用平台或从平台的服务中受益而付费。
+3. 轻松升级和故障修复,区块链平台必须对软件和智能合约的升级提供支持。
+4. 延迟低,及时地反馈是良好用户体验的基础。
+5. 串行性能,有些应用程序由于必须顺序执行命令,无法用并行算法进行实现。区块链需要提供强大的串行性能支持。
+6. 并行性能,大型应用程序需要在多个CPU和计算机之间分配工作负载。
+
+> 《EOSIO技术白皮书》翻译版:[http://blog.eosdata.io/index.php/2018/04/28/eos-io-whitepaper-v2/](http://blog.eosdata.io/index.php/2018/04/28/eos-io-whitepaper-v2/);英文版:[https://github.com/EOSIO/Do-cumentation/blob/master/TechnicalWhitePaper.md\#accounts](https://github.com/EOSIO/Do-cumentation/blob/master/TechnicalWhitePaper.md#accounts)。
+
+### 区块链应用要去中心化到什么程度
+
+类似于互联网,让区块链变得有用的所有期待都寄托在应用上,通常人们也称之为去中心化应用(DAPP)。在讨论 EOS 为应用所做的特别设计之前,我们先讨论区块链应用或所谓去中心化应用的架构,这是区块链落地应用的最前沿,众人仍在探索。
+
+对于应用的前景,在《区块链革命》一书中,唐·塔普斯科特曾展望道:“我们在进入数字化革命的一个新纪元,人们可以进行分布式软件的编程和分享。就如区块链协议本身是分布式的那样,一个分布式的应用程序或 DAPP(去中心化应用程序)会在很多计算机上运行,而不是在一个单一的服务器上运行。”
+
+经过 20 多年的发展,我们都已经很熟悉信息互联网的网站或移动应用是什么样的,那么,和区块链相关的去中心化应用究竟是什么样的呢?
+
+要理解区块链应用或去中心化应用,我们还是要从熟悉的事物谈起。
+
+现在被认同的发展前景是,互联网将从信息互联网跨越到基于区块链的价值互联网。信息互联网的应用是网站与移动 App。在展望应用时,很多人自然地认为,在区块链上将出现原生的区块链应用或去中心化应用。
+
+这样形成的结构是如图 1 a\) 所示:网站、移动 App 对应的是信息互联网,而所谓的区块链应用/去中心化应用对应着区块链。早期应用的确呈现这样的状态,比如区块浏览器、每个区块链自己的钱包等。每一条区块链都是分布式账本与去中心网络,它们提供数据与功能。早期应用与这些区块链进行交互。
+
+但我们很快发现,当普通用户要使用区块链时,应用可能变成类似于图 1 b\) 的样子:网站与移动 App 中有一个与区块链进行数据和功能交互的“区块链应用”,而普通用户看到的其实还是网站与移动应用。我们甚至可以说,对于普通用户来说,可能根本没有什么区块链应用或去中心化应用,只有应用。
+
+
+
+如果单独看一条区块链的应用,情形可能如图 2 所示。
+
+* 这条区块链是分布式账本与去中心网络,它提供着一系列与价值相关的数据和功能。
+* 多个应用接入区块链网络。在这些应用中,有的可能是普通用户可以使用的,是网站/移动 App 与区块链应用的组合;有的可能是纯粹的区块链应用。
+
+
+
+
+有的应用可能接入多个区块链,比如现在常见的应用交易所、钱包就接入多个区块链。
+
+基于 Steem 区块链的 Steemit 博客应用是少有的普通用户可以使用的应用。在 Steem 区块链上,上述这样的应用架构就展现得较为明晰:
+
+* Steem 区块链上存储价值(STEEM 币、SP、SBD 等三种通证),并按照内容贡献进行价值的分配。
+* 基于这条区块链建立有多个应用:普通用户可用的 Steemit 博客平台、视频平台 DTube 等;常备的应用如区块链浏览器 [steemd.com](http://steemd.com/) 网站。它的社区算是较为活跃的,还有其他的很多应用。
+
+
+Steem 的主要开发者也是 EOS 的主要开发者丹尼尔·拉瑞莫(BM),EOS 是将 Steem 区块链通用化,并做了很多改进。比如,对比 Steem 与 EOS 我们可以看到,EOS 不再采用把内容存放在区块链上这个不合理的设计,但它继续扩展了 Steem 中已经有的账号与权限体系。
+
+比特币系统完成了用区块链进行价值表示和价值转移的概念验证,而 Steem 区块链和 Steemit 博客平台这个早期项目可能完成了区块链应用的概念验证。现在,EOS 将其之前的很多设计发扬光大。
+
+在《去中心化应用》一书中,开发者西拉杰·拉瓦尔对去中心化应用的去中心化程度进行了一番讨论。他认为,区块链可能在四个过去集中化的方面完成去中心化:
+
+* 将数据去中心化(decentralized data)
+* 将财富去中心化(decentralized wealth)
+* 将身份去中心化(decentralized identity)
+* 将计算去中心化(decentralized computing)
+
+
+我认为,区块链的核心功能是去中心化的价值表示和价值转移,它们分别对应的是以上分类中的财富与计算。当试图构建应用时,我们应把重点放在这两者上面。和其他主要的区块链一样,EOS 在这两个方面做得很好。它还试图大幅度改进区块链本身的核心性能,即每秒事务处理量(TPS)。
+
+或许同样重要的是,与其他区块链相比,EOS 为开发一个普通用户可用的应用,提供了更多的功能与特性。接下来我们讨论 EOS 为应用而做的三件事:用户免费、账户与权限体系、存储系统。
+
+### 用户免费
+
+在讨论应用所需的条件时,EOS 白皮书写道:“用户不必为了使用平台或从平台的服务中受益而付费。”
+
+用户免费是 EOS 与比特币、以太坊相对而言的显著差别。在比特币、以太坊系统中,普通用户如果进行转账交易等操作,需要支付相应的交易费。而 EOS 把承担这个费用的压力转移给了应用的提供者。
+
+用户免费是和 EOS 的通证经济设计紧密相关的。使用一个区块链的应用通常需要三种资源,这三种资源是由维护这个去中心网络的计算机提供的,对 EOS 来说,这三种资源是由区块生产者(BP)提供的。这三种资源分别是:
+
+* 带宽资源:带宽和日志存储(磁盘)(Bandwidth and Log Storage(Disk))。
+* 计算资源:计算和计算积压(CPU)(Computation and Computational Backlog(CPU))。
+* 状态资源:状态存储(RAM)(State Storage(RAM))。
+
+
+这三种资源(带宽资源、计算资源和状态资源)对应的是一个计算机网络的三种能力。对于熟悉计算机的人来说,带宽资源和计算资源容易理解,而状态资源是区块链的专用术语。正如之前讨论的,区块链账本中存储的是状态,比如交易账本、账户余额等,按其名字缩写为 RAM,它的性质大约相当于内存。
+
+EOS 还特别举例说明,什么应该存入状态,什么不应该存入状态。例如,一个区块链应用程序的逻辑不需要读取博客文章的内容和评论,因此它们不应该存储在区块链的状态中。但是,博客文章或评论是否存在、投票数以及其他属性,需要存在区块链的状态之中。
+
+
+> 特别地,BM 之前设计与开发了内容专用的区块链 Steem,在 Steem 中,博客文章和评论的文本是存储在区块链的区块(区块链账本)中的。BM 在实践中可能意识到,正确的做法应当是只在区块链账本中存储与交易相关的信息。
+
+简单地说,区块链是用于交易的,区块链的状态是交易账本,那么,与交易相关的信息应该存入交易账本,而与交易无关的信息不应存入交易账本。
+
+EOS 区块链的这三种资源的消耗机制是这样的:区块生产者(BP)公布可用的带宽(bandwidth)、计算(computation)和状态(state)的容量。
+
+EOSIO 系统允许每个账户消耗一定比例的可用资源,这个比例是根据账户将自己持有的通证存入“三天抵押合约”的数量决定的。
+
+例如,假设有一个基于 EOS 的应用,如果一个账户持有总通证的 1%,那么这个账户可利用 1% 的状态存储容量。
+
+因此,对于如何做到对用户免费,EOS 的设计关键是如下两点。
+
+**第一,用户不用直接向区块链付费,而由应用来处理。**
+
+在以太坊区块链网络中,我要将以太币或其他基于 ERC20 标准的通证转移给别人,我作为交易的发起人,需要自己设定一个交易费(gas),给区块链网络直接付费,从而让以太坊网络能处理这一交易。
+
+EOS 的设计逻辑是基于这样的假设:“没有任何网站要求访问者为维护服务器而支付小额费用。因此,去中心化应用程序不应该强迫它的客户为使用区块链而向区块链支付直接费用。”
+
+EOS 虽然以“接收方付费”作为一个讨论部分的小标题,但它的思路其实是,由应用自己来决定采取什么样的方式。通常为了应用能够便于用户使用,它的基本逻辑应当是,应用自行解决费用,最终用户使用区块链网络是免费的。
+
+**第二,将交易成本与通证价值区分开。**
+
+在以太坊区块链网络中,我们支付交易费支付的是以太币,随着以太币价格的涨跌,交易成本就随着这个通证价格波动。而 EOS 的设计逻辑是:“将交易成本与通证价值区分开。”
+
+EOS 区块链网络的做法是,一个应用拥有的带宽、计算、状态等资源,是与其持有的通证数量有关的,但由于不需要消耗,因此在一定程度上可视为与该通证的价值或价格无关。
+
+如果我们作为应用开发者,并不持有足够多的通证,则 EOS 区块链网络还提供一种租用机制,这个机制是“将资源能力授权出去”(delegating capacity):通证的持有人可能不需要立即消耗可用带宽的全部或部分资源,他们可以选择将未消耗的带宽委托或租赁给他人。
+
+但要注意的是这句话:“带宽和计算可以授权给他人,但是对应用程序状态的存储需要开发者持有通证,直至状态删除为止。如果程序的状态永不删除,那么这部分通证就退出了流通。”
+
+
+> 根据 EOSIO 文档,这里的状态可认为指的是一个应用所占用的区块链网络的 RAM 存储空间。原文为:Storage of application state will require an application developer to hold tokens until that state is deleted.If state is never deleted,then the tokens are effectively removed from circulation.
+>
+> 对比以太坊和 EOS 我们可以看到,在以太坊中进行交易,个人用户需要支付交易费,而在 EOS 中进行交易,则是应用提供者需要承担成本,现在看来其中主要的成本是与 RAM 存储空间相关的。
+
+### 账户与权限体系
+
+EOS 与比特币、以太坊的一大不同点是,它允许用户创建一个不超过 12 位长的用户名,这个用户名代表的是我们的账户。
+
+**以太坊的账户**
+
+比特币区块链根本就没有账户的概念,比特币只有地址;以太坊设计了账户,但远没有 EOS 这么完备的账户权限相关功能。为了便于理解,我们先看从比特币到以太坊的“从地址到账户”,再看 EOS 的账户设计。
+
+比特币是没有账户的,所有的比特币交易都是地址之间的交换。我们所持有的比特币是自己的各个地址中比特币的总和,在比特币系统中是没有账户、余额这种东西的。
+
+以太坊引入了账户的概念:以太坊账户。每个账户包括四个信息:一个随机数、账户的余额、合约代码(如果有的话)、存储(通常为空)。
+
+以太坊包括两类账户:
+
+* 外部由私钥控制的账户。
+* 合约控制的账户。
+
+
+对比特币来说,它只有由外部的私钥控制的地址。在以太坊外部账户中没有代码,它可以创建和签署一个交易,也就是发出消息,而一个合约账户在收到消息后可以执行相应的代码和处理存储。这里的“合约”代码相当于存在于以太坊执行环境中的“自治代理”,它拥有自己的以太坊账户,它在收到交易信息后就相当于被捅了一下,然后自动执行一段代码。
+
+和比特币一样,以太坊的区块中存储的也是交易,它包括的字段主要有:接受者(接受的账户)、发送者的签名、发送者发给接受者的以太币金额等。
+
+**EOS 的账户**
+
+EOS 的账户系统则要复杂得多,它更像银行的账户系统或者我们在互联网应用(比如谷歌、微信等)中的账户系统。
+
+下面来看看 EOS 账户系统的构成。
+
+一个 EOS 账户系统可以发送动作(action)给另一个账户,而每个账户都可以设定一个处理器(handler)来自动处理发送给自己的动作。动作和处理器的结合,就是 EOS 的智能合约(见图3)。
+
+每个账户都有自己的内部数据库(private database),这个账户内部的内部数据库只有自己的动作处理器可以访问。
+
+
+
+
+EOS 系统提供了一个标准的基于角色的权限系统(role based permission management),这使得所有基于 EOS 开发的应用都可以采用这个账户体系与权限系统,而不必自己重新造轮子。
+
+在 BM 之前开发的 Steem 区块链中,基于角色的权限系统就被引入区块链中,他在 Steem 中硬编码了三种用户权限:owner、active、posting。
+
+> EOS 白皮书在讨论 Steem 时说:“posting 权限只能执行诸如投票和发布等社交行为,而 active 权限除了更改所有者之外,还可以做其他任何事情。owner 权限用作冷存储,它能够做所有事情。”
+
+EOS 对此进一步改进,对这个基于角色的权限系统进行了通用化,“允许每个账户持有者定义自己的权限层次结构以及动作的分组”。这样做给了应用开发者更多的自由度。
+
+
+> 在 EOS 开发者文档中,有关于账户与权限的开发信息,见 [https://developers.eos.io/eosio-nodeos/docs/accounts-and-permissions](https://developers.eos.io/eosio-nodeos/docs/accounts-and-permissions)。
+
+在 EOS 的账户权限系统中有两个缺省的权限组:最高级别的缺省权限组是 owner,第二个缺省权限组是 active,它可以做出除更改所有者之外的所有事。其他的权限组都可以由 active 派生出来,这些权限组用户可以自行定义。比如,我开发一个博客应用,我就可以自己定义一个 publish 权限组出来(见图4)。
+
+
+
+### 存储系统
+
+我们都已经知道,只有与交易相关的信息应该存储在区块链的区块中,那么,对于去中心化的应用,其他的数据应该存储在何处呢?
+
+> EOS 存储的白皮书见:[https://github.com/EOSIO/Docum-entation/blob/master/EOS.IO%20Storage.pdf](https://github.com/EOSIO/Docum-entation/blob/master/EOS.IO%20Storage.pdf)。其中,它强调区块链的区块中不应存储文件。
+
+绝大多数基础公链都没有解决这个周边问题,而聚焦于区块链的核心任务——交易。但为了让 EOS 可以更好地用于开发应用,EOS 在 2017 年 9 月就发布了 EOS 存储的独立白皮书,解释了它在存储方面的开发设想。
+
+在讨论了星际文件系统(IPFS)、分布式存储项目(Filecoin、Maidsafe、Siacoin、Storj),以及现有的中心化存储(如DropBox、GoogleDriver、苹果的iCloud)等后,它提出了用自己的通证与 IPFS 结合,形成一个用于 EOS 应用开发的存储。
+
+有了基于 IPFS 的文件存储系统之后,在 2017 年 12 月 12 日,EOS 团队发表文章给出了它建议的 EOS 应用开发架构(见图5)。从图中可以看到,在它建议的应用开发框架中,EOS 的应用是被建议存储在基于 IPFS 的 EOS 存储中的(即图中的 IPFS File Storage)。到目前为止,EOS 在存储方面还仅仅提供了一个设想,离真正落实还有一定的距离。
+
+总的来说,区块链将价值表示和价值转移这两个与价值有关的核心功能去中心化了,区块链应用可通过接口与区块链交互数据(通证)和计算(通证交易)。EOS 作为当下最热门的新区块链系统,它的特色在于,在这两个核心功能之外,它为应用的开发提供了各种便利,可能促进更多应用的出现。
+
+
+
+
+
+区块链的第七、第八个定义如图6所示。
+
+
+
+## 学习结束啦,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/shen-me-shi-qu-zhong-xin-hua.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/shen-me-shi-qu-zhong-xin-hua.md
new file mode 100644
index 0000000..7905f44
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/shen-me-shi-qu-zhong-xin-hua.md
@@ -0,0 +1,179 @@
+---
+description: 比特币是如何实现去中心化的?
+---
+
+# 什么是去中心化?
+
+ 【导读】本节通过对比三种数字货币的形式引出“什么是去中心化”,并展示了比特币在去中心化方面的表现如何,最后,向大家阐述了比特币去中心化的原理。
+
+ 中本聪解决了自己定义的难题“点对点的电子现金”,在这个过程中,他“发明”了区块链技术。比特币系统融合密码学、博弈论和软件工程等三个领域的技术与理论,区块链技术是已有技术巧妙地组合形成的创新。中本聪不是凭空解决“点对点电子现金”这个难题的,他沿着前人的足迹前进,只是他完成了最后一跃。
+
+ 接下来,我们来具体地看中本聪是如何解决他定义的难题,创造一个在数字世界中做价值表示的事物的。在讨论中我们会特别关注,他是如何实现“去中心化”的?
+
+## 什么是去中心化?
+
+ 在说“货币”时,我们讨论的是数字世界中的价值表示。在互联网上的数字世界中,人们曾设计出各种各样的电子现金或数字现金方案,在为《区块链:技术驱动金融》一书撰写前言时,杰里米·克拉克收集了约 100 种支付系统。他写道:“在通往比特币的道路上,布满了无数失败的尝试。”在所列的各种系统中,他认为大众所知道的只有 PayPal。当然,在移动支付超前发展的中国,我们都很熟悉支付宝与微信支付。
+
+ 一直以来,数字世界中的“货币”有三种形式(见下图):
+
+* 中心化的在线支付;
+* 中心化的计算机点数或互联网积分;
+* 去中心化的电子现金。
+
+
+
+### 第一种形式:中心化的在线支付
+
+ 我们常用的 PayPal、支付宝、微信支付都是中心化的在线支付,在这些支付系统中流转的是映射到数字世界的各国的法定货币(也称法币)。
+
+> 法币(fiat money)是“法定货币”或“法偿币”的简称,它依靠政府的法令成为合法流通的货币。法币是各国政府发行的纸币,发行者没有将货币兑现为实物(如黄金)的义务。
+>
+> 法定货币的价值来自拥有者相信货币将来能维持其购买力,本身并无内在价值。历史上,在政府强制规定纸钞为法定货币之前,大多数流通的货币具有一定的内在价值,例如金币、银两,它们又被称为商品货币(commodity money)。
+>
+> 在布雷顿森林体系中,35美元能兑换1盎司(1盎司=28.35克)黄金,因而当时的美元不是法币。之后,当美元与黄金脱钩后,美元就变成了法币。
+
+### 第二种形式:中心化的计算机点数或互联网积分
+
+ 中心化的互联网积分/计算机点数是指 Q 币、游戏币、航空里程等,它们还曾有一个更为大众所熟知的名字——虚拟货币。通常,它们不与物理世界的法币对应,而是由商业公司中心化发行,仅可以在一家公司的体系中使用。
+
+### 第三种形式:去中心化的电子现金
+
+ 去中心化的电子现金已经被计算机密码学家探索了多年,沿着前人的探索路径,中本聪最终将这条路径变成了现实。中本聪设计和开发了比特币系统,并催生了众多加密数字货币和区块链技术项目。
+
+ 下面来分别看看这三种形式。三种形式与物理世界中的现金的对比如图 2 所示。
+
+
+
+### 第一种形式:PayPal、支付宝、微信支付
+
+ 现在,被互联网用户广泛使用的主流支付系统是 PayPal、支付宝,以及后来出现的移动支付 Square、微信支付等。这些第三方在线支付系统依赖于物理世界中的货币系统与金融体系,它们在数字世界中为用户提供支付、转账等服务。在使用它们时,我们所用的钱是物理世界中的法币,如美元、人民币、欧元、日元等,钱从银行账户中被映射到网络支付账户中。
+
+ 过去,信用卡、储蓄卡等塑料卡片实现了纸币现金的数字化,把纸币现金变成了卡片账户中的数字现金。现在,在线支付系统将信用卡和储蓄卡的功能转移到互联网数字世界中来了。
+
+ 在这些系统中流转的都是与法币一一对应的电子现金,变化的仅仅是“账户”,而非“货币”。这些系统所起的作用是,在账户和货币上连接物理世界与数字世界。
+
+ 这些系统都是中心化的。它们背后所依赖的传统金融系统是中心化的,法币是由各国央行发行的。它们自身是完全中心化的,由单一机构运转网络支付系统。它们在交易中担任中心化的中介角色,进行账户的记账,是用户间数字现金流通的中心。当两个用户进行转账时,在线支付系统在中间担任可信第三方的中介角色。这就是为什么称之为“中心化的电子现金”。
+
+### 第二种形式:Q币、游戏币等互联网积分或计算机点数
+
+ 在互联网上,除了在线支付系统之外,还有一种过去常被称为“虚拟货币”的货币现象。
+
+ 比如,用户可以用人民币购买腾讯公司的Q币,腾讯自称它是“统计代码”。Q币可以在腾讯的产品如QQ即时通信工具、网络游戏、音乐文学等中使用,兑换各种在线服务。
+
+> 关于“什么是Q币,它有什么用处”的问题,腾讯网站上的解释是,Q币是用于计算机用户使用腾讯网站的各种增值服务的种类、数量或时间等的一种统计代码,并非任何代币、票券,不能用于除腾讯网站增值服务以外的任何商品或服务。
+
+ 又比如,在游戏中,用户可以付钱购买道具,也可以通过战斗赢取游戏币。这些道具和游戏币的形态与价值各不相同,在一个游戏中都很难确定价格、进行兑换,在多个游戏之间几乎不可互换。当然,游戏玩家还是可以找到办法进行交换,在一定条件下甚至还可以将它们变现换回法币,例如,曾流行的“游戏打金”就是指有些玩家专门在游戏中获得金币,然后卖出获得现金收入。
+
+ 正如腾讯用“统计代码”的说法所表明的,Q币等是中心化机构(通常是一家公司)发行与管理的互联网积分或计算机点数。它们是中心化的,其发行和交易都是中心化的。
+
+ 一般来说,在不需要用户付费购买时,它们常被称为“积分”,在需要用户付费购买时,它们常被称为“点数”。
+
+ 但近年来出现了很有意思的混合产物。在打车软件中,用户可以存入现金,如存 100 元得 150 元;也可以介绍其他人成为打车软件的用户从而获得奖励,如介绍一个新用户双方各获得 50 元余额。在这种情况下,在打车软件钱包中的余额就变成了一定程度上的点数与积分的混合物。在打车软件钱包中的余额一般是不能提现的,也不能在用户之间直接转账,至多只能帮其他用户代付车费。
+
+ 我们还可以进一步对比在线支付系统和计算机点数。
+
+* 一个视角是,它们是否映射物理世界中的货币。在线支付系统是映射物理世界中的货币的,电子现金价值就是货币的价值。而对于游戏迷来说,游戏币、游戏道具通常是不映射物理世界中的货币的。对游戏迷而言,游戏道具既有价值也有价格;对其他人而言,游戏道具可能毫无价值。在线支付系统与法币无缝连接,而这些互联网积分/计算机点数系统只与现实世界中的货币系统有很少的连接点,并且由于法律、商业等方面的原因,一般没有畅通的渠道将它们兑换回法币。
+* 另一个是视角是“电子现金”或“点数/积分”是如何发行的?与在线支付系统不同,点数/积分是由一家公司自行发行的,用户付费获得点数,可被认为是向这家公司购买一种数字商品,用户稍后可用这些点数兑换成该公司体系内的虚拟商品或服务。
+
+ 直到最近,与现实世界相连的在线支付系统和不与现实世界相连的互联网积分/计算机点数都是互联网中的主流。变化始于比特币的出现。
+
+### 第三种形式:去中心化的电子现金
+
+ 在这两个主流之外,一直还有着另外一种探索:能不能创造一种完全去中心化的点对点电子现金?其中最终极的设想是,在数字世界中,货币的发行和交易都不需要中心化机构介入,是由计算机自动执行的:在发行时,无须类似各国央行的中心化机构;两个人在相互转移电子现金时,也无须中心化机构的参与。
+
+ 按前面的对比表格,这种理想化的去中心化的电子现金几乎在每个方面都试图进行突破:不映射线下的货币,而在数字世界中自行发行;发行去中心化,不需要一个类似中央银行的角色;像物理世界中的现金交易一样,交易无须中介介入。
+
+ 这个问题很难,因为它的要求与数字世界中的技术基础设施的能力相悖。其中重要的一点是,在物理世界中,表示价值的现金纸币是不能复制的。但在数字世界中,数字化文档是可以复制的,每一个复制出来的文档都一模一样。因而过去在数字世界中,要用数字文件表示价值(比如表示一笔电子现金),我们需要一个中心化机构来确保数字文件是唯一的。假设这笔电子现金现在属于我,当我把它转给你时,我们需要一个中介来协助记录所有权的变更,我不能直接把数字文件复制给你。
+
+ 计算机密码学家们探索的是,在无须中心化介入的情况下,如何通过密码学的方法,用可复制的数字文件来代表价值。
+
+ 这是一个漫长的探索过程,其开端甚至比互联网商业化都还早,最早可追溯到 20 世纪 80 年代。总的来说,由于这种探索是基于加密技术的,因此各种去中心化数字现金也被称为加密数字货币(crypto-currency),其中 crypto 是密码学(cryptography)的词根。
+
+ 最终在 2008 年,匿名的中本聪在密码朋克的邮件列表中发布了比特币的设计。他发明的比特币系统几乎集合了第三类探索的所有智慧结晶,他又加入了新的创新,最终在电子现金的发行和交易上都实现了去中心化。
+
+ 正如我们所知,中本聪不只是设计和实现了这个最理想化的去中心化电子现金,他还“发明”了区块链技术。区块链的价值表示和价值转移功能让它可能成为新一代互联网的技术基础。
+
+## 比特币实现了极致的“去中心化”
+
+ 对照前文图表,与现有中心化的电子现金系统(在线支付系统)相比,比特币是与之完全相反的:
+
+* 在线支付系统的货币发行是中心化的,比特币的发行是去中心化的;
+* 在线支付系统的货币流动是中心化的,比特币的交易是去中心化的;
+* 在线支付系统映射物理世界中的货币,比特币不映射任何现有的货币;
+* 在线支付系统自己不进行货币的发行,比特币是在数字世界中凭空发行出来的。
+
+ 在去中心化的程度上,比特币系统达到了极致。去中心化的初级阶段是自动化(automatic),即根据人设定的规则自动运行,而去中心化的高级阶段是自治(autonomous),也就是完全自治、自发。而比特币系统作为一个电子现金系统,达到了极致的去中心化状态(见图 3):
+
+* 作为一个货币应用,它不只交易是自治的,它的发行也是自治的。
+* 作为一个计算机网络,它是完全去中心化的,而不仅仅是分布式网络。
+* 作为一个组织,它是完全的社群自治,不需要有一个领导者居中协调。
+
+ 去中心化处于区块链的思维模式的最内核,而比特币实现了极致的去中心化。
+
+
+
+ 不过,之后在发展区块链技术和将之应用的过程中,我们又不得不从最极致的理想状态往实用方向调整,比如:
+
+* 现在多数区块链项目都是由基金会管理的。以太坊是由创始人维塔利克·布特林(人称“V神”)和以太坊基金会居中协调的,而不像比特币社区那样是完全自治的。
+* 常在金融系统中使用的联盟链,以及部分节点数量不多的基础公链,如小蚁(NEO)、EOS,更应被视为分布式网络,没有实现完全的去中心网络。
+* 通过以太坊发行基于 ERC20 标准的通证,通证的发行规则是由项目方确定的,在运行过程中会酌情更改规则。它们的发行不是自动的或自治的。
+* 常被视为区块链 3.0 代表的 EOS 在智能合约部分引入了李嘉图合约和社区仲裁机制,也即交易部分不再是完全交给机器自动执行,在需要时人可以参与和干涉。
+
+ 我们反复讨论比特币系统的设计,是因为它早已经把最极致的情况展现在所有人面前。而在将区块链技术落地应用的过程中,从最极致的去中心化往实用主义方向调整并不是倒退,而是事物发展的必然过程。
+
+## 比特币是如何实现去中心化的?
+
+ 那么,比特币系统具体是如何实现极致的去中心化的呢?
+
+ 在比特币白皮书《比特币:一个点对点电子现金系统》中,中本聪详细地解释了他是如何设计这个系统的。在其中,他确立了此后所有区块链系统的主要设计原则。
+
+* 一个真正的点对点电子现金应该允许从发起方直接在线支付给对方,而不需要通过第三方的金融机构。
+* 现有的数字签名技术虽然提供了部分解决方案,但如果还需要经过一个可信的第三方机构来防止(电子现金的)“双重支付”,那就丧失了(电子现金带来的)主要好处。
+* 针对电子现金会出现的“双重支付”问题,我们用点对点的网络技术提供了一个解决方案。
+* 该网络给交易记录打上时间戳(timestamp),对交易记录进行哈希散列处理后,将之并入一个不断增长的链条中,这个链条由哈希散列过的工作量证明(hash-based proof-of-work)组成,如果不重做工作量证明,以此形成的记录无法被改变。
+* 最长的链条不仅仅是作为被观察到的事件序列的证明,并且证明它是由最大的CPU处理能力池产生的。只要掌控多数CPU处理能力的计算机节点不(与攻击者)联合起来攻击网络本身,它们将生成最长的链条,把攻击者甩在后面。
+* 这个网络本身仅需要最简单的结构。信息尽最大努力在全网广播即可。节点可以随时离开和重新加入网络,只需(在重新加入时)将最长的工作量证明链条作为在该节点离线期间发生的交易的证明即可。
+
+ 威廉·穆贾雅在《商业区块链》一书中对比特币白皮书摘要进行了分析,他总结了四个要点:
+
+1. 点对点电子交易;
+2. 不需要金融机构;
+3. 加密证据而不是中心化的信用;
+4. 信用存在于网络,而不是某个中心机构。
+
+ 而从这个摘要中,我们提炼出了比特币系统设计的五个要点(见图 4):比特币的区块链系统是由分布式账本(即狭义的区块链)和去中心网络(点对点网络)组成的,形成链条的方式是工作量证明共识机制。最长链是由网络中的算力共同决定的,因而它是可信的,节点离开和加入依据的是最长链是可信的这一原则。这些组合起来形成了比特币系统。
+
+
+
+### 1\) 去中心化的点对点电子现金系统
+
+ 比特币要做的是一个“点对点的电子现金系统”,发送方和接收方直接交易,它们之间不需要中介机构的介入。
+
+ 要去掉可信第三方等中介机构,就需要解决“双花问题”。在摘要中,中本聪给出了点对点网络的解决方案,并介绍了这个方案的核心——区块链。他并没有提到区块链(blockchain)这个词,但在论文中分别提到了区块(block)和链(chain)这两个概念。
+
+### 2\) 分布式账本
+
+ 比特币的区块链是基于工作量证明形成的带时间戳、存储数据的数据块和由哈希指针连接成的链条。
+
+ 这个链条或者说账本以分布式的方式存储在比特币网络的各个节点上,因而也被称为分布式账本。
+
+### 3\) 工作量证明
+
+ 比特币网络中的节点按照规则进行加密哈希计算,以竞争获得生成新区块的权利。节点在竞争获胜后就获得记账权,它生成区块成为最新区块后,就获得与新区块对应的挖矿奖励。
+
+ 工作量证明也是区块链账本的安全机制。如果不重做“工作量证明”所需的大量计算则此链条不可修改,这一共识机制保证了区块链上的数据的可靠性。
+
+### 4\) 最长链原则
+
+ 在任何时刻,最长的链条是所有人都接受的最终记录。
+
+ 由于最长链是由网络中的主要算力完成的,因而只要它们不都与攻击者合作,那么它们生成的最长链就是可信的。这个原则被称为“最长链原则”。
+
+### 5\) 去中心网络
+
+ 比特币的去中心网络的架构非常简洁,本身需要的基础设施很少。它可以在互联网网络上运行。计算机节点可以随时离开或加入这个去中心网络,在加入时它们只需遵守最长链原则即可。
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/the-dao-zhong-chou-shi-jian-yu-yi-tai-fang-fen-cha.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/the-dao-zhong-chou-shi-jian-yu-yi-tai-fang-fen-cha.md
new file mode 100644
index 0000000..b44b41b
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/the-dao-zhong-chou-shi-jian-yu-yi-tai-fang-fen-cha.md
@@ -0,0 +1,27 @@
+# TheDAO事件与以太坊分叉
+
+以太坊的代币众筹曾经历了一次大的灾难性事件,这次事件甚至导致了以太坊区块链的分叉。
+
+2016 年 4 月 30 日,The DAO 项目在以太坊中进行代币众筹,到 5 月 28 日,这个项目筹集了 1150 万个以太币,以当时以太币的价格计算价值超过 1.5 亿美元,是当时最大金额的众筹。
+
+但是,在 2016 年 6 月 9 日,有开发者发现 The DAO 的智能合约存在漏洞,他还在开源平台上提交了修复代码。
+
+6 月 17 日,黑客利用漏洞向一个匿名的地址转移走了项目众筹来的 360 万枚以太币,占到总数的 1/3。
+
+幸运的是,受限于 The DAO 的 28 日锁定期,要到 7 月 14 日,黑客才可以把这笔以太币转走。
+
+关于如何处理这个漏洞和黑客攻击事件,挽回损失,以太坊社群分裂成了两个群体。当时,所有以太币的数量为 8000 多万枚,如果有 1150 万枚被黑客盗走,的确会对以太坊生态造成巨大的影响。
+
+在各种方案都不能奏效后,维塔利克(人称“V神”)提出了硬分叉方案(即从某个区块开始以太坊区块链不向前兼容),从而把 The DAO 众筹来的以太币夺回来,转移到一个恢复地址上,再还给参与众筹的人。
+
+硬分叉方案在社区中获得了 85% 的投票支持,在 2016 年 7 月 21 日分叉成功,损失被挽回了。
+
+但是,有部分以太坊社区成员不认同这个硬分叉(他们认为没有人可以更改规则),他们仍留在最初的那条以太坊区块链上,并继续开发维护这条链。此后,以太坊区块链分叉成两支:
+
+* 一支是新的,叫以太坊(其代币叫 ETH);
+* 一支叫以太坊经典(Ethereum Classic,其代币叫 ETC)。
+
+## 学习结束啦,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/tong-zheng-de-fen-lei.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/tong-zheng-de-fen-lei.md
new file mode 100644
index 0000000..edb1d9a
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/tong-zheng-de-fen-lei.md
@@ -0,0 +1,52 @@
+# 通证的分类
+
+通证是全新的事物,目前人们对于通证的分类仍未达成共识。这里将所见的各种分类列举如下,供你参考。
+
+瑞士金融市场监管局(FINMA)将通证分成以下三种:
+
+* 支付类通证(payment)。
+* 实用类通证(utility)。
+* 资产类通证(asset)。
+
+
+其中,资产类通证可视为“证券类”(security),有时,实用类也被翻译成“功能类”。
+
+按美国 SEC 的分类方式,通证被分成属于证券与不属于证券两类。SEC 通常用“Howey Test”来判定某一金融工具是否为“投资合同”进而构成“证券”,“Howey Test”包含了四要素:
+
+* 资本投入;
+* 投资于一个共同事业;
+* 期待获取利润;
+* 不直接参与经营,仅仅凭借发起人或第三方的努力。
+
+
+在一次分享中,知名区块链专家、万向区块链董事长肖风将通证分为功能类、证券类和基金类。也有人从产业的角度将通证分为基础公有链、行业生态类、公司证券类。
+
+通证宝创始人王玮将通证按有发行人和无发行人分成两大类。
+
+* 有发行人的三种是:价值型、收益型、权利型;
+* 无发行人的一种是:计算型。计算型是一个有意思的说法,这一名称表明诸如比特币、以太币等都是基于数学计算产生的。
+
+
+现在通常认为,比特币、以太币等是接近于瑞士金融市场监管局中的支付类型通证分类。除此之外的通证可以按美国 SEC 分类(证券与非证券)延展进行分类。
+
+在 2018 年 7 月的一个分类中,奥黛丽·奈斯比(Audrey Nesbitt)将通证分为两大类、四小类,我认为,这可能是易于在实际项目的通证模型设计中使用的一种分类(见图1)。其中,两大类之间要进行相对严格的区分,但小类间不必进行明确的区分,她的分类如下:
+
+
+* 第一大类:实用型通证(utility to ken)。
+ * 产品或服务通证(use of product),代表公司的产品或服务的使用权。
+ * 奖励通证(reward token),用户通过自己的行为获得奖励。
+* 第二大类:证券型通证(security token)。
+ * 权益通证(equity token),类似公司的股权、债券等。
+ * 资产通证(asset token),对应实体世界中的资产,如不动产、黄金等。
+
+
+
+
+当前市场中交易的通证,多数属于权益通证,但为了不受到当前各国法规中对证券的严格监管的影响,又往往通过各种设计将自己设计为实用型通证。
+
+在相关通证设计中,最为独特的案例是 EOS 币,它是由 Block.one 公司发行的,但它被定义为“商品售卖”,而非公司“权益”。并且特别地,公司又通过免责条款免除了 EOS 币任何和实用性相关的特性。比如,EOS 的相关条款说:EOS 币没有明示或暗示的权利、用途、目的、属性、功能或特征。
+
+## 学习结束啦,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/tong-zheng-gai-ru-he-she-ji.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/tong-zheng-gai-ru-he-she-ji.md
new file mode 100644
index 0000000..f964598
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/tong-zheng-gai-ru-he-she-ji.md
@@ -0,0 +1,203 @@
+# 通证该如何设计?如何表示资产?
+
+从比特币到以太坊,从区块链 1.0 的数字现金进展到区块链 2.0 的数字资产,人们关注的焦点在发生转移。在讨论比特币系统时,人们关注的是比特币、是加密数字货币,区块链是源自比特币的底层技术,比特币系统实现并验证了区块链的价值表示和价值转移这两个核心功能,并展示了这两者是可以完全去中心化的。
+
+ 以太坊的重心则是区块链。以太坊也有类似于比特币的加密数字货币——以太币,但与中本聪没有为比特币设计用途不同,以太币被定位为以太坊区块链的燃料货币。以太坊白皮书说,以太币(ether,现在的代码为ETH)是以太坊的主要内部加密燃料(crypto-fuel),用于支付交易费。在价值转移上,以太坊延续了比特币的区块链设计,依靠分布式账本来进行去中心化、点对点的价值转移。
+
+ 以太坊还进一步带来了智能合约和通证。通过对比我们可以看到,比特币系统只有一种加密数字货币,而在以太坊区块链上,在以太币之外出现了众多表示价值的通证。
+
+ 有了智能合约和通证之后,以太坊就有了新的用途——进行数字资产的表示与交易。链上的数字资产也有了一种相对统一的价值表示形式。因而以太坊开始往前一步,超越作为数字现金系统的比特币,开始解决数字资产系统的三个问题(见图1):
+
+* 表示的资产是什么?
+* 如何发行?
+* 如何进行复杂交易?
+
+
+
+ 在实际运行中,以太坊被主要用于解决前两个问题——表示的资产是什么以及如何发行。有了数字资产和相关工具之后,人们会很自然地发挥创意,创建关于数字资产的各类复杂应用。
+
+## 用通证将资产表示为链上的“数字资产”
+
+ 来看看通证是如何在链上表示各种资产的。
+
+ 一般来说,通证是资产在区块链上的价值表示物,涉及的资产包括三类:比特币和以太币等链上的原生资产、映射到链上的线上资产、映射到链上的线下资产。当它们被在链上表示后,我们将之统称为“数字资产”。特别地,用以太坊区块链和它的智能合约可以创建与发行代表价值的通证,然后用它去关联资产,形成现在较为通行的数字资产表示物(见图2)。
+
+ 在以太坊区块链上主要可以创建两种表示价值的通证:可互换的 ERC20 标准通证和不可互换的 ERC721 标准通证。可互换的通证可类比为现金,不可互换的通证可类比为房契。对表示为通证的数字资产,以太坊智能合约可以进行各种交易,如通证间的兑换、通证抵押、通证分配与消耗等,由此可以形成复杂的数字资产交易与应用。
+
+
+
+ 正如以太坊白皮书所展示的,它的系统设计和智能合约是为了更好地进行数字资产的交易。
+
+ 这里涉及三种资产:链上资产、线上资产、线下资产。其中线上资产与线下资产均不在链上,可认为是链下资产。通常,我们需要辅以预言机(oracle)等工具来连接线上、线下的资产,然后通过智能合约在链上交易。
+
+ 链上与链下的交互包括两大部分:一是将链下资产与通证关联,进行通证的发行与分配;二是在链上进行通证交易后,对链下资产进行相应的变动,并将变动在链上确认。
+
+ 将资产表示成通证,即转变成数字资产,带来的好处有:一是市场交易帮助发现价格,二是在流动周转中增加资产价值。其中,关于流动增加总体价值的例子,我们在现实生活中也可以体验到:二手物品的流动让买方和卖方都收益,车辆与房屋的共享提升了资源的利用效率。
+
+ 我们来看数字资产的几个交易场景,然后再讨论通证的特性、分类与发行等话题。
+
+## 数字资产系统的去中心化交易场景
+
+ 比特币系统只能进行比特币这种数字现金的去中心化交易。而以太坊作为数字资产系统,基于它的智能合约创建的各种通证都可以进行中心化或去中心化交易。
+
+ 我们来对比三种场景,看看如何通过以太坊智能合约进行链上与链下资产的去中心化交易(见图3)。
+
+
+
+### 场景A:在数字世界中通过中心化中介进行交易
+
+ 在数字世界中,当两个人要进行数字资产的交易时,他们之间需要一个可信第三方,这个中介完成:
+
+* 监督合约的执行。
+* 作为双方之间的担保。
+* 协助进行价值的记录。
+
+ 以熟悉的电商购物(且特别的是购买一个电子文档)为例。假设我们在淘宝上进行交易,中心化的仲裁者又可细分为淘宝和支付宝两种角色:
+
+* 买家在淘宝上下单,这是通过淘宝来签订一个购买协议。
+* 买家通过支付宝付款,款项由支付宝代管,卖家发出文件,等买家确认后,支付宝将款项支付给卖家。
+* 支付宝进行结算,支付宝对双方的账户进行记录的修改,完成金钱价值的转移。
+
+ 那么,如果在以太坊区块链上,通过智能合约进行一次去中心化交易,过程是什么样的?
+
+### 场景B:通过智能合约进行链上数字资产交易
+
+ 假设我们编写一个合约,售卖一种基于 ERC721 的不可互换通证,如性质类似于收藏卡的“加密猫”。每个加密猫通证各不相同,预先在智能合约中设定价格均为 10 个以太币,购买方式是先到先得。
+
+ 这时,去中心化的数字资产交易过程如下:
+
+* 买方向智能合约地址转入 10 个以太币,即为发起购买邀约,智能合约担任第三方保管的角色。
+* 卖方把该收藏卡(基于 ERC721 的通证)转入买方地址。
+* 智能合约自动将以太币款项转入卖家账户。
+
+ 由于这里仅涉及以太坊区块链上的数字资产(加密猫通证和以太币)的转移,因此在链上可以完成全部过程。
+
+ 对比 A、B 两种场景我们看到,原本中心化的中介(如淘宝与支付宝)被按预先设定规则自动执行的智能合约所取代。中心化中介被区块链(即分布式账本和去中心网络)所取代。
+
+### 场景C:通过智能合约进行涉及线下资产的交易
+
+ 如果我们交易的标的不是一个链上的数字资产,比如交易是一个电子文档,甚至一个线下的房产资产,这时通常与智能合约联合起来使用的预言机就要出现了。
+
+ 当交易的不是链上的数字资产时,智能合约和预言机是一对必备的组合。智能合约在链上,预言机在链下,它可以与链上的智能合约进行通信(见图4)。
+
+ 比如,当卖家把数字文件传递给买家,买家确认之后,连接链上和链下的预言机就发出消息通知智能合约。在接到消息后,智能合约执行后续的步骤,把以太币转入卖家账户。
+
+
+
+ 在涉及线下资产时,逻辑是相似的,只是过程更加复杂。比如,当购买一个实物商品时,买家要到线上的互联网界面中确认收货,而预言机会把消息传送到链上给智能合约,智能合约继续执行后续步骤。
+
+ 通过这三种简单场景的对比,我们可以看到:
+
+* 第一,有了智能合约,用通证表示的数字资产就是可编程的;
+* 第二,它是可以由计算机自动处理的,也就是自动化的;
+* 第三,如果数字资产交易各方形成一定的规则与逻辑,那么这些交易方之间可以进行完全自治的交易,可不需要人类的参与。
+
+ 这些特性组合起来,可以大幅度降低资产流转交易的成本,提高效率,并可以实现智能化。
+
+## 通证的四个特征
+
+ 中关村区块链产业联盟理事长元道在与孟岩的对谈文章“通证是下一代互联网数字经济的关键”中指出,通证有三个要素,缺一不可。他讨论的三个要素如下:
+
+* 第一是数字权益证明。通证必须是以数字形式存在的权益凭证,它必须代表的是一种权利,一种固有和内在的价值(intrinsic value)。
+* 第二是加密。通证的真实性、防篡改性、保护隐私等特性,由密码学予以保障。每一个通证都是由密码学保护的一份权利。这种保护比任何法律、权威和枪炮提供的保护都更坚固、更可靠。
+* 第三是可流通。通证必须能够在一个网络中流动,从而随时随地都可以验证。其中一部分通证是可以交易、兑换的。
+
+> 通证是下一代互联网数字经济的关键——元道区块链对话之一,孟岩/文,2017年12月4日,见 [https://blog.csdn.net/myan/article/details/78712506](https://blog.csdn.net/myan/article/details/78712506)。元道原名陈升,是世纪互联数据中心的创始人、董事长。
+
+ 他还说:“事实上,通证可以代表一切权益证明,从身份证到学历文凭,从货币到票据,从钥匙、门票到积分、卡券,从股票到债券,人类社会的全部权益证明都可以用通证来代表。”
+
+ 根据之前的讨论,值得补充的一点是:通证是可编程的(见图5)。在区块链上,智能合约可以自动地或自治地处理通证,这是通证不同于过去的货币、证券、积分、收藏品等价值表示物的基本特征。比如,由于通证是可编程的,如果通证由一个社区内的成员持有,那么我们可以利用区块链和通证进行社区的链上治理。
+
+
+
+## 通证经济系统设计和通证的发行与分配
+
+ 比特币系统是一个最理想化的情形:它的通证发行是完全去中心化的,由计算机算力按规则竞争完成。但当用通证表示数字资产时,我们不得不从最理想化的发行去中心化往回退了一点,这步回退是让区块链投入使用的必要妥协。
+
+ 回看以太坊最初的代币众筹过程,严格地说,以太币的发行是中心化的,是由以太坊基金会将以太币售卖给比特币的持有者。但这个过程是自动化的,由预先确定规则、编写后不能修改的智能合约自动执行。
+
+ 用区块链上的通证来表示链上资产、线上资产、线下资产时,完全的去中心化,甚至完全无人介入的自动化通常是不可行的。资产的设计、发行的设计以及后续项目的运行,都需要有机构来发起。这个机构在一定程度上是区块链项目的中心。
+
+ 这个发起机构的角色是进行协调,将线上资产、线下资产与通证进行对应。
+
+ 这个发起机构的角色是发起和发行通证。当然与过去相比,这个机构是相对去中心化的,它并不掌握社区百分之百的“股权”,也不具有绝对的话语权,而必须是做社区的协调者。
+
+ 这个发起机构的角色也是持续运行项目和社群,直到社区能够自行运转。在项目的发展过程中,随着社区的扩大与强大,中心才可能开始弱化,甚至最终达成去中心化社区状态。
+
+ 要仔细地辨析发起机构的角色,因为要利用通证来表示资产,构建名为“通证经济体”的产业生态圈,它是关键的驱动者。之前各种理想化的讨论是故意弱化这些发起机构的角色,与事实有很大差异。
+
+ 同时,在实践中,区块链项目的发起方多为注册在新加坡等地的非营利基金会,在一些国家与地区,这是一条合规的路径。但我们认为,区块链要实现商业落地,较为现实的路径仍是与现有各国的公司注册制度形成某种连接,并强调公司在项目实际运作地的注册和合规运转。因而我们建议将区块链项目的发起机构称为“自商业公司”(Decentralized Autonomous Company,DAC),由它来利用区块链技术与经济手段促成运用通证的产业生态圈。
+
+ 通过以上讨论,我们可以看到通证经济体通常采取的设计如下:通证经济体是一个产业生态圈或社区;用通证来表示一个生态或社区的广义资产;借助通证来进行分配、交易。它包括各方共同推进三个核心事务(见图6):
+
+* 链,区块链技术的落实。
+* 通证,通证的建立、分配与管理。
+* 社群,用户社区与投资社区等以价值共识形成的社群。
+
+
+
+ 发起通证的区块链项目实体(非营利性基金会或自商业公司)是社区和资产的创建者、协调者。
+
+ 一个通证经济体的发起机构的关键任务之一是设计这个产业生态圈的“通证经济系统”。
+
+ 通证经济系统设计包括两面,一面是和通证的价值相关的设计,另一面是和通证的数量相关的设计(见图7)。
+
+
+
+ 一个通证所表示的价值是什么?如何与现有资产对应?可因什么贡献而获得?如何用它投资社区?如何确定它的价格?这些是通证的价值设计关心的问题。
+
+ 通证的数量设计则包括初始分配、流转和总量控制等。下面我们重点讨论一下通证的数量设计。
+
+ 通常,通证在四个群体中进行发行和分配:①投资者;②团队与顾问;③生态成员;④留存。留存的通证并不进入流通,除非它的状态被改变了。团队与顾问、生态成员这两方的通证会随着时间的流逝逐步进入流通:团队与顾问的通证按预设规则逐步解除锁定;生态成员通过贡献获得通证奖励,并按规则逐步解锁与流通(见图8)。
+
+
+
+ 假设用通证经济系统来改造一个线下社区,那么可能有一个初始分配:投资方、团队各获得一部分通证;现有社区的成员按照规则获得一部分通证;同时将一部分通证留存,以备社区发展之需。
+
+ 其中,社区成员按一定规则获得通证,就是把线上资产映射到链上,用通证表示出来。
+
+ 之后,通证将根据社区成员的贡献进行分配。项目团队要设计一个通证在社区内的使用场景:
+
+* 生态成员如何获得通证?
+* 生态成员如何消耗通证?从项目角度说,也即如何回收通证?
+* 如何安排项目回收的通证?是再次发放与流通,是销毁,还是变更为留存状态?
+
+ 另外,由于通证是一个经济系统,还会涉及其他与数量相关的经济逻辑,主要包括两点:
+
+* 总量。通证的总量如何变化?是增多,是不变,还是因逐步销毁而减少?
+* 解锁。被锁定的通证以什么样的速率和规则逐步释放?
+
+ 确定一个通证的数量逻辑之后,我们就可以编写智能合约用代码实现它,并在区块链上自动甚至自治地运行了。
+
+ 通证经济系统的设计清单如图 9 所示。
+
+
+
+ 最后特别讨论一个尚没有明确答案的话题:如果通证是对应的某种线上或线下资产,那么所有人都期待它是持续上涨的。而如果通证是代表某种功能的使用权,则它的价格应保持相对稳定,因为如果预计它将上涨,那么谁会提前使用它呢?
+
+ 在讨论通证价值设计时,人们通常将通证分成两大类:一种代表权益,价格是波动的,并且从长期看是上涨的;一种代表功能使用权,用于消费,价格应该保持相对稳定(见图10)。
+
+
+
+ 最后特别讨论一个尚没有明确答案的话题:如果通证是对应的某种线上或线下资产,那么所有人都期待它是持续上涨的。而如果通证是代表某种功能的使用权,则它的价格应保持相对稳定,因为如果预计它将上涨,那么谁会提前使用它呢?
+
+ 在讨论通证价值设计时,人们通常将通证分成两大类:一种代表权益,价格是波动的,并且从长期看是上涨的;一种代表功能使用权,用于消费,价格应该保持相对稳定(见图11)。
+
+
+
+ 从目前看,这是一种天然存在的矛盾,虽然二者可以在实践中进行一些调和。目前在进行通证价值设计时,有一种新的思路是,在一个通证经济系统中采用双通证:一个用于表示权益,一个用于表示实用功能。当然,这样做的复杂性大大增加,目前还没有被广为接受的设计思路。在附录B中,我们会讨论 Steem 区块链的通证设计,这个早期区块链项目的多通证设计是已经在实际中运行的案例,经过多轮起起伏伏,虽然有很多问题,但有真实的运行数据可供分析。
+
+> 孟岩在通证经济系统设计的相关演讲中认为,币值逻辑有四种:比特币模式、稳定模式、以太坊模式和双层代币模式。我们在讨论时统一采用通证说法,称为“双通证设计”。
+
+## 以太坊:数字资产的基础设施
+
+ 让我们把目光转回以太坊。以太坊区块链是当下用区块链表示数字资产的基础设施。一方面,它为价值表示提供了通证;另一方面,它也为通证数量逻辑的实现提供了编程语言、工具(智能合约)、标准(ERC20等)和运行环境(EVM)。
+
+ 以太坊区块链和它的智能合约、通证为数字资产的发行与交易提供了一整套去中心化的基础设施。之前,在以太坊的 ERC20 标准被广泛接纳之前,要发行一个原生数字资产需要自行开发一条链,而现在我们可以基于以太坊这条公链来创建一个数字资产的价值表示物。随着在以太坊上发行的通证越来越多,它吸引了更多的人在其上发行通证。
+
+ 总的来说,以太坊让我们能方便地创建代表数字资产的通证,这使得通证变成一个基础功能,涌现出大量的在区块链上的、通证表示的数字资产。随着使用门槛和成本的降低,很多原本无法进行的应用会涌现出来。
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/utxo-xiang-jie.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/utxo-xiang-jie.md
new file mode 100644
index 0000000..8c8c884
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/utxo-xiang-jie.md
@@ -0,0 +1,114 @@
+---
+description: 比特币核心概念之一
+---
+
+# UTXO:未使用的交易输出
+
+在比特币系统上其实并不存在“账户”,而只有“地址”。只要你愿意,你就可以在比特币区块链上开设无限多个钱包地址,你拥有的比特币数量是你所有的钱包地址中比特币的总和。比特币系统并不会帮你把这些地址汇总起来形成你的账户。
+
+ 从我(甲)到你(乙)的一笔比特币转账,是从我的一个钱包地址转到你的一个钱包地址上去。
+
+ 接下来的讨论就涉及比特币系统的一个关键技术性细节:UTXO(未使用的交易输出)。通证经济专家孟岩曾撰写一篇文章,标题是“其实没有什么比特币,只有UTXO”,这个标题指出了,对于计算机来说比特币是什么——比特币是区块链账本上的交易输出。
+
+ 我们来看一个两个人进行转账交易的过程,以深入理解UTXO:
+
+ 假设我有 8 个比特币,这其实意味着,之前有一个交易把这些比特币转入我的地址,这个交易的输出(即 8 个比特币)未被使用,我拥有了这 8 个比特币。
+
+ 现在,我要发起一个转账交易,这个交易中的输入是让我拥有这些比特币的上一个交易。
+
+ 我要转账给你,我做的是,对让我拥有这些 8 个比特币的上一个交易进行签名,把这一新转账交易的输出地址设为你的钱包地址。
+
+ 这样,我就发起了一个转账支付交易。等矿工将这一交易打包进新的区块,转账交易完成,这 8 个比特币就属于你了。你拥有的是你我这个交易的未使用的交易输出。
+
+ 对于一个交易签名所涉及的比特币的公钥和私钥的非对称加密机制,之后再讨论。为便于理解可类比看,钱包地址相当于房间号和锁,私钥则相当于钥匙,钥匙可以打开对应的锁。
+
+ 以上两个人的转账交易过程是:我用私钥(从一个输出是我的地址的交易中)取出比特币,并用私钥对从我的地址转到你的地址的新交易进行签名。一旦交易完成,这些比特币就转到你的钱包地址中去。你的钱包中新交易的未使用交易输出,只有你的私钥才可以打开。
+
+ 从以上讨论中我们可以看到,的确不存在比特币,只有未使用的交易输出(UTXO)。每一笔比特币都源自上一个交易,可以一直向上追溯上去。而一直向上追溯,在每一笔比特币的源头,都有一种特殊的交易,即比特币矿工因挖矿获得奖励的创币交易,每一个比特币都是通过挖矿被创造出来的。假设我作为比特币矿工挖矿成功赢得了 25 个比特币,那么这个特殊交易是,它的输入是 0,而输出是 25 个比特币进到矿工的钱包地址中。
+
+ 未使用的交易输出(UTXO)和我们熟悉的银行账户有着很大的不同。为什么要采用这样的设计?对比银行账户和比特币的 UTXO,我们可以看到 UTXO 的优点。
+
+### 1\) UTXO设计易于确认比特币的所有权
+
+ 如果采用传统的账户设计,当我要转账 8 个比特币出去时,为了完全避免造假,我们就需要逐一向上追溯,确认之前的每一笔交易,从而证明我的确拥有 8 个比特币。
+
+ 采用现在的 UTXO 设计,要确认我拥有 8 个比特币,只要确认上一个交易我的确获得了它们即可。通常只要上一个交易是真实的,我就的确拥有这些比特币。而我们都知道,一个区块经过 6 次确认,其中的交易可被认为是真实无误的。
+
+### 2\) UTXO设计与区块链账本是完全融为一体的
+
+ 区块链账本存储的是状态。以太坊是对比特币区块链的改进,在白皮书中,以太坊创始人维塔利克分析了比特币,他认为,“比特币账本可以被认为是一个状态转换系统(state transition system)”。以太坊也是采用这种状态转换系统的设计,但对之进行了改进。
+
+> 微观地看,每一个区块链中的交易都是一个状态转换函数,以太坊白皮书就用“以太坊状态转换函数”(Ethereum state transition function)来讨论在区块链上一个交易的进行过程。
+
+ 几乎所有的区块链都是采用这一设计,每一个新区块和它之前的所有区块一起形成了一个新的状态,如此重复、持续下去。在确认之后,之前的状态就不可篡改,即不可随意更改。UTXO(未使用的交易输出)是与这种状态的设计相对应的。
+
+## 加深对 UTXO 的理解
+
+ UTXO 是 unspent transaction outputs(未使用的交易输出)的缩写,每一个比特币其实都是 UTXO,它是比特币的最核心概念之一。
+
+> 参考资料:《区块链:技术驱动金融》中相应的讨论,及文章“比特币和以太坊的记账方式——UTXO 和账户余额”(黄世亮/文)。
+
+### 你的比特币就是 UXTO
+
+ 比特币的挖矿节点获得新区块的挖矿奖励,比如 12.5 个比特币,这时,它的钱包地址得到的就是一个 UTXO,即这个新区块的币基交易(也称创币交易)的输出。币基交易是一个特殊的交易,它没有输入,只有输出。
+
+ 当甲要把一笔比特币转给乙时,这个过程是把甲的钱包地址中之前的一个 UTXO,用私钥进行签名,发送到乙的地址。这个过程是一个新的交易,而乙得到的是一个新的 UTXO。
+
+ 这就是为什么有人说在这个世界上根本没有比特币,只有 UTXO,你的地址中的比特币是指没花掉的交易输出。
+
+### 详看从甲转账给乙的过程
+
+ 假设甲(Alice)向乙(Bob)转账,则转账过程可以分成三个阶段(见图1):
+
+ 1\) 假设Alice之前通过挖矿获得了 12.5 个比特币,在她的地址中,这些比特币是某个币基交易的 UTXO。
+
+ 2\) Alice 发起一个交易,输入是自己的上一个交易,输出是 Bob 的地址,数量是 12.5 个比特币,Alice 用自己的私钥对交易进行签名。
+
+> 这里简化了交易过程,只讨论了将上一个交易的输出全部转帐的情况。如果试图转出上一个交易的输出的一部分比特币,则要进行略复杂的处理。
+>
+> 按照比特币系统的设计,比特币交易还要遵循一个原则:每一次交易的输入值都必须全部花掉,不能只花掉部分。比如,我要转出比特币给你的钱包地址中只有 8 个比特币,那么很简单,我发起一个交易,把这 8 个比特币转到你的钱包地址中,我签名确认这个交易。但假如我的钱包地址中有 25 个比特币,那我发起的交易就不是转给你 8 个比特币,然后自己的钱包地址中还剩下 17 个比特币。这时,我发起的交易是:从我的钱包地址中转 8 个比特币给你,同时转 17 个比特币给我的同一地址。
+
+ 3\) 当交易被区块链确认后,Alice 的 UTXO 就变成了 0。而在Bob的地址中就多了一个 UTXO,数量是 12.5。
+
+
+
+ 存在 Bob 的钱包地址中的这些比特币只有用 Bob 的私钥才可以签名转账给其他人。
+
+ 如果Bob要将这些比特币转账给其他人,则重复上述过程。
+
+ 简单地说,从一个地址向另一个地址转账比特币的过程,是用这个地址对应的私钥打开,再加密到另一个地址的过程。这个私钥的打开和加密就是签名的过程。在这个过程中,接收比特币的一方并不需要动用自己的私钥。
+
+### 我的比特币是什么样的?它们存在哪儿
+
+ 初次接触比特币的人会问:我的比特币是什么样的?它们存在哪儿?
+
+ 如果你头脑中参照的是在物理世界中购买金币,那么这里很不一样,你的比特币并不是存在家中或金库中,并不存在一个数字文件表示“你的比特币”。
+
+ 如果你头脑中参照的是银行的存款,那么你可以假设,你的比特币就“存在”于一个账本上,我们已经知道了,在数字世界中,价值是账本中的“记录”。
+
+ 不同的是,对比特币来说,这个账本不是一家银行的中心化数据库,比特币的账本是一个分布式账本,存在于一个去中心化的网络上。任何人都可以接入这个网络,把这个账本下载下来。但是,只有用你的私钥才能动用你的地址中的比特币。
+
+ 我们还可以再换一个角度看,你的比特币在哪儿?按前面说的,比特币就是 UTXO,那么比特币可以被看成是上面的物理世界金币和银行存款两种概念的混合:
+
+* 一方面,你的比特币是有一个“物理存在”的——对应着一个数据文件。比特币以一个交易的UTXO的形式存在着,每个交易都可被看成是一个数据文件。
+* 另一方面,所有这些交易被打包进区块链的区块中,后一个区块连着前一个区块,形成一条链,也就是独特的账本。这么看,你的比特币是这个账本上的记录。
+
+### 为什么采用UTXO的形式
+
+ UTXO 与我们熟悉的账户概念的差别很大。我们日常接触最多的是账户,比如,我在银行开设一个账户,账户里的余额就是我的钱。
+
+ 但在比特币网络中没有账户的概念,你可以有多个钱包地址,每个钱包地址中都有着多个 UTXO,你的钱是所有这些地址中的 UTXO 加起来的总和。
+
+ 中本聪发明比特币的目标是创建一个点对点的电子现金,UTXO 的设计正可以看成是借鉴了现金的思路:我们可能在这个口袋里装点现金,在那个柜子角落里放点现金,在这种情况下不存在一个账户,你放在各处的现金加起来就是你所有的钱。
+
+ 采用 UTXO 设计还有一个技术上的理由,这种特别的数据结构可以让双重花费更容易验证。对比一下:
+
+* 如果采用账户和账户余额设计,Alice 要转账给 Bob,为了确保 Alice 的确有钱,我们需要核查她之前所有的交易。随着时间的推移,比特币的交易越来越多,这个验证的难度会持续上升。
+* 采用 UTXO 设计,我们只要沿着每个交易的输入逐级向上核查,直到查到这笔比特币的创币交易即可。随着时间的推移,这个核查也会变难,但变难的速度要远低于采用账户和账户余额设计。
+
+ 这种设计使得比特币系统作为一种电子现金系统有着非常大的可扩展性。当然,我们很快会看到,通常被认为是区块链 2.0 的以太坊没有继续采用 UTXO 设计,而是考虑到其他因素,采用了账户余额的设计,其代价正是中本聪可能已经考虑到的复杂性。
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/vitallk-buterinvshen.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/vitallk-buterinvshen.md
new file mode 100644
index 0000000..891f246
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/vitallk-buterinvshen.md
@@ -0,0 +1,46 @@
+---
+description: 以太坊创始人
+---
+
+# Vitallk Buterin \(V神\)
+
+“V神”的真名叫维塔利克·布特林,他以太坊的创始人,是区块链界真正的大佬。
+
+ 1994 年 1 月 31 日,V神出生于俄罗斯,6 岁时,他跟随父母移民到加拿大。他的父亲是一个计算机科学家,因而他从小就接触计算机,在小学时,他被选入杰出儿童班,认识到自己对数学、编程和经济学充满了兴趣。2012 年,他赢得了国际信息学奥林匹克比赛的铜牌。以最传统的眼光看,V神就是天才少年。
+
+ 在区块链世界中,V神的第一个角色是作者,他写文章探讨比特币和区块链。
+
+ 17 岁时,V神从他父亲那里了解到比特币。在论坛上认识一些人之后,他被邀请为一个比特币博客写文章,当时,他写一篇文章可以得到 5 个比特币(价值 3.5 美元)。可惜的是,由于当时只有很少的人关注比特币,这个博客网站很快关停了。
+
+ 2011 年 9 月,V神和网上认识的朋友一起创办了名为比特币杂志(Bitcoin Magazine)的网站,他是联合创始人和主要作者。在 2012 年年底,这个媒体还开始出版印刷版杂志,成为最早报道加密数字货币的杂志。比特币杂志后来被媒体机构 BTC Media 收购,直到 2014 年年中,V神都还在为它写文章。
+
+ 在区块链世界中,V神很快有了第二个角色,一个做区块链规划与开发的程序员。
+
+ 2013 年,V神周游全球,他曾有一段时间待在中国,他的中文也很好,常和中国网友在论坛上用中文交流。在这段时间内,他在全球与网上认识的朋友们见面交流比特币系统和区块链编程。
+
+ 大约在这个过程中,他形成了要做名为“以太坊”(Ethereum)的项目的念头。他认为应该为比特币开发一个脚本编程语言,从而在比特币区块链上可以开发应用。但是,他的想法无法得到比特币社区的认可。因而他开始考虑,也许自己应该开发一个带有脚本编程语言的新平台。
+
+ 2013 年年底,他在回到加拿大多伦多后,发布了一份白皮书形式的论文“以太坊:下一代智能合约和去中心化应用平台”。他在详细地分析了比特币系统的设计、优点和不足后,提出要建立一条新的区块链,使之成为去中心化应用的平台。
+
+> 以太坊白皮书的标题为:A Next-Generation Smart Contract and Decentralized Application Platform;网址为:[https://github.com/ethereum/wiki/wiki/White-Paper](https://github.com/ethereum/wiki/wiki/White-Paper)。
+
+ 去中心化的想法很早就扎根在他的心中。在 13 岁的时候,V神沉迷于“魔兽世界”游戏不可自拔,但后来发生了一件事让他非常愤怒。开发魔兽游戏的暴雪公司取消了术士的“生命虹吸”技能,他写邮件和在论坛里与暴雪的工程师沟通,尝试要求恢复这个技能,但得到的回复都是,我们是出于游戏平衡才这么做的,不能恢复。V神认识到,玩家是很弱势的,像暴雪这样的游戏开发商是中心,它说了算。
+
+ 后来,在为《商业区块链》一书写的序言中,V神把自己和以太坊所处的技术浪潮统称为“去中心化科技”(decentralized technologies)。他写道:“与其寄希望于我们打交道的对方能够诚实,不如建立一个能够内生包括我们想要的东西的技术系统。这样,即使里面的参与者是腐败的,系统本身也能保持正常运作,得到我们想要的效果。”
+
+ V神曾经在多伦多大学上了 8 个月学,但在拿到Facebook早期投资人彼得·蒂尔鼓励辍学创业的 10 万元蒂尔奖学金后,他从 2014 年开始全职开发以太坊项目,从此开创了一段传奇。
+
+ 从 2013 年的白皮书开始,以太坊项目经过了 4 年多的发展,并最终在 2017 年大爆发:基于它的通证数量暴涨,以太坊自己的燃料货币“以太币”的价格在一年的时间里最高涨了 170 多倍,从 2017 年年初的 8 美元涨到年底的接近 1400 美元。
+
+ V神自此拥有了在区块链世界中的第三个角色——一个技术领袖。
+
+ V神引领着以太坊系统的开发,也带动着整个区块链技术的开发和应用。在中文网络论坛中,网友对他的称呼从“V生”变成了“V神”。在神秘的比特币发明者中本聪完全消失于网络后,V神成为区块链领域最重要的人物。
+
+ V神很早就表现出一个技术领袖的能力与魅力。在 2016 年出版的《区块链革命》一书中,数字经济专家唐·塔普斯科特写道,若要找一下历史上的例子做类比的话,下面这个类比是很明显的:V神之于以太坊,就如同林纳斯之于Linux系统一样。林纳斯与V神的对比如图 1 所示。
+
+
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/yi-tai-fang-de-zhang-hu.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/yi-tai-fang-de-zhang-hu.md
new file mode 100644
index 0000000..5915ac7
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/yi-tai-fang-de-zhang-hu.md
@@ -0,0 +1,42 @@
+---
+description: 外部账户和合约账户
+---
+
+# 以太坊的账户
+
+以太坊是有账户的,每个用户都可以开设账户,账户余额是我们拥有的以太币或其他基于 ERC20 标准的通证。账户的设计使得以太坊与比特币不同,根据之前的讨论我们知道,比特币只有钱包地址和未使用的交易输出。
+
+### 以太坊的两种账户:外部账户和合约账户
+
+以太坊有两种账户,如下图所示:
+
+* 外部账户(externally owned accounts),由密钥控制。
+* 合约账户(contract accounts),由智能合约的代码控制。
+
+
+
+
+以太坊的账户包括四个字段:一个随机数、账户的余额、合约代码(如果有的话)、存储(通常为空)。
+
+只有合约账户才有代码,其中存储的是 codeHash(这个账户的以太坊虚拟机代码的哈希值)。这个字段在生成后是不可修改的,这意味着智能合约代码是不可修改的。
+
+外部账户可以触发交易,而合约账户不能主动发起交易,只能在被触发后按预先编写的智能合约代码执行。
+
+合约账户可以设置多重签名(multisign),比如一个简单示例是:现有一个合约账户,它要求一个转账由发起转账的人(Alice)和另一个人(Charles)签名均可。因此,当 Alice 通过这个合约向 Bob 转账 20 个 ETH 时,合约会通知 Charles 签名,在他签名后,Bob 才可以收到这 20 个 ETH(见图2)。
+
+
+
+### 以太坊的交易和它的区块中存的是什么
+
+和比特币一样,以太坊的区块中存储的也是交易(transaction),它包括的字段主要有:接受者(接受的账户)、发送者的签名、发送者发给接受者的以太币金额等。
+
+与比特币的区块中存储的是交易不同,以太坊的区块中以梅克尔帕特里夏树(Merkle Patricia Tree,MPT)形式存储的是相应的以太坊账户的状态。
+
+以太坊的交易是所谓的状态转换函数,一个交易触发它的执行,它将相应的账户从一个状态转变成新状态,然后新状态被存储在区块链的数据区块中。
+
+参考资料:[https://github.com/ethereum/wiki/wiki/White-Paper](https://github.com/ethereum/wiki/wiki/White-Paper)
+
+## 学习结束啦,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/yi-tai-fang-token-xi-tong.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/yi-tai-fang-token-xi-tong.md
new file mode 100644
index 0000000..f9d0566
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/yi-tai-fang-token-xi-tong.md
@@ -0,0 +1,2 @@
+# 以太坊Token系统
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/yi-tai-fang-zhi-neng-he-yue-de-ji-shu-yu-zu-jian.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/yi-tai-fang-zhi-neng-he-yue-de-ji-shu-yu-zu-jian.md
new file mode 100644
index 0000000..826a0c4
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/yi-tai-fang-zhi-neng-he-yue-de-ji-shu-yu-zu-jian.md
@@ -0,0 +1,29 @@
+# 以太坊智能合约的技术与组件
+
+要在以太坊上编写一个智能合约,所涉及的技术和组件有:
+
+* Solidity,以太坊的图灵完备编程语言,用于编写智能合约。
+* 虚拟机(Ethereum Virtual Machine,EVM),即智能合约运营的环境。
+* 预言机(Oracle),用于链上和链下数据信息的交换。
+* Web3.js,与以太坊区块链节点进行交互的JavaScript API。
+
+
+常见的以太坊通证标准有两种:
+
+* ERC20标准,可互换通证。
+* ERC721标准,不可互换通证。
+
+
+2014 年 12 月 31 日,维塔利克曾画了一张名为“Silos”的图,展示了他理解的以太坊架构(见图1),从下而上分别是:共识、经济、链上与链下服务、互操作、浏览器、分布式应用(DAPPs)。
+
+一般来说,以太坊的体系架构可分为六层,与比特币系统对比,它的重要特点是把合约层从共识机制中分离出来(见图2)。
+
+
+
+
+
+
+## 学习结束啦,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/yi-tai-fang-zhi-neng-he-yue.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/yi-tai-fang-zhi-neng-he-yue.md
new file mode 100644
index 0000000..463b055
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/yi-tai-fang-zhi-neng-he-yue.md
@@ -0,0 +1,30 @@
+# 以太坊智能合约是什么?
+
+以太坊是最早提出做智能合约的平台。由于以太坊区块链被普遍接受,因此多数区块链的智能合约采取与以太坊相似的设计。本文将详细介绍以太坊的智能合约:它是什么?它有什么用?
+
+## 以太坊的智能合约是什么
+
+ 以太坊的智能合约并非现实中常见的合同,而是存在区块链上,可以被触发执行的一段程序代码,这些代码实现了某种预定的规则,是存在于以太坊执行环境中的“自治代理”。以太坊的账户与合约如图 1 所示。
+
+
+
+ 以太坊的智能合约设计很简明。
+
+* 任何人都可以在以太坊区块链上开发智能合约,这些智能合约的代码是存在于以太坊的账户中的,这类存有代码的账户叫合约账户。对应地,由密钥控制的账户可称为外部账户。
+* 以太坊的智能合约程序,是在以太坊虚拟机(Ethereum Virtual Machine,EVM)上运行的。
+* 合约账户不能自己启动运行自己的智能合约。要运行一个智能合约,需要由外部账户对合约账户发起交易,从而启动其中的代码的执行。
+
+ 以太坊和比特币的一个重大不同是,前者提供了图灵完备的编程语言(Solidity)和相应的运行环境(EVM)。所谓图灵完备,指的是这个脚本编程语言可以运行所有可能的计算,而比特币的UTXO模型和脚本只能运行部分计算。
+
+## 以太坊的智能合约有什么用
+
+ 以太坊的智能合约被广泛应用的一个用途是创建通证,通证对应的多是以太坊区块链之外的资产。
+
+ 图 2 是一个简明的图示,这是从 Komhar 咨询公司的一个图示重绘而来的。图示是一个典型的 ERC20 通证发行过程:一个项目通过智能合约创建通证,这个通证是实体资产或线上资产的价值表示物。投资者(用户)发起交易,向智能合约转入以太币(ETH),智能合约自动运转,在满足一定规则后,它向投资者账户转入相应数量的通证。
+
+
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/yi-tai-fang.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/yi-tai-fang.md
new file mode 100644
index 0000000..7f9a0b6
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/yi-tai-fang.md
@@ -0,0 +1,144 @@
+---
+description: 区块链2.0的代表
+---
+
+# 以太坊
+
+通过深入了解比特币系统我们已经知道,区块链是源自比特币的底层技术,它让我们可以无须借助任何第三方中介直接进行价值表示和价值转移,它还给数字世界带来了价值表示物——通证。区块链将使互联网从“信息互联网”阶段跨越到“价值互联网”阶段。
+
+ 但区块链技术要应用起来,还需要持续迭代升级。比特币系统和它的区块链都是专为创建一个去中心化的点对点电子现金而设计的。如果把比特币系统看成区块链 1.0,则以太坊是当之无愧的升级迭代版,是区块链 2.0 的典范。
+
+ 在过去这些年中出现了很多对比特币系统的改进,如替代币(altcoin)、替代链(alt chain)、侧链与跨链等。曾被认为是替代链的以太坊,可能是对比特币系统的众多改进中被广泛接受的一个。
+
+ 过去几年,基于以太坊区块链、以太坊的智能合约和通证标准,大量的通证涌现,这使以太坊变成仅次于比特币系统的热门生态。在软件层面,以太坊新加入的是智能合约,但在实际应用中,它真正带来巨变的是通证。
+
+ 现在,有不少新项目在认可以太坊是区块链 2.0 的前提下,试图竞争成为所谓的区块链 3.0,试图成为应用开发的新一代平台,竞争才刚刚开始。
+
+> 当下,对于区块链的发展阶段划分,一个被普遍接受的分类来自区块链研究者梅兰妮·斯万,在《区块链:新经济蓝图》一书中,她将区块链分为:区块链1.0,货币;区块链2.0,合约;区块链3.0,应用。从货币到合约、再到应用是一种阶段分类,以太坊白皮书的题目即宣称,它试图成为智能合约和去中心化应用的平台。
+
+ 以太坊也在持续发展,随着它的自身技术与功能的优化,它被开发者选用于更广泛的应用开发,它或许可能往前进一步演化,成为用于应用的区块链 3.0 中的一员,毕竟以太坊最初的设计目标就是成为智能合约和去中心化应用的平台。
+
+ 接下来,我们就来深入了解以太坊,并将之与比特币系统对比,以了解它的特点。以太坊的创始人叫维塔利克·布特林,常被昵称为“V神”。
+
+## 详解以太坊之一:智能合约与去中心化应用的平台
+
+ 维塔利克是如何逐步把以太坊发展起来的?从以太坊白皮书开始,我们来看看他的最初设想和之后一步步的历程。
+
+ 在以太坊白皮书中,维塔利克在分析了比特币区块链之后认为,在比特币系统的基础上开发高级应用有三种可行路径:
+
+* 建立一个新的区块链。
+* 在比特币区块链上使用脚本。
+* 在比特币区块链上建立元协议(meta-protocol)。
+
+ 维塔利克认为,比特币系统的主要设计 UTXO(未使用的交易输出)和其对应的脚本语言有缺陷,他总结认为它有以下四点不足(见图1):
+
+* 缺少图灵完备性(lack of turing-completeness)。尽管比特币的脚本语言可以支持多种计算,但是它不能支持所有的计算。
+* 价值盲(value-blindness)。UTXO 脚本不能为账户的取款额度提供精细的控制。
+* 缺少状态(lack of state)。UTXO 只能是已花费或者未花费状态,这意味着 UTXO 只能用于建立简单的、一次性的合约。
+* 区块链盲(blockchain-blindness)。UTXO 看不到区块链的数据,比如区块头部的随机数、时间戳和上一个区块数据的哈希值。
+
+ 维塔利克得出了自己的结论,他认为应当开发一个“下一代智能合约和去中心化应用平台”。他把自己将要开发的系统命名为“**以太坊**”。
+
+
+
+ 在白皮书摘要部分,他这样描述以太坊的目标:
+
+ 以太坊的目标是,提供一个区块链,内置有成熟的图灵完备的编程语言,用这种语言可以创建合约来编码,实现任意状态转换功能。
+
+ “状态转换”反映了维塔利克对比特币系统和区块链的认识。在白皮书中他认为,比特币是一个状态转换系统,而他为以太坊设计了一个更灵活的状态转换系统。
+
+ 以太坊的目标描述可以细分成以下三个部分:
+
+1. 维塔利克要创建一个新的区块链。
+2. 这个区块链的特色是,有一个能实现所有计算,即所谓的图灵完备的脚本编程语言。
+3. 这个脚本语言可以用来创建复杂的“智能合约”,用以控制区块链的状态转换,也即进行链上数字资产的转移。
+
+> 关于智能合约,在以太坊白皮书中,维塔利克用的词汇是“实现预先设定规则的一段代码”(implementing arbitrary rules)。在区块链上,这些代码的用途是控制链上的数字资产的转移。关于智能合约的更多介绍见相关冷知识专栏讨论。
+
+ 在以太坊白皮书中,维塔利克认为,在以太坊上可以开发三大类应用(见图1):
+
+* 金融应用(financial):为用户提供更强大的的方法,用他们的钱去管理和参与合约。这些应用包括子货币、金融衍生品、对冲合约、储蓄钱包、遗嘱,甚至雇用合约。
+* 半金融应用(semi-financial):这里有钱的存在,但非金钱的方面所占的比例也很重。一个好例子是为了解决计算问题而设的自动执行的悬赏。
+* 非金融应用(non-financial):如在线投票和去中心化治理等。
+
+ 以太坊的最初设计目标是建立一个智能合约和去中心化应用平台,它和比特币区块链的最大不同是,它包括了一个图灵完备的编程语言(Solidity)。利用 Solidity,我们可以在以太坊上更方便地编写“智能合约”,以太坊也提供了一个代码运行环境——以太坊虚拟机(EVM)。有了这些,在以太坊区块链上,逻辑上我们就可以开发去中心化应用(decentralized application)了。去中心化应用常被简写为 DAPP,现在它通常指利用了区块链技术的网站或移动 App 应用(见图2)。
+
+
+
+## 详解以太坊之二:用智能合约管理数字资产与 ERC20 通证标准
+
+ 我们现在看到,以太坊并没有像最初设想的那样,从比特币区块链的加密数字货币功能跨出两大步,成为应用的平台。按梅兰妮·斯万的区分,区块链 1.0 是货币,区块链 2.0 是合约,区块链 3.0 是应用,而以太坊的初始目标是建立智能合约和去中心化应用平台。在实践中,它跨出了一步或者说半步:以太坊区块链上最常用的功能并非去中心化应用,而是编写智能合约,更符合实际情况的说法是,编写智能合约以管理用通证表示的数字资产。
+
+ 这可能是区块链这个新兴技术在发展和应用过程中的必然阶段,一个新技术总会首先被用于当前条件下最适用的领域。
+
+ 为了理解通证与数字资产,我们再来对比一下比特币和以太坊。
+
+ 在比特币的二次开发或应用中,最广为人知的是众多的替代币。人们简单修改比特币开源代码的参数,然后就可以用这个代码运行一个新的区块链,创建新的替代币。
+
+ 在以太坊的二次开发或应用中,最为广泛的是基于它的智能合约创建符合ERC20标准的通证。以太坊的智能合约将创建通证的门槛降到了很低(见图3)。
+
+
+
+ 以太坊还将进行代币众筹的门槛降到了很低。在以太坊区块链上,代币众筹的流程是,一个区块链应用项目的团队在以太坊上创建一种通证,然后投资者可以用自己的以太币按照规则兑换项目的通证。代币众筹与后来的名字(首次代币发行(ICO))在2017年大为盛行后又陷入巨大争议,这个机制被滥用了。
+
+> 2017年9月4日,中国人民银行等七部委发布公告叫停首次代币发行(ICO),本书这里提及 ICO 仅为对以太坊区块链的技术进行探讨。
+>
+> 公告指出,“近期,国内通过发行代币形式包括首次代币发行(ICO)进行融资的活动大量涌现,投机炒作盛行,涉嫌从事非法金融活动,严重扰乱了经济金融秩序”。
+>
+> 公告认为,“代币发行融资是指融资主体通过代币的违规发售、流通,向投资者筹集比特币、以太币等所谓‘虚拟货币’,本质上是一种未经批准非法公开融资的行为,涉嫌非法发售代币票券、非法发行证券以及非法集资、金融诈骗、传销等违法犯罪活动”。
+>
+> 公告要求,“本公告发布之日起,各类代币发行融资活动应当立即停止。已完成代币发行融资的组织和个人应当做出清退等安排,合理保护投资者权益,妥善处置风险”。“本公告发布之日起,任何所谓的代币融资交易平台不得从事法定货币与代币、‘虚拟货币’相互之间的兑换业务,不得买卖或作为中央对手方买卖代币或‘虚拟货币’,不得为代币或‘虚拟货币’提供定价、信息中介等服务”。
+
+ 要真正了解代币众筹,我们可以回到以太坊的开始时刻。匿名的中本聪几乎靠自己一个人设计和开发了比特币系统,规划它的经济激励模型,然后让它在互联网上自由生长。在比特币项目中,他花费了多少开发资金,资金来源于何处,现在我们都再也无从了解,但合理的猜测是,总投入并不大。
+
+ 但是,当维塔利克和团队开发与运营以太坊时,它已经不太可能是一个宿舍里的作品,以太坊团队需要资金来运转。
+
+ 在发布白皮书后,维塔利克吸引合伙人加入,建立了一个项目所需的商业和法律架构(一个瑞士公司以及后续的一个瑞士的非营利性基金会)。他和团队一起进行项目的设计与开发。在2014年4月,以太坊发布了由联合创始人加文·伍德(Gavin Wood)撰写的技术白皮书。
+
+> 以太坊技术白皮书见:[https://ethereum.github.io/yellowpaper/paper.pdf](https://ethereum.github.io/yellowpaper/paper.pdf)。
+
+ 为了获得所需的资金,在 2014 年 7 月到 8 月,以太坊进行了为期 42 天的在线众筹:参与者可以用比特币换取以太坊的通证——以太币(当时叫ether)。
+
+ 这个代币众筹可以看成是,面向比特币持有者进行了一次以太币的预售。在 2008 年前后,KickStarter、Indigogo 等产品众筹网站开始逐渐建立,后来还出现了股权众筹等各种形式。以太坊的众筹可以说是这种产品众筹方式的延续,不同的是:
+
+* 它所筹集的不是法币(法定货币),而是比特币。
+* 人们获得的不是明确的商品或股权,而是换得了以太币。
+
+ 这个以太币有什么用,代表什么权益,当时参与者均没有对此进行多少探讨。毕竟,这次代币众筹是在当时非常小的比特币社区中进行的,带有强烈的理想主义,很像是比特币社区的成员们用自己手上的比特币赞助了一个新区块链的开发。
+
+ 通过这次代币众筹,以太坊获得了 31531 个比特币,按当时的比特币价格换算,它获得了 1843 万美元,这是当时排名第二的众筹项目。
+
+ 2015 年 6 月 30 日,以太坊的首个版本正式上线,预挖的 7200 万枚以太币被分配给众筹参与者与项目团队(见图4)。在之前的众筹中,以太坊共售出了 6010 万枚以太币。到此,以太坊的代币众筹过程就完成了。
+
+
+
+> 资料来源:[https://www.etherchain.org/charts/totalEtherSupply](https://www.etherchain.org/charts/totalEtherSupply)。
+
+ 由于之后比特币的价格大幅波动,众筹获得大量比特币的以太坊项目还经历了几个插曲。比如,由于比特币价格暴跌,而以太坊基金会没有在高点把手中的比特币换成法币,它用以支付各项费用的法币资金短缺,不得不大幅度削减预算。
+
+ 2015 年 9 月,中国万向集团旗下的基金用 50 万美元向以太坊基金会“购买”了41.6万枚以太币。按2018年5月以太币处于较低点的价格计算,这批以太币的价值仍超过2亿美元。这常被认为是一次“赞助”,是对当时资金困难的以太坊基金会的支持。
+
+ 在发展的一开始,以太坊有了这样一个成功的代币众筹,这一思路很自然地被发扬光大。
+
+ 在 2015 年 11 月 19 日,以太坊的主要开发者费边·沃格尔斯特勒(Fabian Vogelsteller)向社区提议了 ERC20 标准。
+
+> ERC 是 Ethereum Request for Comment 的缩写,除了 ERC20 这个可互换通证标准之外,主要采用的标准还有 ERC721 不可互换通证标准(non-fungible tokens),它也被称为契约(deeds)。在 2018 年年底大为流行的加密猫(CryptoKitty)是基于 ERC721 通证标准发行的。
+>
+> ERC20 最初的建议见:[https://github.com/ethereum/eips/issues/20](https://github.com/ethereum/eips/issues/20),最终标准文件见:[https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md)。ERC721标准地址见:[https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md)。
+
+ 这是一个用以太坊区块链智能合约发行可互换通证(fungible token)的方案。所谓可互换通证,指的是每一个通证都是一模一样的,比如任何两张 100 美元的价值是完全相同的,又比如你持有的一家上市公司的1万股普通股股票和我持有的 1 万股普通股是可互换的。
+
+ 另一种方案是在 2018 年 6 月正式获得以太坊社区认可的 ERC721 通证标准,它是不可互换通证(non-fungible token)。不可互换通证的参照物是棒球卡、邮票等收藏品等,比如我的一本专门题名给我的签名书和你的同一本书是不同的,二者不可互换。
+
+ 有了 ERC20 通证标准,我们可以在以太坊上很简单地编写一个智能合约,创建表示价值的通证。虽然这些通证所表示的价值是什么仍不明确,但大量的通证已经被创建出来。截至 2018 年 5 月,在以太坊上有 8 万多种创建 ERC20 标准通证的智能合约。
+
+ 在 2017 年,这些符合 ERC20 标准的通证的重要用途是被用于首次代币发行的筹资,人们可以用以太币按照项目方设定的兑换率来换取这些通证,而项目方获得以太币形式的资金。
+
+ 以太坊区块链及其智能合约、ERC20 通证标准提供了简单地创建代表价值的通证的技术方案,最终在 2017 年造成了通证的大爆发。这些通证在各个国家或地区的合规是一个引起激烈争论的议题。但不管怎样,从技术上讲,以太坊的实际功能是数字资产系统,因而从区块链 1.0 到区块链 2.0,是从“数字现金”到“数字资产”(见图5)。
+
+
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/yi-zhang-tu-le-jie-eos.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/yi-zhang-tu-le-jie-eos.md
new file mode 100644
index 0000000..5e4c3b1
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/yi-zhang-tu-le-jie-eos.md
@@ -0,0 +1,41 @@
+# 一张图了解EOS
+
+从比特币到以太坊,再到 EOS,它们背后的组织渐趋复杂。比特币处在完全自运转的状态。以太坊由以太坊基金会开发软件和运转该区块链网络。出于各种原因,EOS 显得更为复杂。初看,它至少包括以下三个部分。
+
+
+* 第一,EOSIO 软件。这个开源软件是由 Block.one 公司开发的。当然严格来说,这是一个社区开发的开源软件,任何人都可以参与开发、提交代码。
+* 第二,EOS 币(EOS 通证)。EOS 币由 Block.one 公司在以太坊上按 ERC20 通证标准发售。按发售条款,发售获得的 ETH 资金归属 Block.one 公司。历时一年的发售于 2018 年 6 月 2 日结束,之后,EOS 币被映射到上线的 EOS 主网上,它现在是 EOS 主网的原生数字货币。
+* 第三,EOS 主网。通过竞选,一批区块生产者(BP,超级节点)被选出来,它们启动 EOS 主网。EOS 主网于 2018 年 6 月初由 EOS 社区上线。但可以合理地推测,在 EOS 社区中,Block.one 公司有着非常大的影响力。
+
+
+在主网之外还出现了一些未获得 EOS 社区广泛认同的,可视为 EOS 替代网(altnet,这是我们造的一个与之前的替代币(altcoin)、替代链(alt chain)相对应的词)。
+
+EOSIO 是一个开源软件,Block.one 公司也支持各方使用这个开源软件来架设自己的区块链网络。不过也出现了一些有争议的替代网,比如有的替代网试图混淆自己与 EOS 主网。开发者还可以用 EOSIO 软件建立单节点测试网、多节点测试网。
+
+到此我们可以看到,EOS 的组成部分与多数基础公链项目一致,包括三个部分(一条链、一个通证、一个软件):EOS 主网、EOS 通证、EOSIO 开源软件。EOS 主网也是由分布式账本和去中心网络组成的。与其他基础公链的一个较大不同是,它鼓励更多的人在主网之外使用和运行 EOSIO 开源软件。
+
+如图 1 所示,EOS 的主网包括三层:最核心层是由区块生产者(BP)组成的 EOSIO 核心网,中间层是 EOSIO 接入网,外层是 EOSIO 用户。
+
+EOSIO 开源软件包括一系列软件,其中主要有三个:nodeos、cleos、keosd。
+
+* nodeos:即 EOS 的核心程序,它是 EOS 节点的后台程序。
+* cleos:管理 EOS 区块链和钱包的命令程序。
+* keosd:管理 EOS 钱包的程序。
+
+
+EOS 主网的账户包括两种:外部账户(由私钥控制的外部账户)和合约账户。和账户相关的概念是钱包与权限,钱包是保存密钥的客户端,而权限包括两个基础权限类别(owner 与 active),应用可自定义各种权限。
+
+
+
+### EOS 的智能合约
+
+EOS 的智能合约是关联在各个合约账户上的。在 EOSIO 系统中,“合约”是沿用了区块链的专业术语,但其含义非常接近于 Linux 操作系统的后台应用,比如节点在启动时会包括四个缺省合约,如 eosio.bios、eosio.token 等。
+
+EOS 的智能合约可以通过两种方式调用,一是用户通过命令调用,二是通过 EOSIO 软件的 send 方法调用。一个账户通过转账等动作触发另一个合约账户中的合约运行之后,这个合约可以通过软件代码调用其他的合约(见图3-11)。
+
+EOS 智能合约现在是用 C++ 语言编写的,文件格式分别为`*.hpp/*.cpp`,编译后变为 WebAssembly 格式文件 WASM(\*.wast)与应用头文件(\*.abi)。
+
+## 学习结束啦,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/ning-meng-dai-ni-ren-shi-qu-kuai-lian/zhi-neng-he-yue.md b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/zhi-neng-he-yue.md
new file mode 100644
index 0000000..3a5d6a3
--- /dev/null
+++ b/ning-meng-dai-ni-ren-shi-qu-kuai-lian/zhi-neng-he-yue.md
@@ -0,0 +1,62 @@
+# 智能合约
+
+尼克·萨博最早于 1994 年提出了智能合约。他定义道:“一个智能合约是,一个计算机化的交易协议,它执行一个合约的条款。”
+
+> 交易协议中的“协议”二字指的是计算机协议。尼克·萨博的智能合约论文见:[http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html](http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html)。
+
+ 尼克·萨博是知名的计算机科学家、法学学者和密码学者,他的研究重点是智能合约和数字现金。1998 年,他还曾创建中心化的数字现金比特黄金。
+
+## 为什么需要智能合约
+
+ 尼克·萨博说:“智能合约的设计目标是,执行一般的合同条件,最大限度地减少恶意和意外的状况,最大限度地减少使用信任中介。”
+
+ 他认为,我们需要一个这样的计算机协议:它能够完全保证,如果付款了,商品会被发送,或者商品寄出去了,就会收到钱。
+
+ 在现实生活中,我们有很多办法来实现这一点。而计算机科学家的目标是,用事先确定的代码自动执行合约条款,无须人工干预和第三方中介。
+
+ 智能合约中的“智能”可以理解为,按条件自动执行,无须人的干预,是自动的或自治的。
+
+## “合同”是智能合约的好类比吗
+
+ 按其名字,智能合约的好类比是不是我们在商业活动中所签订的“合同”?其实不是。
+
+ 智能合约贴切的形象类比,是我们在说起计算机术语“有限状态机”或“状态机”时常用的自动可乐售卖机:
+
+* 我们向可乐售卖机投入硬币,按一下出可乐的按钮。
+* 售卖机将一听可乐从出货口放出来。
+* 售货机恢复到最初的状态。
+
+ 萨博在 1997 年的文章中也说,智能合约的原始祖先是不起眼的自动售货机。
+
+ 在以太坊白皮书中,维塔利克还特别指出,这里的“合约”不应被理解为需要执行或遵守的东西,而应看成是存在于以太坊执行环境中的“自治代理”(autonomous agents),它拥有自己的以太坊账户,它们收到交易信息后就相当于被捅了一下,然后自动执行一段代码。
+
+> 维塔利克是以太坊的创始人,就是大名鼎鼎的“V神”。
+
+ 我们还可以这么看:
+
+* 区块链存储的是“状态”,智能合约是它用于状态转换的方式。
+* 智能合约像一个特别的“时钟”,把世界从“同步”转向“异步”。
+
+## 智能财产:用智能合约来控制实体资产
+
+ 在智能合约论文中,萨博还讨论了如何把智能合约用于实体资产,形成所谓的智能财产(smart property)。
+
+ 所谓智能财产,是智能合约程序按照设定的规则控制的财产。萨博举例说明如下:
+
+* 例如,为了防止一部车被偷窃,除非确定拥有者完成正确的“挑战响应协议”,否则车是不会启动激活的。
+* 例如,如果车是贷款买的,当拥有者无法偿还贷款时,智能合约将会自动启动扣押令,并将车钥匙的控制权交给银行。一旦拥有者还清贷款,智能合约就移除扣押令。
+
+ 智能资产的概念后来被扩大了,在对比特币的相关介绍中有这样说法:由比特币区块链上的智能合约控制的资产,不管是实体的还是数字的,都叫智能资产(见图1)。
+
+
+
+ 尼克·萨博的关键论文:
+
+* 1994,Smart Contracts。
+* 1996,Smart Contracts:Building Blocks for Digital Markets。
+* 1997,The Idea of Smart Contracts。
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../0lemon/coffee.md" %}
+
diff --git a/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/README.md b/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/README.md
new file mode 100644
index 0000000..bcadf4d
--- /dev/null
+++ b/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/README.md
@@ -0,0 +1,10 @@
+---
+description: 系列课程转自-C语言中文网
+---
+
+# Go语言学习
+
+## Go语言也称 Golang,兼具效率、性能、安全、健壮等特性。
+
+
+
diff --git a/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.2go-yu-yan-de-te-xing.md b/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.2go-yu-yan-de-te-xing.md
new file mode 100644
index 0000000..3baed62
--- /dev/null
+++ b/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.2go-yu-yan-de-te-xing.md
@@ -0,0 +1,73 @@
+# 1.2Go语言的特性
+
+Go语言也称为 Golang,是由 Google 公司开发的一种静态强类型、编译型、并发型、并具有垃圾回收功能的编程语言。
+
+接下来从几个方面来具体介绍一下Go语言的特性。
+
+
+### 语法简单
+
+抛开语法样式不谈,单就类型和规则而言,Go 与 C99、C11 相似之处颇多,这也是Go语言被冠以“NextC”名号的重要原因。
+
+Go语言的语法处于简单和复杂的两极。C语言简单到你每写下一行代码,都能在脑中想象出编译后的模样,指令如何执行,内存如何分配,等等。而 C 的复杂在于,它有太多隐晦而不着边际的规则,着实让人头疼。相比较而言,Go 从零开始,没有历史包袱,在汲取众多经验教训后,可从头规划一个规则严谨、条理简单的世界。
+
+Go语言的语法规则严谨,没有歧义,更没什么黑魔法变异用法。任何人写出的代码都基本一致,这使得Go语言简单易学。放弃部分“灵活”和“自由”,换来更好的维护性,我觉得是值得的。
+
+将“++”、“--”从运算符降级为语句,保留指针,但默认阻止指针运算,带来的好处是显而易见的。还有,将切片和字典作为内置类型,从运行时的层面进行优化,这也算是一种“简单”。
+
+
+### 并发模型
+
+时至今日,并发编程已成为程序员的基本技能,在各个技术社区都能看到诸多与之相关的讨论主题。在这种情况下Go语言却一反常态做了件极大胆的事,从根本上将一切都并发化,运行时用 Goroutine 运行所有的一切,包括 main.main 入口函数。
+
+可以说,Goroutine 是 Go 最显著的特征。它用类协程的方式来处理并发单元,却又在运行时层面做了更深度的优化处理。这使得语法上的并发编程变得极为容易,无须处理回调,无须关注线程切换,仅一个关键字,简单而自然。
+
+搭配 channel,实现 CSP 模型。将并发单元间的数据耦合拆解开来,各司其职,这对所有纠结于内存共享、锁粒度的开发人员都是一个可期盼的解脱。若说有所不足,那就是应该有个更大的计划,将通信从进程内拓展到进程外,实现真正意义上的分布式。
+
+
+### 内存分配
+
+将一切并发化固然是好,但带来的问题同样很多。如何实现高并发下的内存分配和管理就是个难题。好在 Go 选择了 tcmalloc,它本就是为并发而设计的高性能内存分配组件。
+
+可以说,内存分配器是运行时三大组件里变化最少的部分。刨去因配合垃圾回收器而修改的内容,内存分配器完整保留了 tcmalloc 的原始架构。使用 cache 为当前执行线程提供无锁分配,多个 central 在不同线程间平衡内存单元复用。在更高层次里,heap 则管理着大块内存,用以切分成不同等级的复用内存块。快速分配和二级内存平衡机制,让内存分配器能优秀地完成高压力下的内存管理任务。
+
+在最近几个版本中,编译器优化卓有成效。它会竭力将对象分配在栈上,以降低垃圾回收压力,减少管理消耗,提升执行性能。可以说,除偶尔因性能问题而被迫采用对象池和自主内存管理外,我们基本无须参与内存管理操作。
+
+
+### 垃圾回收
+
+垃圾回收一直是个难题。早年间,Java 就因垃圾回收低效被嘲笑了许久,后来 Sun 连续收纳了好多人和技术才发展到今天。可即便如此,在 Hadoop 等大内存应用场景下,垃圾回收依旧捉襟见肘、步履维艰。
+
+相比 Java,Go 面临的困难要更多。因指针的存在,所以回收内存不能做收缩处理。幸好,指针运算被阻止,否则要做到精确回收都难。
+
+每次升级,垃圾回收器必然是核心组件里修改最多的部分。从并发清理,到降低 STW 时间,直到 Go 的 1.5 版本实现并发标记,逐步引入三色标记和写屏障等等,都是为了能让垃圾回收在不影响用户逻辑的情况下更好地工作。尽管有了努力,当前版本的垃圾回收算法也只能说堪用,离好用尚有不少距离。
+
+
+### 静态链接
+
+Go 刚发布时,静态链接被当作优点宣传。只须编译后的一个可执行文件,无须附加任何东西就能部署。这似乎很不错,只是后来风气变了。连着几个版本,编译器都在完善动态库 buildmode 功能,场面一时变得有些尴尬。
+
+暂不说未完工的 buildmode 模式,静态编译的好处显而易见。将运行时、依赖库直接打包到可执行文件内部,简化了部署和发布操作,无须事先安装运行环境和下载诸多第三方库。这种简单方式对于编写系统软件有着极大好处,因为库依赖一直都是个麻烦。
+
+
+### 标准库
+
+功能完善、质量可靠的标准库为编程语言提供了充足动力。在不借助第三方扩展的情况下,就可完成大部分基础功能开发,这大大降低了学习和使用成本。最关键的是,标准库有升级和修复保障,还能从运行时获得深层次优化的便利,这是第三方库所不具备的。
+
+Go 标准库虽称不得完全覆盖,但也算极为丰富。其中值得称道的是 net/http,仅须简单几条语句就能实现一个高性能 Web Server,这从来都是宣传的亮点。更何况大批基于此的优秀第三方 Framework 更是将 Go 推到 Web/Microservice 开发标准之一的位置。
+
+当然,优秀第三方资源也是语言生态圈的重要组成部分。近年来崛起的几门语言中,Go 算是独树一帜,大批优秀作品频繁涌现,这也给我们学习 Go 提供了很好的参照。
+
+
+### 工具链
+
+完整的工具链对于日常开发极为重要。Go 在此做得相当不错,无论是编译、格式化、错误检查、帮助文档,还是第三方包下载、更新都有对应的工具。其功能未必完善,但起码算得上简单易用。
+
+内置完整测试框架,其中包括单元测试、性能测试、代码覆盖率、数据竞争,以及用来调优的 pprof,这些都是保障代码能正确而稳定运行的必备利器。
+
+除此之外,还可通过环境变量输出运行时监控信息,尤其是垃圾回收和并发调度跟踪,可进一步帮助我们改进算法,获得更佳的运行期表现。
+
+## 学习结束啦,给作者来杯咖啡?
+
+{% page-ref page="../../../0lemon/coffee.md" %}
+
diff --git a/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.3go-yu-yan-wei-bing-fa-er-sheng.md b/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.3go-yu-yan-wei-bing-fa-er-sheng.md
new file mode 100644
index 0000000..37abaf1
--- /dev/null
+++ b/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.3go-yu-yan-wei-bing-fa-er-sheng.md
@@ -0,0 +1,102 @@
+# 1.3Go语言为并发而生
+
+在早期 CPU 都是以单核的形式顺序执行机器指令。Go语言的祖先C语言正是这种顺序编程语言的代表。顺序编程语言中的顺序是指:所有的指令都是以串行的方式执行,在相同的时刻有且仅有一个 CPU 在顺序执行程序的指令。
+
+随着处理器技术的发展,单核时代以提升处理器频率来提高运行效率的方式遇到了瓶颈,单核 CPU 发展的停滞,给多核 CPU 的发展带来了机遇。相应地,编程语言也开始逐步向并行化的方向发展。
+
+虽然一些编程语言的框架在不断地提高多核资源使用效率,例如 [Java](http://c.biancheng.net/java/) 的 Netty 等,但仍然需要开发人员花费大量的时间和精力搞懂这些框架的运行原理后才能熟练掌握。
+
+作为程序员,要开发出能充分利用硬件资源的应用程序是一件很难的事情。现代计算机都拥有多个核,但是大部分编程语言都没有有效的工具让程序可以轻易利用这些资源。编程时需要写大量的线程同步代码来利用多个核,很容易导致错误。
+
+Go语言正是在多核和网络化的时代背景下诞生的原生支持并发的编程语言。Go语言从底层原生支持并发,无须第三方库,开发人员可以很轻松地在编写程序时决定怎么使用 CPU 资源。
+
+Go语言的并发是基于 goroutine 的,goroutine 类似于线程,但并非线程。可以将 goroutine 理解为一种虚拟线程。Go语言运行时会参与调度 goroutine,并将 goroutine 合理地分配到每个 CPU 中,最大限度地使用 CPU 性能。
+
+多个 goroutine 中,Go语言使用通道(channel)进行通信,通道是一种内置的数据结构,可以让用户在不同的 goroutine 之间同步发送具有类型的消息。这让编程模型更倾向于在 goroutine 之间发送消息,而不是让多个 goroutine 争夺同一个数据的使用权。
+
+程序可以将需要并发的环节设计为生产者模式和消费者的模式,将数据放入通道。通道另外一端的代码将这些数据进行并发计算并返回结果,如下图所示。
+
+
+
+> 提示:Go语言通过通道可以实现多个 goroutine 之间内存共享。
+
+【实例】生产者每秒生成一个字符串,并通过通道传给消费者,生产者使用两个 goroutine 并发运行,消费者在 main\(\) 函数的 goroutine 中进行处理。
+
+```go
+package main
+
+import (
+ "fmt"
+ "math/rand"
+ "time"
+)
+
+// 数据生产者
+func producer(header string, channel chan<- string) {
+ // 无限循环, 不停地生产数据
+ for {
+ // 将随机数和字符串格式化为字符串发送给通道
+ channel <- fmt.Sprintf("%s: %v", header, rand.Int31())
+ // 等待1秒
+ time.Sleep(time.Second)
+ }
+}
+
+// 数据消费者
+func customer(channel <-chan string) {
+ // 不停地获取数据
+ for {
+ // 从通道中取出数据, 此处会阻塞直到信道中返回数据
+ message := <-channel
+ // 打印数据
+ fmt.Println(message)
+ }
+}
+
+func main() {
+ // 创建一个字符串类型的通道
+ channel := make(chan string)
+ // 创建producer()函数的并发goroutine
+ go producer("cat", channel)
+ go producer("dog", channel)
+ // 数据消费函数
+ customer(channel)
+}
+```
+
+运行结果:
+
+`dog: 2019727887
+cat: 1298498081
+dog: 939984059
+cat: 1427131847
+cat: 911902081
+dog: 1474941318
+dog: 140954425
+cat: 336122540
+cat: 208240456
+dog: 646203300`
+
+对代码的分析:
+
+* 第 03 行,导入格式化(fmt)、随机数(math/rand)、时间(time)包参与编译。
+* 第 10 行,生产数据的函数,传入一个标记类型的字符串及一个只能写入的通道。
+* 第 13 行,for{} 构成一个无限循环。
+* 第 15 行,使用 rand.Int31\(\) 生成一个随机数,使用 fmt.Sprintf\(\) 函数将 header 和随机数格式化为字符串。
+* 第 18 行,使用 time.Sleep\(\) 函数暂停 1 秒再执行这个函数。如果在 goroutine 中执行时,暂停不会影响其他 goroutine 的执行。
+* 第 23 行,消费数据的函数,传入一个只能写入的通道。
+* 第 26 行,构造一个不断消费消息的循环。
+* 第 28 行,从通道中取出数据。
+* 第 31 行,将取出的数据进行打印。
+* 第 35 行,程序的入口函数,总是在程序开始时执行。
+* 第 37 行,实例化一个字符串类型的通道。
+* 第 39 行和第 40 行,并发执行一个生产者函数,两行分别创建了这个函数搭配不同参数的两个 goroutine。
+* 第 42 行,执行消费者函数通过通道进行数据消费。
+
+
+整段代码中,没有线程创建,没有线程池也没有加锁,仅仅通过关键字 go 实现 goroutine,和通道实现数据交换。
+
+## 学习结束啦,给作者来杯咖啡?
+
+{% page-ref page="../../../0lemon/coffee.md" %}
+
diff --git a/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.4-na-xie-xiang-mu-shi-yong-go-yu-yan-kai-fa.md b/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.4-na-xie-xiang-mu-shi-yong-go-yu-yan-kai-fa.md
new file mode 100644
index 0000000..f6e2812
--- /dev/null
+++ b/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.4-na-xie-xiang-mu-shi-yong-go-yu-yan-kai-fa.md
@@ -0,0 +1,60 @@
+# 1.4哪些项目使用Go语言?
+
+所有的编程语言都反映了语言设计者对编程哲学的反思,通常包括之前的语言所暴露的一些不足地方的改进。Go语言从发布 1.0 版本以来备受众多开发者关注并得到广泛使用,Go语言的简单、高效、并发特性吸引了众多传统语言开发者的加入,而且人数越来越多。
+
+使用Go语言开发的开源项目非常多。早期的Go语言开源项目只是通过Go语言与传统项目进行C语言库绑定实现,例如 Qt、Sqlite 等;后期的很多项目都使用Go语言进行重新原生实现,这个过程相对于其他语言要简单一些,这也促成了大量使用Go语言原生开发项目的出现。
+
+下面列举的是原生使用Go语言进行开发的部分项目。
+
+### 1\) Docker
+
+Docker 是一种操作系统层面的虚拟化技术,可以在操作系统和应用程序之间进行隔离,也可以称之为容器。Docker 可以在一台物理服务器上快速运行一个或多个实例。例如,启动一个 CentOS 操作系统,并在其内部命令行执行指令后结束,整个过程就像自己在操作系统一样高效。
+
+项目链接:[https://github.com/docker/docker](https://github.com/docker/docker)
+
+### 2\) Go语言
+
+Go语言自己的早期源码使用C语言和汇编语言写成。从 Go 1.5 版本后,完全使用Go语言自身进行编写。Go语言的源码对了解Go语言的底层调度有极大的参考意义,建议希望对Go语言有深入了解的读者读一读。
+
+项目链接:[https://github.com/golang/go](https://github.com/golang/go)
+
+### 3\) Kubernetes
+
+Google 公司开发的构建于 Docker 之上的容器调度服务,用户可以通过 Kubernetes 集群进行云端容器集群管理。系统会自动选取合适的工作节点来执行具体的容器集群调度处理工作。其核心概念是 Container Pod(容器仓)。
+
+项目链接:[https://github.com/kubernetes/kubernetes](https://github.com/kubernetes/kubernetes)
+
+### 4\) etcd
+
+一款分布式、可靠的 KV 存储系统,可以快速进行云配置。由 CoreOS 开发并维护键值存储系统,它使用Go语言编写,并通过 Raft 一致性算法处理日志复制以保证强一致性。
+
+项目链接:[https://github.com/coreos/etcd](https://github.com/coreos/etcd)
+
+### 5\) beego
+
+beego 是一个类似 Python 的 Tornado 框架,采用了 RESTFul 的设计思路,使用Go语言编写的一个极轻量级、高可伸缩性和高性能的 Web 应用框架。
+
+项目链接:[https://github.com/astaxie/beego](https://github.com/astaxie/beego)
+
+### 6\) martini
+
+一款快速构建模块化的 Web 应用的Go语言框架。
+
+项目链接:[https://github.com/go-martini/martini](https://github.com/go-martini/martini)
+
+### 7\) codis
+
+国产的优秀分布式 Redis 解决方案。可以将 codis 理解成为 Web 服务领域的 Nginx,它实现了对 Redis 的反向代理和负载均衡。
+
+项目链接:[https://github.com/CodisLabs/codis](https://github.com/CodisLabs/codis)
+
+### 8\) delve
+
+Go语言强大的调试器,被很多集成环境和编辑器整合。
+
+项目链接:[https://github.com/derekparker/delve](https://github.com/derekparker/delve)
+
+## 学习结束啦,给作者来杯咖啡?
+
+{% page-ref page="../../../0lemon/coffee.md" %}
+
diff --git a/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.5-na-xie-gong-si-zai-shi-yong-go-yu-yan.md b/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.5-na-xie-gong-si-zai-shi-yong-go-yu-yan.md
new file mode 100644
index 0000000..9874362
--- /dev/null
+++ b/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.5-na-xie-gong-si-zai-shi-yong-go-yu-yan.md
@@ -0,0 +1,50 @@
+# 1.5哪些公司在使用Go语言
+
+Go语言是谷歌在 2009 年发布的一款编程语言,自面世以来它以高效的开发效率和完美的运行速度迅速风靡全球,被誉为“21 世纪的C语言”。
+
+现在越来越多的公司开始使用Go语言开发自己的服务,同时也诞生了很多使用Go语言开发的服务和应用,比如 Docker、k8s 等,下面我们来看一下,有哪些大公司在使用Go语言。
+
+
+**1\) Google**
+
+作为创造了Go语言的 google 公司,当然会力挺Go语言了。Google 有很多基于 Go 开发的开源项目,比如 kubernets,docker,大家可以参考《哪些项目使用Go语言开发》一节了解更多的Go语言开源项目。
+
+
+**2\) Facebook**
+
+Facebook 也在使用Go语言,为此他们还专门在 Github 上建立了一个开源组织 facebookgo。大家可以通过 [https://github.com/facebookgo](https://github.com/facebookgo) 访问查看 facebook 开源的项目,其中最具代表性的就是著名平滑重启工具 grace。
+
+
+**3\) 腾讯**
+
+腾讯在 15 年就已经做了 Docker 万台规模的实践。因为腾讯主要的开发语言是 C/C++ ,所以在使用Go语言方面会方便很多,也有很多优势,不过日积月累的 C/C++ 代码很难改造,也不敢动,所以主要在新业务上尝试使用 Go。
+
+
+**4\) 百度**
+
+百度主要在运维方面使用到了Go语言,比如百度运维的一个 BFE 项目,主要负责前端流量的接入,其次就是百度消息通讯系统的服务器端也使用到了Go语言。
+
+
+**5\) 七牛云**
+
+七牛云算是国内第一家选Go语言做服务端的公司。早在 2011 年,当Go语言的语法还没完全稳定下来的情况下,七牛云就已经选择将 Go 作为存储服务端的主体语言。
+
+
+**6\) 京东**
+
+京东云消息推送系统、云存储,以及京东商城的列表页等都是使用Go语言开发的。
+
+
+**7\) 小米**
+
+小米对Go语言的支持,在于运维监控系统的开源,它的官方网址是 [http://open-falcon.org/](http://open-falcon.org/)。此外,小米互娱、小米商城、小米视频、小米生态链等团队都在使用Go语言。
+
+
+**8\) 360**
+
+360 对Go语言的使用也不少,比如开源的日志搜索系统 Poseidon,大家可以通过 [https://github.com/Qihoo360/poseidon](https://github.com/Qihoo360/poseidon) 查看,还有 360 的推送团队也在使用Go语言。
+
+除了上面提到的,还有很多公司开始尝试使用Go语言,比如美团、滴滴、新浪等。
+
+Go语言的强项在于它适合用来开发网络并发方面的服务,比如消息推送、监控、容器等,所以在高并发的项目上大多数公司会优先选择 Golang 作为开发语言。
+
diff --git a/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.6go-yu-yan-kuo-he-zuo-shen-me-fu-fei.md b/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.6go-yu-yan-kuo-he-zuo-shen-me-fu-fei.md
new file mode 100644
index 0000000..ba6997a
--- /dev/null
+++ b/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.6go-yu-yan-kuo-he-zuo-shen-me-fu-fei.md
@@ -0,0 +1,4 @@
+# 1.6Go语言适合做什么\(付费\)
+
+## 当前内容为付费教程,请联系作者获取
+
diff --git a/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.7go-yu-yan-he-qi-ta-yu-yan-de-dui-bi-fu-fei.md b/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.7go-yu-yan-he-qi-ta-yu-yan-de-dui-bi-fu-fei.md
new file mode 100644
index 0000000..1224729
--- /dev/null
+++ b/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.7go-yu-yan-he-qi-ta-yu-yan-de-dui-bi-fu-fei.md
@@ -0,0 +1,4 @@
+# 1.7Go语言和其它语言的对比\(付费\)
+
+## 当前内容为付费教程,请联系作者获取
+
diff --git a/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.8go-yu-yan-de-xing-neng-ru-he.md b/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.8go-yu-yan-de-xing-neng-ru-he.md
new file mode 100644
index 0000000..65c4420
--- /dev/null
+++ b/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.8go-yu-yan-de-xing-neng-ru-he.md
@@ -0,0 +1,18 @@
+# 1.8Go语言的性能如何?
+
+根据 Go 开发团队和基本的算法测试,Go语言与C语言的性能差距大概在 10%~20% 之间。虽然没有官方的性能标准,但是与其它各个语言相比已经拥有非常出色的表现。
+
+时下流行的语言大都是运行在虚拟机上,如:Java 和 Scala 使用的 JVM,C\# 和 VB.NET 使用的 .NET CLR。尽管虚拟机的性能已经有了很大的提升,但任何使用 JIT 编译器和脚本语言解释器的编程语言(Ruby、Python、Perl 和 JavaScript)在 C 和 C++ 的绝对优势下甚至都无法在性能上望其项背。
+
+这里以国外的一个编程语言性能测试网站 http://benchmarksgame.alioth.debian.org/ 为测试基准和数据源。这个网站可以对常见的编程语言进行性能比较,网站使用都是最新的语言版本和常见的一些算法。
+
+通过对 C\(gcc\)、C++、Java、JavaScript 和Go语言的测试。性能比较如下表所示,表中数据的单位为秒,数值越小表明运行性能越好。
+
+
+
+通过上表可以看出,Go语言在性能上更接近于 Java 语言,虽然在某些测试用例上不如经过多年优化的 Java 语言,但毕竟 Java 语言已经经历了多年的积累和优化。Go语言在未来的版本中会通过不断的版本优化提高单核运行性能。
+
+## 学习结束啦,给作者来杯咖啡?
+
+{% page-ref page="../../../0lemon/coffee.md" %}
+
diff --git a/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.9go-yu-yan-biao-zhun-ku-qiang-da.md b/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.9go-yu-yan-biao-zhun-ku-qiang-da.md
new file mode 100644
index 0000000..4fef57a
--- /dev/null
+++ b/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/1.9go-yu-yan-biao-zhun-ku-qiang-da.md
@@ -0,0 +1,14 @@
+# 1.9Go语言标准库强大
+
+学习编程语言,早已不是学一点语法规则那么简单。现在更习惯称作选择 Ecosystem(生态圈),而这其中标准库的作用和分量尤为明显。
+
+在Go语言的安装文件里包含了一些可以直接使用的包,即标准库。Go语言的标准库(通常被称为语言自带的电池),提供了清晰的构建模块和公共接口,包含 I/O 操作、文本处理、图像、密码学、网络和分布式应用程序等,并支持许多标准化的文件格式和编解码协议。
+
+在 Windows 下,标准库的位置在Go语言根目录下的子目录 pkg\windows_amd64 中;在 Linux 下,标准库在Go语言根目录下的子目录 pkg\linux\_amd64 中(如果是安装的是 32 位,则在 linux\_386 目录中)。一般情况下,标准包会存放在 $GOROOT/pkg/$GOOS_$GOARCH/ 目录下。
+
+Go语言的编译器也是标准库的一部分,通过词法器扫描源码,使用语法树获得源码逻辑分支等。Go语言的周边工具也是建立在这些标准库上。在标准库上可以完成几乎大部分的需求。
+
+Go语言的标准库以包的方式提供支持,下表列出了Go语言标准库中常见的包及其功能。
+
+
+
diff --git a/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/README.md b/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/README.md
new file mode 100644
index 0000000..462729e
--- /dev/null
+++ b/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/README.md
@@ -0,0 +1,2 @@
+# 第一章-Go语言简介
+
diff --git a/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/go-yu-yan-jian-jie.md b/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/go-yu-yan-jian-jie.md
new file mode 100644
index 0000000..c9116cd
--- /dev/null
+++ b/qu-kuai-lian-ji-shu-xue-xi/go-yu-yan-xue-xi/go-yu-yan-jian-jie/go-yu-yan-jian-jie.md
@@ -0,0 +1,70 @@
+# 1.1Go语言简介
+
+Go语言(或 Golang)起源于 2007 年,并在 2009 年正式对外发布。Go 是非常年轻的一门语言,它的主要目标是“兼具 Python 等动态语言的开发速度和 C/C++ 等编译型语言的性能与安全性”。
+
+Go语言是编程语言设计的又一次尝试,是对类C语言的重大改进,它不但能让你访问底层操作系统,还提供了强大的网络编程和并发编程支持。Go语言的用途众多,可以进行网络编程、系统编程、并发编程、分布式编程。
+
+Go语言的推出,旨在不损失应用程序性能的情况下降低代码的复杂性,具有“部署简单、并发性好、语言设计良好、执行性能好”等优势,目前国内诸多 IT 公司均已采用Go语言开发项目。
+
+Go语言有时候被描述为“C 类似语言”,或者是“21 世纪的C语言”。Go 从C语言继承了相似的表达式语法、控制流结构、基础数据类型、调用参数传值、指针等很多思想,还有C语言一直所看中的编译后机器码的运行效率以及和现有操作系统的无缝适配。
+
+因为Go语言没有类和继承的概念,所以它和 Java 或 C++ 看起来并不相同。但是它通过接口(interface)的概念来实现多态性。Go语言有一个清晰易懂的轻量级类型系统,在类型之间也没有层级之说。因此可以说Go语言是一门混合型的语言。
+
+此外,很多重要的开源项目都是使用Go语言开发的,其中包括 Docker、Go-Ethereum、Thrraform 和 Kubernetes。
+
+
+### Go语言创始人
+
+对语言进行评估时,明白设计者的动机以及语言要解决的问题很重要。Go语言出自 Ken Thompson 和 Rob Pike、Robert Griesemer 之手,他们都是计算机科学领域的重量级人物。
+
+
+**1\) Ken Thompson**
+
+贝尔实验室 Unix 团队成员,C语言、Unix 和 Plan 9 的创始人之一,在 20 世纪 70 年代,设计并实现了最初的 UNIX 操作系统,仅从这一点说,他对计算机科学的贡献怎么强调都不过分。他还与 Rob Pike 合作设计了 UTF-8 编码方案。
+
+
+**2\) Rob Pike**
+
+Go语言项目总负责人,贝尔实验室 Unix 团队成员,除帮助设计 UTF-8 外,还帮助开发了分布式多用户操作系统 Plan 9、Inferno 操作系统和 Limbo 编程语言,并与人合著了《The Unix Programming Environment》,对 UNIX 的设计理念做了正统的阐述。
+
+
+**3\) Robert Griesemer**
+
+就职于 Google,参与开发 Java HotSpot 虚拟机,对语言设计有深入的认识,并负责 Chrome 浏览器和 Node.js 使用的 Google V8 JavaScript 引擎的代码生成部分。
+
+这些计算机科学领城的重量级人物设计Go语言的初衷是满足 Google 的需求。设计此语言花费了两年的时间,融入了整个团队多年的经验及对编程语言设计的深入认识。设计团队借鉴了 Pascal、Oberon 和C语言的设计智慧,同时让Go语言具备动态语言的便利性。因此,Go语言体现了经验丰富的计算机科学家的语言设计理念,是为全球最大的互联网公司之一设计的。
+
+Go语言的所有设计者都说,设计Go语言是因为 C++ 给他们带来了挫败感。在 Google I/O 2012 的 Go 设计小组见面会上,Rob Pike 是这样说的:
+
+> 我们做了大量的 C++ 开发,厌烦了等待编译完成,尽管这是玩笑,但在很大程度上来说也是事实。
+
+### Go 是编译型语言
+
+Go 使用编译器来编译代码。编译器将源代码编译成二进制(或字节码)格式;在编译代码时,编译器检查错误、优化性能并输出可在不同平台上运行的二进制文件。要创建并运行 Go 程序,程序员必须执行如下步骤。
+
+1. 使用文本编辑器创建 Go 程序;
+2. 保存文件;
+3. 编译程序;
+4. 运行编译得到的可执行文件。
+
+
+这不同于 Python、Ruby 和 JavaScript 等语言,它们不包含编译步骤。Go 自带了编译器,因此无须单独安装编译器。
+
+### 为什么要学习Go语言
+
+如果你要创建系统程序,或者基于网络的程序,Go语言是很不错的选择。作为一种相对较新的语言,它是由经验丰富且受人尊敬的计算机科学家设计的,旨在应对创建大型并发网络程序面临的挑战。
+
+在Go语言出现之前,开发者们总是面临非常艰难的抉择,究竟是使用执行速度快但是编译速度并不理想的语言(如:C++),还是使用编译速度较快但执行效率不佳的语言(如:.NET、Java),或者说开发难度较低但执行速度一般的动态语言呢?显然,Go语言在这 3 个条件之间做到了最佳的平衡:快速编译,高效执行,易于开发。
+
+Go语言支持交叉编译,比如说你可以在运行 Linux 系统的计算机上开发可以在 Windows 上运行的应用程序。这是第一门完全支持 UTF-8 的编程语言,这不仅体现在它可以处理使用 UTF-8 编码的字符串,就连它的源码文件格式都是使用的 UTF-8 编码。Go语言做到了真正的国际化!
+
+### Go语言吉祥物
+
+
+
+Go语言有一个吉祥物,在会议、文档页面和博文中,大多会包含下图所示的 Go Gopher,这是才华横溢的插画家 Renee French 设计的,她也是 Go 设计者之一 Rob Pike 的妻子。
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../../../0lemon/coffee.md" %}
+
diff --git a/qu-kuai-lian-ji-shu-xue-xi/solidity-ru-men-ke-cheng/README.md b/qu-kuai-lian-ji-shu-xue-xi/solidity-ru-men-ke-cheng/README.md
new file mode 100644
index 0000000..878fd65
--- /dev/null
+++ b/qu-kuai-lian-ji-shu-xue-xi/solidity-ru-men-ke-cheng/README.md
@@ -0,0 +1,6 @@
+---
+description: 技术型课程文章-建议有代码基础的读者阅读
+---
+
+# 以太坊智能合约课程
+
diff --git a/qu-kuai-lian-ji-shu-xue-xi/solidity-ru-men-ke-cheng/bu-shu-zhi-neng-he-yue.md b/qu-kuai-lian-ji-shu-xue-xi/solidity-ru-men-ke-cheng/bu-shu-zhi-neng-he-yue.md
new file mode 100644
index 0000000..093deaf
--- /dev/null
+++ b/qu-kuai-lian-ji-shu-xue-xi/solidity-ru-men-ke-cheng/bu-shu-zhi-neng-he-yue.md
@@ -0,0 +1,245 @@
+# 部署智能合约
+
+## 以太坊智能合约课
+
+### 第03课--部署智能合约
+
+#### 1.部署到Truffle
+
+**Truffle中文文档地址:**
+
+> [https://learnblockchain.cn/docs/truffle/index.html](https://learnblockchain.cn/docs/truffle/index.html)
+
+**1.安装 Truffle:**
+
+```text
+npm install -g truffle
+```
+
+**2.新建项目文件夹**
+
+```text
+mkdir myProject
+cd myProject
+truffle init
+```
+
+**3.安装Openzeppelin**
+
+```text
+npm install @openzeppelin/contracts
+```
+
+**4.创建Token.sol**
+
+```text
+vim contracts/Token.sol
+```
+
+```text
+pragma solidity ^0.5.0;
+import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
+import "@openzeppelin/contracts/token/ERC20/ERC20Detailed.sol";
+contract ExampleToken is ERC20, ERC20Detailed {
+ constructor () public
+ ERC20Detailed("CuiToken", "CUI", 18){
+ _mint(msg.sender,10000000000 * (10 ** uint256(decimals())));
+ }
+}
+```
+
+**5.编译**
+
+```text
+truffle compile
+```
+
+**6.创建文件**
+
+```text
+vim migrations/2_deploy_contracts.js
+```
+
+```text
+const ExampleToken = artifacts.require("ExampleToken");
+
+module.exports = function(deployer) {
+ deployer.deploy(ExampleToken);
+};
+```
+
+**7.部署到Truffle develop**
+
+```text
+truffle develop
+```
+
+```text
+migrate
+```
+
+**8.合约调用**
+
+```text
+var myCoin
+ExampleToken.deployed().then(function(instance){myCoin=instance})
+```
+
+#### 2.部署到Ganache
+
+**1.修改truffle-config.js文件**
+
+```text
+vim truffle-config.js
+```
+
+```text
+module.exports = {
+ networks: {
+ development: {
+ host: "192.168.1.30", // Localhost (default: none)
+ port: 7545, // Standard Ethereum port (default: none)
+ network_id: "*", // Any network (default: none)
+ },
+ }
+};
+```
+
+**2.部署到Ganache**
+
+```text
+truffle console
+```
+
+```text
+migrate
+```
+
+**3.合约调用**
+
+```text
+var myCoin
+ExampleToken.deployed().then(function(instance){myCoin=instance})
+```
+
+#### 3.部署到Ropsten
+
+**1.安装HDWalletProvider**
+
+```text
+npm install @truffle/hdwallet-provider
+```
+
+**2.获取Ropsten测试币**
+
+**获取地址:**
+
+> [https://faucet.ropsten.be/](https://faucet.ropsten.be/)
+
+
+
+**3.获取MetaMask助记词**
+
+
+
+**4.注册Infura,获取测试网或主网的KEY**
+
+**地址:**
+
+> [https://infura.io/](https://infura.io/)
+
+
+
+**5.修改truffle-config.js文件**
+
+```text
+vim truffle-config.js
+```
+
+```text
+var HDWalletProvider = require("truffle-hdwallet-provider"); // 导入模块
+var mnemonic = "oppose say prevent raven mystery fiber program pupil poverty else pill enact"; //MetaMask的助记词。
+
+module.exports = {
+ networks: {
+ ropsten: {
+ provider: function() {
+ // mnemonic表示MetaMask的助记词。 "ropsten.infura.io/v3/33..."表示Infura上的项目id
+ return new HDWalletProvider(mnemonic, "https://ropsten.infura.io/v3/e1bb25c2b20b4b5383517028056c89a3", 1); // 0表示第二个账户(从0开始)
+ },
+ network_id: "*", // match any network
+ gas: 3012388,
+ gasPrice: 20000000000,
+ confirmations: 2, // # of confs to wait between deployments. (default: 0)
+ timeoutBlocks: 200, // # of blocks before a deployment times out (minimum/default: 50)
+ skipDryRun: true // Skip dry run before migrations? (default: false for public nets )
+ },
+ }
+};
+```
+
+**6.部署**
+
+```text
+truffle migrate --network ropsten
+```
+
+**7.合约调用**
+
+```text
+truffle console --network ropsten
+```
+
+```text
+var myCoin
+ExampleToken.deployed().then(function(instance){myCoin=instance})
+```
+
+#### 4.部署到主网
+
+**1.修改truffle-config.js文件**
+
+```text
+vim truffle-config.js
+```
+
+```text
+var HDWalletProvider = require("@truffle/hdwallet-provider"); // 导入模块
+var mnemonic_mainnet = "主网助记词"; //MetaMask的助记词。
+
+module.exports = {
+ networks: {
+ mainnet: {
+ provider: new HDWalletProvider(mnemonic_mainnet, "https://mainnet.infura.io/e1bb25c2b20b4b5383517028056c89a3"),
+ network_id: 1,
+ gas: 3012388,
+ gasPrice: 20000000000,
+ confirmations: 2, // # of confs to wait between deployments. (default: 0)
+ timeoutBlocks: 200, // # of blocks before a deployment times out (minimum/default: 50)
+ skipDryRun: true // Skip dry run before migrations? (default: false for public nets )
+ }
+ }
+};
+```
+
+**2.部署**
+
+```text
+truffle migrate --network mainnet
+```
+
+**3.合约调用**
+
+```text
+truffle console --network mainnet
+```
+
+```go
+var myCoin
+ExampleToken.deployed().then(function(instance){myCoin=instance})
+```
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../../0lemon/coffee.md" %}
+
diff --git a/qu-kuai-lian-ji-shu-xue-xi/solidity-ru-men-ke-cheng/hello-word.md b/qu-kuai-lian-ji-shu-xue-xi/solidity-ru-men-ke-cheng/hello-word.md
new file mode 100644
index 0000000..99544cd
--- /dev/null
+++ b/qu-kuai-lian-ji-shu-xue-xi/solidity-ru-men-ke-cheng/hello-word.md
@@ -0,0 +1,37 @@
+# Hello Word
+
+## 以太坊智能合约课
+
+### 第01课
+
+#### Remix工具地址:
+
+[https://remix.ethereum.org/](https://remix.ethereum.org/)
+
+#### MetaMask安装地址:
+
+[https://metamask.io/](https://metamask.io/)
+
+#### 以太坊浏览器地址:
+
+[https://blockexplorer.one/eth/ropsten](https://blockexplorer.one/eth/ropsten)
+
+#### 合约代码:
+
+```go
+pragma solidity >=0.4.22 <0.6.0;
+contract HelloWorld{
+ string _name;
+ function setName(string name) public{
+ _name = name;
+ }
+ function getName() constant public returns(string){
+ return _name;
+ }
+}
+```
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../../0lemon/coffee.md" %}
+
diff --git a/qu-kuai-lian-ji-shu-xue-xi/solidity-ru-men-ke-cheng/import-truffle.md b/qu-kuai-lian-ji-shu-xue-xi/solidity-ru-men-ke-cheng/import-truffle.md
new file mode 100644
index 0000000..68a5500
--- /dev/null
+++ b/qu-kuai-lian-ji-shu-xue-xi/solidity-ru-men-ke-cheng/import-truffle.md
@@ -0,0 +1,222 @@
+# Import Truffle
+
+## Contract
+
+### Migrations
+
+```go
+pragma solidity >=0.4.21 <0.6.0;
+
+contract Migrations {
+ address public owner;
+ uint public last_completed_migration;
+
+ constructor() public {
+ owner = msg.sender;
+ }
+
+ modifier restricted() {
+ if (msg.sender == owner) _;
+ }
+
+ function setCompleted(uint completed) public restricted {
+ last_completed_migration = completed;
+ }
+
+ function upgrade(address new_address) public restricted {
+ Migrations upgraded = Migrations(new_address);
+ upgraded.setCompleted(last_completed_migration);
+ }
+}
+```
+
+### ERC721
+
+```text
+pragma solidity ^0.5.12;
+
+contract ERC721 {
+ event Transfer(address indexed _from, address indexed _to, uint256 _tokenId);
+ event Approval(address indexed _owner, address indexed _approved, uint256 _tokenId);
+
+ function balanceOf(address _owner) public view returns (uint256 _balance);
+ function ownerOf(uint256 _tokenId) public view returns (address _owner);
+ function transfer(address _to, uint256 _tokenId) public;
+ function approve(address _to, uint256 _tokenId) public;
+ function takeOwnership(uint256 _tokenId) public;
+}
+```
+
+### Ownable
+
+```text
+pragma solidity ^0.5.12;
+
+/**
+ * @title Ownable
+ * @dev The Ownable contract has an owner address, and provides basic authorization control
+ * functions, this simplifies the implementation of "user permissions".
+ */
+contract Ownable {
+ address payable public owner;
+
+ event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
+
+ /**
+ * @dev The Ownable constructor sets the original `owner` of the contract to the sender
+ * account.
+ */
+ constructor() public {
+ owner = msg.sender;
+ }
+
+
+ /**
+ * @dev Throws if called by any account other than the owner.
+ */
+ modifier onlyOwner() {
+ require(msg.sender == owner,'Must contract owner');
+ _;
+ }
+
+
+ /**
+ * @dev Allows the current owner to transfer control of the contract to a newOwner.
+ * @param newOwner The address to transfer ownership to.
+ */
+ function transferOwnership(address payable newOwner) public onlyOwner {
+ require(newOwner != address(0),'Must contract owner');
+ emit OwnershipTransferred(owner, newOwner);
+ owner = newOwner;
+ }
+
+}
+```
+
+### SafeMath
+
+```text
+pragma solidity ^0.5.12;
+
+
+/**
+ * @title SafeMath
+ * @dev Math operations with safety checks that throw on error
+ */
+library SafeMath {
+
+ /**
+ * @dev Multiplies two numbers, throws on overflow.
+ */
+ function mul(uint256 a, uint256 b) internal pure returns (uint256) {
+ if (a == 0) {
+ return 0;
+ }
+ uint256 c = a * b;
+ assert(c / a == b);
+ return c;
+ }
+
+ /**
+ * @dev Integer division of two numbers, truncating the quotient.
+ */
+ function div(uint256 a, uint256 b) internal pure returns (uint256) {
+ // assert(b > 0); // Solidity automatically throws when dividing by 0
+ uint256 c = a / b;
+ // assert(a == b * c + a % b); // There is no case in which this doesn't hold
+ return c;
+ }
+
+ /**
+ * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
+ */
+ function sub(uint256 a, uint256 b) internal pure returns (uint256) {
+ assert(b <= a);
+ return a - b;
+ }
+
+ /**
+ * @dev Adds two numbers, throws on overflow.
+ */
+ function add(uint256 a, uint256 b) internal pure returns (uint256) {
+ uint256 c = a + b;
+ assert(c >= a);
+ return c;
+ }
+}
+```
+
+### ZombieAttack
+
+```text
+pragma solidity ^0.5.12;
+
+import "./zombieHelper.sol";
+
+contract ZombieAttack is ZombieHelper{
+
+ uint randNonce = 0;
+ uint public attackVictoryProbability = 70;
+
+ function randMod(uint _modulus) internal returns(uint){
+ randNonce++;
+ return uint(keccak256(abi.encodePacked(now,msg.sender,randNonce))) % _modulus;
+ }
+
+ function setAttackVictoryProbability(uint _attackVictoryProbability)public onlyOwner{
+ attackVictoryProbability = _attackVictoryProbability;
+ }
+
+ function attack(uint _zombieId,uint _targetId)external onlyOwnerOf(_zombieId) returns(uint){
+ require(msg.sender != zombieToOwner[_targetId],'The target zombie is yours!');
+ Zombie storage myZombie = zombies[_zombieId];
+ require(_isReady(myZombie),'Your zombie is not ready!');
+ Zombie storage enemyZombie = zombies[_targetId];
+ uint rand = randMod(100);
+ if(rand<=attackVictoryProbability){
+ myZombie.winCount++;
+ myZombie.level++;
+ enemyZombie.lossCount++;
+ multiply(_zombieId,enemyZombie.dna);
+ return _zombieId;
+ }else{
+ myZombie.lossCount++;
+ enemyZombie.winCount++;
+ _triggerCooldown(myZombie);
+ return _targetId;
+ }
+ }
+
+}
+```
+
+### ZombieCore
+
+```text
+pragma solidity ^0.5.12;
+
+import "./zombieMarket.sol";
+import "./zombieFeeding.sol";
+import "./zombieAttack.sol";
+
+contract ZombieCore is ZombieMarket,ZombieFeeding,ZombieAttack {
+
+ string public constant name = "MyCryptoZombie";
+ string public constant symbol = "MCZ";
+
+ function() external payable {
+ }
+
+ function withdraw() external onlyOwner {
+ owner.transfer(address(this).balance);
+ }
+
+ function checkBalance() external view onlyOwner returns(uint) {
+ return address(this).balance;
+ }
+
+}
+```
+
+####
+
diff --git a/qu-kuai-lian-ji-shu-xue-xi/solidity-ru-men-ke-cheng/pre-preparation.md b/qu-kuai-lian-ji-shu-xue-xi/solidity-ru-men-ke-cheng/pre-preparation.md
new file mode 100644
index 0000000..b695b0f
--- /dev/null
+++ b/qu-kuai-lian-ji-shu-xue-xi/solidity-ru-men-ke-cheng/pre-preparation.md
@@ -0,0 +1,118 @@
+# 智能合约知识图谱
+
+## 以太坊智能合约课
+
+### 第02课--智能合约知识图谱
+
+#### 1.IDE开发环境
+
+* Remix IDE 地址:[https://remix.ethereum.org/](https://remix.ethereum.org/)
+
+> 开发,编译,部署
+
+* Ethereum Studio 地址:[https://studio.ethereum.org/](https://studio.ethereum.org/)
+
+> 开发,编译,部署,前端调用
+
+* 其它开发环境:[https://github.com/ConsenSys/ethereum-developer-tools-list\#ides](https://github.com/ConsenSys/ethereum-developer-tools-list#ides)
+* ATOM 地址: [https://atom.io/](https://atom.io/)
+
+> 客户端工具
+
+* Visual Studio Code 地址:[https://marketplace.visualstudio.com/items?itemName=JuanBlanco.solidity](https://marketplace.visualstudio.com/items?itemName=JuanBlanco.solidity)
+
+> 客户端工具,需要安装插件
+
+#### 2.开发者工具
+
+* Truffle 地址:[https://truffleframework.com/](https://truffleframework.com/)
+
+> 部署,测试链,账户钱包
+
+* 其它开发工具:[https://github.com/ConsenSys/ethereum-developer-tools-list\#frameworks](https://github.com/ConsenSys/ethereum-developer-tools-list#frameworks)
+
+#### 3.前端
+
+* web3.js 中文文档:[https://web3.tryblockchain.org/Web3.js-api-refrence.html](https://web3.tryblockchain.org/Web3.js-api-refrence.html)
+* web3.js 英文文档:[https://web3js.readthedocs.io/en/v1.2.3/](https://web3js.readthedocs.io/en/v1.2.3/)
+
+#### 4.库
+
+* OpenZeppelin 地址:[https://openzeppelin.org/](https://openzeppelin.org/)
+
+#### 5.账户钱包
+
+* Metamask 地址:[https://metamask.io/](https://metamask.io/)
+
+> 浏览器插件
+
+* MIST 地址:[https://github.com/ethereum/mist/releases](https://github.com/ethereum/mist/releases)
+
+> 客户端全节点钱包,包含浏览器
+
+* Truffle 地址:[https://truffleframework.com/](https://truffleframework.com/)
+
+> 生成本地钱包
+
+* geth 地址:[https://github.com/ethereum/go-ethereum](https://github.com/ethereum/go-ethereum)
+
+> 搭建节点后生成钱包
+
+* Ganache 地址:[https://www.trufflesuite.com/ganache](https://www.trufflesuite.com/ganache)
+
+> 生成本地钱包,图形化界面
+
+#### 6.部署工具
+
+* Truffle 地址:[https://truffleframework.com/](https://truffleframework.com/)
+
+> 编译和部署智能合约,命令行界面
+
+* Remix 地址:[https://studio.ethereum.org/](https://studio.ethereum.org/)
+
+> 编译和部署智能合约,浏览器界面
+
+#### 7.测试链
+
+* Truffle 地址:[https://truffleframework.com/](https://truffleframework.com/)
+
+> 生成模拟测试链
+
+* Ganache 地址:[https://www.trufflesuite.com/ganache](https://www.trufflesuite.com/ganache)
+
+> 生成模拟测试链,图形化界面
+
+* geth 地址:[https://github.com/ethereum/go-ethereum](https://github.com/ethereum/go-ethereum)
+
+> 通过搭建节点实现连接真正的测试链
+
+#### 8.网络
+
+* 主网
+* Ropsten 水管地址:[https://faucet.ropsten.be/](https://faucet.ropsten.be/)
+* Rinkeby 水管地址:[https://faucet.rinkeby.io/](https://faucet.rinkeby.io/)
+* 私链
+
+#### 9.浏览器
+
+* [https://etherscan.io/](https://etherscan.io/)
+* [https://www.etherchain.org/](https://www.etherchain.org/)
+
+#### 10.节点搭建
+
+* geth 地址:[https://github.com/ethereum/go-ethereum](https://github.com/ethereum/go-ethereum)
+
+> 搭建主链,测试链,私链
+
+* geth 文档地址:[https://learnblockchain.cn/2017/11/29/geth\_cmd\_options/](https://learnblockchain.cn/2017/11/29/geth_cmd_options/)
+
+> geth的命令参数文档
+
+### 图谱
+
+
+
+## 学习结束了,给作者来杯咖啡?
+
+{% page-ref page="../../0lemon/coffee.md" %}
+
diff --git a/qu-kuai-lian-ji-shu-xue-xi/solidity-yu-yan-xue-xi.md b/qu-kuai-lian-ji-shu-xue-xi/solidity-yu-yan-xue-xi.md
new file mode 100644
index 0000000..b4df1ca
--- /dev/null
+++ b/qu-kuai-lian-ji-shu-xue-xi/solidity-yu-yan-xue-xi.md
@@ -0,0 +1,2 @@
+# Solidity语言学习
+
diff --git a/re-dian-zi-xun/jing-cai-huo-dong/README.md b/re-dian-zi-xun/jing-cai-huo-dong/README.md
new file mode 100644
index 0000000..78349ac
--- /dev/null
+++ b/re-dian-zi-xun/jing-cai-huo-dong/README.md
@@ -0,0 +1,2 @@
+# 精彩活动
+
diff --git a/re-dian-zi-xun/turn.md b/re-dian-zi-xun/turn.md
new file mode 100644
index 0000000..a977885
--- /dev/null
+++ b/re-dian-zi-xun/turn.md
@@ -0,0 +1,4 @@
+# 热点+解读
+
+## Updating......
+
diff --git a/re-dian-zi-xun/xue-zhe-tou-gao/README.md b/re-dian-zi-xun/xue-zhe-tou-gao/README.md
new file mode 100644
index 0000000..dc54e03
--- /dev/null
+++ b/re-dian-zi-xun/xue-zhe-tou-gao/README.md
@@ -0,0 +1,2 @@
+# 学者投稿
+
diff --git a/re-dian-zi-xun/xue-zhe-tou-gao/liang-fen-zhong-li-jie-suan-fa-gao-bie-di-tan-shi-sou-suo.md b/re-dian-zi-xun/xue-zhe-tou-gao/liang-fen-zhong-li-jie-suan-fa-gao-bie-di-tan-shi-sou-suo.md
new file mode 100644
index 0000000..e408387
--- /dev/null
+++ b/re-dian-zi-xun/xue-zhe-tou-gao/liang-fen-zhong-li-jie-suan-fa-gao-bie-di-tan-shi-sou-suo.md
@@ -0,0 +1,8 @@
+---
+description: 来自知乎-Chidafy的投稿
+---
+
+# 两分钟理解算法,告别地毯式搜索
+
+视频链接(使用IPFS部署)[https://gateway.pinata.cloud/ipfs/QmeGQDwmwcmLoeGnhpVxQeP97r45g9GF87SGsXnioiHEpg/Chidafy-1.mp4](https://gateway.pinata.cloud/ipfs/QmeGQDwmwcmLoeGnhpVxQeP97r45g9GF87SGsXnioiHEpg/Chidafy-1.mp4)
+
diff --git a/re-dian-zi-xun/xue-zhe-tou-gao/ni-jian-guo-zui-can-de-chao-bi-ren-shi-zen-yang-de.md b/re-dian-zi-xun/xue-zhe-tou-gao/ni-jian-guo-zui-can-de-chao-bi-ren-shi-zen-yang-de.md
new file mode 100644
index 0000000..e572d91
--- /dev/null
+++ b/re-dian-zi-xun/xue-zhe-tou-gao/ni-jian-guo-zui-can-de-chao-bi-ren-shi-zen-yang-de.md
@@ -0,0 +1,55 @@
+---
+description: 来自-知乎金豆子的投稿
+---
+
+# 你见过最惨的炒币人是怎样的?
+
+我有一个朋友,17年买了20万的柚子。然后柚子在2021年不是涨了嘛。小姐姐心想着我要把柚子提出来卖了....然后尴尬的是私钥错了。对,私钥错了。**可能再也没有比买了柚子被套私钥还忘了更惨的了吧。**
+
+据小姐姐说,柚子买完半年以后,她想要登陆钱包时已经发现私钥错了。刚发现那会疯了似的尝试了两个月各种可能性,然后放弃了。
+
+
+
+这波牛市小姐姐还想在尝试一下找回,就找到了我。跟她是在线下聚会认识的。然后先安慰了下小姐姐,还好买的不是比特币/以太坊或者狗狗币,算是一种心理安慰了。于是义务的开始帮小姐姐找回私钥。当然前提是,我只是帮你试一试,不要报太大希望。小姐姐回答:嗯,经历了这么久的折磨和时间,我也想开了,你试试。
+
+eos私钥变态的地方在于,它分大小写。我把原来的这份私钥放在下面,大家感受感受:
+
+
+
+越有挑战的事越能够让我兴奋起来...那段时间差不多每天搞到凌晨4点左右,7点起床又继续。这种状态持续了大概三天左右..终于我还是准备放弃了。于是把想法告诉小姐姐之后,她也坦然的接受了这个结果。
+
+
+
+事情会这样就结束吗?当然不会。
+
+
+放下小姐姐的事情之后,我开始去群里吹水。热心群友看到我消失了几天又出现了,就问我事情办的怎么样。我说,放弃了。**这时候一位不愿意透露姓名的热心群里说:“要不你找下博士试一试。“**
+
+
+
+我就去找了博士。当时感觉大佬说话怎么都是这么亲切的吗?
+
+后面的事情当然也就没什么好说的了。因为私钥找回来了。
+
+
+
+解开过程因为部分原因就不详细展开了,因为展开了普通人也学不会,就算学会了也没有那个设备。不过给我感觉读书多很有用是真的。因为据热心网友爆料,博士是某省高考省状元,正宗三清:本科/硕士和博士都在清华读的。
+
+**给小姑娘的生活增加了一丝丝的彩虹是真的。感受一下姑娘当时的心情吧:**
+
+
+
+**最后总结了几条使用钱包的注意事项:**
+
+1.备份私钥后退出钱包,用备份的私钥登陆验证;确认无误再向钱包转钱
+
+2.退出钱包前,用其他设备登陆。如果报错,退路是能用原设备执行转账
+
+3.不确定收款地址是否正确,先转一笔小额,到账再转大额
+
+4.不要只保存助记词,助记词和私钥各保存一份。私钥比助记词重要。原因如下:在钱包停止运营后,只有助记词可能会导致资产丢失,因为有钱包助记词不兼容。而私钥在钱包停止运营后,资产不会有任何影响,A钱包的私钥在B钱包一样能导入提取资产。
+
+5.离线冷钱包配合观察钱包使用;是目前既兼顾安全又方便的方法。还不会操作的见我之前的文章。或者私聊我注明来意,我发给你图文操作步骤。
+
+6.私钥和助记词丢失不用着急,慢慢来,最好有原文稿,会降低很多工作难度。
+
diff --git a/untitled-2.md b/untitled-2.md
new file mode 100644
index 0000000..0f9f904
--- /dev/null
+++ b/untitled-2.md
@@ -0,0 +1,4 @@
+# Trying to update...
+
+## Updating......
+
diff --git a/yuan-yu-zhou/README.md b/yuan-yu-zhou/README.md
new file mode 100644
index 0000000..723fb20
--- /dev/null
+++ b/yuan-yu-zhou/README.md
@@ -0,0 +1,4 @@
+# 元宇宙
+
+
+
diff --git a/yuan-yu-zhou/gong-hua-yuan-yu-zhou-de-meng-xiang-yu-xian-shi.md b/yuan-yu-zhou/gong-hua-yuan-yu-zhou-de-meng-xiang-yu-xian-shi.md
new file mode 100644
index 0000000..6c3a4ee
--- /dev/null
+++ b/yuan-yu-zhou/gong-hua-yuan-yu-zhou-de-meng-xiang-yu-xian-shi.md
@@ -0,0 +1,27 @@
+---
+description: 部分内容摘自CHAINNEWS-721Land
+---
+
+# 共话元宇宙的梦想与现实
+
+> 万向区块链肖风、721Land创始人Vicky、启明创投VP唐弈等围绕元宇宙跨界、投资及基础设施等相关问题讨论集锦。
+
+21世纪,元宇宙时代正在到来,人类逐渐从物理世界开始向虚拟世界迁徙,现实中的经济、治理及文明等都被数学和数学技术重新定义。打破空间限制,重塑时间概念的元宇宙对人类文明又有哪些新的意义?
+
+## 主题演讲
+
+### 元宇宙:下一代网络平台
+
+中国万向控股有限公司副董事长兼执行董事、上海万向区块链股份公司董事长兼总经理肖峰博士发表了题为《元宇宙:下一代网络平台》的演讲,回顾了数字技术的形成和数字技术带来的商业模式的变化,数字化的转型、迁徙将分为三个阶段:数字孪生、数字原生和虚拟相生。
+
+肖风博士分享了对元宇宙的宏观架构、经济模式、商业模型及基础设施的看法。在元宇宙的经济模式中,他强调,所有的利益相关者都是这个生态系统中的一员,大家是共创者,不管是技术服务提供商、内容服务提供商还是玩家。
+
+## Hello,Metaverse
+
+721Land创始人Vicky带来Helle,Metaverse的主题演讲,她认为元宇宙是现实世界的映射,有自己的世界观、人生观和价值观:
+
+* 元宇宙的世界观:元宇宙的世界并非杂乱无章,其规则可以通过代码实现。
+* 元宇宙的价值观:每个参与者都是元宇宙价值的贡献者,通过优质内容和不断生成的新内容,使资产越来越有价值。
+*
+
+