Currently this page is being edited.
The Silktorrent WWW, Type 1 (hereafter: SilkWWW1),is a Silktorrent based World Wide Web analogue, where web pages are replaced with Silktorrent packets and different versions of the same web page, which are not the same as modified copies of the web page, form a chain that is built by using the help of time stamping services.
Time Stamping Services
The end user has to trust the Time Stamping Service (hereafter: TSS). If the end user does not trust other people to run it for them, then they have to run their own TSS, but there exist pairs of people, who do not trust each other's TSS and there exist pairs of people, who are not aware of each other's existence. In the context of the SilkWWW1, a TSS has the following mandatory functions as part of its API:
// The prefix meanings are explained elsewhere.
sfd_timestamp=sfd_get_timestamp(s_hash_as_an_UTF8_string, s_ID_as_an_UTF8_string, si_max_n_of_digits)
Web page Version Incrementation Mechanism
Web pages are Silktorrent packets that have custom headers, which are text files:
- silkWWW1_onetime_password_2_for_version_N_minus_1.txt contains a random string.
- silkWWW1_onetime_password_1_for_version_N.txt may
contain text representation of the current version of the "web page".
- silkWWW1_hashes_for_version_N.progfte.txt contains a string in ProgFTE format. The keys are downcased names of hash algorithms. The values are the hashes in string format. There is no mandatory set of hash algorithms and the implementations are expected report web page loading failure, if the implementation does not have any of the hash algorithms that are present at the ProgFTE hashtable. The ProgFTE hashtable is expected to contain at least one hash.
During the creation of the Silktorrent packet the content of the silkWWW1_onetime_password_2_for_version_N_minus_1.txt of the next version(hereafter: s_onetimepwd_2_next) of the web page is stored and kept secret till the creation of the next version of the web page. Hashes for the current version of the web page are calculated like that:
s_pwd2_next=generate_random_string() ; store_2_db_or_file_for_later_use(s_pwd2_next)
s_ concated=s_concat_strings( s_pwd1_current, s_pwd2_next )
s_hash_1=func_hash_1_(s_ concated) ; ht_progfte
<Hash 1 name>=s_hash_1
s_hash_2=func_hash_2_(s_ concated) ; ht_progfte<Hash 2 name>=s_hash_2
s_hash_2=func_hash_3_(s_ concated) ; ht_progfte<Hash 3 name>=s_hash_3
Some Related Ideas