note

可以上https://andersbrownworth.com/blockchain/看

Geth的工具可以自己做幣

SHA256 Hash –> 雜湊算法,用在資料加密

虛擬貨幣概念

使用區塊練技術

  1. nonce 是挖礦的主要填數字的地方,尋找前導0,0越多越難算
  2. nonce出來的hash值要跟區塊(block)的hash一樣
  3. hash每個值對應到的會一樣,很多的nonce可以對應到不同的前導0

每個找到的區塊都放在自己的硬碟裡面,區塊和區塊的連結用雜湊值(每個區塊產生的雜湊都不一樣),找到nonce之後廣播出去,給所有區塊,每個區塊紀錄上一次挖到的nonce(第一挖到nonce(2040505),產生hash值,紀錄上次prev(000…..)),第二挖到nonce(10212),紀錄上次prev((hash01),第三挖到nonce(242357),紀錄上次prev(hash02)),形成一個鏈結

區塊練是 peer to peer 的架構,挖到幣之後,要廣播讓大家知道,幣才會發下來,系統會檢查挖到幣的人的區塊鏈是不是最長的,是不是正確的(鏈結是不是第一的接第二個….),是不是造假(多數決,看其他人的區塊雜湊值有沒有跟你一樣)

去中心化的交易方式: public key / private key,要交易需要自己的public key、private key,別人的public key,

可以自己創建一個private key(錢包的錢要用這個開),每一筆交易存在一個區塊裡(不能超過4MB)

區塊後面比較弱,如果改了第2個區塊,2~n個區塊都要改

區塊鍊都是存在硬碟裡,透過peer互相驗證鍊結,如果只是要交易,不用存區塊,只要用public key和private key就可以紀錄再區塊裡面了,但如果是礦工,就要下載全部的區塊,才可以開始挖礦,挖到再驗證…..

挖礦機加上SHA會快很多,可以把指令寫成電路,會快很多,可以再用平行去加速

JSON.stringfy() ; 把JSON改成字串

RSA加密演算法

非對稱演算法 (e 是公鑰, d 是私鑰),使用質數去做加密,數位簽章就是用類似的技術

c = n**e mod N --> 別人加密訊息

n = c**d mod N  --> 自己解密訊息