Blockchain技术细节的一些思考

Blockchain技术细节的一些思考

按照Tweeter Storm的格式来写一点Blockchain技术细节的思考。(目前阅读的材料还不多,如有技术错误欢迎指出。)

1/ 各种机遇巧合,终于可以正经阅读研究一下blockchain的原始资料。从bitcoin的whitepaper开始,陆续追溯跟踪了一些材料,还是相当震撼于各种技术细节。个人体会是,在现阶段,对技术细节的理解至关重要。技术的实现细节,其实会过滤掉很多对blockchain抱有的不切实际的幻想。我对blockchain的态度比较中立,没有过分的期待也没有过分的排斥。只是就“各路大牛都在奔向这条路”这个事情来讲,我感觉它值得投入时间认真研究一番。

我自己持有这样一个观点:要在一群白痴里与众不同,你就必须成为一个智慧的人;而如果要想在一群牛人里面与众不同,那几乎就只有一种办法,成为一个傻X。

所以,当看到各路大牛都投入进去研究时,我觉得我应该严肃地对待它,至少要弄清楚,这到底是一些什么东西。

2/ 目前所做的文献搜索还相对较少,我自己已经挑选出来的几篇硬核文章是:

  • bitcoin whitepaper
  • Bitcoins the hard way: Using the raw Bitcoin protocol
  • Bitcoin mining the hard way: the algorithms, protocols, and bytes
  • How the Bitcoin protocol actually works

这些文章的共同特点是几乎没有什么感性的、定性讨论。全都是相当扎实地在阐述技术细节。它能够帮助我真正去了解,当我们谈论blockchain、谈论bitcoin的时候到底在谈论什么。

Blockchain所提供的东西,就用途上讲并不新奇:提供不可篡改的机制/服务。在生活中,我们写字据、微信聊天、银行转账,其实都会下意识地承认这条规则,即我所做的这些事情是无法被篡改的,否则事情就不对了。而这条假设由谁来保证呢?当然就是提供服务的服务商,也就是一个所谓的中心节点——接收来自四面八方的诉求。

而blockchain就是针对这一点做了不同的理解:我们不要用一个中心机构去保障不可篡改性这个事情,而是让大家共同维护这样一个不可篡改性。从理论上讲,这样的做法,无异于在数学的某个分支将基本的公理给改掉。其影响当然巨大无比。一个直观的例子就是在几何体系中,将“第五公设”换一种思路去接受,也就诞生了非欧几何。

3/ 已经读了几个小的部分,其中的某些性质还是让我相当吃惊。而这些“性质”都是技术细节连带出来的,并不能通过简单的对blockchain的“构想”而推断出来。

首先是所谓的bitcoin本身。它并不是某一个信息实体,即某个具体的文件被下载到你自己的PC上,于是你便宣传,我拿到了一枚bitcoin。事实上,根本没有这样的bitcoin文件,有的仅仅是一条又一条的交易记录历史,它们被记录在一个开放的、共享的账簿上。

例如,从最源头上讲,第一枚bitcoin就是一句话,“这有一枚bitcoin”。然后呢,就是连绵不断的交易。比如添加上这句话“这枚bitcoin从小A转账给了小B”。那么,小B如何知道自己拥有了一枚bitcoin,或者其他人如何知道小B拥有了一枚bitcoin呢?那就是去这个账簿上看看,关于这枚bitcoin的所有的描述记录,看看关于它的最后一跳记录,是不是在声称这枚bitcoin放到了小B这里。

表面上看,这有点费解,不如直接将一个bitcoin以文件的方式存储在各个节点上。可这样的用法我们在生活中是不由自主地在运用的,例如你会只拿一部手机出门到处购物,其本质,不就是在银行的账簿增加一条条的消费记录么。根本没有必要去把实体的货币放在身上。同样的,货币的本质是一种关系、一种购买力,它并不需要实体的对应,而是各种关系的梳理。bitcoin的设计,正是如此。

4/ 再来是挖矿(mining),也就是炒作最厉害的让服务器崩腾、燃烧获取暴利的行为。这个名字其实很富有欺骗性,挖矿嘛,不就是为了挖到“财宝”而存在的行为么。可实际上,挖矿在bitcoin的世界里是为了“记账”而存在的,而“挖到宝贝”,仅仅是为“记账成功”而提供的额外奖赏。

什么叫做为记账存在?这就会引出另外一个有些反常的东西:发起交易和确定交易是分离的。继续沿用上面的例子,小A给小B转了一个bitcoin。如果按照我们现实中的例子,那无非就是我把一块钱从我的手里交给了对方,而交易也就因此完成了。

