iT邦幫忙

2021 iThome 鐵人賽

DAY 30
1
Security

學密碼學也猜不到你的手機密碼系列 第 30

DAY 30- NFT & 結語

最後一篇,想說講一下最近很夯的NFT,做為一個結尾。

NFT

Non-Fungible Token,非同質化代幣。
我們先來看一下這個「同質化」是什麼意思。
我們現在手裡拿的貨幣就是一種同質化的物品,你手裡拿的100塊和我手裡拿的100塊都是同質的,擁有同樣的價值。
所以如果我用100塊跟你換100塊,基本上是沒差的,因為就算過了100年,這兩張紙的價值都會是相同的。

而NFT的「非同質化」就暗示著他是獨一無二的,
我們身邊的東西幾乎都是非同質化的,因為他們都稍微有些不同,因此每個東西都有其價值,你可以因為他的不同而訂不同的價錢。
講比較典型的例子就是畫、雕像、藝術品。
蒙娜麗莎的微笑、亞維儂的少女、大衛像,他們都是非同質化的,世界上就只有一份真品。
因為這樣的稀缺性,所以他可以訂很高的價錢。
有了價錢,就會有買賣,有了買賣自然就會有擁有者。

NFT就是數位版的這些東西。

我們如何真正擁有一個東西?

這個問題有點哲學哈哈哈,不過我們確實要探討如何擁有一個東西。
實體物品,我們最基本大概就只要拿著他就可以說這東西是我的,再更嚴謹一點,
一個買賣契約。
你可能需要有一張紙、法律文件,來證明這個東西確實為你所擁有。
換個方向來思考,當大部分的人都相信那張紙上面的內容的時候,這個東西才真正是你的。

所以我們要怎麼讓大家知道一個數位資產是你的,
你擁有一張圖片、你擁有一段音樂、你擁有一篇貼文、一個畫面、一個遊戲角色?
如果這件事情寫在區塊鏈上呢?

區塊鏈上面就寫著某某某,擁有這張照片,那麼誰也不能反駁吧。

NFT 就是這樣運作的,賣家把這個檔案的一小部分(或是網址)放在網路上賣,
如果賣掉就把他寫再區塊鏈交易資訊中,說明這個數位資產確實就是屬於買家。
而至於怎麼賣就要牽扯到乙太坊上的一個功能:智能合約。

智能合約

智能合約是乙太坊衍伸出的功能,其實就是把一串程式碼丟到區塊鏈上。
藉由智能合約,可以做到「如果 某件事發生 就 怎麼樣」這件事,
也就造成你可以在合約上寫說,如果這個人給我20ETH,我就把資產轉到他的地址底下。
因此智能合約實現了NFT的買賣。

當然智能合約是可以自己寫的,不過通常如果你沒有程式語言的能力的話,
許多平台都已經將這些程式碼寫好作為平台的服務了,你只需要提供想賣的東西給他們就好了。
另外一件事情是,NFT的創作者通常在作品在二級市場上被轉賣時可以獲得一定比例的報酬,
這部分稱為權利金制度。

如果你有興趣的話可以上Opensea 上看有甚麼東西可以買,或是看看這篇文章會告訴你哪裡有賣。
那如果你更有興趣的話,請拉到此頁最底下,我們有個團隊成員專門在講NFT。

回顧

鐵人30天也告一個階段了,我想還是必須回顧一下的吧!
從最一開始簡介密碼學在幹嘛,然後區分了編碼(utf-8、base64)和加密的差別

教室就是一個廣大的網路空間,訊息從你手裡傳到目標手裡會經過很多問題。首先,為了防止他人偷窺,我們得為訊息加密,這是最重要的事情。接著,為了防止駭客竄改你所傳的訊息,收件者需要做訊息鑑別的動作,好確認這封確實是你寫得而且沒有被竄改過。最後,既然你希望收到訊息的人讀得懂這篇訊息,那密鑰的傳遞或協議就很重要了。

