很多架構(gòu)師在使用區(qū)塊鏈技術(shù)之前需要考慮一些關(guān)鍵問題,而這些問題與數(shù)據(jù)隱私和區(qū)塊鏈類型有關(guān)。
公共區(qū)塊鏈通過提供數(shù)據(jù)的透明度、完整性、可追蹤性、真實性來協(xié)調(diào)信任層。它可以記錄所有交易活動。這些獨特的屬性吸引了許多企業(yè)來開發(fā)應用程序,這些應用程序記錄利益相關(guān)者之間的透明活動、提供來源可追溯性的所有權(quán)詳細信息、證明存在的數(shù)字內(nèi)容的時間戳等等。Aion基金會首席執(zhí)行官Matt Spoke強調(diào)了公共區(qū)塊鏈是一條很好的前進道路的原因。
盡管區(qū)塊鏈存儲是開放和可訪問的,但在這種狀態(tài)下執(zhí)行的每一個寫操作都會產(chǎn)生成本。因此,必須將應用程序的主要部分托管在區(qū)塊鏈上,以最大程度地降低成本。需要構(gòu)建應用程序的其余部分來解決以下問題:
兩個關(guān)鍵問題
(1)需要在區(qū)塊鏈中存儲哪些數(shù)據(jù)?
公共區(qū)塊鏈上的任何數(shù)據(jù)都是開放的、訪問的且不可撤銷的。因此,除非數(shù)據(jù)已使用抗量子算法編碼并存儲,否則公共區(qū)塊鏈不符合GDPR(以及CCPA)法規(guī)的標準。
個人身份信息(PII)或危及用戶隱私的敏感數(shù)據(jù)不應存儲在區(qū)塊鏈上。但是,區(qū)塊鏈仍然需要賬戶地址才能將其與真實用戶單獨鏈接(在區(qū)塊鏈上可以是偽匿名的)。
(2)在哪個區(qū)塊鏈上構(gòu)建應用程序?
軟件的性能直接取決于其依賴項及其主機環(huán)境的性能。區(qū)塊鏈帶來了一種去中心化架構(gòu)的新模式,其中鏈上的每個節(jié)點不斷更新以維護狀態(tài)。除此之外,區(qū)塊鏈應用程序還需要處理各種問題及其實現(xiàn)。
共識
區(qū)塊鏈依賴于參與者節(jié)點的分布式共識。與任何權(quán)益證明(PoS)系統(tǒng)相比,工作量證明(PoW)共識需要花費更多時間才能在基于最終水印的系統(tǒng)上達成共識。同樣,其他變體共識算法也會影響交易確認時間,應用程序需要在不犧牲響應時間的情況下進行處理。
智能合約
公共區(qū)塊鏈智能合約方法是開放的,無論什么樣的用戶都可以調(diào)用。因此,智能合約需要確保其數(shù)據(jù)不被破壞,并防止濫用其業(yè)務邏輯。開發(fā)安全有效的智能合約需要高超的技能,并需要大量的實踐。此外,基于這種智能合約的復雜性和監(jiān)控影響,它需要與外部組織進行安全審核。
區(qū)塊產(chǎn)生時間和交易數(shù)量
區(qū)塊的產(chǎn)生時間和可以合并到一個區(qū)塊中的最大交易數(shù)決定了系統(tǒng)的吞吐量。該應用程序理論上可以生成許多交易,但是這些交易仍需要與區(qū)塊鏈上的其他應用程序一起完成。例如,以太坊當前每秒處理15個交易。
訪問區(qū)塊鏈
盡管區(qū)塊鏈是開放和可消耗的,但需要可靠的連接才能使用完整的節(jié)點或第三方等選項(例如Infura、Blockdaemon、Nodesmith等)與其通信。完整節(jié)點保證最新的區(qū)塊鏈狀態(tài)。然而,它很難管理(特別是在維護和升級方面),而且不具有成本效益。
如果企業(yè)選擇第三方服務,它將引入額外的依賴性,其內(nèi)部工作原理是將交易交付到區(qū)塊鏈、交易池管理、重試策略和重置策略。
天然氣成本和價格
以電網(wǎng)為例,與區(qū)塊鏈上執(zhí)行交易相關(guān)的天然氣價格根據(jù)電網(wǎng)的需求和供應而波動。基礎(chǔ)電網(wǎng)加密貨幣價格也會對其產(chǎn)生影響。根據(jù)應用程序的使用模式,明智的做法是估算未來三到五年內(nèi)運行該系統(tǒng)的天然氣成本預算,而在價格較低時提前購買天然氣將有助于降低成本。
工具與支持
最后但并非最不重要的一點是對區(qū)塊鏈生態(tài)系統(tǒng)的工具支持,因為它在開發(fā)、部署、調(diào)試和監(jiān)視智能合約時起著至關(guān)重要的作用。在需要時獲得技術(shù)支持會帶來很多不同工具。
處理區(qū)塊鏈的復雜性
墨菲定律在理想世界中是無效的,但實際上出了問題,人們需要為可能出現(xiàn)的最壞情況制定計劃。其中一些問題是可以解決的,但是應用程序仍然需要處理來自區(qū)塊鏈復雜性的挑戰(zhàn)。
區(qū)塊鏈無法處理的交易
如今,許多應用程序都會產(chǎn)生大量的微交易,以記錄每一個小細節(jié)。區(qū)塊鏈尚未達到這一級別的可擴展性,但是,它不應阻止人們在其之上構(gòu)建應用程序。這可以通過匯總交易(如果邏輯上可行)并減少區(qū)塊鏈上的交易提交來解決。
高吞吐量的另一種選擇是使用側(cè)鏈網(wǎng)絡(如果可用),這樣可確保將公共區(qū)塊鏈收益仍可用于應用程序,同時將部分工作卸載到側(cè)鏈。
未能實施交易
區(qū)塊鏈可能無法提取應用程序提交的交易。這可能是交易本身的問題,也可能與分散網(wǎng)絡問題有關(guān)(例如,區(qū)塊鏈中鏈的重組、硬分叉、交易池故障等)。該應用程序?qū)⒃谒星闆r下通過記住已提交給區(qū)塊鏈但未通過的內(nèi)容來重試。
如果交易失敗是由于較低的天然氣價格引起的,則應用程序?qū)⒁暂^高的天然氣價格重新提交交易。否則,它將重試。這對于同步區(qū)塊鏈的狀態(tài)和應用程序的內(nèi)部狀態(tài)至關(guān)重要。
電網(wǎng)擁塞
應用程序應該具有響應和適應電網(wǎng)擁塞的規(guī)定。如果提高天然氣價格不起作用,則該應用程序應定期或按指數(shù)重試。
電網(wǎng)擁塞采用區(qū)塊鏈的好處是,可能無法立即通過其他方式將交易提交到電網(wǎng)。這將減少重復消費的風險。該應用程序可以使用其內(nèi)部狀態(tài)繼續(xù)運行,并在以后以較高的可用天然氣價格提交交易。
區(qū)塊鏈與內(nèi)部應用程序狀態(tài)之間的不一致
如果應用程序是圍繞區(qū)塊鏈標記技術(shù)構(gòu)建的,則應用程序的非區(qū)塊鏈部分將記住尚未確認或提交給區(qū)塊鏈的系統(tǒng)狀態(tài)。
當用戶訪問應用程序時,可以考慮這些未決的交易。但是,如果他們直接訪問區(qū)塊鏈瀏覽器,則余額或狀態(tài)可能會關(guān)閉。如果用戶很聰明并且可以訪問其私鑰,那么他們可以將交易直接發(fā)送到應用程序外部的區(qū)塊鏈,并耗盡余額或更改狀態(tài)。
解決此問題的一種方法是在應用程序中實現(xiàn)余額的透支保護,并在交易余額達到一定程度時允許執(zhí)行交易。第二種方法是為應用程序創(chuàng)建內(nèi)部賬戶,以代表用戶執(zhí)行狀態(tài)更改。
總而言之,構(gòu)建具有數(shù)百萬個用戶和大量交易的企業(yè)區(qū)塊鏈應用程序可能不適合常規(guī)軟件體系結(jié)構(gòu)。因此,架構(gòu)師需要為新的挑戰(zhàn)和未解決的問題做好準備,以解決這種大規(guī)模應用問題。
此處未涵蓋的重要方面是管理用于在區(qū)塊鏈上執(zhí)行交易的密鑰。
版權(quán)聲明:本文為企業(yè)網(wǎng)D1Net編譯,轉(zhuǎn)載需注明出處為:企業(yè)網(wǎng)D1Net,如果不注明出處,企業(yè)網(wǎng)D1Net將保留追究其法律責任的權(quán)利。