可现在弔詭的事情来了,由于你我都没有实实在在的货币拿在手上,唯一能够证明钱从我这里转到了你那里的方式是,我们一起查看一下银行卡上的记录。也就是说,“交易完成”这个事情不得不涉及到第三方交易账簿。如果这个账簿上没有记录,那么,如何说明我把钱转给你了呢?

于是,这个时候会单独拧出来另外一个事情,那就是把“我把1块钱转给你”这句话要写在银行的账簿,并不是一件自然而然发生的事情。那么,就得有一个人或者机器,单独来提供一个服务——“写入账簿”。

这就好比是,古代的写字先生,在你的账簿每写下一行“今天收入XXX两银子”那可是得收费的啊。为啥?因为你不会写字或者你不能写字呗。

在bitcoin的世界里也是如此,虽然在小A和小B之间发起了一笔交易“小A转钱给小B一枚bitcoin”,可是,根本不存在bitcoin这样的文件啊,有的仅仅是公开账簿上的一条条记录。那么,这就涉及到上面这个问题,谁去把这句话写入账簿以表明交易成功呢?

答案是,矿工。这才是挖矿的核心目的:将一条条的交易记录写入公开账簿。这是一个个具体的、类似于写字先生一般的服务,所以得收取酬劳费。这个酬劳费就是你的挖矿所得(事实上它包括两部分:一个是交易双方A、B承诺的手续费,另一个是bitcoin系统中凭空诞生的新bitcoin)。这项服务极其昂贵,会消耗大量的服务器计算资源。我们暂时不深入去谈细节,而只是从更宏观的角度去理解,它就是写字先生的润笔费。

5/ 知道了这些技术细节,对我们来讲有何用处?又能够纠正哪些想法呢?让我们来做一点分析。

例如,bitcoin是开源的,所以,理论上将我们可以根据自己的需求量身定做出自己的数字货币,就像现在满天飞的各种digital coin。那么,是不是说我随便这么一弄,就是刷刷刷的一种币,似乎发币这个事情太过简单,以至于我为什么要执着于主流的货币呢?

有了上面的细节,我们知道,就算你发行了一种digital coin,可如果没有愿意提供服务的矿工,试问你的货币系统该如何运作呢?币虽然在那里,可如果无法吸引到大家去使用它、甘愿奉上自己的服务器计算资源,你的货币公共账簿上,又如何能够添加一条条的交易记录呢?而如果没有交易记录,那么,也就等同于说这个币到不了任何一个人手上,那不就等同于没人陪你玩儿么。

再来是挖矿的事情。由于是否有人挖矿直接决定了你的交易是否可以完成,这就导致了很多地位的反转。一开始或许会认为交易的发起方是爷,毕竟我为矿工提供了就业机会。可是,逐渐的,你的订单就像是在雨天乘坐Uber的订单,你不加钱、不提供足够高昂的手续费,你需要的服务就做不成。于是,表面上,我支付给你1个bitcoin买个包,可是呢,这个钱就像是卡死在了银行转账的网页上,怎么样都无法成功。如果是这样,要把bitcoin这的digital coin用于什么扫码支付、地铁支付,那将会是个噩梦。

6/ 举出着这些技术细节的目的是什么呢?那就是希望通过这些例子来说明,在现阶段,了解blockchain的技术细节至关重要,每一个实现方案其实决定了你对它的期望和设想是否靠谱、是否是在个人YY。脱离开技术细节来谈blockchain的理念,那有太多无尽缥缈的东西可以谈了。可是,一旦有了细节的约束,你便能够知道什么方向的思维发散是在做建设性的贡献,而什么方向的思维延展,仅仅是空中楼阁一般的纸上谈兵。

 

 

 

近期回顾

未来已来,与你何干
文化自信不如中国大妈
数据思维二三事

 

如果你喜欢我的文章或分享,请长按下面的二维码关注我的微信公众号,谢谢!

 

更多信息交流和观点分享,可加入知识星球:

https://press.one/file/v?s=b167997cadd6b1162d31483d335c31aff8d1777060025edd0b2f43f9e548a2e1564b5f7a484dc6f13bb88ce1bb35f221190703cd5ba7b720ddc013aa44406e7c1&h=5e33b95d885d02fc33a7aae183c13ab58d5f273a4225b1e09e4e5f8aaee74802&a=e37dc7ad240ce4bfcd9cb80ee7e8715b85fd5fbb&f=P1&v=2

发表评论