关于区块链的几个技术问题思考
作为一个在电子行业战斗多年的爱好者,自认为对电子行业的技术,精通两门,其他技术都懂3成,但是对区块链和比特币一直搞不懂意义和价值所在,本次主要是提出我的一些疑问
1. 去中心化的概念,理解区块链就是数据的保存,比如每1TB的数据打包成一个区块,网络上的区块彼此连接。
2. Hash:y = hash(x),对 x 进行哈希运算得出 y,可以隐藏原始信息 x,因为你没办法通过 y 来算出 x,从而做到匿名性。这个说起来就是对数据加密,那么问题在于数据是哪些,数据从哪里获取?数据为什么一定需要加密,
3. 四个矿工一组,先碰撞出13个数字正确哈希值的矿工可以获得记账权并得到奖励。去解析hash的意义是什么?
4. 看下网上的解释
互联网上的贸易,几乎都需要借助可资信赖的第三方信用机构来处理电子支付信息。这类系统仍然内生性地受制于“基于信用的模式”。区块链技术是构建比特币区块链网络与交易信息加密传输的基础技术。它基于密码学原理而不基于信用,使得任何达成一致的双方直接支付,从而不需要第三方中介的参与。
定义:
区块链是一个分布式账本,一种通过去中心化、去信任的方式集体维护一个可靠数据库的技术方案。
从数据的角度来看:区块链是一种几乎不可能被更改的分布式数据库。这里的“分布式”不仅体现为数据的分布式存储,也体现为数据的分布式记录(即由系统参与者共同维护)。
简单理解为分布式数据库,多个节点共同维护。
5. 任何人都可以参与到区块链网络,每一台设备都能作为一个节点,每个节点都允许获得一份完整的数据库拷贝。这份数据拷贝应该很大吧,一个节点肯定放不下。
6. 区块链的运行规则是公开透明的,所有的数据信息也是公开的,因此每一笔交易都对所有节点可见。由于节点与节点之间是去信任的,因此节点之间无需公开身份,每个参与的节点都是匿名的。数据究竟是加密的还是透明的。
7.每个节点通过解一道数学难题,从而去获得创建新区块权利,并争取得到比特币的奖励(新比特币会在此过程中产生)。解数学题有实际意义吗?创建新区块,为什么不能是新的公司重新建立自己的区块链,每隔公司都可以建立自己的区块链,互不相关?数学题是谁给出的?区块的数据结构是什么?
8. 区块链
区块链是一个放在非安全环境中的分布式数据库(系统)。
区块链采用密码学的方法来保证已有数据不可能被篡改。
区块链采用共识算法来对于新增数据达成共识。
具有以上三个性质的系统,就是区块链。
7. 比特币就是账单,确实,通过账单就可以算出每个人有多少钱了。说拥有几个比特币,其实就是账单有多少个比特币。
8. 由于这个交易账单经过无数个节点,所以追查源头难度很大,因此用来洗钱。
9. 一个比特币的交易账单会发送到全网的节点,大家一起计算,你这笔转账是否合理,大家也可以根据以往的账单计算出你有几个比特币。把签单发送到全世界以后,所有收到这个单子的客户端会效验你这个单子对不对,比如会效验你的签名,是不是你发的,会效验你是否有那么多钱(根据历史交易可以推算出你有多少钱可以花)如果这个交易大家算过没问题了,基本上就算转账成功了。就是说大家都有账单,所以你一个人不能随便修改系统增加自己的比特币。确实不依靠货币系统。
10. 如此说来,比特币是区块链的一个应用。
11. 比特币是怎么产生的,挖矿为什么产生比特币,比特币的产生由挖矿者计算最优散列值计算得到,第一个计算得到这一散列值的也就是block的第一人将会获得比特币。别的人无功而返。
在比特币的世界里,大约每10分钟会记录一个数据块。所有的挖矿计算机都在尝试打包这个数据块提交,而最终成功生成这个数据块的人,就可以得到一笔比特币报酬。最初,大约每10分钟就可以产生50个比特币的比特币报酬。但是该报酬每4年减半,现在每10分钟比特币网络就可以产生25个比特币。
而要成功生成数据块,就需要矿工需要找到那个有效的哈希值,而要得到正确的哈希值,没有捷径可以走,只能靠猜,猜的过程就是计算机随机hash碰撞的过程,猜中了,你就得到了比特币。
这个数据块里面是什么数据?10分钟会记录一个数据块,谁去记录?提交给谁?为什么生成数据块需要找到有效的哈希值?新比特币在每个网络节点在解决了一定的数学计算(比如,创建新的 block)后生成。这个生成过程被认为是难以重现和 proof of work 的。解决问题后得到的回报是比特币。那么存在问题,比特币和数据块之间的关系是什么?账单存放在哪里?
挖到矿以后也会得到一个交易记录的东西,但是FROM那边很特殊,整个体系也认可这个FROM,另外实际上,账单是要附着到块(block)上的 ,账单发到全网以后,需要全网去计算正不正确。现在的问题就是,打包的什么数据?数据谁给出的?