Go-Ethereum

智能合約與程序包有何不同?

  • August 6, 2019

我正在閱讀有關智能合約的資訊,並且能夠創建智能合約,但我不知道為什麼要使用智能合約?當我在Google上搜尋這個時,我明白以下 -

  • 用於創建智能合約的新語言“solidity”。
  • 智能合約是安全的,部署後無法更新。
  • 智能合約只不過是一組自動化流程的功能。
  • 將其部署到區塊鍊網路後,將獲得該合約的地址。通過導入這個地址,我們可以訪問它的方法。
  • 智能合約不儲存數據,我們需要相應地創建邏輯以將數據儲存在數據庫中。

但是等等,我們可以使用稱為“包”的程序集實現上述相同點。為什麼我們不使用以下 -

  • 創建一個具有所有功能的包。(我們使用solidity在智能合約中編寫的相同)
  • 我們可以將此包設為私有。(只有一些組織可以訪問)
  • 我們可以添加額外的安全層,使惡意使用者無法訪問該程式碼。

最後,我主要關心的是為什麼要使用智能合約?儘管我們可以使用包實現相同的邏輯(如上所述)

通過人類歷史,人們帶來了新的想法,並用名字為這些想法施洗。“智能合約”是一個想法的名稱。它只不過是一段程式碼(在這種情況下執行在去中心化網路中)。與任何其他 scrypt 相比,“智能合約”沒有什麼特別的(從根本上說)。

很多人會說智能合約不智能,但是在一個只能發送基本交易能力的網路的背景下,有一個工具可以處理輸入數據並提供基於某種邏輯的輸出,可以被認為是一種“智能”工具。

因此,您可以將“智能合約”視為一段程式碼。

我們可以添加額外的安全層,以便惡意使用者無法訪問該程式碼

但是在一個無需信任的網路中,比如乙太坊和比特幣,你希望每個人都可以訪問程式碼(這樣你就不必相信人們的善意),儘管你不希望人們對它發脾氣。這些已經在乙太坊中實現了。

希望這可以幫助

不同之處在於開發人員或所有者可以使用集中式軟體任意更改集中式系統的程式碼或狀態(數據庫)。

如果您希望將數據本身提升到無可爭辯的事實水平,請使用智能合約。也就是說,新數據只能通過智能合約中定義的渠道進入系統。相反,智能合約中僅存在數據/狀態就可以證明智能合約規定的過程必須已經發生。

一個例子是“令牌”。更廣泛地說,加密貨幣。這些是設計上不受權威參與者任意干預的數據庫狀態和程序。作為區塊鍊和工作量證明的概念驗證,我認為比特幣和乙太坊做得很好。

乙太坊做了一些全新的事情,可能適合整體架構。

如果有幫助,區塊鏈可以為應用程序建立一組不變數,人們可以看到不可能違反這些不變數。

希望能幫助到你。

引用自:https://ethereum.stackexchange.com/questions/49490