|||
用例价值:让比特币能可靠地从买家转移到卖家。
用例启动时机:在一个交易方需要转移比特币到任意指定的另一方的任何时候。
用例脚本:
买家选择要转移的目标卖家以及要转移的比特币数量,确定转移。
系统可靠地将买家的比特币转移到卖家。
在转账的同时,系统会保存转账记录(使用“记账”用例)。
买家和卖家都可以查询到转移的记录。
例外:
2.1如果系统接到一个虚假的转账要求,系统将识别出来,阻止转账。
2.2如果系统接到一个无法执行的转账要求,将阻止转账。
用例实现的要点:
系统要确保每次转帐都需要可靠完成。
需要从正确的发送者转移到正确的接收者处。
需要转移正确的比特币数量。
需要保证发送者有足够的比特币转移数量。
系统自动为交易者记录交易数据。
系统不需要通过唯一的中心服务器来实现转帐及记录(银行模式)。
系统能识别无效转账(冒充别人给自己转账,转账金额超过余额等);
用例价值:在不依赖任何中心服务器情况下完整、可靠、严密地记录全部的交易数据。
用例启动时机:在连续的时间段内持续进行,通常是每10分钟左右进行一次。
用例脚本
系统把所有的交易记录广播给所有矿工。
矿工收集到时间段内所有系统进行的交易记录。
矿工验证交易的有效性。
矿工进行“挖矿计算”(扩展“造币”用例)获得账簿。
矿工将交易记录记入账簿。
系统评选最快完成账簿,串链到全局统一的账本中。
例外:
3.1系统对无效的交易记录进行报警和剔除。
6.1如果串链时产生分支,系统会自发地选取一条唯一的主干来串联账簿。
用例实现的要点:
交易的有效性验证包括交易过程中的业务规则和例外的处理。需要所产生的账本记录不可被恶意篡改,如有篡改应会被立即发现并自动抛弃,修复正确账本。
会有很多矿工顺着他们手头的账簿链回溯验证账簿之间的关联性,如中间有任何篡改之处,回溯就会失败,篡改就会被立即发现,结合后面谈到的奖励机制,矿工为了让自己的工作获得认同,会毫不犹豫舍弃这些被篡改过的链。
所以,被篡改的账簿,不仅可以被立即发现,而且根本就”活不下去“。
产生记录交易的账簿的权力不能轻易被垄断,否则,账簿就容易被恶意操控,失去可信赖的基础。这也是系统不能通过唯一或少量的中心服务器来实现转帐记录的原因之一。
一个统一账本不断用“账簿链接”的方式来收录“随时间推进陆续产生的账簿,这些帐簿是用来记录这个时间段内产生的所有交易记录的。如何确保整个网络的账本唯一(以一条账簿链为准)?不仅需要账簿之间上下关联,而且需要整个网络所记录的上下关联是唯一的。如果出现分叉(几乎同时在不同的矿工处产生了两个以上账簿,并发到了全网的所有结点处,虽然记录的内容是正确的而且相同的,但会导致后续记录链的分裂,使系统无法提供统一的验证依据),系统的后续记录会自动地做出唯一的主链选择。
上述两点实际是以谁产生的记录为准的问题,目前用这样的机制来解决:
人为地让产生一个账簿记录变难,使得记录不能随便就能产生。
让成功产生出新账簿的矿工获得奖励,成功的条件不仅仅是账簿能最快产生出来,而且是处在后续账簿链接”生长“最快,也就是最长的链上,这样两个条件自我激励,就会让矿工总会自动选择当前最长的链来产生后续的账簿,以确保自己的账簿获得公认的有效而获得奖励。
对矿工的奖励,就是发行新的货币给矿工,这样的设计巧妙地解决了等价于”在现实的货币中要让制造假币困难“的问题。为人为增加账簿产生的难度找到了合理的价值定位。所以,在”造帐“的同时,也在”造币“。
如果有人想通过恶意攻击得利,那攻击者就需要垄断或操控系统足够数量的矿工,大批量地来制造交易假象,这样所需成本高过N倍的制造假币的成本,因而变得无法实施。
待续...
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-22 21:30
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社