千家信息网

C++智能合约怎么实现

发表于:2024-09-21 作者:千家信息网编辑
千家信息网最后更新 2024年09月21日,这篇文章主要介绍"C++智能合约怎么实现"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"C++智能合约怎么实现"文章能帮助大家解决问题。Ricardian Co
千家信息网最后更新 2024年09月21日C++智能合约怎么实现

这篇文章主要介绍"C++智能合约怎么实现"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"C++智能合约怎么实现"文章能帮助大家解决问题。

Ricardian Contracts是数字文档,用于定义两方或多方之间交互的条款和条件。

在20世纪90年代,伊恩·格里格(Ian Grigg)在寻找创造数字化现金的愿景的朋友之后学会了资产的数字化。Ian Grigg发现债券数字化的必要性,并试图在互联网上发行相同的债券,因为它们也是金融资产,而世界正在开始通过互联网创建业务。在努力解决问题的过程中,Ian Grigg开发了李嘉图合约。

###李嘉图合约与我们今天的智能合约有什么不同?

智能合约是机器可读的指令集,而李嘉图合约是指明智能合约所遵循的指令意图的文件。

智能合约看起来像这样:

 `#include 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 _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 = XYZINFLATION = 5%INITIALISSUE = 1,000,000,000The 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网络上的宪法和仲裁员!

我希望它能帮助你更好地理解李嘉图合同。谢谢你的阅读。

为什么世界需要EOS合约?

@iang在他的一篇文章中对此进行了很好的解释。假设我们有一份合约转让某些token以换取100美元。

这是智能合约:

{Alice,Bob,100,dollarsvalue,token}

dollar可能是新加坡元还是港元,计算机如何知道指定的dollar是美元以及阅读合约的人如何知道上述dollar是美元?

为了明确智能合约的意图,需要一份详细的李嘉图合约。与EOS网络一样,利益相关者同意宪法,如果他们对其他人采取行动,他们有可能通过仲裁程序。李嘉图合约有助于仲裁员和成员接受合约意图的审判。记住:不是每个人都是技术人员。

关于"C++智能合约怎么实现"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

合约 李嘉 李嘉图 智能 C++ 数字 意图 文档 条件 知识 网络 仲裁 不同 安全 世界 仲裁员 债券 合同 宪法 指令 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库删除字段的默认约束的命令 数据库层面同步数据 分布式服务器的系统 网络安全主管是哪个部门 微梦创客网络技术有限公司 2021校园网络安全知识竞赛 日喀则有几个软件开发公司 陕西宝鸡金泰网络技术有限公司 搜狗软件开发 知乎 设备润滑台账系统软件开发 基金公司用什么数据库软件 做软件开发的公司知聚顶科技 怎么通过服务器浏览内网 asp中更新数据库怎么写 洛奇 与服务器连接中断 电信服务器和移动宽带哪个快 具体的软件开发技术沙龙主题 网络安全赛题中职生 网络安全专业适合的国企 赵凤伟网络安全工程师 软件开发工程师面试内容 法治教育网络安全手抄报 如何上线自己的服务器项目 新化租房软件开发 赛季服鱼人服务器金币价格 电力涉网及网络安全 杭州学软件开发培训哪里好 学校网络安全手抄报文字 成都市盈达网络技术有限公司 数据库 索引分类
0