精华内容
下载资源
问答
  • 早在2012年,比特币社区就已经推出了基于比特币的代币化协议,名为Omni协议,它可以实现基于比特币发行代币的功能,可支持用户实现比特币和代币的直接交易,可以说,Omni协议打造了一个去中心化的交易所。...

    早在2012年,比特币社区就已经推出了基于比特币的代币化协议,名为Omni协议,它可以实现基于比特币发行代币的功能,可支持用户实现比特币和代币的直接交易,可以说,Omni协议打造了一个去中心化的交易所。

    Omni协议并非完全被束之高阁,其最大的代币化实践应用就是USDT,它是一种法币挂钩的数字货币,每一个发行流通的USDT都与美元一比一挂钩,相对应的美元总量存储在香港 Tether 有限公司。 这是一个极具生产力的代币,但非常令人惋惜的是,除此之外,Omni协议再无建树!

    直至2016年,ERC20代币助推了以太坊的火热,也使比特币第一次面临真正的威胁。好在,虫洞以及其他代币化协议的出现,给了比特币一个在智能合约方向超越以太坊的机会,我们来对比分析Omni协议、以太坊以及虫洞协议,来展现虫洞协议的强大前景。

     

    可扩展性的强大优势

    首先,更低的代币成本。BCH最大的优势在于其采用的大区块路线所带来的强大的可扩展性,它不仅仅可以保证BCH的交易保持较低的成本,同时也可以保证代币的生成保持较低的成本。相对来说,基于BCE的1MB小区块上限的Omni协议即便依然在正常运作,拥堵的区块链所带来的高额交易以及发行代币成本也会带来非常不好的使用体验,所以被废弃也是情理之中,毕竟Omni协议所诞生的时代和当前已并不相同。

    而与其它区块链网络不同的是,以太坊协议不是用于处理具体的任务,而是针对去中心化的应用作为一种框架和基础设施来运作,这就注定了其扩容并不像BCH这般容易,在发行代币成本上,BCH的虫洞协议占据了优势。

    其次,更完善的智能合约。比特币本就是利用一种丰富的脚本语言创建的,如果它的用途仅仅是将两个私钥之间的支付,即便包括多重签名交易,也并不需要脚本语言,毕竟完全可以通过硬编码实现,且更简单。也就是说,中本聪在设计之初,就已经规划了智能合约的发展路线。BCH的智能合约可以比以太坊更完善,它在第一层部署规则,第二层执行规则,可使智能合约在执行中无需考虑去中心化的执行带来的成本压力,相较于以太坊的去中心化部署,BCH的虫洞协议成本更低,且更完善。

     

    在当时那个年代,比特币仍然处在科普为主的时代,社区羸弱、用户稀少、开发者贫乏,在那种情况下Omni协议的出现太过于超前,显得格外突兀,但它给比特币未来发展方向找寻了出路,给虫洞协议的出现与发展点亮了灯塔。

    时至今日,虫洞协议已经初步完善,并且获得了极高的关注度。CSW曾经质疑虫洞的安全性,但事实上目前他也无法自证其说,这倒与他一直以来的风格极为相似。虫洞协议仍需不断完善,安全性应该交给市场去验证。

    展开全文
  • 最近BCH社区在讨论发token的事,其中omni协议是一个成熟的方案,在BTC上早就实现的,USDT就是使用omni协议实现的代币。本文通俗讲解omni的基本原理。 第1章 BCH交易中OP_Return信息的基本原理 一笔比特币交易是...

    第0章 引言

    最近BCH社区在讨论发token的事,其中omni协议是一个成熟的方案,在BTC上早就实现的,USDT就是使用omni协议实现的代币。本文通俗讲解omni的基本原理。

    第1章 BCH交易中OP_Return信息的基本原理

    一笔比特币交易是一个含有输入值和输出值的数据结构,该数据结构植入了将一笔资金从初始点(输入值)转移至目标地址(输出值)的代码信息。

    在区块链浏览器中查看是这样的

    左边的是一个输入,是发币者的地址;右边是输出,是收币者的地址。

    BCH的转账和我们去银行填单汇款很像,汇款单也是要填写汇款人、汇款金额、汇款银行账户、签名、收款人……等等信息。

    在上述表格的倒数第2行,即“锁定脚本”可以是一种“备注信息”(请注意,这里是“可以是”),只要是以OP_Return开头的都属于“备注信息”。就像我们使用网银转账可有填写备注一样,这种“备注信息”的“锁定脚本”,即BCH节点来说是不作处理的。我们称这种“备注信息”为OP_Return数据。

    但是这种OP_Return数据,都一定会和这笔交易共同存在BCH的区块里的。这句话的意思是:OP_Return数据是受BCH区块链保护的,这个数据是不可篡改,不可伪造的。哪怕是你再发一笔交易,填写完全一样的OP_Return信息,但这笔交易的txid肯定是不一样的,BCH区块链是可以识别“信息完全相同的OP_Return数据”是属于哪笔交易,在哪个区块的。这意味着,一笔交易tx,外带一个OP_Return数据,这两个信息就会是在全世界唯一性地存在。即使是在同一区块里,相同的输入地址和输出地址外加相同的OP_Return数据,的两笔交易,因为UTXO不同,交易加OP_Return也可以形成唯一性,在区块内部可以排到顺序。

    OP_Return一旦写入了区块链,就相当于有了一个时间戳,哪怕是同一区块里的交易,都因排序不一样,而有不同的时间戳。这句话是什么意思呢?就类似于,今天的人民日报第2版发表了一篇文章,那这篇文章就带有2018年7月18日这个时间戳。如果明天,在人民日报第2版完全相同的地方,又发表了完全一样的文章,但时间戳是不一样的。

    下面的这笔交易就是带一个OP_Return备注信息,OP_Retrun一般会在浏览器的输出列出中显示为“地址解析失败”,然后在浏览器的输出脚本部分显示具体的数据。

    以上信息就是Omni协议成立的关键。

    第2章 我们来设计一个货币

    现在我们来设计一个货币。

    设计货币,最重要的就是三个功能,货币的发行,建立账户,和货币的转移。

    发行必须有理有据,你不能胡乱发。我们可以约定好,一次性发行,然后永久不增加。也可以约定好按特定的条件来持续增发。只要定义好规则就好。为了方便起见,我们设计一个一次性发行,永久不增加的货币,我们先管它叫TFBC(The FirstBticoin cash's token Coin的首字母缩写),发行76亿(全世界人口,一人一个好了)。初次发行,就将所有的币存放到一个账户上。

    建立账户就很开户,允许新用户加入到这套货币体系当中来。新开的户,余额是零,然后可以接收币,收到币后可以发送币给别的账户。这个好理解。

    货币的转移,或叫支付,是我们使用这个货币的过程。这个过程必须是安全的和让用户可识别的。你不能出现一个人原本是没有币,他却能支付,即这套货币系统需要能识别出哪个账户有币,然后才能支付,也不能支付的总额超过了账户的余额。让用户可识别的就是说,你得让人知道他账户上有多少币,这个不能显示是假的,或者有人造假说自己有多少币,系统得能识别。

    有这三个功能,就实现了一套最简化的货币。

    我们使用一种中心化的思维来设计的话,就是使用一个账本,形象点说,就是一个excel表格。表格的第1列记录的是账户名字,第二列是账户余额。

    货币的发行,就直接在excel表里填写一个账户,随便叫个名字,就叫“闪电”好了,余额是76亿。

    新建账户就是在excel表格里增加一行,比如新建一个叫“雷神”的账户,余额为0。

    货币的转移,比如“闪电”这个账户要转1亿个币给“雷神”。要完成这个过程只需要修改两个数,第1是将“闪电”的余额改为75亿,将“雷神”的余额改为1亿,就完成了。

    为了保证转移过程的安全性,我们会要求记录所有的历史支付记录。这样可以通过所有的历史记录回溯到初始发行的货币量,回溯就是将支付的过程逆过来,原本“闪电”支付给“雷神”1亿,回溯就变成了“雷神”支付给“闪电”1亿。如果回溯的最终结果和发行是一样的,那就可以说明整个支付过程是没有问题。

    有了历史记录,我们也可以对所有的账户余额进行回溯,回溯的结果一定的所有的账户余额都为零(除了初始发行的那个账户)。

    那如何保证记录历史支付呢?我们可以直接在excel表的第3列开始就作为支付记录,比如“闪电”支付给“雷神”1亿,则在“闪电”的第3列记录“-1亿”,而在“雷神”的第3列上记录“+1亿”。而每个账户的最终余额,就是这些历史记录的加总。这个列数我们假定是无限的,这样就可以记录无限次数的交易了。

    如果我们将上述一张excle表,复制到很多台电脑上,然后这些电脑可以同步更新数据,那我们就使用了去中心化的方式来实现这套最简化的货币体系。

    但是,如何保证货币的发行和转移是安全的呢?下面我们来讲如何使用Bitcoin Cash区块链来设计一个安全的货币发行和转移系统,即Omni协议。

    第3章 Omni协议

    我们从第1章的描述中就可以看到,因为有OP_Return数据的存在,将BitcoinCash的区块链里的OP_Return数据提取出来,就是一个非常好的“excel表”,每一次对这张表的修改,都会被记录在区块链里,而这些数据是不可篡改,不可伪造的。按第2章的描述,就可以利用“OP_Return excel表”来设计一个去中心化的货币发行和转移系统。

    现在我们来利用BCH区块链来设计一套最简化的货币系统。

    首先是初始发行。

    我们使用一个BCH钱包来发一笔带自定义OP_Return数据的交易,交易的输入是自己控制私钥的地址A,输出有两个,第一个输出还是地址A,即这笔交易是自己发给自己,第二个输出是一个OP_Retrun数据。这个OP_Return数据写的意思就是“使用地址A当成创世账户,给这个账户注入76亿个TFBC货币”。这笔交易我们记为“铸币交易tx1。”

    因为BCH系统是不会去识别这个OP_Return里的数据的,所有的BCH节点都会直接忽略掉这个数据。那我们给bitcoincash的节点钱包做一个外挂,这个外挂程序专门用来解析这个OP_Return数据。这个外挂结合上述tx1和这个OP_Return数据,就可以解析出一张excel表格,表格的第一列就是账户“地址A”,第二列就是“余额76亿TFBC”。

    因为OP_Return在BCH网络是不会被检验的,可以被随意填写。有没有可能别人也发一笔交易,包含完全相同的OP_Return数据,来伪造我们上面发行的76亿货币呢?答案是不能的,因为他无法伪造tx1,而外挂程序需要结合tx1来解析出这张excel表格。

    那么创世交易的的创造者能不能篡改或伪造铸币交易tx1呢,也是不能的,因为创造者可以使用相同的输入和输出,但无法伪造成相同的UTXO,否则就会被BCH网络确定为双花。

    在这个新发生的货币体系里,账户是和BCH共用的,新建账户也就是新建一个BCH地址。这个很简单。

    转移货币的过程是这样的,第一次转移是从铸币交易往外支付的,比如支付给地址B1亿个币。支付的过程需要使用“铸币地址A”构造一笔BCH交易,输入是地址A,输出之一是地址B,金额为546聪(这是因为BCH网络的防尘设计,如果删掉了这个限制,金额就可以为0),带上矿工费,第二个输出是一个OP_Return,里面的数据写会被解析为“账户A向账户B支付1亿个币”,我们记这笔BCH交易为tx2。

    OP_Return里的数据,在BCH网络是不会被处理的,但在上述的BCH的外挂程序里会被解析出来,解析的结果就是更新这张货币的状态表,如下表。

    同样的,因为tx2被BCH区块链打包之后,就不可能再被伪造了,除非BCH网络被回滚了。所以这个货币的状态表就无法被伪造了。

    只要地址B上有BCH余额可以支付防尘设置和矿工费,就可以给其他地址支付这个货币了,然后外挂程序就会拿这笔交易和OP_Return里的数据,解析更新货币的最新状态表。

    以上就是最简化的Omni协议实现的代币的原理,为了更实用性,代币一般会增加很多功能,比如锁定功能,自动化转币功能……

    第4章 Omni协议的现在情况

    Omni协议在BTC是已经做好了,在BCH上还没有。USDT就是使用Omni协议设计出来的。

    OmniCore就是在BTC上使用Omni协议实现的一个客户端,使用这个客户端就可以在BTC上发币,需要同步区块。

    Omni Core下载链接: https://github.com/OmniLayer/omnicore/releases

    Omni代币浏览器: https://www.omniexplorer.info/

    在BTC上,现在一共有370种代币。下面是这些币的列表,但只有USDT有人在用,其他的都是死币。

    https://www.omniexplorer.info/properties/production

    在BCH上,我们已经构造了一笔交易,这笔交易就是按照现在的Omni协议手动构造的,等BCH上的Omni协议实现了客户端,将可以解析出一个代币,代号是TFBC,76亿。铸币交易id是这个:

    f89794db07acb6812326ef76f781203f77e5712345ac07834cab6adc403a3782

    第5章 结束语

    OP_Return可以提供非常非常多的想法,好好利用OP_Return,BCH将大有作为。

    展开全文
  • OMNI协议介绍

    万次阅读 2018-09-13 12:05:05
    OMNI  OMNI是创建和交易定制数字资产和货币的平台。它是一个建立在最受欢迎、严格审核、最安全的Bitcoin之上的软件层。OMNI交易是比特币交易,使用比特币链上的下一代功能。Omni Core是一个增强的Bitcoin,它提供...

    OMNI

        OMNI是创建和交易定制数字资产和货币的平台。它是一个建立在最受欢迎、严格审核、最安全的Bitcoin之上的软件层。OMNI交易是比特币交易,使用比特币链上的下一代功能。Omni Core是一个增强的Bitcoin,它提供了Bitcoin的所有特性以及Omni的一些高级特性。

                                                              layers.png

        使用OMNI,很容易创建令牌来表示定制货币或资产,并通过Bitcoin 进行交易。OMNI提供高效而简单创建令牌的功能,使其成为成为基于比特币的令牌首选。这种关系可以认为使ETH之于Token。

    OP_Return

         在BTC锁定脚本中,只要是以OP_Return开头的都属于“备注信息”。这种信息属于备注,不会被节点解析出来的。

        但是OP_Return数据位于BTC区块内,这个数据是不可篡改和区块里的交易信息一样。我们可以认为,交易加OP_Return,这两个信息就会是在全世界唯一性地存在。这样就避免应用它时产生双花的问题。

        OP_Return就是Omni协议成立的关键。

     

    铸币与交易

    有了OP_Return和Bitcoin这两大利器,我们可以很容易的构建起来BTC的Token。

    1、我们发一笔带自定义OP_Return数据的交易,交易的输入是自己控制私钥的地址A,输出有两个,第一个输出还是地址A,即这笔交易是自己发给自己,第二个输出是一个OP_Retrun数据。这个OP_Return数据写的意思就是“使用地址A当成创世账户,给这个账户注入6亿个XQ货币”。

    2、BTC节点不会去识别这个OP_Return里的数据的。这时候Omni会来解析这个OP_Return数据。解析出账户A,余额6亿XQ。

    3、比如支付给地址B 1亿个币。使用地址A构造一笔BTC交易,输入是地址A,输出之一是地址B,金额为0聪,带上矿工费,第二个输出是一个OP_Return,里面的数据写会被解析为“账户A向账户B支付1亿个币”。同理OP_Return里的数据,在BTC网络是不会被处理的,还是需要Omini进行解析。

    看个列子,8a061e68212cb8d84e9bf029085ff508465141c376e3b6d46fee4b1ef26d4a7d,第一张先看一下btc浏览器。第二张图看一下omni浏览器

    omni浏览器

        这是比较简单的Omni协议实现的代币的原理,代币其实还增加一些其他高级功能,比如锁定功能,自动化转币功能。想要详细了解的可以看这里:https://github.com/OmniLayer/spec

        在BTC上,现在一共有400种代币。下面是这些币的列表,但只有USDT有人在用。

    https://www.omniexplorer.info/properties/production

     

     

     

     

    展开全文
  • 它是在之上运行的协议层,类似于HTTP在TCP / IP之上运行的方式。 它提供去中心,用户货币,和其他功能。 有关更多信息,请访问。 什么是Omniwallet? 是一种新型的网络钱包,结合了安全性,易用性,多币种支持,...
  • 全方位浏览器 该站点是使用react-boilerplate构建的 科技栈 在您启动很棒的项目之前,这里是您应该了解的精选软件包的清单。 但是,拥有完整依赖项列表的最佳方法是查看 。 核 单元测试 ... 请注意,尽管react-...
  • OMNI是创建和交易定制数字资产和货币的平台。它是一个建立在最受欢迎、严格审核、最安全的Bitcoin之上的软件层。OMNI交易是比特币交易,使用比特币链上的下一代功能。Omni Core是一个增强的Bitcoin,它提供了Bitcoin...
  • omni协议usdt钱包地址交易查询

    万次阅读 2019-07-13 14:37:47
    第三方文档地址https://api.omniexplorer.info/#request-v1-transaction-address
    展开全文
  • 这种USDT存储在比特币地址上,所以每次转账(链上转账)时,都需要支付少量的比特币作为矿工费。 除了转账需要比特币作为矿工费之外,每发起一笔USDT转账,都会对应地生成一笔数量极小的比特币转账。...
  • Omni协议PHP开发包

    2021-07-31 13:37:37
    完善的Omni Layer节点RPC封装 支持利用自有节点或第三方服务获取指定地址的utxo集合 支持离线生成omni代币转账裸交易 支持利用自有节点或第三方服务广播裸交易 OmniTool支持本地部署的Omnicored节点,也
  • USDT是基于比特币omni协议的一种代币:https://omniexplorer.info/asset/31ID是31 Tether(USDT 的发行方)的官方钱包已关闭注册,无法注册钱包就无法获得 API Key,也就意味着无法实现类似基于钱包接口的开发方案...
  • Omnipeek抓sniffer空口协议以及TCP IP协议分析
  • omni api速查表

    2019-04-28 10:59:44
    Omni Core是比特币核心的一个分支,它在比特币协议之上实现了一个 新的Omni协议层。因此与Omni Core的API交互的方式和比特币核心的方式一样,只是添加了一些额外的Omni协议特性相关的RPC调用。 本文提供omni api的速...
  • Omni Core是Bitcoin Core的一个分支,其Omni协议功能支持作为顶层的新功能层添加。因此,与API的交互以与Bitcoin Core相同的方式(JSON-RPC)完成,只需使用额外的RPC即可使用Omni协议功能。 由于所有现有的比特币...
  • omni rpc api速查表

    2019-04-27 11:08:28
    Omni Core是比特币核心的一个分支,它在比特币协议之上实现了一个 新的Omni协议层。因此Omni Core的API交互的方式和比特币核心的 方式一样,只是添加了一些额外的Omni协议特性相关的RPC调用。本文提供omni api的速...
  • OmniCore RPC API中文文档

    千次阅读 2019-01-09 14:00:23
    OmniCore是比特币核心的一个分支,它在比特币协议之上实现了一个新的Omni协议层,用于代币发行、众售等应用,USDT就是基于OmniCore实现的数字加密货币。 OminCore的JSON RPC API是在比特币RPC API基础上的扩展,增加...
  • OmniPeek 基础之协议分析

    千次阅读 2012-09-13 17:49:04
     Ominpeek一款网络抓包工具,或者说网络协议分析工具。不是管是前端开发、后端开发或都测试人员。为了解数据是否正常的传递,经常会用到网络数据包拦截软件来进行分析。  Ominpeek 与我们常用的HttpWatch、...
  • OmniCore JSON-RPC API官方文档中文版

    千次阅读 2019-01-10 14:19:00
    OmniCore是比特币核心的一个分支,它在比特币协议之上实现了一个新的Omni协议层,用于代币发行、众售等应用,USDT就是基于OmniCore实现的数字加密货币。OminCore的JSON RPC API是在比特币RPC API基础上的扩展,增加...
  • omnicore api速查表

    2019-04-27 12:14:15
    Omni Core是比特币核心的一个分支,它在比特币协议之上实现了一个 新的Omni协议层。因此Omni Core的API交互的方式和比特币核心的 方式一样,只是添加了一些额外的Omni协议特性相关的RPC调用。本文提供omni api的速...
  • OmniCore是比特币核心的一个分支,它在比特币协议之上实现了一个新的Omni协议层,用于代币发行、众售等应用,USDT就是基于OmniCore实现的数字加密货币。 OminCore的JSON RPC API是在比特币RPC API基础上的扩展,增加...
  • OmniLayer / omn​​icore API 中文版

    千次阅读 2018-06-15 15:28:16
    JSON-RPC APIOmni Core是Bitcoin Core的一个分支,其Omni协议功能支持作为顶层的新功能层添加。因此,与API的交互以与Bitcoin Core相同的方式(JSON-RPC)完成,只需使用额外的RPC即可使用Omni协议功能。由于所有...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,708
精华内容 683
关键字:

omni协议