您好,登錄后才能下訂單哦!
這篇文章主要介紹“C++智能合約怎么實現”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“C++智能合約怎么實現”文章能幫助大家解決問題。
Ricardian Contracts是數字文檔,用于定義兩方或多方之間交互的條款和條件。
在20世紀90年代,伊恩·格里格(Ian Grigg)在尋找創造數字化現金的愿景的朋友之后學會了資產的數字化。Ian Grigg發現債券數字化的必要性,并試圖在互聯網上發行相同的債券,因為它們也是金融資產,而世界正在開始通過互聯網創建業務。在努力解決問題的過程中,Ian Grigg開發了李嘉圖合約。
###李嘉圖合約與我們今天的智能合約有什么不同?
智能合約是機器可讀的指令集,而李嘉圖合約是指明智能合約所遵循的指令意圖的文件。
智能合約看起來像這樣:
`#include <eosiolib/eosio.hpp> class simpletoken : public eosio::contract { public: simpletoken( account_name self ) :contract(self),_accounts( _self, _self){} void transfer( account_name from, account_name to, uint64_t quantity ) { require_auth( from ); const auto& fromacnt = _accounts.get( from ); eosio_assert( fromacnt.balance >= quantity, "overdrawn balance" ); _accounts.modify( fromacnt, from, [&]( auto& a ){ a.balance -= quantity; } ); add_balance( from, to, quantity ); } void issue( account_name to, uint64_t quantity ) { require_auth( _self ); add_balance( _self, to, quantity ); } private: struct account { account_name owner; uint64_t balance; uint64_t primary_key()const { return owner; } }; eosio::multi_index<N(accounts), account> _accounts; void add_balance( account_name payer, account_name to, uint64_t q ) { auto toitr = _accounts.find( to ); if( toitr == _accounts.end() ) { _accounts.emplace( payer, [&]( auto& a ) { a.owner = to; a.balance = q; }); } else { _accounts.modify( toitr, 0, [&]( auto& a ) { a.balance += q; eosio_assert( a.balance >= q, "overflow detected" ); }); } } }; EOSIO_ABI(simpletoken, (transfer)(issue) )`
上面的示例顯示了為發布新token而設計的C++智能合約。
雖然李嘉圖合約看起來像這樣:
TOKENNAME = XYZ INFLATION = 5% INITIALISSUE = 1,000,000,000 The Community hereby creates a currency known as {{TOKENNAME}}, possession of which is evidence of a contribution to the community. The quantity of {{TOKENNAME}} shall increase no more than INFLATION per year after the first {{INITIALISSUE}} of {{TOKENNAME}} are distributed.
李嘉圖合約前面的部分看起來像普通的軟件合同。
使用刻度線指定條件,使用單擊按鈕同意指定的條件和整個合約。
是的,由于加密簽名,李嘉圖合約極其安全。每個李嘉圖合約文檔都可通過其哈希值進行唯一標識。編輯文檔很困難,一旦所有各方同意并使用私鑰在其上簽名,它就變得不可變。
我在iang.org上發現了一個不言自明的形象:
請記住:李嘉圖合約首先是人類可讀的,然后是機器可讀的合約。
李嘉圖合約的視覺表征:
開放市集合約模式的視覺表征:
EOS網絡上的憲法和仲裁員!
我希望它能幫助你更好地理解李嘉圖合同。謝謝你的閱讀。
@iang在他的一篇文章中對此進行了很好的解釋。假設我們有一份合約轉讓某些token以換取100美元。
這是智能合約:
{Alice,Bob,100,dollarsvalue,token}
dollar可能是新加坡元還是港元,計算機如何知道指定的dollar是美元以及閱讀合約的人如何知道上述dollar是美元?
為了明確智能合約的意圖,需要一份詳細的李嘉圖合約。與EOS網絡一樣,利益相關者同意憲法,如果他們對其他人采取行動,他們有可能通過仲裁程序。李嘉圖合約有助于仲裁員和成員接受合約意圖的審判。記住:不是每個人都是技術人員。
關于“C++智能合約怎么實現”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。