澳门新濠影汇_首页

您的位置:澳门新濠影汇 > 科技中心 > 干货|读懂公链学开发:深入浅出剖析比原链技术

干货|读懂公链学开发:深入浅出剖析比原链技术

2019-08-22 04:26

账户模型,现在的账户模型都是以地址的中心的,但在实际应用场景中,我可能希望我有一个小号,这个小号跟我的主号之间有关联,对吧?我的热钱包放在别的地方,如果密钥丢了之后,别人如果没有转走,我可以把它再转回来。所以我们认为除了传统的地址模型之外,可能会有多账户模型,来解决我们各种隐私及应用的诉求。

最后通信层通过两种方式把区块同步出去,第一种是快速同步,它会立马把新区块广播出去,为了让其他节点更好收到这个块,但是快速同步有个问题:如果你我之间的区块高度相差很大,比如你是2万,我是1万,你的第20001块传递给我也是无用的,因为我没有2万的父块无法进行验证,所以还需要正常的区块同步来进行被动同步。对于实践中来说,经常在线的节点,比如矿池,交易所,钱包等都会通过第一种方式来同步区块,而不经常在线的,比如用户偶尔使用的全节点钱包一般会触发第二种机制。

资产模型,UTXO、账户模型都是比较简单的,那么基于我们业务的需求,我们可能会需要会更复杂的做法,比如授权。资产的使用在我这里,但是权益在你那里,这个时候我该如何去定义资产的所有方式,这是我们需要去调研去发展的一个部分。

钱包层分为四块:私钥管理、账户管理、资产管理和交易管理

最后是跨链主网、跨链资产交易的需求,互联网都已经连接起来了,难道我们的资产还是分割开来的吗?现在的数据孤岛已经很少了,所以我们的资产也不能有孤岛。在现在这个阶段,还不存在一条公链搞定一切,我们一定会考虑将公链连接起来形成组网。对于这件事情而言,它的稳定性、可运维性、可管理性都很重要。

我们知道区块链的创新之一就是解决了价值传递问题,传统互联网可以很方便地传递信息,但是并不适合于传递价值,因为不能保证我把某个东西给你,你多了而我少了,信息可以方便地复制和传播,结果往往是你有一份我仍然还有一份。而区块链通过一系列的措施较好地解决了这个问题,但是我们看到不论是比特币还是以太坊,它本身还是在虚拟世界中做价值传递,而比原链想打破这个界限,把数字世界和物理世界中的资产在比原链上登记,以比原链作为连接的桥梁,实现流通、对赌以及其他复杂操作。

时间关系,我给大家简单这里,希望这些信息对大家有帮助,谢谢。

澳门新濠影汇 1image

从这个角度来讲,我来举个例子,BNB为什么最近能涨起来?从背后的逻辑看交易所发行的币背后是有用户的,它的价值和使用时相对比较稳定的,然后它用于内部资产的转移,资金的流动,使得它有基础价值的锚定,这样生存周期就会长一些。这就是我上面所说的用户和资金的必要条件。

