Skip to content

Solidity 筆記:區塊鏈

最近在學習 Solidity ,所以就順手寫下這些筆記。Solidity 是一種合約導向的程式語言,用來撰寫智能合約。所以在學習之前,要先來補一下區塊鏈的相關背景知識。

區塊鏈

維基百科上面說,區塊鏈(英語:blockchain 或 block chain)是藉由密碼學串接並保護內容的串連文字記錄(又稱區塊)。因此,『區塊鏈』有幾個有趣的特性:

去中心化

區塊鏈的每個區塊會被複製到在散落世界的各個節點上,這些節點上都有副本。不像是法幣,有一個中心組織在做管理,可能是銀行,可能是政府。所以法幣有可能今天中國說了算、美國說了算。所以去中心化的話,今天就沒有一個人有權限去竄改別人的紀錄,也正因為如此,這也讓區塊鏈變得公開透明。

匿名性

而這些節點都使用一組 『數字 + 英文』作為代稱,所以這些節點只要你不說我不說,沒人知道你這筆交易的主人是誰。

不可篡改

每一個區塊都包含了前一個區塊的加密雜湊、相應時間戳記以及交易資料,這樣的設計使得每個區塊內容都很難去被篡改。但是也是有一種攻擊手法,可以去做竄改,這個可以之後再來聊聊。

一制性

在分散式系統中,其中一個最重要的概念就是「一致性」。 我們剛剛有說到這些節點上都有副本,他會去儲存相同且順序一致的資料,同時確保每個使用者的在讀取操作的時候都是最新的資訊。 所以有個很重要的概念就是「共識演算法」,區塊鏈透過這個來達成「一致性」。

可追朔

最一開始的地方,有提到我們串接並保護串連區塊,成為區塊鏈,也就是今天你可以去翻這個帳本,上面都會很清楚的紀錄每筆交易從拿個位址到哪個位址。

虛擬貨幣

區塊鏈這玩意,是一個名為中本聰的人,在2008年發布了《比特幣白皮書》,書中中提出「區塊鏈」概念,並在 2009 年的時候,創立了比特幣網路,開發出第一個區塊。而這些內容、甚至程式,都是公開透明的被放到網路上。所以後來就出現了很多種各式各樣的貨幣。

競爭幣

反正這些東西都是開源的,我就拿他程式碼改一改放上去發行,這感覺就有點像是比特幣的競爭對手,所以我們又稱之為『競爭幣』。不過這些幣,也都只是改一改比特幣的程式碼而已,也沒有什麼特別的,或是想解決什麼事情,所以就慢慢沒落了。

少數可能只有 Litecoin 比較特別吧!因為當初比特幣挖礦是用 SHA256 這個演算法去挖,然後大家就很容易開發出礦機,得礦機者得天下!這些礦機資源就集中在某些人手上,這樣就會違反當初大家說好的『去中心化』了啊

Litecoin 就想說,不然我們改良一下這個比特幣的演算法吧!我們換個 hash 方法、換成 script ,你們想挖礦也挖不到,這又可以去中心化啦!不過科技進步很快,有心想挖礦的,還是會研發出晶片就是了,不過至少他有想解決一些問題,所以 Litecoin 也就長壽了些。再來就是,他跟比特幣走很近,所以很多東西都是 Litecoin 先更新看看沒問題,再來讓比特幣去更新,所以這個競爭幣可以活下來。

至於狗狗幣,說真的我也看沒有懂….

穩定幣

後來又出現了穩定幣,穩定幣會藉由穩定資產的支撐,來維持自身的價值。以 USDT 來說,每一個 USDT,背後都會儲存 1 個美元的法幣來擔保,所以可以一直維持相當於 1 美元的價格(但也有例外)。

目前,如果要在法幣跟加密貨幣之間做兌換的話,通常這個費用和時間成本也都比較高,所以不少加密貨幣的投資者也會以「穩定幣」作為一種交易的媒介、避險的資產。

以太坊

後來有出現了新的貨幣,以太幣。這個很有趣,因為他看到大家都在發幣,但是你發幣,就要建立自己的區塊鏈。他的設計理念就是:為什麼我不能建立一個鏈,然後大家可以在我的這個鏈上去輕鬆的發行貨幣,進而延伸之後我要學的智能合約,還有 Solidity 這種語言。

Published in區塊鏈

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *