區塊鏈入門教程之從比特幣到以太訪再到智能合約從架構概念到應用實戰(DAPP)(一、介紹)

區塊鏈入門教程之從比特幣到以太訪再到智能合約從架構概念到應用實戰(DAPP)(一、介紹)

作者: AlexTan

CSDN: http://blog.csdn.net/alextan_

Github: https://github.com/AlexTan-b-z

e-mail: [email protected]

前言

(ps:這是本博主撰寫的第二部系列作品,第一部是寫的java入門教程,受到了不少讀者的喜歡,如果你也喜歡的話,歡迎關注喲!)

本教程主要面向區塊鏈新手,用通俗易懂的方式講解區塊鏈技術。

博主密集學習了快半年的區塊鏈技術吧,看了不少相關書籍,也看了不少相關技術博文、文章、收費視頻等等,不過書講得好的基本上微乎其微,博客文章呢又太分散,講得稍微系統一點的就得收費了(博主也是購買了的),但是不管收費的還是不收費的,還是不夠詳細、系統,因此,在這裏博主本着以撰寫一篇詳細而又系統,讓一般稍懂技術的朋友們也能看懂的教程爲目的,撰寫這篇博客。希望自己能爲整個區塊鏈社區貢獻出自己的一點綿薄之力,歡迎大家提出建議,互相學習!在這裏強烈推薦精通比特幣這本書,區塊鏈的技術都來源於此。

在寫這篇博客之前,先說說自己學習區塊鏈技術時的感受吧。在我最開始看區塊鏈相關技術書籍時,越看心裏越澎湃,因爲區塊鏈技術在於互聯網技術界真的算是一場技術革命,顛覆了以往所有的程序設計思想,以往的不管是C/S端還是B/S端都離不開中心化的服務器中心,所以纔有前段時間facebook信息泄露的事件。說說發生在自己身邊的一個實例吧,前段時間一個遊戲廣告商的推銷人員加了我的微信,加我的時候發的備註還發了我的姓名,後來我問她怎麼知道我的姓名的時候,她直接給我回復說:“這在現在很正常的,平臺互換資料是常有的事情。” 這真的很是讓我感到惶恐!其實以前我主要也是做爬蟲、機器學習方面的,我深知信息販賣的泛濫。在互聯網的世界裏,我感到自己在互聯網的一舉一動都是被監控着的,都是透明的,相信不少人也和我有同樣的感受。有的場合需要數據、需要信息,比如說淘寶,你買東西的習慣,系統知道你的習慣後會根據你的習慣給你推薦商品;但有的數據你應該是不想讓別人知道的,比如說你的詳細信息,你和某某的聊天記錄等等,你想象一下別人(中心化的平臺)拿着你的數據到處販賣,甚至用機器學習的算法做各種分析,你是什麼樣的一個人、你有哪些習慣、喜歡幹什麼、不喜歡幹什麼、你的個人詳細信息、你的人脈圈、交際圈等等都被別人平臺一清二楚,那是多麼恐怖!

想要從技術上解決這個問題,這在以前的技術裏是幾乎不可能的,直到區塊鏈的出現。當然,區塊鏈所解決的問題遠遠不止這些,比如說系統的安全性、如何實現不通過第三方而達成信任的機制等等。其中的去中心化也不是必要的,其實區塊鏈也不一定非要去中心化而已,去中心化也只是其中的一個小點而已。再比如說生活中常見的例子:爲什麼在技術這麼發達的時代,公司、部門等還是用的傳統方式來簽名(蓋章)呢?你是否曾經有過爲了蓋章,到處跑,到處走,甚至運氣不好時遇到心情不好的人還要看別人的臉色,拼命說好話的經歷?爲什麼就不用信息化的方式來解決問題呢? 其最重要的原因,還是因爲這些文件要求絕對的私密性,不可僞造性,其實,區塊鏈技術可以很好的解決這個問題。

這裏關於區塊鏈的應用就不一一舉例了,其具體應用場景區塊鏈技術指南這本書裏有詳細說明。我覺得區塊鏈最重要的是把所有用戶都連接在了一起,不再分客戶端服務端,整個系統是由整個人類社會來共同維持,而不是由某個組織機構來控制整個系統。說不定在未來的某一天,所有的硬件資源都能聯繫結合起來,形成一個整個人類社會共同維持的系統,同時也可以充分利用一些閒置的硬件資源,最大限度地促進人類計算機行業的發展,。當然,也有人說區塊鏈是泡沫,假風口,其實我覺得現在好多人都炒區塊鏈,都給炒壞了,好多都是把區塊鏈當做一個營銷手段(其實就是打着區塊鏈的幌子做空氣幣圈錢),並沒有真正發貨這個技術應有的作用。不管怎樣,我相信這門技術一定會是未來,雖然它現在也有一定的缺陷,但它帶來了一種新思想,且確確實實解決了很多以前不能解決的問題,技術都是隨着時間慢慢發展的嘛,就像當初互聯網剛誕生時一樣,誰能想到發展成如今這樣呢?

