- 主题:从比特币到NFT
技术视角,由浅入深
理解比特币
中本聪于2008年发布《Bitcoin: A Peer-to-Peer Electronic Cash System》,从标题就可以看出,比特币是一套去中心化的电子货币系统。
先说所谓去中心化,是相对于当前网络世界“中心化”架构而言的。比如某人在工商银行储蓄1万元,存款记录保存在工商银行数据中心那些隆隆作响的服务器和存储设备中。如果设备全都发生故障,那么存款记录恐怕就无法证明了。工商银行的机房,就是“中心”。再比如我持有100股茅台,持股记录保存在证券登记结算公司这一“中心”,我在超市买了一张储值卡,储值卡余额保存在超市用的服务器这一“中心”。万一“中心”发生崩溃,所有围绕着这一中心的数据记录就丢掉了。幸运的是,目前为止,中心化架构运转基本稳定。
有些计算机技术先驱,喜欢探索另一方向——“去中心化”架构。他们试图把家里的PC或手机,装上一个软件(想象有一款比特币软件),每台计算机都(争取)贡献一些计算和存储能力,几百成千上万台这样的计算机相互连接,遵循同一套程序逻辑,但谁也管不着谁,就构成了一个“peer-to-peer”系统。一方面,这些peer可以既不属于国家,也不属于公司,可以由全球1000个网友的1000台个人计算机组成,因此没有国家、没有公司能控制这套系统;另一方面,在精心设计下,每个计算机(peer)可以关机、可以恶意修改自己存储的公共数据、可以故意向其他peer发布虚假信息,只要大多数计算机都正常运行,则整个系统所保存的数据的准确性就有保障,整个系统的功能也能如常运转。一套去中心化的系统大概就是这个样子。比特币系统吸引了成千上万台计算机为其工作,而发起者并没有为这些资源支出1分钱。不像某银行、某股票交易市场,需要花费数以亿计的资金来自建数据中心。当然,银行和股票交易市场有自己的营收,也必须为自建的数据中心的崩溃负责,而中本聪则无法控制比特币系统,任何个人、机构、国家都不能控制比特币系统,也无需为比特币系统负责。
那么,把很多peer组织成一个系统,要做什么事情呢?中本聪要做的,是Electronic Cash电子现金,电子现金在网络中产生、分发和交易。而这个系统的最重要的特征,就是去中心化(点对点)。至于为什么要创造这套东西,我们并没看到显著而明确的需求,也许仅仅是他喜欢,他能。
为了记录系统中的比特币的所有权和流通记录,中本聪创造了后来被称为“区块链”的存储机制,很快,“区块链”思想被从比特币系统中剥离出来,应用到其他地方,成为一种通用的去中心化的存储机制,也叫分布式账本。也可以说,比特币系统是建立在区块链上的。
小结:
ü 能在网络上流通的电子货币Electronic Cash——是比特币系统的最终目标,
ü 去中心化peer-to-peer是比特币系统的特征,
ü 区块链是比特币系统中用来在各个peer中保存数据的解决方案
比特币系统的运行
1. 某人发起交易,广播交易,交易包含(付款地址、收款地址、金额)
2. 收到广播的节点,先验证交易,然后将其近期收到的n个有效交易拼到一起,凑够一个区块可以存储的交易的数量,后面称为一个交易集
3. 上述节点,使用如下3个参数(上一区块的hash摘要,交易集、随机数),开始工作量证明,节点不断尝试随机数,使得使用3个参数计算出来的摘要值满足预设条件(以多个0开头)
4. 首先算出的节点,就获得记账资格,他保存新区块,并广播新区块
5. 收到新区块的节点,停止自己的计算,验证新区块,并保存新区块
6. 获得记账资格的节点,其账户获得比特币
区块链
hash是一种有用的二进制计算函数,计算的输出结果是称为“摘要”的定长字符串,表示为:摘要=hash(x1,x2...xn)。比如,x1=房主张,x2=租户李,x3=月租金5000元,x4=租期1年,x5=冰箱1台,...xn=水表读数3456吨。协议双方想记住x1-xn有些繁琐,又怕被篡改,怎么办,hash(x1,x2...xn)=abc123,abc123就是摘要,比原始信息简单很多。如果协议一方丢失了原始记录,但记住摘要值。那么另一方企图将水表读数单方面篡改为xn'=6543吨,则hash(x1,x2...xn‘)=789xyz,摘要会完全不一样了。hash算出摘要的作用,一是存储空间大大减小,二是可以判断原始数据(输入参数)是否被篡改。而且,hash是单向算法,无法从摘要值反推x。
简要理解:摘要是原始内容的小特征。
每个收到新交易的节点,将约2000-4000个新交易凑成一个交易集,开始竞争一个耗费时间的运算:使用(前一个区块的hash,交易集,随机数nouce)作为输入变量,计算hash摘要。计算出的摘要如果前面有好几个0,视为成功胜出,停止计算;否则更换随机数nouce重新计算。每个节点都在反复尝试随机数,直到有一个节点终于撞了大运,这个节点立即广播其结果,收到广播的节点验证无误后,停止自己的计算,认可并保存这个节点打包的区块为区块链中下一个区块。区块链于是长高一个height。
这种“竞争”就叫挖矿,有两个特点,特点一是,在不设有调度节点的peer-to-peer环境中,区块链用节点计算时消耗的时间长短作为选择依据,而又巧妙地通过使用随机数,把各个节点的耗时均匀分布开,尽量避免了同时出现多个候选人。特点二是,每个新区块的摘要,都将前一个区块的摘要作为输入参数,如此追溯下去,每个区块的摘要都体现了之前所有区块的摘要,整条区块链就达到了防篡改的效果。
理解以太坊
比特币带来了区块链,区块链又带来了各式各样其他币。其中以太坊是最具代表性的,被称为区块链2.0。以太坊的白皮书名曰《A Next-Generation Smart Contract and Decentralized Application Platform》。
以太坊的区块链和比特币的区块链基本一样的。以太坊的厉害之处在于引入Smart Contract智能合约。智能合约是一段实现一定功能的程序,等着有人来调用它。智能则体现在强大的定制化上:一方面,人人都可以编写一段程序上传;另一方面,程序可以有较复杂的逻辑,比如需要两个账户的授权签名,才能执行某交易。
更重要的,通过智能合约,被交易的对象不限于以太币,而可以是任何东西。老王将自己的车牌号为京A888的大奔送给翠花,在老王的私钥签署下,让智能合约写入以太坊区块链记录下来即可。翠花拿着这条区块链记录,就能够证明自己被赠予的事实。
智能合约把以太坊变成了Application Platform,就像手机里的android操作系统,大家可以在以太坊上实现自己要记录下来的内容。
不过,在以太坊上链不是免费的。以太坊设置了gas费,需求方必须向诸如打包区块的参与节点支付gas费。因此,一个以太坊上的交易,包括交易本身A把某物给了B,也包括把一些以太币给挖矿等节点。部署智能合约也需要缴纳gas费。
NFT
以太坊智能合约,使得人们可以在以太坊上记录任何东西。how about在以太坊上发行另一套‘币’?当然可以,发行代币称为token(泛指区块链中记录和交易的对象)。成功的代币会有很多玩家,也会有很多开发者,开发者为了统一标准,制定了ERC 20标准协议,ERC 20规范了币或类似币的东西(比如超市积分、赌博筹码),不同开发者都能依据标准对同一种token进行开发了。其实,还有一种与币的属性不同的token,比如实物资产(汽车、合同文本)、数字资产(游戏装备、图片、音乐),不像币那样互相等价,这第二种token称为Non-Fungible Token,对应的标准为ERC 721。
终于来到NFT,区块链的杀手级应用,笔者正是因为看好NFT的前景,才去学到了上述区块链的知识。
FLOW链是对NFT非常友好的公链区块链,NBA top shot就记录在FLOW上。
公链是人人都可以加入(参与保存数据)和使用的区块链。
联盟链是只有授权的计算机才能加入的区块链,至于公众能否使用,视其服务目标而定。其实关键还是数据的保存。联盟链可视为半去中心化的区块链。
NFT能够代表实物资产,也能代表数字资产,事实上,实物资产已有汽车行驶证、房产证等等实物权证予以表示,不太需要我们操心。而数字资产的权属和交易,才是由NFT历史性地解决了的大问题。围绕着NFT有三个实体:所有者(所有者是实体的人,对应到数字世界,是一个账户)、NFT和资产(就是token代表的东西,以下仅讨论数字资产)。NFT就是一个字符串,这个字符串存储在区块链里,字符串一手抱着资产(永不放手),另一手拉着账户,可以松开手,换另一个账户拉手。
从技术上讲,最完美的NFT,对应的资产要保存在去中心化的内容寻址的存储里。下面,我们就以FLOW+IPFS描述一下NFT:
IPFS星际文件系统:区块链是把账本保存在很多peer上,IPFS是把文件本身(比如jpg、mp3等等)保存在很多peer上,非常类似于迅雷bt。IPFS是内容寻址的,存入IPFS的文件时,对文件做一次hash运算,摘要值返回给用户,做为日后读取这个文件的凭证。
对比现在的在线文件访问方式,实质是存储位置寻址。比如我在一个博客网站上传了一张小狗照片,浏览网页打开照片时,保存好相应的url,日后打开这个url,浏览器就展示这张照片。假如博客网站工作人员,在服务器中把存储目录中的原图片更换成了相同文件名的小猫照片,那么url打开的就是小猫。
IPFS中永远不会出现替换的情况。
首先,翠花将她原创的大奔头像jpg文件上传到IPFS,翠花获得了一串相应的摘要。翠花登录一个NFT网站,网站已经在底层构建好了FLOW链的接口,网站界面上提供给翠花一个输入摘要的对话框,翠花输入之。网站向FLOW提交一个交易,区块链中将写入
owner: 翠花
tokenID: 31415926
metadata: ipfs://那个摘要
这样就铸造好了一个NFT。owner可以通过交易发生改变,而metadata永远跟tokenID在一起。nft证明了owner对metadata的所有权。尽管其他人可以有大奔头像jpg的副本,甚至可以拿着副本文件上链铸造NFT,那都是道德或法律问题了,不在技术讨论之列。
twitter即将支持使用nft做头像,也就是说,用户可以显摆花费100万美元买的图片了。nft网站里每次交易,数字艺术品的原创作者都可以获得交易额的一定比例,合理激发了创造者的热情。继续幻想,元宇宙系统里面可以设定物品具有owner和价值,那么,nft就是这一设定的后台,数字物品也要买买买了。
--
修改:qiushou FROM 120.245.116.*
FROM 120.245.116.*
还请具体指正?
【 在 wq234567 的大作中提到: 】
: 学习精神不错,但是基础概念很多理解还是错的
: 发自「今日水木 on iPhone 13 Pro Max」
--
FROM 120.245.116.*
谢谢,
讲讲您的理解,大家讨论讨论
【 在 migbook 的大作中提到: 】
: 理解略显片面
--
FROM 120.245.116.*
嗯,有几个地方确实还不清楚,
全节点我是了解的,文中很多细节都没提
矿池和矿机是啥情况?顾名思义能想象出来,矿池是作为一个节点,其中矿机并行计算同一个区块?还是矿机作为一个节点呢?
【 在 wq234567 的大作中提到: 】
: 比特币网络并没有你想的那么多节点,也不是所有节点都产块,全球主要的交易99%都由五个矿池产生,其实就是五个节点,你需要区分的是全节点,矿池,矿机的概念,不能全统一的描述为节点。 整个网络的去中心化程度并没有你文中表达出来的那么高,
: 发自「今日水木 on iPhone 13 Pro Max」
--
FROM 120.245.116.*
现实世界的资产映射到区块链上,个人没看到迫切需求
包括区块链,其实也不是什么必需品
只有数字资产NFT,真的给我们打开了一扇大门
【 在 wq234567 的大作中提到: 】
: 另外现实世界的资产目前并没有很好的方式映射到区块链上,所以目前nft 的意义更多的在于数字艺术品
: 发自「今日水木 on iPhone 13 Pro Max」
--
FROM 120.245.116.*
有错,有错,我认错
原文说token一手抱着metadata永不撒手——这种描述是不准确的
1. metadata可以改变,比如一个道具token的攻击值(metadata)可以增长
2. 再比如两个token可以组合成一个,原有的两个可能都销毁了,或一个销毁,合并到另一个上,改变metadata
——我最新了解到的,特此更正,免得误导土豪
【 在 ioupioup 的大作中提到: 】
: 哪里错了
: 来自 HLK-AL00
--
修改:qiushou FROM 120.245.116.*
FROM 120.245.116.*
两个人,把同一个jpg,先后上同一个链铸造nft
是可以做到的
既然要体现唯一性,那么最终归属权必须要有个说法
个人理解,这需要链下,甚至线下来解决
好比两个人用同样的内容, 各自在两个出版社出一样的书
那么到底谁拥有著作权,出版社管不着,需要法院什么的来判定
【 在 Moondancer 的大作中提到: 】
: 蒙娜丽莎是从历史上流传下来的实物,不可复制
: 但nft画是eth上的token,是0xabc关联的一个jpg,这么理解对吗,唯一性体现在哪呢
: 如果我复制那个jpg,保存在0xdef上,两者有啥区别呢,只是地址不同?
: ...................
--
修改:qiushou FROM 120.245.116.*
FROM 120.245.116.*