TxStreet:新手輕鬆學 Blockchain(區塊鏈)

TxStreet:新手輕鬆學 Blockchain(區塊鏈)

區塊鏈世界艱澀難懂嗎?先從有趣的應用來認識它吧!

TxStreet 這個網頁可以說是加密貨幣世界的股市大富翁Tx 表示 Transaction(交易),它的特色是呈現幾乎真實的市場交易環境,用搭車、視覺化的方式,將加密貨幣交易的狀況生動地展示運作過程。

這裡我們不看較艱深的技術面、運作原理和專有名詞,需要做的就是進到 TxStreet 頁面點選每一個看到的圖案、元件。

目錄

看圖說故事

image

  1. 公車車廂:就是區塊鍊的 Block(區塊),點擊車廂可以查看到區塊當中的:

    • 交易列表
    • Total Gas Fee
    • Hash
  2. 卡通人物:區塊鏈的交易,點擊它還會有交易明細

  3. 卡通人物大小:該筆交易的 Size

  4. 左邊房子:交易類型 / 智能合約

  5. 中間上方告示牌:時間、手續費、Gas Limit 等多項自訂資訊

  6. 頂部硬幣名稱:點擊可以更改街道(BTC / ETH 等多樣幣別市場)

  7. 上公車順序:如果 Gas Fee(手續費) 給得夠高,當筆交易(卡通人物) 就能上第一台車(打包到區塊);若手續費太低則必須排隊等候,依 Gas Fee 排定上車的優先級順序。

  8. 排隊上車的交易隊列:礦工從交易隊列(排隊)選擇適合的交易(卡通人物),再放到自己的區塊中(公車)進行驗證、打包。可以看到當公車停靠的時候很多卡通人物上公車,然後等車滿了之後馬上開走,這樣一個區塊就打包完成了。打包過程會找適合的隨機數,對礦工來說就是挖礦成功了。

  9. 如果切換到比特幣市場,可以發現兩個地方:

    • 每個公車後方拖著一節小車廂 ​
    • Lightning Network(比特幣閃電網絡)房子 ​

公車後方拖著一節小車廂,把滑鼠 Hover 過去,顯示問號還貼心地跟你解釋這是比特幣的擴容方案 - SegWit(Segregated Witness , 隔離見證) 。因為隔離見證可以把交易和簽章分開,讓單位區塊中容納更多交易筆數,從而間接實現了擴容。

在區塊鏈的三角悖論當中,是指在一條區塊鏈公鏈上,無法同時滿足「去中心化」、「可擴展性」、「安全性」這三點。現今的區塊鏈都只能滿足其中兩點並捨去第三點。而擴容方案就是要解決 Scalability(可擴展性),進而提升 Efficeiency(交易效率) 。這部分有時間再來仔細做個分享~~

再來是 Lightning Network 是比特幣在區塊鏈運行的第二層支付解決方案,用來解決區塊鏈的 Scalability(可擴展性)和 Efficeiency(交易效率)問題。

Block(區塊) 和 Chain(鏈) 是什麼?

image

-Block(區塊)

上面我們把公車車廂比喻成區塊鏈當中的 Block(區塊),而這個 Block 當中包含 「本區塊的交易紀錄、前一個區塊的 Digital Signature(數位簽章) 和 Nonce(隨機數字)」,確保數據的完整性和不可篡改性,同時也確保了交易的真實性和可信度。

數位簽章這個加密技術應用在區塊鏈的交易驗證和身份認證。數位簽章使用公鑰和私鑰的組合,資料的發送者使用私鑰對資料進行加密簽名,接收者使用相應的公鑰對簽名進行驗證。

隨機數字絕對是區塊鏈「安全加密」中最重要的元素之一,隨機數是只能使用一次的值或數字,透過 Hash(雜湊) 來實踐隨機數。不過有個小知識一定要知道,Hash(雜湊)本身不是加密,只是它能夠將不固定長度的 input(輸入) 計算成固定長度的 Hash Value(雜湊值) 輸出,而且這個雜湊值沒辦法反推出原來的明文輸入所以很適合用來做加密。在區跨鏈中隨機數會改變數據的雜湊值,它必須確保 Block(區塊) 的雜湊值是獨一無二的(因為它只會使用一次),並阻止非法行為來篡改區塊鏈。

-Block Height(區塊高度)&Genesis Block(創世區塊)

Block Height(區塊高度) 是指區塊的編號,通常會用塊高來稱呼,而 Genesis Block(創世區塊) 顧名思義就是區塊鏈上第一個產生的區塊,這裡可以想像成第一節車廂。

另外要特別留意,創世區塊的區塊高度是 0 而不是 1!區塊高度的多寡取決於在特定時期內有多少人試圖進行交易,以及其中有多少交易已經過驗證,通常區塊越高,完成的交易筆數就越多。