最近區塊鏈很火熱,但是在技術上來講,網上相關的優質文章太少太少,博主看到好多人寫教學博客都是以培訓收費爲目的。首先聲明:本博客的文章完全是以技術分享爲目的,希望自己也能爲整個社區,爲區塊鏈技術貢獻出自己的一點綿薄之力,大家共同一起學習。當然,如果有好心的大哥大姐們願意贊助小弟喝點茶,小弟還是非常開心的:

BTC:


36Q4ivp2bJer9fUQ6uyj4a4yLuTpp28D1T

ETH:


0x786fda245ff497ce18e53618369a3e730a18fc1b

ENS: alextan.eth

好了,廢話不多說,我們開始吧!首先,本文的內容來自於博主看了大量相關書籍、文章、技術白皮書、文檔、視頻而總結得出的,如有問題,歡迎大家留言討論。

講解思路

本文將從最基本的區塊鏈(比特幣) 架構\概念 講起,同時串入以太訪架構,最後再通過具體實例,好讓讀者更深層次的理解以太訪是如何運作的。最終達到能讓讀者在理解區塊鏈技術、理解以太訪架構的情況下,個人獨立開發DAPP的能力。

本文面向的讀者:具有一定的編程經驗的技術人員。

可能有人會問,爲什麼要從 架構\概念 講起,不直接講解dapp的開發。如果是隻是dapp的開發的話,只寫智能合約,相信很多人也已經看過不少寫智能合約的文檔,會發現要是隻是寫一個dapp,其實很簡單,現在也有很多相關教程,要是隻是發一個合約幣的話,幾分鐘就能搞定,要說學習的話也花不了一週的時間,就能寫基本的合約代碼。但是,如果只是寫合約話,你能真正理解區塊鏈技術嗎?你知道合約怎麼和區塊鏈交互的嗎? 那是不可能的。

講解目錄

  1. 比特幣架構及相關概念

    1. 加密算法

      1. 哈希(hash)算法

      2. SHA256

      3. 非對稱性加密算法

      4. 交易

      5. 數字簽名

    2. 區塊

      1. 區塊結構

      2. 區塊頭

      3. Merkle Tree

    3. 挖礦和共識

      1. 去中心化共識

      2. 挖礦

      3. 校驗區塊

      4. 共識攻擊

  2. 以太訪介紹、架構、相關概念、及其設計原理:

    1. 以太訪是什麼?

    2. 以太訪虛擬機(EVM)

    3. 智能合約

    4. 賬戶

      1. 賬戶狀態

      2. 消息和交易

      3. 以太坊狀態轉換函數

    5. (手續)gas費

      1. 以太訪中爲什麼要有Gas

      2. gas與以太幣的換算

      3. gasLimit

      4. gas費的作用

    6. 私有鏈、聯盟鏈、公有鏈

    7. 以太訪挖礦算法

      1. Dagger Hashimoto

      2. Hashimoto算法

      3. Dagger算法

      4. Memory-Hard Function

      5. 兩個問題的研究

      6. Dagger Hashimoto算法

      7. 挖礦補充

      8. DAG

      9. epoch

      10. Ethash

    8. RLP

    9. 以太訪區塊結構

      1. 以太訪的區塊頭

      2. 日誌

      3. Uncle塊(過時區塊)的獎勵

      4. 區塊難度

    10. 區塊鏈和挖礦

  3. 以太訪、web3、智能合約三者之間的關係及智能合約基本講解

    1. 以太訪、web3、智能合約

      1. web3

    2. 智能合約,Solidity的特性介紹

      1. Solidity的調用機制

      2. 調用函數的gas費

      3. 成員類型

      4. Solidity函數中view,constant,pure,payable的使用

      5. Solidity的數據類型

        1. 值類型(Value Type)

          1. 布爾類型(Booleans)

          2. 整型(Integers)

          3. 定長浮點型(Fixed Point Numbers)

          4. 定長字節數組(Fixed-size byte arrays)

          5. 變長(動態分配大小)字節數組(Dynamically-sized byte array)

          6. 有理數和整型常量(Rational and Integer Literals)

          7. 字符串常量

          8. 十六進制常量(Hexadecimal literals)

          9. 枚舉(Enums)

        2. 引用類型

        3. 關於棧(stack)

        4. 不同存儲的消耗(gas消耗)

  4. 盡請期待...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章