虛擬機GearSV將為比特幣提供無限的CPU和內(nèi)存
多虧了unwriter的Neon Planaria和Bitbus庫,比特幣開發(fā)者現(xiàn)在有了一種簡單的方法來將離線應用狀態(tài)和挖掘節(jié)點同步。我們不僅可以根據(jù)塊的高度進行排序,而且還可以對交易進行塊內(nèi)索引! 這就是我們在比特幣之上建立完全圖靈完整應用所需要的。
Planaria安全模型
1. 一致性/可用性:所有運行應用程序代碼的服務(wù)器都可能在一段任意的時間內(nèi)停止運行,但稍后仍然可以通過從最后看到的塊中進行抓取來恢復。這意味著應用程序提供者可以優(yōu)雅地退出并重新聯(lián)機,而不存在一致性風險。可用性取決于為用戶提供應用程序的經(jīng)濟動機。
2. 驗證:任何人都可以啟動應用服務(wù)器并驗證當前狀態(tài)。驗證器首先獲取應用程序代碼,然后從第一個塊中抓取應用程序,直到當前塊的高度。這是一個線性時間驗證方案,等價于在核心網(wǎng)絡(luò)上挖掘節(jié)點,但是只有一個應用程序子集處于區(qū)塊鏈狀態(tài)。
3.法律:如果API提供者使用錯誤的合約狀態(tài)進行欺騙,那么捕獲它們并在必要時在法庭上提供證據(jù)就變得非常簡單。因為所有的東西都來自于鏈上的磁帶,所以沒有辦法“做假賬”而不受懲罰。
CPU /內(nèi)存插件
目前基于Planaria的應用程序,如twetch和bicomedia,本質(zhì)上是比特幣的硬盤擴展。這類應用程序能夠從op return事件中刮取數(shù)據(jù)庫或文件系統(tǒng)上的靜態(tài)內(nèi)容并為其提供服務(wù)。
如果可以使用與存儲應用程序相同的屬性對數(shù)據(jù)進行復雜的驗證和任意操作,情況會怎樣?
虛擬機
虛擬機抽象在底層硬件上,允許計算在各種CPU架構(gòu)上統(tǒng)一運行。這對于需要在許多不同機器上長時間運行的智能合約非常有用。你永遠不會知道,ARM服務(wù)器可能會在5年內(nèi)成為必備品!
使用Web匯編虛擬機,我們可以將c++或Rust代碼編譯為WASM字節(jié)碼。然后為底層方法生成ABI和Javascript接口。
合約
您可以編寫基于狀態(tài)類的程序,就像可靠合約的對應程序一樣。這是一個ERC20ish端口的頭文件:
1. 編譯合約以生成字節(jié)碼和ABI。
我們可以利用諸如Emscripten之類的Web組裝工具來自動編譯和生成c++契約代碼的Javascript接口。類似的工具也可用于Rust.。
2. 在on chain op_return中部署合約字節(jié)碼。
與其他智能契合約平臺類似,通過將字節(jié)碼存儲在op_return輸出的鏈上部署合約。合約標識符由使用b://協(xié)議的交易哈希值確定。
OP_RETURN
19HxigV4QyBv3tHpQVcUEQyq1pzZVdoAut
[wasm_bytecode]
wasm
Binary
Token.cpp
寫入
所有寫入操作都是使用更高級的語義(指定op return中的約定、方法和輸入?yún)?shù))對鏈式交易進行的。Planaria節(jié)點會刮掉事件日志,并在方法調(diào)用鏈上出現(xiàn)時簡單地按順序運行它們。
OP_RETURN
[deploy_transaction_hash]
[method_id]
[params_array]
json
UTF-8
可擴展性
開發(fā)人員可以很容易地使用云平臺上可用的普通硬件或虛擬cpu。
對于純粹基于WASM的合約,限制因素是內(nèi)存。對于使用帶有34字節(jié)地址的c++ std::map到32字節(jié)無符號整型的代幣合約,我們可以在16gb的機器上實現(xiàn)大約2億的余額。為了克服內(nèi)存限制,我們可以將Web Assembly MemFS掛載到底層操作系統(tǒng),并開始使用硬盤驅(qū)動器!
不像以太坊這樣的平臺,所有的合約都由一個VM運行,比特幣智能合約已經(jīng)完全分割為每個合約一個VM。實際上,您可以在每個合約上運行無限數(shù)量的VM,從而繼續(xù)提高最終用戶的可用性。
結(jié)論
你不僅可以為比特幣編寫智能合約,因為這樣做更容易擴展。
已證明的用于合約的第一個用例是代幣。嚴格的op_return框架(比如代幣化的op_return框架)似乎過于死板,不適合代幣提供的各種用例。通過程序的靈活性,您可以指定歸屬時間表、荷蘭式拍賣、檢查批準等等。