順便補充一下,我們再查詢某個區塊交易資訊,除了透過它的 Hash, 也可以透過塊高進行查詢,這裡我從區塊鏈瀏覽器 - Etherscan 隨便找一個合約並查詢交易,當中的灰色標籤 「4 Block Confirmations」 表示這個區塊之後已經連接了 3 個區塊(包含本區塊共有 4 個區塊已經確認)。

這裡再從交易明細當中的 Block 點擊該數字,例如目前是 18061599, 而這裡我們在 URL 網址把 數字改成 0 就立即查詢到它的創世區塊

不同鏈的出塊時間都不一樣,以太坊是 10s ~ 15s 產生一個區塊;而比特幣是 600s 才產生一個區塊。區塊鏈是一個分散式的網絡,彼此是透過節點來進行訊息的傳遞以及合約操作。

-Chain(鏈)

在區塊鏈中每個 Block(區塊) 的內容都包含了上一個區塊的雜湊值,這是為了確保區塊之間的連接性和完整性,所以當一個新的區塊被創建時,它的內容包含了前一個區塊的雜湊值,也就是新的區塊「連接」到前一個區塊上就形成了「鏈」。

因為區塊鏈使用 SHA-256(Secure Hash Algorithm 256-bit) 進行雜湊計算來提高安全性,所以每個區塊都含有上一個區塊的 SHA-256 函數值,因此只要任一個區塊的資料被篡改,SHA-256 這個函示的雜湊值就會出現錯誤,這筆交易資料就不被認可。

區塊鏈上的每個「帳戶」都可以進行「交易」,這些交易會構成一個區塊,而多個區塊透過 Merkle tree(默克樹數據結構) 的方式連接起來就構成了「區塊鏈」。(有機會再補充 Merkle tree)

再回來看 TxStreet 這個遊戲,我們可以理解到每次新的交易產生時,這筆交易都會被打包成一個新的區塊並添加到鏈的最後一個車廂成為區塊鏈的其中一個區塊。

學習路線規劃

今天你我都在使用的 Facebook, Line 這些應用服務都只是 OSI 7 Layer(Open System Interconnection Model) 當中的 Application Layer(應用層),但身處在互聯網產業的我們最好還是要懂底層的架構,所以我會從底層到具體的應用層面來擬定大方向。

以下是我的學習方式和路線規劃,可以從 Computer Science 的角度來看區塊鏈,它底層還是有 OS, 基礎設施當中有網際網路協議和密碼學,再來是智能合約和近幾年大蓬勃發展的 DApp, 而有時間的話可以寫一個 DApp(Mobile APP, Web, Desktop) 不僅僅是從無到有打造一個應用服務,我覺得最重要的是感受開發者在這過程中會遇到的問題,還有未來若有機會踏入 Web3 產業也比較清楚知道整個 Work Flow.

image

寫在最後

這篇文章可能提到很多名詞,對於初入坑的新手可能會有點模糊,但是別急,這裡我們是從一個有趣的應用來看待加密貨幣市場的交易是如何形成的。

之所以想透過這種小遊戲的「應用層」來探討區塊鏈、加密貨幣,是因為身邊許多朋友看到密碼學、Merkle tree(默克樹數據結構)、Hash(雜湊演算法) 等這類 Hardcore 技術就打了退堂鼓,所以想透過 TxStreet 以公車為區塊、乘客為交易,再用生動可愛的動畫描繪出區塊鏈上的即時(Real Time) 交易,讓每個人都能輕鬆學區塊鏈 / 加密貨幣。

不過有一個很基本的知識一定要知道,Blockchain(區塊鏈) 和 Cryptocurrency(加密貨幣) 並不是一個綁定關係,區塊鏈只是一個底層技術、一個去中心化的分散式資料庫系統,加密貨幣就只是透過區塊鏈技術產生的應用案例,近幾年區塊鏈技術已經應用在各個產業,像是學歷證明溯源等,之所以全球各地有那麼多金融機關、新創公司都採用區塊鏈技術是因為它和傳統的交易方式相比,能降低交易成本、提高投資效率和流動性,而且交易過程更加透明 安全先打個問號,後續的三角悖論再另外和大家分享)

上面的 學習路線規劃只是我個人的方式,但不管今天你是從哪個環節切入去學習,都還是要掌握一些必要概念知識,以下就是首要入門的關鍵字希望對你有所幫助:

  • 區塊、鏈、Block Height(塊高)、區塊鏈、區塊時間、帳戶、交易
  • 共識機制、智能合約、以太坊網絡、DApp

現在你已經知道,實際上我們每個投資者(使用者 / 用戶)進行交易要呼叫智能合約(房子),這時就會產生一個卡通人物,而這個過程就是加密貨幣市場中的交易

Ref

comments powered by Disqus