比特币与区块链

2月15日下班高峰,经历了惨绝人寰的堵车、堵地铁、堵电梯后,16位小伙伴齐聚观音桥,参加Hello Code Club 第三期由创始会员梦林带来的《比特币与区块链》分享,大部分小伙伴都是见过2次面的熟人,所以简单的寒暄后进入正题。

比特币相关概念

简单来说,比特币网络是一个去中心化的分布式账本,里面记录着每一笔交易详情,并不是具体的币,但它具备有限发行、价值转换、流通性等货币属性。更完整的描述,当然是去看维基百科啦。

记录交易

既然说到,比特币说到底是个账本,那么是谁任劳任怨、积极主动把这么多的交易收纳进账本呢。主要通过竞争记账,也就是大家熟知的挖矿制造新区块来进行。

旷工提取比特币网络前一个区块到目前(周期大约10分钟)的交易记录详情,放到一个数据块,再添加自己的特征信息进行大量计算,生成符合规则的目标值(n个0开头的字符串),万里长征就算看到希望,就可以把区块发送到网络上的节点,给自己账户添加一笔新增N个(目前12.5个)比特币的交易记录,同时获得区块里面每笔交易的交易费。

基于公式比特币新增一个区块的奖励是指数递减的,后面无矿可挖怎么办,所以后面的激励策略主要是靠交易费了。

Merkle 树

梦林用了一点时间跟大家解释每个区块里面交易是一种哈希二叉树,试图说明在计算和校验大规模数据的时候,这是一个非常高效的设计,网上找了一个图,大家将就看吧。

顺便说一句,如果用了大量的算力,只是算出一些无聊的字母,未免太浪费。所以一些新的区块链设计里面加入了破解基因图谱类似的分解工作,让计算更有价值

比特币的使用

主要涉及私钥、公钥密码学相关应用,每一笔交易都会被1个或多个签名加密。为了解决多重交易的问题,需要多个block包含这笔交易,实践中每笔交易经过6个block或者一些可信度较高的节点确认,风险就会降到最小,所以大约是1小时,说到底安全就是个信任和成本的问题。

因为私钥的管理方式不同,账户一般通过自己管理的钱包和交易所两种形式。每个账户地址是唯一,账户背后的使用者则不一定,另外整个网络通过混编传输等技术实现了交易记录的匿名性。

过程中大家还探讨了,因为比特币越来越少,会不会最后难以交易或者收藏不流通以及如果是政府机构,如何处理“通缩”的问题。首先,比特币是可以无限分解的,不会出现不能找零或者要用一沓报纸买一杯水的场景。另外,通缩的问题,现实中可以通过减少发行量、回购、银行节点增加备付金等形式来调控,那么比特币网络也可以根据流通情况来调整,需有待观察。

动态调整和不可变的数据

区块链这样的去中心化技术的精妙之处,希望通过自发共识机制,让整个生态可持续。比如上面提到的挖矿工作量证明难度、一个新区块的周期都是根据当前网络的算力动态调整的。

为何叫区块“链”呢。因为通过竞争记账,每一笔交易都会根据发生顺序一个block接一个block的串起来,里面的交易头和签名信息都是根据密码学方式保证,使得数据不可篡改即不可变。

区块链应用扩展

通过上面比特币的实例化阐述,梦林得出一个经典总结。

区块链核心本质就是价值的传递

除了金融行业,大部分需要守护价值传递的场景都可运用上区块链技术,比如:

  • 股权
  • 知识产权
  • 复杂多方交易

在这个环节,大家也是脑洞大开,技术也是需要成本的嘛,在场的一位兄弟就提到他用一个更低成本的实现来保障代码专利,大致思路就是把代码片段hash后,把hash字符串存到银行的交易备注记录里,当发生纠纷重现这个hash来主张自己的权利。这里涉及到银行背书,大家又发散到法律界如何进行举证以及互联网证据在我国法律中的可信度等讨论。

中心化和去中心化探讨

梦林提及最初发明Internet、万维网的这帮开路先锋,初衷就是希望去中心化,但是现在越来越多大公司的产品和做法却是中心化的,目的呢就像我厂boss比较经典的总结,任何平台发展到最后一定是个大数据公司和金融公司。

这个环节,初步达成一致,中心化能提供便利的服务,去中心化能降低风险和有效利用资源,正确的做法是根据场景配套起来实施。(其实是因为到这节点都快10点,赶不上回家末班车了,懒得撕逼了^_^)


小总结:经历了互联网、加密学、金融、政治、法律等多方面的友好切磋,大家意犹未尽的离去,感谢梦林的精心总结,感谢大家的热情参与,最后爆个照。

如果你也想参加这样的分享活动,来个思想上的激情碰撞,先从关注公众号(hellocode_club)和我们交流开始吧