区块链技术入门
区块链由包含批量有效交易的块组成。
每个块包括区块链中先前块的散列,将两者连接起来。链接的块形成链。
除了基于安全散列的历史记录之外,任何区块链数据库都具有用于存储历史的不同版本的指定算法,以便可以选择具有更高值的一个而不是其他版本。支持数据库的同行在任何时候都没有完全相同的历史版本,而是保留了他们目前所知的数据库的最高得分版本。每当对等体获得更高的评分版本(通常是添加了单个新块的旧版本)时,它们会扩展或覆盖自己的数据库并将改进重新传输给其对等体。
绝不保证任何特定条目将永远保留在历史的最佳版本中。区块链通常用于将新块的分数添加到旧块上。只有通过新块进行扩展而不是覆盖旧块,才有动力。随着更多的块建立在它之上,入口被取代的可能性下降 - 最终变得非常低。
在比特币的背景下,区块链是一个数字分类账,记录了曾经发生过的每一个比特币交易。
区块链实现由两种记录组成:事务和块。
这个简短的背景将遵循“块链”技术的演变。
椭圆曲线和区块链加密
:例如(三次多项式)具有特定的已知解。
椭圆曲线具有独特的属性,因为有一种方法可以将椭圆曲线的“加”解决方案组合在一起以获得另一种解决方案。
简而言之,如果您在曲线上绘制一条直线(不是完全水平或垂直),它将始终在第三点处与曲线相交。这被定义为将Point P添加到Point Q.如下所示: -
唯一的例外是如果一条线与椭圆曲线相切。在这种情况下,该线仅在另一个点处与曲线相交。这被定义为点“P”的“加倍”。如下所示:-
在上面的例子中,通过沿x轴反射R'找到点R.
区块链,有限域和散列函数
在椭圆曲线数字签名算法(ECDSA)的上下文中,有限域可以被认为是预定义的正数范围,其中每个计算必须落在其中。超出此范围的任何数字都“环绕”以便落在该范围内。
考虑这个的最简单方法是计算余数,如模数(mod)运算符所表示的。例如,9/7给出1,余数为2:
9 mod 7 = 2
这里我们的有限域是模7,并且该域上的所有mod操作产生的结果落在0到6的范围内。
哈希函数只是一个应用于数据的规则,用于给出结果 - 在本例中为数字。例如,SHA256是一个Hash函数,它接受一个输入并具有256位输出。(SHA =安全散列算法)。
文件>
密码> SHA256> 256位数
数据>
在SHA256的情况下,有2256种可能的结果。
(另一个重要的哈希算法是RIPMED160)。
块链技术(如比特币)使用非常大的数字作为基点,素数模和序。
算法的安全性依赖于这些值很大,因此对暴力或逆向工程来说是不切实际的。
在比特币的情况下:
椭圆曲线方程:y2= x3+7
Prime modulo = 2256- 232- 29- 28- 27- 26- 24- 1 = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFC2F
基点= 04 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D08F FB10D4B8
顺序= FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141
私钥和公钥以及钱包
为了产生“私钥”,块链协议选择椭圆曲线上的点,例如。点“E”即基点。
私钥只是一个数字 - “N”(这样,0 <= N <= 2256)
与私钥相关联的公钥只是点“E”,自身加“N”次。IE P = NxE
对于比特币,与密钥相关联的地址是公钥的SHA256哈希的RIPMED160哈希。
钱包只是包含私钥和公钥以及地址的文件。钱包通常包含许多密钥,也可能包含交易的标签信息,例如“贷款支付”等。
数字签名和区块链
椭圆曲线用于构建数字签名算法以对数据进行签名。数据可以是任何长度。第一步是“散列”数据以创建一个包含与曲线顺序相同的位数的数字(256)。数学是悄然参与的,所以为了简单起见,我将概述步骤。(如果您需要更多信息,请单击此处查看使用小数字的完整工作示例。
散列数据以创建一个包含与曲线顺序相同位数的数字,即256位。 使用标量乘法计算点(x,y)= k * G. 找到r = mod n(如果r = 0,则返回步骤1)。模数算术计算器 求s =(z + r * d)/ k mod n。(如果s = 0,返回步骤1) 签名对是(r,s)。
要使用公钥验证签名,第三方将执行以下步骤:
验证r和s介于1和n-1之间 计算w = s-1mod n 计算u = z * w mod n 计算v = r * w mod n 计算点(x,y)= uG + vQ 验证r = x mod n。如果不是,签名无效。
您可以点击此处验证这些步骤是否有效
“比特币”挖掘和“工作证明”概念
矿工并没有那么多解决数学问题,因为他们花了很多心思做出猜测,直到他们猜对了。
比特币的工作原理是拥有一组链接的交易记录“块”,记录谁拥有比特币。为了使比特币工作,他们需要一些方法来确保块的记录是不可变的,即没有人可以改变它。
他们实现这一目标的方式是创造采矿的概念。矿工采用当前的一组交易,其中包括指向最后一组接受的链接,并进行数万亿次猜测,每次将一个数字放入块头的“随机数”字段中。块头通过哈希函数运行,也称为“单向”或“陷阱门”功能。在这种情况下,使用SHA-256哈希函数。如果散列函数的输出低于阈值,则该块有效,被其他矿工接受,并且正确猜测的矿工在比特币中获得块奖励。
散列函数输出阈值越低,提供猜测的难度就越大,这将导致散列函数的输出足够低,并且阈值的低度由比特币“难度”决定。难度调整每个两周的时间取决于找到最后6 * 24 * 14块的时间:如果只花了一周时间,那么“难度”应该加倍 - 这样无论在全球范围内采矿多少,一个新的块平均每10分钟继续创建一次。
你写的是什么,留在里面。比特币是区块链上第一个跟踪资产的货币,因为它用于支付矿工,比特币和区块链交织在一起。但只要比特币生态系统继续咆哮,您就可以使用区块链永久地写下任何东西。
声明:本站所提供的资讯信息不代表任何投资暗示, 本站所发布文章仅代表个人观点,仅供参考。