今天主要给大家介绍一些比原链的基础技术知识,希望能给大家带来一些启发。同时比原链的开发大赛也在进行当中,欢迎大家参加我们的比赛,我们准备了200万BTM的丰厚奖励,同时推荐身边的开发者参赛也能得到推荐奖励。(活动详情见报名网站:http://bytom.io/developers_zh/)

数据存储服务刚刚谈的比较多了,就不赘述了;多链组网,现在有一些方案,体系化都不完整,跨境资产交易就更差了。对于大部分人来说,钱包都还没用得那么清楚,会用钱包上的资产跨链吗?支付宝担保支付大家都能理解,我的密码丢了之后打电话找支付宝就好,我们能不能在这个方面变得更加易用,这是需要考虑的。

内核层相对来说较为复杂,从最上层看,内核层有五个模块:孤儿块管理、共识层、区块树管理、数据存储层和交易池。

第二是缺少资金,区块链它是一个非常好的金融技术和金融模型,但是你有钱吗?没人、没钱怎么做?所以我们一定要让这上面有钱进来,很多我们之前看到的项目各种概念,最后都死在了没有新资金入场,纯粹通过二级市场操纵。

澳门新濠影汇 2image

3月9日,在NEXT区块链技术与应用影响力峰会上,Zerohm创始人钟馥百发表了主旨演讲,他曾是蚂蚁金服区块链技术负责人,星云链创始人兼CTO,有着丰富区块链项目开发经验的他表示,区块链发展俩不开核心三要素,一是核心技术,二是基础设施,三是应用 资产,只有这三个条件全部满足了以后,技术价值才能真正迎来爆发。

  • 招募50名开发者(识别下图二维码即可报名)

  • 报名费100元为参赛押金,参赛者个人原因不能到场参加活动概不退款;参赛者全程参与活动,待活动结束后现场退还。9月14日18:00开始第一次签到,9月15日和16日每天早上都要记得签到哦。

  • 主办方免费提供2天的食物、饮料,并为每一位参会者准备一件文化衫

以我的观点来看,区块链公有链的很多问题还没有解决,首先数据存储的诉求,比如海量数据如何存储,比如我们的非标准资产不一定通过数字的方式来呈现,再比如智能合约上也会存储大量数据,如何提高它的性能;

澳门新濠影汇 3image

基础服务缺失的就很多了,智能合约执行引擎,包括EVM/Javascript/Web Assembly/Chaincode,现在有很多项目开始用Javascript做智能合约引擎,无他、性能好、安全、开发快,整体问题不是很大。

比特币的POW算法因为其能源消耗和矿机的利用率一直被人诟病。能源消耗作为保证系统的稳定性的代价也许还能说得通,就像为了挖掘矿产也需要消耗电力一样(当然因为竞争的原因导致过量的电力消耗也仍然是一个问题),但是矿机利用率的问题确实是一个纯粹的消耗,比特币的矿机除了做哈希计算,毫无其他利用价值,一旦新一代矿机到来,算力爆涨,那么旧的矿机将直接报废。

澳门新濠影汇 4

3.2 比原链分层模型

关于我们的基础服务,对比互联网来看,有了TCP/IP协议就有互联网了吗?并不是,我们还要有数据、存储、带宽,这些东西一起构建起我们整个互联网基础服务。

澳门新濠影汇 5image

以下为钟馥百演讲内容精编,由巴比特整理发布。

在第三方托管合约中,买方先将一定的资产托管给可信第三方,然后由第三方根据买卖双方的交易情况,选择approve操作还是reject操作,如果交易正常发生,那么托管第三方将触发approve操作,将买方锁定的资产打给卖方;如果交易异常,卖方欺诈,那么托管第三方触发reject操作,将资产退回给买家,从而保证整个交易过程中各方的利益。如果这个第三方欺诈怎么办?其实合约当中已经考虑这个问题了,买家锁定的资产的接收者只能是买家或者指定的卖家,第三方无法获取这笔资产,从而避免中间人作恶。

现在隐私计算有几种方式,一是零知识证明,之前做得性能太差,现在据说已经可以提升10倍以上了,就是我做一个证明,可以很快得到验证。二是多方安全计算,这是图灵奖得主姚期智提出的,据说万向做了一个链比较完整的实现了,但还在测试,没有得到商业上的证明。三是同态加密,比较复杂,性能开销比较大。总的来讲,这是隐私计算的一些技术,那么随之而来的,大家可能关心的问题就是量子计算机出来之后会不会快速的就把我的私钥给撞出来了,现在看起来是有可能的,但是也没那么快。不管怎么样,当我们想要商业规模持续不断的运行10年、50年、100年……但是链上的数据从第一天开始就公开的话,一定是存在风险的。这意味着量子计算机出现之后可以把20年前的数据解密对不对?从长远来看这是我们需要去解决的问题。

安全性是我们考虑的首要准则。因为我们是资产专链,将来会有各种各样的资产运行在比原链之上。

共识算法包括POW/POS/DPOS/PBFT,哪个更好一些呢?我觉得不同的场景使用不同的算法。不管怎么样,我们在这上面找到了一些行之有效的方式,能够达成区块链上数据的一致性共识。我的观点是它叫数据一致性共识,而非业务一致性共识。这些算法的区别是什么?POW/POS/DPOS这类算法都会有一个确认时间,但是PBFT这类算法确认时间很短,可以达到秒级,我们可以说上链即确认,它的技术限制就是网络不能特别大。但能不能达到商用,我们更关注的延时情况。

大家好,非常感谢大家在百忙之中抽空收听比原链技术入门课程,我是比原链技术运营经理钟立飞。

加密算法,区块链上所有的数据都是公开的,但是不是意味着我需要把我所有的信息全部都公开,假设这里面涉及到了跟我隐私相关的数据,这些数据可能会参与到网络里的某种分配,那么我们如何在区块链上保证个人的数据隐私呢。不管你如何做脱敏,通过你的行为,通过一些分析方式,还是又可能发现。隐私计算一定是未来实际商业场景中需要解决的。

比原链的特性:

区块链什么时候能够爆发?如果要去评估这件事,首先需要解决核心技术的问题,以及上层的基础服务的依赖,有了这两个之后,区块链的发展会变得更快。那么我们现在处于一个什么状况呢?2016年,区块链的概念开始在国内被注意,17年、18年经历了币圈的涨跌,我们炒了那么长时间的区块链,为什么大家还看不到区块链的发展方向到底该怎么做?反正我找了一圈并没有找到特别好的应用,我们并没有把区块链技术真正的推广开来。

  • 引入了资产ID以及一套体系,从而可以方便地支持多资产的交互

  • 引入MUX交易池结构,简化多资产交易的交互

  • 创始合约,方便在比原链上发布资产

  • 实现了BUTXO上的图灵完备的智能合约

其次,对于智能合约执行引擎,应该设计一种什么样的编程模型或者编程范式,使得整个区块链的应用开发变得特别简单,就像我们现在去做一个互联网服务器一样简单。另外,我们如何提供一种更安全的智能合约执行引擎及编程方式,做到这一点,我们才能吸引来更多的开发者使用。

4.4 MUX交易池结构

区块链它不是一个用户的技术,我们要回归到技术核心,它的共识算法、加密算法、账户模型、资产模型都需要强大的技术能力支持。我们需要关注它的几个指标,安全、性能、易用。安全是基础;性能,比特币用来转账没问题,但相较于支付宝、微信它就太慢了,我们应该需要秒即确认,因为没人愿意等很长时间对不对;易用性,比如区块链钱包,我们都希望它是一个很简单的应用,就像是我的银行账户、支付宝账户,我只需要记得我的手机号、身份证号和密码就行了,不需要去理解很复杂的公钥、私钥、助记词。而且我现在还要担心我的手机丢了,密码不小心被别人看见了,资产被盗了之后能不能找回来这些问题。现在看起来是不可能的,被盗了就只能自个儿回家哭。所以我认为我们需要有这样的核心技术,保证大家的安全、性能和易用,这样才能推而广之。

合约层验证完成后,区块的验证已经通过了,证明这个区块已经合法了,我们要将这个区块落盘,不管是主链上的块还是孤儿块,都会落盘,我们会将区块数据落盘,同时如果你在这个区块中的UTXO有变动,那么我们会将UTXO进行更新,把已使用的删除把新的增加,否则就会引起双花了。

核心技术:如何做到安全、性能和易用?

比特币是点对点的点子现金系统,以太坊是一个巨大的分布式计算机,那么比原链是什么?比原链想要连通原子世界和比特世界,促进资产在两个世界间的交互和流转。

我觉得区块链行业现在面临的问题,第一是缺少用户,数来数去就200万用户,现在确实冷了很多,开发又慢慢跳回去做移动互联网了。联盟链跟原先的客户体系完全不一样,它用区块链可以,不用也可以。所以我们要解决的第一个问题就是让用户进来,评价一个区块链应用好与不好,首先就是看它能不能带来新增用户,而不只是在存量市场里面去做。

  • SourceID和sourcePos都是用于定位前一笔的输出,我们通过SourceID找到上一笔关联的交易,但是因为比原链是多输出的,所以还需要一个位置信息,标识是属于第几笔交易。

  • 资产ID和资产数量不用多说。

  • Control Program也就是智能合约是很关键的一个信息,前面也说过合约层验证需要将合约传入虚拟机运行和验证,每个UTXO的输入都带有Control Program。

  • Address,地址分为账户下面的地址和合约的地址,分别用于锁定资产使用,可以没有Address,但是不能没有合约。

基础服务:如何做到稳定性、可运维性、可管理性?

澳门新濠影汇 6image

澳门新濠影汇 7

比原链的合约是图灵完备,但也是无状态的,无状态的意思是你不能在一个资产合约中寻找到记录这个资产之前发送的事情,这块后续会考虑如何进行完善。对于比原链合约的安全性,因为每个资产都会有自己的合约,所以无法像攻击以太坊合约账户一样,直接影响其世界状态,从而导致大量的威胁,如果黑客攻击了比原链的上的一个UTXO合约,那么也仅仅影响该UTXO,而不会影响到其他UTXO。

应用 资产:用户和资金是核心,支付和资产化是方向

澳门新濠影汇 8image

澳门新濠影汇 9

3.4 区块的诞生

接下来我来分享下应该怎么玩,我认为有两个大的方向,第一个是做支付,做支付的话就会有大量的外部资金能够进来,通过币的流转再出去,形成产业的流动。第二个是资产化,资产化涉及到我们传统的金融市场,但这个市场份额基本已经被股票吃掉了,那么可以做些别的,比如房地产,比如艺术品的资产化,以及我们社区里面某种权益的资产化,通过这种方式来完成价值的流转。我们通过技术手段让它的流动性加强,把一个非标品变成一个更加标准的资产,那么这样就能够真正发挥区块链的价。

比原链可以分为三个模块,从上到下分别为:钱包层、内核层和通信层,上图中的比例是指代码所占的份额。

澳门新濠影汇 10

比原链上的合约是构建在UTXO模型之上的,和以太坊的面向账户编程的模型不一样,比原链是面向资产编程,你的Dapp针对的是一个个的资产,对资产锁定、验证、加锁和控制。

  • 钱包层大家平时接触比较多,收款或者打款的一个操作界面,比原现在有一个全节点钱包可以供大家使用。

  • 内核层可以简单理解为分布式系统中大家都认同的一套规则,在通信过程中,两个节点需要有相同的规则,才可以达成共识,如果两个节点规则不同,那么其实是意味着分叉。比原链中内核层占有非常重要的位置,代码量也是最大的,占据了超过半数的容量。

  • 通信层主要负责节点之间信息交互,包括区块同步、交易同步等,比如交易同步,你需要把交易发到全网每一个节点,最后由矿工节点打包,比原链的通信建立在比较成熟的点对点网络的技术之上。

  • 孤儿块管理是什么呢?因为比原使用POW共识算法,就是采用挖矿的方式来产生区块,如果我挖到了一个块-块A,你挖到一个块-块B,最后只有一个块会成为主链,另外一个块就成为孤儿块了,在以太坊中还会有叔块的概念,我们这里面统称为孤儿块,就是未成为主链的合法区块。孤儿块管理是一个模块,在某一高度出现多个块时,这个模块就负责收集和存储非主链的块。

  • 共识层比较复杂,它也是全节点最核心的部分,当一个区块来的时候,我如何验证和确定这个块是合法的、我是否该认同这个块,这就是共识层的工作。我们把验证分为两部分:

    一部分是区块头验证,需要验证父块的信息,父块是否存在,父块的高度,然后是验时间戳,这块比较复杂需要一系列的验证流程,然后就是pow的验证,要证明你有足够的算力计算出难度值,从而有这个出块或者是记账的权利;

    另一部分是交易验证,这块我们比原设计中和区块链有点不一样,就是比原有个BC层,BC层是一个map,用户可以在这个map中找到所有跟交易相关的信息,专门设计用来提高交易验证的性能,在BC层我们把交易的常规数据都验证完毕,然后就是智能合约的验证,我们支持图灵完备的智能合约,所以底层有虚拟机层,这个前文讲过。在每个交易进入时,需要验证交易的每个输入,每个输入其实被一个智能合约所守护,把输入传输到虚拟机中,将用户放到隔离验证的参数也放进去,然后验证这个输入是否合法。

  • 区块树管理,主要用来记录全网所有的区块,为什么我们说区块树管理而不是区块链管理呢,因为之前讲过会有孤儿块,可能在某个高度出现分叉的情况,所以通过树的形式记录了全网所有的块,我们还称他为block index,因为可以索引到比原所有的区块。

  • 数据存储,就是把区块和其他的一些数据落盘做持久化存储。这里列出来两个存储的数据:第一个是区块数据,这个就是在网络上广播的原生区块信息;第二个是UTXO数据。为什么我们会存储UTXO数据呢?如果不存储UTXO数据,当有一笔交易来的时候,如果你要验证这笔交易的UTXO是否被使用了,你需要历遍所有的区块,对性能会有很大影响,如果存储了可用的UTXO数据,那么就相当于有了一个缓冲池,当交易到来时,你只需要查找该UTXO是否存在在数据库中即可。

  • 交易池,当你发送了一笔交易到全网,如果这笔交易还未被验证,那么这笔交易是存储在每个节点的交易池中,也就是说交易池维护了全网已经发出但没有被确认的交易,跟它关联最大的是挖矿这个模块,如果我要产生一个新的区块,那么我需要从交易池中拿一系列的交易并把它打包成块,然后进行POW的工作量验算。比原链的交易选择使用FIFO,也就是先进先出的策略,就是按时间顺序,早入池的早打包,防止因为交易费低而迟迟得不到打包的现象,这块也很容易扩展其他的策略,要看具体的场景。

穿插一个交易过程的案例:比原链是如何将一笔交易发给别人的。

澳门新濠影汇 11image

介绍完了各个层的架构之后,我们用一个例子来串一下。举一个非常有代表性同时也是入门区块链需要掌握的例子——区块的诞生,区块是如何被矿工挖出来,然后再传播到其他各个节点的。

最后我们通过两个合约模板的例子来结束本次的分享吧。

之前也说过,因为比原链上需要有各种各样的资产进行上链和锚定,需要一个可以产生资产的方式,就是使用创始合约来创造资产和它的数量,创始合约可以看作类似于ERC20的协议,但是又有很大差别,也是因为创建在UTXO模型之上,创始合约并没有合约账户,也不保存世界状态,你可以认为凭空创造了一个指定数额的UTXO。

这个合约可以类比于在淘宝中买东西,买家可以类比于淘宝买家,托管方可以认为是支付宝,卖家类比为商家。买卖双方都是无信任的,买家的钱不是直接打给卖家,而是通过一个可信第三方先进行托管,如果卖家不发货或者想要欺诈,那么卖家无法拿到第三方托管的资产。

内核层

4.5 比原链交易过程详解

下面进入正题,本次分享主要分为以下几部分:

本文重点分享AI-POW算法和资产防伪ODIN标识。

比原链独创的MUX结构,为了使多资产的交互能够更加安全和方便。

总之,比原链是想用区块链技术来实现各种资产交互的公链,作为资产专链,它比以太坊领域更垂直,比比特币更扩展。

澳门新濠影汇 12image

澳门新濠影汇 13image

澳门新濠影汇,时间:2018年9月14-16日

模块化设计。

  • 钱包有存储所有的UTXO信息,也就是之前说过的交易模块,这些UTXO就构成了你可以花费的余额。

  • 钱包收到你的信息,你要向某人发送一笔,比如20个BTM给某个人,然后我们就会去找所有BTM的UTXO,多说一句,因为比原是多资产的,所以我们除了BTM的UTXO之外也会有其他的UTXO。钱包会去寻找合适的UTXO,但是这里必须了解的是:UTXO模型和账户模型不一样,你想发20个BTM就在余额减去20,不是这样的,你必须去找合适的面额,如果找不到怎么办,比如我只有一个10BTM数量的UTXO和一个30BTM数量的UTXO,我们不会选择10BTM,因为不够,所以只好选择30BTM的UTXO,这个时候因为多余10 BTM,所以我们必须把剩下的10个找回自己,所以就需要一个找零的机制,我们会向钱包申请一个找零地址,输入30BTM,输出有两个:第一个是要给其他人的20BTM,还有一个10个BTM找给自己的UTXO,然后钱包会帮我们构建这样的一个交易,输入30,输出20和一个10的找零,然后找到要花费的UTXO的智能合约,找到账户信息并加入到交易模板中。

  • 放到交易模板之后,钱包会让私钥模块给钱包进行签名,代表我可以花费并且要花费这个30BTM的UTXO,签名完成后我们会将交易交给内核,然后由内核验证这笔交易,验证完成后将这笔交易放入交易池,然后再传输给通信层,然后再广播到相邻节点,这样一笔交易的发出也就完成了,当然这是一笔还未确认的交易,需要等待矿工的打包和确认,后边的流程就是区块的诞生流程了。

对于Trade过程,只要别人发送了trade里面规定的对应资产种类,对应数量的资产给我,那么他就可以拿走我锁定的资产。如果在很长时间内都无法成功交易,那么合约发起人也可以通过Cancel方法取消这个合约,然后拿回自己锁在合约的资产,当然需要验证这笔资产是这个发起人的,不可能所有人都能取消这个合约从而拿到资产。这个合约可以作为一个去中心化交易所的

5.2 合约模板的例子

  • Bytom是什么

  • Bytom有哪些特性

  • Bytom的设计原理和技术架构

  • 比原链的UTXO模型以及一些主要的流程

  • 比原的智能合约和合约模板

前面提到可以在比原链上登记无数的资产,那么如何保证某一种资产是真实的,不是其他人伪造进行欺诈的呢?我们通过ODIN的方式来进行鉴伪,ODIN的方式有点类似于域名,只不过域名是由中心化的服务器管理,而ODIN是写入到比特币区块上的,任何的资产ID在比原链上是具有唯一性的,但是名称却不一定,我们通过ODIN来做唯一性的映射,将资产的名称和资产ID进行关联,比原链会拥有一个根的ODIN标识,从而能够管理其下的二级ODIN标识,任何想要在比原链上注册唯一资产标识的团队或者个人都需要通过比原链的根标识进行认证,如果考虑到去中心化,那么可以由比原链团队和其他权威机构来共同管理这个权限。

  • 首先使用较为成熟稳定的关键技术,包括我们之前讲到的POW共识算法,其在比特币上稳定运行这么长时间,也很好地解决了双花的问题,我们沿袭了UTXO模型而没有采用账户模型,牺牲了部分的便捷性但是提升了安全性,我们知道在以太坊产生的诸多安全问题中,大部分是因为其合约账户编程漏洞从而遭到攻击,而且一旦攻击则会影响到全部的资产。

  • 比原链在开发过程中,会有详尽的代码审计,多人同时研究一段代码,最后在pr的过程中由架构师进行review再合并,同时具备较为完整的测试用例,从而从开发层保证安全性。

  • 比原链还积极和其他的一些著名安全厂商合作,包括360、慢雾等团队,从更加专业的角度来保证比原链的安全。

地点:成都高新区天府五街200号菁蓉国际广场2号楼A座12楼中韩互联网+新技术孵化器

通信层架构分为节点发现、交易同步、区块同步和区块广播。

本文由澳门新濠影汇发布于科技中心,转载请注明出处:干货|读懂公链学开发:深入浅出剖析比原链技术

关键词: 澳门新濠影汇