近日,資本市場學院等机构主办的第二期“西麗湖金融科技大講堂”邀请腾讯区块链业务总经理蔡弋戈为大家带来了《来一场区块“恋”》的精彩分享,现场的听众们纷纷惊呼:终于有个人把区块链说明白了。
近几年,比特币的创富神话令人跃跃欲试,挖不出来比特币,那就抓紧区块链的风口吧,于是乎众多与区块链相关的讲座、课程、论坛如雨后春笋搬冒了出来,大家屡屡被“羊毛党”来回收割,不断听课参会。
然而忙活了一大圈,真正弄明白区块链的人寥寥,更多的人既焦虑又一头雾水。为了避免大家再次被收割,本期财经大讲堂带来蔡弋戈1万多字的精彩分享,快来认识真实的区块链吧。
嘉宾简介:蔡弋戈,腾讯区块链业务总经理,P4级产品专家。
2004年毕业于南京大学计算机系,为腾讯服务十多年,前后历任技术、产品策划、产品运营等岗位。目前蔡弋戈作为腾讯区块链业务负责人,重点深耕场景,布局业务生态。
腾讯区块链已经在供应链金融、数字资产、物流信息、法务存证、公益寻人等场景进行了广泛应用。
核心观点:
一,为什么区块链这么拗口的词能火?
因为有一种区块链存在于中国人的微信群里,涵盖哲学、社会学、经济学和神学等,还有一种区块链则存在于技术天才的大脑里。
二,为什么叫区块链?
因为底层在做记账(运算)时每十分钟会产生一个区块,这些区块自2009年1月份开始连接起来,已形成了长长的链条,所以叫区块链。
三,为什么比特币作为一种没有信用背书的货币会火?
因为比特币依托的区块链技术太强大,黑客与其黑比特币不如挖矿,且比特币是通缩货币,价值会越来越高。
四、为什么比特币是通缩货币?
因为规则决定,每四年奖励50个比特币,每四年奖励的比特币数量会折半,因此比特币的总数值是无穷逼近2100万枚的过程,永远不会达到峰值。
五、为什么大家要当矿工去挖矿?
因为“挖矿”是一种数学运算,是抢夺记账权,一旦自己的Hash值运算获得了大家的认可,就可以得到比特币奖励。
Do you know?
你知道分布式数据库和分布式账本技术的区别吗?到底哪一个才是区块链的技术支撑呢?
你知道1万个比特币换了两个披萨饼竟然被写进比特币的历史吗?为何程序员们还为此欢呼?
你知道区块链也和我们自然人一样,成年后,会活成自己曾经讨厌的样子吗?
以下实录经蔡弋戈本人核对并授权本报发表:
【蔡弋戈】:下午好!很高兴有机会跟大家在这里分享。区块链确实是蛮热的词,大家可能好奇挺坳口的词为什么这么火?区块链可以炒币,这里面有很多投机的需求,实际上除了炒币,它是我们深入思考的命题。我是腾讯区块链业务总经理,加入腾讯挺多年,我是做研发出身,基本上腾讯经典的岗位都轮过一遍,产品经理、策划业务,最近几年转向金融科技领域,今天我跟大家分享区块链。这也是我在内部分享的课程,前半部分先给大家讲讲什么是区块链,重点是第二部分,我们的应用是什么,腾讯对这件事情的思考是什么,希望通过腾讯在应用方面的思考可以启发大家进一步思考,比如说各自所在公司业务未来怎样结合区块链,这是今天分享的目的。
比特币=区块链?
比特币是区块链吗?到今天来讲,大家对这个问题可以清晰判断,比特币不等于区块链,两者是什么关系呢?比特币是区块链很成功的应用,也是因为有了比特币之后我们才会关注为什么没有背书的数字货币会这么火?我们发现底层有技术的组合,最后我们给它取名区块链。
我们追溯它的历史,2008年10月31号,日本人中本聪,在一个邮件组,由世界加密学家、密码学家、数学家、技术极客,一个小圈子大概几百号人,他们九几年开始关注,我们是否在技术方面可以做加密的数字货币用到网上安全转账,美国的圈子里比特币出现之前已经有很多尝试,比特币不是横空出世的产品,只是因为整个系统构建很成功,所以让大家一下子爆发了,如果大家关注它的历史会发现,这个事情不是一蹴而就。很多密码学家、前期探索者前赴后继在做一些设计,力图设计安全、加密的电子货币,包括美国大名鼎鼎的Paypal前期就是做加密货币的。很多不同路线的尝试,这个圈子是在加密密码学、数字货币领域有很多大咖的圈子。中本聪在2008年10月31日发了一个文件,发布了白皮书《比特币:一种点对点的电子现金系统》,比特币最终成为区块链最为广泛、成功的应用。
没有信用背书的比特币成为了新的“宇宙大行”
从比特币看区块链技术有多强大,比特币运行已经超过九年,市值已经是宇宙大行,一枚比特币价格最高时10多万人民币,现在8000多美金,大概5万人民币左右,它的市值很夸张。之前数字货币的运转机制,很好奇他的代码是开源的,所有人可以获得它的原代码,如果这个系统有漏洞的话,黑客一样可以做很多的攻击。没有任何的责任主体,不像法币有责任主体,比特币是没有责任主体、外部信用背书的货币,市值变成了宇宙大行。
分布式数据库VS分布式账本技术 中心化VS多中心
区块链确实是很强大的技术,区块链到底是什么?如果从技术的角度解释这个事情的话,区块链就是一种防篡改、共享的、可追溯的分布式账本技术。
提起分布式账本技术,分布式的数据库在很多领域已经有很好的应用,尤其是金融、银行系统,要做分布式数据库灾备,两地多中心,这些措施就是为了防止某个机房一旦断电,可以快速切换到别的机房,在用户体验上不受任何损害,没有感知,这就是分布式数据库的应用价值。分布式账本技术和分布式数据库有什么区别?分布式数据库是有中心的,比如说我们在上海、北京、深圳三个地方有三个机房,同样接一个数据库,某个时间我们是以某个机房的数据库为中心,所有数据是从这个机房写入再同步到其他的地区,它是有中心,其他的节点是由某一个中心往外集中,这是分布式数据库的特点。
分布式账本技术恰恰相反,它是没有中心的,这是最大的差别,这个网络里如果有六个节点的话,每个节点都在某个时刻有可能写入数据,就会带来一个问题,数据写入以后怎么同步?深圳的机房写入,往其他的机房同步就好了,这是很简单的,每个节点都写入,如果没有很好的共识,可能账本记得不一样。
多中心带来一些变化和挑战,区块链是一种能实现防篡改、共享、可追溯的分布式账本技术,和传统的数据库对比的话,可以理解为是一种残缺的数据库,学过数据库知识的人都会知道有四个基本操作,区块链只支持查询和插入、新增,不支持更新。它可以做到防篡改,单个点的修改必须通过其他多个节点共识认可之后,比如说节点一,会通过共识算法,其他节点验证通过以后,整个网络才会同步。
比特币的账本是透明的
可追溯,区块链账本只准许写入不允许删除,意味着每个修改都会在链上形成新的记录,区块链溯源也是这个道理,整个调整是可追溯而不是记录一个结果。共享是因为整个账本对参与节点都是透明的,尤其是在比特币网络里,大家对比特币网络感兴趣,我们首先去下载比特币软件,比特币网络2009年上线到现在,整个账本一共有100多G,下载到电脑就可以查看这些账本。比特币诞生到现在的所有参数,你不知道谁给谁转账,但转多少钱是知道的,什么时候转、转多少比特币是完全知道的,这是透明的账本,这是它的几个特点。
为什么叫区块链?第一次听到这样的名词很拗口,什么叫做区块链?这是很难理解的,区块链是英文译过来的词,Blockchain。底层在做记账的时候,整个数据结构是怎样的?其实是一条链,链的节点是区块,从2009年1月份开始,比特币每十分钟产成一个新的区块,一直到现在,整个链里有多少区块?平均十分钟一个区块,可以推测出区块高度是多少,这是底层数据结构的实现,每十分钟会有新的区块诞生。
为什么有链的概念?链是区块的Hash运算了Hash值,如果看区块里面的内容会发现,区块有一个区块头、区块体,每一个区块包含上一个区块的Hash值,Hash值是唯一标志上一个区块。每个区块在区块头都会包含上一个区块链的Hash值,有一种虚拟链的概念,能链接在一起,所以叫做区块链。
区块体就是各种基于比特币的转账交易,我给我朋友转10个比特币,我就会用比特币钱包软件给我朋友提交转账,这个就会进入到矿工节点进行排队等待确认,矿工节点会从我的队列里把最近十分钟的所有交易进行组包,组成整个交易体,再加上区块头会组成完整的区块,他会开始做运算。
比特币挖矿=Hash函数运算
为什么要挖矿?刚才我们讲到一个概念,每个节点都有机会做记账,今天在座所有人都是比特币网络的参与者,我们都拿一台电脑运作区块链软件,技术的角度讲,每个人都是有这个概念被选中做某个十分钟这个区块产生者的节点,每个人都有权利写入数据。这么多人,每个十分钟区块的产生由谁写?一定要有一个机制,不然会乱。
每个十分钟新的区块大家都来写的话,账本就完全一致的,这个技术就废了。每十分钟诞生的新区块一定要有游戏规则决定由谁写,这也是为什么要挖矿,挖矿意味着我们对这十分钟以来所产生的交易记录,所有人拿着电脑运行比特币软件,按照游戏规则做数学运算,谁最块把这道题算出来就由他来写。
挖矿是经济激励手段,激励大家抢夺记账权,一定要有激励,没有激励、没有好处的事情大家都不会做,挖矿是要激励大家抢夺记账权,挖完矿是可以得到比特币,一会儿我会讲比特币怎么来的。到底什么是挖矿?这个概念好象很高深,什么是挖矿?电脑里怎么挖矿?是一种数学运算,就是所谓的Hash运算,把任何一个文本通过一次Hash函数的运算最后都能得到一个随机数,就像上面的随机数,32位的随机数值。它有不同的位数,根据标准函数组可以做预算,有16位、32位、64位、128位,位数越高可破译度越高,越安全。
重复运算算出来还是那个值,是不会改变的,这是一个特点。反过来逆推,拿这段Hash值逆推原始的文本是什么基本不可能,这是数学密码学的算法里给你保证,目前用的计算机算力是逆推不回来原始文本的,所以它是比较安全的签名能力。对重要的文本签完以后把Hash值发给我的朋友,传输的过程中没有被篡改,它能起到这个作用。
一次Hash运算在电脑里是很快的过程,一点负担都没有,为什么会叫挖矿?现在矿力的竞争、算力的竞争愈演愈烈,还有专门卖矿机的企业,因为一次Hash运算看起来是很简单的事情,问题就出现在比特币对算Hash函数的值本身是有要求的,这个值本身要符合一定的条件,产生的Hash值前面若干位必须等于零,这个就大大增加了难度,因为并不知道原始文本输入进去前面多少位一定能产生多少位为零的Hash值,这是不可推测的,只能拼命试。
矿工在做什么?每个矿工都会收到比特币网络十分钟以来新的、待确认的记录,他从队列拼,按照区块包的规则拼起来,就拼成这样的区块,这个区块拼起来以后我们会看到一个随机数,为什么需要这个随机数?就是矿工用来做Hash运算,算出符合要求Hash值的手段。比如说先选1,整个区块包产生了,填入1以后做Hash运算,算出来的值有没有符合条件,发现不符合条件就再算一次,一直算到几百万次,直到某次运算发现若干位为零,就可以抢夺到记账权。
假设我们也在参与挖矿的话,整个过程就是这样,我们的电脑运行比特币软件,就不断把十分钟最新未交易的确认打成包,把包头拼好,随机数填进去,不断做反复运算,算出符合条件的Hash值。总有一个人的电脑是会算出来符合条件的Hash值,这个电脑就会给其他比特币节点的人发消息说我算出来符合条件的Hash值了,你们帮我验一下。其他人原本正在参与运算,收到这个消息包以后就会停下来帮他做一次校验,他发给大家区块包以及算出来的Hash值。别人拿到区块包和Hash值,自己做一次运算就可以得出Hash值和发给他的Hash匹配,如果是一样的话,确实是你算出来的,就可以认可他。大家就会把各自电脑里的账本加上新产生的区块,就达成了某十分钟账本的一致,这十分钟要产生新的区块,区块里面包含十分钟里所有的交易记录,是由谁产生的,最快算出符合条件Hash值的矿工节点产生的,广播给所有人,所有人参与校验,包括交易合法性的校验,认可它了,就把发给他的区块写入到本地的账本里。通过这个机制就完成了某十分钟新区块的网络同步校验一致。
全网的比特币数量极限是2100万
大家会很好奇,矿工是算出来了,可是算出来对我有什么好处?不是要拿比特币吗?比特币从哪儿来的?其实就是在交易信息包体里,矿工第一条记录写,系统给我发放多少比特币,2009年规则是这样,每四年,矿工确认一个区块可以得到50个比特币,第二个四年会折半成25个,现在是第三个四年是12.5个,即矿工每确认一个区块得到的奖励是12.5个比特币。2020年以后变成6.25,比特币来源于这里。每个矿工组包、组交易信息提,第一条记录就是记录系统给我发放多少比特币。他把这个区块的Hash值算出来,别人认可他,这个奖励就到手了。这个账本别人都认,就意味着他拥有这个比特币了,他是通过这个机制获得的比特币。
通过这个机制可以了解,为什么比特币是通缩型的货币,是由这个规则决定的。每四年奖励会折半,没有任何新增,就是系统给矿工结点的奖励包。我们自己都会算一遍,2009年开始十分钟一个区块,第一个四年奖励50个比特币,一年区块能诞生的数量是有限的,这是固定的,可以算出来,第一年诞生这么多区块,每个区块奖励50个比特币,比特币的总数值是无穷逼近2100万枚的过程。它永远不会达到峰值,因为每四年会折半,所以它是通缩货币,它是有上限的,可以用数学函数算出来。这也是为什么比特币越来越贵,是因为比特币的总数量是固定的,而且它能精确到小数点后八位,所以拆得很细。
矿工除了获得系统奖励的比特币,还能赚取交易每笔的手续费,一个区块的大小是有限的,自然会产生新的疑问,某十分钟产生的交易很多,已经超出区块所能承载的范围,哪些交易要被写到区块里?哪些交易还要继续排队?这里有一个游戏规则,网络交易量很大不是所有交易能被确认,矿工节点拼交易体会按某个游戏规则拼,这个游戏规则肯定是利好,哪个有好处就帮它快速地写到我的区块里,我们在比特币网络给别人转账还要填交易费,我转10个比特币还要填一个交易费,可能是零点零几个比特币,指定一个值,矿工看这十分钟确认队列的时候,会选择交易费高的交易,尽量摘出来放在十分钟的区块包体里做确认,矿工除了系统奖励,还赚取每笔交易收费,是由转账发起方支付,比如说我要给我朋友转10个比特币,手续费是0.03个比特币,要支付10.03个比特币,这就是整体的运作原理。
挖矿是一种工作量证明
我们用比特币讲区块链,大家可能好奇,我们一定需要挖矿吗?其实不一定挖矿,挖矿是为了让矿工获取奖励,激励矿工工作的机制,它是一种共识机制,这种共识机制叫做工作量证明。比特币网络是工作量证明的机制来做就是不断做Hash运算,直到算出来符合条件的Hash值,这就是一种工作。我会投入我的算力,用工作量证明的机制做共识是很安全的。开篇说比特币运行九年多没有任何问题,它是安全的。带来的问题是效率低下,比特币网络每秒确认的交易比数是七笔。我举另外一个例子说明它为什么低效,现在都会玩微信红包,什么时候是量最大的?春节的时候、过年的时候,大家猜猜过年期间微信红包背后财付通每秒需要支撑多少笔的交易?财付通高峰期每秒成交笔数是20多万笔。
公有链的网络有很大的局限性,效率低下,每秒只有7笔。我们发现比特币带来区块链的技术很好,我们如何让它的应用网络更广泛,能不能用到其他的行业,这需要做一些改良。因此产生了其他算法,比如说POS(proof of stake),分布式网络里也有同步算法,DPOS(delegated proof of stake),替代方案是为了更高效地完成网络共识,每秒支持的交易笔数更高,可以适应更多的应用范围。
比特币的披萨日:1万个比特币换来两个披萨
回过头再去回顾一下比特币的强大之处,为什么他能这么强大?就是在于他去中心化的计算权抢夺,通过计算权的抢夺可以获取奖励,通过奖励的获取会刺激大家提升自己的投入算力。为什么我要投入我的算力?一次Hash运算的算力要求是固定的,如果我的计算机一秒能算10万次,别的机器一秒能算100万次,意味着别人的机器可以更快算出符合条件的Hash值概率更高,能挖到的比特币一定更多。
开始都是用电脑在挖矿,很快有人用显卡挖,用显卡比用电脑芯片快很多,纸包不住火,突然挖矿快,别人也会跟进,整个行业都用显卡挖了,又研究是不是有更快挖矿的方式,专门设计挖矿的芯片,挖矿芯片升级显卡又不够用了,所以大家比特币网络矿工节点升级新的芯片,现在用专门的矿机,人家都用专门的矿机挖矿。导致黑这个网络的成本越来越高,比特币网络诞生的时候,2009年没有多少算力,几十台电脑组成的网络。一个黑客找比较强的电脑去黑,可以黑的,那个时候比特币也没什么价值,黑了也没什么用。
有一个段子,比特币2011年刚诞生的时候是一个披萨的故事,有一个程序员拿手中1万比特币换了两个披萨,整个社区很开心、很兴奋,把那一天叫“比特币的披萨日”,可以大书特书写进历史的日子,原来虚拟的数字货币是没人认可的,只存活在这群技术极客里自嗨里。比特币还可以换披萨,这些人就很high。现在来看,这两个披萨的价值太高了,1个比特币10万,1万个比特币怎么看?比特币运行四五年市值才慢慢涨起来,之前没人关注。
网络算力无限提升 维护了比特币的价值
比特币网络最强的是在这里,会刺激大家提升算力,获得更多奖励,这个结果会导致比特币网络算力越来越强大,黑客想要黑这个网络也会越来越困难,比特币价值也越来越高,为什么没人黑得动?因为他的算力太高,如果要黑比特币网络,掌握的算力要是比特币的一半,51%的算力才能篡改、造假。经济激励机制会让大家思考这件事情划不划得来,那么高的算力挖矿就好了,为什么黑他,哪一天比特币网络黑了,有些人的账号比特币被盗,产生假的比特币出来,币值肯定下跌,没人信它了,黑完以后获取比特币也没什么价值,是一种损人不利己的事情,有这么大的算力还不如挖矿,老老实实维护币值,维护这个社区的生态更好,经济机制会导致比特币安全也是这个原因。
我们看一下区块链,区块链是从上到下,从应用到通用,我们发现有很多要实现信任的领域都可以得到应用。它会有很多新的演化出来,队友不可信,用私有链;组织不可信,用联盟链;别人不可信,用公有链。比特币网络里任何一个人都信不过,除非绝对安全算力的共识机制去做网络共识。
联盟链是组织和组织的信任关系,合作伙伴,另外一个公司或者另外一个团队信不过就用联盟链的技术,这个节点不是代表个人,而是代表公司,或是多个节点代表一个公司,这就是联盟链。在同一个公司里所有员工不可信、队友不可信就是一个私有链,数据换成多几个节点用区块链做一个私有链。目前来讲更主流的是公有链和联盟链的应用。区块链为什么有争议也是在这儿,再往后,公有链的应用不可避免要发币,很多币都是空气币,会引起很大争议。联盟链不需要挖币,会更加被监管认可。联盟链获得经济回报率偏慢,也会更难一点。公有链没有官方和管理机构维护,所有节点权限一致,自由加入和退出。联盟链由若干机构联合进行发起维护,节点是混合型的,通过授权加入和退出,这就是区别。
中国人微信群里的区块链已成神
讲到这里要泼泼冷水:“目前世界上存在两种区块链,一种在技术天才的头脑里,另外一种在中国人的微信群里。中国人的微信群区块链已经是多种学问综合极其牛逼的东西,可以涉及到哲学、生物学、物理学、社会学、经济学、佛学、神学,人们吹得神乎其神,让你觉得云里雾里,让你觉得这个技术很厉害。加入一些群,好像我也没那么懂区块链,别人比我更懂。有些学问我真的不懂,我不是哲学方面的专家。我们觉得这个技术没那么快,很多人做这样的包装,最后我们想想是有背后的目的所在,区块链最火的是开会和发币。
区块链正逐渐成长为自己讨厌的样子
区块链是从理想回到现实中,成年后,技术大多会活成自己曾经讨厌的样子。何所长是最早的互联网从业人员,九几年就开始在关注,他讲这个事情的时候会发现跟互联网刚出现的时候很像,互联网刚出现的时候也说我要去中心化,我要匿名。今天你发现互联网是什么样的?去中心化,还有匿名吗?今天区块链出现的时候也号称要去中心化、匿名,何所长的判断是区块链一定会走进现实,未来的区块链也会活成自己讨厌的样子,也就是没那么理想。我们看这个事是有道理的,首先不要说去中心合不合理,看高喊去中心的人里有多少是想自己成为中心的?就像农民起义一样,推翻一个旧朝廷要成为新的主宰者。有新的一小波是去中心化的理想主义者,有,我们不敢否认,大部分是这样的。
比如说比特币网络,代码没那么去中心,是有Core,算力和矿机最近比例上升了90%,是由中国企业掌握的,比特大陆,还有马上要上市的矿井企业,好几个企业已经很厉害了,我们需要看比特币网络,大多数比特币归属很少的地址,这个和现实情况都很像,都是一小堆有钱人。
匿名性导致比特币丢失后无法找回
二是防篡改等于不可修改吗?这个事情也太理想化了,我们要防篡改不等于不可修改。会计做账的时候允许修改,如果不可改的话多麻烦?还有保护隐私等于匿名吗?比特币网络是匿名的,你知道有多少人丢了比特币钱包的地址从此以后再有找不回来了?比特币刚开始发展的时候没什么价值,很多人好奇挖一挖,挖几千个、几万个就丢在那儿。等到涨得很高再找密钥发现找不到了,里面的资产和他没关系,从此它就在比特币网络里沉淀下来了。如果我们今天的银行系统也是这样的话,能运行吗?这没法运行的,几百万的资产因为丢了密码找不回来了?这是很夸张的行为。绝对的匿名是不现实的,谁需要绝对匿名?只能是洗钱的,做毒品、枪支、弹药、人口贩卖的,丢了钱包也不愿意让别人知道,丢就丢了,反正是暴利行业,没了再挣。
真正正向的行业和应用很少需要绝对的匿名,我们只需要隐私保护,我们不希望我们的隐私被滥用,我们需要隐私保护。区块链真正做到实际应用要做很多的调整、很多的适配。
共识机制也没有比较好的共识,POW、POS、DPOS,现在最成功的POW,POS、DPOS都需要验证,技术层面、学术层面需要进一步做验证。
智能合约有漏洞比现实签约更坑爹
智能合约,一提智能合约很多人很兴奋,太厉害了,用技术的合约代替人工的合约,这是一个背景,人的自然语言是有恶意性的,自然带来歧义,纠纷也来自于此。挖一些坑,签合同的时候挖一些坑,有纠纷的时候来抗辩。机器语言是没有恶意性的,该怎么走程序逻辑是唯一的。智能合约是用机器语言代替有BUG的自然语言。机器语言是程序员写出来的,程序员写出来的东西是有BUG的,太正常不过了,美图CEO蔡文胜发了美币,前段时间他的网络被黑了,因为智能合约有漏洞,一下子被偷走了很多美币,智能合约有漏洞。这个事情就很坑爹,法律文本签的合同有问题还有法院帮你辩争一下。智能合约有问题谁帮你维护?可能你找谁都没用,这个事情现在还是灰色地带,智能合约没那么强大,还是初始阶段。很多东西都需要在区块链里不断优化,没有像我们今天鼓吹的那么强大,我觉得还远远没到这一步。
区块链非万能 不神化不低估
区块链是好技术,但绝非万能,我们要客观点看待,既不神化也不低估它。这个技术大家很容易高估他的影响力,我们不能低估它的长期影响。互联网九几年诞生的时候谁也没想到经过二十几年的发展到今天,整个互联网会发展到今天这样的情况。一开始发展的前面十年也是不温不火,甚至在2000年的时候,互联网泡沫破裂了,这是技术发展很正常的阶段,区块链也是一样,有各种问题,今天找区块链问题可以找出一堆,没有哪个技术刚开始就很完善,一定是需要大量的公司和企业去逐渐改进。在这个过程中应用它,才能让这个技术取得长远的进展,这是很正常的过程。(文字記者:齊曉彤 鄧建樂”)