去中心化應用程序或DApps需要特殊的系統設計才能實現高安全性和可靠性。在本文中,我將介紹如何為去中心化應用程序正確設計和實現后端和智能合同的幾個主要原則,以以太坊為主要示例,盡管其中大部分原則也適用于EOS,Tron和其他去中心化數據平臺。
如何在沒有安全問題的情況下在后端存儲私鑰。如何正確設計智能合約以及decentralize的內容。
去中心化和半集中式應用程序架構示例。
如何處理網絡負載和故障等低級別的東西。
去中心化應用和區塊鏈
盡管區塊鏈今天面臨著許多采用和監管方面的困難,但它仍然是一種技術,無論是區塊鏈,哈希圖Hashgraph,tempo還是任何其他分布式賬本技術,無論算法如何。
區塊鏈和其他類似技術帶來的主要價值可以概括如下:它們允許人們編寫和運行程序,這些程序實際上在創建后不能更改,也不能在執行期間被篡改。換句話說,這些程序總是按設計運行,任何一方都不能影響他們的行為。
如果我們將它們視為定義如何來回轉移數字貨幣的程序,則此定義適用于當今存在的許多加密貨幣。這也解釋了為什么加密貨幣和多種代幣具有真正的價值:它們不能通過其定義的底層程序underlyingprogram憑空產生。
與比特幣相比,以太坊/EOS/Tron/…平臺實現了更復雜的程序層,這反過來實現了執行環境,允許任何人在平臺上編寫自己的去中心化程序。這個用戶定義的程序始終按設計運行,沒有任何例外,平臺保證了它們的安全性。
去中心化應用程序
這些安全且不可更改的程序在去中心化網絡上運行,結合傳統的前端和后端技術,我們今天稱之為去中心化應用程序。通過其中一些可以半集中化,真正去中心化的應用程序中的活動的主要部分應該發生在中央方的控制之下。
香港證監會正積極研究代幣化的好處,希望與業界就此進行討論:6月8日消息,香港證券及期貨事務監察委員會 (SFC) 金融科技部門負責人兼許可總監Elizabeth Wong周一在香港投資基金協會的一次會議上表示:“如果實施得當,區塊鏈可以提高透明度并減少結算時間,這些可以應用于資金的代幣化。我們支持代幣化,很樂意與業界就將公共基金代幣化進行討論。”Wong還表示,該監管機構正在積極研究代幣化的好處,同時確保“如果使用代幣化,投資者的境況不會變得更糟”;證監會最關心的是網絡安全,以及能否確保代幣本身不受黑客攻擊,且沒有漏洞;證監會渴望了解這些挑戰,并愿意與行業參與者合作。
此外,香港證監會周一表示,將對尋求將其投資組合投資于虛擬資產的基金經理采用相同的行為準則,并針對虛擬資產特有的風險和擔憂進行調整。Wong表示,證監會將不斷修改和發展其政策,讓散戶投資者更好地獲得加密貨幣投資。[2023/6/8 21:23:12]
想象一下我們今天所謂的去中心化應用程序,以任何現有的集中式Web資源為例,并想象你的加密身份cryptoidentity與Web/移動資源綁定,而不是受密碼保護的集中式帳戶。
這就是WalletSoftware為你提供的服務。來自此身份的私鑰存儲在你的本地設備上,永遠不會上線,因此沒有人能夠控制此身份。使用此標識,你可以在集中式和去中心化網絡中執行不同的操作,使用網站作為接入點或作為圖形用戶界面。這種加密身份cryptoidentity的重點在于你的行為是加密安全的,沒有人能夠改變你簽名的內容和你的簽名。
如今,以太網,EOS或Tron等容錯去中心化網絡的計算和存儲能力有限。如果它們是可擴展的,我們可以使用去中心化的網絡來存儲整個去中心化的應用程序,包括其圖形用戶界面,數據和業務邏輯。在這種情況下,我們將這些應用程序稱為真正的去中心化/分布式。
Avalanche X鏈部分節點仍處于離線狀態,交易嚴重滯后:3月23日消息,Avalanche C鏈今日早間在出現宕機后已恢復出塊,但Avalanche X鏈部分節點目前仍處于離線狀態,鏈上數據顯示,X鏈的網絡質量已經下降,只能處理少量交易。它似乎每小時只能處理幾筆交易,這使得該鏈幾乎無法使用。
超過90%的驗證者已經升級到最新版本的AvalancheGo,這高于今天早些時候的12%。雖然Avalanche尚未就此次中斷發表公開聲明,但許多貢獻者正在其GitHub論壇上努力解決該問題。[2023/3/23 13:21:55]
但是,由于這些網絡目前無法擴展,我們將不同的方法結合起來,以實現應用程序的最大去中心化水平。我們所知道的傳統traditional后端不會隨處可見。例如:
我們使用后端來托管去中心化應用程序的前端。我們使用后端與任何其他現有技術和服務集成。真正的世界級應用程序無法生活在孤立的環境中。
我們使用后端來存儲和處理任何足夠大的去中心化網絡。實際上,整個應用程序及其業務邏輯存儲在世界的某個地方,僅限于區塊鏈部分。更不用說,IPFS和類似的存儲層不能保證文件的可訪問性,因此我們不能在沒有自己托管文件的情況下依賴它們。換句話說,總是需要專用的運行服務器。
如今,如果不使用可靠的后端,就無法構建安全且部分去中心化的應用程序,本文的重點是解釋如何正確執行此操作。
去中心化或集中化和token
碰巧的是,今天幾乎所有去中心化的應用程序都是圍繞所謂的token構建的,定制構建的加密貨幣驅動特定的去中心化應用程序。代幣只是一種可編程的貨幣或資產,就是這樣。
通常,Token是在像以太坊這樣的去中心化平臺上編寫的智能合約smartcontract。通過擁有一些Token,你基本上可以在Web資源或移動應用程序上獲得不同的服務,并將此Token換成其他內容。這里的關鍵點是Token獨立存在而且不受中央機構的控制。
云南蒙自上新3款數字藏品:金色財經報道,日前,數藏云南平臺以彌蒙高鐵運行、四軌并行、蒙自城市IP形象為主題,創作發售了3款數字藏品,紀念彌勒至蒙自高鐵正式開通運營。據了解,數藏云南平臺是由云南省紅河哈尼族彝族自治州蒙自市自主研發的數字藏品平臺。發行的數字藏品是基于BSN“文昌鏈”發行的一種可以在線上展示、使用的創新型電子收藏品。數字藏品是區塊鏈上的一種數字資產,每個數字藏品在文昌鏈上都有唯一標識,不可篡改,永久保存。[2022/12/21 21:57:12]
有許多應用程序圍繞Token構建:從眾多可收集的游戲如CryptoKitties到更多面向服務的應用程序,甚至像Brave這樣的瀏覽器和DreamTeam等游戲平臺。
開發人員自己決定并決定他們將對其應用程序的控制程度。他們可以在智能合約之上構建整個應用程序的業務邏輯,或者,他們根本不能使用智能合約,將所有內容集中在他們的服務器上。但是,最好的方法是在中間的某個地方。
去中心化網絡的后端
從技術角度來看,必須有一個連接Token和其他智能合約與網絡/移動應用程序的橋梁。
在當今完全去中心化的應用程序中,客戶端直接與智能合約交互,這個橋梁縮小為公共API的JSONRPCAPI功能或Infura等節點池,而后者又被迫存在,因為不是每個設備都可以運行并支持其各自的網絡節點。但是,此API提供了一組基本且非常窄的函數,幾乎不允許進行簡單查詢,也無法有效地聚合數據。因此,最終,自定義后端啟動,使應用程序半集中化。
根據應用需求,與去中心化網絡的整體交互可以縮小到一兩點:
監聽網絡事件/讀取網絡狀態。發布交易。
實現這兩點非常棘手,特別是如果我們想要構建安全可靠的后端解決方案。以下是我們要分解的要點:
Yuga Labs聯創否認將推出新NFT系列“Mecha Apes”:9月16日消息,Yuga Labs聯合創始人Greg Solano在社交媒體上否認了關于“Yuga Labs計劃在今年年底前推出一個名為Mecha Apes的新NFT項目”的消息,稱這是一條假新聞。
此前據protos報道,Yuga Labs計劃在今年年底之前推出一個全新NFT系列“MechaApes”并通過該項目募資5000萬美元。[2022/9/16 7:00:42]
首先,在以太坊中,事件檢索不是即插即用的。由于多種原因:網絡節點在獲取大量事件時可能會失敗,因為網絡分叉等事件可能會消失或發生變化。我們必須構建一個抽象層來同步來自網絡的事件并保證其可靠的傳輸。對于交易發布來說,我們必須抽象以太坊的低級別的東西,如nonce計數器和gas估計,以及交易重新發布,提供可靠和穩定的界面。此外,交易發布意味著使用私鑰,這需要高級后端安全性。
安全。我們將認真對待它,并且面對不可能保證私鑰不會在后端受到損害。幸運的是,有一種設計去中心化式應用程序的方法,甚至不需要高度安全的后端帳戶。
在我們的實踐中,所有這些使我們為以太坊創建了一個強大的后端解決方案,我們將其稱為以太坊網關。它從以太坊的樂趣中抽象出其他微服務,并提供可靠的API來使用它。
去中心化的應用程序架構
本文的這一部分在很大程度上取決于特定去中心化應用程序的需求,但我們將嘗試理清這些應用程序構建的基本交互模式:
客戶端/平臺:完全去中心化的應用程序。
客戶端直接在去中心化的平臺上與Metamask,Trust等錢包軟件或Trezor或Ledger等硬件錢包進行交互。以這種方式構建的DApps的示例是CryptoKitties,Loom的DelegatedCall,加密錢包本身,去中心化的加密交易所,如Etherdelta等。
基于華為云的P2E鏈游Revoland將推出Staking功能:8月20日消息,據外媒報道,基于華為云的P2E鏈游Revoland宣布將推出Staking質押功能,旨在吸引更多有機用戶加入RevoLand生態,從而提高項目的可持續性。
此外,加密用戶可以通過參與Staking質押來管理RevoLand項目,Staking系統將從REVO的單一Token質押開始,然后是REVOLP的Token質押。此前報道,Revoland于今年六月完成1060萬美元種子輪和預售輪融資,天鴿互動等參投。(Globenewswire)[2022/8/21 12:37:55]
平臺/客戶端/后端/平臺:集中或半集中式應用程序。
客戶端與去中心化式平臺和服務器的交互幾乎沒有共同之處。這方面的好例子是今天的任何加密交易所,比如BitFinex或Poloniex:你在交易所交易的貨幣只記錄在傳統數據庫中。你可以通過將資產發送到特定地址來充值你的數據庫余額,然后在應用程序中執行某些操作后撤消資產,但是,你執行的所有操作都是DApp本身并不意味著你與DPlatform的直接交互。
另一個例子是Etherscan.io,它使用半集中式方法:你可以在那里做所有有用的去中心化操作,但如果沒有全面的后端,應用程序本身就沒有意義。
介于兩者之間:still,集中或半集中的應用程序。
以上方法相結合。例如,我們可以擁有一個應用程序,它提供各種服務以換取加密,允許你使用加密身份登錄和簽名信息。
希望完全去中心化的應用程序的交互模式不會引起任何問題。依靠Infura或Trongrid等令人驚嘆的服務,人們可以簡單地構建一個根本不需要服務器的應用程序。幾乎所有客戶端庫都可以連接到這些公共服務并與網絡進行通信。但是,對于更復雜的查詢和任務,你可能還需要分配自己的服務器。
其余涉及后端的交互模式使事情變得更加有趣和復雜。為了將所有這些放在一張圖片中,讓我們想象一下我們的后端對網絡中的某些事件做出反應的情況。例如,用戶發布允許交易的許可交易。為了收費,我們必須公布收費交易以響應發出的津貼事件:
從后端的角度來看,這是發生了什么:
1.我們通過不斷輪詢網絡來收聽特定的網絡事件。2.一旦我們得到一個事件,我們就會執行一些業務邏輯,然后決定發布一個事務作為響應。
3.在發布交易之前,我們希望確保它可能被挖掘。但是,我們無法保證交易將成功挖掘。
4.使用私鑰,我們簽署并發布交易。在以太坊,我們還必須確定交易的gas價格和gas限額。
5.發布交易后,我們不斷輪詢網絡的狀態。
6.如果它花費的時間太長而無法獲得交易的狀態,我們必須重新發布它或觸發一個失敗場景failscenario。交易可能由于各種原因而丟失:網絡擁塞,節點丟失,網絡負載增加等。在以太坊中,你還可以考慮使用不同的gas價格重新簽署交易。
7.在我們最終開始挖掘交易之后,我們可以根據需要執行更多業務邏輯。例如,我們可以通知其他后端服務有關交易完成的事實。此外,在做出有關交易的最終決定之前,請考慮等待幾個確認:網絡是分布式的,因此結果可能在幾秒鐘內發生變化。
如你所見,有很多事情發生了!但是,你的應用程序可能不需要執行某些步驟,具體取決于你要實現的目標。但是,構建一個強大而穩定的后端需要為上述所有問題提供解決方案。
去中心化的應用程序后端
在這里,我想強調大多數問題產生的一些要點,即:
監聽網絡事件并從網絡中讀取數據。發布交易以及如何安全地進行交易。
監聽網絡事件
在以太坊以及其他分散的網絡中,智能合約事件的概念允許離線應用程序了解區塊鏈中發生的事情。這些事件可以由智能合約開發人員在智能合約代碼的任何位置創建。
例如,在眾所周知的ERC20代幣標準中,每個代幣傳輸都必須記錄Transfer事件,從而讓脫鏈應用程序知道發生了代幣傳輸。通過listening這些事件,我們可以執行任何動作。例如,當代幣轉移到你的地址時,某些移動加密錢包會向你發送推送/電子郵件通知。
實際上,沒有可靠的解決方案來即插即用地監聽網絡事件。不同的庫允許你跟蹤/監聽事件,但是,在許多情況下可能出現問題,導致丟失或未處理的事件。為了避免丟失事件,我們必須構建一個自定義后端,它將維護事件同步過程。
根據你的需求,實施可能會有所不同。但是,為了讓你了解這里,你可以選擇如何在微服務架構方面構建可靠的以太坊事件:
這些組件以下列方式工作:
1.事件同步后端服務不斷輪詢網絡,嘗試檢索新事件。一旦有一些新事件可用,它就會將這些事件發送到消息總線。成功將事件提交到消息總線后,就區塊鏈而言,我們可以保存最后一個事件的塊,以便下次從該塊請求新事件。請記住,一次檢索太多事件可能導致始終失敗的請求,因此你必須限制從網絡請求的事件/塊的數量。2.消息總線將事件路由到為每個后端服務單獨設置的每個隊列。在事件發布之前,事件同步后端服務指定路由密鑰,而消費者創建僅為特定事件訂閱的隊列。
因此,每個后端服務只獲得它需要的事件。此外,消息總線一旦發布,就保證所有事件的傳遞。
當然,你可以使用其他東西而不是消息總線:HTTP回調,套接字等。在這種情況下,你需要弄清楚如何保證回調自己交付:保證冪等/自定義重試回調,實現自定義監控等等。
發布交易
為了將交易發布到去中心化網絡,我們必須執行幾個步驟:
1.準備交易。與交易數據一起,該步驟意味著請求網絡狀態以便找出該交易是否有效并且將被挖掘和交易的序號。一些庫試圖在后端進行,但是,這些步驟很重要。2.簽署交易。此步驟意味著使用私鑰。最有可能的是,在這里你需要嵌入自定義私鑰組裝解決方案。
3.發布和重新發布交易。這里的一個關鍵點是,你發布的交易總是有可能從去中心化的網絡中丟失或丟失。例如,在以太坊中,如果網絡的gas價格突然上漲,則可以刪除已公布的交易。在這種情況下,你必須重新發布該交易。此外,你可能希望使用其他參數重新發布交易,以便盡快開采。因此,如果替換交易之前沒有預先簽名,則重新發布交易可能意味著重新簽名。
通過使用上述方法,你最終可以構建類似于下面的序列圖中顯示的內容。在這個特定的序列圖中,我演示了區塊鏈重復計費如何工作:
1.用戶在智能合約中執行功能,最終允許后端執行成功的收費交易。2.負責特定任務的后端服務監聽收費許可事件并發布收費交易。
3.一旦開始收費交易,負責特定任務的該后端服務從以太坊網絡接收事件并執行一些邏輯。
后端安全和智能合約
交易發布始終涉及使用私鑰。你可能想知道是否可以保護私鑰安全。嗯,是的,不。有許多復雜的策略和不同類型的軟件允許非常安全地在后端存儲私鑰。一些私鑰存儲解決方案使用geo-distributed數據庫,而其他人甚至建議使用特殊硬件。但是,在任何情況下,半集中式應用程序的最脆弱點是組裝私鑰并用于簽署交易。因此,從理論上講,沒有100%可靠的解決方案可以使保護大家不會危及存儲的私鑰。
現在就這么想。在許多情況下,你甚至不需要經常在后端保護私鑰。相反,你可以設計智能合約和整個應用程序,使私鑰泄漏不會影響其通常的行為。通過這種方法,授權帳戶如何與智能合約進行交互并不重要。他們只是觸發triggering智能合約來完成其正常工作,而智能合約本身也會執行任何必要的驗證。我稱之為運營賬戶模式operationalaccountspatter。
這樣,在緊急情況下:
攻擊者可以竊取的唯一東西是存入交易發布的操作賬戶中的少量以太。攻擊者無法破壞智能合約邏輯,也無法損害參與此過程的任何人。
妥協的運營帳戶可以快速替換為其他帳戶,但是,這需要手動更換或開發一個額外的解決方案,這將通過超級單一交易完成所有super-secure主帳戶。
例如,在我們對以太坊解決方案的定期計費中,無論后端發生什么,定期計費智能合約的設計方式使我們有一整個月的時間來更換受損帳戶。
但是,如果你希望盡可能安全地保護你的后端私鑰存儲,你可以嘗試使用Vault以及用于存儲和管理以太坊帳戶的以太網的優秀插件。
Tags:以太坊TOKTOKENKEN以太坊硬幣交易所交易時間TokenStand NetworkKanga Exchange TokenGNY Token
據coindesk報道,美國證券交易委員會(SEC)委員HesterM.Peirce在加州帕洛阿爾托(硅谷中心)的證券執法論壇上向其他監管機構發表講話時表示,一年前.
1900/1/1 0:00:00金色財經比特幣5月10日訊在經歷了長達約一年的等待之后,金沙江資本現在終于完成了對電商零售巨頭Overstock.com旗下證券型代幣交易平臺tZERO的投資.
1900/1/1 0:00:00本著負責,專注,誠懇的態度用心寫每一篇分析文章,特點鮮明,不做作,不浮夸!本內容中的信息及數據來源于公開可獲得資料,力求準確可靠,但對信息的準確性及完整性不做任何保證,本內容不構成投資建議.
1900/1/1 0:00:00今日凌晨開始BTC持續震蕩上行,短時突破6200美元關口,最高漲至6224.55美元,后小幅回落,主流幣普遍下跌。BTC幣安現報6196.88美元,24h漲幅3.90%.
1900/1/1 0:00:002019年5月9日,在韓國首爾,YOOSourcingCEOMiladNouri與BitgosuCEOSpunkyHwang簽署了戰略合作協議,并商討了未來雙方在韓國共同發展的計劃.
1900/1/1 0:00:00BTC這幾天每天以3%至4%的漲幅連續向上拉升,目前已最高漲至6600美元附近,幣價已步入6500至7000超強壓力區間,而其余主流幣大部分聯動BTC弱勢反彈,漲幅超過5%的寥寥可數.
1900/1/1 0:00:00