我們基本介紹了訊息的加密方式,分為對稱式密碼學、公鑰密碼學。
而對稱式密碼裡面分成串流密碼(OTP、RC4)和區塊密碼(AES、DES)作介紹。
公鑰密碼學我們介紹了RSA、ECC以及密鑰的傳遞方式DHKE、ECDH以及協議ElGamel。

而後為了要介紹如何做訊息鑑別的動作,於是我們先介紹了如何將一大串文字變成短一點,
也就是HASH,接著便是數位簽章DSA、ECDSA,以及訊息鑑別碼MAC。

再來是網站的應用方面,我們介紹了CA,介紹憑證為甚麼被需要、憑證要在哪裡看。
以及網站的加密協定HTTPS、SSL、TLS。

最後一個部分即是公鑰密碼學、HASH的終極應用:區塊鏈。
我們知道區塊鏈的功能以及其背後的密碼學原理,藉由前20幾天的密碼學基礎知識,
可以對區塊鏈有最完整的認識。
而最後,區塊鏈中使用到密碼學的地址。
由BIP 39 的助記詞生成出 BIP32 分層確定式錢包的種子,再由一個種子生成出無限多的公私鑰密碼對、生成出相對應的地址。
最後用BIP44規範出地址在HD wallet 裡面該屬於哪一層。
以及此篇上面所提到的區塊鏈應用NFT。

結語

我常覺得自己花蠻多時間在這上面的,一篇平均花個3-5個小時都有可能,可是寫出來的東西好像都蠻少的,我也不知道是怎麼回事。

在公開的地方發文是一種蠻好的學習方式,既然是公開的,就要給一個交代,
所以正確性當然不能比自己學習來的低,所以在正確性方面也花我蠻多時間的。
另一方面,既然是一篇「文章」,整個文章的架構就很重要,要先說這個,還是先說那個,
什麼可以講什麼不能講,都要做取捨。
我覺得可能我自己才會是學到最多東西的人,因為蒐集資料的過程有好多東西被我看完之後捨棄掉,
所以這部分就很可惜的沒有寫在文章裡頭。
所以好像留了不少坑沒有補,這部分I am so sorry。

有一件事情我一直很困擾,就是電腦的選字有時候真的笨的我很頭痛。
尤其有些詞就是要一直打到,
公「要」、私「要」、區塊「鍊」,
你在這三十天裡面看到的所有「公鑰、私鑰、區塊鏈」都是我手動選字的。
這可能也花了我不少時間(開玩笑的)。

DAY25-DAY29 大概是我最滿意的部分,這幾篇文章幾乎都是從零開始學起,
所以寫的比較詳細,甚至還自己拿PPT來作圖。
效果還蠻好的,除了自己可以學得很詳細之外、印象野蠻深刻的。
而區塊鏈的知識本來就是我學密碼學的初衷,所以我覺得最後引回來講這方面還不錯。

最後要感謝大家有耐心地讀到這裡,或許我的文章對你有幫助,那對我來說會是很棒的事情;
如果沒有也沒關係,至少你是因為看到標題有興趣才點進來的吧。

以後還是會繼續以寫文章的方式學習,或許可以寫一個Fintech的系列也不一定(沒有任何保證的)。

那麼,
掰掰!


再次推薦團隊其他人的文章
【團隊成員】

Name 標題 Tags
ALu NFT 網站與 MetaMask 連動的 Owners 登入系統 BlockChain,Modern Web
Cooksuhr 1995到2021,php到react網站開發歷程 Modern Web
ExcitedMail 杰哥的考研紀錄 Computer Science
foodchain 三十天內用C++寫出一個小遊戲 Software Development
momojn C++ 三十天學習紀錄 Software Development
yywoli 從資料庫到資料分析視覺化 Data Analysis

https://ithelp.ithome.com.tw/upload/images/20211010/20140112jNXGX1Ruzo.jpg


上一篇
DAY 29- BIP39、BIP44
系列文
學密碼學也猜不到你的手機密碼30

尚未有邦友留言

立即登入留言