從比特幣到區塊鏈,再到usdt,再到協議的基礎知識

最近打算探索一下區塊鏈,如果有機會,就自己寫一個usdt的錢包,需要基於Omni與ERC-20兩個鏈的。一下是我整理的一些關於USDT以及區塊鏈的知識,段落。

 

 USDT 的底層協議 叫做 Omni 層協議

 

比特幣協議 -> Omni 層協議 -> USDT

 

Omni 本身也是一條公鏈,你可以在 CoinMarketCap 網站上查到。Omni 沒有自己獨立的數據包,區塊和交易等數據都存放在比特幣的區塊信息中

 

USDT 和 Omni 就相當於 ERC-20 Token 和以太坊,穩定幣的發展之路也就此展開。我們可以發現,基於 Omni 的 USDT 地址和比特幣的地址格式是相同的,Omni 鏈 USDT 的交易確認等待也是和比特幣一樣的

 

穩定幣是每條公鏈生態建設所必須的基礎建設,如USDT

 

Omni 公鏈早已放棄了維護,支持的錢包非常少,轉賬緩慢昂貴,又缺乏擴展性與基礎設施。” 

 

Omni-USDT的地址是以1開頭

ERC20-USDT的地址是以0x開頭

TRC20-USDT的地址是以T開頭

那麼,應該如何選擇?

Omni-USDT的安全性最好,但轉賬速度太慢。要是你有不着急交易的大額訂單,可以優先選擇Omni-USDT。

ERC20-USDT的安全性和轉賬速度居中,適用於數字貨幣市場的頻繁交易。要是你經常做短線交易,可以優先選擇ERC20-USDT。

TRC20-USDT的轉賬速度最快,而且鏈上轉賬無需手續費,但安全性比較低。要是你非常在意交易速度,可以考慮TRC20-USDT,建議小額爲主。

 

代碼即法律,因爲程序寫完了,無論執行多少次都會得到同樣的結果,除非有外界因素的干擾

 

非對稱加密:

爲了能搞明白以太坊錢包的私鑰、公鑰和賬戶地址的概念得先補充點密碼學的基本知識。

 

2.以太坊產生的背景

區塊鏈技術是比特幣的技術基礎,首先由其神祕作者中本聰(Satoshi Nakamoto)在2008年出版的白皮書“比特幣:點對點電子現金系統”中描述。雖然區塊鏈用於更廣泛的用途已經是在原始論文中討論過,直到幾年後,區塊鏈技術才成爲一個通用術語。區塊鏈是一種分佈式計算架構,其中每個網絡節點執行並記錄相同的事務,這些事務被分組爲塊。一次只能添加一個塊,並且每個塊都包含一個數學證明,用於驗證它是否依次跟隨前一個塊。通過這種方式,區塊鏈的“分佈式數據庫”在整個網絡中保持一致。個人用戶與分類帳(交易)的交互由強密碼術保護。維護和驗證網絡的節點受到編碼到協議中的數學強制經濟激勵的激勵。

在比特幣的情況下,分佈式數據庫被設想爲賬戶餘額表,分類賬,交易是比特幣代幣的轉移,以促進個人之間的無信任融資。但隨着比特幣開始引起開發人員和技術人員的更多關注,新的項目開始將比特幣網絡用於除了價值代幣轉移之外的其他目的。其中許多采取“替代硬幣”的形式 - 單獨的區塊鏈與他們自己的加密貨幣,改進了原有的比特幣協議,以增加新的功能或功能。 2013年底,以太坊的發明者Vitalik Buterin提出,一個能夠重新編程以執行任意複雜計算的區塊鏈可以包含這些許多其他項目。

 

2014年,以太坊創始人Vitalik Buterin,Gavin Wood和Jeffrey Wilcke開始研究下一代區塊鏈,該區塊鏈有望實施一個完全無信任的通用智能合約平臺。

 

基於以太坊的錢包開發

錢包分類

是另外一個維度,基於 Geth 節點上層再次開發出來的移動端 App 錢包。根據私鑰存儲的位置可分爲兩類:

中心化私鑰存儲的錢包,比如火幣的錢包;

去中心化錢包,私鑰存儲在用戶端,比如 imtoken 錢包。

 

去中心化錢包 (需要用戶保存私鑰,也就是用戶錢包的密碼)

