区块链是当今技术领域现象级网红词汇,笔者本人是从编程角度了解的区块链,区块链包含经济学、密码学、博弈论、计算机编程等多领域知识综合,对于很多想要学习区块链的朋友刚开始或许会感觉无从下手。
如果要简单概括一下,区块链可以看做一个不可更改的数据库,或者看做一个Excel表格,这个表格可以增加数据和查询数据,但是不能修改和删除数据,因此,每一个记录都可追踪溯源,形成了所谓的信任机制。
1993年,美国宣布了建设一条信息高速公路计划——国家信息基础设施,目的是使所有美国人都能共享和使用信息资源,这就是当今互联网的雏形。
比如,现在笔者的文章一旦发布到互联网上就可以共享,读者可以复制文章或者图片在其他平台进行传播,互联网可以让信息快速传播。然而,依然有一些东西无法通过复制粘贴共享,比如,价值。
现在有艾茵和施坦两个独立个体,艾茵给施坦转账10块钱的过程,就是在艾茵的账户减10,在施坦的账户加10,目前的互联网协议是不支持价值转移功能的,因此需要一个中心化第三方做信任背书。
比特币诞生之后,其身后的区块链技术可以实现不需要可信的中心化机构背书就可以实现点对点的转账,可以说,比特币是迄今为止最成功的区块链应用。
比特币作为一个分布式账本,自然在记账方法上进行了改进,比特币能够安稳运行十年,所依赖的也是特有分布式的记账方法。
将时光追溯到遥远的石器时代,今天猎取几只羊,部落里还剩几只鸡都要凭借记忆。当生产力提高,依靠记忆已经无法满足,人们开始将数据画出来,直至文字发明,人们可以将信息按照时间发生顺序记为流水账,这就是账本的起源。
公元前5世纪,由于古希腊及古罗马奴隶社会的经济繁荣发展,流水账中出现了日记账和现金出纳账,记账发展到了单式记账时期。
直至复式记账的出现,将记账推向一个里程碑式的巅峰。
复式记账法的理论依据是“资产=负债+所有者权益”的会计等式。
比如用账上现金偿还短期负债100元,就是在资产中减去100元的现金,记做贷-100,在短期负债中减去100元,记做借-100,等式依然成立。任何一项经济业务都会引起资产与权益之间至少两个项目发生增减变动,而且增减变动的金额相等,也就是永远保持平账。
比特币记账采用UTXO模式,Unspent Transaction Output,未花费的交易输出。
首先登陆比特币区块浏览器,查看最新区块:
区块高度Height从零开始,区块里面存储交易信息,大小就是Size,Reward奖励分为挖矿奖励12.5个BTC+手续费,每一个区块都有一个独一无二的哈希地址。
点击进去一个区块:
Time代表时间戳,不可更改,还包括自身地址,前一个区块和后一个区块地址,比特币挖矿采用哈希算法,None代表矿工计算出的随机数,所有区块依次连接,只要交易信息被改动一点,哈希值就会发生变化,也自然不会被比特币网络中其他区块所认可。
每个区块都可能有多个输入和输出,比特币网络如何计算出你的钱有多少呢?比如,我从交易所购买3个比特币转账到钱包中,昨天张三给我转账0.5个比特币,我的总数就是3+0.5=3.5个比特币,然后向李四支付2个比特币购买商品,比特币网络会再次计算3+0.5=3.5个比特币支付给李四,同时将3.5-2=1.5个比特币给自己找零,这1.5个比特币找零就是未花费交易输出UTXO。
中本聪设计的标准交易模式就采用复式记账法,对于每一笔经济业务,都会以相等的金额在两个或两个以上的相互联系账户中进行登记,系统反应资金运动变化结果,可以清楚追溯每一笔钱的来龙去脉,这就是区块链在供应链、版权登记等领域的可溯源应用的原理。