blog/infra.ethereum.md

4.8 KiB
Raw Blame History

##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选择了jsethereum则使用中间码。在账户一节讨论过ethereum把代码与合约账户绑定而infra在每次运行前取源代码的哈希值作为自动账户的账号。如果攻击者要替换代码的话将产生另外一个账号。因为没有人往这个新账号付款否则攻击者就直接留私人账号了它的余额为零所有支出都会失败。

ethereum要对脚本运行收费以限制运算量。这个需求需要一系列私有工具增加了开发工作量也引入了额外的风险。infra要求用户决定部署哪些共同体通常只有成员才会部署这些共同体的代码在每个成员的本地运行产生的结果本地保存、不对网络广播。这种自助服务模式不需要对计算量收费因此可以直接使用js分享其成熟的工具链。

###协作与分配

###销售

###融资

###DAO