区块链技术是由一系列包含大量有效交易的区块构成的。
每一个区块都包含先前区块的散列信息,这种信息将区块相互连接起来,形成一个连续的链。
除了基于安全散列的历史记录之外,任何区块链数据库都必须有一个特定的算法来存储历史版本,以便在需要时选择具有更高值的一个版本而非其他。支持该数据库的参与者在任何时候都不会拥有完全相同的历史版本,而是保留他们目前所知的最高得分版本。每当参与者获得更高评分的版本(通常是添加了单个新块的旧版本)时,他们就会扩展或覆盖自己的数据库,并将这些改进重新传输给其他参与者。
然而,并不能保证任何特定条目将永久保留在历史的最佳版本中。区块链通常用于将新块的分数添加到旧块上。只有通过添加新块扩展旧块,而不是覆盖旧块,参与者才有动力。随着更多块在其上建立,条目被取代的可能性会降低——最终变得极低。
在比特币的范畴内,区块链是一个数字账本,记录了每一笔比特币交易的发生。
区块链的实现包括两个主要记录:事务和区块。
以下将简述“区块链”技术的发展历程。
椭圆曲线与区块链加密:例如,三次多项式具有特定的已知解。
椭圆曲线的独特之处在于,存在一种方法可以将椭圆曲线的“加”解决方案组合起来以获得另一个解决方案。
简言之,如果您在曲线上绘制一条直线(不是完全水平或垂直),它将始终在第三个点处与曲线相交。这被定义为将点P添加到点Q。如下所示:
唯一的例外是如果一条线与椭圆曲线相切。在这种情况下,该线仅在另一个点处与曲线相交。这被定义为点“P”的“加倍”。如下所示:
在上面的例子中,通过沿x轴反射R'找到点R。
区块链、有限域与散列函数在椭圆曲线数字签名算法(ECDSA)的上下文中,有限域可以被认为是预定义的正数范围,其中每个计算都必须落在其中。超出此范围的任何数字都会“环绕”以便落在该范围内。
考虑这个的最简单方法是计算余数,如模数(mod)运算符所表示的。例如,9除以7等于1,余数为2:
9 mod 7 = 2
这里我们的有限域是模7,并且该域上的所有mod操作产生的结果都落在0到6的范围内。
哈希函数是一个应用于数据的规则,用于生成一个结果——在本例中为数字。例如,SHA256是一个哈希函数,它接受一个输入并具有256位输出。(SHA =安全散列算法)。
文件 > 密码 > SHA256 > 256位数
数据 >
在SHA256的情况下,有2^256种可能的结果。
(另一个重要的哈希算法是RIPEMD160)。
区块链技术(如比特币)使用非常大的数字作为基点、素数模和序。
算法的安全性依赖于这些值很大,因此对暴力或逆向工程来说是不切实际的。
在比特币的情况下:
椭圆曲线方程:y^2 = x^3 + 7
Prime modulo = 2^256 - 2^32 - 2^9 - 2^8 - 2^7 - 2^6 - 2^4 - 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 <= 2^256)
与私钥相关联的公钥只是点“E”,自身加“N”次。即P = N * E
对于比特币,与密钥相关联的地址是公钥的SHA256哈希的RIPEMD160哈希。
钱包只是一个包含私钥、公钥和地址的文件。钱包通常包含多个密钥,也可能包含交易标签信息,例如“贷款支付”等。
数字签名与区块链:椭圆曲线用于构建数字签名算法以对数据进行签名。数据可以是任何长度。第一步是对数据进行“散列”,以创建一个包含与曲线顺序相同位数的数字(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^-1 mod 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分钟继续创建一次。
你写的是什么,留在里面。比特币是区块链上第一个跟踪资产的货币,因为它用于支付矿工,比特币和区块链紧密相连。但只要比特币生态系统继续繁荣,您就可以使用区块链永久地记录任何东西。
标签: 数字货币