去中心化錢包不是本次要講的重點,這裏只給大家簡單介紹一下。無論是中心化的錢包或去中心化的錢包,在 App 層面都是很輕量級的,App 內是不會內置一個 Geth 節點,交易的查詢或發送都是通過服務器來進行操作,不同點是交易簽名的私鑰由誰來保管和負責。

去中心化的錢包有個關鍵詞:助記詞。可以用下面的表達式來形容助記詞的作用:

私鑰 = 助記詞 = keystore+密碼

通過上面的公式可以看出助記詞的重要作用,也是去中心錢包功能的一個亮點。當在這類錢包中創建一個賬戶之後,錢包會根據生成的私鑰文件,生成一套助記詞,可爲英文可爲中文,通過助記詞可以反向計算出 keystore + 密碼。助記詞由用戶手抄存放在安全的地方,當進行交易時,輸入助記詞對交易進行簽名,發送交易。當助記詞丟失,也就意味着失去了私鑰,而錢包一般不會保存用戶的私鑰信息,資產將永久丟失。

去中心化錢包的好處是不用擔心平臺從中作梗,不用擔心平臺被黑客攻擊而導致資產損失,但要求個人有一定的私鑰保存能力。

 

中心錢包

所謂中心化錢包就是將所有的私鑰文件存儲在錢包服務商的服務器內,由服務商來保管這些私鑰文件,也就是說資產屬於你,但私鑰不由你保管。這樣做的好處是用戶根本不用記住私鑰,只用記住在平臺所開設的賬戶、登錄密碼和支付密碼即可。即使忘記了密碼,還是可以通過平臺提供的忘記密碼進行找回,當然,這樣就不具有去中心化錢包的優點了。

 

是否按照節點分類:

依託錢包節點方式開發錢包,但這種方式的缺點就keystore生成存放到區塊的節點上;

非確定性以太坊錢包開發,實現本地存儲私鑰,但每個賬戶對應一個私鑰,私鑰的管理比較難;

分層確定性以太坊錢包開發流程,實現本地存儲,實現多鏈多賬戶和私鑰關聯性錢包。

 

錢包的核心功能

錢包對外呈現可能有不同的功能,充值、提現、轉賬等,但從本質上來說只有一個功能,那就是轉賬。區塊鏈本質上就是一個賬本,記錄着一筆筆交易,錢包當然離不開這個本質。

充值是錢包的外部賬戶向錢包的地址轉賬;

提現是錢包的賬戶向錢包之外的地址轉賬;

轉賬功能包括錢包內地址互轉和向錢包外地址轉賬;

在這個過程當中也對應着錢包賬戶資金的增加與減少

 

Python 寫以太坊錢包

以太坊節點

以太坊協議定義了一種方法,用於人們通過網絡與智能合約相互作用。爲了獲得關於合約、賬戶餘額和新交易狀態等最新的信息,協議需要與網絡上的節點進行連接。這些節點不斷地共享最新的數據。

 

來看看本地VS託管節點的簡單含義

本地節點:本地節點由你自己啓動並控制。它的安全和你的環境安全性一樣,在於你自身。當你在機器上運行geth或parity時,你就是在運行本地節點。

 

託管節點:託管節點由其他人控制。當連接到Infura時,連接到託管節點。

 

本地節點比託管節點有更好的安全性。惡意託管節點可以給你提供不正確的信息,用IP地址記錄你發送的交易,或者只是脫機運行。不正確的信息會引起各種各樣的問題,甚至包括資產流失。

 

另一方面,在本地節點上,你的機器正在逐個驗證網絡上的所有交易,並提供最新狀態。不幸的是,這意味着使用大量的磁盤空間,有時顯著的帶寬和計算。另外,下載完整的區塊鏈歷史記錄有很大的前期成本。

 

如果希望讓節點管理密鑰(流行的選項),則必須使用本地節點。注意,即使在自己的機器上運行一個節點,你仍然要信任節點軟件,並在該節點上創建的任何帳戶。

 

 

節點開發所用到的技術

Web3.Py是用於連接這些節點的Python庫。它不在內部運行它自己的節點。

 

測試鏈接以太坊節點:

/root/node-v10.13.0-linux-x64/bin/ganache-cli

 

 

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