Blockchain

“在區塊鏈上執行程式碼”是什麼意思?區塊鏈不會變得巨大嗎?

  • September 19, 2018

從技術上講,“在區塊鏈上執行程式碼”是什麼意思?這是否意味著

  1. 我們儲存原始碼,然後每個完整節點執行該原始碼幾次?

如果對於僅儲存交易的比特幣,由於區塊鏈大小和驗證所有塊所需的 CPU 時間已經存在壓倒性的擴展問題,那麼乙太坊如何在擴展的同時還必須在區塊鏈上儲存任意程式碼?

程式碼通過使用智能合約在區塊鏈上執行。每個智能合約都有一個地址、儲存和程式碼。當交易被發送到合約地址時,它的程式碼在每個節點上執行,在乙太坊虛擬機(EVM) 內,合約可以發送乙太幣,呼叫其他合約,並寫入它自己的儲存。

結垢是通過使用氣體來處理的。每個計算步驟,即使是發送正常交易或創建合約,都需要一定量的氣體(這對於刪除儲存數據等操作可能是負面的)。該氣體與交易一起發送,並支付給礦工,如果提供的氣體不足,則所有狀態更改都將回滾。

發送交易時,使用者指定他們願意花費的最大氣體,以及他們願意為此支付的價格(以每氣體乙太幣為單位)。然後礦工可以選擇處理提供最高gas價格的交易。

礦工還可以選擇區塊氣體限制

氣體限制決定了每個塊可以使用多少計算和儲存。在每個區塊上,礦工都可以設置新的氣體限制,但只能將限制增加或減少之前限制的 1/1024 。

這意味著礦工能夠投票以保持區塊大小足夠小以進行處理,並且計算價格是靈活的,具體取決於供需情況。

其他縮放技術

  1. 鏈下計算:
  • 通過使用計算市場,程式碼執行可以預設在鏈下完成,只有在有爭議時才在鏈上進行驗證。
  1. 狀態通道
  • 與支付渠道類似,各方將狀態的某些部分鎖定在需要各方簽名才能編輯的契約中。各方在他們之間進行交易,只有在有爭議時才送出更新的狀態。
  1. 更多理論上的東西:

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