##infra vs ethereum
联合提货权是infra的模块之一。从早期版本开始,联合提货权模型就把区块链作为账目存储的可选方案之一。作为区块链升级版的ethereum,也继承了这种调用关系。虽然ethereum努力从支付向合约扩展,但它还不能代替联合提货权在infra中的位置。
- 区块链以及ethereum都可以为infra存储账目(可能需要裁剪)。
- ethereum用于开发分布式应用,替代有中心应用。infra用于创立数字化的共同体,替代基于国内法设立的企业。
- 基于ethereum的应用,可能属于一家基于国内法注册(而不是数字化)的企业。
- 基于infra的共同体,可以是有中心的。
###账户 infra和ethereum都有两种账户,分别用密钥和源代码标识。infra把它们成为普通账户、自动账户。ethereum则命名为externally owned accounts (EOAs) 和 contract accounts。比特币协议中也使用密钥和脚本,所以这种相似性并不出奇,但自动账户和合约账户在具体实现上有很大不同。
- infra的自动账户,以源代码的哈希值为账号,这些代码在各用户机器上验证后运行。ethereum的合约账户,以创建者地址加上交易数量nonce计算得到,代码的获取、存储由ethereum实现。因此,infra自动账户的源代码是无法攻击的,任何修改将导致验证失败。而ethereum的合约账户与代码之间没有数学关系,依赖软件绑定它们。
- infra的自动账户,会注册一系列的事件处理器(event listener),当事件发生时会调用对应处理器。ethereum的合约账户,会在收款时被调用。如果要实现一个多事件的应用,ethereum合约账户需要自己实现事件机制。
- infra自动账户代码可以读所有数据,ethereum合约账户的代码只能读写自己的存储。
###发行 ethereum启动时有预售和开发专用ether,启动后的发行和比特币相似,以后可能会从POW迁移到POS。infra的发行则完全不同,由两部分组成:
- 计划内发行:联合提货权部署者以源代码定义以下机制
- 开发基金:支付建模、设计、开发、运维、管理等人员和设备设置费用。
- 孵化基金:向普通使用者发放贷款和预购产品。
- 计划外发行:以特定卖出价出售任意数额的联合提货权,收入扣除管理费用后全部按特定买入价在兑换处挂单。
infra基于开发和产品孵化设计发行机制,而不针对存储(其实是一致性共识)支付报酬。ethereum无论是POW还是POS模式,设计开发人员都无法直接取得报酬。他们主要通过先发优势获得低成本的加密货币,升值后抛售获得收入。这种模式下,设计开发人员的报酬难以准确地反映工作量、工作难度的差异。
制定货币政策调节供需是传统央行的职能之一,这种权力是比特币设计者所批评的。与比特币相似,ethereum的发行数量也是提前计划的。当需求无法满足时,它们都会出现通缩,甚至无法实现(比如某个交易需要一次性支付超过2100万比特币)。infra的联合提货权包括计划外发行功能,将做市商机制数字化后,提供充足的数额以稳定币值。
infra具有原生的投融资功能,而ethenreum生态内的产品孵化则没有原生机制,需要扩展技术协议并由外部资源注入推动。
###脚本语言 为了实现可编程性,ethereum内置了四种语言、EVM虚拟环境、配套的开发工具和浏览器。infra则直接使用javasrcipt语言实现自动账户,可以在node.js上运行。
实际上可编程不是重点,源代码不被篡改才是智能合约、共同体的关键。编译型语言在不同平台产生不同机器码,验证源代码变得异常复杂。因此,infra选择了js,ethereum则使用中间码。在账户一节讨论过,ethereum把代码与合约账户绑定,而infra在每次运行前取源代码的哈希值作为自动账户的账号。如果攻击者要替换代码的话,将产生另外一个账号。因为没有人往这个新账号付款(否则攻击者就直接留私人账号了),它的余额为零,所有支出都会失败。
ethereum要对脚本运行收费,以限制运算量。这个需求需要一系列私有工具,增加了开发工作量,也引入了额外的风险。infra要求用户决定部署哪些共同体(通常只有成员才会部署),这些共同体的代码在每个成员的本地运行,产生的结果本地保存、不对网络广播。这种自助服务模式不需要对计算量收费,因此可以直接使用js,分享其成熟的工具链。
###协作与分配
###销售
###融资
###DAO